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。