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

The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now! Learn more

Reply
Ethanhunt123
Helper IV
Helper IV

Top N for only specific category (Avoid blanks)

I have a table that has 2 columns, Test_Name , Test_Value

Test_NameTest_Value
ABC10
SDF12
ERT14
ASD 

 

I have to find the top 1 Test_name based on the Test_value 

 

My DAX looks like this

 

Test =

CALCULATE (
( Test_Name),
TOPN ( 1, ALL(Test_Name) , Test_value DSC),
VALUES ( test_Name )
)
 
The output I am getting is ASD( which is not correct, it should not consider blank values) The output should be ERT
1 ACCEPTED SOLUTION
v-kelly-msft
Community Support
Community Support

Hi  @Ethanhunt123 ,

 

Create a measure as below:

Measure = 
CALCULATE(MAX('Table'[Test_Name]),TOPN(1,FILTER(ALL('Table'),'Table'[Test_Value]<>BLANK()),CALCULATE(MAX('Table'[Test_Value])),DESC))

And you will see:

Screenshot 2020-09-14 133540.png

For the related .pbix file,pls see attached.

 
Best Regards,
Kelly
Did I answer your question? Mark my post as a solution!

 

View solution in original post

5 REPLIES 5
negi007
Community Champion
Community Champion

@Ethanhunt123  You can create below simple measure to obtain the value against TOP value.

 

Top_Val = LOOKUPVALUE('Top N'[Test_Name],'Top N'[Test_Value],Max('Top N'[Test_Value]))
 
 
negi007_0-1600063341778.png

 

 




Did I answer your question? Mark my post as a solution!
Appreciate your Kudos



Proud to be a Super User!


Follow me on linkedin

v-kelly-msft
Community Support
Community Support

Hi  @Ethanhunt123 ,

 

Create a measure as below:

Measure = 
CALCULATE(MAX('Table'[Test_Name]),TOPN(1,FILTER(ALL('Table'),'Table'[Test_Value]<>BLANK()),CALCULATE(MAX('Table'[Test_Value])),DESC))

And you will see:

Screenshot 2020-09-14 133540.png

For the related .pbix file,pls see attached.

 
Best Regards,
Kelly
Did I answer your question? Mark my post as a solution!

 

PaulDBrown
Community Champion
Community Champion

@Ethanhunt123 

 

Use RANKX instead of TOPN

(The name of the table in my exampe is 'TopN')

 

 

Rank Value = RANKX(ALL('TopN'), [Sum of Value],,DESC)

 

 

result.JPG

 

and if you want a measure for the top name only:

 

 

Top Name for Card Visual = CALCULATE(MAX('TopN'[Test_Name]), FILTER('TopN', [Rank Value] = 1))

 

 

card vis.JPG

 





Did I answer your question? Mark my post as a solution!
In doing so, you are also helping me. Thank you!

Proud to be a Super User!
Paul on Linkedin.






amitchandak
Super User
Super User

@Ethanhunt123 , Try like measures like

 

measure = calculate(sum(Test_Value), filter(Table,not(isblank(Table[Test_Value]))))

 

CALCULATE (
[measure],
TOPN ( 1, ALL(Test_Name) , [measure] DSC),
VALUES ( test_Name )
)

Share with Power BI Enthusiasts: Full Power BI Video (20 Hours) YouTube
Microsoft Fabric Series 60+ Videos YouTube
Microsoft Fabric Hindi End to End YouTube

The output would be Test_name, This is still giving me TEST_Name with the blank value

Helpful resources

Announcements
November Power BI Update Carousel

Power BI Monthly Update - November 2025

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

Fabric Data Days Carousel

Fabric Data Days

Advance your Data & AI career with 50 days of live learning, contests, hands-on challenges, study groups & certifications and more!

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.

Top Solution Authors
Top Kudoed Authors