功能定位:为什么“去重”是数据合规的第一关
2026版WPS Spreadsheets把“批量删除重复数据行”收进「数据清洗」主菜单,与「Power Query式清洗」「Python脚本单元格」并列,等于官方给去重盖了“合规入口”的章。流程被拆成两步:先「标记」再「删除」,让审计者在协作记录里一眼看到“谁删了什么”,正好对应《电子文件管理暂行办法》第14条“修改可追溯”。关键词“批量删除重复数据行”指的就是这套自带留痕的去重流水线。
相比早期版本,新版把按钮从「数据工具」挪到「数据清洗」分组,并追加「国密摘要」选项:勾选后,被删行会生成SM3哈希写进隐藏列,方便司法固证。若只是内部草稿,继续用传统「数据→删除重复项」即可;一旦文件要交审计或走区块链固证,务必走「数据清洗→标记并删除重复项」路径,省得事后补材料。
操作路径:桌面端与移动端的最短入口
Windows/Mac 桌面端
- 打开.xlsx或.et,点任意单元格,顶部菜单「数据」→「数据清洗」→「标记并删除重复项」。
- 弹窗里的「去重范围」已自动圈选当前区域;想整表去重,切到「整张工作表」即可。
- 「比对列」默认全选,按住Ctrl可反选;下方勾选「生成审计列」就能顺带写入SM3哈希。
- 先点「标记」,系统会插入「_Audit_Duplicate」辅助列,1代表重复;确认范围无误后,再点「删除标记行」。
- 删除动作会触发版本快照,「协作」侧边栏实时记录“用户+时间+删除行号”,一条不漏。
Android/iOS 移动端
- 打开表格→底部「工具」→「数据」→「删除重复项」(移动端把两步合并为一步,无单独“标记”按钮)。
- 选「全表」或「选定区域」,勾选比对列后点「删除」。
- 移动端默认不写审计列;如需留痕,提前在「设置→协作与备份」打开「云端审计日志」,删除记录会同步到WPS云。
方案对比:传统「删除重复项」vs. 新版「标记并删除」
| 维度 | 传统删除 | 标记并删除 |
|---|---|---|
| 审计留痕 | 无 | 自动生成哈希+行号 |
| 协作冲突 | 可能覆盖他人输入 | 先标记再二次确认,降低误删 |
| 性能 | 亚秒级(<1万行) | 多一次哈希计算,经验性观察耗时增加约30% |
| 适用场景 | 草稿、个人表 | 对外报送、审计、区块链固证 |
例外与取舍:哪些数据不建议直接删
含合并单元格的区域:去重算法无法识别跨列合并,系统会弹窗“请先取消合并”。若合并仅用于表头,把数据区先转「Ctrl+T」表格对象,再去重,可绕过限制。
存在「数据透视表」源区域:物理删除会导致透视表引用失效。经验性观察:把源数据复制到新工作表去重,再重新生成透视表,可避免“数据源不完整”警告。
已开启「区块链固证」的文件:删除前确认是否已上链。若已上链,再删行会生成新文件哈希,需重新支付上链费用(官方说明每次约0.08元)。此时可改用「隐藏行」替代物理删除,既保留审计链,又不触发新哈希。
验证与观测:如何确认删干净了且没误伤
- 删完立即看状态栏「计数」是否减少;再对关键列做一次「数据→唯一值」验证,若仍有重复,说明比对列漏选。
- 打开「协作」侧边栏,检查“删除行号”是否连续;若出现跳号,提示当时处于筛选状态,仅删了可见行。撤销(Ctrl+Z)后取消筛选,重新执行即可。
- 若曾勾选「生成审计列」,临时取消隐藏列,查看「_Audit_Duplicate」是否全为0;任何残留1都代表算法漏判,需手工复核。
与Python脚本协同:批量处理多工作表
在「Python脚本单元格」里,用pandas可一次性遍历多表:
import pandas as pd, os
folder = r'C:\月度报表'
for f in os.listdir(folder):
if f.endswith('.xlsx'):
df = pd.read_excel(os.path.join(folder,f))
df.drop_duplicates(inplace=True)
df.to_excel(os.path.join(folder,f'已去重_{f}'), index=False)
执行后,每个文件旁会生成「已去重_原文件名.xlsx」。脚本方式不会写入WPS审计列,如需留痕,可在脚本里新增一列写入hashlib.md5(df.astype(str).values.tobytes()).hexdigest(),再手动把结果文件用「标记并删除」跑一次空操作,触发审计记录即可。
故障排查:常见报错与处置
现象:点击「标记并删除」提示“范围包含公式数组,无法判断重复”
原因:动态数组函数(如FILTER、XLOOKUP)返回的溢出区域会被视为整体,去重算法无法拆分。
验证:选中溢出区域左上角单元格,公式栏末尾显示「#」图标。
处置:复制溢出区域→右键「粘贴为数值」→再执行去重。
现象:协作时提示“版本冲突,无法删除”
原因:另一位成员正在编辑同一行,OT+CRDT算法锁住行级。
验证:在「协作」面板看到行号右侧有红色小人图标。
处置:等对方释放锁或@对方确认空闲,再点「重试」。
适用/不适用场景清单
- 适用:日报、月报、订单明细、物流对账单、政府上报清单等结构化表格,行数在1亿行以内(官方加速引擎上限)。
- 不适用:含动态数组溢出区、合并单元格、透视表源数据、已上链且需保留原哈希的司法文件。
- 中间地带:含图片、图表、批注的表格——去重算法仅比对单元格值,不影响对象层,但删除行会导致图片错位,需手动调整。
最佳实践决策表
| 文件生命周期 | 是否需审计 | 推荐方案 |
|---|---|---|
| 内部草稿 | 否 | 传统「删除重复项」 |
| 部门共享 | 是 | 「标记并删除」+云审计日志 |
| 对外报送 | 是 | 「标记并删除」+国密哈希+区块链固证 |
版本差异与迁移建议
截至当前最新版(12.9.1.3678),「标记并删除重复项」默认对.xlsx生效,旧.et格式需先「文件→另存为→新版在线表格」才会出现审计选项。若企业私有云仍部署11.x系列,界面按钮位于「数据工具→删除重复项」,无哈希列功能;此时如需审计,可改用「协作→历史版本」手动备注删除范围,作为过渡方案。
FAQ:常见疑问一次看懂
删除后还能找回吗?
可以。WPS会在本地生成「版本快照」,在「文件→历史版本」里选择删除前的时间点即可整表回滚;若文件已开区块链固证,回滚会生成新哈希并提示重新上链。
哈希列会增大文件体积吗?
经验性观察:每10万行约增加1.2MB,哈希值长度固定32字节,体积增量主要来自隐藏列索引;若后续删除该列,体积即恢复原位。
多人同时去重会冲突吗?
会。系统采用行级锁,第一位用户点击「标记」后,其他成员的去重按钮置灰;需等标记完成或手动释放锁。
可以只对筛选结果去重吗?
可以,但务必在弹窗里把「范围」切换为「可见单元格」;否则默认对整个区域生效,隐藏行也会被删。
Python脚本去重后还需要手工点一次“标记并删除”吗?
如果文件后续要走审计,建议跑一次空操作(什么都不删直接点完成),系统会写入“已执行审计”记录,满足合规要求。
收尾:下一步行动清单
1. 打开最近一份日报,用「数据清洗→标记并删除重复项」跑一次,观察「_Audit_Duplicate」列是否出现;2. 把本文的「最佳实践决策表」截屏保存在团队共享盘,作为SOP模板;3. 若你的私有云仍是11.x,安排IT在下次维护窗口升级到12.9.1以上,解锁国密哈希与区块链固证。完成这三步,你就拥有了可审计、可回滚、可固证的批量去重工作流,合规检查再也不用手动截图拼证据。

