Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

Join us for an expert-led overview of the tools and concepts you'll need to become a Certified Power BI Data Analyst and pass exam PL-300. Register now.

Reply
tracyng0905
Frequent Visitor

Advanced DAX - Group by to get latest record of each person and then categorize the distribution

Hi folks,

I have a sample data as shown below. Each student has it CGPA Range per Year, Sem, and Prog. 

tracyng0905_1-1642011823592.png

The objective is to group the result by CGPA Range per each students' latest result per year. for example,

[Case A] if there is no filter on semester,  SID_002 will count into GPA 2.00-2.29 for Year=2016  (Latest Semester =3)

[Case B] if there is filter on Semester=(1 or 2), the SID_002 will count into GPA<2.00 for Year=2016  (Latest Semester =2).

 

The result is expected as below. 

Student CGPA distribution by latest CGPA:

tracyng0905_3-1642012828232.png  tracyng0905_4-1642012856922.png

However, i tried many DAX  but none can return correct result. All DAX looks like just counting student by year, sem, prog, CGPA Range instead of everyone's latest result 

 

Here is tth PBIX Example i am working on. Can someone help me?

 

Thank you very much for your help!!

Tracy

 

 

1 ACCEPTED SOLUTION
Jihwan_Kim
Super User
Super User

Hi,

I am not sure if I understood your question correctly, but please check the below measure and the attached pbix file.

 

Count V2: =
VAR currentprogram =
MAX ( Data[Programme Code] )
VAR currentcgpa =
MAX ( Cat[CGPA] )
VAR currentyear =
MAX ( Data[Academic Year] )
VAR newtable =
GROUPBY (
ALLSELECTED ( Data ),
Data[Student Number],
Data[Academic Year],
"@latest", MAXX ( CURRENTGROUP (), Data[YearSem] )
)
VAR filterbynewtable =
CALCULATETABLE (
ALLSELECTED ( Data ),
TREATAS ( newtable, Data[Student Number], Data[Academic Year], Data[YearSem] )
)
VAR currentcontext =
FILTER (
filterbynewtable,
Data[Programme Code] = currentprogram
&& Data[CGPA] = currentcgpa
&& Data[Academic Year] = currentyear
)
RETURN
COUNTROWS ( currentcontext )


If this post helps, then please consider accepting it as the solution to help other members find it faster, and give a big thumbs up.


Click here to visit my LinkedIn page

Click here to schedule a short Teams meeting to discuss your question.

View solution in original post

2 REPLIES 2
tracyng0905
Frequent Visitor

Hello Jihwan_JHKIM,

It works well. Thanks for your help!
Cheers,

Tracy

Jihwan_Kim
Super User
Super User

Hi,

I am not sure if I understood your question correctly, but please check the below measure and the attached pbix file.

 

Count V2: =
VAR currentprogram =
MAX ( Data[Programme Code] )
VAR currentcgpa =
MAX ( Cat[CGPA] )
VAR currentyear =
MAX ( Data[Academic Year] )
VAR newtable =
GROUPBY (
ALLSELECTED ( Data ),
Data[Student Number],
Data[Academic Year],
"@latest", MAXX ( CURRENTGROUP (), Data[YearSem] )
)
VAR filterbynewtable =
CALCULATETABLE (
ALLSELECTED ( Data ),
TREATAS ( newtable, Data[Student Number], Data[Academic Year], Data[YearSem] )
)
VAR currentcontext =
FILTER (
filterbynewtable,
Data[Programme Code] = currentprogram
&& Data[CGPA] = currentcgpa
&& Data[Academic Year] = currentyear
)
RETURN
COUNTROWS ( currentcontext )


If this post helps, then please consider accepting it as the solution to help other members find it faster, and give a big thumbs up.


Click here to visit my LinkedIn page

Click here to schedule a short Teams meeting to discuss your question.

Helpful resources

Announcements
Join our Fabric User Panel

Join our Fabric User Panel

This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.

June 2025 Power BI Update Carousel

Power BI Monthly Update - June 2025

Check out the June 2025 Power BI update to learn about new features.

June 2025 community update carousel

Fabric Community Update - June 2025

Find out what's new and trending in the Fabric community.