Forum Discussion
Median Calculation Fails with Calculation Groups & Field Parameters in Matrix Visual
- 1 year ago
Hi mbelt
If dimension is a field parameter, it cannot dynamically reference in a measure. You will need to create a conditoinal measure that switches to different dimensions depending on the selected value in the slicer
MedianPerMeasureX = VAR DimOrder = SELECTEDVALUE('Dimension'[Dimension Order]) -- Summary table for Dimension1 VAR SummaryTable1 = ADDCOLUMNS( ALL('ActualDimTable'[Dimension1]), "@Value", CALCULATE( SELECTEDMEASURE(), REMOVEFILTERS('ActualDimTable'[Dimension1]) ) ) -- Summary table for Dimension2 VAR SummaryTable2 = ADDCOLUMNS( ALL('ActualDimTable'[Dimension2]), "@Value", CALCULATE( SELECTEDMEASURE(), REMOVEFILTERS('ActualDimTable'[Dimension2]) ) ) -- Summary table for Dimension3 VAR SummaryTable3 = ADDCOLUMNS( ALL('ActualDimTable'[Dimension3]), "@Value", CALCULATE( SELECTEDMEASURE(), REMOVEFILTERS('ActualDimTable'[Dimension3]) ) ) -- Conditional return RETURN SWITCH( TRUE(), DimOrder = 1, MEDIANX( FILTER(SummaryTable1, NOT ISBLANK([@Value])), [@Value] ), DimOrder = 2, MEDIANX( FILTER(SummaryTable2, NOT ISBLANK([@Value])), [@Value] ), DimOrder = 3, MEDIANX( FILTER(SummaryTable3, NOT ISBLANK([@Value])), [@Value] ) )
Hi mbelt
I'm assuming the 'Dimension' table is a field parameter table set up via the Power BI Desktop interface. Is that right?
If so, one issue within your MedianPerMeasureX measure is that a field parameter column, such as 'Dimension'[Dimension], does not function as a dynamic column reference.
So the expression
ALL ( 'Dimension'[Dimension] )
does not dynamically produce a single-column table containing all values of the column selected via the field parameter, but produces a single-column table containing all values in the 'Dimension'[Dimension] column itself. So it does not have the intended effect when used in an iterator.
To help come up with a solution, could you share a simple PBIX set up as you have described, along with the expected measure values as an example?