COUNT函数示例:单元格包含特定词语


概括


要检查单元格是否包含特定单词,可以使用基于TEXTSPLIT 函数的公式。在所示工作表中,单元格 D5 中的公式为:


=COUNT(XMATCH("green",TEXTSPLIT(B5,{".",", "," "})))>0

公式向下复制时,如果 B 列中的文本包含单词“green”,则返回 TRUE;否则返回 FALSE。有关完整说明以及此公式的变体(用于测试多个单词、至少两个单词、所有给定单词以及特定单词及其例外情况),请参见下文。


解释

在这个例子中,目标是测试单元格中的文本,如果包含一个或多个特定单词则返回 TRUE,否则返回 FALSE。请注意,这里强调的是单词,而不是子字符串。例如,如果我们要测试单词“green”,而文本包含单词“evergreen”但不包含单词“green”,则公式应返回 FALSE。传统上,这在 Excel 中一直是个难题,因为没有简单的方法将文本解析成单词。但是,随着 TEXTSPLIT 函数的引入,现在可以轻松地将文本字符串直接拆分成单词数组。一旦我们将单词放入数组中,就可以对其进行测试了。

注意:TEXTSPLIT 函数仅在最新版本的 Excel 中可用。在旧版本的 Excel 中,您可以使用类似的公式来检查子字符串。

目录

  • 使用 TEXTSPLIT 将文本拆分成单词
  • 测试单词
  • 单元格包含特定词语
  • 单元格包含多个单词中的一个
  • 单元格包含至少 2 个单词
  • 单元格包含所有单词
  • 单元格包含一些单词,但不包含其他单词。

使用 TEXTSPLIT 将文本拆分成单词

TEXTSPLIT 函数用于使用给定的分隔符将文本拆分成数组例如,在下面的公式中,我们使用 TEXTSPLIT 函数和空格(“ "”)作为分隔符,将文本“The sea is blue”拆分成 4 个单词:


=TEXTSPLIT("The sea is blue"," ") // returns {"The","sea","is","blue"}

一旦我们将单词放入数组中,就可以对它们进行各种操作。我们可以统计单词数量、比较单词、检查特定单词等等。TEXTSPLIT 函数非常适合这项任务,但需要注意一个复杂情况:单词之间并不总是仅用空格分隔。例如,如果我们对文本“The flag is red, green, and blue”使用上述公式会发生什么情况呢?


=TEXTSPLIT("Red, green, and blue"," ")

在这种情况下,TEXTSPLIT 返回的数组如下所示:


{"Red,","green,","and","blue"}

请注意,“red”和“blue”后面的逗号是输出的一部分。这不好。我们不希望标点符号包含在单词中,因为这会在后续分析单词时造成问题。解决方法是扩展提供给 TEXTSPLIT 的分隔符列表,以便在需要时包含标点符号。在本例中,我们只需添加一个逗号 (""),如下所示:


=TEXTSPLIT("Red,green, and blue",{","," "})

注意:我们使用数组常量{",",""}来提供逗号和空格 ,这是一种同时提供多个硬编码值的便捷方法。

现在我们要求 TEXTSPLIT 函数分割以逗号 (",") 和空格 (" ") 分隔的单词。这部分运行正常,但请注意,结果数组中的第三个元素多了一个空字符串:


{"Red","green","","and","blue"}

这是因为 TEXTSPLIT 现在会在两个分隔符处分割文本。这也不好,不过根据具体情况,可能无关紧要。无论如何,我们可以通过将ignore_empty设置为 1 来轻松删除空值:


=TEXTSPLIT("Red,green, and blue",{","," "},,1)

注意,我们需要跳过并省略row_delimiter参数。修改后的公式现在可以给出我们想要的结果,即一个包含四个单词且不包含任何标点符号或空值的数组:


{"Red","green","and","blue"}

注意:您需要调整提供给 TEXTSPLIT 的分隔符,以适应您正在处理的文本。

现在我们有了开始测试单元格中特定词语所需的核心流程。

测试单词

现在我们有了一个单词数组,下一步是将这些单词与我们感兴趣的单词进行比对。在所示的工作表中,我们要查找的是单词“green”。在 Excel 中有多种方法可以实现这一点。例如,我们可以统计 TEXTSPLIT 函数返回的数组中单词“green”出现的次数。然而,更具扩展性的方法是使用XMATCH 函数来检查 TEXTSPLIT 的结果。

XMATCH 是MATCH 函数的升级版,它返回查找值在数据数组中的数值位置。XMATCH 的一个优点是它会自动执行精确匹配,这正是我们在此示例中所需要的。要使用 XMATCH 在 TEXTSPLIT 的输出中查找“green”,我们使用如下公式:


XMATCH("green",TEXTSPLIT("Red, green, and blue",{".",", "," "}))

请注意,我们按照上述说明使用了 TEXTSPLIT,但我们已将 TEXTSPLIT 函数嵌入到 XMATCH 函数中作为查找数组,查找值为“green”。


XMATCH("green",TEXTSPLIT(B5,{".",","," "},,1))

TEXTSPLIT 运行后,我们得到以下结果:


=XMATCH("green",{"Red","green","and","blue"}) // returns 2

因为“green”是TEXTSPLIT返回数组中的第二个值,所以XMATCH函数返回2。如果我们检查一个不存在的值,例如单词“pink”,会发生什么情况?在这种情况下,XMATCH会返回#N/A错误:


=XMATCH("pink",{"Red","green","and","blue"}) // returns #N/A

总结一下:当 XMATCH 函数找到一个值时,它会返回一个数值位置。当 XMATCH 函数找不到值时,它会返回 #N/A 错误。至此,我们已经有了一个检查单元格中是否存在特定单词的基本机制。剩下的唯一任务就是返回 TRUE 或 FALSE。最简单的方法是使用 ISNUMBER 函数,如下所示:


=ISNUMBER(XMATCH("green",{"Red","green","and","blue"})) // returns TRUE
=ISNUMBER(XMATCH("pink",{"Red","green","and","blue"})) // returns FALSE

这种方法虽然可行,但更通用的方法(能更好地扩展以处理其他相关问题)是使用 COUNT 函数,如下所示:


=COUNT(XMATCH("green",{"Red","green","and","blue"})) // returns 1
=COUNT(XMATCH("pink",{"Red","green","and","blue"})) // returns 0

COUNT 函数只统计数值。因此,当 XMATCH 返回一个数字时,COUNT 将返回一个正数。当 XMATCH 返回错误时,COUNT 将返回零。要获得 TRUE 或 FALSE 的结果,我们可以检查计数是否大于零。


=COUNT(XMATCH("green",{"Red","green","and","blue"}))>0 // TRUE
=COUNT(XMATCH("pink",{"Red","green","and","blue"}))>0 // FALSE

现在我们已经具备了在单元格中测试特定词语所需的所有条件。

单元格包含特定词语

回到上面工作表中的示例,目标是检测给定的单词并返回 TRUE 或 FALSE。这可以通过单元格 D5 中的如下公式实现:


=COUNT(XMATCH("green",TEXTSPLIT(B5,{".",","," "},,1)))>0

从内到外,TEXTSPLIT 函数被配置为使用数组常量中提供的三个分隔符来拆分单元格 B5 中的文本,如下所示:


TEXTSPLIT(B5,{".",", "," "},,1)
  • 文本- 单元格 B5
  • col_delimiter - {".",","," "}
  • 行分隔符- 已省略
  • ignore_empty - 1(等同于 TRUE)

请注意,我们提供了三种不同的分隔符:句点(“.”)、逗号(“”)和空格(“”)。我们还通过提供 1 将ignore_empty设置为 TRUE。这是一个重要的细节。我们希望 TEXTSPLIT 忽略空值,因为分隔符有时会以某种方式分割文本,从而导致出现空字符串(“”)。启用忽略空值功能将移除 TEXTSPLIT 输出中出现的任何空值。

在单元格 D5 中,TEXTSPLIT 的结果是一个包含七个单词的数组,如下所示:


{"The","brown","dog","lay","on","green","grass"}

其次,由于“green”是第六个单词,XMATCH 函数返回 6,COUNT 返回 1,最终结果为 TRUE:


=COUNT(XMATCH("green",{"The","brown","dog","lay","on","green","grass"}))>0
=COUNT(2)>0
=1>0
=TRUE

注意:XMATCH 不区分大小写,因此测试“Green”或“green”将返回相同的结果。

单元格包含多个单词中的一个

另一个常见的挑战是检查单元格中是否包含多个单词中的一个,如下面的工作表所示。这里的目标是检查 B 列中的文本值是否包含 F5:F7 区域(名为“words”)中出现的三个单词中的任何一个。

测试多个特定词语中的一个

我们应该如何调整公式以处理多个查找值?实际上,我们可以使用上面相同的公式,只需将文本“green”替换为命名区域词(F5:F7):


=COUNT(XMATCH(words,TEXTSPLIT(B5,{".",","," "},,1)))>0

区别在于,命名区域 words包含三个单词,Excel 将其表示为如下所示的数组:


{"red";"blue";"green"}

注意:命名范围是可选的,但它提供了一些便利:它会自动像绝对引用一样工作,并且使公式更易读。如果您愿意,也可以使用常规的绝对引用($F$5:$F$7)。

因为我们现在给 XMATCH 提供了三个不同的查找值,所以它将返回 3 个结果,如下所示:


{#N/A;#N/A;6}

第一个 #N/A 错误表示未找到“red”。第二个 #N/A 错误表示未找到“blue”。最后一个结果 6 表示单词“green”出现在 TEXTSPLIT 返回的数组中的第六个单词。COUNT函数只计算数字,因此返回 1,最终结果为 TRUE。您可以增加或减少 XMATCH 函数提供的单词数量,公式仍能正常工作。

注意:无论找到多少个单词,此公式都将返回 TRUE。

单元格包含至少 2 个单词

现在基本公式已经可以运行,我们可以轻松调整逻辑以适应更具体的用例。例如,我们可以要求单元格中至少包含两个提供的单词,如下图所示:

测试至少包含多个单词中的两个

在此工作表中,单元格 D5 中的公式现在如下所示:


=COUNT(XMATCH(words,TEXTSPLIT(B5,{".",","," "},,1)))>=2

请注意,此公式几乎与上面的公式完全相同。唯一的区别在于,我们使用 >=2 来检查 COUNT 函数的结果,以确保单元格 B5 中至少有两个匹配的单词。如前所述,单元格 B5 的结果为 FALSE,因为文本中只包含单词“red”。但是,单元格 D7 的结果为 TRUE,因为单元格 B7 中同时出现了“red”和“blue”,所以 COUNT 函数返回 2。单元格 B7 中的公式计算如下:


=COUNT(XMATCH(words,TEXTSPLIT(B7,{".",","," "},,1)))>=2
=COUNT({4;7;#N/A})>=2
=2>=2
=TRUE

单元格包含所有单词

如何调整公式,使其要求所有给定的单词都出现在单元格中?只需稍作调整即可实现,如下面的工作表所示:

测试所有单词

将单元格 D5 中的公式向下复制后,现在看起来像这样:


=COUNT(XMATCH(words,TEXTSPLIT(B5,{".",","," "},,1)))=COUNTA(words)

在这个公式中,我们将 COUNT 函数返回的“命中”次数与COUNTA 函数返回的单词数进行比较。当两者相等时,表示我们在文本中找到了所有指定的单词,公式返回 TRUE。当两者不相等时,表示至少有一个单词未找到,公式返回 FALSE。我们使用 COUNTA 函数来统计单词数,因为 COUNTA 函数可以同时统计数字和文本值。

单元格包含一些单词,但不包含其他单词。

最后一个例子,我们来看看如何检测单元格中是否包含某些特定词语,同时排除其他词语。这就是我们想要的效果:

  1. 如果一个单元格包含特定的目标词,但不包含其他目标词,则结果应为真。
  2. 如果一个单元格包含特定的目标词,并且也包含其他特定的词,则结果应为 FALSE。

这使得问题更具挑战性,但我们仍然可以使用上述方法。为了使公式更高效、更易读,我们将添加LET 函数。LET 函数只需一次即可将源文本解析成单词,并将结果存储在一个变量中以便重复使用。

在下面的工作表中,我们正在测试 B 列中的文本是否包含“红色”、“蓝色”和“绿色”这三个词,同时排除包含“粉色”或“棕色”这三个词的单元格:

测试特定词语,同时排除其他词语。

请注意,我们还在工作表中添加了一个命名区域:F5:F7 区域仍然命名为“words”,F12:F13 区域现在命名为“xwords”。这样做的目的是让xwords包含我们想要排除的单词。单元格 D5 中的公式如下:


=LET(
  source,TEXTSPLIT(B5,{".",","," "},,1),
  AND(
    COUNT(XMATCH(words,source))>0,
    COUNT(XMATCH(xwords,source))=0)
)

在公式的第一行,我们使用如上所述的 TEXTSPLIT 函数,从单元格 B5 中的文本创建一个单词数组,并将该数组赋值给名为“source”的变量:


source,TEXTSPLIT(B5,{".",","," "},,1),

接下来,我们使用 AND 函数来检查两个表达式的结果。第一个表达式检查单元格中是否至少包含一个我们感兴趣的单词:


COUNT(XMATCH(words,source))>0

第二个表达式检查单元格中是否没有与目标无关的单词:


COUNT(XMATCH(xwords,source))=0)

只有当上述两个表达式都返回 TRUE 时,AND 函数才会返回 TRUE。如果其中任何一个表达式为 FALSE,则结果也为 FALSE。这样就达到了我们的目标:公式仅在找到words中至少一个单词且未找到xwords中任何单词时才返回 TRUE。


互动

查看数
5

为您推荐的类似文章

本文围绕快速上手Excel展开,提出以练代学的核心方法,指出通过一两周的实操练习可掌握主要功能,遇问题可借助搜索引擎解决。同时规划了五阶段学习路径:第一阶段熟悉基础环境,明确工作簿、单元格等概念,掌握数据填充与常用快捷键;第二阶段学习数据整理,包括行列调整、查找替换、排序筛选与分列功能;第三阶段聚焦函数应用,理解公式规则,掌握SUM、VLOOKUP等核心函数及引用类型;第四阶段学习可视化与分析,涵盖一键生成图表、条件格式与数据透视表;第五阶段汇总了文件操作、编辑输入等多类高效快捷键。

微软2026年为Microsoft 365带来的Excel函数更新,堪称办公效率革命,将自动化、动态化门槛从编程降至写公式。文章针对传统Excel办公的诸多痛点,介绍了10个新函数的实用场景:XLOOKUP可替代传统查找公式,解决反向查找、错误值等问题;XMATCH能逆向搜索定位最后一条记录;FILTER可生成自动刷新的动态报表;UNIQUE+SORT一键完成数据去重排序;SORTBY定义永恒排序规则;TEXTSPLIT无需分列向导即可拆解文本;SEQUENCE告别手动填充序列;RANDARRAY可快速生成模拟数据。这些新函数将大幅提升办公效率,让传统Excel用户面临淘汰。

本文聚焦职场必备的WPS表格函数公式,介绍了WPS表格因轻量免费、与Excel高度兼容,成为国内办公常用工具的优势。针对新手仅会基础求和公式的痛点,系统梳理了多类实用函数:统计类含SUM、COUNT等基础与高级统计函数;逻辑类有IF、AND等条件判断函数;文本类含LEFT、CONCATENATE等处理工具;日期类含TODAY、DATEDIF等计算函数;还有VLOOKUP等查找引用类函数,并搭配实例演示。同时解答了WPS与Excel函数差异、学习方法等常见问题,助力不同水平职场人提升办公效率。

本文针对多数Excel/WPS用户仅用10%功能、常因数据处理加班的痛点,结合2025年Excel和WPS最新版本,解析能解决95%工作数据问题的十佳函数公式,助力效率提升300%。文中依次讲解了基础高频的SUM/IF/ROUND三人组的进阶用法与新增IFS函数、可终结VLOOKUP的XLOOKUP查询函数优势及低版本替代方案、SUMIFS/COUNTIFS的多条件精准统计技巧、可实现动态数据处理的FILTER函数应用、能避免手动排序弊端的SORT/SORTBY自动排序系统,全为可直接上手的干货,帮用户告别加班。

针对职场人常因Excel数据处理熬夜、被重复整理工作折磨的痛点,本文结合2026年最新办公场景,整理升级了涵盖六大核心类别的40个Excel函数公式大全。其中详细拆解了求和计算、查找匹配、逻辑判断等类别的多个实用函数,每个公式均搭配具体使用场景、操作技巧及原理解析,如SUMIF单条件求和统计销售员业绩、INDEX+MATCH组合实现反向查找等,帮助用户建立系统的函数思维,而非单纯记忆语法,可高效解决职场中90%的Excel数据难题,彻底改变表格处理方式。

为您推荐的相关资源

多品类市场信息调研框架 | undefined

企业销售利润核算表 | undefined

存货计价审计工作底稿模板 | undefined

客户销售额月榜:排名与数据一览 | undefined

12城空调月度销售数据统计报表 | undefined