跳转至

HAS

类别:MS Excel 兼容函数 · 原生引入:Microsoft 365(2026 年新增)

若值出现在列表或数组(列表文本、区域或数组常量)的任意位置则返回 TRUE。

语法

=HAS(数组, 值)

参数

参数 必需 说明
数组 必需 要搜索的列表文本、区域或数组
值 必需 要查找的值(整项匹配,不区分大小写)

返回

返回 TRUE/FALSE(标量);值指定为数组时按元素计算并溢出。数组参数本身是错误时原样返回该错误;省略值时返回 #VALUE!。

示例

公式 结果 说明
=HAS("Mon, Tue, Wed","tue") TRUE 整项匹配,不区分大小写
=HAS("Ann, Bob","An") FALSE 不是部分匹配
=HAS("{""a"",{""b"",""c""}}","c") TRUE 嵌套数组文本
=HAS("1, 2","1") FALSE 文本 "1" ≠ 数字 1

备注

  • 数组参数可接受列表文本(Mon, Tue, Wed 或 {"a",{"b","c"}} 这样的数组常量形式)、区域和数组常量,并递归搜索到嵌套内部。逗号分隔列表或 {…} 内的各项:数字形状读为数字,TRUE/FALSE 读为逻辑值,#N/A 等错误名读为错误;但没有逗号和大括号的单个文本不作分类,原样作为 1 个文本项(普通单元格的 "1" 就是文本 "1")。引号未闭合等无法解析时不报错,整体视为 1 个项。
  • 比较规则:文本为不区分大小写的整项匹配("Ann"≠"Anna"),数字按数值相等,文本 "1" 与数字 1 不同。列表中的错误项不与任何值匹配。数组参数不做提升 — 给定区域时整个区域就是一个数组,按行求结果请使用表格的 [@列] 引用或 BYROW。
  • Microsoft 365 测试版的单元格内列表在旧版 Excel 中只显示为 #UNKNOWN!(Excel 2016 为 #VALUE!),请先用功能区 [EGTools] › [列表/数组单元格 → 文本] 转换后再使用。相关函数:HASANY、HASALL、FLATTEN
  • 支持:Excel 2010+。在没有原生函数的旧版本中按 HAS 原名注册(直接替换),在具有原生函数的新版 Excel 中注册为 EG.HAS。