56 free macros indexedAll toolsHow to runBlogGitHub ↗

How to Find Duplicate Payments in Excel

To find duplicate payments in Excel, build a key from vendor, amount, and date, then use a free macro to highlight the repeats so you can review each one.

2026-07-19

A vendor emails the same invoice twice. A payment batch gets posted, then re-posted after a system hiccup. Somebody keys a bill that was already scheduled. Any of these puts the same money out the door twice, and it sits quietly in the ledger until someone goes looking. To find duplicate payments in Excel, you can't just hunt for a repeated cell, because a duplicate payment is a repeated combination of vendor, amount, and date, not a single value showing up twice.

This walks through the check the way an accounts-payable review actually runs it, using a free macro to flag the suspects and Excel's built-in tools where they fit. The golden rule throughout: a flag is a question, not a verdict.

TL;DR: find duplicate payments in Excel

  • Define a duplicate. Same vendor, same amount, same date (or invoice number), not just a repeated number.
  • Build a key column. Join those fields into one cell so each payment has a single fingerprint.
  • Highlight the repeats. A macro paints every key that appears more than once.
  • Review before you touch anything. Some repeats are real double payments to recover. Some are two legitimate identical charges.

With the macro loaded, flagging the suspects takes under a minute. The judgment call on each pair is the part only you can do.

What counts as a duplicate payment

Two payments of exactly $500 are not duplicates if one went to a landlord and one went to a courier. They're duplicates when the vendor, the amount, and the date (or the invoice number) all line up. That combination is what you're hunting, which is why a plain "highlight repeated cells" pass over the amount column gives you a screen full of false alarms.

So the trick is to collapse the fields that define a duplicate into one value per row, then look for repeats of that. Microsoft's find and remove duplicates guide covers the built-in tools, but the combination-key step below is what makes it reliable for payments.

Step 1: Build a key from the fields that define a duplicate

Add a helper column to the right of your payment register. In it, join the vendor, amount, and date into one string:

=B2&"|"&C2&"|"&D2

Here B2 is the vendor, C2 the amount, and D2 the date. The pipe | keeps the fields from blurring together, so Acme|500|2026-06-01 is one clean fingerprint. Fill it down the whole register. If you match on invoice number instead of date, use that column. Now every payment carries a single value that's identical only when it's a genuine potential duplicate.

Step 2: Highlight the duplicate keys

Select your new key column and run Highlight Duplicate Values. It paints every value that appears two or more times in light red and reports how many cells it flagged. New to running macros? The 30-second setup gets you going.

Because the macro compares the whole key, only payments that share the vendor, amount, and date all at once light up. Sort by the key column afterward and the flagged pairs sit next to each other, ready to read side by side. The comparison ignores case, so ACME and Acme are treated as the same vendor.

Step 3: Review each pair before you do anything

This is the step people skip, and it's the one that matters. A highlighted pair is a candidate, not a confirmed error. Some are exactly what they look like, a bill paid twice, and that's money to claw back. Others are legitimate: a customer with two identical monthly charges, a split invoice paid in two equal parts on the same day, a standing rent payment.

Read the flagged rows against the source documents. Only once you've confirmed a pair is a true duplicate should it go anywhere near a deletion or a reversal. The macro's job is to hand you a short list of suspects. The judgment is yours.

Step 4: Remove only the confirmed duplicates

Once you've verified which rows are genuine duplicates, and only then, you can clear them. Work on a copy of the register, never the original record. To strip exact repeats across multiple fields at once, Remove Duplicates by Multiple Columns matches on the vendor, amount, and date columns together and keeps the first occurrence of each.

For a live status column instead, the built-in COUNTIFS does the same test as a formula: =COUNTIFS(Vendor,B2,Amount,C2,Date,D2)>1 returns TRUE for any row that shares all three with another. Filter for TRUE to pull your review list. The macro wins for a one-shot month-end sweep because the red highlight is impossible to miss, and you review before anything is deleted.

The hot take: never point Remove Duplicates at payments unreviewed

Excel's Remove Duplicates button is fast and, on a payment register, dangerous. It deletes without asking which of two identical rows was the mistake, and it can't tell a genuine double payment from two legitimate identical charges. Point it at your register unreviewed and you can erase a real, valid payment from your records and never know.

Treat duplicate detection and duplicate deletion as two separate jobs with a human decision in between. Highlight first, investigate, and delete only what you've confirmed on a copy. In accounting, a fast wrong answer is worse than a slow right one.

Common pitfalls

  • Amounts stored as text in some rows. 500 and 500.00 as text won't match a numeric 500. Standardize the amount format before you build the key.
  • Dates as text. If some dates are real dates and some are text strings, identical-looking days won't match. Fix the date column first.
  • Near-duplicates with a tweaked reference. If a resubmitted invoice has a slightly different number, an exact key won't catch it. Match on vendor plus amount plus date instead of the invoice number for those.
  • Deleting from the original. Always run the removal on a copy. The register is your audit trail.

Frequently asked questions

How do I find duplicate payments in Excel?

Build a helper column that joins the vendor, amount, and date into one key, then run a macro that highlights any key appearing more than once. The flagged rows are your review list. Check each against the source documents before removing anything, because some repeats are legitimate identical charges.

Why not just use Remove Duplicates on the amount column?

Because two payments of the same amount to different vendors are not duplicates. Matching on the amount alone floods you with false positives and, worse, can delete valid payments. A real duplicate shares the vendor, amount, and date together, which is why you match on a combined key, not a single column.

How do I match duplicates on vendor, amount, and date at once?

Join the three fields into one helper cell with a formula like =B2&"|"&C2&"|"&D2, then highlight duplicates in that key column. Or use the multi-column dedupe macro, which matches on all three columns together. Both approaches treat a payment as a duplicate only when every field lines up.

Are all highlighted duplicates errors?

No. A highlight means "look here," not "this is wrong." Two identical subscription charges, a split invoice paid in equal parts, or a recurring rent payment can all look like duplicates. Always review the flagged rows against the invoices before you reverse or delete a payment.

Do these macros work on Excel for Mac?

Yes. Both the highlight and dedupe macros run on Excel 2016 and later on Windows and Mac. They avoid Windows-only features, so a firm running mixed machines gets the same result on either platform.

What to do next

Flag first, judge second, delete last. That order is what keeps a duplicate hunt from turning into a new error.

To find duplicate payments in Excel on your own ledger, browse the full set of Excel tools for accountants, or start with Highlight Duplicate Values on a key column. Pair it with reconciling invoices against payments for a full month-end check.