HAS 函数允许您检查值是否存在数组或区域中的任何位置。 如果找到该值,则返回 TRUE;如果未找到,则返回 FALSE。
HAS 会搜索嵌套数组的每个级别,因此可以在存储在单个单元格内的数组上使用它。
语法
HAS 函数确定数组中是否存在值。
HAS 函数的语法为:
HAS (数组、值)
| 参数 | 描述 |
|---|---|
|
array (必需) |
要在其中搜索的数组或区域。 将搜索嵌套数组的每个级别。 |
|
value (必需) |
要搜索的值或值的数组。 |
注意
- 比较对类型很严格。 数字 1 与文本“1”不匹配,数字 1 与 TRUE 不匹配。 如果需要跨类型比较,请先转换该值 — 例如,使用 VALUE 函数。
- 文本比较不区分大小写,因此“apple”与“APPLE”匹配。
- 当 value 为数组时,HAS 返回形状与 value 相同的 TRUE 和 FALSE 结果数组。 每个值都会自行测试。
- 如果 数组 为空,HAS 将返回 #CALC! 错误。
- 如果 值 包含错误,则返回该错误。
- 若要使用单个 TRUE 或 FALSE 答案一次检查多个值,请使用 HASANY 或 HASALL。
示例
复制示例数据,然后将其粘贴进新的 Excel 工作表的 A1 单元格中。 如果需要,可调整列宽以查看所有数据。
示例 1
检查某个区域是否包含特定值。
| 数据 | ||||
|---|---|---|---|---|
| 10 | 20 | 30 | 40 | 50 |
| 公式 | 问题 |
|---|---|
| =HAS (A2:E2,30) | 列表中有 30 个吗? |
| = (A2:E2,99) | 列表中有 99 吗? |
下图演示了这些结果。
示例 2
一次检查多个值。 由于第二个参数是一个数组,因此 HAS 为每个值返回一个结果,其形状与搜索的值相同。
| 数据 | ||
|---|---|---|
| 1 | 2 | 3 |
在第二个公式下方保留两个空单元格,以便其结果可以溢出。
| 公式 | 说明 |
|---|---|
| =HAS (A2:C2,{{2,5}}) | 返回包含嵌套数组 {TRUE,FALSE} 的单个单元格 |
| =HAS (A2:C2,{2;5;3}) | 返回 TRUE、FALSE、TRUE 向下溢出三个单元格 — 每个值一个结果 |
下图演示了这些结果。
示例 3
在嵌套数组中搜索。 复制整个表格并将其粘贴到新工作表的单元格 A1 中。 A2 中的公式将嵌套数组存储在单个单元格中。
| 数据 | |
|---|---|
| ={{{1,2};{3,4}}} | |
| 公式 | 说明 |
| =HAS (A2,3) | 返回 TRUE。 HAS 搜索每个级别,因此在里面找到 3 {3,4} |
| =HAS (A2,5) | 返回 FALSE。 嵌套数组的任何级别都不包含 5 |
下图演示了这些结果。