Spreadsheet vs database: what actually changes

Not which is better — what is genuinely different. A clear-eyed comparison of the trade-offs, and the specific jobs each one wins.

The usual version of this comparison is written to sell databases. This one is not. Spreadsheets are one of the most successful pieces of software ever made and they beat databases decisively at several things.

The useful question is not which is better. It is what actually changes when you move — so you can tell which side of the line your problem sits on.

The fundamental difference

A spreadsheet is a grid of cells. Any cell can hold anything. Structure is a convention that humans maintain by agreement.

A database is a set of typed records. A column holds one kind of thing. Structure is enforced by the system.

Everything else follows from that one distinction.

What you gain

Structure that holds

In a spreadsheet, a date column contains dates until someone types "TBC". Then it contains dates and one string, and every date calculation on that column is now broken — usually silently.

In a database, a date field accepts dates. "TBC" is rejected, or expressed properly as an empty value. The column's meaning survives contact with a hurried human.

Real relationships

A spreadsheet's answer to "this project belongs to that client" is to type the client's name. That is text that resembles a link. A database stores an actual reference to the client record — which is why renames propagate, typos are impossible, and you can navigate from either end. See linked records explained.

Many views, one truth

A spreadsheet has one grid. Different needs mean different filters fighting each other, or — far more commonly — different copies of the file.

A database separates the data from how it is displayed. The same records appear as a grid, a calendar, a board, a timeline or a map, with different filters and different visible fields, for different people. No copies, so nothing diverges.

Granular permissions

Spreadsheet permissions are file-level: you can open it or you cannot. Once open, everything is visible and mostly editable.

A database can restrict by row and by field. The contractor sees their own projects and not the margin column. Sales see the pipeline and not salaries.

An audit trail

A spreadsheet's version history tells you the file changed. A database records that this person changed this field on this record from this value to that one, at a specific time. When a number is wrong, that difference is everything.

It stops getting slower

Spreadsheets hold everything in memory and recalculate broadly. Past a few tens of thousands of rows with formulas, they degrade — and the degradation lands on the person who opens the file.

Databases index. Filtering 200,000 records stays fast because only the matching ones are fetched.

What you lose

Honestly, and this matters.

Freeform flexibility

In a spreadsheet you can put anything anywhere. A note in the margin. A scratch calculation three columns over. A different layout on rows 200–240 because that section is different.

Databases refuse this, deliberately. Every record has the same shape. When you genuinely need a one-off exception, a database makes you either model it properly or not do it — and sometimes not doing it is the wrong answer.

Instant, zero-decision starts

A blank sheet needs no decisions. A database asks what your tables are, what links them, and what type each field is — before you have anything working. For a five-minute list, that overhead is not worth it.

Modelling and scenarios

This is the big one, and databases lose it badly.

Financial models, forecasts, what-if scenarios, sensitivity analysis, anything where you want to see the whole calculation laid out and poke at it — spreadsheets are exceptional and databases are poor. Cell-level formulas across a two-dimensional grid is the right abstraction for modelling, and it is not what databases do.

Do not migrate your financial model. Migrate the operational records it reads from.

Universal literacy

Everyone can use a spreadsheet. Not everyone will immediately understand a relation field or why they cannot just type the client's name. Expect a short adjustment, and expect one person to be annoyed by it.

Side by side

SpreadsheetRelational database
Time to first useful thingSecondsUnder an hour
Enforces data typesNoYes
Real links between tablesNo — text plus VLOOKUPYes
Multiple simultaneous viewsOne grid, fighting filtersMany, over one truth
PermissionsFile-levelRow and field level
Audit trailFile versionsField-level history
Concurrent editingWorks, but restructuring is dangerousSafe
Scale before painTens of thousands of rowsMillions
Ad-hoc calculationExcellentLimited
Scenario modellingExcellentPoor
Freeform layoutTotalNone

The decision, in one question

Is the value in the calculation, or in the record?

If the value is in the calculation — you are modelling, forecasting, analysing, exploring — stay in a spreadsheet. It is the better tool and it is not close.

If the value is in the record — this is a shared, lasting, multi-person source of truth about real things — a database will serve you better, and the gap widens every month.

Most teams need both. The mistake is not choosing wrongly; it is letting one tool do both jobs. A spreadsheet that has become a shared operational database gets steadily worse. A database asked to be a financial model gets abandoned.

The middle option

Full SQL databases require an engineer and a user interface, which is why most teams never migrate even when they should.

Relational workspaces exist to close that gap: spreadsheet-like tables anyone can build, with real relationships, types, views, permissions and audit underneath. You keep the approachability and get the structure.

That does not make them right for everything. But for "our operational data has outgrown a sheet and we do not have a developer", it is the category that fits.

Practical advice

If you are somewhere in the middle:

  1. Split by job, not by team. Operational records to the database; models and analysis stay in sheets.
  2. Migrate one workflow first. The one causing the most manual reconciliation.
  3. Keep the spreadsheet reading from the database, if your tool has an API or export. Analysts keep their tool; the source of truth stops being a file.
  4. Do not migrate the financial model. Seriously.

The goal is not to eliminate spreadsheets. It is to stop asking one to be a database.

Next: seven signs your spreadsheet has become a database for the specific symptoms, or the tool-specific versions — the Excel alternative for teams and when Google Sheets stops being enough.