Excel Reconciliation: The Complete Guide to Reconciling Two Data Sets
Two files, one question: do they agree? This guide covers the whole process — building a match key, handling amounts that do not tie, matching one payment to many invoices, and producing a working paper your reviewer can follow.
Short answer
Most tutorials stop at =IF(ISNA(VLOOKUP(...)),"Missing","Found") and call it reconciliation. That formula will find you a large number of “missing” rows in a perfectly reconcilable file, because the two sides almost never use identical text. This guide is about the parts that actually decide whether your reconciliation is correct.
Reconciliation is not the same as comparison
The two get used interchangeably, and the confusion causes real problems when you are deciding which technique to reach for.
| Comparison | Reconciliation | |
|---|---|---|
| Question it answers | What is different between these two files? | Do these two records agree, and if not, by how much? |
| Typical use | Comparing two versions of a report, spotting changed rows | Bank, vendor, GST, TDS and invoice reconciliation |
| Match basis | Position, or any shared column | A deliberate business key, such as invoice number or voucher number |
| Output | A list of differences | A working paper with matched, unmatched and difference totals |
| Sign-off | Not usually reviewed | Reviewed and retained as an audit record |
If you only need to know what changed between two versions of a sheet, you want a file comparison instead. Everything below assumes you are reconciling two things that carry amounts.
The two files you always start with
Every reconciliation has a book side and an external side. The book side is what your accounting system says. The external side is what somebody else says.
| Reconciliation | Book side | External side | Matched on |
|---|---|---|---|
| Bank | Cash / bank ledger in Tally or your ERP | Bank statement (CSV or Excel export) | Cheque number, date, amount |
| Vendor | Vendor ledger (accounts payable) | Vendor's own statement of account | Invoice number, amount |
| GST | Purchase register | GSTR-2B download from the portal | GSTIN + invoice number |
| TDS | TDS receivable ledger / expense books | Form 26AS or Form 168 deduction entry | TAN + section + period |
| Invoice | Sales / purchase register | Payment or receipt records | Invoice number + amount |
Once you see that, the rest of this guide applies to all five. The specific procedures are covered in the bank, vendor, GST, TDS and invoice guides.
The five steps of a reconciliation that holds up
Put both sides into one shape
Build a match key on both sides
Normalise the key on both sides
Match, with a stated tolerance
Classify and total what is left
Step 2 and 3 in practice: building a key that actually matches
Here is a realistic vendor reconciliation. Your vendor, Shree Balaji Enterprises, sends a statement. Your ledger for the same period looks like this:
| Invoice No (your ledger) | Date | Invoice amount | Payment received |
|---|---|---|---|
| INV/2025-26/0417 | 04-08-2025 | ₹1,18,000 | ₹40,000 |
| INV/2025-26/0512 | 19-08-2025 | ₹82,050 | — |
| INV/2025-26/0644 | 02-09-2025 | ₹23,600 | — |
| INV/2025-26/0701 | 11-09-2025 | ₹1,45,000 | ₹1,45,000 |
And their statement says:
| Invoice No (vendor statement) | Date | Invoice amount | Payment received |
|---|---|---|---|
| 0417 | 04/08/2025 | 118000 | 40000 |
| 512 | 19/08/2025 | 82050 | |
| INV-644 | 02/09/2025 | 23600 | |
| 701 | 11/09/2025 | 145000 | 145000 |
What is actually going wrong here
Nothing is missing. Every one of those eight rows has a partner. But a straight VLOOKUP on the invoice number column will fail on all four of them, because:
- Row 2 has a trailing space, so
512never equals0512. - Row 3 uses a hyphen instead of a slash, so
INV-644never equalsINV/2025-26/0644. - Rows 1 and 4 dropped the financial-year prefix entirely.
- The amounts are numbers on one side and text on the other.
Build a normalised key column on both sides. In the ledger, add a helper column and extract only the last four digits of the invoice number:
| Side | Helper column formula | Result for the first row |
|---|---|---|
| Your ledger | =TRIM(RIGHT(SUBSTITUTE(TRIM(A2),"/"," "),4)) | 0417 |
| Vendor statement | =TRIM(RIGHT(SUBSTITUTE(SUBSTITUTE(TRIM(A2),"-"," "),"/"," "),4)) | 0417 |
For amounts, force both sides to a number before comparing: =VALUE(SUBSTITUTE(SUBSTITUTE(TRIM(D2),"₹",""),",","")). Text that looks like ₹1,18,000 will never equal the number 118000 until you do this.
Step 4: choosing the matching method
There is no single best function. The right choice depends on whether you are looking for existence, for a first match, or for a total.
| Method | Use it when | Weakness |
|---|---|---|
XLOOKUP | You want the value from the other side for a key, with a custom message when not found | Returns only the first match, so it is silent about duplicates and useless for group matching |
COUNTIF | You only need to know whether a key exists on the other side | Slow on large ranges because it scans the whole range for every row; tells you nothing about the amount |
SUMIFS | You are matching totals rather than individual rows — the right tool for one-to-many | Silently gives 0 for a key that is absent, which is easily confused with a genuine zero |
VLOOKUP / INDEX-MATCH | You are on an older Excel without XLOOKUP and the key is in the first column | Cannot look left, and fails the same way as XLOOKUP on duplicates |
| Power Query | You are redoing this every month from the same two files | Breaks when a source column is renamed or a file moves; needs setup and maintenance |
| Dedicated reconciliation tool | You need tolerance, fuzzy and group matching, and a reason recorded per row | Another tool to license and learn |
A practical sequence for a single-key reconciliation is: COUNTIF first to split rows into present and absent, XLOOKUP next to pull the amount across for the rows that are present, and SUMIFS for any group totals you need at the end.
Step 5: amounts that do not tie exactly
Two files can agree completely and still differ by paise. Foreign vendor invoices carry rounding, TDS deducted at source changes what was actually paid, and credit notes get netted off. If you compare amounts with a plain equality test you will produce a working paper that is technically correct and practically unreadable.
Compare the difference, not the values:
| Situation | Difference | How to treat it |
|---|---|---|
| Rounding on an import invoice | ₹0.42 | Within the stated tolerance of ₹1.00 — matched |
| TDS withheld by the customer | ₹2,360 on ₹1,18,000 | Not a difference — match against the net amount, not the gross |
| Invoice booked at a different rate | ₹1,180 | Outside tolerance — a genuine price or rate difference to be investigated |
| One invoice, part payment | ₹78,000 outstanding | Not a mismatch — it is an open item, tracked separately |
Write the tolerance down
The case that breaks every lookup: one-to-many
This is the single most common reason a “finished” reconciliation turns out to be wrong, and it is almost never taught properly.
Your customer pays ₹2,36,000 by RTGS on 18 September. Against that single receipt, your books clear four invoices:
| Invoice | Amount | Cleared by this receipt |
|---|---|---|
| INV/2025-26/0512 | ₹82,050 | Yes |
| INV/2025-26/0644 | ₹23,600 | Yes |
| INV/2025-26/0519 | ₹18,400 | Yes |
| INV/2025-26/0603 | ₹1,11,950 | Yes |
| Total | ₹2,36,000 | — |
A lookup on the receipt amount finds nothing, because ₹2,36,000 never appears in the invoice column. A lookup on each invoice finds nothing, because none of those amounts appears in the payment column. The rows are individually unmatched and collectively a perfect match.
The workable Excel approach is to match upward, on the total:
- 1Classify each entry as a debit or a credit before you do anything else. Mixing the two is what makes a reconciliation impossible to interpret later.
- 2Tag each invoice with the receipt that cleared it — usually the voucher number or UTR from your ledger. If your ledger already records this, you have a ready-made group key.
- 3Use
SUMIFSon that group key to total the invoices per receipt, and compare that total against the receipt amount with your tolerance. - 4Anything that does not balance at group level drops down to invoice-level matching, and whatever survives both passes is your genuine exception list.
What the output should look like
A reconciliation is not a column of “Found” and “Not Found”. It is a document. Four separate result sets, always:
| Result set | What belongs in it | Who looks at it |
|---|---|---|
| Matched | Records found on both sides within tolerance | Nobody — this is the proof it worked |
| Unmatched in books | Present in the statement, absent in your books | You, to book the missing entry |
| Unmatched in statement | Present in your books, absent in the statement | The other party, to be chased |
| Amount differences | Matched on key, different on amount, outside tolerance | Both parties, to agree the amount |
| Duplicates | The same key appearing more than once on one side | You, before the totals are trusted |
Finish with a three-line summary at the top: total per book side, total per external side, and the sum of the explained differences. If those do not reconcile, nothing below them is trustworthy.
What breaks in Excel reconciliation
Worth knowing before you commit an afternoon to building one:
- Conditional formatting cannot reference another workbook. A rule that highlights differences works only when both ranges live in the same file, so a two-workbook reconciliation cannot be done with formatting alone.
- Lookups return the first match and stop. Duplicate invoice numbers on one side will quietly produce a plausible but wrong result.
- Slowdowns arrive faster than you expect. A COUNTIF against a 100,000-row range, repeated down 100,000 rows, is a very large number of comparisons. Files that took seconds at 5,000 rows can take minutes at 50,000.
- Row insertion breaks highlighting. Insert a row into one of two formatted ranges and every row below it registers as a difference.
- Nothing is recorded about why a row matched. Six months later, when an auditor asks, the answer has to come from whoever built the file.
None of these are reasons to avoid Excel. They are reasons to keep the file small, the key clean, the tolerance documented, and the working paper a separate, saved output rather than a live formula sheet.
When it is worth moving off Excel
Excel is the right tool for a one-off reconciliation, for a handful of files, and for anything you need to show your working on. It becomes the wrong tool when the same reconciliation has to run every month across many files, when the matching needs tolerance, fuzzy and group logic at the same time, and when the result needs to be a repeatable document rather than a formula sheet somebody has to re-check.
That is the point at which a dedicated reconciliation tool earns its place. It is not that Excel cannot do it — it is that the maintenance cost of keeping a large formula workbook correct, month after month, usually exceeds the cost of the tool.
If you would rather not build this by hand
Reconcile without building the workbook at all
Piloteq Automate is a Windows desktop app that runs bank, vendor, GST and TDS reconciliation directly on your .xlsx and .csv files. It applies your match rules in priority order, writes a reason next to every row, and keeps the matched, unmatched and amount-difference records in separate result sets.
- ✓Six match passes, run in a fixed priority order
- ✓Exact, tolerance, date tolerance, fuzzy and last-digit rules
- ✓1:1, 1:N, N:1 and N:N group matching
- ✓Duplicate detection and amount difference analysis
Frequently asked questions
What is the difference between reconciliation and comparison in Excel?+
A comparison tells you what is different between two files — changed rows, missing rows, extra rows. A reconciliation goes further: it takes two records that should agree financially (a ledger and a statement, books and a portal) and produces a working paper showing what matched, what did not match, by how much, and why. Comparison is a technique; reconciliation is an accounting process that produces a document you can sign off.
Which Excel formula is best for reconciliation?+
XLOOKUP is the most convenient for a single-key match because it returns a custom value when nothing is found. SUMIFS is better when you need to match total amounts rather than the first hit, and COUNTIF is useful for finding what is missing from one list. In practice, most real reconciliations need more than one of these, because invoice numbers rarely match exactly and one payment often clears several invoices.
Why do my VLOOKUP matches fail even though the values look identical?+
Almost always it is a key normalisation problem, not a formula problem. Trailing spaces, non-printing characters, a leading apostrophe, numbers stored as text, or a leading zero dropped by Excel will all cause a lookup to report no match on two values that look the same on screen. TRIM, CLEAN, SUBSTITUTE and converting to a consistent type fix the great majority of false mismatches.
How do I reconcile when one payment covers five invoices?+
This is group matching, and a plain lookup cannot do it — a lookup returns one row per key. You need to match on the total: group the invoices by customer or vendor, sum them, and match the sum against the payment amount within a tolerance. In Excel this means SUMIFS on the grouped key plus a total-level comparison, and then a manual review of the groups that do not balance.
How much difference should I allow before flagging a mismatch?+
Decide the tolerance before you start and write it down in the working paper. Rounding on international invoices and paise-level differences are common, so a small tolerance such as one or ten rupees prevents a working paper full of noise. The important part is not the number you choose but that it is deliberate, documented, and applied consistently to every row.
Can I reconcile two files without opening both of them in Excel?+
Yes. Power Query can read both files from a folder and merge them on a key, and a dedicated desktop tool can do the same without Excel being installed at all. Both approaches remove the manual copying, but Power Query still depends on the file being present at the same path with the same column headers, which is a maintenance point worth planning for.
Related guides
Bank Reconciliation in Excel
Format, step-by-step method and the errors that cause most BRS differences.
Vendor Reconciliation in Excel
The five-column format, worked example with a rupee difference, and partial payments.
Invoice Matching When Amounts Do Not Tie
Tolerance matching, multi-key matching and duplicate invoice detection.
Find Missing Values Between Two Lists
The one-way and two-way techniques this guide builds on.