Excel 自定义实现Contains函数,在Excel中,我们经常需要检查一个单元格是否包含一个特定的值。但除了非空单元格检查外,没有任何默认的内置函数用于检查单元格是否包含一个值或数字、特定文本或任何其他值。
本文介绍了三种方法实现Contains功能,检查单元格中是否包含指定文本。
我们先简单介绍一下SEARCH
和ISNUMBER
函数。
SEARCH函数
Excel中内置的SEARCH
函数返回指定字符串中子串的位置。
语法:
=SEARCH(find_text, within_text, [start_num])
这个函数返回 find_text
在 within_text
中的第一个字符的位置。
与FIND
函数不同,SEARCH
函数不允许使用通配符,而且不区分大小写。
参数说明:
- find_text(必选项)—该参数表示要查找的文本。
- within_text(必选项)—该参数表示被搜索的文本。
- start_num(可选项)—该参数表示要搜索的文本中的起始位置,默认值为1。
返回值:
这个函数返回子字符串的位置。
ISNumber函数
Excel中内置的ISNUMBER
函数,用于判断一个单元格中是否包含指定的数字,将返回一个布尔值。
如果不包含相同的数字,则返回FALSE。
你可以使用 ISNUMBER
来检查一个单元格是否包含一个数字,或者用于判断另一个函数的输出是否是一个数字。
语法:
=ISNUMBER(value)
参数说明:
Value (必选项)—该参数表示要检查的指定值。
返回值:
如果单元格包含指定的数字,这个函数将返回一个布尔值TRUE。
如果不包含相同的数字,则返回FALSE。
在Excel中实现CONTAINS函数
下面给出了一个数据,在Substring列中我们给出了子字符串来,Contains列检查它们是否包含在主字符串中。
通过SEARCH和ISNUMBER实现CONTAINS函数
实现步骤:
-
首先使用
SEARCH
函数查看文本是否包含子字符串公式:
=SEARCH (B2, A2)
说明:上面的函数将返回子字符串
Sea
在主字符串中的位置,以39作为输出。 -
将
ISNUMBER
函数合并到上述公式中公式:
ISNUMBER(SEARCH(B2,A2))
说明:由于单元格A2包含字符串
Sea
,因此SEARCH函数将返回一个数字。又因为单元格C2包含数字,所以最终返回TRUE,表明主字符串中包含子字符串。 -
使用矩形框最右侧的
+
选项将公式拖拽到单元格下方。将得到以下输出
还可以检查单元格是否包含特定的文本,而不显示子字符串,需要确保将子字符串括在双引号中。
通过FIND和和ISNUMBER实现大小写敏感的CONTAINS函数
如果希望公式区分大小写,可以用FIND
函数替换SEARCH
函数。
Find函数
Excel内置的 FIND函数返回指定子字符串在给定主字符串中的位置(以数字格式)。
如果找到文本,则返回数值位置;如果没有找到文本,函数返回一个#VALUE
错误。
语法:
=FIND (find_text, within_text, [start_num])
参数:
- find_text (必选项)—该参数表示要查找的文本。
- within_text (必选项)—该参数表示被搜索的文本。
- start_num (可选项)—该参数表示要搜索的文本中的起始位置。默认值为1。
返回值:
这个函数返回一个数字值,表示子字符串在主字符串中的位置。
使用FIND函数实现CONTAINS函数
实现步骤:
-
使用FIND 函数查看文本是否包含子字符串。
公式为:
=FIND (B2, A2)
说明:上述函数将返回一个错误,因为Sea中的
S
在子字符串中是大写的,而在主字符串中是小写的。 -
将ISNUMBER函数合并到上述公式中。
公式:
=ISNUMBER(FIND(B2,A2))
说明:FIND是大小写敏感的;因此子字符串Sea在主字符串匹配成功,并将返回
#VALUE
错误。因为单元格C2不包含任何数字,它将返回FALSE。 -
使用矩形框最右侧的
+
选项将公式拖拽到单元格下方。您将得到以下输出。 -
您还可以使用IF函数定制上述公式:如果excel匹配的子字符串与主字符串,它将返回
Found
;否则返回Not Found
。公式:
=IF(ISNUMBER(FIND(B2,A2)),"Found", "Not Found")
通过IF和COUNTIF实现CONTAINS函数
先简单介绍一下COUNTIF函数。
COUNTIF函数
Excel中的COUNTIF函数计算符合标准的单元格数量。
语法:
=COUNTIF(range, criteria)
参数:
range(必选项)—这个参数表示被查找的文本。
criteria(必选项)—该参数表示检查条件。
返回值:
这个函数返回满足检查标准的数量。
使用IF和COUNTIF实现CONTAINS函数
实现步骤:
-
首先使用COUNTIF 函数查看文本是否包含子字符串。
公式:
=(COUNTIF(A2,"*"&B2&"*"))
说明:上述函数将简化为
=(COUNTIF(A2,"*Sea*")
。公式(*)中的星号匹配指定文本中的零或多个字符。如果发现子字符串,则返回计数。因为在我们的文本中,Sea只出现一次,所以它将返回1。 -
我们将在上面的公式中加入IF函数。
公式:
=IF(COUNTIF(A2,"*"&B2&"*"),"Found", "Not Found")
说明:COUNTIF会忽略大小写,因此在上述例子中会返回TRUE。
-
使用矩形框最右侧的
+
选项将公式拖拽到单元格下方。您将得到以下输出。