This time we’re going bigger than ever. Fabric, Power BI, SQL, AI and more. We're covering it all. You won't want to miss it.
Learn moreLevel up your Power BI skills this month - build one visual each week and tell better stories with data! Get started
No filters, nothing extraneous. Within a single table, CSD, I have a ranking measure that works just fine, grouped by project_id.
Rank (by Actual) =
VAR ThisActual = [Actual]
RETURN
IF(ISBLANK(ThisActual),BLANK(),RANKX(ALLSELECTED( CSD[Project_id] ),[Actual],,DESC,Dense))
However, when I reference project_id in Project, which is related on project_id, all of the rankings go to 1. It is a simple one to many relationship on project_id.
In the linked model I have three tables visuals. The second and third should be identical. The first should give me rankings based on ProjectName.
Can someone explain what is going on?
Phil
Solved! Go to Solution.
Hi @PhilSmith
That’s expected behavior. The measure is only modifying the filter context of the CSD[Project_id] column. Once additional columns are added to the visual, the filter context is split across each distinct combination of those columns. As a result, the calculation is evaluated within those more granular contexts, which changes the result. Instead apply ALLSELECTED to the Project table so whatever columns is used from this table respect the ranking. Also, don't use CSD[Project_id] in the visual.
Licensee Rank (by Actual) =
VAR ThisActual = [Actual]
RETURN
IF (
ISBLANK ( ThisActual ),
BLANK (),
RANKX ( ALLSELECTED ( Project ), [Actual],, DESC, DENSE )
)
Hi @PhilSmith
I wanted to check if you had the opportunity to review the information provided. Please feel free to contact us if you have any further questions.
Thank you.
Hi @PhilSmith
That’s expected behavior. The measure is only modifying the filter context of the CSD[Project_id] column. Once additional columns are added to the visual, the filter context is split across each distinct combination of those columns. As a result, the calculation is evaluated within those more granular contexts, which changes the result. Instead apply ALLSELECTED to the Project table so whatever columns is used from this table respect the ranking. Also, don't use CSD[Project_id] in the visual.
Licensee Rank (by Actual) =
VAR ThisActual = [Actual]
RETURN
IF (
ISBLANK ( ThisActual ),
BLANK (),
RANKX ( ALLSELECTED ( Project ), [Actual],, DESC, DENSE )
)
Hi,
Revise the measure to
Licensee Rank (by Actual) =
VAR ThisActual = [Actual]
RETURN
IF(ISBLANK(ThisActual),
BLANK(),
RANKX(ALLSELECTED(Project[project_id] ),[Actual],,DESC,Dense))
hi @PhilSmith
In the Project table, each row corresponds to a single project. That means when the measure evaluates, the context only contains one Project_ID. Ranking across a single value, always returns 1—because there’s nothing else to compare against in that context.
Try This,
RANKX(
ALLSELECTED(Project[Project_id]),
[Actual],
,
DESC,
Dense
)
I can see the correct answer now
Regards,
Check out the April 2026 Power BI update to learn about new features.
Sign up to receive a private message when registration opens and key events begin.
If you have recently started exploring Fabric, we'd love to hear how it's going. Your feedback can help with product improvements.
| User | Count |
|---|---|
| 36 | |
| 28 | |
| 28 | |
| 20 | |
| 18 |
| User | Count |
|---|---|
| 66 | |
| 36 | |
| 33 | |
| 26 | |
| 24 |