Starting December 3, join live sessions with database experts and the Microsoft product team to learn just how easy it is to get started
Learn moreShape the future of the Fabric Community! Your insights matter. That’s why we created a quick survey to learn about your experience finding answers to technical questions. Take survey.
Hi,
i have a special problem and no good solution right now for this case. I have KPI which are group by categories.
Costs: is, calculated, should
profit: is, calculated
No i try to sort this KPI in their own sub group:
The problem ist, that the KPI "is, calculated and should" have their order 1,2,3
But it can happened that in a other group is and calculated have a opposite order 2,1 (see red box)
I try to solve it to create a own column for this sorting and to have the KPI-GROUP-KPI column for unique values:
and create a relationsship via KPI-group-KPI
But how it is possible to sort a column in one case after one column and in another case after a other column.
Some tricks like to add space after "is" is not a solution to create unique values in the table: "is " or "is "
I want to avoid additional tables.
Did someone have a smart solution?
Thank you!
Solved! Go to Solution.
Hi @andhiii102030 ,
What problem do you encounter here? I think concatenating strings is a valid solution.
Some tricks like to add space after "is" is not a solution to create unique values in the table: "is " or "is "
Here are my steps:
1.Creating an index column after grouping in Power Query(The index column is not used for the final sort)
2.Use the following DAX expression to create columns
Column = [Count.Sort column] & REPT(" ",[Index])
Column 2 = SWITCH(
TRUE(),
[Count.KPI] = "costs" && [Count.Sort column] = "is",1,
[Count.KPI] = "costs" && [Count.Sort column] = "calculated",2,
[Count.KPI] = "costs" && [Count.Sort column] = "should",3,
[Count.KPI] = "profit" && [Count.Sort column] = "is",2,
[Count.KPI] = "profit" && [Count.Sort column] = "calculated",1
)
3.Final output
Best Regards,
Wenbin Zhou
Hi @andhiii102030 ,
What problem do you encounter here? I think concatenating strings is a valid solution.
Some tricks like to add space after "is" is not a solution to create unique values in the table: "is " or "is "
Here are my steps:
1.Creating an index column after grouping in Power Query(The index column is not used for the final sort)
2.Use the following DAX expression to create columns
Column = [Count.Sort column] & REPT(" ",[Index])
Column 2 = SWITCH(
TRUE(),
[Count.KPI] = "costs" && [Count.Sort column] = "is",1,
[Count.KPI] = "costs" && [Count.Sort column] = "calculated",2,
[Count.KPI] = "costs" && [Count.Sort column] = "should",3,
[Count.KPI] = "profit" && [Count.Sort column] = "is",2,
[Count.KPI] = "profit" && [Count.Sort column] = "calculated",1
)
3.Final output
Best Regards,
Wenbin Zhou
Here’s a solution using DAX that should help you achieve the desired sorting without creating additional tables.
Create a Calculated Column for Sorting: You can create a calculated column in your ‘fact’ table that assigns a sort order based on the KPI group and KPI name. Use the SWITCH function to handle different sorting orders for different groups.
SortOrder =
SWITCH(
TRUE(),
[KPI-group] = "Costs" && [KPI] = "is", 1,
[KPI-group] = "Costs" && [KPI] = "calculated", 2,
[KPI-group] = "Costs" && [KPI] = "should", 3,
[KPI-group] = "Profit" && [KPI] = "is", 2,
[KPI-group] = "Profit" && [KPI] = "calculated", 1,
-- Add more conditions as needed for other groups
BLANK()
)
Sort by the Calculated Column: Once you have the SortOrder column, you can use it to sort your KPIs in the visual.
But, this do not work: Because "is" has value 1 and 2. And this is right, because of the different sorting in the categories.
It looks like you’re trying to create a custom sorting order for your KPIs using the SWITCH function in DAX, but you’re encountering an issue because the value “is” appears in both the “Costs” and “Profit” groups with different sort orders.
To resolve this, you can use a nested SWITCH function or a combination of IF statements to ensure that each condition is unique. Here’s an updated version of your measure:
SortOrder =
SWITCH(
TRUE(),
[KPI-group] = "Costs" && [KPI] = "is", 1,
[KPI-group] = "Costs" && [KPI] = "calculated", 2,
[KPI-group] = "Costs" && [KPI] = "should", 3,
[KPI-group] = "Profit" && [KPI] = "is", 4, -- Changed to 4 to avoid conflict
[KPI-group] = "Profit" && [KPI] = "calculated", 5, -- Changed to 5 to avoid conflict
-- Add more conditions as needed for other groups
BLANK()
)
By assigning unique values to each condition, you can avoid conflicts and ensure that your sorting works correctly. If you have more conditions to add, just make sure each combination of [KPI-group] and [KPI] has a unique sort order value.
You can not sort the KPI column if in the sort column are different values for "is".
For my seems that i talk to a KI bot....
Your insights matter. That’s why we created a quick survey to learn about your experience finding answers to technical questions.
Check out the November 2024 Power BI update to learn about new features.
User | Count |
---|---|
91 | |
86 | |
83 | |
76 | |
49 |
User | Count |
---|---|
145 | |
140 | |
109 | |
68 | |
55 |