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

Enhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends September 15. Request your voucher.

Reply
Anonymous
Not applicable

Need Rank based on summarized value instead of Don't Summarize.

Hi Community,

I'm creating a table visual, having columns Unique_id, date, Sales, Quantity, UOM and a measure Unit Price.

Unit Price=  Divide(sum(Sales),sum(quantity))

Now I want to create a Rank Value based on Unit Price Measure, using below measure:

Rank= rankx(allselected('Table',[Unit Price], ,ASC)

When I pull this measure not getting correct value of rank.

When I do, don't summarize for Sales and Quantity in Values Pane , the value comes correct, but I need rank based summarization of Sales and Quantity. How to correct this Rank Value...

Please find the file link attached with this email:
https://drive.google.com/file/d/16huH-TAWp5T0etocUFMOfackCBeGpmce/view?usp=sharing

1 ACCEPTED SOLUTION
Anonymous
Not applicable

Hi @Anonymous ,

I updated your sample pbix file(see the attachment), please check whether that is what you want.

1. Update the formula of measure [Unit Price] as below

Unit Price = 
VAR _seluid =
    SELECTEDVALUE ( 'Table'[Unique_id] )
VAR _seluom =
    SELECTEDVALUE ( 'Table'[UOM] )
VAR _seldate =
    SELECTEDVALUE ( 'Table'[date] )
VAR _sumsales =
    CALCULATE (
        SUM ( 'Table'[Sales] ),
        FILTER (
            ALLSELECTED ( 'Table' ),
            'Table'[Unique_id] = _seluid
                && 'Table'[UOM] = _seluom
                && 'Table'[date] = _seldate
        )
    )
VAR _sumqty =
    CALCULATE (
        SUM ( 'Table'[Quantity] ),
        FILTER (
            ALLSELECTED ( 'Table' ),
            'Table'[Unique_id] = _seluid
                && 'Table'[UOM] = _seluom
                && 'Table'[date] = _seldate
        )
    )
RETURN
    DIVIDE ( _sumsales, _sumqty, 0 ) //DIVIDE(sum('Table'[Sales]),sum('Table'[Quantity]))

2. Update the formula of measure [] as below

Rank = RANKX ( ALLSELECTED ( 'Table' ), [Unit Price],, ASC, DENSE )

yingyinr_0-1654221278392.png

Best Regards

View solution in original post

4 REPLIES 4
Ashish_Mathur
Super User
Super User

Hi,

This measure works.  Download the PBI file from here.

 

Rank 2 = if(isblank([Unit Price]),blank(),RANKX(filter(generate(all('Calendar'[Date]),generate(ALL('Table'[Unique_id]),all('Table'[UOM]))),[Total quantity]<>blank()),[Unit Price],,ASC))

 

Hope this helps.

Untitled.png


Regards,
Ashish Mathur
http://www.ashishmathur.com
https://www.linkedin.com/in/excelenthusiasts/
amitchandak
Super User
Super User

@Anonymous , Rank can change based on context

Lowset level of table

 

Rank= rankx(allselected('Table') ,[Unit Price], ,ASC)

 

for product, any other column will give rank of product inside that column

Rank= rankx(allselected('Table'[Product]) ,[Unit Price], ,ASC)

 

Two columns

Rank= rankx(allselected('Table'[Product], 'Table'[Cagegory]) ,[Unit Price], ,ASC)

 

 

For Rank Refer these links
https://radacad.com/how-to-use-rankx-in-dax-part-2-of-3-calculated-measures
https://radacad.com/how-to-use-rankx-in-dax-part-1-of-3-calculated-columns

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
Anonymous
Not applicable

Only single column can be passed under allselected, I tried all option you shared. Can you please tried with shared file and any suggestion at top of it.

Anonymous
Not applicable

Hi @Anonymous ,

I updated your sample pbix file(see the attachment), please check whether that is what you want.

1. Update the formula of measure [Unit Price] as below

Unit Price = 
VAR _seluid =
    SELECTEDVALUE ( 'Table'[Unique_id] )
VAR _seluom =
    SELECTEDVALUE ( 'Table'[UOM] )
VAR _seldate =
    SELECTEDVALUE ( 'Table'[date] )
VAR _sumsales =
    CALCULATE (
        SUM ( 'Table'[Sales] ),
        FILTER (
            ALLSELECTED ( 'Table' ),
            'Table'[Unique_id] = _seluid
                && 'Table'[UOM] = _seluom
                && 'Table'[date] = _seldate
        )
    )
VAR _sumqty =
    CALCULATE (
        SUM ( 'Table'[Quantity] ),
        FILTER (
            ALLSELECTED ( 'Table' ),
            'Table'[Unique_id] = _seluid
                && 'Table'[UOM] = _seluom
                && 'Table'[date] = _seldate
        )
    )
RETURN
    DIVIDE ( _sumsales, _sumqty, 0 ) //DIVIDE(sum('Table'[Sales]),sum('Table'[Quantity]))

2. Update the formula of measure [] as below

Rank = RANKX ( ALLSELECTED ( 'Table' ), [Unit Price],, ASC, DENSE )

yingyinr_0-1654221278392.png

Best Regards

Helpful resources

Announcements
August Power BI Update Carousel

Power BI Monthly Update - August 2025

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

August 2025 community update carousel

Fabric Community Update - August 2025

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