Join two CSV files on a shared column.
Pick the column both files have in common — an email, a customer ID, a SKU — and get one wider table with the matching rows lined up. This is the VLOOKUP you would otherwise write in Excel, except it tells you how many rows failed to match instead of leaving #N/A scattered through the result.
Everything runs in your browser. Nothing is uploaded.
Drop CSV or Excel files here
Add exactly two files. The first is the base; the second is matched against it.
Common questions
What's the difference between joining and merging?
Merging stacks files on top of each other, so you end up with more rows. Joining matches rows across files on a shared value, so you end up with wider rows. If both files describe the same people and you want their details side by side, you want a join.
Is this the same as VLOOKUP?
Same job, fewer footguns. VLOOKUP silently returns #N/A for rows that don't match, and those are easy to miss in a large sheet. This shows you the count of unmatched rows on each side before you download, and lets you choose whether to keep them.
What happens if the key appears more than once?
You get one output row per match, which is how SQL joins behave — a customer with three orders produces three rows. That is usually what you want, but it is also the usual reason an output file is unexpectedly bigger than the input, so the extra rows are counted and flagged.
Does the match have to be exact?
Values are trimmed and compared case-insensitively, so 'A@X.com' matches 'a@x.com '. Rows where the key is blank are never matched to each other — pairing every blank with every other blank would multiply your file.
What if both files have a column with the same name?
The one from the second file is renamed rather than overwriting the first — 'status' and 'status (2)'. Nothing is silently lost, and the rename is listed above the preview.
Is my file uploaded anywhere?
No. The file is parsed and processed entirely in your browser using JavaScript. It never leaves your device, and nothing is stored on our servers.
What file sizes are supported?
Up to 25 MB in the browser. Larger files need server-side processing, which is on the roadmap.