Excel · VBA · Power Query

It does not break.
It stops being true.

A workbook that runs a business rarely fails the way software fails. It keeps opening, keeps calculating, keeps producing a number at the bottom. The question is whether that number is still right — and after ten years of edits by people who have since left, nobody can answer it.

The situation

A spreadsheet became an application when nobody was looking.

Two people cannot work on it at once, so somebody keeps a copy and merges it later.

There is a version with FINAL in the name, and a newer one without.

Somebody pastes values over formulas when a number "looks wrong".

It pulls from another workbook on a share, and breaks whenever a folder is renamed.

The macros stopped running after a security update and everyone works around it.

The person who built it has left and no one can explain what the middle sheet does.

Why you cannot verify it

Six things a workbook was never built to do.

None of these are criticisms of Excel. It is an outstanding tool being asked to be something it never claimed to be, and every item below is a consequence of that rather than a defect.

01

Nothing stops a wrong number going in

A workbook accepts whatever is typed. No required fields, no referential integrity, no rejection of a date in a quantity column. Every validation the business relies on is a habit rather than a rule, and habits leave with people.

02

Hard-coded values sit where formulas used to be

The most common silent corruption we find. Somebody overwrote a cell to make a total come out right in 2019, and it has been quietly wrong ever since. We find these by rebuilding the formula map and looking for the gaps.

03

There is no audit trail

A workbook cannot tell you who changed a number, when, or what it was before. When a figure is disputed there is nothing to check — which matters most in precisely the situations where it matters most.

04

Concurrency does not exist

One person at a time, or copies that diverge. Excel’s old shared-workbook feature was deprecated for good reasons. Almost every "we email it around" process is really a merge conflict nobody is resolving.

05

It links to other files that move

External references to workbooks on a share are the standard way a model breaks. The link does not fail loudly; it returns a stale cached value or an error buried three sheets down.

06

The macros are increasingly blocked, not broken

Office now blocks VBA in files from the internet or untrusted locations by default. Nothing is wrong with the code — it simply is not being allowed to run, and the workaround people invent is usually to lower a security setting they should not.

What usually happens next

Nobody has to give up Excel.

The instinct is to replace the spreadsheet with an application, and staff resist it for a good reason: they are fast in Excel and slow in anything else. The better answer is usually to keep the part they like and fix the part that hurts.

01

Make it trustworthy where it is

Lock the formula cells, add validation to the inputs, break or repoint the external links, get it into one place with one owner. Days of work, no new software, and it removes most of the ways the number goes quietly wrong.

02

Move the data out and keep Excel as the view

The numbers live somewhere real — a proper database with validation, history and more than one concurrent user — and Excel connects to it for the analysis and the reporting people already know how to do. This is the bypass, and for spreadsheets it is very often the right answer: the thing everyone likes about the workbook survives, and the thing that keeps hurting does not.

03

Replace the process, not the file

When the workbook is really a form, a queue and an approval step wearing a spreadsheet, a small application does that properly and Excel goes back to being Excel.

04

Buy something instead

A surprising number of workbooks are doing a job an off-the-shelf product now does well. When that is the answer we say so, and the engagement stops there.

If the workbook is attached to an Access database — and it often is — the two problems are usually one problem. That page is here.

Before the next disputed number

One day, $1,500, and we do not need the file.

Triage runs on a conversation: what the workbook does, who touches it, what depends on it downstream. The full health check is $3,500, opens the file, and finds the places a formula has been quietly replaced with a number.