Home › Developer Tools › CSV VLOOKUP Tool

CSV VLOOKUP Tool

Bring columns from a lookup table into your main table by matching a key such as Customer ID, SKU or email, just like VLOOKUP or XLOOKUP but without formulas. Works with CSV and Excel files, shows what matched and what did not, and exports a clean CSV or XLSX.

Last updated:

Both tables are matched in this browser tab and never uploaded.

Columns to bring over from B

Result

Advertisement
Advertisement

How to use the CSV VLOOKUP Tool

  1. Add your main table (A): paste CSV or open a CSV/Excel file. Every row of A stays in the result.
  2. Add the lookup table (B) that holds the values you want to bring over.
  3. Pick the match columns in A and B. Columns with the same name are selected automatically.
  4. Tick the columns to bring over from B and choose the join type and how repeated keys are handled.
  5. Check the counts and preview, then download CSV or Excel, or copy the result into your spreadsheet.

Join types at a glance

Example: table A has orders for customers C-101, C-102 and C-108; table B lists customers C-101, C-102 and C-105.

Join typeRows in the resultSpreadsheet equivalent
Left joinC-101, C-102 with customer details; C-108 with empty (or #N/A) details=VLOOKUP(B2, Customers!A:D, 2, FALSE) filled down
Inner joinC-101 and C-102 onlyVLOOKUP, then filter out #N/A rows
Full joinC-101, C-102, C-108 (no details) and C-105 (no order)No single formula; needs Power Query (Full Outer merge)
A rows with no matchC-108 only=ISNA(MATCH(B2, Customers!A:A, 0)) as a filter

Why VLOOKUP results go wrong, and how this tool handles it

ProblemIn ExcelHere
Forgot FALSE as the last argumentApproximate match returns a wrong row silentlyAlways exact match
Key column is not the first column of the rangeVLOOKUP cannot look left; you need INDEX/MATCH or XLOOKUPAny column can be the key
Trailing spaces or different case#N/A unless you wrap keys in TRIM()Ignored by default
00123 stored as text vs 123 as number#N/ATick Ignore leading zeros
Inserting a column shifts the column numberWrong column returnedColumns are chosen by name
Duplicate keys in the lookup tableFirst match only, with no warningCounted, with first, last, all or combined options

Tips

  • Check the "not found" count first. A high count usually means the wrong match column or a formatting difference, not missing data.
  • Keep an audit trail. Leave the Match column on: filter it for "not found" in Excel to see exactly which keys need attention.
  • Stacking files instead of matching them? To append rows from several files with the same columns, use the CSV Merger. To see what changed between two versions of the same file, use the CSV Diff Checker.

Frequently asked questions

How do I do a VLOOKUP between two CSV files?

Paste or open the file you want to fill in as table A and the file with the extra information as table B. Choose the shared column in each (for example Customer ID), tick the B columns you want, and keep Join type on Left join. The result is table A with the B columns added, exactly what =VLOOKUP(key, B, column, FALSE) would give for every row.

What is the difference between left, inner and full join?

Left join keeps every row of A and leaves the B columns empty (or your not-found value) when there is no match, like VLOOKUP. Inner join keeps only rows whose key exists in both tables. Full join keeps everything: matched rows, A rows without a match, and B rows that no A row used, which are added at the end.

What happens when a key appears twice in the lookup table?

VLOOKUP and XLOOKUP return the first match only, and that is the default here. You can switch to the last match, return every match (the A row is repeated once per match, like a database join), or combine the matching values into one cell separated by semicolons. The stats show how many keys are repeated in B.

Why are some rows not found even though the IDs look the same?

Usually because of hidden differences: trailing spaces, different capitalization, or leading zeros (00123 in one file, 123 in the other after Excel dropped the zeros). Ignore case and Ignore extra spaces are on by default; tick Ignore leading zeros for numeric codes. Values are compared as text, so 1.0 and 1 are different keys.

Can I match on columns with different names?

Yes. Pick any column in A and any column in B, for example Email in A and E-mail address in B. Only the values need to match, not the headers.

Is this the same as XLOOKUP or INDEX/MATCH?

For exact matches it gives the same result as XLOOKUP(key, B[key], B[column]) or INDEX/MATCH with match type 0, for several columns at once. Approximate (range) lookups, such as finding a tax bracket for an income, are not supported; this tool only does exact matches.

Are my files uploaded?

No. Both tables are read and joined by JavaScript in your browser, so customer lists and price files never leave your computer.

Are all the tools on FreeToolCabin tested for quality and accuracy?

Yes! Every tool on our site undergoes automated Q/A testing in real browser environments to ensure high precision, correct output, and zero errors. If you happen to spot a bug or have a suggestion, please contact us at [email protected] and our team will review it right away.

Related tools

CSV MergerCombine many CSV files into one, matching columns by name, with dedupe and a source column.CSV Diff CheckerCompare two CSV files by key column and see added, removed and changed rows cell by cell.CSV Column ExtractorPick, reorder and rename CSV columns, filter rows by value, and export a new CSV or JSON.Excel Viewer (XLSX / XLS)Open XLSX, XLS and ODS spreadsheets in your browser without Excel.JSON to Excel ConverterTurn JSON into a styled .xlsx spreadsheet; nested arrays become their own linked sheets.JSON to CSVConvert JSON data to CSV for spreadsheets.CSV to JSONConvert CSV data to JSON with live preview.Excel to CSVConvert XLSX spreadsheets to CSV.CSV ViewerOpen a CSV or TSV file as a sortable, filterable table.Line Ending ConverterConvert text and files between CRLF, LF and CR line endings.Markdown to HTMLConvert Markdown to clean HTML with a live editor.XML to JSONConvert XML to JSON with validation.Text Encoding ConverterDetect and convert text file encodings like UTF-8, UTF-16 and Latin-1.JSON ViewerExplore JSON as a collapsible tree, search keys and values and copy any node's path.TTF to WOFF2 ConverterConvert TTF and OTF fonts to WOFF2 or WOFF and get a ready @font-face CSS snippet.Chmod CalculatorConvert Linux file permissions between checkboxes, octal (755) and symbolic (rwxr-xr-x) notation.JSON to TypeScriptGenerate TypeScript interfaces or types from JSON, with nested types and optional fields.Morse Code TranslatorTranslate text to Morse code and back, then play it as sound or a blinking light, or save a WAV.HTML Table GeneratorBuild HTML tables in an editable grid with styles, header rows, CSV import and live preview.Hex to Text ConverterConvert hex to text and text to hex with UTF-8 support and space, 0x, \x or comma formats.JSON to XML ConverterConvert JSON to well-formed XML with attributes, arrays and pretty print.JSON to YAML ConverterConvert JSON to clean YAML as you type, with indent, quoting and sort options.YAML to JSON ConverterConvert YAML to pretty or minified JSON, with errors pinned to the exact line.HTML to Markdown ConverterTurn HTML or pasted rich text into clean Markdown with tables and live preview.Markdown Table GeneratorBuild Markdown tables in a grid or paste from Excel/CSV, with alignment and preview.JSON ValidatorCheck JSON with the exact line and column of each error, fix tips and one-click auto-fix.Image to Base64Convert images to Base64 data URIs, CSS backgrounds and HTML img tags in your browser.Base64 to ImagePaste a Base64 string or data URI to preview, identify and download the image.JSON CompareCompare two JSON documents and see every added, removed and changed path.Hex to DecimalConvert hex to decimal instantly with steps and signed mode.Decimal to HexConvert decimal to hex instantly with steps and signed mode.Binary to DecimalConvert binary to decimal instantly with steps and signed mode.Decimal to BinaryConvert decimal to binary instantly with steps and signed mode.Two's Complement CalculatorDecimal to two's complement binary and back for 4-64 bits, with invert-and-add-1 steps.XML to CSV ConverterConvert XML to CSV: detects repeating records, flattens nested data, pick your columns.CSV to XML ConverterConvert CSV to well-formed XML with custom root and row names, escaping and pretty print.TOML to JSON ConverterConvert TOML to JSON and JSON to TOML with a full v1.0 parser and clear error lines.JSON to Go StructTurn JSON into Go structs with inferred types, nested structs and json tags.CSV CleanerClean messy CSV in one click: trim spaces, drop empty rows and columns, fix headers, dedupe.Remove Duplicates in ExcelFind and remove or highlight duplicate rows in XLSX or CSV files by the columns you choose.GeoJSON ViewerView GeoJSON on a map, inspect and edit properties, validate against RFC 7946 and export.GPX ViewerOpen GPX tracks on a map with distance, elevation profile, moving time, speed and splits.JSON Repair ToolFix broken JSON automatically: trailing commas, quotes, comments, truncated data, with a diff.Karnaugh Map SolverSolve 2–6 variable K-maps: click cells or enter minterms to get the minimal SOP or POS with groups.Merge Excel FilesCombine XLSX, XLS and CSV files into one workbook or append all rows into a single sheet.Parquet File ViewerOpen Apache Parquet files in your browser: schema, rows, filters and CSV or JSON export.Query CSV with SQLRun SQL on CSV, Excel, JSON and Parquet files in your browser with DuckDB. Join and export.Online Serial MonitorTalk to Arduino, ESP32 and USB serial devices in your browser: log, send, plot and save.Split Excel FileSplit an Excel sheet into several files by row count or by each value in a column, as ZIP.SQL Create Table GeneratorDefine columns, keys, defaults and indexes; get CREATE TABLE SQL for MySQL, Postgres and more.SQL IN Clause GeneratorTurn a pasted list into a SQL IN ('a','b') clause with quoting, dedupe and 1,000-item chunks.SQL Online CompilerRun SQL queries online on SQLite with sample databases, a result grid, CSV export and .db save.SQL to ER DiagramPaste CREATE TABLE statements and get an entity-relationship diagram with keys and links.XML to XSD GeneratorGenerate an XML Schema (XSD) from sample XML: types, occurrences, attributes and namespaces.XML ValidatorCheck if XML is well-formed, see the exact line and column of each error and pretty-print it.Wildcard Mask CalculatorConvert a subnet mask or CIDR to a wildcard mask for ACLs and OSPF, with range and binary.CSV to VCF ConverterConvert a contacts CSV into a vCard (.vcf) file, mapping columns to name, phone, email and more.CSV to YAML ConverterConvert CSV rows to a YAML list of mappings with type inference and delimiter detection.Endianness ConverterSwap byte order of 16, 32 and 64-bit hex values and see big- and little-endian integers and floats.Excel to SQL ConverterTurn an Excel sheet into CREATE TABLE and INSERT statements for MySQL, PostgreSQL, SQLite or SQL Server.Excel to VCF ConverterTurn an Excel contact list into a vCard .vcf file for iPhone, Android, Google or Outlook.File to C ArrayConvert any file into a C or C++ byte array header, like xxd -i, with const and PROGMEM options.Image to C ArrayConvert images to monochrome, RGB565 or RGB888 C arrays for OLED, LCD and TFT displays.JSON Merge ToolDeep-merge two or more JSON objects with array concat, replace or union and a conflict rule.JSONL to CSV ConverterConvert JSON Lines / NDJSON to CSV with flattened columns; streams large files locally.PHP Unserialize OnlineDecode PHP serialize() strings to JSON, a tree or print_r, and serialize JSON back to PHP.SQL Dialect ConverterTranslate SQL between MySQL, PostgreSQL, SQLite, SQL Server, Oracle, BigQuery and more.TSV to JSON ConverterTurn tab-separated data pasted from Excel or Sheets into a JSON array or keyed object.
See all 129 Data & File Format Converters →