CSV 多条件筛选怎么做?AND/OR、数字排序与安全导出指南
说明 CSV 多条件筛选中的 AND/OR、文本与数字比较、正则表达式、稳定排序、字段裁剪和公式注入风险,帮助你导出可复核的数据。
打开配套工具 →订单、库存、广告和客户表经常需要先筛选再交付:例如只保留美国站、销量不少于 20、状态为 active 的 SKU,再按销售额从高到低排序。表格软件可以完成这件事,但当文件来自不同系统、包含引号内逗号或字段内换行时,直接复制粘贴很容易破坏记录边界。
可以使用 CSV 条件筛选与排序工具 在浏览器本地读取 CSV 或 TSV,组合文本、数字和正则条件,选择排序字段与导出列。原始内容不会为了筛选而上传服务器,正式覆盖源文件前仍应先下载新文件并抽样核对。
AND 和 OR 应该怎样选择
AND 表示一行必须同时满足全部条件。下面这组规则只保留美国站、销量不低于 20 且状态为 active 的记录:
Country 等于 US
AND Units 大于等于 20
AND Status 等于 activeOR 表示满足任意一条即可。例如客服要查看“已暂停或缺货”的商品,可以设置:
Status 等于 paused
OR Stock 等于 0最容易犯的错误,是把本应分组的逻辑全部平铺。假设目标是“美国或德国站中,销量至少 20 的商品”,严格逻辑应为 (US OR DE) AND Units >= 20。首版工具在同一层使用统一 AND 或 OR,无法表达括号嵌套;这时可先用 OR 筛选国家并导出,再对结果使用 AND 筛销量,或者先把国家整理成一个分组字段。不要为了省一步,把逻辑改成三个 OR 条件,那会把所有高销量国家和所有 US、DE 记录混在一起。
文本、数字和正则比较有什么差别
文本“包含”适合备注、标题和标签;“等于”适合状态码、国家代码和固定分类。是否区分大小写、是否去除首尾空格会直接改变结果。US、us 和 US 在原始数据中可能是三个值,只有明确开启对应归一化规则才会合并理解。
数字比较会尝试去掉常见千位分隔符、货币符号、空格和百分号。因此 $1,250.00 可以和 1000 比较,但它不会自动换算币种,也不会把 12% 转成 0.12。同一列混有 N/A、待定 或带单位文本时,这些值无法参加数字比较。先用 CSV 列分析器 检查字段类型和异常值,会比直接筛选更稳妥。
正则表达式适合规则明确的代码。例如 ^US-\d{4}$ 可以匹配 US-1024,但不匹配 EU-1024。正则并不理解业务含义,表达式写错可能得到零结果或过多结果。先用几条应命中和不应命中的样本验证,再处理整表。
为什么 CSV 不能按文本换行硬拆
RFC 4180 描述了常见 CSV 交换格式:记录通常按行组织,字段可用双引号包围;被引号包围的字段可以包含逗号、双引号和换行,字段内双引号写成两个连续双引号。因此下面第二条记录虽然占了两行文本,仍然只是一个数据行:
sku,note
A-001,"first line
second line"这也是为什么简单调用 split("\n") 会把文件弄坏。工具使用带引号状态的解析器,并显示列数不一致、未闭合引号和处理上限。遇到提示时,不要忽略后直接上传下游系统。
排序和导出如何复核
数字排序与文本排序并不相同。文本升序可能把 100 放在 20 前面;数字排序会按实际数值处理。自动模式只在抽样值都能解释为数字时使用数字比较,否则退回文本。空值和非数字值通常排在有效数字之后,降序时顺序会反转,所以导出前要查看表尾。
稳定排序意味着两个值相同时保留它们在筛选结果中的原顺序。这有助于复现结果,但它不是第二排序字段。如果你需要“先按国家,再按销售额”,应在支持多级排序的桌面表格或数据库中处理。
导出前建议完成以下检查:
- 记录原始行数、匹配行数和排除行数,确认三者对得上。
- 抽查临界值,例如刚好等于 20、空值、负数和带货币符号的记录。
- 只导出需要的列时,保留业务主键,避免结果无法追溯到原表。
- 面向 Excel 或其他电子表格交付时,启用公式保护,防止以
=``、+、-、@` 开头的文本被当作公式执行。 - 保留原文件和筛选规则;不要把导出结果直接覆盖唯一副本。
筛选工具能减少重复操作,但不会替你判断字段口径。国家代码、币种、时区、空值和百分比含义仍应由数据负责人确认。