Home / Blog / Analyze a CRM Export
How-to · 2026

How to Analyze a CRM Export in Excel

Your CRM's built-in reports answer the common questions but not the specific one you have right now. The usual move is to export the deals to Excel and pivot them yourself. Here is how to do that cleanly — and the dirty-data trap that quietly gives you the wrong number.

By the Quiriz Team · Published August 4, 2026 · 6 min read

The quick version: export the deals view to CSV, press Ctrl+T to make it a Table, and pivot it. The three questions a CRM dashboard usually fumbles are win rate by source, pipeline by stage this month, and deals that have gone quiet. Here's each — and the dirty-data trap that gives you a clean, confident, wrong number.

Get the deals out

In HubSpot, Pipedrive, or Salesforce, open the deals (or opportunities) list and export it to CSV. Make sure the columns include amount, stage, source, owner, create date, and close date — those are what the interesting questions hang on. Open the file in Excel, click inside the data, and press Ctrl+T so it's a real Table. Pivots and formulas built on a Table pick up new rows on their own next time you export.

Win rate by source

Add a helper column Won that returns 1 for won deals and 0 otherwise:

=IF([@Stage]="Closed Won", 1, 0)

Insert a PivotTable with Source in Rows, and two values: a Count of deals and a Sum of Won. Win rate per source is Won ÷ total. Decide deliberately whether still-open deals belong in the denominator — including them understates your rate, excluding them overstates it.

Pipeline by stage, this month

PivotTable with Stage in Rows and Sum of Amount in Values gives you open pipeline by stage. To scope it to deals created this month, drag Create Date to Filters (or group it by month), so you're not mixing this quarter's pipeline with last year's.

Deals that have gone quiet

Add a column for days since the deal last moved:

=TODAY()-[@[Last Activity Date]]

If you don't have a last-activity field, use create date as a rougher proxy. Sort descending, or filter for anything over your threshold (say 30 days), to surface the deals quietly dying in the pipeline.

The trap: dirty categories

This is the one that bites. CRM exports are full of near-duplicate category values — Inbound and inbound  with a trailing space, Referral and Referrals, an owner entered two different ways. A PivotTable treats each as its own group, so your "by source" breakdown quietly splits one real source across two rows and every total looks plausible but is wrong.

Before trusting any pivot, put each category column through a quick check — a PivotTable of just that column, or UNIQUE, to list the distinct values. Fix the near-duplicates with Find & Replace or TRIM first. A tidy-looking total from dirty categories is more dangerous than an obvious error, because nobody double-checks it.

Or ask the export directly

Pivots are the right tool when you'll ask the same question every week. For the one-off question, the Quiriz Excel add-in lets you type it in a cell — =QUIRIZ.ASK("win rate by source for deals created this month", "table") — and get the table back without building anything. The part worth knowing: when you ask about a value that isn't in the export — a source you never track, an owner who's spelled differently — it tells you the value isn't in your data instead of returning a confident zero. On dirty CRM exports, that refusal is the difference between a wrong number and a caught one.

Ask your CRM export in plain English

Export your deals, then ask questions about them in the cell with =QUIRIZ.ASK() — win rate, pipeline, stuck deals — no pivots to build. Free to start.

Try Quiriz free →

Frequently asked questions

How do I analyze a HubSpot or Pipedrive export in Excel?
Export the deals view to CSV, open it in Excel, and press Ctrl+T to make it a Table. Then use PivotTables to summarize — deals and amount by source, by stage, or by owner. A helper column with DATEDIF or TODAY()-[Create Date] lets you find deals that have sat too long.
Why does my CRM export give different totals than the CRM dashboard?
The two most common reasons are dirty categories and date scope. Near-duplicate values like "Inbound" and "inbound " split one group across two pivot rows, and an export may include deals the dashboard filters out (wrong pipeline, wrong date range, deleted-but-exported). Clean the category columns and confirm the date filter before comparing.
How do I calculate win rate from a CRM export?
Add a helper column that flags whether each deal is Won, then build a PivotTable with Source in rows and two values: a count of all deals and a count of Won deals. Win rate is Won ÷ total per source. Watch for open deals — decide whether they belong in the denominator.
How do I find deals stuck in a stage too long?
Add a column like =TODAY()-[@[Last Activity]] (or create date if that is all you have) to get days since movement, then filter or pivot for anything over your threshold. Sort descending to see the most stalled deals first.