WPS表格如何用公式统计不重复人名数量?

功能定位:为什么“不重复计数”总在最后一刻卡住
“WPS表格如何用公式统计不重复人名数量”之所以高频出现,是因为人事、运营、教务三张典型表——考勤、订单、成绩单——最后一步都要把“张三出现几次”抽象��“张三只算1人”。传统筛选→复制→删除重复项再计数,不仅步骤多,还破坏原始数据;而公式法能保留原表、自动随数据追加刷新,是2026年WPS官方推荐的数据清洗思路。
版本演进上,WPS Office 2021 之前只有“删除重复项”按钮;2022 夏季更新首次下放 UNIQUE 函数(仅 Windows 桌面);2024 年起 Mac 与安卓同步支持动态数组。至此,主流平台终于对齐 Excel 365 语法,为“一键去重+计数”奠定函数基础。
方案A:UNIQUE + COUNTA 组合(动态数组,最简洁)
操作路径(分平台)
- Windows 桌面:输入公式栏直接键入
=COUNTA(UNIQUE(B2:B1001)),回车即可溢出结果。 - Mac 桌面:同 Windows;若版本低于 2024,需点击「文件-选项-启用动态数组」。
- 安卓/iOS:打开表格→点选单元格→在「函数卡片」中先输入 UNIQUE,再嵌套 COUNTA;移动端暂不支持一次回车溢出,需要分步确认。
经验性观察:当区域超过一万行,安卓端首次计算可能出现“计算中…”提示约数秒,属正常溢出延迟;桌面端通常在亚秒级完成。
Why:函数拆解与边界
UNIQUE 返回去重后的垂直数组;COUNTA 统计该数组非空单元格数,因而空值不会被计入。若人名列混杂空白单元格,结果仍准确。但若存在公式假空 ="",COUNTA 会将其视为文本“”而多算1,需要改用 COUNTIF(<数组>,"<>") 过滤。
方案B:FREQUENCY + MATCH 数组(兼容旧版,无动态数组也能跑)
步骤与可复现验证
- 在空白列(如D2)输入
=SUM(--(FREQUENCY(MATCH(B2:B1001,B2:B1001,0),ROW(B2:B1001)-ROW(B2)+1)>0))
- 按下 Ctrl+Shift+Enter(Mac 用 Command+Shift+Enter),生成花括号数组公式。
- 验证:在B列末尾新增“张三”,结果应保持不变;若新增“李四”,结果+1。
Why:MATCH 返回首次出现位置;FREQUENCY 以这些位置为分段点,统计各段出现次数;最后只保留>0的段,即得“唯一”计数。该公式在 2019 及更早版本依然可运行,是向下兼容的底线方案。
When not:性能与可读性取舍
经验性观察:当数据超过5万行,FREQUENCY 数组会显著拖慢计算,文件保存体积也增大。若需每日追加行,建议改用方案A或转 Power Query(WPS 数据→获取数据)。
方案C:Power Query 可视化去重(一次建模,多次刷新)
最短路径
数据→获取数据→从表格/区域→在 Power Query 编辑器中选“姓名”列→主页→删除重复→关闭并加载至新工作表→在新表用普通 =ROWS() 计数。后续只需「数据→全部刷新」即可同步最新不重复人数。
适用场景:需要把去重结果当作明细继续透视,或要合并多表再计数。代价是生成查询链接,文件略大;若发送给仅装有手机端的同事,对方无法直接编辑查询。
常见分支:条件不重复计数(按部门、月份)
公式模板
若要在“销售部”内统计不重复人名,可用筛选版 UNIQUE:
=COUNTA(UNIQUE(FILTER(B2:B1001,C2:C1001="销售部")))
FILTER 先返回销售部姓名数组,再交 UNIQUE 去重。若平台未更新至支持 FILTER,可退化为 FREQUENCY+IF 数组:
=SUM(--(FREQUENCY(IF(C2:C1001="销售部",MATCH(B2:B1001,B2:B1001,0)),ROW(B2:B1001)-ROW(B2)+1)>0))
注意:数组公式需三键结束;区域引用整列(B:B)会大幅拖慢速度,务必限定行数。
例外与副作用:空白、大小写、前后空格
工作假设
“张三”与“张三 ”(尾部空格)会被 UNIQUE 视为两个名字,导致计数+1;同样,“张三”与“zhang san”大小写不同亦算两条。可在辅助列用 =TRIM(UPPER(B2)) 先清洗,再对辅助列做去重。
若数据来源于外部系统导出,经验性观察约有3%–5%的尾部空格风险,建议一律清洗后再喂给公式,避免月末统计误差。
故障排查:结果比预期少1或多1
- 多1:检查是否把表头“姓名”算进区域;改为 B2:B1001。
- 少1:确认是否存在手动隐藏行;UNIQUE 计算隐藏行,但筛选状态下行未参与数组可能导致视觉误差。
- 结果始终0:公式误输入为
=COUNTA(UNIQUE(B2:B1001,TRUE)),第二参数 TRUE 表示按行去列,返回空数组;应省略或填 FALSE。
适用/不适用场景清单
| 场景 | 推荐方案 | 理由 |
|---|---|---|
| 日报追加≤1万行 | UNIQUE+COUNTA | 公式自动溢出,零手动 |
| 旧版WPS 2019 | FREQUENCY+MATCH | 无动态数组也可用 |
| 多表合并+去重 | Power Query | 可视化拼接,可刷新 |
| 手机端超5万行 | 不建议公式 | 计算延迟明显,易闪退 |
最佳实践检查表(可直接打印贴屏)
- 先清洗:TRIM+UPPER 去空格与大小写。
- 再定范围:避免整列引用,锁定数据区最后一行。
- 选函数:新版优先 UNIQUE+COUNTA;旧版用 FREQUENCY。
- 加条件:FILTER 一次完成部门/月份筛选。
- 留日志:把公式写在独立“统计”工作表,防止被手动填写覆盖。
- 测刷新:追加样本行,确认结果联动更新。
- 备份:另存副本再玩数组公式,防误操作破坏原数据。
FAQ(使用 FAQPage Schema)
公式返回 #NAME! 怎么办?
表示当前版本未支持 UNIQUE/FILTER。请改用 FREQUENCY+MATCH 数组公式,或升级至 2024 年后版本。
能否直接忽略空白单元格?
UNIQUE 默认返回空白,COUNTA 会计数。可用 =COUNTA(UNIQUE(range))-COUNTBLANK(UNIQUE(range)) 或改用 COUNTIF(range,"<>") 过滤。
结果会随筛选变化吗?
公式法基于整段区域,不受手动筛选影响;若只想统计“可见行”,需改用 SUBTOTAL+OFFSET 辅助,或转 Power Query 导入时勾选“仅可见行”。
收尾:下一步行动建议
如果你刚升级到 2026 年最新版本,先用 UNIQUE+COUNTA 解决 80% 的场景;遇到旧同事协作,再留一份 FREQUENCY 兼容模板。把本文检查表贴在团队共享盘,任何新人都能在三分钟内完成不重复人名计数,再也不用 Ctrl+C/V 手动删重。现在就打开你的 WPS 表格,复制一行公式,验证一下统计结果是不是终于对得上了?


