Don't miss your chance to take the Fabric Data Engineer (DP-700) exam on us!
Learn moreNext up in the FabCon + SQLCon recap series: The roadmap for Microsoft SQL and Maximizing Developer experiences in Fabric. All sessions are available on-demand after the live show. Register now
Hello guys
I am trying within one measure to generate the ranking by country based on ACT vs BUD.
The fact table and the dimension table DimEntities are connected in the model.
The fact table has only one column with the values, and one column to differenciate the scenario (so ACT, BUD etc).
I understand that RANKX works in row context, so i barely can use it on already existing measures. That is why i am trying to build these virtual tables.
I understood as well that to calculate ACT - BUD, they have first to be created in a first virtual table.
Now i am getting nuts, because whatever i do, i get the ranking "1" for all countries.
Here is the DAX code i use:
Solved! Go to Solution.
Hi guys
I think i found the solution:
Hi guys
Following this idea
Hi guys
I think i found the solution:
Glad you could resolve it.
RANKX is simple function but not easy to use.
I am adding for others future reference and for you also:
I believe you are looking to calculate rank dynamically based on multiple (table) columns.
You can check this article for more understanding:
https://www.sqlbi.com/articles/rankx-on-multiple-columns-with-dax-and-power-bi/
Section: Dynamic ranking on Rounded Sales and customer name
https://www.sqlbi.com/articles/introducing-rankx-in-dax/
https://blog.enterprisedna.co/rankx-dax-function-in-power-bi-a-comprehensive-overview/
I am still puzzled , whether this approach works or not in your scenario:
I created Profit measure as below
I created rank measure as below
Rank Profit By Product Category By Sales Territory Country =
IF ( HASONEVALUE('Product'[Category]) && HASONEVALUE('Sales Territory'[Country]) && not ISBLANK(Sales[Profit]),
RANKX ( ALLSELECTED(Sales), CALCULATE( [Profit], ALLEXCEPT(Sales, 'Product'[Category], 'Sales Territory'[Country])) , , DESC, DENSE)
)
I see the output as below
🙂
I am now trying my luck with the no so communicated function "RANK", without "X".
If somebody has ideas there...
Cheers
@Anonymous, Try like
rankx(
SUMMARIZE(
allselected('Fact'),
'Fact'[Date],
'Fact'[Entity],
DimEntities[Country]), CALCULATE( SUM('Fact'[Value]), 'Fact'[Scenario]= "Actual")- CALCULATE(SUM('Fact'[Value]), 'Fact'[Scenario]= "Budget"),,desc,dense)
Power BI Rank Across dimension tables: https://youtu.be/X59qp5gfQoA
Hi
Thanks amitchandak!
Unfortunately it does not solve the problem.
Somehow the ranking is now from 1 to 4.
Any idea how i could debug this?
I am trying further based on your idea.
Cheers
G.
To debug, you can see what is the data coming upto here, like creating dax table
nice, but still not working 😞
At the end, i need to have it in working measure.
Going now to bed. Perhaps tomorrow will solve it. Cheers
Hi guys
Following this idea
If you have recently started exploring Fabric, we'd love to hear how it's going. Your feedback can help with product improvements.
A new Power BI DataViz World Championship is coming this June! Don't miss out on submitting your entry.
Share feedback directly with Fabric product managers, participate in targeted research studies and influence the Fabric roadmap.
| User | Count |
|---|---|
| 47 | |
| 44 | |
| 40 | |
| 18 | |
| 18 |
| User | Count |
|---|---|
| 70 | |
| 68 | |
| 33 | |
| 32 | |
| 32 |