C. TotalSales is a scalar evaluated outside CALCULATE, so the filter does not apply
D. No error; measure is optimized
Solution
Step 1: Check variable type and usage
TotalSales = SUM(Sales[Amount]) is a scalar value computed in the original filter context.
Step 2: Analyze CALCULATE arguments
CALCULATE(TotalSales, FILTER(Sales, Sales[Region]="East")) is syntactically valid, but since TotalSales is a pre-computed scalar, the modified filter context does not re-evaluate it. It returns the unfiltered total instead of East sales, defeating the performance optimization goal for filtered calculation.
Final Answer:
TotalSales is a scalar evaluated outside CALCULATE, so the filter does not apply -> Option C
Quick Check:
Scalar variable used incorrectly with CALCULATE filter [OK]
A. Option 2 is better because it uses column filter, not row filter
B. Option 1 is better because FILTER is more flexible
C. Both options have same performance
D. Neither option works; use SUMX instead
Solution
Step 1: Compare FILTER vs direct column filter
Option 1 uses FILTER which scans row by row, applying YEAR function, which is slow.
Step 2: Understand column filter advantage
Option 2 uses a direct filter on the date column's Year attribute, which is faster because it uses existing column indexing and avoids row-by-row evaluation.
Final Answer:
Option 2 is better because it uses column filter, not row filter -> Option A
Quick Check:
Use column filters over FILTER for better speed [OK]
Hint: Filter on columns, not rows, for faster DAX queries [OK]
Common Mistakes:
Using FILTER with row context unnecessarily
Assuming FILTER is always faster
Ignoring built-in column filters
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.