Filter Excel Rows by Condition Online — Free, No Upload, 1 Click
Keep or remove rows that meet a condition. No upload, no sign-up — file stays on device.
Drop one .xlsx, .xlsm, or .xls file here, or click to browse
Supports .xlsx / .xlsm / .xls · processed locally · never uploaded
How to Filter Excel Rows by Condition Online
- Drop one .xlsx, .xlsm, or .xls workbook — everything runs in your browser and is never uploaded.
- Pick the column (the dropdown is built from the first row of the first sheet, e.g. “A — Region”), the condition, and the value. The value box is disabled for is-empty conditions.
- Choose Keep matching rows (the default) or Remove matching rows, and tick whether the first row is a header (it is kept either way).
- Click Filter rows — the same column index and condition are applied to every worksheet in the workbook.
- Review the per-sheet kept/removed counts and download the result as your-file-name-filtered.xlsx.
The Eight Filter Conditions
Text conditions convert each cell to text before comparing: numbers become their text form (100 → “100”), dates become ISO timestamps, booleans become “true”/“false”, and empty cells become “”.
| Condition | A row matches when… | Matching rules |
|---|---|---|
| contains | The cell text contains the value | Case-sensitive substring — “EMEA” does not match “emea” |
| does not contain | The cell text does not contain the value | Same case-sensitive substring rule, inverted |
| equals | The cell text is exactly the value | Whole-string match; a numeric 100 equals the text “100” |
| does not equal | The cell text is anything other than the value | Empty cells (“”) count as different from any non-empty value |
| is greater than | The number in the cell is larger than the value | Only numbers take part; dates are compared by Unix milliseconds; text never matches |
| is less than | The number in the cell is smaller than the value | Same numeric/date rule; a non-numeric value matches nothing |
| is empty | The cell is blank or whitespace-only | null, “” and “ ” all count as empty; the value field is ignored |
| is not empty | The cell contains anything at all | Spaces-only cells are treated as empty |
Keep Matching Rows vs Remove Matching Rows
| Keep matching rows (default) | Remove matching rows | |
|---|---|---|
| Matching rows | Kept | Deleted |
| Non-matching rows | Deleted | Kept |
| Header row | Always kept | Always kept |
| Other sheets | Filtered by the same condition | Filtered by the same condition |
One condition runs across every worksheet using the same column index — there is no per-sheet setup. In a narrower sheet where that column does not exist, the missing cells are treated as empty, so “is empty” can match them.
Filtering is destructive: deleted rows cannot be recovered from the output. Keep the original file or use Save a copy before you run it.
When You Need This
- Separate regional data: keep only rows where Region contains “EMEA” in a worldwide sales export, or remove one region before sharing the file.
- Drop test and demo rows: remove rows whose email contains “@example.com” or whose ID equals “TEST-01”.
- Clean blank records: remove rows where the customer or order-number column is empty, or invert it and keep only rows that have a value.
- Apply numeric or date cutoffs: keep amounts greater than 1,000, or rows dated after a given millisecond timestamp.
Good to Know Before You Filter
- Text comparisons are case-sensitive — “North” and “north” are different values.
- The condition uses a column index (A, B, C…), so the same position is filtered in every sheet even when headers differ.
- Encrypted workbooks (a password is needed to open them) cannot be read.
- Legacy .xls files are accepted, but the result is always produced as .xlsx.
The output is a value-level .xlsx rebuilt from your data: cell styles, column widths, merged cells, charts, and formulas (saved as their cached values) are simplified. If formatting matters, filter inside the free online editor instead.
Frequently Asked Questions
Is this row filter really free and private?
Yes — 100% free, no sign-up and no upload. The workbook is parsed and rewritten entirely in your browser; it never leaves your device.
Does the condition apply to every worksheet?
Yes. One column and condition are applied by column index to every sheet; sheets narrower than that column treat missing cells as empty, so “is empty” can match there. Internal sheets whose names start with “_” are skipped.
Are text comparisons case-sensitive?
Yes — contains, equals and their inverses all distinguish case: “EMEA” does not match “emea”. For these conditions numbers are compared as text (100 matches “100”), and dates as ISO timestamps.
How do “greater than” and “less than” work?
Only real numeric cells are compared against the value as a number. Dates are compared by their millisecond timestamp. Text, booleans, and empty cells never match, and a value that is not a finite number (such as “abc”) matches nothing.
What counts as an empty cell?
A cell is empty when it is blank (null) or contains only spaces after trimming. “is empty” ignores the value field; “is not empty” matches any cell that has real content.
Can the filter delete my header row?
No. With “First row is a header” enabled (the default), the first row of each sheet is always kept and never tested. Turn the option off only when your sheet starts directly with data.
What happens if every data row is removed?
That is a valid result, not an error: the download keeps the header rows and the report shows 0 rows kept (the tool warns you first). Deleted rows cannot be restored from the output, so keep the original file if you may need them. Formatting is simplified in the rebuilt .xlsx.
Related Tools
Need the full reference? Read SUMIF in Excel: Syntax, Examples and Errors — syntax, examples, common errors, and FAQ.
Need finer control, like several conditions combined?
Open the free online Excel editor