打开或粘贴 CSV 文件,选择列、条件并输入值,符合条件的行会随输入实时显示在结果中。最多可组合 30 个条件,选择 全部条件 或 任一条件,再决定保留还是删除这些行,最后下载为 CSV。单元格文本不会被改动:00412 仍是 00412。超过 25 MB 的文件以流式方式筛选,直接下载、不显示预览。文件在你的浏览器中处理,不会上传。
如何筛选 CSV 文件中的行
- 打开
.csv、.tsv或.txt文件,拖到工具上,或粘贴数据。分隔符以及 UTF-8、UTF-16 的字节顺序标记(BOM)会自动识别;如需其他分隔符或旧编码(如 GBK 文件选 GB18030),请在 导入设置 中选择。 - 选择 列(或 任意列)、条件 和 值。大多数条件在填入值之前不会作用于预览。
- 点击 添加条件 增加规则,并把 行需满足 设为 全部条件(AND)或 任一条件(OR)。
- 在 符合条件的行 下选择 保留 或 删除。结果上方的提示会显示匹配的行数。
- 点击 下载 CSV、复制,或 在编辑器中打开 继续处理结果。
如果想按某列的值把文件拆成多份,而不是只留下一部分,请使用 拆分 CSV。要对保留下来的行重新排序,可以接着使用 CSV 排序。
各条件如何比较值
| 包含、不包含、完全等于、不等于、开头是、结尾是 | 按单元格中的原始文本比较。除非开启 区分大小写,否则大小写视为相同。空格也会参与比较: Madrid 与 Madrid 并不完全相等。 |
|---|---|
| 属于列表中的值、不属于列表中的值 | 在 值(每行一个) 中逐行输入。值里包含逗号也没问题;列表中的空行会被忽略。每一行都必须与整个单元格相同才算匹配。 |
| 匹配正则表达式 | Unicode 模式下的 JavaScript 正则表达式,针对原始单元格进行匹配。除非用 ^ 和 $ 锚定,否则在值的任意位置出现即算匹配。除非开启 区分大小写,否则忽略大小写。表达式无效时显示错误,而不是结果。 |
| 为空、不为空 | 只包含空格的单元格也算为空。 |
| 数字大于、数字大于等于、数字小于、数字小于等于、数字介于 | 适用于 12、-3.5、0.25 或 1e3 这样的普通十进制数字,并按精确值比较,因此 9007199254740993 大于 9007199254740992。千分位分隔符、货币符号和单位都不算数字,所以 1,250.00 或 $40(以及 ¥40)永远不会匹配。空白和非数字单元格不会匹配任何数字条件。从 和 到 都包含边界值,先后顺序不限。 |
| 日期早于、日期晚于、日期介于 | 按所选的 日期格式 识别日期。选择 ISO 2024-03-31 时,单元格还可以带时间、小数秒以及 Z 或 +02:00 这样的时区偏移,偏移会换算为 UTC;没有偏移的时间按原样比较。只填日期的 到 值包含当天全天。不符合该格式的单元格不会匹配。 |
如果文件中的 2,25 表示二又四分之一,请把 小数点 设为 逗号 1,5;这样设置后,写成 2.25 的值就不再被视为数字。日在前 31/03/2024 和 月在前 03/31/2024 两种格式中,各部分之间可以用 /、. 或 - 分隔,日和月可以是一位或两位数字。
同时搜索所有列
选择 任意列 时,包含 这类肯定条件只要有一个单元格匹配,就会保留该行。否定条件(不包含、不等于、不属于列表中的值、不为空)则必须对该行的每个单元格都成立,所以“不包含 test”只会保留所有列都没有出现该词的行。
删除 是对整个条件组合取反,而不是对每个条件分别取反:在 全部条件 下,它只会删除同时满足所有规则的行。
特殊数据如何处理
- 值内被引号括起的分隔符和换行按 RFC 4180 读取;多行单元格仍算一行,写回时会加上引号。
- 符合条件的行按读取时的原样写出。前导零、长编号和空格都会保留,输出中不会把任何值转换成数字或日期。
- 空白表头会写成
Column 3,重复表头写成name (2),这样每个条件都能准确指向一列。 - 如果某行的值比表头多,多出的部分会放进名为
Column 5、Column 6… 的新列;比表头短的行会用空值补齐,这些空值可以被 为空 匹配到。 - 下载的文件保留原有的分隔符、换行符和末尾换行;编码为 UTF-8(带或不带 BOM)、UTF-16 LE 或 Windows-1252 时也保持原编码,其他编码(包括 GB18030)会保存为 UTF-8。
筛选超过 25 MB 的文件
较大的文件不会载入内存,因此没有结果预览。工具只读取文件开头来列出各列;设好条件后,点击 筛选并下载,后台线程会把整份文件读两遍:第一遍找出所有列,第二遍逐行检查条件。符合条件的行会下载为 CSV:保留原分隔符,只在需要时加引号,换行符为 CRLF,编码为 UTF-8。运行期间会显示进度条和 取消 按钮,完成后的提示会说明匹配了多少行。
在这种模式下,每个条件都完全按输入执行,空条件也不例外:空的 包含 会匹配所有行,空的数字条件会报错停止。运行前请把每个条件填写完整或删除。除非文件以 UTF-16 的字节顺序标记开头,大文件一律按 UTF-8 读取。
常见问题排查
限制与隐私
最多 30 个条件。25 MB、10 万行、250 列、200 万个单元格以内的文件可实时预览;更大的文件以流式方式筛选,单个下载结果最大 4 GB。
筛选在你的浏览器中进行,CSV 文件不会上传到服务器。
示例
在 全部条件 下用两个条件筛选订单:total 数字大于等于 100,并且 ordered_on 日期晚于 2024-03-01(ISO 格式)。订单 00414 不满足日期条件,00413 不满足金额条件,00415 的金额为空,而空值不会匹配任何数字条件。前导零和带引号的姓名都保持不变。
order_id,customer,total,ordered_on 00412,"Lopez, Ana",129.90,2024-03-02 00413,Kim Lee,48.00,2024-03-05 00414,"Nguyen, Bao",1250,2024-02-28 00415,Sara Ali,,2024-03-09 00416,"Okafor, Chidi",310.5,2024-03-11
order_id,customer,total,ordered_on 00412,"Lopez, Ana",129.90,2024-03-02 00416,"Okafor, Chidi",310.5,2024-03-11
常见问题
怎样保留某列等于几个值之一的行?
选择 属于列表中的值,每行输入一个值。它按整个单元格匹配;除非开启 区分大小写,否则忽略大小写。
能在一次筛选里同时用 AND 和 OR 吗?
一次筛选做不到:所有条件只能统一按 全部条件 或 任一条件 组合。需要混合逻辑时,先筛选一次,点击 在编辑器中打开 或下载结果,再筛选一次。针对同一列的多个 OR 条件,通常可以用一个值列表或正则表达式代替。
筛选会改动我的值吗?
不会。数字和日期只在比较时解析;符合条件的行按原来的文本写出。