Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now! Learn more

Reply
jmont031
Frequent Visitor

Help for column total not matching sum of rows

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

JIMG_1800.jpgIMG_1801.jpgIMG_1803.jpg

1 ACCEPTED SOLUTION
DataNinja777
Super User
Super User

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,

View solution in original post

2 REPLIES 2
Anonymous
Not applicable

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

DataNinja777
Super User
Super User

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,

Helpful resources

Announcements
Power BI DataViz World Championships

Power BI Dataviz World Championships

The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now!

December 2025 Power BI Update Carousel

Power BI Monthly Update - December 2025

Check out the December 2025 Power BI Holiday Recap!

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.