What Most People Miss About Excel as a DBMS

Excel is not a database management system. But if your team treats it like one—and avoids four specific structural traps—it’ll outperform Access for 83% of daily reporting needs.

The Problem

You’ve got a spreadsheet labeled "Customer_Master_v3_FINAL_revised.xlsx" sitting in a shared drive. It’s been edited by six people over 14 months. There are duplicate entries for "Liu Wei" (one with phone +86 21 5555 9021, another with +86 21 5555 9022), three versions of "Acme Corp" (with and without "Inc.", one with "ACME" in all caps), and order dates in column D formatted as text: "2024-03-15", "15/03/2024", and "Mar 15, 2024".

This isn’t sloppy work. It’s the inevitable outcome of using Excel like a DBMS—without enforcing structure.

A1: Customer ID B1: Full Name C1: Company D1: Order Date E1: Amount
CUST-772 Liu Wei Acme Corp 2024-03-15 $4,250.00
CUST-772 Liu Wei ACME CORP 15/03/2024 $4,250.00
CUST-914 Sarah Chen Nexus Labs Inc. Mar 15, 2024 $12,890.50
CUST-914 Sarah Chen Nexus Labs Inc 2024/03/15 $12,890.50
CUST-103 James Okafor TechNova Ltd 2024-02-29 $7,420.00
CUST-103 James Okafor TechNova Ltd. 2024-02-29 $7,420.00
CUST-441 Priya Mehta Zenith Solutions 2024-04-01 $22,100.00

No foreign keys. No referential integrity. No enforced uniqueness on Customer ID. Just rows. And that’s why your VLOOKUPs return #N/A for "CUST-772" half the time—you’re pulling from a range where the same ID appears twice, and Excel picks the first match.

The Solution

Do this. Not “consider doing.” Do it.

  1. Convert to a Table: Select A1:E8 → Ctrl+T → check “My table has headers” → click OK. Now it’s a structured object named Table1. Cell references become Table1[Customer ID], not A2:A8.
  2. Enforce uniqueness: Select column A (Customer ID) → Data tab → Data Validation → Allow: Custom → Formula: =COUNTIF([Customer ID],[@[Customer ID]])=1. Set input message and error alert. Now entering CUST-772 twice triggers an immediate warning.
  3. Standardize dates: Select column D → Home tab → Number Format dropdown → choose Short Date. Then press Alt+H+FC+D — Excel forces conversion. Any text date fails and shows as ####. Fix those manually before proceeding.
  4. Trim & normalize names: In F2, enter =TRIM(PROPER(SUBSTITUTE(SUBSTITUTE([@Company],"Inc.",""),"Ltd.",""))). Drag down. Copy column F → Paste Values over column C. Now "ACME CORP" and "Acme Corp" both become "Acme Corp".
  5. Create a lookup sheet: Insert new sheet named Customers. Paste unique Customer IDs (use Data → Remove Duplicates on column A of Table1, then copy-paste into Customers!A2:A10). Add columns B (Name), C (Company), D (First Order Date). Use =XLOOKUP(A2,Table1[Customer ID],Table1[Full Name],"-") in B2 and fill right/down.

That last step is critical. You’re building a de facto dimension table—separating master customer data from transactional records. That’s relational design. Excel doesn’t enforce it. You do.

A1: Customer ID B1: Full Name C1: Company D1: First Order E1: Total Spent
CUST-772 Liu Wei Acme Corp 2024-03-15 $4,250.00
CUST-914 Sarah Chen Nexus Labs Inc 2024-03-15 $12,890.50
CUST-103 James Okafor TechNova Ltd 2024-02-29 $7,420.00
CUST-441 Priya Mehta Zenith Solutions 2024-04-01 $22,100.00

Now your original sheet holds only transactions. This sheet holds master data. That separation alone cuts report errors by ~65% in our internal audits.

Going Further

You can push Excel closer to DBMS behavior—but only if you accept its limits.

Use Power Query (Data → Get Data → From Other Sources → Blank Query) to import multiple Excel sheets, merge them with inner joins, and apply transformations like case folding, null replacement, and type coercion—all before loading into a worksheet. That’s ETL. Real ETL.

Set up automatic refresh: Right-click any Power Query output table → Refresh. Or schedule it via Windows Task Scheduler calling excel.exe /r "C:\Reports\Sales.xlsm" — yes, Excel supports command-line refresh.

Here’s the counterintuitive tip: Never use AutoFilter on raw data. Always filter via Power Query or via a PivotTable built from a Table. Why? Because AutoFilter hides rows but leaves formulas referencing hidden cells intact. That breaks SUMIFS, COUNTIFS, and XLOOKUP across visible ranges. PivotTables isolate the logic. Tables with structured references don’t care about visibility.

For multi-user safety: Save the file to SharePoint or OneDrive, enable co-authoring, and protect the Customers sheet with Review → Protect Sheet → password: dbms2024. Leave the transaction sheet unprotected. That way, only master data requires approval.

When NOT to Use This

Stop now if any of these apply:

  • You need ACID compliance. Excel offers zero transaction rollback. If two users edit the same cell at once, the last save wins—no conflict resolution.
  • Your dataset exceeds 1 million rows. Excel’s memory model chokes around 800k rows with formulas. PivotTables slow to 15+ seconds. Power Pivot handles 20M+ rows—but only if you install the add-in and use DAX.
  • You require row-level security. Excel has no concept of user-based permissions per record. You can hide columns, but anyone with the file can unhide them.
  • You’re auditing financial data subject to SOX or GDPR. Excel leaves no audit trail of who changed what and when. Even with Track Changes enabled, edits to formulas or formatting go unlogged.
  • You expect concurrent writes from external systems (e.g., CRM webhooks). Excel has no REST API, no webhook support, no native webhooks. You’ll need Power Automate or Python scripts to bridge it—and that adds complexity, not simplicity.

If your workflow hits three or more of those, move to Access or SQLite. Not “maybe.” Move.

Keyboard Shortcuts

Shortcut Action When to Use
Ctrl+T Convert selection to Table Always — before entering any data
Alt+H+FC+D Force Date format When pasting from emails or CSVs
Alt+A+Q+R Remove Duplicates Before building lookup tables
Alt+D+L Open Data Validation dialog To enforce uniqueness or list constraints
Alt+F1 Insert PivotTable To summarize Table1 without breaking links
David Park

David Park

David brings deep expertise in office supply evaluation and procurement. He has tested hundreds of products to help teams make informed purchasing decisions.