The quick test
Pick the one spreadsheet your team would panic about losing and keep it in mind as you read the seven signs below. If one or two fit, a tidy-up may be all it needs. If several fit and the sheet runs a daily process, look at the other three options.
Seven signs a spreadsheet is now running a business process
Spreadsheets are excellent for one person working with numbers. The trouble starts when a sheet has quietly become the order log, job board, asset register or approval queue. These are the signs that it has.
1. People overwrite each other, and the folder is full of “final_v3” copies
Someone works from last Tuesday’s emailed attachment. Someone else sorts one column but not the rest. Two people edit separate copies, and someone has to merge them by hand. When “which copy is current?” comes up every week, the sheet is being used as a shared database, without the safeguards a database gives you.
Alternatives to an Excel shared workbook for multiple users
In current Microsoft 365 versions of Excel, the old Shared Workbook buttons are gone from the Review tab, and Microsoft calls co-authoring “the replacement for Shared Workbooks”. Desktop co-authoring needs a Microsoft 365 subscription, and the file must be stored in OneDrive or SharePoint Online (Microsoft’s requirements). For a small team, co-authoring or Google Sheets often fixes the save-over problem. Neither one gives you per-person permissions, required steps or forms built for phones.
2. Only one person understands it
“Ask the person who built it.” If the process stalls when that person is on vacation, you have key-person risk. The rules live in nested formulas, hidden tabs and color codes that only make sense to whoever made them. The same risk applies to any employee-built app the business now depends on.
3. Rows get retyped into other systems
The sheet is the first link in a chain: someone copies rows into accounting, the scheduling tool or a customer email. Every re-key costs time and is another chance to swap two digits. If this is your main pain, read how to eliminate double data entry.
4. Reports are late because someone has to assemble them
Monday’s report means someone spends Monday morning copying tabs, repairing broken lookups and checking totals. By the time it’s ready, it describes last week, and a broken lookup can go unnoticed for months.
5. There are no real permissions and no audit trail
Anyone with the file can see and change everything. Microsoft says plainly that worksheet protection “isn’t intended as a security feature”; it only stops people editing locked cells. Version history can bring back an older copy of the file. It can’t make someone give a reason for changing a price, and it can’t keep a supervisor out of another site’s rows.
6. People need it on their phones
“Our crews need to update this from the job site.” On a phone, a 40-column grid means pinching, scrolling sideways and typing into the wrong cell. If people text photos and updates to someone in the office who types them in, the process has outgrown the desk.
7. Outside people need to send you data
Contractors, vendors or customers email forms that someone retypes. Or the whole workbook gets shared with them, so they can see everyone else’s rows. Outsiders should see only their own records and submit through a form. That’s the job of a contractor portal or a customer portal.
When to keep the spreadsheet (and how to tidy it)
Knowing when to replace a spreadsheet with a database includes knowing when not to. Replacing a sheet that works costs money and retraining and buys you nothing. Keep it when:
- One person owns it and everyone else only reads the output.
- It’s analysis, a forecast, a budget model or a one-off, not a daily process.
- The rules still change every week and nobody downstream depends on them yet.
- Nothing in it gets retyped somewhere else, and a mistake would be caught quickly and cheaply.
A one-afternoon tidy-up
- Keep one copy in a shared location and send a link, never an attachment.
- Put inputs, calculations and reports on separate tabs.
- Use drop-down lists and data validation for statuses, sites and names so each one is spelled only one way.
- Lock formula cells, knowing that protection prevents accidents, not determined edits.
- Convert ranges into Excel tables so formulas and filters extend as rows are added.
- Add a “Read me” tab: what the sheet is for, who owns it, what each tab does and what any macros do.
- If several people edit at once, turn on co-authoring.
If the tidy-up holds for a few months, you’ve saved yourself a project. If people are working around it within weeks, the process needs more than a grid.
Your four options: tidy the sheet, buy software, low-code, or a custom app with a database
Pick the cheapest option that solves the problem you actually have. Here’s the short version:
We build in low-code (Bubble) as well as custom code, so we don’t need every answer to be custom. For deeper comparisons, see low-code vs custom software and custom software vs off-the-shelf.
Spreadsheet vs database for business: what actually changes
In a custom app, the data lives in a database such as SQL Server, with one record per job, order or asset instead of one row in someone’s copy. People work through screens built for their role: the office edits, crews update from their phones, managers approve. The app records who changed what and when. Reports read from the same database: Excel can import data from SQL Server and Tableau has a SQL Server connector, so pivot tables and dashboards keep working on current data. That’s the work we describe on replacing Excel with custom software.
Not sure which option fits your sheet?
Tell us what the spreadsheet does and who uses it. Your first call is with an engineer, who will tell you if a tidy-up is enough.
Map the process before you replace the sheet
The fastest way to build the wrong software is to copy the grid. Years of workarounds shaped those columns. What matters is the process. Before anyone picks a tool, write down:
- Who touches it: who adds a row, who updates it, who approves and who only reads.
- What triggers each step: a customer call, a delivery, a date, a change of status.
- Where the data goes next: every place a value is copied, emailed or retyped.
- The rules: formulas, conditional formatting and color codes (“red means overdue”) are business rules in disguise.
- The exceptions: what happens when a job is split, canceled or reopened. Hidden columns and side notes often exist to handle these.
- The columns nobody uses: leave them behind.
Example (hypothetical): a facilities maintenance jobs tracker
A facilities maintenance company runs its jobs from one workbook. Mapping it turns up four roles (scheduler, crew lead, manager, billing) and five statuses. Two rules are hidden in formulas: a job is overdue after its due date unless it’s on hold, and jobs over a set amount need a manager’s sign-off. There’s one re-key: every Friday, billing types finished jobs into the accounting system. The replacement isn’t “the spreadsheet, online.” It’s a job record with statuses, a phone screen for crew leads, an approval step and an export or integration for billing. (Not client data.)
Moving the data: imports, cleanup and history
Your existing rows are worth keeping, but they’re rarely clean. Plan for three things.
Clean up before you import
- The same site, customer or product spelled several different ways.
- Duplicate IDs, or rows with no ID at all.
- Dates and numbers stored as text.
- Merged cells and subtotal rows mixed in with the data.
- Notes typed into a quantity or date column (“TBD”, “see email”).
Fix what you can by rule. Anything that can’t be matched with confidence goes to a review list for the people who know the data. If the import guesses, it moves the errors into the new system.
Run trial imports on a test copy
Before go-live, run the import against a test copy of the new system more than once. Check row counts and totals against the spreadsheet so your team can confirm the numbers match before anyone depends on them.
Decide what history to bring, then retire the file
Decide how much history the new system needs as live records. All open items plus a set window of closed ones may be enough. Everything older can stay in the archived spreadsheet. A clean cutover looks like this:
- Pick a cutover date and make the spreadsheet read-only from that day.
- Run the final import.
- Check counts and totals against the frozen sheet.
- Archive the file with the date in its name, remove edit access, and update any bookmarks or links that point to it.
Macros only one person understands
Many critical workbooks run on VBA macros: a button that builds the weekly schedule, emails a summary or copies rows to a master tab. Microsoft notes that you can’t create, run or edit VBA macros in Excel for the web. The process stays tied to whoever has desktop Excel and the right copy of the file.
When the sheet becomes an application, the macro logic moves into server-side code:
Before anything is rebuilt, someone needs to read the VBA, write each rule down in plain English and check the edge cases with the people who run it. Macros can hold rules nobody remembers agreeing to, such as rows silently skipped when a date is blank. That written list becomes the specification and, later, the documentation.
If the person who wrote the macros has left
Don’t clean up the workbook yet. Keep a copy of the macro-enabled file (.xlsm), export the VBA modules from the editor, and note who runs each macro, when and why. That’s enough for a developer to rebuild the logic. If the stuck work is a whole application rather than a workbook, see what to do when your developer disappears.
What staying on spreadsheets costs you
A spreadsheet process rarely shows up on an invoice. It shows up as hours: re-keying, building reports, chasing the current copy and fixing mistakes. You can estimate those hours with numbers you already know:
- How often the task happens (per day, week or month).
- How long it takes each time.
- How many people do it.
- Their loaded hourly cost: wage plus payroll taxes and benefits.
- How often the work has to be corrected or redone, and how long a fix takes.
Example (hypothetical, not client data)
Three coordinators each spend 30 minutes a day retyping finished jobs from the tracker into billing, at a loaded cost of $40 an hour, on 250 working days a year. That’s 3 × 0.5 × 250 = 375 hours, or $15,000 a year, before you count the time spent fixing typos or the cost of an invoice that never went out.
Run your own numbers in the automation ROI calculator. Its spreadsheet-work preset fills in the row names, and every value is yours. Nothing you type is sent anywhere unless you choose to send it to us. Compare the yearly figure with the options above. If it’s small, tidy the sheet. If it’s large and growing, use the calculator’s payback and break-even figures to judge whether a replacement earns its keep.
Costs that don’t fit in a calculator
- A wrong price or quantity that reaches a customer.
- Decisions made on last week’s numbers.
- The week the one person who understands the sheet is out.
- Records you can’t confidently show a customer or an auditor, because you can’t say who changed them.
Too many spreadsheets? Start with one
If your business has too many spreadsheets, don’t try to replace them all at once. Rank them by the errors and re-keying they cause, and start with the worst one. Map its process, tidy or replace it, and let the result show you what’s worth doing next. The sheets that work fine can stay.
When one sheet does need to become an application, that’s the work on our replace Excel with custom software page. If several tools, inboxes and workarounds are tangled together, see internal tools development. There are more plain-language guides on spreadsheets, automation and other systems in our guides.
