HAS 函数

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

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 吗?

下图演示了这些结果。

搜索包含 10、20、30、40 和 50 的区域时,HAS 返回 30 的 TRUE 值,99 的值为 FALSE

示例 2

一次检查多个值。 由于第二个参数是一个数组,因此 HAS 为每个值返回一个结果,其形状与搜索的值相同。

数据    
1 2 3

在第二个公式下方保留两个空单元格,以便其结果可以溢出。

公式 说明
=HAS (A2:C2,{{2,5}}) 返回包含嵌套数组 {TRUE,FALSE} 的单个单元格
=HAS (A2:C2,{2;5;3}) 返回 TRUE、FALSE、TRUE 向下溢出三个单元格 — 每个值一个结果

下图演示了这些结果。

HAS 在单个嵌套数组单元格中返回 TRUE 和 FALSE,在三个单元格中返回 TRUE、FALSE、TRUE

示例 3

在嵌套数组中搜索。 复制整个表格并将其粘贴到新工作表的单元格 A1 中。 A2 中的公式将嵌套数组存储在单个单元格中。

数据  
={{{1,2};{3,4}}}
公式 说明
=HAS (A2,3) 返回 TRUE。 HAS 搜索每个级别,因此在里面找到 3 {3,4}
=HAS (A2,5) 返回 FALSE。 嵌套数组的任何级别都不包含 5

下图演示了这些结果。

HAS 在嵌套数组中找到 3 并返回 TRUE;搜索 5 返回 FALSE