Skip to content

Row Filter

Keep only the CSV rows matching a condition on one column.

Runs in your browserNo account neededFree
Loading tool…

Processing: This tool runs entirely in your browser. Your input and any file you open stay on your device — nothing is uploaded to a server.

How to use the row filter

  1. Paste your CSV.
  2. Choose a column, a condition and a value.
  3. Check the row count, then copy the result.

About this tool

Pick a column, pick a condition, and keep the rows that match. Conditions cover text matching, numeric comparison and empty checks.

Text matching is case-insensitive, because in practice that is nearly always what is wanted — filtering for "london" should find "London". Numeric comparisons convert both sides to numbers, so a non-numeric value in a numeric column simply fails to match rather than throwing the whole filter off.

The empty and not-empty conditions are the ones people reach for less often and need more. Filtering for rows where a required field is empty finds the records that will fail an import, and it takes one click here against several steps in a spreadsheet.

The row counts before and after are shown, which is the check worth doing: a filter that removes everything usually means the value does not appear in the column you selected.

Parsing handles quoted fields properly, so a comma, quote or line break inside a value does not split it. That is the difference between this and splitting on commas, and it is why exports containing addresses or free-text notes so often arrive mangled.

Everything runs in the page. Spreadsheets are usually the most sensitive files anyone handles — customer lists, payroll, financial records — so a tool that works on them without uploading them is doing the one thing that matters most here.

Common uses

  • Pulling out the rows for one region or category.
  • Finding records with a required field missing.
  • Filtering to values above a threshold.

Frequently asked questions

Is matching case-sensitive?
No. Text conditions ignore case, since filtering for 'london' should find 'London'.
How do numeric comparisons handle text?
A value that is not a number simply fails to match, rather than breaking the filter for every other row.
Why did my filter return nothing?
Usually the wrong column, or a value that does not appear in it. The row counts above the result make this obvious.

Related tools