Excel 如何判断单元格包含指定文本?6 种方法详解

在处理 Excel 数据时,我们经常需要判断一个单元格中是否包含某个关键词或短语。这类检查可以用于查找和筛选数据、分类记录,也可以结合条件格式突出显示符合条件的单元格,以便进一步进行分析。

今天的教程将介绍 6 种检查 Excel 单元格是否包含指定文本的方法,涵盖 SEARCH、FIND、COUNTIF、OR、条件格式,以及使用 Free Spire.XLS for Python 进行自动化处理。熟练运用这些方法,可以更加轻松地筛选信息!

使用 SEARCH 和 ISNUMBER 检查单元格是否包含指定文本

在 Excel 中,SEARCH 与 ISNUMBER 的组合是检查单元格是否包含指定文本的常用方法。该公式一次检查一个单元格,因此通常需要将公式放在辅助列中,然后向下填充。

例如,假设商品库存状态在 I 列,就可以在 J3 中输入公式:

=ISNUMBER(SEARCH(“缺货”,I3))

然后向下填充公式,即可检查其他行中的数据。

如果对应单元格中包含“缺货”,公式会返回 TRUE;如果不包含,则返回 FALSE

使用 SEARCH 函数检查单元格是否包含指定文本

为什么使用 SEARCH 和 ISNUMBER?

SEARCH 函数用于查找指定文本在单元格中的位置。如果找到匹配内容,它会返回该文本的起始位置。例如,SEARCH(“缺货”,”商品已缺货”) 会返回 4,因为“缺货”从第 4 个字符开始。

如果没有找到目标文本,SEARCH 会返回 #VALUE! 错误。通过 ISNUMBER 处理 SEARCH 的结果,就可以将搜索结果转换成简单的 TRUE/FALSE 判断:

  • SEARCH 返回数字时,ISNUMBER 返回 TRUE
  • SEARCH 返回错误时,ISNUMBER 返回 FALSE

这种方法适合需要逐行判断数据的场景,例如为数据添加筛选标记、设置条件格式,或者进一步处理匹配到的记录。

使用 FIND 和 ISNUMBER 进行区分大小写的文本检查

有些情况下,文本中的字母大小写非常重要。例如,在处理产品编码、内部标识符或分类代码时,“ABC” 和 “abc” 可能代表不同的值。这时,我们可以使用 FIND 进行区分大小写的文本检查。

FIND 函数与 SEARCH 的用法类似,但它会区分字母大小写。将 FIND 与 ISNUMBER 结合使用,可以检查单元格中是否包含指定文本,并区分其中的大小写。例如,假设商品编码在 B 列,其中可能包含 “PRO100” 和 “Pro100” 两种编码。如果只想找出包含 “PRO100” 的单元格,可以在辅助列中输入公式

=ISNUMBER(FIND(“PRO100”,B3))

如果单元格中包含 “PRO100”,公式会返回 TRUE;如果包含的是 “Pro100” 或其他文本,则返回 FALSE

使用 FIND 函数以区分大小写

由于 FIND 函数会区分字母大小写,因此比较适合用于产品编码、ID、分类代码等需要精确区分大小写的文本检查场景。

SEARCH 与 FIND 的区别

方法 区分大小写 支持通配符 适用场景
ISNUMBER(SEARCH(…)) 常规关键词搜索
ISNUMBER(FIND(…)) 区分大小写的文本搜索

使用 COUNTIF 和通配符检查单元格是否包含指定文本

我们还可以通过 COUNTIF 检查单元格是否包含指定文本,这比前两种方法更加简洁。对于熟悉 Excel 条件统计函数的用户来说,这种方法比较直接,也不需要组合多个函数。

COUNTIF 支持使用 * 等通配符来匹配文本模式,因此非常适合进行简单的关键词检查。在辅助列中输入以下公式:

=COUNTIF(I3,”缺货“)>0

如果单元格中包含“缺货”,公式会返回 TRUE;如果没有找到指定文本,则返回 FALSE

使用 COUNTIF 函数检查单元格是否包含指定文本

COUNTIF 中的星号(*)有什么作用?

在 COUNTIF 中,星号(*)是一个通配符,表示任意数量的字符。在目标文本前后分别添加星号,就可以让 Excel 匹配该文本在单元格中的任意位置。

例如,使用 *销售* 作为匹配条件时,只要单元格中包含“销售”,就可以匹配成功。因此,“销售”“销售额”“销售数据”和“销售情况”等文本都可以被识别。

拓展阅读:如何删除 Excel 中的公式或函数但保留数据

使用 OR 函数检查单元格是否包含多个关键词

有时,我们需要同时检查多个关键词。例如,在分析商品状态时,可能希望找出缺货或滞销的商品,方便上架或下架对应的产品。这时可以使用 OR 函数,将多个文本检查条件组合起来。

在辅助列中输入以下公式:

=OR(ISNUMBER(SEARCH(“缺货”,I3)),ISNUMBER(SEARCH(“滞销”,I3)))

如果对应单元格中包含“缺货”或“滞销”中的任意一个关键词,公式就会返回 TRUE;如果两个关键词都不存在,则返回 FALSE

通过 OR 函数检查单元格是否包含多个关键词

使用条件格式突出显示包含指定文本的单元格

使用辅助列虽然可以清晰地显示文本检查结果,但需要额外占用一列。如果不想改变原有数据结构,只想让匹配到的记录更加醒目,那么可以使用 条件格式

通过条件格式,Excel 可以根据指定规则自动突出显示符合条件的单元格。结合 SEARCH 函数,可以让 Excel 自动标记包含指定文本的单元格,并在数据发生变化时同步更新结果。

按照以下步骤设置条件格式:

  • 步骤 1: 选择需要检查的单元格区域,例如 I3:I15。
  • 步骤 2: 点击 开始 > 条件格式 > 新建规则

打开条件格式新建规则

  • 步骤 3: 选择 使用公式确定要设置格式的单元格
  • 步骤 4: 输入公式 =ISNUMBER(SEARCH(“缺货”,I3))

输入公式和配置突出显示的样式

  • 步骤 5: 点击 格式,选择需要应用的格式,然后点击 确定

条件格式检查关键词的结果预览

使用 Python 自动检查 Excel 单元格是否包含指定文本

使用 Excel 公式处理单个工作簿简单方便,但如果需要定期处理报表或批量处理大量 Excel 文件,手动添加公式和设置格式就会比较繁琐。

对于这类自动化场景,可以使用 Python 将相同的文本检查逻辑应用到 Excel 文件中。借助 Free Spire.XLS for Python,开发者无需依赖 Microsoft Excel,即可通过 Python 创建、编辑和格式化 Excel 工作簿。

什么是 Free Spire.XLS for Python?

Free Spire.XLS for Python 是一个用于处理 Excel 工作簿的 Python 库,支持创建文件、读取和编辑工作表、应用公式、添加条件格式以及转换 Excel 文档等常见操作。借助这些功能,我们可以将文本检查、条件格式等重复性的 Excel 操作自动化,并应用到多个报表中。

Python 实现步骤

下面的示例演示如何加载一个 Excel 工作簿,并根据单元格中是否包含指定文本,自动添加条件格式。

步骤 1:安装库

使用 pip 安装 Free Spire.XLS for Python:

1
pip install Spire.Xls.Free

步骤 2:使用 Python 添加条件格式

下面的代码会加载一个 Excel 文件,并将包含“缺货”的单元格突出显示。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
from spire.xls import *
from spire.xls.common import *

file_path = "示例文档.xlsx"
output_path = "标记.xlsx"

# 加载 Excel 工作簿
workbook = Workbook()
workbook.LoadFromFile(file_path)
sheet = workbook.Worksheets[0]

# 设置需要处理的单元格区域
range_data = sheet.Range["I3:I15"]

# 添加基于公式的条件格式规则
rule = range_data.ConditionalFormats.AddCondition()
rule.FormatType = ConditionalFormatType.Formula
rule.FirstFormula = '=ISNUMBER(SEARCH("缺货", I3))'

# 为匹配的单元格设置背景色
rule.BackColor = Color.get_LightPink()

# 保存文件并释放资源
workbook.SaveToFile(output_path)
workbook.Dispose()

使用 Python 检查单元格中特定文本的结果预览

常见问题与解答

Q1:为什么我的公式会返回 #VALUE! 错误?

如果直接使用 SEARCHFIND,而目标文本不存在于单元格中,Excel 就会返回 #VALUE! 错误。

如果你的目的是判断文本是否存在,可以使用 ISNUMBER 对搜索结果进行处理,将结果转换为 TRUE 或 FALSE。

Q2:检查单元格是否包含指定文本和 ISTEXT() 有什么区别?

ISTEXT 函数用于判断单元格中的内容是否为文本,主要用来区分文本、数字、日期等不同类型的数据。例如,=ISTEXT(A1) 在 A1 包含文本时返回 TRUE,如果包含数字或其他类型的数据,则返回 FALSE。不过,ISTEXT 并不能检查其中是否包含某个特定词语或短语。

如果需要查找指定文本,可以使用 SEARCHFINDCOUNTIF

Q3:如何检查单元格是否包含某段文本?

如果需要检查单元格中是否包含某段文本,可以使用 SEARCH 和 ISNUMBER,也可以使用带通配符的 COUNTIF。比如在辅助列输入:=ISNUMBER(SEARCH(“订单”,A1))

当 A1 中的文本包含“订单”时,该公式会返回 TRUE,而“订单”“订单号”“订单金额”等包含该关键词的文本都可以匹配。另外还可以使用 =COUNTIF(A1,”订单“)>0,这个公式更加简洁。

总结

检查 Excel 单元格是否包含指定文本,是数据整理和处理过程中经常遇到的需求。作为一种灵活实用的方法,ISNUMBER(SEARCH()) 可以应对大多数文本搜索需求;如果需要区分大小写,可以使用 FIND();如果需要同时检查多个关键词,可以结合 OR() 函数;而对于喜欢使用简洁公式的人来说,COUNTIF() 配合通配符也是一种方便的选择。

如果需要重复处理报表或批量处理 Excel 文件,还可以使用 Python 和 Free Spire.XLS for Python 将文本检查和条件格式等操作自动化,从而减少重复性的手动操作。