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

Get Fabric Certified for FREE during Fabric Data Days. Don't miss your chance! Learn more

Reply
ngocnguyen
Helper IV
Helper IV

TopN for multiple column

Hi all

I have the input data as Table 1

 

I wanna create 2 ouput table as Table 2 & Table 3 with below logics:

- Getting Top N Category  by Qty ( A & C)

- For each categories (A,C) --> Getting Top 2 of Route by Qty  ( A: route X & Y, C: route X & H)

- Showing Only model & Qty of  Biggest Category & Route -> Result : Table 2 (Category: A, route x, y)

- Showing Only model & Qty of  2nd Biggest Category & Route -> Result : Table 3 (Category: C, route x, h)

 

Is there any way to create measure to get the above results?

 

 

cap2.PNG

1 ACCEPTED SOLUTION
Jihwan_Kim
Super User
Super User

Hi,

Please check the below picture and the attached pbix file.

 

Jihwan_Kim_1-1664443256648.png

 

Jihwan_Kim_2-1664443270623.png

 

New Table 2 = 
VAR _RankCat =
    ADDCOLUMNS (
        DISTINCT ( Data[Cat] ),
        "@rank", RANKX ( DISTINCT ( Data[Cat] ), CALCULATE ( SUM ( Data[Qty] ) ),, DESC )
    )
VAR _toponecat =
    SUMMARIZE ( FILTER ( _RankCat, [@rank] = 1 ), Data[Cat] )
VAR _newtable =
    SUMMARIZE ( FILTER ( Data, Data[Cat] IN _toponecat ), Data[Route], Data[Qty] )
VAR _toptworoute =
    SUMMARIZE ( TOPN ( 2, _newtable, Data[Qty], DESC ), Data[Route] )
RETURN
    SUMMARIZE (
        FILTER ( Data, Data[Cat] IN _toponecat && Data[Route] IN _toptworoute ),
        Data[Model],
        Data[Qty]
    )

 

 

New Table 3 = 
VAR _RankCat =
    ADDCOLUMNS (
        DISTINCT ( Data[Cat] ),
        "@rank", RANKX ( DISTINCT ( Data[Cat] ), CALCULATE ( SUM ( Data[Qty] ) ),, DESC )
    )
VAR _toptwocat =
    SUMMARIZE ( FILTER ( _RankCat, [@rank] = 2 ), Data[Cat] )
VAR _newtable =
    SUMMARIZE ( FILTER ( Data, Data[Cat] IN _toptwocat ), Data[Route], Data[Qty] )
VAR _toptworoute =
    SUMMARIZE ( TOPN ( 2, _newtable, Data[Qty], DESC ), Data[Route] )
RETURN
    SUMMARIZE (
        FILTER ( Data, Data[Cat] IN _toptwocat && Data[Route] IN _toptworoute ),
        Data[Model],
        Data[Qty]
    )

 


If this post helps, then please consider accepting it as the solution to help other members find it faster, and give a big thumbs up.


Click here to visit my LinkedIn page

Click here to schedule a short Teams meeting to discuss your question.

View solution in original post

1 REPLY 1
Jihwan_Kim
Super User
Super User

Hi,

Please check the below picture and the attached pbix file.

 

Jihwan_Kim_1-1664443256648.png

 

Jihwan_Kim_2-1664443270623.png

 

New Table 2 = 
VAR _RankCat =
    ADDCOLUMNS (
        DISTINCT ( Data[Cat] ),
        "@rank", RANKX ( DISTINCT ( Data[Cat] ), CALCULATE ( SUM ( Data[Qty] ) ),, DESC )
    )
VAR _toponecat =
    SUMMARIZE ( FILTER ( _RankCat, [@rank] = 1 ), Data[Cat] )
VAR _newtable =
    SUMMARIZE ( FILTER ( Data, Data[Cat] IN _toponecat ), Data[Route], Data[Qty] )
VAR _toptworoute =
    SUMMARIZE ( TOPN ( 2, _newtable, Data[Qty], DESC ), Data[Route] )
RETURN
    SUMMARIZE (
        FILTER ( Data, Data[Cat] IN _toponecat && Data[Route] IN _toptworoute ),
        Data[Model],
        Data[Qty]
    )

 

 

New Table 3 = 
VAR _RankCat =
    ADDCOLUMNS (
        DISTINCT ( Data[Cat] ),
        "@rank", RANKX ( DISTINCT ( Data[Cat] ), CALCULATE ( SUM ( Data[Qty] ) ),, DESC )
    )
VAR _toptwocat =
    SUMMARIZE ( FILTER ( _RankCat, [@rank] = 2 ), Data[Cat] )
VAR _newtable =
    SUMMARIZE ( FILTER ( Data, Data[Cat] IN _toptwocat ), Data[Route], Data[Qty] )
VAR _toptworoute =
    SUMMARIZE ( TOPN ( 2, _newtable, Data[Qty], DESC ), Data[Route] )
RETURN
    SUMMARIZE (
        FILTER ( Data, Data[Cat] IN _toptwocat && Data[Route] IN _toptworoute ),
        Data[Model],
        Data[Qty]
    )

 


If this post helps, then please consider accepting it as the solution to help other members find it faster, and give a big thumbs up.


Click here to visit my LinkedIn page

Click here to schedule a short Teams meeting to discuss your question.

Helpful resources

Announcements
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!

October Power BI Update Carousel

Power BI Monthly Update - October 2025

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

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