CSV Row Filter

Paste a CSV and add one or more filter rules per column. Conditions include: contains, equals, starts with, ends with, regex, greater than, less than. Combine rules with AND logic. Download the filtered result. Runs in your browser.

Browser-local No signup required Utility

Filter rows in CSV or other supported delimited text with one or more column rules. Rules can test text, regular expressions, or numeric greater-than and less-than comparisons, and all active rules must match for a row to remain.

How to filter CSV rows

  1. Paste the data and choose its delimiter.
  2. Choose whether the first row is a header.
  3. Add one or more rules and select the target column, operator, and value for each.
  4. Optionally enable case sensitivity or negate individual rules.
  5. Run Filter and review the rows that remain.

Available rules and matching behavior

The available operators are contains, equals, starts with, ends with, regular expression, greater than, and less than. Text comparisons are case-insensitive by default, while numeric comparisons use parseFloat on both the cell and rule value.

Multiple rules are combined with logical AND through rules.every(), so every rule must pass. Negate reverses the result of a single rule. Invalid regular expressions are treated as non-matches rather than stopping the whole filter. The chosen input delimiter is also used for output serialization.

Privacy and limitations

Filtering is performed locally in the browser and the CSV content is not intentionally uploaded. Numeric rules rely on JavaScript parseFloat rather than locale-aware number parsing, and invalid regular expressions simply fail to match. The tool does not currently support OR groups between rules.

Frequently asked questions

Can I combine several filters?

Yes. Every active rule must match for a row to be kept.

Can I invert a rule?

Yes. Enable Negate on that rule to reverse its result.

Are text rules case-sensitive?

Not by default. Case sensitivity can be enabled separately for each rule.

What happens with an invalid regular expression?

That regex rule returns no match instead of aborting the filter.

Does numeric comparison understand formatted numbers like 1,000?

Not reliably. The implementation uses parseFloat rather than locale-aware parsing.