Forum Discussion
Using Measure to Filter Calculate
- 9 years ago
Finally figured this out - I needed to set the measure [# Skus in Top 20%] as a variable before calling it in my filter. Here is the working code:
Top 20% Margin = VAR top20 = [# Skus in Top 20%] RETURN (CALCULATE(SUM('PH FY 2016'[Net Margin]), FILTER(ALL('PH FY 2016'[sku]), [Rank] <= top20)))
khappersett,
The results of [# Skus in 20%] measure vary by row context, in other words, the result of [# Skus in 20%] measure is not always 863. Create a column instead of measure to calculate [# Skus in 20%], then check if the above formula returns your expected result.
For more details about context, please review this article.
Regards,
Lydia
- khappersett9 years agoResolver I
I have tried the formula as both a calculated column and a measure. I used this formula for both:
Number of SKUs in 20% = ROUNDUP(CALCULATE([Number of SKUs]*0.2), 0)
The measure gives me the correct number (863 in this case), but when I do the same formula as a calculated column, it is giving me 67.06k.
- khappersett9 years agoResolver I
I have also tried using the sum and sumx functions, but still can't seem to get the correct value from the calculated column.
- khappersett9 years agoResolver I
Finally figured this out - I needed to set the measure [# Skus in Top 20%] as a variable before calling it in my filter. Here is the working code:
Top 20% Margin = VAR top20 = [# Skus in Top 20%] RETURN (CALCULATE(SUM('PH FY 2016'[Net Margin]), FILTER(ALL('PH FY 2016'[sku]), [Rank] <= top20)))