
WPS表格如何一键合并多列并自动去重?
功能定位:为什么“合并+去重”常被卡住
在数据整理场景里,合并多列并去重是高频刚需:客服把姓名、备用手机号、历史备注拆成三列,财务把多家银行流水横向粘贴后想去掉重复卡号。WPS Spreadsheet 2026 春季版把 TEXTJOIN、UNIQUE、LET 做成原生函数,不再需要 VBA 或 Power Query,就能在单元格里一次完成“横向拼接→纵向去重→回写结果”。
核心函数拆解:TEXTJOIN 与 UNIQUE 如何分工
TEXTJOIN 负责把多列按指定分隔符拼成一条长文本;UNIQUE 再把这条长文本按分隔符拆成数组并剔除重复值;最后外层再套一次 TEXTJOIN 把去重后的数组重新拼回字符串。三步都在内存数组完成,不产生中间列,文件体积几乎零增加。
函数语法速览
TEXTJOIN(分隔符, 忽略空, 区域):分隔符可写"、",忽略空建议 TRUE,区域支持多段。UNIQUE(数组, [按列], [仅出现一次]):默认按行去重,返回垂直数组;如要横向返回,需转置。
示例:把 A2:C100 的姓名、手机、备注合并后去重,只需一行公式即可返回“张三、1380000、老客户”这类干净字符串,无需辅助列。
30 秒操作路径(桌面端)
以 Windows 版 WPS Spreadsheet 为例,假设 A2:C100 是待合并的三列,目标在 D 列输出“合并+去重”后的结果:
- 选中 D2,输入公式:
=TEXTJOIN("、",TRUE,UNIQUE(FILTERXML(""&TEXTJOIN("",TRUE,A2:C100)&"","//b"))) - 按下 Ctrl+Shift+Enter(老版本)或直接回车(2026 版已支持动态数组)。
- 向下填充即可一次性得到整列结果。
提示:Mac 版路径相同,但快捷键用 Command+Return 确认数组公式;若出现“#SPILL!” 表示目标区域被占用,清空下方单元格即可。
移动端最短路径
WPS Android/iOS 13.9.2 开始支持在“函数卡片”里直接搜索 TEXTJOIN,但暂不支持动态数组溢出。折中办法:
- 在“编辑”工具栏→插入函数→输入
TEXTJOIN,按提示选区; - 把结果复制为“值”,再用“数据→删除重复”二次去重;
- 经验性观察:3000 行以内耗时约数十秒,超过 1 万行建议切回桌面端。
示例:在地铁上收到客户紧急表格,可先用手机完成初步去重,回到工位再跑完整公式,避免数据积压。
公式进化:LET 让长公式可读
当列数扩展到 A:F,重复写区域字符串易出错。用 LET 先命名中间变量,公式长度不变但可维护性提升:
=LET(
源区域,A2:F100,
拼接,TEXTJOIN("、",TRUE,源区域),
数组,FILTERXML("<a><b>"&SUBSTITUTE(拼接,"、","</b><b>")&"</b></a>","//b"),
去重后,UNIQUE(数组),
TEXTJOIN("、",TRUE,去重后)
)
命名后的每一步都像积木,后续调试只需在“名称管理器”里改一次变量,即可全局生效。
常见失败分支与回退方案
失败 1:出现 #VALUE!
原因:FILTERXML 要求节点内容不能含特殊字符 <>&。回退:先用 SUBSTITUTE 把特殊符替换成全角,或改用 TEXTSPLIT(2026 版已原生支持)。
失败 2:结果缺项
原因:中间某列存在隐藏空格。回退:在“数据→清洗→删除空格”先统一清理,再跑公式。
性能边界:什么时候不该用公式
经验性观察:当数据行数 >5 万且列数 >10,动态数组每次重算会触发全表 XML 重建,CPU 占用可升至 60% 以上;此时建议改用“数据→Power Query→从表/范围”:
- 把多列“取消透视列”转为一列;
- 删除重复;
- 再“透视列”合并回去。
该方案一次性加载到内存模型,后续刷新不依赖单元格重算,文件体积增加 <5%。
与第三方 BI 工具协同
若公司用金蝶云导出 CSV,可先用 WPS 打开→公式去重→另存为 XLSX→再上传 Power BI。注意:Power BI 对 FILTERXML 生成的数组会识别为“文本”,需在 Power Query 里再拆一次。为减少二次拆列,可直接在 WPS 里把结果复制为值,再上传。
不适用场景清单
| 场景 | 原因 | 替代方案 |
|---|---|---|
| 需保留原列顺序 | UNIQUE 默认按首次出现排序 | Power Query 加索引列 |
| 单元格内包含换行 | TEXTJOIN 会丢失换行符 | 改用 TEXTSPLIT+CHAR(10) |
| 需要区分大小写去重 | UNIQUE 不区分大小写 | 辅助列用 EXACT 判断 |
最佳实践 5 条
- 先在小样 100 行验证公式,确认特殊字符、空格、空行都能被正确处理。
- 把长公式放进“名称管理器”→新建名称,如“合并去重”,以后直接在单元格写 =合并去重,模板可读性提升。
- 如需周期性报表,把源区域转换成“表格”对象(Ctrl+T),公式会自动跟随行列扩展。
- 上传协作空间前,把公式复制为值,避免其他成员打开时触发重算导致卡顿。
- 教育版用户若做学生成绩汇总,含隐私数据,建议本地 32B 模型离线运行,再手动上传结果,避免明文同步到公有云。
故障排查速查表
现象:公式回车无结果,仅显示公式原文
可能原因:单元格被设为“文本格式”
验证:选中单元格→开始→格式→常规→再按 F2→回车
处置:格式改常规后重新确认公式
现象:结果比预期少一项
可能原因:FILTERXML 节点值长度 >255 字符被截断
验证:用 LEN 函数检查最长单元格
处置:改用 TEXTSPLIT 或 Power Query
FAQ(FAQPage Schema)
公式支持的最大行数是多少?
经验性观察:在 16 GB 内存的轻薄本上,动态数组可一次处理约 5 万行×10 列;超过此规模建议转 Power Query。
Mac 版为何找不到 FILTERXML?
FILTERXML 在 Mac 版 13.9.2 已同步上线,若函数列表缺失,请检查更新通道是否切到“正式版”而非“内测”。
能否直接输出横向数组?
在公式最外层加 TRANSPOSE,再横向溢出即可,但需确保右侧区域空白,否则出现 #SPILL!。
总结与下一步行动
WPS表格2026春季版把“合并多列并自动去重”浓缩成一句 TEXTJOIN+UNIQUE 公式,兼顾可读性与性能;5 万行以内可放心动态数组,超规模切 Power Query。先在小样验证特殊字符与空格,再把公式封装成名称,模板即可复用到周报、客服清洗、财务对账等多个场景。经验性观察,下一版本或将把 TEXTSPLIT 与 UNIQUE 直接融合为“一键去重”按钮,届时连 FILTERXML 都可省略。现在就打开 WPS,按本文路径试跑 100 行数据,体验 30 秒完成数据清洗的流畅感。
📺 相关视频教程
原来Excel跨表合并多个表格这么简单😭 #excel #办公技巧 #职场干货 #office办公技巧



