How to Filter Spreadsheet Rows by a List — Free, Faster Than Excel VLOOKUP
Table of Contents
The task: you have two lists. A big one (your main data) and a small one (the values you care about). You want either the rows that match the small list, or the rows that don't. Sounds simple. In Excel, it's a VLOOKUP formula, an Advanced Filter, or some combination that takes 15 minutes if you haven't done it in a while.
There's a faster path. The free CSV Row Filter lets you paste the small list as a word bank and upload the big list as your CSV. In about 30 seconds, you have both filtered outputs — matched and unmatched — ready to download. No formulas, no helper columns, no spreadsheet software required.
Why VLOOKUP Is the Wrong Tool for This Job
VLOOKUP (and its modern replacement XLOOKUP) is a lookup function — it's designed to pull a value from another table based on a match. People use it for filtering by repurposing it to return "found" or "not found," then filtering on that result column.
That workflow involves:
- Pasting your reference list somewhere in the spreadsheet
- Writing =VLOOKUP(A2, $F:$F, 1, FALSE) in a helper column
- Dragging the formula down 5,000 rows
- Filtering on the helper column to show only matches (or non-matches)
- Copying the visible rows somewhere else
- Cleaning up
If the reference list has special characters or inconsistent formatting, the VLOOKUP fails silently. If you forget to lock the range with $, the references drift. If the data is in a CSV and not a proper Excel file, you have to import it first.
The word bank approach skips all of that.
How the Word Bank Approach Works
The word bank is your reference list — the values you want to match against. You paste them one per line into a text area. The tool reads them into memory and checks every row in your CSV against them.
This mirrors what VLOOKUP does conceptually (check if a value is in a reference list) but without the spreadsheet setup. You paste a list, upload a file, pick a column, and get your results.
For the VLOOKUP equivalent scenarios:
| VLOOKUP Task | Word Bank Equivalent |
|---|---|
| Find rows where email is in reference list | Paste reference emails, select Email column, Keep only matching rows |
| Find rows NOT in reference list | Paste reference values, select column, Remove matching rows |
| Separate list into "found" and "not found" | Download Matched Only and Unmatched Only separately |
Excel Advanced Filter — Another Comparison
Excel's Advanced Filter is actually closer to what we're doing here — you define a "criteria range" (your reference list) and it filters the data. But the Advanced Filter has its own quirks:
- The criteria range has to be formatted exactly right — column headers matching your data
- It filters in-place or copies to a specific location (not a clean separate file)
- It doesn't give you the "not matched" set separately without running it twice
- The UI is buried in Data > Sort and Filter > Advanced
For most non-power users, Advanced Filter is faster to look up than to remember. The browser tool gives you the same outcome — rows filtered by a reference list — with none of the setup.
Practical Example: Cleaning a Lead List by Suppression File
You have a 3,000-contact CSV export. Your email tool gave you a 120-record suppression list — people who opted out. You need to remove the suppressions before your next send.
In Excel, this is a VLOOKUP problem. With the browser tool:
- Open your suppression file — copy the email column (120 addresses)
- Paste into the word bank on the CSV Row Filter (one per line)
- Upload your 3,000-contact CSV
- Select the Email column
- Choose "Remove matching rows"
- Download the result — 2,880 contacts, suppressions removed
Time: about 45 seconds. No formulas, no helper column, no copy-paste of visible rows.
After the filter, run the result through the CSV Sanitizer to normalize email addresses to lowercase and trim any whitespace before importing — it only takes another 30 seconds.
Google Sheets FILTER Function vs. the Browser Tool
Google Sheets has a FILTER() function that's more flexible than Excel's VLOOKUP approach. Something like =FILTER(A:D, COUNTIF(reference_range, A:A)) can do list-based filtering in one formula.
That's actually elegant — but again, you need the reference list in a named range, you need to understand the formula, and the result is a dynamic array, not a static exportable CSV.
If you live in Google Sheets and your data is already there, the FILTER function is worth learning. If you have a CSV file that you need cleaned and exported back as a CSV, the browser tool is the faster path. It skips the import-to-Sheets, filter, and export steps entirely.
For deeper CSV data work — column editing, deduplication, combining files — see the CSV Column Mapper and CSV Deduplicator in the same toolkit.
Try It Free — No Signup Required
Runs 100% in your browser. No data is collected, stored, or sent anywhere.
Open Free CSV Row FilterFrequently Asked Questions
How many values can I put in the word bank (reference list)?
There is no set limit. The tool has been tested with thousands of values in the word bank without issues. Matching speed depends on your browser and device but is typically near-instant for lists under 10,000 entries.
Does this work with Google Sheets CSV exports?
Yes. Export your Google Sheet as CSV (File > Download > Comma Separated Values), upload the file, filter, and download the result. You can re-import the filtered CSV back to Sheets if needed.
Can I use partial matches — for example, keep rows where the Company column contains any word from my list?
Yes — switch to "Contains" mode in the tool. In this mode, if your word bank has "Fitness" it will match "Planet Fitness", "Fitness First", and "24 Hour Fitness". Useful for fuzzy reference list matching.

