Join us at FabCon Atlanta from March 16 - 20, 2026, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.
Register now!Vote for your favorite vizzies from the Power BI Dataviz World Championship submissions. Vote now!
Hi, wondering if anyone understands what is happening here.
I have built a table using summarize.
To start with I used 4 variables:
What on earth is going on??
cheers
Steve
Solved! Go to Solution.
Variables in DAX aren't really variables, they're constants. They are only calculated once, when they are defined, which is why you're seeing the same wrong values for each row.
Its also worth pointing out that it is not best practice to use SUMMARIZE to produce calculated columns as performance is poor and you can get unexpected results. It is better to use SUMMARIZE to do the grouping and then use ADDCOLUMNS to produce the calculations, so your code would become
My Table =
ADDCOLUMNS (
SUMMARIZE ( MainFacts, MainFacts[Provider_Code] ),
"Count2021",
CALCULATE (
DISTINCTCOUNT ( MainFacts[EpisodeNumber] ),
MainFacts[Period] = "FY2020-21"
),
"NullFlag2021",
IF (
CALCULATE (
DISTINCTCOUNT ( MainFacts[EpisodeNumber] ),
MainFacts[Period] = "FY2020-21"
) = 0,
1,
0
),
"Count2122",
CALCULATE (
DISTINCTCOUNT ( MainFacts[EpisodeNumber] ),
MainFacts[Period] = "FY2021-22"
),
"NullFlag2122",
IF (
CALCULATE (
DISTINCTCOUNT ( MainFacts[EpisodeNumber] ),
MainFacts[Period] = "FY2021-22"
) = 0,
1,
0
)
)
Variables in DAX aren't really variables, they're constants. They are only calculated once, when they are defined, which is why you're seeing the same wrong values for each row.
Its also worth pointing out that it is not best practice to use SUMMARIZE to produce calculated columns as performance is poor and you can get unexpected results. It is better to use SUMMARIZE to do the grouping and then use ADDCOLUMNS to produce the calculations, so your code would become
My Table =
ADDCOLUMNS (
SUMMARIZE ( MainFacts, MainFacts[Provider_Code] ),
"Count2021",
CALCULATE (
DISTINCTCOUNT ( MainFacts[EpisodeNumber] ),
MainFacts[Period] = "FY2020-21"
),
"NullFlag2021",
IF (
CALCULATE (
DISTINCTCOUNT ( MainFacts[EpisodeNumber] ),
MainFacts[Period] = "FY2020-21"
) = 0,
1,
0
),
"Count2122",
CALCULATE (
DISTINCTCOUNT ( MainFacts[EpisodeNumber] ),
MainFacts[Period] = "FY2021-22"
),
"NullFlag2122",
IF (
CALCULATE (
DISTINCTCOUNT ( MainFacts[EpisodeNumber] ),
MainFacts[Period] = "FY2021-22"
) = 0,
1,
0
)
)
But what if i wanted to use that variable again in a later calculation? In this case Count2122 for example.
Instead of using ADDCOLUMNS you could use a combination of GENERATE and ROW, the general pattern is something like
My Table =
GENERATE (
SUMMARIZE ( 'Table', 'Table'[Column 1], 'Table'[Column 2] ),
VAR Var1 =
CALCULATE ( SUM ( 'Table2'[Value] ) )
VAR Var2 =
IF (
Var1 > 0,
CALCULATE ( SUM ( 'Table2'[Value2] ) ),
CALCULATE ( SUM ( 'Table2'[Value3] ) )
)
RETURN
ROW ( "Var1", Var1, "Var2", Var2 )
)
all of this is incredibly helpful. Many many thanks.
Vote for your favorite vizzies from the Power BI World Championship submissions!
If you love stickers, then you will definitely want to check out our Community Sticker Challenge!
Check out the January 2026 Power BI update to learn about new features.
| User | Count |
|---|---|
| 58 | |
| 53 | |
| 43 | |
| 17 | |
| 16 |
| User | Count |
|---|---|
| 123 | |
| 108 | |
| 44 | |
| 32 | |
| 24 |