FREE CSV LOOKUP JOIN · LOCAL PROCESSING

Join two CSV files by SKU, customer ID or another key

Add columns from a supplier list, price sheet or customer lookup to an existing CSV without overwriting original values. See what matched, what did not, and download both the joined CSV and an unmatched-key review file.

Both CSVs are processed locally in a separate ad-free browser editor.

Never import the joined result into a live store without checking it against the source. Duplicate lookup keys, blank lookup keys and mismatched CSV field counts are rejected. This tool does not contact Shopify, Google Sheets or another account.

Downloadable example CSV files

Download inventory CSV example · Download supplier cost CSV example

A lookup join is not the same as comparing or stacking files

Suppose an inventory export has SKU, product name and stock quantity, while a supplier price list has SKU, supplier and cost. You need to add cost to the inventory rows using SKU. Comparing versions would show changes; stacking rows would mix unrelated record types. A join instead finds each SKU in the second CSV and appends its fields to the first.

This free join preserves the first file as the primary table. In left mode every first-file row remains, with blanks for lookup values that were not found. Inner mode keeps only rows with a matching key. The downloadable unmatched-key report explains which original CSV row was not matched.

Test the join with two complete downloadable sample files

Download the two fictional sample files using the links above. The first CSV contains three SKUs: MUG-001, CUP-002 and BAG-009. The second lists supplier costs for MUG-001, CUP-002 and PLATE-003. Choose SKU in both key selectors and keep left join selected.

The expected result is three output rows, two matched rows, one unmatched primary row and one unused lookup record. The supplier list also contains a Title column. Rather than overwriting the existing product Title, the new column becomes Title_lookup. Use the unmatched report to review BAG-009 rather than silently deleting the product.

Why duplicate lookup keys are rejected

If two different supplier records share the same SKU, arbitrarily choosing the first could produce a wrong cost. A database many-to-many join might multiply rows unexpectedly, changing downstream product counts. To avoid both outcomes, this utility requires every lookup key to be unique and not blank, and stops with the affected CSV row numbers when that rule is violated.

Repeated keys in the first file are allowed: an order export can contain several rows for one customer and receive the same lookup values on each one. The tool does not delete or combine any of those first-file records.

Key matching, formula safety and important limits

Choose an ID appropriate to the records: a product SKU for inventory, customer ID for contacts, or another verified stable identifier. The key field names can be different in the two files. Surrounding spaces are ignored for matching. Case-sensitive matching is on by default and can be disabled if appropriate.

Column names are checked for duplicates. If the lookup file has a column name already present in the first file, the appended version gets a _lookup suffix, with a numeric extension when necessary. Each input is limited to 2 million characters, 20,000 data rows and 200 columns; the combined table may not exceed 200 columns. Exported files are UTF-8 CSV with protection for spreadsheet formula-like cells.

Inputs never leave the ad-free browser editor. This utility does not read Excel XLSX files; export to CSV first. It does not update Shopify inventory, send email, share your file contents with advertisers or fetch any remote URLs.

Frequently asked questions

Can I match SKU to Product Code if the headers differ?

Yes. Select SKU as the first key and Product Code as the lookup key. The value text, not the column title, decides matches.

What happens when a supplier SKU is missing?

Left mode leaves its appended columns blank and lists the record in the unmatched report. Inner mode excludes the unmatched primary row.

Can the lookup file have two rows with the same ID?

No. This safe one-to-one lookup refuses repeated lookup keys so one primary row is never multiplied or assigned an arbitrary match.

Is the same as a SQL left join or Excel VLOOKUP?

It performs a deterministic many-to-one CSV lookup similar to those operations, with extra safety checks and distinct output column naming.

Do my CSV files go to the server?

No. Both are parsed and joined within the ad-free editor in your browser.

Other free CSV tools

Compare CSV versions · Shopify CSV preflight

See all free tools