Earn the coveted Fabric Analytics Engineer certification. 100% off your exam for a limited time only!
Hi Experts,
i have created below measure to calculate aggregated profit amount for locations at parent level (like Continent, Country, Province) which would be summation of children cities. Our Database stores data at city level only.
Parent Profit Amount :=
VAR c = SELECTEDVALUE ( DimLocation[LocationKey] )
RETURN
CALCULATE (
SUM ( FactAmount[Profit] ),
ALL ( DimLocation ),
PATHCONTAINS ( DimLocation[Path], c )
)
Now the issue is, how can i handle if there are multiple selected values ? Because here, SELECTEDVALUE () function expects a single distinct value and if its given multiple values it doesn't show anything. Suppose below data exists in Database:
Country | LocationKey | City | Profit Amount |
England | 10 | London | 25 |
USA | 11 | London | 30 |
Canada | 12 | London | 45 |
And i just want to show "City" and its "Profit Amount" in chart.
The above measure won't display anything for Location="London" because for "London" location SelectedValue() function gets 3 locationkey values "10,11,12". So in the chart London isn't shown at all.
Please help.
Regards,
Amar
Hi, did you find a solution to your question?
Apologies since I'm not familiar with the PATHCONTAINS function, but wouldn't this measure work?
Total by city = CALCULATE([Sum of Profit], ALLEXCEPT(table, table[city]))
Proud to be a Super User!
Paul on Linkedin.
Here are some options:
- use MIN/MAX instead of SELECTEDVALUE
- use TOPN(1,FILTERS())
- make your slicer single select.
Thank you for your reply.
Is there a way to take all multiple values and apply it to the measure in PathContains() function?
yes, convert your path into a table variable and then use INTERSECT()
@amarsale85 If you are having trouble with @lbendlin 's suggestion, which is a good one, see Text to Table: https://community.powerbi.com/t5/Quick-Measures-Gallery/Text-to-Table/m-p/1312929#M594
Thank you lbendlin for your suggestion but it isn't working. Below is my code:
Sum Amount:=
VAR SelectedLocations =
SELECTCOLUMNS(
VALUES(DimLocation),
"LocationID", DimLocation[LocationID]+0
)
VAR mytable =
SELECTCOLUMNS (
GENERATE (
ALL(DimLocation),
ADDCOLUMNS (
GENERATESERIES ( 1, PATHLENGTH ( [Calculated Path] ) ),
"PivotPath", PATHITEM ( [Calculated Path], [Value], 1 )
)
),
"LocationID", DimLocation[LocationID]+0,
"PivotPathKey", [PivotPath]
)
RETURN
CALCULATE (
SUM(FactAmount[Amount]),
INTERSECT(mytable,SelectedLocations)
)
This code gives me error.
I used INTERSECT here, but it gives error since these 2 tables have different no. of columns. If i used NATURALINNERJOIN instead of INTERSECT, that gives an error as well.
Can you suggest what else can be used in place of INTERSECT() ?
Regards,
Amar
In the Intersect wrap your "myTable" table into another SelectColumns() so that it matches the structure of the other table.
User | Count |
---|---|
128 | |
108 | |
99 | |
65 | |
62 |
User | Count |
---|---|
136 | |
113 | |
102 | |
71 | |
60 |