Forum Discussion
Average Total for a Measure
- 4 years ago
Anonymous,
You can create a SWITCH statement that detects which level of Date Table is being used. You'll have to code each scenario in the SWITCH statement. This is an example of how you can modify AVERAGEX:
AVERAGEX ( VALUES ( 'Date Table'[FYFW] ), [Value 2] - [Value 1] )The article below describes the differences between ISINSCOPE and HASONEVALUE. Be sure to understand the differences so you can use the appropriate function.
https://www.sqlbi.com/articles/distinguishing-hasonevalue-from-isinscope/
Anonymous,
You need to wrap the second argument of AVERAGEX in a CALCULATE function in order to use context transition. Alternatively, you can use base measures as demonstrated below (simpler and more flexible). Notice that I changed the first argument of AVERAGEX to 'Date Table'. It's better to iterate dimension tables rather than fact tables (performance). In the visual, I used 'Date Table'[FYFW].
Value 1 = SUM ( Table1[Value1] )Value 2 = SUM ( Table1[Value2] )diff_v1_v2 =
IF (
ISINSCOPE ( 'Date Table'[FYFW] ),
[Value 2] - [Value 1],
AVERAGEX ( 'Date Table', [Value 2] - [Value 1] )
)
Thank you! Simple enough... I've revealed an issue though. I used your code - making Value1 & Value2 their own measures to use in the difference calculation. Results below. I think mine isn't matching yours because my date table goes down to the day, not aggregated by week. Is there a way to have the AVERAGEX calculate based on whatever level I am showing? Example: if I did have it showing by date, the -115,188 would be correct, but if I am at the weekly level, it should show what you have (-806,315), and so on by month, quarter etc.
Value 1 = SUM ( Table1[Value1] )
Value 2 = SUM ( Table1[Value2] )
diff_v1_v2 =
IF (
ISINSCOPE ( 'Date Table'[FYFW] ),
[Value 2] - [Value 1],
AVERAGEX ( 'Date Table', [Value 2] - [Value 1] )
)
- DataInsights4 years agoSuper User
Anonymous,
You can create a SWITCH statement that detects which level of Date Table is being used. You'll have to code each scenario in the SWITCH statement. This is an example of how you can modify AVERAGEX:
AVERAGEX ( VALUES ( 'Date Table'[FYFW] ), [Value 2] - [Value 1] )The article below describes the differences between ISINSCOPE and HASONEVALUE. Be sure to understand the differences so you can use the appropriate function.
https://www.sqlbi.com/articles/distinguishing-hasonevalue-from-isinscope/
- Anonymous4 years agoNot applicable
GOT IT DataInsights ! Thank you for the article concerning ISINSCOPE vs HASONEVALUE, that is something new for me. I did one test with the SWITCH function and this will get me what I need. Much obliged!
- DataInsights4 years agoSuper User
Excellent!