VLOOKUP between two files, without the formula
VLOOKUP pulls one value from another sheet, one row at a time, and writes #N/A wherever the ID is missing. Merging the two files by that ID does the same job for every row and every column in one pass — and lists the rows that found no match instead of hiding them inside error cells.
What VLOOKUP is really doing
Every VLOOKUP asks the same question for one row: which row of the other table has this value in its first column, and what is in column N of that row? Filled down a whole column, it asks that question once per row and copies one answer each time. Change the other file and the answers are stale; add a column and you write another formula.
Stated as a job rather than a formula, it is a match: line the two tables up on the column they share, and bring the columns you want across. That is what a merge does, for every column at once, with the result as a new file rather than a sheet of formulas pointing at another workbook.
Where the formula goes wrong
The classic #N/A on a value that plainly exists is a text-versus-number mismatch: one file stores the customer number as 00412 and the other as 412, or one has a trailing space, and VLOOKUP sees two different values. The default approximate match is the other trap — without FALSE as the last argument, an unsorted table returns wrong rows without any error at all.
The merge page checks the two key columns before it runs and tells you when they are stored differently, with a one-click fix, rather than leaving you to discover it from a column of errors.
Do it as a merge
Drop both files, pick the column that identifies a row in each (the names can differ — customer_id in one, cust_ref in the other), choose which columns to bring across, and decide which rows to keep: every row of the first file, which is what VLOOKUP does, or only the rows that appear in both. The result shows how many rows matched and how many did not before you download it. The merge page carries its own pair of sample files — customers and orders, matched on the customer number — so you can watch it work before dropping your own.
Excel workbooks work too: drop the .xlsx and its first sheet with data is read as the table, every value kept as text, so a customer number keeps its leading zeros. If the sheet you need is not the first, the Excel converter here lists every sheet — convert that one and merge the CSV.
Questions
- Is the result the same as VLOOKUP would give?
- For the rows that match, yes — the same values land next to the same IDs. The difference is the rest: every column you choose comes across at once, and the rows with no match are listed rather than left as #N/A.
- The IDs look identical but nothing matches — why?
- Almost always one file holds the ID as text and the other as a number, so 00412 and 412 look the same to you and different to the match. The merge page detects this before it runs and offers to fix it.
- What happens to rows with no match?
- Your choice: keep them with the new columns blank, the way VLOOKUP would with #N/A, or leave them out. Either way the count is shown so nothing disappears unnoticed.
- Do the ID columns need the same name in both files?
- No. You pick the column in each file separately; the names are yours and the match is on the values.
- What if an ID appears twice in the second file?
- You get one output row per match, so the result can be longer than the file you started with — exactly what VLOOKUP cannot do, since it only ever returns the first hit. The page counts this and asks you to confirm before the result grows.
- Can I use my Excel workbooks directly?
- Yes. Drop the .xlsx on the page and its first sheet with data is read as the table, every value kept as the text Excel stored — a customer number keeps its leading zeros. To use a different sheet, the Excel converter here lists them all: convert that one and use the CSV it gives you.
- Does either file get uploaded?
- No — neither of them. The two files are matched against each other inside this page, and the browser is instructed to refuse any connection that could carry a row from either one elsewhere.