Compare Two Columns in Excel, CSV, or Any List

Paste two datasets and match rows by a key column. Instantly see what matched, what changed, and what's unique to each side.

Try an example:
Column A
Type or Drag & Drop a file
Column B
Type or Drag & Drop a file
Output Options

Matching

Output

Paste or upload data in both panels above to see results.

Frequently Asked Questions

How do I compare two columns in Excel for matches?
Copy the first column from Excel and paste it into Column A, then copy the second column into Column B. The tool matches rows by a key column and instantly shows what matched, what's unique to each side, and - if you set a value column - what changed. No VLOOKUP, COUNTIF, or MATCH formulas needed.

Example - two customer exports:
Table A (Jan)Table B (Feb)Result
C001C001✓ Matched
C002-Only in A
-C003Only in B

Tip: if your data has a header row, tick First row is a header in Column Setup so column names appear in the dropdowns.
How do I find items in Column A that are not in Column B?
After pasting your data, the Only in A panel shows every key that exists in Column A but has no matching key in Column B. The Only in B panel shows the reverse.

Example - finding discontinued and new products:
Table A (old)Table B (new)Result
P001 LaptopP001 Laptop✓ Matched
P003 Keyboard-Only in A (discontinued)
-P005 WebcamOnly in B (new product)
How is this different from the Compare Two Lists tool?
Compare Two Lists treats each input as a flat list and does set operations. This tool understands tabular data and matches rows by a key column it can also track value changes.

Compare Two ListsColumn Compare
InputOne item per lineCSV / TSV / spreadsheet
MatchingWhole-line equalityMatch on a key column
Change detectionNoYes (Track changes in)
Best forSimple item listsDatabase exports, spreadsheets

Rule of thumb: single column → Compare Two Lists. Multiple columns → this tool.
What is the 'Match on' column?
The key column identifies and matches rows between datasets - like the lookup column in a VLOOKUP formula.

Example - matching customers by ID:
Table ATable BResult
C001, AliceC001, Pro plan✓ Matched on C001
C002, Bob-Only in A
-C003, Basic planOnly in B

Choose a column with unique, stable identifiers (an ID, email, or order number) - not names or descriptions that might change.
How do I detect what changed between two versions of a dataset?
Set a Track changes in column for both sides in Column Setup. Rows where the key matches but the value differs appear in the Changed section, showing the old value (from A) and new value (from B) side by side.

Example - price changes in a product catalog:
Product IDTable A priceTable B priceResult
P00199,099△ Changed
P00255✓ Matched

Useful for: spotting price changes between exports, finding updated customer records, comparing config snapshots.
Can I compare columns with different headers or column positions?
Yes. You choose the key column independently for each side, so columns don't need to be in the same position or share the same header name.

Example - ID column in a different position:
Table ATable B
Name, ID, DeptID, Name, Dept
Alice, E001, EngE001, Alice, Eng

Set Match on to A. Column 2 (ID) = B. Column 1 (ID) - the tool handles the mismatch automatically.
What happens if my data has duplicate key values?
The tool matches each row in Table A against the first row in Table B with the same key (VLOOKUP-style).

Example - duplicate key in Table B:
Table ATable BResult
C001, AliceC001, Pro ← first match✓ Matched
C001, Basic ← duplicateOnly in B

If Table A has duplicate keys, each row is processed independently against B's first match.
Is my data sent to a server?
No. All processing runs entirely in your browser using JavaScript. Your data never leaves your device and is never stored anywhere.
How does the tool handle large files?
The tool runs entirely in your browser with no server-side file size limit. It handles datasets up to around 50,000 rows without noticeable lag on most devices.

For very large files (100,000+ rows), results may take a second or two to appear. To improve performance, paste only the key and value columns you need rather than the full table - fewer columns means faster parsing.
What file types and formats does this tool accept?
You can paste directly from Excel, Google Sheets, or Numbers - select the cells and paste normally. You can also upload files via the toolbar button in each panel.

FormatExtensionDelimiter
CSV.csvComma
TSV.tsvTab
Plain text.txtAny
Excel paste-Tab (auto-detected)

The delimiter is auto-detected by default. If the wrong delimiter is detected, select it manually in Column Setup.

Related reading

Share this tool

Featured on ToolDirs
© 2026 ListDiff

Free online list and text processing tools.