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
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.