HASANY 函数

应用对象
Microsoft 365 专属 Excel Microsoft 365 Mac 版专属 Excel

HASANY 函数允许您检查数组或区域是否包含您正在寻找的至少一个值。 如果找到任何值,则返回 TRUE;如果没有找到任何值,则返回 FALSE。

HASANY 会搜索嵌套数组的每个级别,因此您可以在存储在单个单元格内的数组上使用它。

语法

HASANY 函数确定数组是否包含任何值。

HASANY 函数的语法为:

HASANY (数组、值)

参数 描述
array
(必需)
要在其中搜索的数组或区域。 将搜索嵌套数组的每个级别。
values
(必需)
要检查的值。 如果找到其中任何一项,HASANY 将返回 TRUE。

注意

  • HASANY 始终返回单个 TRUE 或 FALSE,无论搜索多少个值。 若要为每个值获取一个结果,请改用 HAS 函数。 若要要求每个值都存在,请使用 HASALL 函数。
  • 比较对类型很严格。 数字 1 与文本“1”不匹配,数字 1 与 TRUE 不匹配。 文本比较不区分大小写,因此“apple”与“APPLE”匹配。
  • 如果 数组 为空,HASANY 将返回 #CALC! 错误。
  • 如果 值 包含错误,则返回该错误。

示例

复制示例数据,然后将其粘贴进新的 Excel 工作表的 A1 单元格中。 如果需要,可调整列宽以查看所有数据。

示例 1

检查某个区域是否包含多个值中的至少一个值。

数据        
10 20 30 40 50
公式 问题
=HASANY (A2:E2,{20,99}) 列表中是 20 还是 99?
=HASANY (A2:E2,{7,8,9}) 列表中是 7、8 还是 9?
=HASANY (A2:E2,30) 列表中有 30 个吗?

下图演示了这些结果。

使用 HASANY 检查某个范围是否包含多个值中的至少一个

示例 2

在嵌套数组中搜索。 单元格 A1 中的公式 ={{{1,2};{3,4}}} 将嵌套数组存储在单个单元格中。

公式 说明
=HASANY (A1,{2,5}) 返回 TRUE。 HASANY 搜索每个级别,因此在其中找到 2 {1,2}
=HASANY (A1,{5,6}) 返回 FALSE。 这两个值均不显示在任何级别

下图演示了这些结果。

使用 HASANY 在存储在单个单元格中的嵌套数组内搜索

示例 3

检查标记列表。 B 列中的每个单元格包含一个标记列表,以逗号分隔显示。

粘贴数据后,选择 B2:B4 并按 Ctrl+J 将每个单元格转换为列表。 在此之前,每个单元格将包含一段文本,因此下面的公式找不到单个标记。

项目 标记
产品 A 紧急,审阅,第 1 季度
产品 B 第 2 季度发货
产品 C 紧急,第 2 季度
公式 说明
=HASANY (B2,{“urgent”,“blocked”}) 返回 TRUE。 产品 A 标记为紧急
=HASANY (B3,{“urgent”,“blocked”}) 返回 FALSE。 产品 B 既没有标记
=HASANY (B2:B4,“shipped”) 返回 TRUE。 所有三个单元格将作为一个集合进行搜索

注意

最后一个公式一次搜索整个区域,因为 数组 是一个集合,而不是要一一测试的项目列表。 要为每一行获取单独的答案,请在一个单元格中输入公式,然后向下填充列。

下图演示了这些结果。

使用 HASANY 检查包含嵌套标签数组的单元格是否包含任何选定的标签