Don't miss your chance to take the Fabric Data Engineer (DP-600) exam for FREE! Find out how by attending the DP-600 session on April 23rd (pacific time), live or on-demand.
Learn moreNext up in the FabCon + SQLCon recap series: The roadmap for Microsoft SQL and Maximizing Developer experiences in Fabric. All sessions are available on-demand after the live show. Register now
Hi,
I need to some help in understanding the following problem. Comp Sales (Calculate) measures returns incorrect values at total level, the correct amount is -2,180.00 which is produced by the Comp Sales (SUMX.) version I am struggling to find the break of -9,961 using different approaches like CONCATENATEx to know how Calculate behaves at total level but no clues so far.
I am trying to use the Calculate version of the solution as my actual data set is huge.
I have attached the PBIX file. Attachment
⭕ Subscribe and learn Power BI from these videos
⚪ Website ⚪ LinkedIn ⚪ PBI User Group
Solved! Go to Solution.
Right, so CALCULATE is not the way to go here, SUMX is the way to go. If you think about this, in your CALCULATE formula, you are doing a FILTER on the CROSSJOIN of ALL rows in your table with your DATE table, and hence your wrong answer. The way SUMX works is that the first part is that you are creating a table with your CROSSJOIN where your Sales Growth is calculated per line and then you SUM up that column in that resulting table, which is why you get the right answer. Hence why the Measure Totals: The Final Word uses the "X" aggregation functions like SUMX.
Try the following:
SUMX (
VALUES ( TableName[STORE] );
CALCULATE ( SUM ( TableName[Comp Sales] ) )
)
Can you post your formula for the measure that is not working correctly? I prefer not to download PBIX files. This looks like a measure totals problem. Very common. See my post about it here: https://community.powerbi.com/t5/DAX-Commands-and-Tips/Dealing-with-Measure-Totals/td-p/63376
Also, this Quick Measure, Measure Totals, The Final Word should get you what you need:
https://community.powerbi.com/t5/Quick-Measures-Gallery/Measure-Totals-The-Final-Word/m-p/547907
Thanks, Greg,
I will have a look at the links you have provided, meanwhile, these are the measures I have used.
Total Sales = SUM(Sales[Sales Amount])
Total Sales LY = CALCULATE([Total Sales],DATEADD('DATE'[Date],-1,YEAR))
Sales Growth = [Total Sales]-[Total Sales LY]
Comp Sales (Calculate) =
CALCULATE([Sales Growth]
,FILTER(
CROSSJOIN(VALUES('DATE'[Date]),Branch)
,'DATE'[Date]>EOMONTH(Branch[Open Date],12)
)
)
Comp Sales (SUMX) =
SUMX(
FILTER(
CROSSJOIN(VALUES('DATE'[Date]),Branch)
,'DATE'[Date]>EOMONTH(Branch[Open Date],12)
)
,[Sales Growth]
)
⭕ Subscribe and learn Power BI from these videos
⚪ Website ⚪ LinkedIn ⚪ PBI User Group
Right, so CALCULATE is not the way to go here, SUMX is the way to go. If you think about this, in your CALCULATE formula, you are doing a FILTER on the CROSSJOIN of ALL rows in your table with your DATE table, and hence your wrong answer. The way SUMX works is that the first part is that you are creating a table with your CROSSJOIN where your Sales Growth is calculated per line and then you SUM up that column in that resulting table, which is why you get the right answer. Hence why the Measure Totals: The Final Word uses the "X" aggregation functions like SUMX.
If you have recently started exploring Fabric, we'd love to hear how it's going. Your feedback can help with product improvements.
A new Power BI DataViz World Championship is coming this June! Don't miss out on submitting your entry.
| User | Count |
|---|---|
| 44 | |
| 43 | |
| 38 | |
| 19 | |
| 15 |
| User | Count |
|---|---|
| 68 | |
| 64 | |
| 31 | |
| 29 | |
| 24 |