Power BI is turning 10! Tune in for a special live episode on July 24 with behind-the-scenes stories, product evolution highlights, and a sneak peek at what’s in store for the future.
Save the dateEnhance your career with this limited time 50% discount on Fabric and Power BI exams. Ends August 31st. Request your voucher.
HI
So, total not matching sum of rows.
In images the £406k should be £404k. Have tried HASONEVALUE, HASONEFILTER, ISINSCOPE. Now getting a total of £625k.
totally confused.. Also, the measure (Tiered) Old in image attached has [Individual return values] which is cuustomer and behaviour specific. Different whatif's are applied to adjust customers individual return values
Many thanks
J
Solved! Go to Solution.
Hi @jmont031 ,
The issue of column totals not matching the sum of rows in Power BI is usually caused by how DAX evaluates measures at different aggregation levels. Since [Recharge Value (Tiered) OLD] is customer- and behavior-specific with different What-If adjustments, the problem likely stems from DAX context evaluation in the total row. Power BI does not sum row-level values for the total row but instead recalculates the measure at the total level, which can lead to unexpected results. This happens because SUMX or other row-level logic behaves differently when evaluated at an aggregate level.
One way to fix this is to use SUMX instead of relying on implicit aggregation. A revised measure could be written as:
Return recharge (S)A600 =
SUMX(
VALUES('Service_Data'[Entity]),
[Recharge Value (Tiered) OLD]
)
This ensures that the calculation is applied row by row, summing the values correctly instead of recalculating them at the total level.
If the calculation needs to behave differently at the row and total levels, using ISINSCOPE can help distinguish between them:
Return recharge (S)A600 =
IF(
ISINSCOPE('Service_Data'[Entity]),
[Recharge Value (Tiered) OLD],
SUMX(VALUES('Service_Data'[Entity]), [Recharge Value (Tiered) OLD])
)
This approach ensures that at the row level, the regular calculation is applied, while at the total level, the sum of the rows is explicitly calculated.
Another potential issue is filter context affecting the total calculation. If unwanted filters are altering the result, ALLSELECTED() can be used to ensure the correct set of entities is being summed:
Return recharge (S)A600 =
SUMX(
ALLSELECTED('Service_Data'[Entity]),
[Recharge Value (Tiered) OLD]
)
Testing with REMOVEFILTERS() can also help identify whether any unwanted filters are interfering with the total calculation. If the issue persists, reviewing how [Individual Return Values] interacts with filters and ensuring that the measure logic applies consistently across different levels of aggregation may be necessary.
Best regards,
Hi @jmont031 ,
Did the above suggestions help with your scenario? if that is the case, you can consider Kudo or Accept the helpful suggestions to help others who faced similar requirements.
If these also don't help, please share more detailed information and description to help us clarify your scenario to test.
How to Get Your Question Answered Quickly
Regards,
Xiaoxin Sheng
Hi @jmont031 ,
The issue of column totals not matching the sum of rows in Power BI is usually caused by how DAX evaluates measures at different aggregation levels. Since [Recharge Value (Tiered) OLD] is customer- and behavior-specific with different What-If adjustments, the problem likely stems from DAX context evaluation in the total row. Power BI does not sum row-level values for the total row but instead recalculates the measure at the total level, which can lead to unexpected results. This happens because SUMX or other row-level logic behaves differently when evaluated at an aggregate level.
One way to fix this is to use SUMX instead of relying on implicit aggregation. A revised measure could be written as:
Return recharge (S)A600 =
SUMX(
VALUES('Service_Data'[Entity]),
[Recharge Value (Tiered) OLD]
)
This ensures that the calculation is applied row by row, summing the values correctly instead of recalculating them at the total level.
If the calculation needs to behave differently at the row and total levels, using ISINSCOPE can help distinguish between them:
Return recharge (S)A600 =
IF(
ISINSCOPE('Service_Data'[Entity]),
[Recharge Value (Tiered) OLD],
SUMX(VALUES('Service_Data'[Entity]), [Recharge Value (Tiered) OLD])
)
This approach ensures that at the row level, the regular calculation is applied, while at the total level, the sum of the rows is explicitly calculated.
Another potential issue is filter context affecting the total calculation. If unwanted filters are altering the result, ALLSELECTED() can be used to ensure the correct set of entities is being summed:
Return recharge (S)A600 =
SUMX(
ALLSELECTED('Service_Data'[Entity]),
[Recharge Value (Tiered) OLD]
)
Testing with REMOVEFILTERS() can also help identify whether any unwanted filters are interfering with the total calculation. If the issue persists, reviewing how [Individual Return Values] interacts with filters and ensuring that the measure logic applies consistently across different levels of aggregation may be necessary.
Best regards,
User | Count |
---|---|
25 | |
12 | |
8 | |
6 | |
6 |
User | Count |
---|---|
26 | |
12 | |
11 | |
9 | |
6 |