Power BI is turning 10, and we’re marking the occasion with a special community challenge. Use your creativity to tell a story, uncover trends, or highlight something unexpected.
Get startedJoin 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.
Hi Team,
I have a problem, I am trying to sort based upon the measure the hierarchy in matrix should be sorted in descending order
Measure
in my raw data the scenario column contains
Actual
Budget
MTP
RBU1
RBU2
Now when im trying to sort the matrix based upon the rankx
Hi @Varshini1234567,
I believe you need to tweak the DAX logic. Could you please use below DAX logic to get non blank projects
Rank =
Var LV = SELECTEDVALUE(RowMatrix[slicer column])
var nonblank = FILTER(
ALL(Raw_Data),
NOT(ISBLANK([Plan_3pages]))&&
Raw_Data[Scenario] = LV &&
Raw_Data[Project Name] <> BLANK()
)
RETURN
SWITCH(
TRUE(),
// Case: Project Name is visible in the matrix
ISINSCOPE(Raw_Data[Project Name]),
IF(
ISBLANK([Plan_3pages]), BLANK(),
RANKX(
nonblank,
[Plan_3pages],
,
DESC,
DENSE
),
BLANK()
),
// Budget
LV = "Budget", && ISINSCOPE(Raw_Data[pg Budget]),
IF(
CONTAINSSTRING(SELECTEDVALUE(Raw_Data[pg Budget]), "Others"),
999,
RANKX(
ALLSELECTED(Raw_Data[pg Budget]),
[Plan_3pages],
,
DESC,
DENSE
) *
RANKX(
ALLSELECTED(Raw_Data[SET Area]),
[Plan_3pages],
,
DESC,
DENSE
)
),
// MTP
LV = "MTP" && ISINSCOPE(Raw_Data[pg MTP]),
IF(
CONTAINSSTRING(SELECTEDVALUE(Raw_Data[pg MTP]), "Others"),
999,
RANKX(
ALLSELECTED(Raw_Data[pg MTP]),
[Plan_3pages],
,
DESC,
DENSE
) *
RANKX(
ALLSELECTED(Raw_Data[SET Area]),
[Plan_3pages],
,
DESC,
DENSE
)
),
LV = "RBU1" && ISINSCOPE(Raw_Data[pg rbu1]),
IF(
CONTAINSSTRING(SELECTEDVALUE(Raw_Data[pg rbu1]), "Others"),
999,
RANKX(
ALLSELECTED(Raw_Data[pg rbu1]),
[Plan_3pages],
,
DESC,
DENSE
) *
RANKX(
ALLSELECTED(Raw_Data[SET Area]),
[Plan_3pages],
,
DESC,
DENSE
)
),
LV = "RBU2" && ISINSCOPE(Raw_Data[pg rbu2]),
IF(
CONTAINSSTRING(SELECTEDVALUE(Raw_Data[pg rbu2]), "Others"),
999,
RANKX(
ALLSELECTED(Raw_Data[pg rbu2]),
[Plan_3pages],
,
DESC,
DENSE
) *
RANKX(
ALLSELECTED(Raw_Data[SET Area]),
[Plan_3pages],
,
DESC,
DENSE
)
),
BLANK()
)
Thanks,
If you found this solution helpful, please consider giving it a Like👍 and marking it as Accepted Solution✔. This helps improve visibility for others who may be encountering/facing same questions/issues.
Hi,
You can fix the sorting and blank issue with two key changes:
Exclude 'Actual' rows directly in your measure using:
Avoid ranking blank values to prevent them from appearing first:
Also, don’t use ALLSELECTED without filtering, as it brings back 'Actual'. Use FILTER(...) inside RANKX to exclude blanks and "Others" cleanly.
freginier
This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.
Check out the June 2025 Power BI update to learn about new features.
User | Count |
---|---|
79 | |
79 | |
58 | |
36 | |
33 |
User | Count |
---|---|
93 | |
59 | |
59 | |
49 | |
41 |