打开或粘贴 CSV 文件,选择 排序依据 列、比较方式 和 顺序,排序结果会立即显示。可以添加 次要依据 列来区分值相同的行,最多共 20 列。值相同的行保持原有顺序,空值或无法识别的值排在最后(或最前),单元格文本不会被改动。排序在你的浏览器中完成,文件不会上传。
如何对 CSV 文件排序
- 打开
.csv、.tsv或.txt文件,拖到工具上,或粘贴数据。分隔符以及 UTF-8、UTF-16 的字节顺序标记(BOM)会自动识别;如需其他分隔符或旧编码(如 GBK 文件选 GB18030),请在 导入设置 中选择。 - 第一个排序列默认是文件的第一列,按 文本(file2 排在 file10 前) 升序排列。可按需修改 排序依据、比较方式 和 顺序。
- 点击 再添加一列 增加一个 次要依据;它只决定在上面各列都相同的行之间的顺序。用箭头按钮调整优先级。
- 选择 空值或不符合格式的值 的位置:排在最后 或 排在最前。
- 点击 下载 CSV、复制 或 在编辑器中打开。
如果只想对部分行排序,请先用 筛选 CSV 行 把这些行留下来。要核对两份已排序的导出文件,请使用 对比 CSV 文件。
选择比较方式
| 文本(file2 排在 file10 前) | 按语言习惯的自然顺序:连续的数字按数值比较,所以 file2 排在 file10 前面;带重音的字母排在其基本字母旁边(ä 靠近 a)。排序规则由页面语言决定。 |
|---|---|
| 文本(按字符编码顺序) | 严格按字符编码排序,适合编码和编号,结果可预测;但 file10 会排在 file2 前面,所有数字都排在字母前面,ä 排在 z 后面。 |
| 数字 | 适用于 -3、0.25、007 或 1e3 这样的普通十进制数字,并按精确值比较,因此 9007199254740993 排在 9007199254740992 之后。千分位分隔符、货币符号和单位都不算数字。把 小数点 设为 逗号 1,5 时,2,25 按二又四分之一读取。 |
| 日期 | 按所选的 日期格式 识别日期:ISO 2024-03-31(可带时间、小数秒以及 Z 或 +02:00 时区偏移,偏移会换算为 UTC)、日在前 31/03/2024、月在前 03/31/2024 或 2024/03/31。 |
除非开启 区分大小写,否则大小写视为相同。在自然顺序下,只有大小写不同的值保持原有顺序;开启该选项后,英文中小写排在大写前面。自然顺序始终区分重音(resume 和 résumé 不同)。
空值、无效值和并列
- 排序是稳定的:所有排序列都相同的行,无论升序还是降序,都保持它们在文件中的原有顺序。
- 空单元格或只含空格的单元格视为空值。无论升序还是降序,空值都按 空值或不符合格式的值 的设置排列。
- 选择 数字 或 日期 时,无法按所选格式读取的值(
n/a、1,250,或在 ISO 格式下的31/03/2024)会和空值放在一起,提示中会说明有多少个。 - 只改变行的顺序。前导零、引号、空格和值内换行都按原样写回;表头行始终在第一行。
- 空白表头会写成
Column 3,重复表头写成name (2)。比表头短的行会用空值补齐。 - 下载的文件保留原有的分隔符、换行符和末尾换行;编码为 UTF-8(带或不带 BOM)、UTF-16 LE 或 Windows-1252 时也保持原编码,其他编码(包括 GB18030)会保存为 UTF-8。
常见问题排查
- 10 排在了 9 前面。 该列是按 文本(按字符编码顺序) 比较的。请改选 数字;如果是
v10这类混合标签,请选 文本(file2 排在 file10 前)。 - 有些数字和空值排在了一起。 它们不是普通数字:检查是否有
1,250、€40、12 kg这样的写法,或文件用逗号作小数点、却选了 点号 1.5。结果上方的提示会给出数量。 - 日期顺序不对。 日在前的日期按文本比较,或被 月在前 03/31/2024 读取时,都会被误读。请选择文件实际使用的格式。
- 带重音的名字跑到了最后。 请改用 文本(file2 排在 file10 前),不要用字符编码顺序。
限制与隐私
最多 20 个排序列。文件最大 25 MB、10 万行、250 列和 200 万个单元格;更大的文件请先用 拆分 CSV 拆开,或先筛选掉不需要的行。
排序在你的浏览器中进行,CSV 文件不会上传到服务器。
示例
工单先按 team 排序(文本(file2 排在 file10 前),升序),再按 priority 排序(数字,降序)。因为这一列按数字比较,所以 10 排在 2 前面;空白优先级排在所属团队的最后;Support 和 support 算作同一个团队;T-10 和 T-11 在两个排序列上都相同,因此保持原有顺序。
ticket,team,priority,opened T-9,Billing,2,2024-05-03 T-10,Support,1,2024-05-01 T-2,Billing,,2024-05-02 T-11,support,1,2024-04-30 T-1,Billing,10,2024-05-04
ticket,team,priority,opened T-1,Billing,10,2024-05-04 T-9,Billing,2,2024-05-03 T-2,Billing,,2024-05-02 T-10,Support,1,2024-05-01 T-11,support,1,2024-04-30
常见问题
怎样先按一列排序,再按另一列排序?
先在 排序依据 中选择第一列,然后点击 再添加一列,在 次要依据 中选择第二列。第二列只对第一列相同的行起作用。
为什么排序不会改动我的数字或日期?
值只在比较时被解析。输出的文本与输入完全相同,所以 007 和 2024-03-05T09:00+02:00 都会原样写出。
能按自定义顺序排序吗,比如“低、中、高”?
不能直接实现;工具只按文本、数字或日期排序。可以在 CSV 编辑器 中新增一列,填入 1、2、3 这样的序号,再按 数字 对这一列排序。