- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

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?
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

Hi,
Please check the below picture and the attached pbix file.
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.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content

Hi,
Please check the below picture and the attached pbix file.
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.

Helpful resources
Subject | Author | Posted | |
---|---|---|---|
09-19-2024 07:52 AM | |||
04-20-2023 09:31 AM | |||
05-06-2024 01:51 AM | |||
09-12-2024 06:51 PM | |||
05-08-2024 01:55 PM |
User | Count |
---|---|
121 | |
104 | |
85 | |
52 | |
46 |