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
Floriankx
Solution Sage
Solution Sage

Rankx filter empty cells

Hello together,

 

I'm struggling with creating rank for projects when project cell is empty.

 

ProjectordervalueOrderRank
Project 1100$10.0001
 101$250.0005
Project 2102$15.0003
Project 1103$12.0002
Project 2104$80.0004


As you can see for order number 101 there is no Project reference.

 

Rank for order I created using:

OrderRank:=RANKX(ALL(fOrders[order]);[Selected TopN Value];;0)

This works great.

 

Adapting this to Project level PrjRank:=RANKX(ALL(fOrders[Project]);[Selected TopN Value];;0)

What I would like to have:

ProjectvalueProject Rank
Project 1$22.0001
Project 2$95.0002

 

What I unfortunately get:

ProjectvalueProject Rank
 $250.0001
Project 1$22.0002
Project 2$95.000

3

 

I have tried wrapping the all with a filter as well as wrapping the expresseion [Selected TopN Value] in a Calculate with filter but non of this worked. 

 

I've also checked:

https://community.powerbi.com/t5/Desktop/Rankx-with-filter/m-p/63457#M26162

https://community.powerbi.com/t5/Desktop/Rankx-with-filter/m-p/8213#M1308

 

I haven't found a solution yet.

Maybe there is a BI hero out there able to help me.

 

Best regards.

1 ACCEPTED SOLUTION
Zubair_Muhammad
Community Champion
Community Champion

@Floriankx

 

Try this MEASURE

 

ProjectLevelRank =
IF (
    NOT ( SELECTEDVALUE ( fOrders[Project] ) = BLANK () ),
    RANKX (
        FILTER ( ALLSELECTED ( fOrders[Project] ), fOrders[Project] <> BLANK () ),
        CALCULATE ( SUM ( fOrders[value] ) ),
        ,
        ASC,
        DENSE
    )
)

Regards
Zubair

Please try my custom visuals

View solution in original post

2 REPLIES 2
Zubair_Muhammad
Community Champion
Community Champion

@Floriankx

 

Try this MEASURE

 

ProjectLevelRank =
IF (
    NOT ( SELECTEDVALUE ( fOrders[Project] ) = BLANK () ),
    RANKX (
        FILTER ( ALLSELECTED ( fOrders[Project] ), fOrders[Project] <> BLANK () ),
        CALCULATE ( SUM ( fOrders[value] ) ),
        ,
        ASC,
        DENSE
    )
)

Regards
Zubair

Please try my custom visuals

Hello @Zubair_Muhammad,

 

Amazing! It works, I would never have figured this out by myself.

 

unfortunately SELECTEDVALUE isn't available to me, so I had to rephrase it with IF(HASONEVALUE(<column>);Values(<column))

Maybe I will find the time to understand this formula entirely.

 

Best regards.

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.