Power BI is turning 10, and we’re marking the occasion with a special community challenge. Use your creativity to tell a story, uncover trends, or highlight something unexpected.
Get startedJoin us for an expert-led overview of the tools and concepts you'll need to become a Certified Power BI Data Analyst and pass exam PL-300. Register now.
Hello everyone. I have a table that looks something like this:
School Division | Student enrollment | Month |
A | 10 | Oct |
B | 12 | Oct |
C | 15 | Nov |
C | 10 | Dec |
When I create a simple calculate measure such as this:
Students enrolled =
CALCULATE(SUM('Table'[Student enrollment]),'Table'[Month] = "Oct")
I get the correct result, which in this example will be = 22
But when I create a variable to store the Sum aggregate, I get a different result that is without any filter specified within Calculate function. For example this DAX:
Students enrolled =
VAR _studentsenrolled = SUM('Table'[Student enrollment])
RETURN
CALCULATE(_studentsenrolled,'Table'[Month] = "Oct")
In this example, it gives me the result as 47. Which is incorrect as it doesn't seem to be taking into account the filter parameter of Calculate function.
Can anyone help clarify what am I missing?
Thanks in advance!
Solved! Go to Solution.
Echoing @Greg_Deckler on this one, but with a little more information. Variables are calculated only once and then stored only once and cannot be re-used in their current context. The only exception to this is if you create a variable that is a table:
ie. VAR _SourceTable = FILTER(ALL('Date'[Year]),'Date'[Year]>=2010)
and then later on you want to further filter this source table ie. VAR _MoreFiltering = FILTER(_SourceTable, [Year] >= 2013).
Measures are calculated in the current filter context (sometimes that's okay if you want to keep the value static) but you can't use CALCULATE() to adjust that after the fact.
Thank you so much for your prompt and helpful responses @Erokor and @Greg_Deckler
This is why I love this community 🙂
I've been a longtime lurker, and only today decided to leave my hermit cave and start answering questions. I guess imposter syndrom has kept me from replying 🤣. Time to go for that Superuser cape.
I can totally relate. Hopefully someday I'll gather enough wisdom from my lurking experience that I can leave my hermit cave too 😅
All the best in your quest for Superuser!
Echoing @Greg_Deckler on this one, but with a little more information. Variables are calculated only once and then stored only once and cannot be re-used in their current context. The only exception to this is if you create a variable that is a table:
ie. VAR _SourceTable = FILTER(ALL('Date'[Year]),'Date'[Year]>=2010)
and then later on you want to further filter this source table ie. VAR _MoreFiltering = FILTER(_SourceTable, [Year] >= 2013).
Measures are calculated in the current filter context (sometimes that's okay if you want to keep the value static) but you can't use CALCULATE() to adjust that after the fact.
@sunilbeckham Doesn't work that way. Variables are not variable, they are static once calculated.
This is your chance to engage directly with the engineering team behind Fabric and Power BI. Share your experiences and shape the future.
Check out the June 2025 Power BI update to learn about new features.
User | Count |
---|---|
10 | |
9 | |
8 | |
8 | |
6 |
User | Count |
---|---|
14 | |
13 | |
11 | |
9 | |
9 |