CSV lookup and join
Join two small CSV tables by selected key columns. Preview matches and choose left, inner or full output.
- 1Add input
- 2Adjust settings
- 3Get your result
Tool input and files are processed in this browser without being uploaded.
Before you start
Paste or import two UTF-8 CSV tables, select a key column in each and choose which unmatched rows to retain. Key values stay as strings, including leading zeroes.
How to use this tool
- Paste or import the main and lookup UTF-8 CSV tables, then confirm each row and column count.
- Select the main and lookup key columns. Resolve blank main keys or blank/duplicate lookup keys; inspect the preflight match counts.
- Choose left, inner or full join, run it, check matched and unmatched counts, then download the complete CSV.
Supported inputs and limits
Each CSV is limited to 1 MiB of UTF-8 text and 200,000 parsed cells. Both need headers. Main-table keys must be nonblank and may repeat; lookup-table keys must be nonblank and unique.
Keys match as exact strings, including leading zeroes, spaces and letter case. Left keeps all main rows; inner keeps only matches; full also appends unmatched lookup rows. Missing lookup fields appear blank, which can also be a real empty source value.
Output has at most 200,000 cells and downloads as CSV. The page previews up to 200 rows; the download contains all output rows. Formula-like cells gain an apostrophe in the CSV for safer spreadsheet opening. No typed or multi-column join, automatic master-table update, or large-file workflow.
Worked example
Example input
id,name 01,Ada 02,Bo Lookup CSV: id,team 01,Design 03,Ops
Example options
{"key": "id", "rightKey": "id", "mode": "left"}Example output
id,name,team 01,Ada,Design 02,Bo,
When something does not work
Use two UTF-8 CSV tables of at most 1 MiB each with consistent row widths. Select existing key columns, fix blank main keys and blank or duplicate lookup keys, then inspect the match counts.
Frequently asked questions
May the main table contain duplicate keys?
Yes. Each main row remains separate and receives the matching lookup values. Lookup keys must be unique to avoid unexpected row multiplication.
What happens to rows without a match?
Left keeps unmatched main rows, inner omits them, and full also includes unmatched lookup rows. Missing fields are blank in the CSV; a source field may also genuinely be blank.
Does it change IDs or protect spreadsheet imports?
IDs are exact strings, so 01 and 1 do not match. Formula-like values gain an apostrophe in the downloaded CSV. The original tables are not rewritten.