Forum Discussion
icdns
4 years agoPost Patron
Dynamic based on filters selected: Top 5 and Others (RANK)
Hi everyone, Would like to ask for your help as I have a list of Categories and I want to group them by Top 5 and the rest will be grouped as "Others" and as I filter my dimension the Ranking of...
- 4 years ago
Hi,
Thank you for your message.
Could you please check the below and the attached pbix file, whether it suits your requirement?
New Table 2 = VAR _topNnumber = 5 VAR _totalsales = SUM ( Sales2[Sales] ) VAR _topfivesales = CALCULATE ( SUM ( Sales2[Sales] ), TOPN ( 5, SUMMARIZE ( Sales2, Sales2[Category] ), CALCULATE ( SUM ( Sales2[Sales] ) ), DESC ) ) VAR _topfivetable = ADDCOLUMNS ( TOPN ( _topNnumber, SUMMARIZE ( Sales2, Sales2[Category] ), CALCULATE ( SUM ( Sales2[Sales] ) ), DESC ), "@Sales", CALCULATE ( SUM ( Sales2[Sales] ) ), "@Ranking", RANKX ( SUMMARIZE ( Sales2, Sales2[Category] ), CALCULATE ( SUM ( Sales2[Sales] ) ), , DESC ), "@contribution", FORMAT ( CALCULATE ( SUM ( Sales2[Sales] ) ) / SUM ( Sales2[Sales] ), "#0.00%" ) ) VAR _otherstable = { ( "Others", _totalsales - _topfivesales, _topNnumber + 1, FORMAT ( ( _totalsales - _topfivesales ) / _totalsales, "#0.00%" ) ) } RETURN UNION ( _topfivetable, _otherstable )
icdns
4 years agoPost Patron
Hi Jihwan_Kim
Sorry I can't give you the exact powerbi file due to privacy concern but I can share you a similar data set. 🙂
Data set:
| Store Code | Category | Sales |
| Store A | Kitchen | 10,000 |
| Store B | Kitchen | 10,500 |
| Store C | Kitchen | 10,233 |
| Store A | Car Accessories | 9,900 |
| Store B | Car Accessories | 9,976 |
| Store C | Car Accessories | 9,988 |
| Store A | School Supplies | 8,876 |
| Store B | School Supplies | 8,865 |
| Store C | School Supplies | 8,954 |
| Store A | Food Groceries | 7,655 |
| Store B | Food Groceries | 7,765 |
| Store C | Food Groceries | 7,888 |
| Store A | Pet Supplies | 6,666 |
| Store B | Pet Supplies | 6,655 |
| Store C | Pet Supplies | 6,443 |
| Store A | Household Supplies | 5,476 |
| Store B | Household Supplies | 5,463 |
| Store C | Household Supplies | 5,577 |
| Store A | Bathroon Accessories | 4,888 |
| Store B | Bathroon Accessories | 4,909 |
| Store C | Bathroon Accessories | 4,382 |
| Store A | Garden Accessories | 3,788 |
| Store B | Garden Accessories | 3,888 |
| Store C | Garden Accessories | 3,222 |
| Store A | Baking Materials | 2,100 |
| Store B | Baking Materials | 2,000 |
| Store C | Baking Materials | 2,883 |
| TOTAL | 178,940 |
Expectation:
| Category | Rank | Sales | Sales Contribution % |
| Kitchen | 1 | 30,733 | 17.18% |
| Car Accessories | 2 | 29,864 | 16.69% |
| School Supplies | 3 | 26,695 | 14.92% |
| Food Groceries | 4 | 23,308 | 13.03% |
| Pet Supplies | 5 | 19,764 | 11.05% |
| OTHERS | 6 | 48,576 | 27.15% |
| Overall Total | 178,940 | 100.00% |
Thank you in advance!
Jihwan_Kim
4 years agoSuper User
Hi,
Thank you for your message.
Could you please check the below and the attached pbix file, whether it suits your requirement?
New Table 2 =
VAR _topNnumber = 5
VAR _totalsales =
SUM ( Sales2[Sales] )
VAR _topfivesales =
CALCULATE (
SUM ( Sales2[Sales] ),
TOPN (
5,
SUMMARIZE ( Sales2, Sales2[Category] ),
CALCULATE ( SUM ( Sales2[Sales] ) ), DESC
)
)
VAR _topfivetable =
ADDCOLUMNS (
TOPN (
_topNnumber,
SUMMARIZE ( Sales2, Sales2[Category] ),
CALCULATE ( SUM ( Sales2[Sales] ) ), DESC
),
"@Sales", CALCULATE ( SUM ( Sales2[Sales] ) ),
"@Ranking",
RANKX (
SUMMARIZE ( Sales2, Sales2[Category] ),
CALCULATE ( SUM ( Sales2[Sales] ) ),
,
DESC
),
"@contribution", FORMAT ( CALCULATE ( SUM ( Sales2[Sales] ) ) / SUM ( Sales2[Sales] ), "#0.00%" )
)
VAR _otherstable =
{
( "Others", _totalsales - _topfivesales, _topNnumber + 1, FORMAT ( ( _totalsales - _topfivesales ) / _totalsales, "#0.00%" ) )
}
RETURN
UNION ( _topfivetable, _otherstable )
- icdns4 years agoPost Patron
Hi Jihwan_Kim ,
Thank you so much! This one worked! 🙂
However, is it possible to exclude one Category from the Ranking? Let's say the Kitchen..
So in this case Car Accessories is the top 1 🙂 And also can be dynamically filtered by a dimension? Lets say the store code? 🙂
Category Rank Sales Sales Contribution % Kitchen 1 30,733 17.18% Car Accessories 2 29,864 16.69% School Supplies 3 26,695 14.92% Food Groceries 4 23,308 13.03% Pet Supplies 5 19,764 11.05% OTHERS 6 48,576 27.15%