An Excel dashboard usually starts as the fastest way to share some numbers and ends as the file nobody quite trusts. It doesn't break in one dramatic moment. It decays, one pasted value and one inserted column at a time, until somebody in a meeting says "that doesn't match what I have".
I have built a lot of these, and inherited more. The failures are predictable, which is good news: most of them can be fixed inside Excel, this week, without buying anything.
Problem 1: the copy-paste chain
This is the big one. The data lives in one place (an export, another workbook, a system report). Someone copies it into the dashboard file. Someone else copies a chart from the dashboard into a slide.
Every copy is a snapshot that nobody labelled.
By Thursday, the source says $482K, the pasted data says $468K from Tuesday, and the slide says $468K with no date on it. Nobody did anything wrong. The process guarantees the drift.
Fixes that don't need a new tool:
- Pull, don't paste. Use Power Query (Data, then Get Data) to load the source file or folder. When the export changes, Refresh brings in the new rows, with the same cleaning steps applied every time.
- One data tab. Raw data goes on one tab, untouched. Everything else references it. If you find yourself pasting into the middle of a calculation tab, stop.
- Date every number. Put a visible "Data as of" cell at the top of the dashboard, and fill it from the data itself (the latest date in the source), not with
=TODAY(), which only tells you when someone opened the file.
Problem 2: references that break quietly
Excel formulas are brittle in ways that don't announce themselves.
The classic is VLOOKUP with a hard-coded column number:
=VLOOKUP(A2, Sales!A:F, 4, FALSE)
Insert a column in the Sales tab and that 4 now points at the wrong field. There's no error. You simply get the wrong numbers, which is worse.
Fixed ranges are the second trap. =SUM(B2:B500) works until the data reaches row 501. Then the total is quietly short, and it stays short until someone notices that this month looks oddly flat.
Fixes:
- Turn ranges into Tables. Select the data and press Ctrl+T. Tables grow automatically when rows are added, and formulas can use names:
=SUM(Sales[Amount])instead of=SUM(B2:B500). - Use XLOOKUP.
=XLOOKUP(A2, Sales[Region], Sales[Amount])names the column it returns, so inserting columns doesn't break it. It is available in Microsoft 365 and Excel 2021 onwards. On older versions, INDEX with MATCH does the same job. - Add check cells. A cell that compares the dashboard total with the source total, and turns red when they differ. It costs two minutes and catches most of these problems before a meeting does.
Problem 3: pivot tables showing last week
Pivot tables don't refresh when their source data changes. You have to tell them to. Everyone knows this, and everyone forgets it at least once, usually on the morning of a review.
Fixes:
- Refresh All before you share. Data, then Refresh All, or Ctrl+Alt+F5 on Windows. Make it a habit, or better, a step in a written checklist.
- Refresh on open. In PivotTable Options, on the Data tab, tick "Refresh data when opening the file". It makes the file slower to open and removes a whole class of stale numbers.
- Base pivots on Tables. A pivot built on a Table picks up new rows on refresh. A pivot built on a fixed range does not.
Problem 4: version hell
Q3_dashboard_v7_final_JS.xlsx. You have seen this file. You may have named it.
Once a dashboard is emailed as an attachment, every recipient has their own copy. Some edit theirs. Then two versions are presented in two meetings, and the time goes on reconciling them instead of discussing the business.
Fixes:
- Share a link instead of a file. Keep one copy in OneDrive or SharePoint and send links. Co-authoring means everyone sees the same version, and version history means you can see who changed what.
- Make the reading copy read-only. Share a view-only link for people who only need to read, and keep edit access to the people who maintain it.
To be fair to Excel, this one is largely solved if your whole team works inside Microsoft 365 and nobody downloads copies. The problem is that somebody always does.
Problem 5: one sort away from scrambled
Dashboards are fragile in the hands of readers. A few failure modes come up again and again:
- Partial sorts. Someone selects one column and sorts it. Excel may offer to expand the selection. If they decline, that column is now detached from the rest of each row, and every number derived from it is wrong.
- Hidden rows.
SUMincludes hidden rows.SUBTOTAL(109, Sales[Amount])ignores them. If people hide rows to "filter" a dashboard, the totals lie. - Merged cells. They break sorting, filtering and copying. Use Format Cells, then Alignment, then "Center Across Selection" for the same look without the damage.
Fixes: Tables again, since they keep rows together when sorted. Protect the calculation sheets. And keep the readers' version separate from the working version.
Problem 6: the dashboard can't explain itself
Even a perfectly maintained Excel dashboard has a limit. It shows totals in cells and charts. It does not show how the numbers relate to each other.
When revenue is down 8%, the dashboard shows the 8%. It doesn't show that revenue is traffic times conversion times order value, or that conversion is the one that moved. The reader has to reconstruct that from separate tiles, during the meeting, under pressure.
Fix: put the drivers on the page. Next to the headline number, show the two or three numbers that multiply or add up to it, with last period beside this period. A small metric tree or a bridge chart does this. For budget against actual, the layout in how to build a budget vs actual report people read works well in Excel.
A workbook layout that survives
Most of the problems above get worse when data, calculations and presentation share the same tabs. A structure that keeps them apart holds up much longer:
| Tab | What lives there | Who touches it |
|---|---|---|
Data_Sales, Data_Budget | Raw data as Tables, loaded by Power Query or pasted whole | Whoever refreshes the file |
Calc | Every formula, referencing Tables by name | The person who owns the logic |
Dashboard | Charts and headline numbers, referencing Calc only | Nobody edits, everyone reads |
Checks | Totals compared with source, refresh date, row counts | Read before every send |
The rule that makes it work: the Dashboard tab never references a Data tab directly. Everything passes through Calc, so there is one place to look when a number is wrong.
It feels like extra structure for a small file. It is cheaper than the afternoon you lose tracing a broken number through formulas spread across six tabs.
A checklist for this afternoon
If you maintain an Excel dashboard, these take an hour or two and remove most of the risk:
- Convert every data range to a Table.
- Replace pasted data with a Power Query connection where you can.
- Swap column-number VLOOKUPs for XLOOKUP or INDEX and MATCH.
- Add a "Data as of" cell, filled from the data.
- Add one check cell that compares your total with the source.
- Turn on refresh-on-open for every pivot.
- Move the file to shared storage and send links instead of attachments.
None of these needs a new tool or a budget line.
When to stop fixing Excel
There's a point where the effort of keeping an Excel dashboard trustworthy outgrows the value of keeping it in Excel. For me the signs are: the file gets emailed outside your team, it gets pasted into slides every month, or the meeting keeps asking "why" and the file only answers "what".
Excel itself is still the right place for modelling. If the dashboard is only for you, it is fine as it is, and switching would be a waste of time. The problem is using it as the thing other people read.
That reading layer is where FlowProofs fits. You keep the workbook as the source, upload it, and build a canvas where each number reads from the data and shows the drivers next to it. Viewers get a read-only link that is always current, so there's no attachment to go stale. The Excel dashboards comparison is honest about where Excel stays the better tool, and if you run a team's weekly numbers, the operations managers page shows a typical setup.
Whichever way you go, start with the check cell. Compare your dashboard total with the source total today. If they match, you have a baseline to protect. If they don't, you have just found the reason someone stopped trusting the file.