WPS Office logoWPS Office
菜单
数据管理

WPS表格如何按关键词合并多张工作表并去重?

WPS官方团队
WPS表格 多工作表 合并 去重, 如何 按关键词 汇总 多张表, WPS 重复数据 删除 步骤, VSTACK 函数 去重 实践, 数据透视表 多表 合并 去重, WPS 是否支持 Power Query, 大数据量 合并 性能 优化, 关键词 匹配 汇总 方法

功能定位:为什么“关键词合并+去重”成了刚需

在12.9版之前,想把“华东区订单”“华南区订单”等十几张结构相同的工作表按“客户编号”关键词合并并去重,只能写VLOOKUP+高级筛选,步骤长、易掉链子。2026年3月发布的“多维表”把ET时代的“数据模型”彻底替换:单表1 000万行不卡顿,并原生支持Python脚本列,于是“合并+去重”第一次有了官方级一键方案,且不会破坏源表。

功能定位:为什么“关键词合并+去重”成了刚需
功能定位:为什么“关键词合并+去重”成了刚需

版本差异速览:传统ET vs 多维表

维度传统ET(≤12.8)多维表(12.9+)
最大行数1 048 5761 000万行经验性观测无掉帧
合并方式Power Query插件,步骤树Python列,脚本即结果
回退兼容可直接另存为.xls需“导出兼容模式”,Python列会丢失

最短可达路径:桌面端3步完成

以下步骤以Windows 12.9.0为例,macOS仅菜单名称略有差异,路径相同。

  1. 新建“多维表”:启动WPS表格→左上角“新建”→“多维表”模板。
  2. 导入多工作表:菜单栏“数据”→“获取数据”→“从文件”→“从工作簿”,在侧边栏勾选需要合并的工作表(支持Ctrl多选),点“加载到多维表模型”。
  3. 添加Python去重列:右侧“字段列表”→“新建Python列”,输入脚本(见下方示例),保存后系统即按关键词自动合并并去重。

Python列最小可运行脚本示例

import pandas as pd
df = pd.DataFrame({'客户编号': [客户编号], '金额': [金额]})  # 引用同名列自动注入
dedup = df.drop_duplicates(subset='客户编号', keep='last')
return dedup['金额'].sum()

保存后,多维表会在后台执行Python,结果直接回写到新列,无需手动刷新。

移动端能否操作?

截至12.9.1,Android与iOS App仅支持“查看与筛选”多维表,无法新增Python列;若临时需要合并,可在移动端使用“灵犀Copilot”语音指令:“把A、B、C三张表按客户编号合并并去重”,Copilot会生成一张临时透视结果,但此结果不会同步回云端多维表,仅作即时查看,适合在外快速答复领导。

例外与副作用:哪些情况会翻车

  • 列名不一致:Python脚本默认区分大小写,若一张表写“客户编号”,另一张写“客户ID”,脚本会抛出KeyError。解决:在“获取数据”步骤统一重命名。
  • 空值策略:drop_duplicates的keep参数设为'last',若业务要求“保留最早”需手动改first。
  • 根证书报错:公司内网电脑常因SSL拦截导致Python列执行失败,按官方FAQ在脚本头部加两行ssl上下文即可。

警告

导出为“兼容模式(.et90)”后,Python列会被强制转换为静态值,后续源表更新不再同步。若协作方仍在用12.8,需要保留双向更新,请改用“数据透视+切片器”传统方案。

验证与回退:如何确认结果正确

  1. 计数核对:在多维表底部状态栏查看“行数”,与源表行数总和对比,去重后应明显减少。
  2. 抽检哈希:新建普通列,公式=SHA1(客户编号&金额),对去重前后分别透视计数,哈希值种类应等于去重后行数。
  3. 回退:若结果异常,点击右侧“版本历史”,多维表默认每15 min自动生成快照,可一键还原到“导入前”状态。
验证与回退:如何确认结果正确
验证与回退:如何确认结果正确

性能实测:100万行多久算正常?

经验性观察:在16 GB内存+NVMe固态的环境,对100万行执行“客户编号去重”大约需要30–40秒;若超过500万行,建议先对源表做“数据类型优化”,把文本型编号改为整数型,可缩短约一半时间。

与第三方BI协同的最小权限原则

公司若用第三方BI(如Power BI、FineReport)继续分析,可把多维表发布为“只读ODBC连接”,账号仅授予SELECT权限;Python列计算结果会物化成视图,BI端无需再次去重,减少重复计算流量。

适用/不适用场景清单

场景是否推荐理由
日报表≤5 000行,需多人同时编辑不推荐多维表强制进入“模型”模式,无法直接单元格编辑,反而降低效率
电商大促,每小时增量>10万行推荐Python列可设置“自动刷新”,增量追加后秒级去重,无需人工干预
财务台账,需审计痕迹推荐+快照版本历史满足审计对“不可篡改”要求,比传统共享工作簿更稳

最佳实践速查表

提示

  1. 统一列名大小写,避免Python KeyError。
  2. 把高频关键词设为“整数型”而非文本,去重速度可提升约一倍。
  3. 任何导出给旧版用户的文件,先“另存为兼容模式”再发送,防止打不开。
  4. 每日使用“版本历史”清理中间快照,可节省约10%云空间。
  5. 企业内网SSL拦截场景,提前在脚本头部加ssl上下文,避免执行失败。

FAQ:你可能还关心的问题

1. 多维表打开后提示“Python运行时缺失”怎么办?

安装目录自带Python 3.11,若被杀毒软件隔离,可在“设置-插件-Python路径”手动指向系统已装Python.exe,重启WPS即可。

2. 能否在Python列里调用公司内网MySQL?

可以,但需管理员在“多维表管理后台”把数据库地址加入白名单;脚本端用pymysql,返回DataFrame即可。注意只读账号最小权限。

3. 去重后还想保留“最早记录”而非“最后记录”?

把脚本中drop_duplicates的keep参数改为'first',并在导入时给每行加“导入时间”列,即可按业务定义控制保留策略。

4. 多维表能否离线运行?

首次打开需联网验证授权,缓存成功后可在离线状态计算已加载数据;新增外部数据源时必须联网。

5. 12.8版打不开多维表会闪退?

官方已确认向下兼容仅支持查看,任何编辑动作都可能触发闪退;协作前请强制另存为“兼容模式”再分发。

收尾:下一步行动建议

如果你每天需要把分散在各区的工作表合并、还要去重, multidimensional table + Python列是目前WPS官方给出的最简洁且可扩展的方案:脚本即文档,版本历史即审计。先从小于10万行的场景跑通脚本,确认列名与空值策略后,再逐步扩展到全量数据;同时记得给旧版同事提前导出“兼容模式”,避免版本差导致无法打开。下一步,不妨尝试把Python列的计算结果直接发布成ODBC视图,让BI同事连过来就能用,彻底告别“合并-粘贴-再合并”的手动循环。