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

July 28 - August 9 | Final Round of the Power BI Dataviz World Championships. This is your chance. Learn more

Reply
muom
Frequent Visitor

Table Visual not Matching Calculated Visual

I have a visual that shows a percentage, calculated with this formula

Screenshot 2026-07-21 135131.png

Next to it, I have a table visual that (in theory) should match the percentage. But it doesn't. The Increased + Maintained in the table should equal the 52.1% on the larger visual.

Screenshot 2026-07-21 135208.png

 

I used these elements to make the table:

Earned.Change Status = 'PDE_EE-EnrollmentsTbl'[Earned Income.Change Status]

Count Adults = CALCULATE(COUNT('Exit Details_UDE'[Entry Exit ID]), AgeCatTbl[Adult-Child]="Adult")

% = CALCULATE(COUNT('Exit Details_UDE'[Entry Exit ID]), AgeCatTbl[Adult-Child]="Adult") shown as a percentage.

 

Where am I going wrong here? My table calcs are pulled directly from the same elements used for the big  number calculation.

1 ACCEPTED SOLUTION
muom
Frequent Visitor

Thank you everyone for the feedback. I attempted the various formulas suggested but was still finding the same issue with mismatch. There are no duplicate values when I checked and numbers didn't change when using DISTINCTCOUNT. In the end, I went into the query and merged the 'PDE_EE-EnrollmentsTbl'[Earned Income.Change Status] column into the Exit Details_UDE table, matching with Entry Exit IDs. That solved the issue!

Greatly appreciate all the various perspectives that helped me reach this solution.

View solution in original post

9 REPLIES 9
muom
Frequent Visitor

Thank you everyone for the feedback. I attempted the various formulas suggested but was still finding the same issue with mismatch. There are no duplicate values when I checked and numbers didn't change when using DISTINCTCOUNT. In the end, I went into the query and merged the 'PDE_EE-EnrollmentsTbl'[Earned Income.Change Status] column into the Exit Details_UDE table, matching with Entry Exit IDs. That solved the issue!

Greatly appreciate all the various perspectives that helped me reach this solution.

Deepaky1813
Regular Visitor

I think the issue is that the table and the card are not actually calculating the same thing.


In your table, the % measure is only returning the count of adult records in the current row context. Since the table already has Earned Income. Change Status on the rows, each row is already filtered to one status. So that measure is not really calculating a percentage of total adults by itself.

To make the table match the card, you need to divide each row count by the total adult count.

I’d also check whether Entry Exit ID is unique. If it isn’t, COUNT() can overcount, and that can cause the row values not to reconcile with the total. In many cases DISTINCTCOUNT() is the better option.

A cleaner approach would be to create a total adult measure like:
Adult Exits = CALCULATE( DISTINCTCOUNT('Exit Details_UDE'[Entry Exit ID]), AgeCatTbl[Adult-Child] = "Adult" )


Then use a percentage measure for the table like:
Adult Exit % by Status = DIVIDE( CALCULATE( DISTINCTCOUNT('Exit Details_UDE'[Entry Exit ID]), AgeCatTbl[Adult-Child] = "Adult" ),                                          CALCULATE( [Adult Exits], REMOVEFILTERS('PDE_EE-EnrollmentsTbl'[Earned Income.Change Status]) ) )


And for the card:
Earned Income Status % = DIVIDE( CALCULATE( DISTINCTCOUNT('Exit Details_UDE'[Entry Exit ID]), AgeCatTbl[Adult-Child] = "Adult", 'PDE_EE-EnrollmentsTbl'[Earned Income.Change Status] IN { "Increased", "Maintained" } ), [Adult Exits] )


So the mismatch is most likely coming from one or more of these:

  1. The table measure is not actually calculating a percentage
  2. The table and card are being evaluated under different filter context
  3. COUNT() may be double-counting if Entry Exit ID is not unique

If the row totals add up to more than the overall total, I’d definitely check for duplicate Entry Exit IDs or cases where the same ID appears under more than one status.

Deepaky1813 nailed the mechanism (row-context %, and DISTINCTCOUNT over COUNT — both real here). One thing worth adding, because it's probably the number that's actually confusing you:

Increased 30.31% + Maintained 33.58% = 63.89% in your table — but the card says 52.1%. Those aren't two versions of one number; they're answering two different questions. The card filters the numerator to Increased OR Maintained but divides by AllExits (all 551, "Stayed at 0" included). Your table rows divide the same way but per single status. So 63.89% is "% of all exits that improved or held", and 52.1% is a different denominator somewhere — most likely AllExits and your table's total aren't the same population.

Quickest way to see it: drop [AllExits] and your row COUNT side by side in the table as plain values (no %). If AllExits ≠ 551, you've found it — the card is counting exits your table isn't (or vice-versa), and it's almost certainly the COUNT-over-two-tables grain Deepaky flagged. Fix the denominator to one agreed population and both visuals collapse to the same 63.89%.

Kedar_Pande
Super User
Super User

@muom 

 

Your card measure counts distinct Entry Exit IDs where status is Increased OR Maintained in one pass. Your table's Count Adults measure has no filter on Earned.Change Status at all - it relies purely on row context from the visual. If there are duplicate/multiple enrollment records per Entry Exit ID in 'PDE_EE-EnrollmentsTbl', an ID can land in multiple rows of the table (counted twice) while only being counted once in the OR-based card measure.

Check for duplicate Entry Exit IDs per status in 'PDE_EE-EnrollmentsTbl' - that's almost certainly your mismatch.

Rupa01
Impactful Individual
Impactful Individual

Hi @muom,

Checkout below solution - 

First create a measure to count the adults - same as what you have provided.

Rupa01_1-1784696680342.png

 

Then, create a measure Earned Income Status (Maintained or Increased) using above measure - 

Earned Income Status (Maintained or Increased) = 
VAR _count = 
CALCULATE(
    [Count Adults], 
    'PDE_EE-EnrollmentsTbl'[Earned Income.Change Status] IN {"Increased", "Maintained"}
)
RETURN
DIVIDE(_count, [Count Adults], 0)

 

This measure will use the first measure where you have already calculated total count of adults. Using variable _count you are capturing total adults with status increased and maintained and then dividing _count with total count of adults measure.

 

Result - 

Rupa01_0-1784696663589.png

 

 

 

 

 

 

 

 

💡 Helpful? Give a Kudos 👍 — keep the community growing
 Solved your issue? Mark as Solution ✔️ — help others find it faster

Best regards,
Rupasree Achari | BI & Fabric Analytics Engineer 
cmorales1068
Advocate II
Advocate II

@muom  

Oh yeah, this happened to me many times its usually because of a  fan-out. Your card measure counts each Exit once (because of the OR), but your table breaks it out by category, so if an exit has more than one Enrollment record (like it got reassessed and has both an "Increased" row and a "Maintained" row), it gets counted once in EACH row of the table — inflating the sum.

A quick way to check is group your Enrollments table by Entry Exit ID and see if any IDs show up with more than one distinct Change Status. If so, that's your culprit.

And if thats it to fix it pick one Change Status per exit (latest record, usually) before it hits the table,  like a calculated column or a summarized table instead of letting the visual count every related Enrollment row

Ashish_Mathur
Super User
Super User

Hi,

Please share the download link of the PBI file.


Regards,
Ashish Mathur
http://www.ashishmathur.com
https://www.linkedin.com/in/excelenthusiasts/

I can't share the file directly due to security. Is there specific info I can provide to you that would help answer my question?

If possible, please anonymise the information and then share the download link.  Thank you.


Regards,
Ashish Mathur
http://www.ashishmathur.com
https://www.linkedin.com/in/excelenthusiasts/

Helpful resources

Announcements
Fabric Community Sticker Design Challenge Barcelona Carousel

Fabric Community Sticker Challenge - Barcelona 2026

If you love stickers, then you will definitely want to check out our community sticker challenge, Barcelona edition!

July Power BI Update Carousel

Power BI Monthly Update - July 2026

Check out the July 2026 Power BI update to learn about new features.

Power BI DataViz World Championships carousel

Power BI DataViz World Championships - June 2026

A new Power BI DataViz World Championship is coming this June! Don't miss out on submitting your entry.

Top Solution Authors