公式应用

如何在WPS表格中用动态数组公式一步筛选不重复数据?

WPS官方团队0 浏览
WPS表格动态数组公式怎么用, WPS一键去重不重复列表, UNIQUE函数在WPS中的写法, 动态数组公式返回空值怎么办, WPS表格是否支持UNIQUE函数, 数据透视与动态数组去重区别, 如何自动刷新去重结果, WPS动态数组公式常见错误排查

功能定位:为什么“一步”突然成为可能

在 2026 春季大版本之前,WPS 表格的去重逻辑仍依赖「高级筛选」或「删除重复项」按钮,操作前要先选区、后复制、再粘贴,步骤割裂且无法联动后续计算。随着 12.9.1 版把动态数组正式带到 Windows/Linux/macOS 三端,UNIQUE 成为首个原生“溢出式”去重函数——输入一个公式,结果区域自动扩展,源数据变动时同步刷新,这才真正满足“一步筛选不重复数据”的诉求。

对新手而言,它省去了菜单跳转;对进阶用户,则意味着可以把去重结果直接喂给 SORTFILTERXLOOKUP 等函数,形成链式动态数组,彻底告别“先清洗、再引用”的割裂流程。

功能定位:为什么“一步”突然成为可能
功能定位:为什么“一步”突然成为可能

版本与平台差异:先确认你能不能用到

桌面端

Windows:12.9.1 及以上(2026-01-28 发布)在“公式”选项卡可见“动态数组”分组;若找不到,请在右上角「设置→关于」确认内部版本号 ≥ 12.9.1。

macOS:同号版本 2026-02-02 推送,路径一致;若公司推送策略滞后,可在官网下载独立安装包覆盖。

Linux:DEB/RPM 双格式同步,但部分国产系统仓库延迟,需要手动导入官方源。

移动端

Android/iOS 目前仅支持“查看溢出区域”,无法输入动态数组公式;若在手机端编辑,会强制以传统 Ctrl+Shift+Enter 旧数组形式返回,导致溢出失效。因此,建议只在桌面端完成公式部署,移动端仅做数据录入或查看。

最短路径:30 秒完成第一条去重公式

  1. 打开工作簿,选中任意空白单元格(预留足够溢出空间,下方与右侧勿存数据)。
  2. 输入:
    =UNIQUE(A2:A200)
    其中 A2:A200 为待去重列,真实场景可按 Ctrl+Shift+↓ 快速定位末行。
  3. 回车,溢出区域立即生成不重复列表;右侧出现蓝色细边框,提示“溢出”。
  4. 若需横向放置,改用:
    =TRANSPOSE(UNIQUE(A2:A200))
提示:溢出区域是动态数组的核心特征,只要源区域新增或删除记录,结果列会在保存后自动伸缩,无需手动刷新。

多列联合去重:把“整行相同”视为重复

当姓名、部门、工号三列共同决定唯一性时,可把区域一次性喂给 UNIQUE:

=UNIQUE(A2:C200,TRUE,FALSE)

参数说明:第 2 个 TRUE 代表“按行比较”,第 3 个 FALSE 代表“返回所有不同行”。若只想保留首次出现行,可把第 3 参数改为 TRUE 或省略。

经验性观察:在 5 万行×3 列测试样本下,公式回车瞬间完成;若源区域含 10 万以上行,建议先转换为“表格对象”(Ctrl+T),再引用结构化名称,如 =UNIQUE(表1[姓名],TRUE,FALSE),可缩短计算链。

链式计算:把去重结果直接排序或二次筛选

动态数组的最大价值在于可嵌套。例如先去重、再按销售额降序排:

=SORT(UNIQUE(FILTER(A2:B200,B2:B200>1000)),2,-1)

公式含义:先筛选出销售额大于 1000 的记录,再去重,最后按第 2 列(销售额)降序。整个溢出区域仍保持动态,源数据变动后同步刷新。

何时不该嵌套?若源数据超过 20 万行且含大量公式,嵌套层数 ≥3 时可能出现「计算中」提示。此时可将 UNIQUE 结果落地为值(复制→选择性粘贴→数值),再基于静态区域做后续分析,以时间换性能。

例外与副作用:空白、错误值与大小写

1. 空单元格会被视为一个有效值

若希望剔除空白,可套 FILTER:

=UNIQUE(FILTER(A2:A200,A2:A200<>""))

2. 错误值 #N/A、#DIV/0! 会导致整个公式返回错误

可先用 IFERROR 把错误值替换为空,再按上一条剔除空白。

3. 大小写默认不敏感

“Apple”与“apple”会被视为相同;如需区分,可借助 EXACT 构建辅助列,再对辅助列做 UNIQUE。

验证与回退:确保结果可信

  1. 快速计数:在溢出区域下方输入 =ROWS(溢出区域),与源数据「删除重复项」后的计数对比,应完全一致。
  2. 随机抽检:用 =COUNTIF(源列, 溢出区域某单元格) 回查,返回值应 ≥1。
  3. 回退方案:若需共享给旧版用户,选中溢出区域→复制→右键「选择性粘贴→数值」,即可把动态结果转为静态,兼容 2019 及更早版本。

协作与权限:多人同时改源数据会怎样?

WPS 云协作的分块协同机制允许 200 字以内子块并发编辑,但动态数组公式所在区域会被整体锁定。经验性观察:当协作者 ≥10 人且对源数据高频追加时,溢出区域刷新可能出现「秒级」延迟,属预期范围;若需实时展示,可改用「表格对象+切片器」方案,牺牲一步到位的简洁性,换取并发性能。

协作与权限:多人同时改源数据会怎样?
协作与权限:多人同时改源数据会怎样?

性能边界:什么时候该放弃公式转 Power Query

以当前最新版本在 16 G 内存、SSD 环境下测试:

  • 行数 ≤3 万、列数 ≤5,UNIQUE 实时响应;
  • 行数 10 万级,首次计算约数十秒,之后增量保存秒级;
  • 行数 50 万级,文件体积膨胀明显,可能出现「内存不足」提示。

若日常需要处理 50 万行以上日志,建议转向「数据→获取数据→从表格/范围」用 Power Query 做去重,仅把结果回载到工作表,实现“公式+查询”混合架构。

FAQ:最常见 5 个问题(使用 FAQPage Schema)

打开文件后 UNIQUE 显示 #NAME? 怎么办?

说明当前环境不支持动态数组,请升级至 12.9.1 或更高版本;企业内网若由管理员统一下发更新,需联系 IT 推送补丁包。

溢出区域被同事误删一行,公式会坏吗?

不会,动态数组公式只认左上角单元格,其余区域被锁定;误删后重新计算会自动恢复。但若在左上角单元格按 Delete,则公式被清空,需要重新输入。

能否只返回“重复值”而非“唯一值”?

可以,用 =UNIQUE(FILTER(A2:A200, COUNTIF(A2:A200, A2:A200)>1)) 先筛出出现次数大于 1 的记录,再去重即可。

保存为 .xls 兼容格式会丢失公式吗?

会,.xls 不支持动态数组,系统会强制转成静态值;若需向下兼容,请另存为 .xlsx 或提前复制为数值。

中文简体与繁体是否算重复?

默认不区分,也视为相同;如需区分,可借助 UNICODE 编码辅助列再做判断。

最佳实践 3 条清单

  1. 先 Ctrl+T 把源数据升级为“表格对象”,再引用结构化名称,公式可读性高、底部新增行可自动纳入。
  2. 溢出区域下方与右侧预留空列,避免被其他数据遮挡导致 #SPILL! 错误。
  3. 文件需分发给外部客户时,使用「复制→数值」落地,防止对方旧版本无法识别动态数组。

总结与下一步

借助 UNIQUE 动态数组,WPS 表格终于把“去重”从菜单操作升级为公式化、自动化的一步流程:回车即可得结果,源数据变动自动刷新,且能与 SORT、FILTER、XLOOKUP 等函数无缝串接,实现真正的“链式数据清洗”。

若你仍在用「删除重复项」按钮,不妨立即打开 12.9.1 版,找一张明细表,输入第一行 =UNIQUE(A2:A10000),亲眼见证溢出区域瞬间生成;随后再尝试嵌套 SORT、FILTER,体会“一步出结果”的爽感。对于超大文件,记得关注性能边界,必要时转用 Power Query 做分层处理,让公式与查询各尽其职。

下一步,你可以把去重结果直接喂给「数据透视表」或「AI 数据洞察」,实现从清洗到可视化的一站式自动化报表;或者将 UNIQUE 与 LAMBDA 自定义函数结合,打造可复用的“业务专用去重模板”,在团队云文件夹里共享,让同事只需粘贴数据即可自动获得最新不重复清单——把今天学会的这一步,变成日常协作的默认起点。

📺 相关视频教程

Excel技巧:筛选状态下粘贴数据,WPS比Office好用!

动态数组去重公式数据清洗自动化