Power BI is turning 10! Tune in for a special live episode on July 24 with behind-the-scenes stories, product evolution highlights, and a sneak peek at what’s in store for the future.
Save the dateJoin us for an expert-led overview of the tools and concepts you'll need to become a Certified Power BI Data Analyst and pass exam PL-300. Register now.
Hello,
I like to count the rank of prices.
I have the following (example) table:
article | price | Account_No | Account_Name | Group1 | Group2 |
A | 9 | 60000 | Hans | 525A | EPS |
A | 10 | 50000 | Meier | 525A | EPS |
A | 11 | 40000 | Schulz | 525A | EPS |
A | 12 | 30000 | Friedel | 525A | EPS |
A | 13 | 20000 | Thomas | 525A | EPS |
B | 20 | 60000 | Hans | 525A | EPS |
B | 22 | 20000 | Thomas | 525A | EPS |
B | 10 | 40000 | Schulz | 525A | EPS |
C | 30 | 50000 | Meier | 525A | EPS |
C | 32 | 60000 | Hans | 525A | EPS |
C | 11 | 40000 | Schulz | 525A | EPS |
D | 12 | 50000 | Meier | 925A | EPS |
D | 13 | 40000 | Schulz | 925A | EPS |
D | 10 | 30000 | Friedel | 925A | EPS |
E | 9 | 20000 | Thomas | 925A | EPS |
E | 20 | 60000 | Hans | 925A | EPS |
E | 22 | 20000 | Thomas | 925A | EPS |
E | 10 | 40000 | Schulz | 925A | EPS |
F | 30 | 50000 | Meier | 925A | EPS |
F | 32 | 60000 | Hans | 925A | EPS |
With the both measures:
Price_:=MAX(Prices_History[price])
Preis_Rank:=RANKX(ALLSELECTED(Prices_History[Account_Name]);[Price_];[Price_];;Dense )
I can analyze the data in a PivotTable like this (works perfekt):
Now, what I need is (a measure) to COUNT the Rank per ACCOUNT and Group1, this should be like this:
(I think) I can't use a calculated column with the rank, because I will use a slicer for account and Group2, so I need a dynamic rank.
Can anybody help with this?
Solved! Go to Solution.
STEP 1:
Create this calculated table:
Parater Rank Table = SELECTCOLUMNS( {1,2,3,4,5}, "Rank_Value",[Value] )
STEP 2: Create this measure:
Rank Count =
VAR _current_rank_parameter = SELECTEDVALUE('Parater Rank Table'[Rank_Value])
VAR _result =
COUNTROWS(
FILTER(
ADDCOLUMNS(
VALUES(Prices_History[article]),
"@Rank", [Preis_Rank]
),
[@Rank] = _current_rank_parameter )
)
RETURN IF(ISINSCOPE(Prices_History[Group1]),_result)
STEP 3:
Put the column from the parameter table on the columns of the matrix and the measue in the values (in the rows put what you put in your pic)
@German_Chris my pleasure 🙂
Hey, check out my showcase report:
https://community.powerbi.com/t5/Data-Stories-Gallery/SpartaBI-Feat-Contoso-100K/td-p/2449543
Give it a thumbs over there up if you liked it 🙂
STEP 1:
Create this calculated table:
Parater Rank Table = SELECTCOLUMNS( {1,2,3,4,5}, "Rank_Value",[Value] )
STEP 2: Create this measure:
Rank Count =
VAR _current_rank_parameter = SELECTEDVALUE('Parater Rank Table'[Rank_Value])
VAR _result =
COUNTROWS(
FILTER(
ADDCOLUMNS(
VALUES(Prices_History[article]),
"@Rank", [Preis_Rank]
),
[@Rank] = _current_rank_parameter )
)
RETURN IF(ISINSCOPE(Prices_History[Group1]),_result)
STEP 3:
Put the column from the parameter table on the columns of the matrix and the measue in the values (in the rows put what you put in your pic)
@SpartaBI
many thanks!
For Excel I had to change something.
1. I don´t know how to create a calculated Table in PowerPivot, so I create a "normal" Table an imported it to the model.
2. Function SELECTEDCOLUMNS does not exists in PowerPIvot-Dax, so I replace it with
VAR current_rank_parameter = IF(HASONEVALUE(Rank_Table[Rank_Value]);VALUES(Rank_Table[Rank_Value]))
3. Function ISINSCOPE does not exist in PowerPIvot-Dax, I'ed replace it with HASONEVALUE()
RETURN IF(HASONEVALUE(Prices_History[Group1]); result)
Result is as exspacted
BR German_Chris
Check out the July 2025 Power BI update to learn about new features.
This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.
User | Count |
---|---|
17 | |
8 | |
7 | |
7 | |
6 |
User | Count |
---|---|
23 | |
11 | |
10 | |
9 | |
8 |