Back to Blog
Excel Tips

The Complete VLOOKUP Guide for Invoice Matching

15 February 2026·Zepely Team·7 min read

If you manage invoices in Excel, you have almost certainly spent hours scrolling between two spreadsheets trying to match invoice numbers to payments. VLOOKUP can do this in seconds.

This guide walks you through everything you need to know — from the basics to advanced patterns for invoice reconciliation.

What VLOOKUP Actually Does

VLOOKUP searches for a value in the first column of a table and returns a value from another column in the same row. The syntax is:

=VLOOKUP(lookup_value, table_array, col_index_num, [range_lookup])

The four arguments:

  • lookup_value — the thing you are searching for (e.g. an invoice number)
  • table_array — the range of cells to search within
  • col_index_num — which column to return the result from (1 = first column, 2 = second, etc.)
  • range_lookupFALSE for an exact match (almost always what you want), TRUE for approximate

Matching Invoices to Payments

Say you have two sheets. Sheet 1 has your issued invoices with columns: Invoice Number, Client, Amount, Date Issued. Sheet 2 has incoming payments with columns: Invoice Number, Amount Paid, Date Received.

To pull the payment amount into your invoice sheet:

=VLOOKUP(A2, Payments!A:C, 2, FALSE)

This searches for the invoice number in cell A2, looks through column A of your Payments sheet, and returns the value from column 2 (Amount Paid).

Checking for Discrepancies

Once you have the paid amount alongside the invoiced amount, a simple formula highlights mismatches:

=IF(D2=E2, "Matched", "Check")

This gives you an instant view of which invoices have been paid correctly and which need attention.

Handling the #N/A Error

The most common VLOOKUP frustration: #N/A. This means no match was found. For invoice matching, this usually means a payment has not arrived yet.

Wrap your VLOOKUP in IFERROR to handle this cleanly:

=IFERROR(VLOOKUP(A2, Payments!A:C, 2, FALSE), "Unpaid")

Now instead of an ugly error, you get a clear "Unpaid" label.

Common Causes of #N/A

  • Extra spaces — use TRIM() on both lookup values: =VLOOKUP(TRIM(A2), ...)
  • Different formats — invoice number stored as text in one sheet and as a number in the other. Use TEXT() or VALUE() to convert.
  • Typos — there is no shortcut for this. Double-check your source data.

VLOOKUP vs INDEX/MATCH

VLOOKUP has a well-known limitation: it can only look right. The lookup column must be the first column in your table array. INDEX/MATCH does not have this restriction.

FeatureVLOOKUPINDEX/MATCH
DirectionLooks right onlyAny direction
Speed on large dataSlowerFaster
Column insertionBreaks if columns shiftUnaffected
ReadabilitySimpler syntaxSlightly complex
Approximate matchSupportedSupported

For most invoice matching tasks, VLOOKUP is perfectly fine. Switch to INDEX/MATCH when your data layout requires looking left, or when you are working with very large datasets (50,000+ rows).

INDEX/MATCH Equivalent

=INDEX(Payments!B:B, MATCH(A2, Payments!A:A, 0))

This does the same thing as the VLOOKUP example above but is not limited by column order.

Practical Tips for Invoice Reconciliation

Use Named Ranges

Instead of Payments!A:C, name your payment table (select the range, type a name in the Name Box). Then your formula becomes:

=VLOOKUP(A2, PaymentData, 2, FALSE)

Much easier to read and maintain.

Conditional Formatting for Quick Scanning

Apply conditional formatting to your "Matched/Check" column: green fill for "Matched", red for "Check". You can spot issues instantly without reading every row.

Automate the Data Entry Step

The slowest part of invoice reconciliation is not the formula — it is typing invoice data into Excel in the first place. If you are working from PDF invoices, consider using an extraction tool to pull the data automatically. That way you start with clean, structured data ready for VLOOKUP.

Summary

VLOOKUP is one of the most useful Excel functions for anyone managing invoices. Once you set up your matching formula, reconciliation that used to take hours happens in seconds. Combine it with IFERROR for clean output, conditional formatting for visual scanning, and named ranges for maintainability.

The real time savings come when you eliminate manual data entry altogether — but that is a topic for another post.

Ready to automate your invoices?

Stop typing numbers into cells. Upload your invoices to Zepely and get a clean Excel spreadsheet in seconds.

Upload Invoices
No account needed. Pay only for what you use.