Sales Tools

    Excel CRM Template, and the Google Sheets Version

    Four tabs, two controlled vocabularies and three rules. The spreadsheet CRM template that survives contact with a real pipeline, in Excel and Google Sheets.

    Editorial illustration for Excel CRM Template, and the Google Sheets Version
    September 2, 2026Updated September 2, 20268 min read
    Share:
    The short answer

    A spreadsheet CRM template needs four tabs: Leads with one row per person, Deals with one row per opportunity joined on email address, Activity appended and never edited, and Lists holding every controlled vocabulary. Status and stage columns are dropdowns fed from the Lists tab.

    Key takeaways

    • Four tabs carry the whole template: Leads, Deals, Activity and Lists, with the Lists tab feeding every dropdown in the workbook.
    • A six-value lead status ending in Disqualified or Recycled and a six-value deal stage with buyer-side exit criteria are the two vocabularies that decide whether the sheet stays usable.
    • Both products enforce a vocabulary the same way: Excel through the Data tab and Data Validation, Google Sheets through Data and the validation rules panel.
    • Every open row needs a next action with a date on it, because a row carrying a status and no next action records history and instructs nobody.

    Reviewed and updated September 2, 2026

    A spreadsheet CRM fails for one of two reasons, and neither is the spreadsheet. Either nobody agreed what the status column is allowed to say, so by month three it holds eleven spellings of the same four ideas, or nobody put a next action with a date on every open row, so the sheet records history and instructs nobody.

    The template below is built to make both failures hard. An Excel CRM template and a Google Sheets CRM template are the same artifact here, because the structure is identical and only three mechanics differ between the products. Where they differ, this page names which is which.

    Nothing here is downloadable. What follows is the actual layout, column by column, with the rules that keep it usable, so you can build it in ten minutes in whichever product your team already has open.

    What a spreadsheet CRM is for

    A spreadsheet CRM is the record of who you are talking to, where each conversation stands, and what has to happen next. That is the whole job. It is worth being strict about this because a sheet that also tries to be a lead list, a reporting layer and an activity log becomes none of them.

    It is genuinely the right tool for a specific situation: a small team, one or two people touching the records, a few hundred open conversations rather than a few thousand, and a sales process still changing often enough that configuring a real CRM would be configuring something you are about to redesign. The lead list entry covers what separates a usable list from a spreadsheet of names, and the same distinction applies here with one addition, which is that a CRM row has a state and a list row does not.

    Four tabs, and what goes in each

    Four tabs, in this order. Resist adding a fifth.

    Leads. One row per person. This is the tab most teams over-build, so keep the columns to the ones that change a decision.

    Columns: first name, last name, company, job title, email, LinkedIn URL, company size band, source, owner, status, last touch date, next action, next action date, notes.

    Deals. One row per open opportunity, linked to a Leads row by email address. A person and a deal are different objects and merging them is what makes a spreadsheet CRM stop working the first time one company runs two evaluations.

    Columns: deal name, primary contact email, company, stage, amount, expected close date, next action, next action date, owner, created date, closed date, closed reason.

    Activity. One row per meaningful touch, appended and never edited. Date, contact email, channel, direction, summary, owner. This tab is what lets you answer the question nobody can answer from a status column, which is what actually happened before this deal went quiet.

    Lists. The tab nobody publishes and every working sheet has. One column per controlled vocabulary: the status values, the stage values, the source values, the closed reasons, the owner names. Every dropdown elsewhere in the workbook points here, so changing the vocabulary is one edit rather than a find and replace across three tabs.

    The two vocabularies that decide whether it works

    Section illustration: The two vocabularies that decide whether it works

    Everything else is preference. These two are the template.

    Lead status, six values and no more: New, Contacted, Replied, Meeting Booked, Disqualified, Recycled. Recycled is the one people leave out and then miss, because it is where a person who was a bad fit this quarter waits until something changes.

    Deal stage, six values: Qualified, Discovery, Validation, Proposal, Contracting, Closed, with the closed reason held in its own column and picked from a fixed list. Each stage needs a written exit criterion, stored in a second column on the Lists tab, and the criterion has to be something the buyer did rather than something you did. Contacted is not a stage, because it records only that a message went out. Confirmed in writing that the demo addressed the problem is a criterion somebody else could check. The reasoning, and the stages worth deleting, is set out in sales pipeline stages.

    1. Step 1New

      Loaded, never contacted, owner assigned

    2. Step 2Contacted

      One message sent, nothing back yet

    3. Step 3Replied

      Any response at all, positive or not

    4. Step 4Meeting Booked

      A calendar invite exists and was accepted

    5. Step 5Disqualified

      Ruled out on a written criterion, with the reason recorded

    6. Step 6Recycled

      Fit is right, timing is not, with a date to look again

    The lead status vocabulary as an ordered path. Recycled is the exit that most spreadsheet CRMs leave out, and it is where a bad-timing contact waits for a reason to return.

    Making the vocabulary enforceable

    A controlled vocabulary that is typed by hand is a suggestion. Both products turn it into a rule the same way, through a dropdown fed by the Lists tab.

    In Excel, Microsoft's own support page describes the path: "On the Data tab, in the Data Tools group, select Data Validation", then on the Settings tab choose List, and "In the Source box, type your list values, separated by commas." For a template you will maintain, point the Source at the range on the Lists tab instead of typing values, so the vocabulary lives in one place. Microsoft's page also notes that you should "Make sure that the In-cell dropdown check box is selected." That guidance is as published on support.microsoft.com on 2 September 2026.

    In Google Sheets, the same feature is reached through Data, then Data validation, then Add rule, and Google's help page describes the criteria options including "Dropdown from a range", which is the one to use for exactly the same reason. Google also documents an inline route, typing an at sign in the cell and choosing Dropdowns from the components list. That guidance is as published on support.google.com on 2 September 2026.

    Apply validation to the status column on Leads, the stage column on Deals, and the channel and direction columns on Activity. Leave every other column free text. Validating a column nobody consults is friction with no payoff.

    Where the two products genuinely differ

    Three differences matter for this template, and the rest are cosmetic.

    Concurrent editing. Google Sheets is built around several people in the file at once and shows you who is in which cell. Excel supports co-authoring on files stored in the Microsoft cloud, and behaves differently on a file passed around as an attachment. If two people will touch the sheet in the same hour, that difference decides the choice on its own.

    Where the file lives. A Google Sheet has one canonical copy and a version history attached to it. An Excel file has as many copies as it has been emailed to, unless it is deliberately kept in a shared location. The commonest way a spreadsheet CRM dies is four versions of it, each with different rows.

    Formula portability. The core formulas here work in both products with identical syntax. Anything more advanced, including the newer dynamic array functions and the query style functions, diverges, and a template that leans on them stops being a template that works in either.

    ExcelWhere it is stronger
    • Local file works with no account and no connection
    • Comfortable at row counts that make a browser sheet sluggish
    • Data validation reached through the Data tab and the Data Tools group
    • Co-authoring depends on where the file is stored
    Google SheetsWhere it is stronger
    • One canonical copy with version history attached to it
    • Several editors at once, with presence visible per cell
    • Data validation reached through Data and the validation rules panel
    • Sharing is a permission rather than a file transfer
    The same template in two products. The structure is identical; these three mechanics are what actually decide which one a team should build it in.

    The four formulas worth having

    Section illustration: The four formulas worth having

    Keep the formula layer thin. Four earn their place, and all four work identically in both products.

    A count of open leads by status, using COUNTIF against the Lists tab, put on a small summary block at the top of the Leads tab so the distribution is visible without a pivot table.

    Days since last touch, as TODAY minus the last touch date, conditionally formatted so anything past your agreed threshold turns colour. This is the single most useful cell in the workbook, because it turns a passive record into a queue.

    Days until next action, the same arithmetic on the next action date, which surfaces the rows that have quietly gone past their own deadline.

    A deal lookup on the Leads tab, using an exact-match lookup on email address against the Deals tab, so a person's row shows whether an open deal exists without duplicating the deal data.

    The three rules that keep it honest

    The template is the easy part. These rules are what stop it decaying, and they are worth writing into the Lists tab where everyone can see them.

    Every open row carries a next action and a date. A row with a status and no next action is history. If you cannot name the next action, the status is Disqualified or Recycled, and writing that down is the point.

    Status changes only through the dropdown, and only forwards or to an exit. Nobody edits a status to a value that is not in the Lists tab, ever, because the first time somebody does, every count in the summary block is quietly wrong.

    One owner per row, filled in before the row is used. Shared ownership of a record means no ownership of the follow-through.

    Is your sheet still working?
    • Yes: Every open row has a next action and a date on it
    • Yes: Status and stage columns are dropdowns fed from one Lists tab
    • Yes: There is exactly one canonical copy of the file
    • Yes: Deals and people are separate rows, joined on email address
    • No: Two people regularly edit the same rows in the same hour
    • Depends: Somebody rebuilds a report by hand every week from the same tabs
    A spreadsheet CRM that passes all six of these is doing the job. Two failures is the point to look at a real CRM rather than a bigger sheet.

    When to stop

    Section illustration: When to stop

    A spreadsheet CRM has a ceiling and it is closer than most teams expect. The signals are consistent: more than two people editing, reporting that takes longer to assemble than to read, a growing set of formulas nobody but their author understands, and any need to trigger something automatically when a field changes, which is the boundary described in workflow automation in a CRM.

    At that point the honest move is a real CRM, and the migration is easier than it looks because the template above maps onto every one of them cleanly. What a CRM adds beyond storage is covered in pipeline management in a CRM, and the lightest possible step up, which keeps the pipeline beside the inbox, is described in Streak CRM. The maintenance problem that follows you into any system is in data hygiene, and the practice of filling in the fields your own records are missing is in CRM enrichment.

    Before any of that matters, the sheet has to have rows worth managing. If you want to see what a campaign against your own market puts into it, we can run one and you can read the replies.

    The short version

    The template is four tabs. Leads, one row per person. Deals, one row per opportunity joined to a person by email address. Activity, appended and never edited. Lists, holding every controlled vocabulary the workbook uses.

    Two vocabularies do the real work: a six-value lead status ending in Disqualified or Recycled, and a six-value deal stage where each exit criterion is something the buyer did. Both are enforced with data validation dropdowns pointed at the Lists tab, which is one feature reached through the Data tab in Excel and through Data and the validation rules panel in Google Sheets.

    Three rules keep it alive: a next action with a date on every open row, status changes only through the dropdown, and one named owner per record. When two of the six checks above start failing, the sheet has done its job and the next system is overdue.

    Questions

    Frequently asked questions.

    Frequently asked questions
    What columns should a CRM spreadsheet have?
    On the Leads tab: first name, last name, company, job title, email, LinkedIn URL, company size band, source, owner, status, last touch date, next action, next action date and notes. On the Deals tab: deal name, primary contact email, company, stage, amount, expected close date, next action, next action date, owner, created date, closed date and closed reason.
    Should I build my CRM in Excel or Google Sheets?
    The structure is identical, so decide on three mechanics. Google Sheets keeps one canonical copy with version history and handles several editors at once. Excel works offline with no account and stays comfortable at row counts that make a browser sheet sluggish. If two people will touch the sheet in the same hour, that difference decides it on its own.
    How do I stop the status column filling with typos?
    Put every allowed value on a Lists tab and point a data validation dropdown at that range. In Excel that is the Data tab, then Data Validation, then List, with the Source pointed at the range rather than typed values. In Google Sheets it is Data, then Data validation, then Add rule, choosing the option that reads a dropdown from a range.
    When should a team move off a spreadsheet CRM?
    When more than two people edit it regularly, when assembling a report takes longer than reading it, when the formula layer is understood only by its author, or when anything needs to happen automatically as a field changes. The template maps cleanly onto every real CRM, so the migration is easier than the delay suggests.
    crmspreadsheetssales operationspipeline managementtemplates
    Byline

    About the author.

    RevenueFlow Team

    B2B cold email experts helping companies generate qualified leads through done-for-you outreach campaigns.

    RevenueFlow Team

    Your next move

    Ready to scale your outreach?

    We build GTM engines that book real meetings. See the receipts.

    Further reading

    Related articles.