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!To celebrate FabCon Vienna, we are offering 50% off select exams. Ends October 3rd. Request your discount now.
I am trying to understand about SUMX.
I have uploaded my PBIX file here for reference.
I have a measure called "Sumx", and its code looks like this:
Solved! Go to Solution.
SUMX works like this:
SUMX( Table, Expression ) goes row by row over the table, evaluates the expression for each row, then adds everything up.
In your measure:
Sumx = SUMX( VALUES('Date'[DateFormat]), CALCULATE(DISTINCTCOUNT([ClientID])) )
VALUES('Date'[DateFormat]) creates a one-column table of distinct dates in the current filter context. If you have 1,336 dates, SUMX will iterate 1,336 times.
For each date, CALCULATE enforces the context to that date only, then runs DISTINCTCOUNT([ClientID]).
SUMX adds up those daily distinct counts. That means if the same client appears on multiple days, they get counted multiple times (once per day). This is different from just DISTINCTCOUNT([ClientID]) which would count unique clients across the whole period once.
So the point of VALUES('Date'[DateFormat]) is to drive the iterationm, it forces SUMX to recalculate your measure per date, rather than over the whole set in one go.
If this post helps, please consider accepting it as the solution to help the other members find it more quickly.
Appreciate your Kudos!!
LinkedIn|Twitter|Blog |YouTube
Why do we need to even bother with VALUES('Date[DateFormat])?
That would be a question for that column. If that column can serve as a primary key then you don't need VALUES.
@VahidDM Thank you for help and your explanation, but I am not clear with need for "filter context" on this case. I have uploaded a new PBIX file here for illustrations:
All three measures result in same values.
First one (original):
Hi @JustinDoh1,
Thank you for reaching out to Microsoft Fabric Community.
Thank you @VahidDM, @lbendlin and @FBergamaschi for the prompt response.
As we haven’t heard back from you, we wanted to kindly follow up to check if the solution provided by the user's for the issue worked? or let us know if you need any further assistance.
Thanks and regards,
Anjan Kumar Chippa
The answer to these questions
___________
If this helped, please consider giving kudos and mark as a solution
@me in replies or I'll lose your threadWant to check your DAX skills? Answer my biweekly DAX challenges on the kubisco Linkedin page
Consider voting this Power BI idea
Francesco Bergamaschi
MBA, M.Eng, M.Econ, Professor of BI
Your 'Date' table has 1336 distinct values in the [DateFormat] column. That's what VALUES collects. And then you use each of these values as a filter context for the CALCULATE.
@lbendlin Thank you for your help. Sorry. I am still not getting it. What does it mean by "And then you use each of these values as a filter context for the Calculate"? Why do we need to even bother with VALUES('Date[DateFormat])? Thanks.
Why do we need to even bother with VALUES('Date[DateFormat])?
That would be a question for that column. If that column can serve as a primary key then you don't need VALUES.
SUMX works like this:
SUMX( Table, Expression ) goes row by row over the table, evaluates the expression for each row, then adds everything up.
In your measure:
Sumx = SUMX( VALUES('Date'[DateFormat]), CALCULATE(DISTINCTCOUNT([ClientID])) )
VALUES('Date'[DateFormat]) creates a one-column table of distinct dates in the current filter context. If you have 1,336 dates, SUMX will iterate 1,336 times.
For each date, CALCULATE enforces the context to that date only, then runs DISTINCTCOUNT([ClientID]).
SUMX adds up those daily distinct counts. That means if the same client appears on multiple days, they get counted multiple times (once per day). This is different from just DISTINCTCOUNT([ClientID]) which would count unique clients across the whole period once.
So the point of VALUES('Date'[DateFormat]) is to drive the iterationm, it forces SUMX to recalculate your measure per date, rather than over the whole set in one go.
If this post helps, please consider accepting it as the solution to help the other members find it more quickly.
Appreciate your Kudos!!
LinkedIn|Twitter|Blog |YouTube