Skip to content
gexpense
← All articles

Receipt organisation

How to find duplicate expense rows safely

Flag possible duplicate expenses, compare original references and preserve legitimate repeat purchases. Includes a practice CSV and a worked review.

By Pengwu · · 4 min read

The takeaway

A duplicate flag is a reason to review. Confirm the extra copy before changing the working list or report.

Flag repeated details, then compare the supporting evidence before removing a row. Two genuine purchases can have the same supplier, date and amount.

Compare the records before deciding

Expense E004

Supplier
Paper Trail Example
Date
2026-09-05
Amount
AUD 42.80
Reference
R-004.pdf
Project
Alder

Expense E005

Supplier
Paper Trail Example
Date
2026-09-05
Amount
AUD 42.80
Reference
R-005.pdf
Project
Birch
Which decision fits this supplied example?

Fictional practice data. Changes stay in this example; no records are saved.

Download the fictional duplicate-review CSV and the clean example list. The practice file has thirteen entries: the twelve source records plus E013, an extra copy of the example entry for R-004. References are fictional labels, not supplied documents.

1. Preserve the imported list

Keep a copy before sorting, filtering or deleting. Add a review column beside the source data rather than overwriting the merchant or amount to make two rows look different.

Sort or filter the working copy by date, supplier, currency and amount. Keep the entire row together so the description, project and receipt reference do not become separated from the purchase. A spreadsheet's duplicate command compares the columns you select; it does not decide whether the real-world purchase happened once or twice.

2. Flag repeated combinations

In the practice CSV, date is column B, supplier C, currency G and amount H.

Show the Google Sheets duplicate-flag formula

Put this formula in an empty column on row 2 and fill it down to row 14:

=COUNTIFS($B$2:$B$14,B2,$C$2:$C$14,C2,$G$2:$G$14,G2,$H$2:$H$14,H2)>1

It flags a repeated combination for review. The bounded ranges include the thirteen practice entries. Extend all ranges together when using a larger list. Your spreadsheet's locale may use a different formula separator.

This test is deliberately limited. Different spellings or purchase dates can hide candidates, while two legitimate purchases can match all four fields. A TRUE result means “inspect these rows”, not “delete this expense”.

3. Check the reference and the original

The practice cases above distinguish E004 / R-004 from the separate E005 / R-005 purchase. E013 is explicitly an extra copy of E004 in the supplied exercise. Switching cases shows why a repeated amount and an extra row need different decisions.

For real records, compare the invoice or receipt number, items purchased, payment record and original image. Different filenames alone do not prove separate purchases: one receipt may have arrived as a PDF and a photo. A reused reference can also be a data-entry mistake rather than proof that a purchase is duplicated.

Write down the reason for your decision. If you cannot resolve it, retain the candidate and ask for clarification instead of silently discarding evidence.

4. Remove confirmed extra rows from the working copy

Once you have confirmed which row is extra, correct the working list while preserving the source and review note. In the practice exercise, removing E013 leaves the twelve entries in the clean example CSV. The September AUD total falls from 342.10 to 299.30; the separate USD entry remains separate.

Google's Remove duplicates instructions explain how to choose comparison columns and identify the header row. Use that command only after the selected key is appropriate for the rows you want to remove. It is easy to remove the legitimate R-005 purchase if you compare only date, supplier, currency and amount.

For Excel, use Microsoft's duplicate review instructions. Its comparison and formatting behavior is not identical to Google Sheets, so use the instructions for your actual spreadsheet application.

5. Recheck summaries and future imports

After correction, refresh the report or pivot, verify the currency groups, and keep a note of which batch produced the extra row. Importing the same CSV twice is a workflow problem worth addressing even after this month's total is fixed.

Gexpense uses attachment file hashes as part of its duplicate checks. That does not establish that differently photographed or exported copies of the same receipt will all be recognised. Review supplier, date, amount and supporting evidence in your records as well.

For the next step, summarise the reviewed rows, or use the backlog plan if duplicates are mixed into several months of receipts.

Frequently asked questions

Are two rows with the same date and amount duplicates?

Not necessarily. The example has two genuine AUD 42.80 purchases. Compare the originals and references before removing a confirmed extra copy.

Does the formula prove a duplicate?

No. It flags repeated combinations for review. Different spellings can hide candidates and genuine purchases can share the same key.