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 个吗? |
下图演示了这些结果。
示例 2
在嵌套数组中搜索。 单元格 A1 中的公式 ={{{1,2};{3,4}}} 将嵌套数组存储在单个单元格中。
| 公式 | 说明 |
|---|---|
| =HASANY (A1,{2,5}) | 返回 TRUE。 HASANY 搜索每个级别,因此在其中找到 2 {1,2} |
| =HASANY (A1,{5,6}) | 返回 FALSE。 这两个值均不显示在任何级别 |
下图演示了这些结果。
示例 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。 所有三个单元格将作为一个集合进行搜索 |
注意
最后一个公式一次搜索整个区域,因为 数组 是一个集合,而不是要一一测试的项目列表。 要为每一行获取单独的答案,请在一个单元格中输入公式,然后向下填充列。
下图演示了这些结果。