Which customers are new this month?
By the Analistable team · Updated · 4 min read
A new customer is one in this month's orders with no order in any earlier period. Compare this month's list with all previous orders (not just last month): =UNIQUE(FILTER(Sep[Customer], COUNTIF(History[Customer], Sep[Customer]) = 0)). With only August as history, Oak & Ash and Pine Co are new in September.
Part of our guide: How to answer questions across multiple spreadsheets
The data
| August: customer | Order | Amount | September: customer | Order | Amount |
|---|---|---|---|---|---|
| Bakery Lune | A1 | 120 | Bakery Lune | S1 | 130 |
| Hart & Co | A2 | 80 | Nordic Supply | S2 | 90 |
| Nordic Supply | A3 | 75 | Oak & Ash | S3 | 55 |
| Kiln Studio | A4 | 60 | Pine Co | S4 | 70 |
| Bakery Lune | A5 | 40 |
In a spreadsheet
=UNIQUE(FILTER(Sep[Customer], COUNTIF(Aug[Customer], Sep[Customer]) = 0, "None"))Replace Aug[Customer] with a stacked history of all earlier months (VSTACK(Jan[Customer], …, Aug[Customer])), otherwise a customer returning after a gap is counted as new.
In SQL
SELECT DISTINCT s.customer
FROM sep s
LEFT JOIN aug a ON a.customer = s.customer
WHERE a.customer IS NULL;| Customer |
|---|
| Oak & Ash |
| Pine Co |
With a full order history in one table, the cleaner definition is: customers whose first order date falls in September — GROUP BY customer HAVING MIN(order_date) >= '2026-09-01'.
New vs returning revenue
| Group | Customers | Revenue |
|---|---|---|
| New | 2 | 125 |
| Returning | 2 | 220 |
New: Oak & Ash 55 + Pine Co 70. Returning: Bakery Lune 130 + Nordic Supply 90.
Ask it in Analistable: “How many new customers did we get each month, and what share of revenue did they bring?” The opposite question: customers who stopped ordering.
New customers per month from one order history
SELECT strftime('%Y-%m', first_order) AS month, COUNT(*) AS new_customers
FROM (SELECT customer, MIN(order_date) AS first_order FROM orders GROUP BY customer)
GROUP BY month
ORDER BY month;With all orders stacked in one table, each customer's first order date defines the month they became new. This avoids comparing pairs of files every month and gives a clean trend line.
Common mistakes
- Using names as the key — “Oak & Ash” and “Oak and Ash Ltd” would count as two new customers.
- Comparing only with last month: customers who skip a month look new when they return.
- Counting test or internal orders; filter them out first.
Worked example on the full order history
Run the first-order query on the seven-order history used elsewhere in this series (customers ana@lune.fr, ben@hart.co.uk, eva@nordic.dk and kim@kiln.io across a web shop and Amazon):
| Month | New customer | First order |
|---|---|---|
| 2026-01 | ana@lune.fr | 2026-01-14 |
| 2026-02 | ben@hart.co.uk | 2026-02-10 |
| 2026-04 | eva@nordic.dk | 2026-04-05 |
| 2026-06 | kim@kiln.io | 2026-06-30 |
ana@lune.fr ordered again in March and August, and eva@nordic.dk in September, but neither counts as new in those months because their first order is earlier. A month-to-month comparison would have called eva new in September, since she didn't order in August.
Excel 2019, Mac and Google Sheets variations
- Excel 2019 / 2016: add a helper column to this month's orders,
=COUNTIF(History!A:A, A2)=0, filter on TRUE and use Remove Duplicates on the customers. - Excel for Mac (Microsoft 365): the UNIQUE/FILTER formula above works unchanged.
- Google Sheets:
=UNIQUE(FILTER(Sep!A2:A, Sep!A2:A <> "", COUNTIF(History!A2:A, Sep!A2:A) = 0)), where History is a sheet holding every earlier order (stack monthly tabs with{Jan!A2:A; Feb!A2:A}or VSTACK).
Check the result
| Check | What it should show |
|---|---|
| New + returning = this month's customers | 2 + 2 = 4 distinct September customers |
| New customers' revenue + returning revenue = month total | 125 + 220 = 345 |
| A known long-standing customer | Must not be in the new list |
| Month after a data gap | A spike in new customers often means missing history, not growth |
Each month, append the new export to the history before running the check, never after — otherwise this month's customers are compared with themselves and the list comes back empty. Background on stacking files: combining sheets into one.
Frequently asked questions
- How do I identify new customers in Excel?
- Filter this period's customers to those with no match (COUNTIF = 0) in all earlier orders.
- Why compare with all history and not just last month?
- Customers who skip a month would otherwise be counted as new when they return.
- How do I count new customers per month?
- Find each customer's first order date with MINIFS, then count first-order dates per month.
- Should a customer who returns after a year count as new?
- Not as new, but it's worth tracking them separately as reactivated customers: their first order date is old, yet they had no order in the previous twelve months.
- Can I find new customers across two stores?
- Yes. Stack both stores' orders with one customer key, such as lower-cased email, and take each customer's first order date across all stores.
- Why is my new customer count suddenly very high?
- Usually a missing history file or a change in customer IDs. Check the earliest order date in the history before trusting the spike.