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

Register now to learn Fabric in free live sessions led by the best Microsoft experts. From Apr 16 to May 9, in English and Spanish.

Reply
SAM190370
Frequent Visitor

Filter table and then ranking

I would like to ranking a table.  This works fine with rankx.  However I would like to filter the table before making the ranking. However it seems like formula ignore the filtering. 

 

1) First you see the data

2) Ranking withour filtering

3) Ranking without Denmark

 

Capture.PNG

 

 

How should the measure look like? I have tried this one but it seems to sum up top 3 to 1000 - just ignorering the new ranking. 

 

Top3WithoutDenmark:=CALCULATE('Data'[Amount];FILTER(Data;Data[Country]<>"Denmark");FILTER(Data;RANKX(ALL(Data);[Amount])<=3))

 

It seems like rank ignore any filter before to the ranking.

 

Any suggestions?

 

/ Søren

 

1 ACCEPTED SOLUTION
Eric_Zhang
Employee
Employee


@SAM190370 wrote:

I would like to ranking a table.  This works fine with rankx.  However I would like to filter the table before making the ranking. However it seems like formula ignore the filtering. 

 

1) First you see the data

2) Ranking withour filtering

3) Ranking without Denmark

 

Capture.PNG

 

 

How should the measure look like? I have tried this one but it seems to sum up top 3 to 1000 - just ignorering the new ranking. 

 

Top3WithoutDenmark:=CALCULATE('Data'[Amount];FILTER(Data;Data[Country]<>"Denmark");FILTER(Data;RANKX(ALL(Data);[Amount])<=3))

 

It seems like rank ignore any filter before to the ranking.

 

Any suggestions?

 

/ Søren

 


@SAM190370

Maybe you can try a measure with more flexibility. Check more details in the attached pbix.

Top3ofAnySelectedCountry =
VAR TBL =
    SUMMARIZE ( Data, Data[Country], "sumtotal", SUM ( Data[Amount] ) )
VAR RNK_TBL =
    ADDCOLUMNS ( TBL, "RANK", RANKX ( TBL, [sumtotal],, DESC, DENSE ) )
RETURN
    SUMX ( FILTER ( RNK_TBL, [RANK] <= 3 ), [sumtotal] )

Capture.PNG

View solution in original post

4 REPLIES 4
Eric_Zhang
Employee
Employee


@SAM190370 wrote:

I would like to ranking a table.  This works fine with rankx.  However I would like to filter the table before making the ranking. However it seems like formula ignore the filtering. 

 

1) First you see the data

2) Ranking withour filtering

3) Ranking without Denmark

 

Capture.PNG

 

 

How should the measure look like? I have tried this one but it seems to sum up top 3 to 1000 - just ignorering the new ranking. 

 

Top3WithoutDenmark:=CALCULATE('Data'[Amount];FILTER(Data;Data[Country]<>"Denmark");FILTER(Data;RANKX(ALL(Data);[Amount])<=3))

 

It seems like rank ignore any filter before to the ranking.

 

Any suggestions?

 

/ Søren

 


@SAM190370

Maybe you can try a measure with more flexibility. Check more details in the attached pbix.

Top3ofAnySelectedCountry =
VAR TBL =
    SUMMARIZE ( Data, Data[Country], "sumtotal", SUM ( Data[Amount] ) )
VAR RNK_TBL =
    ADDCOLUMNS ( TBL, "RANK", RANKX ( TBL, [sumtotal],, DESC, DENSE ) )
RETURN
    SUMX ( FILTER ( RNK_TBL, [RANK] <= 3 ), [sumtotal] )

Capture.PNG

vanessafvg
Super User
Super User

@SAM190370

 

i think the issue is to do with your all statement, all removes the filter context, try allselected

 

Top3WithoutDenmark:=CALCULATE('Data'[Amount];FILTER(Data;Data[Country]<>"Denmark");FILTER(Data;RANKX(ALLSELECTED(Data);[Amount])<=3))





If I took the time to answer your question and I came up with a solution, please mark my post as a solution and /or give kudos freely for the effort 🙂 Thank you!

Proud to be a Super User!




@vanessafvg Thanks for your input.  Maybe I am doing something wrong as I can't make it work.??

 

/ Soren

@Eric_Zhang This is definitely a more flexible solution and it actually works very well.  However, in my real world situation I have several "countries" to select from and would like to deselect one.

 

Do you have any idea how I can write in the filter directly in the measure to make it work?

Helpful resources

Announcements
Microsoft Fabric Learn Together

Microsoft Fabric Learn Together

Covering the world! 9:00-10:30 AM Sydney, 4:00-5:30 PM CET (Paris/Berlin), 7:00-8:30 PM Mexico City

PBI_APRIL_CAROUSEL1

Power BI Monthly Update - April 2024

Check out the April 2024 Power BI update to learn about new features.

April Fabric Community Update

Fabric Community Update - April 2024

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