如何使用Excel的XMATCH函数检查内容是否在单/多列表/数组并返回1或0?
用XMATCH实现Excel匹配判断(返回1/0)
单个列表匹配判断
要检查单个项目是否存在于某列表中,返回1(存在)或0(不存在),可以结合XMATCH、ISNUMBER和转换运算符--实现:
- 公式示例:
=--ISNUMBER(XMATCH(A1, B:B))- 说明:
XMATCH(A1, B:B)会查找A1的值在B列列表中的位置,找到则返回对应行号(数字),找不到返回错误值;ISNUMBER将结果转为布尔值(找到为TRUE,没找到为FALSE);--把布尔值转换成1或0。
- 说明:
- 也可以用
IF函数替代转换运算符,公式为:=IF(ISNUMBER(XMATCH(A1, B:B)), 1, 0)
多个数组匹配判断(任一匹配即返回1)
如果需要同时比对多个数组,只要目标值在任意一个数组中存在就返回1,可先通过VSTACK(垂直合并)或HSTACK(水平合并)把多个数组整合成一个,再用XMATCH查找:
- 公式示例(假设有B列、D列、F列三个目标数组):
=--ISNUMBER(XMATCH(A1, VSTACK(B:B, D:D, F:F)))- 说明:
VSTACK(B:B, D:D, F:F)把三个垂直列合并成一个大的垂直数组;后续逻辑和单个列表一致,只要在合并后的数组中找到A1,就返回1,否则返回0。
- 说明:
- 若目标数组是水平排列的(比如第2行、第4行、第6行),则用
HSTACK合并:=--ISNUMBER(XMATCH(A1, HSTACK(2:2, 4:4, 6:6)))
注意:
XMATCH、VSTACK、HSTACK都是Excel 365及后续版本支持的函数,旧版Excel无法使用。
内容的提问来源于stack exchange,提问作者Paul D
相关产品推荐
相关产品推荐

