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}) | 这六个值是否都在列表中? |
下图演示了这些结果。
示例 2
了解 HASALL 如何处理重复值。 它检查值是否存在,而不是该值出现的频率。
| 数据 | |
|---|---|
| 1 | 2 |
| 公式 | 说明 |
|---|---|
| =HASALL (A2:B2,{2,2,2}) | 返回 TRUE。 值 2 存在,这是所有需要的 |
| =HASALL (A2:B2,{1,2,3}) | 返回 FALSE。 值 3 缺失 |
下图演示了这些结果。
示例 3
在嵌套数组中搜索。 单元格 A1 中的公式 ={{{1,2};{3,4}}} 将嵌套数组存储在单个单元格中。
| 公式 | 说明 |
|---|---|
| =HASALL (A1,{2,3}) | 返回 TRUE。 HASALL 搜索每个级别,因此在里面 {1,2} 找到 2 个,在里面找到 3 个 {3,4} |
| =HASALL (A1,{2,5}) | 返回 FALSE。 值 5 不会在任何级别显示 |
下图演示了这些结果。
示例 4
检查某行是否使用了所有必需的标记进行标记。 B 列中的每个单元格包含一个标记列表,以逗号分隔显示。
粘贴数据后,选择 B2:B3 并按 Ctrl+J 将每个单元格转换为列表。 在此之前,每个单元格将包含一段文本,因此下面的公式找不到单个标记。
| 项目 | 标记 |
|---|---|
| 产品 A | 紧急,审阅,第 1 季度 |
| 产品 B | 紧急,第 1 季度 |
| 公式 | 说明 |
|---|---|
| =HASALL (B2,{“urgent”,“review”}) | 返回 TRUE。 产品 A 具有两个标记 |
| =HASALL (B3,{“urgent”,“review”}) | 返回 FALSE。 产品 B 未标记评论 |
下图演示了这些结果。