Home · Excel · Using Excel as a database
Using Excel as a database: where it works, where it breaks
A lot of businesses run on a spreadsheet that is really a database: a customer list, an order log, an inventory sheet. Often that is fine, and moving it into "a real database" would cost more than it saves. This page is about telling the two situations apart — and, when Excel has stopped being enough, which direction to go, because the right answer depends on what exactly broke.
When Excel works fine as a database
- One person, or one person at a time, maintains it.
- Each kind of record lives in one Excel Table (Home → Format as Table): one row per record, one header row, no blank rows, no merged cells.
- Lists that should only hold certain values use Data Validation.
- It is tens of thousands of rows, not millions, and lookups are XLOOKUP or a PivotTable away.
If that's you, the most useful change is usually structural, not a new tool: convert ranges to Tables, add validation, and keep one record per row.
Five signs it has stopped working
1. Several people edit it at once
Co-authoring helps, but a spreadsheet has no record locking and no real permissions per row. Conflicting edits and "who changed this" questions are the first sign. See what Excel's change tracking does and doesn't record.
2. Related lists are kept in step by copy and paste
Customers on one sheet, orders on another, the customer's name typed again on every order. When a name changes in one place and not the other, the data has drifted. Relationships are what databases are for.
3. It is getting big
Recalculation slows long before the hard limit of 1,048,576 rows per sheet — what the limit is and what happens past it.
4. You need to know what it said last month
Each month's file overwrites or replaces the last. Answering "what was the balance in March" means finding March's file, if anyone kept it.
5. Bad values get in
Validation doesn't stop a pasted range. A number stored as text, a date in the wrong format or a duplicated ID goes in silently and shows up later as a wrong total.
Where to go, by what broke
| What broke | Where to go | The cost |
|---|---|---|
| Several people entering records | A database with forms: Microsoft Access (Windows only), or a hosted database app | Learning a new tool; hosted apps charge per user and keep your data on their servers |
| Related lists, lots of querying | SQLite, PostgreSQL or MySQL, with a query tool | SQL, and a second place your data lives |
| Size, for analysis | Power Pivot and the Data Model, inside Excel | Pivots and measures rather than a sheet you scroll |
| Monthly files that keep coming | Keep the files, and keep every period's result: TableDI 2 | A desktop app on your Mac; not a database |
Moving a sheet into SQL? Our free Excel to SQL tool turns a sheet into CREATE TABLE and INSERT statements for PostgreSQL, MySQL, SQLite or SQL Server, in the browser.
When the "database" is really a pile of monthly files
Many spreadsheets that get called a database are something else: every month a bank export, a sales report per store or a timesheet arrives, gets checked, matched or combined, and summarized for someone. The workbook grows because every month is pasted under the last. A database would hold the rows, but it wouldn't do the monthly checking and matching, and someone would have to build that.
TableDI 2 is a desktop app for file work you redo every period: it keeps your sources, rules and delivery as a job, so next month you drop in the new files and run it again. Everything runs on your own machine.
Your source files stay as they are. Each period, a preflight checks the new files against last period's — renamed or missing columns, duplicate or blank keys, the row count — before the same rules run. Past Excel's 1,048,576-row limit, filtering and export still work, on the free edition too. In the lifetime edition, History keeps every row of every period with the file and rules version it came from, so "what was it in March" is a filter, not a search through old files.
It is not a database: there is no data entry, no forms, no SQL, no sharing with other people. If your problem is signs 1 or 2, look at the first two rows of the table above.
Questions people ask
Can Excel be used as a database?
For one person's records in the tens of thousands of rows, yes — keep each kind of record in an Excel Table, one row per record, with Data Validation on columns that take fixed values. It stops working well when several people edit at once, when related lists are kept in step by hand, or when you need history.
What is the difference between Excel and a database?
A database stores records with enforced types, relationships between tables, and safe editing by many users at once, and you query it. A spreadsheet stores cells: flexible, visible and easy to change, which is also why errors and drift get in.
Should I use Access or Excel?
Access when several people enter related records through forms and you are on Windows; Excel when one person analyzes or maintains a list. Access runs on Windows only.
How do I move Excel data into a database?
Clean it into one Table per kind of record first — one header row, one record per row, consistent types. Then import it, or generate SQL: our free Excel to SQL tool writes CREATE TABLE and INSERT statements from a sheet in your browser.
Related
Doing this every month?
In TableDI 2 you do it once, then save it as a job. Next month you drop in the new files and run it again.
macOS, Apple silicon and Intel; Windows is in progress (what to do meanwhile). Free is not a trial — no account, no card.
Last reviewed 2026-09-30 by the TableDI team. Something wrong on this page? Tell us — it is one inbox, read by the people who build TableDI.