Files that are meant to hold the same kind of data rarely stay identical for long. A heading is renamed, a column is added, a title row appears above the table. Each change is small. Together they are why a consolidation that worked in January quietly fails in April.
One monthly sales report, three months, three structures
January
- Customer
- Revenue
- Region
February
- Client was Customer
- Sales was Revenue
- Territory was Region
March
- Account was Client
- Net Sales new meaning?
- Sales Region was Territory
A worked example
A sales team sends a monthly report built from a shared template. In January the columns are Customer | Revenue | Region. In February a new team lead prefers Client | Sales | Territory. In March the report is exported from a new CRM, which produces Account | Net Sales | Sales Region.
Nobody made a mistake. Each file is internally consistent and each heading is reasonable. But a process that stacks the files by position, or looks for a column called “Revenue”, now gives a wrong answer:
- A lookup for Revenue finds nothing in February or March, so two months of sales silently disappear from the total.
- A position-based append still “works”, but only while the columns stay in the same order. The first time someone inserts a column, values land under the wrong heading.
- If Net Sales excludes returns and January’s Revenue did not, combining them into one column produces a trend that isn’t real.
The common forms of schema drift
| Form | Example | Typical consequence |
|---|---|---|
| Renamed column | Customer becomes Client | Two half-empty columns, or a missing column in a lookup. |
| Reformatted heading | Order ID becomes order_id | Exact-name tools treat it as a new column. |
| Reordered columns | Amount moves to the first column | Position-based copying puts values under the wrong heading. |
| Added column | A Notes column is inserted | Shifts later columns, or is dropped by tools that use the first file’s columns. |
| Removed column | Region is no longer sent | Blanks, a refresh error, or neighbouring values shifting sideways. |
| Moved header row | A title and date are added above the table | The title is read as the heading, or headings are read as data. |
| Surrounding content | A total row or notes below the data | Totals counted as records, doubling the sum. |
| Changed meaning | Revenue becomes Net Sales | The heading looks equivalent; the numbers are not. |
| Changed type or format | Dates as text, or 01/02 meaning February in one file and January in another | Sorting, filtering and totals go wrong. |
Why schema drift happens
Drift is a normal side effect of spreadsheets being edited by people and exported by systems that change over time:
- Local language. Teams rename headings to the words they use every day.
- Local needs. Someone adds a column for their own tracking and leaves it in.
- Presentation. Titles, logos, reporting periods and totals are added to make the file readable on its own.
- System changes. A new CRM, ERP or finance system exports the same data with different field names.
- Old templates. Someone reuses last year’s file.
- External sources. Suppliers and partners send data in their own formats and change them without notice.
Asking everyone to use one locked template helps, but it rarely holds for long, and it is often impossible with external suppliers. A robust process assumes some drift will happen and is designed to notice it.
Schema drift is not the same as bad data
Bad data means the values are wrong: a mistyped price, a missing customer name, a duplicated order. Schema drift means the structure has changed while the values may be perfectly correct. The distinction matters because the fixes are different. Bad data needs correcting at the source. Drift needs the consolidation step to recognise that Client in February is the same field as Customer in January, or to stop and ask when it can’t tell.
How to detect spreadsheet schema drift
In Excel, a quick check is to copy each file’s header row into one sheet, one file per row, and compare them side by side. In Power Query, Table.ColumnNames applied to each file shows which columns each one actually has.
How to manage schema drift
- Match by heading, never by position. Column order then stops mattering.
- Normalise formatting automatically. Capitals, extra spaces, underscores and hyphens carry no meaning.
- Decide renamed fields deliberately. Record the decision, such as “Client means Customer”, so it is visible and reusable. Treat similar-looking measures, such as Revenue and Net Sales, as different until someone confirms otherwise.
- Keep new columns visible. Don’t let a new column silently disappear; keep it, blank for files that don’t have it, until you decide whether it belongs.
- Find the real table. Skip title rows and keep totals out of the data.
- Record the source of every row. A Source File column makes any unexpected figure traceable.
Schema drift in Excel and Power Query
Power Query’s folder combine is built for files that share one structure. By default it uses an example file to decide which columns come through, and later steps refer to columns by name. When a heading changes, a step that names the old column can fail with an error such as The column ‘Revenue’ of the table wasn’t found, or a renamed column arrives as a new, mostly empty one. Both can be handled with extra steps, such as rename lists and combining with Table.Combine. Power Query Combine Files problems covers the specific errors and fixes.
What schema drift means for recurring reporting
For a one-off job, drift is a nuisance. For recurring reporting, it is a risk: the process runs every month, people stop checking it closely, and a change in one source file can distort a group total for several periods before anyone notices. The practical answer is to make each consolidation compare its inputs with the agreed structure every time, and to put the human attention on the files that changed rather than on every file. Consolidating monthly spreadsheets covers that process.
Where spreadsheet consolidation tools help
A consolidation tool takes on the mechanical part of managing drift: finding the table in each file, lining columns up by heading, absorbing formatting differences and keeping track of where each row came from. The judgement part, deciding whether two differently named columns really mean the same thing, should stay with a person. A good tool makes those decisions visible rather than guessing.
ConsoliSheet is designed for this. It looks for the table in each file even below title rows, lines columns up by heading rather than position, matches headings that differ only in capitals, spacing, underscores or hyphens, keeps columns that only some files have, never merges differently worded headings on a guess, and adds a Source File column to every row.
Common questions
What is spreadsheet schema drift?
Spreadsheet schema drift occurs when files intended to represent the same kind of data gradually develop different structures, for example changed column names, reordered fields, added or missing columns, or different surrounding layout. It is a change of shape, not necessarily of the values, and it causes processes that assume the old shape to give wrong results.
Is schema drift only a database problem?
No. The term is widely used for databases and data pipelines, but the same thing happens with spreadsheets, often faster, because people edit them by hand and many different people and systems produce them.
How do I know if my spreadsheets have schema drift?
Compare each file’s headings and header-row position with an agreed column list, look for new or missing columns, and check for totals or notes around the table. A combined row count or total that doesn’t reconcile with the sources is often the first visible symptom.
Why do my monthly Excel reports stop combining correctly?
Usually because one or more files no longer have the structure the process expects: a renamed heading, an inserted or removed column, headings on a different row, or a new total row. These are all forms of schema drift.
Can schema drift be prevented?
It can be reduced with shared, locked templates and clear ownership of column names, but rarely eliminated, especially when files come from suppliers or different systems. It is safer to design the consolidation step to detect drift every time.
Should similar column names be merged automatically?
Only when the difference is purely formatting, such as capitals or spacing. Different words, such as Revenue and Net Sales, may describe different figures and need a person to confirm before they share a column.
Next: how to combine Excel files with different column names works through renamed, added and missing columns in detail, and combining supplier spreadsheets shows drift in files you don’t control.
Spreadsheets that have drifted apart?
If your files don’t arrive in exactly the same shape, ConsoliSheet is designed to help consolidate them safely. Upload them and see how the columns line up before anything is combined.
Free for up to 5 business columns. No account needed.