数据处理2026/10/20作者:WPS官方团队

WPS表格如何按关键字筛选并统计重复项数量?

WPS表格按关键字筛选并统计重复项数量,本文对比函数、筛选与透视表三种做法,说明平台差异、边界条件与验证步骤。

WPS表格按关键字筛选, 统计重复项数量, WPS筛选重复数据, 按关键字统计重复项, WPS表格重复项统计方法, 如何筛选并统计重复项, WPS表格数据筛选技巧, 重复项数量统计教程, WPS表格关键字筛选, 如何统计重复项

一、关键词筛选与重复项统计,本质上是两个动作

在 WPS 表格里搜索「按关键字筛选并统计重复项数量」的人,往往把两件事揉成了一个需求:一是把包含某个关键字的数据挑出来,二是在挑出来的这批数据里数清楚某一项出现了多少次。前者是筛选,后者是计数。两件事的先后顺序不同,落地的工具就完全不同——先筛后数适合用函数,先数后筛适合用数据透视表,而只想快速看一眼有没有重复,用重复项高亮就够了。

之所以要先把这两步拆开,是因为最常见的翻车方式恰恰发生在第一步选错工具之后。举个很典型的例子:有同事收到一份供应商名录,想统计「华东」这个关键字出现了多少次,于是先做了条件格式把重复值标红,再拿肉眼一行一行数——几十行还行,一旦到几百行以上,人工计数几乎必然出错。另一类翻车则发生在筛选状态下直接写 COUNTIF:公式给的是整表结果,不是筛选后的可见数据,数字看着有、其实完全对不上,而表面上又看不出任何报错。

下面按「功能拆解 → 场景映射 → 操作路径 → 例外取舍 → 排查 → 最佳实践」的顺序展开。文中的路径以桌面端为基准,涉及移动端与网页版时会单独标注;所有公式都会带上可复现的验证步骤,避免出现「照着写但结果不对」的情况。

一、关键词筛选与重复项统计,本质上是两个动作
一、关键词筛选与重复项统计,本质上是两个动作

二、功能定位与版本演进脉络:三类入口的边界

把跟本文主题相关的能力按入口归类,大致是三类:筛选类(自动筛选、高级筛选)、重复项类(数据选项卡下的重复项功能组,用于高亮、删除、拒绝录入重复值)、计算类(COUNTIF/COUNTIFS、SUBTOTAL、SUMPRODUCT,以及数据透视表)。三类入口在 WPS 表格里长期并存,但它们的定位从早期到现在有过明显的重心迁移,理解这条脉络,能帮你判断某个做法是「一贯如此」还是「特定版本的便利」。

早期版本里,用来做条件统计的主力是 COUNTIF 这一支函数,重复项相关能力更多围绕「高亮」和「删除」展开,目的偏向数据清洗而不是分析。随着表格处理的数据量变大、协作场景变多,计算类的重心逐步往两个方向走:一是多条件聚合(COUNTIFS 以及数据透视表的普及),二是「只统计可见单元格」的意识被更多人接受,SUBTOTAL 从一个小众函数变成了筛选场景的标配。较新版本中开始提供动态数组类函数(例如 UNIQUE、FILTER),在部分版本上可以直接返回去重后的结果区域——但是否可用取决于你手上的具体版本,不要默认它一定存在。

提示:判断自己版本是否支持某个函数,最快的方法是新建一个空白单元格,输入函数名加左括号(例如 =UNIQUE(),观察是否出现函数提示。有提示说明存在;没提示或提示「名称无效」,说明该版本未提供,请改用本文的通用做法。

三类入口的边界可以这样理解:筛选类负责「让哪些行显示出来」,重复项类负责「标记或清理重复」,计算类负责「给出数字」。任何试图让其中一类越界完成另一类工作的做法,都会在数据规模变大或者条件变复杂时暴露出问题——不是公式写错了,而是工具与需求本身不匹配。这也是本文后面所有取舍建议的共同出发点。

三、三条技术路线总览与选择依据

在动手之前,先花一分钟判断自己属于哪一类需求。判断标准不复杂,主要看三个问题:你需不需要先把数据筛出来?如果你只是想知道「包含某个关键字的记录有多少条」,不需要筛选,直接上条件计数函数。你的关键字是模糊匹配还是精确匹配?模糊匹配(包含即可)用通配符,精确匹配(必须完全相等)不加通配符。你要统计的是行数还是某个数值列的合计?行数用计数类函数,数值合计用求和类函数。三个问题答完,路线基本就确定了。

三条路线的分工大致如下:

  • 路线一(条件计数):不筛选,直接用 COUNTIF/COUNTIFS 统计包含关键字的记录数。适合「只想知道数量」的场景,公式最短、刷新最快。
  • 路线二(筛选 + 可见计数):先用自动筛选把数据缩到目标范围,再用 SUBTOTAL 统计可见行。适合「边看边数」的场景,数字会随筛选条件实时变化。
  • 路线三(透视表):把关键字列拖进行区域,一次性得到所有取值的分布。适合「不知道有哪些关键字、想先看一眼全貌」的场景。

注意这三条路线不是互斥的,而是回答的问题不同:一个回答「有多少」,一个回答「筛完还剩多少」,一个回答「各有几种、各占多少」。同一张表上完全可以三条并用,只要别指望其中一条去回答另一条的问题。

还有一条补充路线是「重复项高亮 + 筛选按颜色」。它不属于严格意义的统计,但在只需要肉眼确认少量重复时反而比函数快,本文第八节会单独讨论它的适用边界。

四、路线一:用条件计数函数统计关键字出现次数

4.1 最短操作路径

假设 A 列是「供应商名称」,你想统计包含「华东」两个字的记录有多少条。找一个空白单元格,输入下面的公式并回车:

=COUNTIF(A:A,"*华东*")

平台差异在这一步几乎不存在:Windows 桌面端、Mac 桌面端、网页版的操作一致,都是选中单元格直接输入公式。移动端 WPS Office 也支持输入公式,但小屏上编辑长公式的体验明显更差,建议在桌面端完成后同步查看。

4.2 通配符与精确匹配的边界

这里的关键点在两个星号上。星号在表格函数里是通配符,代表「任意多个字符」,所以 "*华东*" 的含义是「只要文本里任何位置出现『华东』就算命中」。如果你要的是完全相等,比如供应商名称必须恰好是「华东」,那就要去掉星号写 "华东"。这个区别在实际工作里很容易踩坑:一家叫「华东区代理」的公司,在模糊匹配下会被算进「华东」,在精确匹配下不会。

两个可复现的验证方法:其一,把关键字换成只在一个单元格里出现过的词,公式结果应该是 1;其二,把通配符版本和精确版本并排放,两者差值就是「包含但不等于」的记录数。如果两个数字相同,说明你数据里没有「部分包含」的情况,两种写法等价。

还有一个容易被忽略的边界:通配符只对文本生效。如果 A 列里混着数字和日期,"*华东*" 这类写法不会命中它们,这通常是你想要的;但如果你确实想匹配数字文本,需要先把该列转成文本格式,否则公式会静默漏掉,而结果里看不出任何异常。

4.3 多关键字并存的写法

当条件不止一个时,比如「A 列包含华东」且「B 列状态为已完成」,就换成 COUNTIFS:

=COUNTIFS(A:A,"*华东*",B:B,"已完成")

COUNTIFS 的多个条件之间是「并且」关系——两个条件必须同时成立才计入。注意这里有一个容易出错的地方:COUNTIFS 的各项区域必须行数一致,写 A:A 配 B1:B100 会因为范围不对齐而得到错误结果。稳妥的做法是统一写成整列引用,或者统一写成绝对区域。

什么时候不该用这条路线?当你的区域里有大量空行、公式又写成整列引用时,条件计数函数会遍历整列,在大数据量工作簿里可能带来明显的刷新延迟(经验性观察,具体感受因设备而异)。另外,这条路线回答不了「分布」问题——它只给一个数字,不告诉你有几种关键字、各占多少。要分布,请转到路线三。

五、路线二:筛选之后用 SUBTOTAL 统计可见行

5.1 为什么普通计数函数在筛选后会算错

这是新手最容易困惑的一点:筛完之后,屏幕上看只剩 30 行,用 COUNTIF 或者 COUNTA 一算,结果还是 500。原因很直接——筛选只是把不符合条件的行隐藏起来,数据本身没有删除,普通统计函数仍然会把隐藏的行算进去。

解决办法是改用 SUBTOTAL 函数。它的特点是只统计当前可见的行,筛选条件一变,结果立刻跟着变。这也是筛选场景下最稳妥的计数方式,尤其适合做成表头附近的固定统计位。

5.2 最短路径与公式写法

第一步,选中数据区域任意单元格,依次进入「数据」选项卡 →「筛选」(Windows 桌面端快捷键为 Ctrl+Shift+L;Mac 桌面端快捷键可能不同,请以实际菜单为准)。列头上会出现下拉箭头。第二步,点开目标列的箭头,在搜索框里输入关键字,确认后数据即被筛出。第三步,找一个空白单元格输入:

=SUBTOTAL(103,A2:A1000)

第一个参数 103 是「计数(忽略手动隐藏行)+ 忽略筛选隐藏行」的组合。常见的 1 到 11 也能忽略筛选隐藏行,但会把手动隐藏的行也算进去;103 到 111 则同时忽略手动隐藏,通常更符合直觉。数据区域的起止行请按你的实际表格替换。

验证方法:先记下未筛选时的数值,再随便筛一个条件,观察 SUBTOTAL 的结果是否变小、且与屏幕上可见的行数一致。如果没变,多半是参数写成了不含「1」前缀的版本,或者你的数据区域引用没覆盖到实际数据。

边界在哪?SUBTOTAL 只看「可见/隐藏」,不看「内容是否包含关键字」。如果你的筛选条件很复杂(多列组合、数值区间),SUBTOTAL 给出的仍然是可见行总数,不是某一类的数量。要按关键字再细分,请接着看下一节。

六、路线三:筛选状态下按关键字精确统计

6.1 组合公式的思路

「既筛选、又按关键字计数」这个需求,单一函数做不到,需要把两件事拼起来:一部分判断行是否可见(用 SUBTOTAL 配合 OFFSET),另一部分判断内容是否包含关键字(用 ISNUMBER 配合 FIND),最后用 SUMPRODUCT 把两者相乘求和。典型写法如下:

=SUMPRODUCT(SUBTOTAL(103,OFFSET($A$2,ROW($A$2:$A$200)-ROW($A$2),0))*(ISNUMBER(FIND("华东",$A$2:$A$200))))

拆开看逻辑会更清楚:OFFSET 的作用是把区域打散成一个个单独单元格的引用,SUBTOTAL(103, ...) 对每个引用判断可见性,可见返回 1、隐藏返回 0;ISNUMBER(FIND("华东", ...)) 判断该单元格是否包含关键字,包含返回 TRUE、否则 FALSE;两个数组相乘后,只有「可见且包含关键字」的位置等于 1,SUMPRODUCT 把它们加起来就是答案。理解了这个结构,改条件时就知道该动哪一段。

6.2 验证方法与性能边界

验证分三步:先不加筛选,公式结果应等于该列包含关键字的全部记录数;再筛一个明显不相关的条件(比如把某个从没出现过的值筛出来),结果应为 0;最后筛一个可预期的条件,人工数一下可见且包含关键字的行数,和公式对照。三步都对,说明公式没问题。

警告:这是一条数组型公式,对区域大小敏感。如果区域写成整列引用(如 A:A),计算量会大幅上升,在大表里可能出现明显卡顿,经验性观察是「区域越大、响应越慢」。建议把范围限制在真实数据区,例如 A2:A2000。另外,在部分版本上该公式需要以数组方式录入(桌面端按 Ctrl+Shift+Enter),如果直接回车结果异常,可以尝试数组录入或改用数据透视表方案。

还有一个隐含前提:FIND 是区分大小写的,SEARCH 则不区分。对中文关键字两者没差别,但如果你的关键字含英文字母,需要按实际需求选择,否则会出现「明明有却统计不到」的情况。这也是排查时最容易被忽略的一环——公式本身没错,是匹配规则和预期不一致。

七、路线四:数据透视表——适合先看分布再下结论

如果你根本不知道表里有哪些关键字,或者想知道每个关键字各出现多少次,透视表比写公式高效得多。操作上,选中数据区域 → 进入「插入」选项卡 → 选择「数据透视表」→ 确认区域后放置到新工作表或现有位置,在字段列表里把目标列拖进「行」区域,再拖一次到「值」区域。默认的汇总方式通常是计数,如果不是,可以在值字段设置里改成「计数」。

透视表最大的价值是一次性给出全部分布,不需要事先知道关键字有哪些。它天然把相同的取值归并成一组,重复项统计实际上是它的副产品——前面提到的「重复项数量」,在透视表里就是每行的计数值。

什么时候不该用?三种情况要慎重。一是原始数据频繁变动、你又需要公式实时联动,透视表需要手动刷新,容易看到过期数字;二是你只想要一个数字,搭一张透视表属于杀鸡用牛刀;三是需要模糊匹配关键字的场景,透视表按完整取值分组,「华东区代理」和「华东」会被当成两个不同的组,不会自动合并。这种情况下,可以先用辅助列把关键字提取出来再透视,或者回到路线一。

八、重复项菜单:什么时候它比公式更快

WPS 表格在「数据」选项卡下提供了重复项相关的功能组,常见的有高亮重复项、删除重复项、拒绝录入重复项等。它们不是统计工具,但在特定场景下比函数更直接,因为省去了「先想公式、再验公式」的环节。

典型适用场景是「数据量不大、只需要确认有没有重复」:选中目标列 →「数据」→ 高亮重复项 → 设置高亮颜色 → 确认,重复值会被填色。之后你可以配合「按颜色筛选」把重复项单独调出来看。整个过程不需要写任何公式,对不熟悉函数的同事更友好。

但要明确它的边界:高亮只告诉你「这里是重复的」,不告诉你「重复了几次」。想知道次数,要么继续用条件计数函数,要么用透视表。另外,删除重复项属于破坏性操作,建议先在副本上做,确认结果符合预期再回到原表。这一点在多人协作的表格里尤其重要——一旦删除,回收路径并不总是顺畅。

九、平台差异:桌面、Mac、移动端、网页版

9.1 Windows 桌面端

功能最完整的一档。筛选入口在「数据」选项卡,快捷键 Ctrl+Shift+L 可快速开关。数据透视表、重复项功能组、数组公式均在此版本上表现最稳定。本文所有公式示例均以该端为基准。

9.1 Windows 桌面端
9.1 Windows 桌面端

9.2 Mac 桌面端

菜单结构大体一致,但快捷键映射与 Windows 常有差别,部分功能的入口位置也可能微调。建议直接通过菜单栏进入,不要依赖记忆中的快捷键。涉及数组公式录入时,部分键位组合与 Windows 不同,请以实际菜单提示为准。

9.3 移动端与网页版

移动端 WPS Office 可以查看和编辑表格,也能进行基础筛选,但入口通常收在编辑界面的工具栏里,位置随版本变化,请以实际界面为准。长公式的编辑体验在小屏上明显受限,经验性观察是「能看能改,但不适合从零搭建复杂公式」。网页版(协作场景下常见)同样支持筛选与部分函数,实时协作是它的优势,但处理大表时的响应与桌面端有差距,复杂统计建议在桌面端完成后再同步。

十、场景映射:四类常见需求对应哪种做法

把前面几条路线放进真实工作流,会更容易判断该选哪个。下面用四类需求做映射,每类都给出「选它」和「不选它」的理由。

需求描述推荐做法不推荐的做法
统计「华东」出现的总条数COUNTIF 加通配符建透视表,过度设计
边筛边看,数字要跟着变SUBTOTAL(103,…)COUNTA,会算进隐藏行
在筛选结果里按关键字细分SUMPRODUCT 组合公式嵌套多层 IF,难维护
先看有哪些值、各占多少数据透视表逐个关键字写公式,遗漏概率高

示例:某电商运营整理一份约八百条的商品标题清单,想找出包含「加厚」的标题有多少条,并看看这些标题里哪些重复出现了。合理做法是先用 COUNTIF 拿到「包含加厚的总条数」这个基数,再用透视表把标题列拖进行区域看分布,两步下来结论就完整了。反过来,如果一上来就逐个标题写公式,既慢又容易漏。这个例子的规模是刻意偏小的——换成上万条,路线选择的差异会更明显。

十一、故障排查:现象、原因、验证与处置

公式类问题大多有迹可循。下面按「碰到什么现象 → 可能是什么原因 → 怎么验证 → 怎么处置」的方式列出高频情况,你可以当成一张对照表来查。

现象一:筛选后统计数字不变。多半是用了 COUNTA 或普通计数函数,它们不区分可见与隐藏。验证方法是把筛选条件换成一个完全空集的条件,如果数字仍然不变,就能确认。处置是改用 SUBTOTAL 并把首参数设为 103。

现象二:关键字明明存在,统计结果却是 0。常见原因有三个——关键字前后有空格、关键字里含英文且大小写不匹配、公式里的引号用了中文引号。验证方法是先用 FIND 在一个确定包含关键字的单元格上单独测试,看返回的是数字还是错误值。处置依次是清洗空格、改用 SEARCH、把引号换成英文半角。

现象三:SUMPRODUCT 组合公式返回错误值。可能是区域行数不一致(比如 OFFSET 的起点和 ROW 的范围对不上),也可能是版本对数组公式的录入方式有要求。验证方法是把区域临时缩小到十几行,手工核对每个判定结果。处置是统一区域引用,并按需尝试数组方式录入。

现象四:透视表数字和公式对不上。先检查透视表的汇总方式是「计数」还是「求和」,再检查原始区域是否包含了表头或空白行。验证方法是选中透视表单元格查看值字段设置。处置是改为计数并重新选择数据区域。

十二、适用与不适用场景清单

为了避免「学会一个公式就到处套」,这里给出一份准入与排除清单。它的作用不是限制你,而是让你在选错工具之前先停一下。

适合用函数统计的场景:数据规模在几千行以内;关键字集合固定、不常变;需要统计结果随筛选或数据变化自动更新;表格需要长期复用,希望逻辑写在单元格里而不是每次手工操作。

适合用透视表的场景:需要先看全貌再决定关注哪些关键字;数据定期从外部导入、每次刷新即可;需要同时看多个维度的分布;团队里有人不熟悉公式,希望用更直观的方式呈现。

不适合用本文任何一条路线的场景:数据是持续流入的流水记录、需要实时去重(这属于系统层面的能力,不该由表格承担);合规上要求逐条可追溯、不能有任何聚合或归并;单表行数远超常规表格的舒适区间,此时应当考虑数据库或专业数据处理工具,而不是继续加公式。

还有一类需要额外提醒:涉及个人信息的表格,在统计后如果把结果另存或分享出去,可能会超出原有的使用范围。本文只讨论技术做法,具体合规边界请以你所在组织的规定为准。

十三、最佳实践检查表

把前面的结论压缩成一份可以照着走的检查表,按顺序过一遍,基本能避开绝大多数坑。

  1. 先分清需求:是要一个数字,还是要一张分布表。前者走函数,后者走透视表。
  2. 再分清匹配方式:模糊匹配加星号,精确匹配不加。拿不准就先两种都写,对比差值。
  3. 需要「随筛选变化」的计数,一律用 SUBTOTAL 并把首参数设为 103。
  4. 需要「筛选 + 关键字」双重条件时,用 SUMPRODUCT 组合写法,并把区域限制在真实数据范围内。
  5. 公式写完必须验三步:无筛选时的全量值、空集条件时的零值、人工抽查的一行对照。
  6. 涉及删除重复项等破坏性操作,先在副本上做。
  7. 数据会定期更新的表,在表头附近留一个「统计区」,把常用公式集中放置,避免散落各处。
  8. 公式超过两层嵌套就考虑加辅助列,可读性往往比公式长度更重要。

这份清单不需要每条都执行,但它覆盖了最常见的失误来源。如果你的表格要交给别人维护,第 7 条和第 8 条的价值会立刻体现出来——别人接手时看得懂,比公式写得短更重要。

十四、常见问题(FAQ)

筛选之后用 COUNTA 统计,为什么数字没有变化?

因为筛选只是把不符合条件的行隐藏,数据仍然在表里,COUNTA 这类普通统计函数会把隐藏行一并算入。改用 SUBTOTAL 并把第一个参数设为 103 即可只统计可见行。验证方法:换一个必然为空的条件筛选,若数字仍不变,即可确认是函数选择问题。

统计包含某个关键字的数据,公式应该怎么写?

用条件计数函数配合通配符,例如 =COUNTIF(A:A,"*关键字*"),星号代表任意多个字符,因此只要文本中任何位置出现该关键字都会被计入。如果需要完全相等,去掉两端的星号。多条件则改用 COUNTIFS,并确保各条件区域的行数一致。

高亮重复项能直接告诉我重复了几次吗?

不能。高亮重复项只做标记,解决的是「哪些位置重复」的问题,不给出次数。想知道每条记录重复了几次,需要用条件计数函数,或者把该列拖进数据透视表的行区域、再拖一次到值区域,看每组的计数值。

数据透视表为什么不能把「华东区代理」和「华东」合并统计?

因为透视表按单元格的完整取值分组,两个字符串只要不完全相同就会被视为两个不同的组,这与 COUNTIF 的通配符逻辑不一样。若确实需要按关键字归并,可以先加一列辅助列,用函数把关键字提取出来,再基于辅助列建透视表。

移动端能做这些统计吗?

移动端可以查看结果、进行基础筛选,也能编辑公式,但入口位置随版本变化,长公式的录入体验受限,搭建复杂公式或做透视表配置通常还是在桌面端更稳妥。建议在桌面端完成统计逻辑,再从移动端查看与流转。

十五、结论与下一步建议

回到最初的问题:WPS 表格按关键字筛选并统计重复项数量,从来不是单一功能能覆盖的需求。它至少包含三层判断——是模糊匹配还是精确匹配,是静态统计还是随筛选联动,是要一个数字还是要一张分布。把这三层判断做对,剩下的公式选择几乎是自动的:静态计数用条件计数函数,联动计数用 SUBTOTAL,双重条件用组合公式,看分布用透视表,只做标记用重复项高亮。

下一步建议按这个顺序动手:先在自己的数据表里挑一个关键字,用 COUNTIF 拿到基数;再开启筛选,用 SUBTOTAL 对比一下两个数字差多少,理解「可见行」的含义;最后把这列拖进透视表,看看完整分布。三个动作做完,你就同时掌握了三条路线,也知道了它们在什么情况下会给出不一样的答案。至于版本层面的差异,最可靠的判断方式始终是当场验证——函数有没有提示、菜单在不在原位,比任何二手描述都准确。

从趋势上看,表格工具的重心正逐步从「记住某个函数怎么写」转向「按数据类型选择合适的入口」:函数在变多,入口在调整,但「先分清需求、再挑工具」这个判断顺序不会变(经验性观察)。对使用者的实际影响是,与其背下某一条路径,不如把判断逻辑留在自己的表里——例如在统计区旁边写一行注释,说明这个数字的口径是「整表」还是「可见行」。这样一来,即使版本更新、界面位移,接手的人也能凭口径判断结果是否仍然可信。

相关文章

更多文章