Find everything you need to get certified on Fabric—skills challenges, live sessions, exam prep, role guidance, and more. Get started
Hi everyone,
I need to use the ALL function for a variable table that is calculating rankings.
This is what I am doing:
I need to use the ALL function within MAXX in my variable table "_AllTableRanking".
However, the ALL function does not accept a variable table.
Is there any way to get the same result?
Solved! Go to Solution.
I think what's tripping you up is the column you are sorting data[Info] by isn't getting cleared out.
I've written about this before here
https://www.linkedin.com/feed/update/urn:li:linkedInArticle:7023407171707015168/
The SQLBI guys wrote about it first.
https://www.sqlbi.com/articles/side-effects-in-dax-of-the-sort-by-column-setting/
I'm not sure exactly if this is what you're after but it might be a good starting place:
VAR _MyInfoNeeded = "My info needed"
VAR _Avg_MyInfoNeeded = [Avg $ My info needed only]
VAR _AllSelectedInfos_ = ALLSELECTED ( data[Info] )
VAR _AllRelevantInfos_ =
FILTER (
ALL ( data[Info], data[Location Order] ),
data[Info] IN _AllSelectedInfos_ || data[Info] = _MyInfoNeeded
)
VAR _Avgs_ = ADDCOLUMNS ( _AllRelevantInfos_, "@Avg", [Average $] )
VAR _Rank = RANKX ( _Avgs_, [@Avg], _Avg_MyInfoNeeded, ASC, DENSE )
RETURN
_Rank
The key part is that you need to include both data[Info] and data[Location Order] when using ALL or ALLSELECTED.
How would you expect
FILTER(_AllTableRanking, [Info] = "My info needed")
to behave differently than
FILTER(ALL(_AllTableRanking), [Info] = "My info needed")
if that were valid syntax?
Hi @AlexisOlson first of all, thanks for checking out my topic.
Consider a scenario where I select three values from a slicer, Info 1 and Info 2 and "My info needed". With "My info needed" included in the selection, the ranking works correctly.
For example, with Info 1, Info 2 and My info Needed selected, the correct result in a table view is:
Info Rank
Info | Rank |
Info 1 | 1 |
Info 2 | 1 |
My info Needed | 1 |
The rank is always 1, because I am forcing it here:
FILTER(_AllTableRanking, [Info] = "My info needed")
However, if I remove "My info needed" from the slicer, the ranking changes to Rank 3, but I need it to stay at Rank 1.
Info Rank
Info | Rank |
Info 1 | 3 |
Info 2 | 3 |
Even forcing it here:
Not sure if I managed to explain the topic well. I hope so.
Hmm. This is a bit tricky without having your pbix to test against.
Does it help if you break up the measure calculation and the RANKX?
VAR _Table1 = FILTER ( ALLSELECTED ( Table1[Info] ), NOT ( ISBLANK ( [Measure] ) ) )
VAR _Table2_Forced_Selection = FILTER ( ALL ( Table1[Info] ), Table1[Info] = "My info needed" )
VAR _Table_With_Forced_Selection = DISTINCT ( UNION ( _Table1, _Table2_Forced_Selection ) )
VAR _Table_With_Measure = ADDCOLUMNS ( _Table_With_Forced_Selection, "@Measure", [Measure] )
VAR _AllTableRanking =
ADDCOLUMNS (
_Table_With_Measure,
"Rank", RANKX ( _Table_With_Measure, [@Measure], , DESC, DENSE )
)
VAR _Rank =
MAXX (
FILTER ( _AllTableRanking, [Info] = "My info needed" ),
[Rank]
)
Hey @AlexisOlson unfortunately, it didn't work. The results are the same.
I tried to replicate it in this sample file, hope it help.
I think what's tripping you up is the column you are sorting data[Info] by isn't getting cleared out.
I've written about this before here
https://www.linkedin.com/feed/update/urn:li:linkedInArticle:7023407171707015168/
The SQLBI guys wrote about it first.
https://www.sqlbi.com/articles/side-effects-in-dax-of-the-sort-by-column-setting/
I'm not sure exactly if this is what you're after but it might be a good starting place:
VAR _MyInfoNeeded = "My info needed"
VAR _Avg_MyInfoNeeded = [Avg $ My info needed only]
VAR _AllSelectedInfos_ = ALLSELECTED ( data[Info] )
VAR _AllRelevantInfos_ =
FILTER (
ALL ( data[Info], data[Location Order] ),
data[Info] IN _AllSelectedInfos_ || data[Info] = _MyInfoNeeded
)
VAR _Avgs_ = ADDCOLUMNS ( _AllRelevantInfos_, "@Avg", [Average $] )
VAR _Rank = RANKX ( _Avgs_, [@Avg], _Avg_MyInfoNeeded, ASC, DENSE )
RETURN
_Rank
The key part is that you need to include both data[Info] and data[Location Order] when using ALL or ALLSELECTED.
Hey @AlexisOlson, thanks a lot for your help! The solution you provided was just what I needed. Your article and the article from SQLBI you shared were really helpful and gave me great insights. I appreciate your time and effort in helping me out.
Check out the September 2024 Power BI update to learn about new features.
Learn from experts, get hands-on experience, and win awesome prizes.
User | Count |
---|---|
113 | |
99 | |
85 | |
35 | |
35 |
User | Count |
---|---|
152 | |
107 | |
78 | |
60 | |
56 |