Build a CRM System in Excel: 2026 Step-by-Step Guide
Share
TL;DR: Build a CRM in Excel in three steps — a Contacts sheet, a Pipeline with stages, and a daily dashboard. No code, no subscription.
A CRM in Excel gives you a real customer management system without monthly fees, without your data sitting on someone else's server, and without a week of onboarding videos. Excel already does the hard parts: structured tables, dropdowns, date math, and conditional formatting. Wire those together and you get a tracker that tells you exactly who to call today, what to say, and what happens if you forget. This guide walks through the whole build, from the first column to the weekly habit that keeps it alive, whether you're tracking 50 leads or 500.
The reason most Excel CRMs fail (and it isn't Excel)
People blame the tool. The real problem is almost always the setup. A spreadsheet with thirty columns and no clear owner, no pipeline stage, and no "next action" isn't a CRM, it's a contact list wearing a costume. You open it, you don't know what to do next, and within three weeks you stop opening it.
The fix is boring and it works: every record needs an owner, a stage, a next action, and a date that action is due. Get those four things right and almost everything else is decoration. Before you touch a single formula, decide what a "lead" actually means in your business. For a realtor it might be anyone who booked a viewing. For a freelancer it might be anyone who asked for a quote. Define it once so your data stays consistent from day one. If you want a gentler starting point than a full pipeline, this guide to organizing client contacts without expensive CRM software covers the contact-list foundation first.
One honest caveat before you commit. If several people need to edit the same records at the same time, or you want automation, real integrations, or an audit trail of who changed what, a dedicated cloud CRM like HubSpot, Pipedrive, or Zoho genuinely does that better, and it's worth the money. But if you're one person (or two) tracking your first 50 to 500 contacts, none of that is your problem yet. The spreadsheet wins on cost, speed, and control, and the rest of this guide is for that case.
What fields and structure your Excel CRM needs
The whole system sits on one clean table. Excel Tables (not plain ranges) are what make this work over time: formulas copy down automatically, filtering stays consistent, and the table grows as you add rows. A static range breaks the moment you paste in a new lead below it. A Table just absorbs it.
Track one row per lead, with these columns:
| Column | Why it earns its place |
|---|---|
| Contact Name | Who you're dealing with |
| Company | Ties the person to an organization (skip if you sell to individuals) |
| Source | Where the lead came from: referral, web form, cold outreach, open house |
| Owner | The name accountable for the next move |
| Stage | Position in the pipeline: New, Contacted, Proposal Sent, Closed Won |
| Last Touch | Date of your most recent contact |
| Next Due Date | The date that drives every reminder |
| Priority | Flags the high-value or time-sensitive ones |
| Next Action | The exact task to do next, written like an instruction |
Keep your stage labels short and literal. "Proposal Sent" tells you something. "In Progress" tells you nothing, because everything is in progress until it isn't. Vague stages produce a vague pipeline, and a vague pipeline is the thing you eventually stop trusting.
Keep contacts and deals on separate sheets
Cramming contact details and deal tracking into one table gets messy fast. Use one sheet as your contact database and a second sheet for active deals. That's how Salesforce and HubSpot are structured under the hood, and you get the same clarity without paying for a seat every month. A consultant juggling fifteen long-term clients feels it immediately: the contact sheet holds the relationship, the deal sheet holds the three renewals due this quarter, and neither one drowns the other.
Convert each range into a proper Excel Table the moment you have headers (Insert > Table, or just press Ctrl+T). That single step unlocks automatic formula expansion, structured references, and faster filtering, and it costs you ten seconds.
Turning Excel into a system that reminds you
A contact list is static. A CRM nudges you. The difference comes from two features that take ten minutes to set up: conditional formatting for visual reminders, and Power Query for keeping messy data in one place.
Follow-up alerts with conditional formatting
Conditional formatting tied to TODAY() recalculates every time you open the file, so your highlights are always current. For a rolling seven-day window, this is the rule that works:
=AND($F2>=TODAY(),$F2<=TODAY()+7)
That highlights any row where the Next Due Date lands within the next week. Notice what it deliberately does not catch: overdue items. This is the detail almost everyone gets wrong. If your "upcoming" highlight also lights up the overdue rows, then overdue and upcoming look identical, and the day they look identical is the day you stop trusting the color. So you add a second rule, with a red fill, for anything already past due:
| Rule | Formula | Fill | What it tells you |
|---|---|---|---|
| Upcoming | =AND($F2>=TODAY(),$F2<=TODAY()+7) |
Yellow | Handle this week |
| Overdue | =$F2<TODAY() |
Red | You already missed this |
Picture a realtor on a Monday morning. Three rows are yellow: a buyer who wanted a second viewing on a townhouse, a seller waiting on a pricing recommendation, and a referral from a past client. One row is red, a lead from an open house ten days ago who asked to be contacted "next week" and then slipped. Without the color, that red row stays buried at line 140 and the deal goes cold. With it, the morning has an obvious order: clear the red, then work the yellow. If you want to go deeper on the cadence behind those reminders, see how to build a follow-up system that never lets leads slip away.
Power Query for leads coming from everywhere
If your leads arrive from more than one place, a web form export here, a partner spreadsheet there, a manual entry sheet you keep on the side, Power Query pulls them into one workbook and refreshes all of it with a single click. The alternative is copy and paste, and copy and paste is how a phone number ends up in the email column. Go to Data > Get Data, point it at your source, load it into a query, and set the refresh behavior under Query Properties. After that your pipeline updates itself instead of you babysitting it.
A daily dashboard built from a few formulas
The last piece is a one-glance summary you check every morning. You don't need a pivot table or a chart engine for this; a small block of formulas on a dedicated Dashboard sheet does the job. Use COUNTIF against the Stage column to tally how many deals sit in New, Contacted, Proposal Sent, and Closed Won, so you can see the shape of the pipeline at a glance. Then add a COUNTIFS that counts rows where the Next Due Date is on or before TODAY() for a live "due now" number. Because every formula keys off TODAY(), the dashboard refreshes itself the moment you open the file: today's overdue count, this week's workload, and where deals are stacking up, all without touching a single cell.
The build, step by step
Each step builds on the one before it. Work through them in order and you'll have a working CRM in an afternoon.
- Set up the workbook. Three sheets: Contacts, Deals, and Lookup. The Lookup sheet just holds your dropdown values, the stages, sources, owners, and priority levels you'll reuse everywhere.
- Build the Contacts table. Type your headers, select the range, press Ctrl+T, and name it tblContacts. Naming it now saves you from hunting through "Table1, Table2, Table3" later.
- Add dropdowns. Select the Stage column, go to Data > Data Validation, choose List, and point the source at your Lookup sheet. Dropdowns backed by a named range stop people from typing "Contactd" or "proposal sent " with a trailing space that quietly breaks your filters.
- Build the Deals table. Same table setup, with Owner, Next Action, and Next Due Date included. Those three columns are the operational heart of the whole thing.
- Apply the two formatting rules. Select the Next Due Date column in the Deals table and add the yellow upcoming rule and the red overdue rule from the section above.
- Connect Power Query if you need it. Only worth it if leads come in from external files. It pays for itself the moment you're past about 100 leads.
-
Build a daily dashboard. Add a Dashboard sheet and use
COUNTIFto tally deals by stage, plus aCOUNTIFSthat counts rows where Next Due Date is on or before today for your "due now" number. A handful of those formulas, laid out as a small summary block, gives you a one-glance read every morning of what's open, what's overdue, and where the pipeline is stacked. - Run your first weekly review. Update next actions after conversations, give every ownerless lead a name, and push dead leads to a "Stale" stage. This one habit is what keeps the system from rotting.
Block twenty minutes every Monday for that review and treat it like a meeting you can't move. The pipeline stays accurate as long as the review keeps happening, and starts drifting the moment it doesn't.
The mistakes that kill an Excel CRM early
A few specific errors turn a good build into an abandoned tab. They're easy to avoid once you've seen them.
Vague next actions. "Follow up" is not an instruction, it's a shrug. "Send the pricing deck Tuesday" or "call about the inspection contingency" is something you can actually do without thinking twice. The whole point of the Next Action field is that it removes the decision, so write it like you're handing the task to someone else.
No owner. A lead with a blank Owner column has no one fighting for it. For a single freelancer that owner is always you, which is fine, but the moment a second person touches the file, an unowned lead is one everybody assumes someone else is handling. It dies quietly.
Contacts and deals jammed into one table. You end up scrolling 300 rows to find the eight that are actually active. Two sheets fix it in five minutes.
Broken date logic in your highlights. This one is worse than having no formatting at all, because a color you can't trust is noise. If the yellow rule also grabs overdue rows, fix it with the AND() bounds and keep overdue on its own red rule.
Archive stale leads to a separate sheet every quarter and keep your active pipeline under about 150 rows. Short lists get reviewed. Long lists get ignored, and an ignored CRM is just a spreadsheet taking up disk space. And if you ever do cross the line into needing live multi-user editing or automation, that's growth, not failure, this Excel CRM vs online CRM comparison lays out where each one wins.
Skip the build: a ready-made CRM in Excel
Everything above is doable in an afternoon, but you don't have to do it yourself. If you'd rather have the structure already built, formatted, and tested, the CRM built in Excel gives you exactly that: a lead tracker, customer database, follow-up reminders, a sales pipeline, and reporting dashboards, ready to use.
It runs offline in Excel on Windows. No monthly fee, no cloud account, no data leaving your machine. You pay once, around $70, and you own the file outright. It fits solopreneurs, freelancers, realtors, mortgage and financial advisors, consultants, and insurance agents equally well, anyone who already lives in Excel and wants to go from scattered notes to a working pipeline in minutes instead of days. Get the CRM in Excel here and start with your real contacts today.
FAQ
What columns does an Excel CRM actually need?
The minimum is Contact Name, Owner, Stage, Next Action, and Next Due Date. Those five turn a contact list into something operational. Everything else is useful, but optional.
How do I create follow-up reminders in Excel?
Use conditional formatting. The rule =AND($F2>=TODAY(),$F2<=TODAY()+7) highlights anything due in the next seven days, and a separate rule of =$F2<TODAY() in red flags anything overdue. Keep them as two distinct rules so upcoming and overdue never look the same.
Can Excel handle a real sales pipeline?
Yes. A Stage column with dropdown values like New, Contacted, Proposal Sent, and Closed Won lets you filter or sort to see your whole pipeline at any moment. For most solo operators and small teams, that's all a pipeline view needs to be.
When should I move off Excel to a dedicated CRM?
When you need more than about three people editing live at once, real mobile access, or automated email sequences. Below that, Excel handles the job without the subscription.
How do I stop my Excel CRM from going stale?
Run a twenty-minute review every Monday. Update next actions after each conversation, assign owners to anything orphaned, and move dead leads to a Stale stage. The review is the maintenance, and the file decays the week you skip it.