HASALL 函数

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

HASALL 函数允许您检查数组或区域是否包含您要查找的每一个值。 仅当找到所有值时才返回 TRUE,如果缺少任何值,则返回 FALSE。

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

语法

HASALL 函数确定数组是否包含所有值。

HASALL 函数的语法为:

HASALL (数组、值)

参数 描述
array
(必需)
要在其中搜索的数组或区域。 将搜索嵌套数组的每个级别。
values
(必需)
要检查的值。 HASALL 仅在找到所有这些时才返回 TRUE。

注意

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

示例

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

示例 1

检查某个区域是否包含集合中的每个值。

数据        
1 2 3 4 5
公式 问题
=HASALL (A2:E2,{2,4}) 2 和 4 都在列表中吗?
=HASALL (A2:E2,{2,9}) 2 和 9 都在列表中吗?
=HASALL (A2:E2,{1,2,3,4,5,6}) 这六个值是否都在列表中?

下图演示了这些结果。

使用 HASALL 检查某个范围是否包含集合中的每个值

示例 2

了解 HASALL 如何处理重复值。 它检查值是否存在,而不是该值出现的频率。

数据  
1 2
公式 说明
=HASALL (A2:B2,{2,2,2}) 返回 TRUE。 值 2 存在,这是所有需要的
=HASALL (A2:B2,{1,2,3}) 返回 FALSE。 值 3 缺失

下图演示了这些结果。

使用 HASALL 显示重复搜索值只需出现一次

示例 3

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

公式 说明
=HASALL (A1,{2,3}) 返回 TRUE。 HASALL 搜索每个级别,因此在里面 {1,2} 找到 2 个,在里面找到 3 个 {3,4}
=HASALL (A1,{2,5}) 返回 FALSE。 值 5 不会在任何级别显示

下图演示了这些结果。

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

示例 4

检查某行是否使用了所有必需的标记进行标记。 B 列中的每个单元格包含一个标记列表,以逗号分隔显示。

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

项目 标记
产品 A 紧急,审阅,第 1 季度
产品 B 紧急,第 1 季度
公式 说明
=HASALL (B2,{“urgent”,“review”}) 返回 TRUE。 产品 A 具有两个标记
=HASALL (B3,{“urgent”,“review”}) 返回 FALSE。 产品 B 未标记评论

下图演示了这些结果。

使用 HASALL 检查包含标签嵌套数组的单元格是否包含所有必需的标签