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
laciodrom_80
Helper IV
Helper IV

DAX HELP: TOPN VALUE IGNORING REPETITIONS

Hi all,

 

I' ve got a table A with a column Sales containing int numbers: I'd like to create a new table B from table A populated with all the rows containing the 4 greatest numbers (maintaining repetitions) which are in the column:

 

For example, having thiscolumn "Sales" in table A:

10

3

1

20

20

5

4

5

 

Rows in table B should contain these values in column Sales:

20

20

10

5

5

4

 

I am not able to use TOPN function for this issue, any clue? 

 

Thanks in advance!

 

Luca
7 REPLIES 7
V-pazhen-msft
Community Support
Community Support

@laciodrom_80 

Create Table B with something like this:

 

Table B = CALCULATETABLE(VALUES('Table A'),FILTER('Table A',RANKX('Table A',[Column],,DESC,Dense)<=4))

 

 

Paul Zheng
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

 

@amitchandak . @V-pazhen-msft  thanks for suggestions, RANKX came to mind to me too, but I noticed that in Direct Query mode it isn't supported 😢

 

Is there a workaround to achieve the goal in direct query? I've also tried to use COUNTROWS but with the same result of RANKX 😭

 

Thanks!

Luca

@laciodrom_80 

There is a workaround with DQ mode, you can find the value of the 4th rank, then return all values that are >= to the 4th ranked value.

 

Table B = 
var rank4value= CALCULATE(SUM('Table A'[Value]),FILTER('Table A',RANKX('Table A',[Value],,DESC,Dense)=4))
Return CALCULATETABLE(VALUES('Table A'),FILTER('Table A','Table A'[Value]>=rank4value))

 

 

Paul Zheng
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

@V-pazhen-msft

but in your example you are still using the RANKX function to find rank4value,it is not supported in DQ mode....

Luca

@laciodrom_80 

Rankx is not supported because it cannot return repetitive values, you can still create ranks. And thsi dax works with my sample DQ file, give it a try.

 

Paul Zheng

@V-pazhen-msft 

 

Ok, you're right, but creating a new table as I thought to do, my report switches to mixed mode, instead I'd like to mantain DQ. In practice I wish to display as columns in a matrix the four 4 greatest numbers (in reality the corresponding labels in another column). Yes if I created a table like you suggested and how I thought to do in a first moment, I could reach the goal but I should turn into mixed mode and I wouldn't. What would you suggest? Is it possible? 

 

Thanks a lot

Luca
amitchandak
Super User
Super User

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.