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

The ultimate Microsoft Fabric, Power BI, Azure AI & SQL learning event! Join us in Las Vegas from March 26-28, 2024. Use code MSCUST for a $100 discount. Register Now

Reply
DivyaReddy
Frequent Visitor

RankX for multiple columns with percentage and numbers

Dear PBI enthusiasts!

I have a requirement where I need to show the Top N of a column '%Profit' and if there is a tie then I need to use the column 'Total Sales'. I am using RankX for my first column but not getting the second column to be used when there is a tie. 

Any help would be greatly appreciated and thank you in advance!

DivyaReddy_0-1666291860207.png

 

1 ACCEPTED SOLUTION

Hi @DivyaReddy ,

try this measure

Rank =

VAR Rank1 =

RANKX(ALL(Facts),

     [% Profit]

)

VAR Rank2 =

    VAR CurrentProfit = [% Profit]

    RETURN

    RANKX(

     CALCULATETABLE(

                   FILTER(

                         ADDCOLUMNS(

                                   Facts,

                                 "@Total Sales",[Total Sales],

                                 "@%Profit",[% Profit]

                                  ),

                        [% Profit] = CurrentProfit

                         ),

              ALL('Facts')),

[Total Sales]

)

RETURN

Rank1*Rank2

 

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

View solution in original post

7 REPLIES 7
mangaus1111
Solution Sage
Solution Sage

Hi @DivyaReddy ,

 

try this calculated column:

 

RANK =
VAR _Rank =RANKX('Facts14',[%Profit])
RETURN
COUNTX(
       FILTER(
              'Facts14',
               'Facts14'[%Profit] = EARLIER('Facts14'[%Profit]) && 'Facts14'[Total Sales] > EARLIER('Facts14'[Total Sales])
             ),
       [Total Sales]
) + _Rank
 
Did I answer your question? Mark this post as a solution if I did!

 

This seems to have worked in theory but not sure why I get "Parameter not correct type" for "EARLIER('Facts14'[%Profit])" and EARLIER('Facts14'[Total Sales]) when I substituted my actual column and table names  They They are measures (not columns) in my actual data not sure if that matters?

Hi @DivyaReddy ,

try this measure

Rank =

VAR Rank1 =

RANKX(ALL(Facts),

     [% Profit]

)

VAR Rank2 =

    VAR CurrentProfit = [% Profit]

    RETURN

    RANKX(

     CALCULATETABLE(

                   FILTER(

                         ADDCOLUMNS(

                                   Facts,

                                 "@Total Sales",[Total Sales],

                                 "@%Profit",[% Profit]

                                  ),

                        [% Profit] = CurrentProfit

                         ),

              ALL('Facts')),

[Total Sales]

)

RETURN

Rank1*Rank2

 

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

Looking into it - thank u so much!

HI @DivyaReddy ,

Did I answer your question? Mark this post as a solution if I did!

mangaus1111
Solution Sage
Solution Sage

not very clear for me

Sorry abt that - updated the description and hopefully it is better now. 

Helpful resources

Announcements
Fabric Community Conference

Microsoft Fabric Community Conference

Join us at our first-ever Microsoft Fabric Community Conference, March 26-28, 2024 in Las Vegas with 100+ sessions by community experts and Microsoft engineering.

February 2024 Update Carousel

Power BI Monthly Update - February 2024

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

Fabric Career Hub

Microsoft Fabric Career Hub

Explore career paths and learn resources in Fabric.

Fabric Partner Community

Microsoft Fabric Partner Community

Engage with the Fabric engineering team, hear of product updates, business opportunities, and resources in the Fabric Partner Community.