跳到工具
ViewCSV
无需上传文件

筛选 CSV 行

orders.csv· 示例数据15 行 · 8 列
符合条件的行
15 行中有 15 行符合条件。
结果
#order_idcustomercityproductquantityunit_priceorder_datestatus
1001041磊 黄北京Coffee beans 1kg7139.122026-01-27pending
2001042杰 徐北京Coffee beans 1kg2132.102026-02-14shipped
3001043伟 孙上海Notebook A57129.752026-03-22pending
4001044敏 杨上海Chair, ergonomic1122.252026-04-25paid
5001045静 王成都Coffee beans 1kg9·2026-05-15refunded
6001046伟 黄北京Desk lamp8104.232026-06-06refunded
7001047 伟 吴 成都USB-C cable5225.652026-07-08refunded
8001048杰 李南京Coffee beans 1kg774.982026-08-11refunded
9001049磊 王南京Monitor 27"9223.842026-09-22pending
10001050艳 吴南京Desk lamp391.942026-01-02shipped
11001051娜 刘深圳Monitor 27"2216.982026-02-18pending
12001052磊 刘上海Chair, ergonomic8136.302026-03-22pending
13001053静 张北京Desk lamp4238.822026-04-25pending
14001054艳 陈南京USB-C cable495.922026-05-21paid
15001043伟 孙上海Notebook A57129.752026-03-22pending

输入:15 行。结果:15 行 · 8 列。

打开或粘贴 CSV 文件,选择列、条件并输入值,符合条件的行会随输入实时显示在结果中。最多可组合 30 个条件,选择 全部条件 或 任一条件,再决定保留还是删除这些行,最后下载为 CSV。单元格文本不会被改动:00412 仍是 00412。超过 25 MB 的文件以流式方式筛选,直接下载、不显示预览。文件在你的浏览器中处理,不会上传。

如何筛选 CSV 文件中的行

  1. 打开 .csv、.tsv 或 .txt 文件,拖到工具上,或粘贴数据。分隔符以及 UTF-8、UTF-16 的字节顺序标记(BOM)会自动识别;如需其他分隔符或旧编码(如 GBK 文件选 GB18030),请在 导入设置 中选择。
  2. 选择 列(或 任意列)、条件 和 值。大多数条件在填入值之前不会作用于预览。
  3. 点击 添加条件 增加规则,并把 行需满足 设为 全部条件(AND)或 任一条件(OR)。
  4. 在 符合条件的行 下选择 保留 或 删除。结果上方的提示会显示匹配的行数。
  5. 点击 下载 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 读取。

常见问题排查

  • 数字条件一行都没匹配到。 检查值里是否有千分位分隔符(1,250)、货币符号或单位,或者文件使用逗号作小数点、却选了 点号 1.5。可以用 匹配正则表达式 找出这些异常值,或在 CSV 编辑器 中整理。
  • 日期条件漏掉了一些行。 这些单元格的格式与所选的 日期格式 不同,例如单元格是 03/31/2024,而选择的是 ISO 2024-03-31。
  • “完全等于”漏掉了看起来一样的行。 这些单元格里有多余的空格或不可见字符。请改用 包含,或先用 CSV 数据清洗 去除首尾空格。
  • 所有内容都挤在一列里。 分隔符识别错了;请在 导入设置 中选择正确的分隔符,然后重新打开文件。

限制与隐私

最多 30 个条件。25 MB、10 万行、250 列、200 万个单元格以内的文件可实时预览;更大的文件以流式方式筛选,单个下载结果最大 4 GB。

筛选在你的浏览器中进行,CSV 文件不会上传到服务器。

示例

在 全部条件 下用两个条件筛选订单:total 数字大于等于 100,并且 ordered_on 日期晚于 2024-03-01(ISO 格式)。订单 00414 不满足日期条件,00413 不满足金额条件,00415 的金额为空,而空值不会匹配任何数字条件。前导零和带引号的姓名都保持不变。

CSV
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
筛选后的 CSV
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 条件,通常可以用一个值列表或正则表达式代替。

筛选会改动我的值吗?

不会。数字和日期只在比较时解析;符合条件的行按原来的文本写出。

标准与参考资料