Google Sheets:判断单元格内容是否存在于指定数组并返回对应结果
Google Sheets 匹配数组内容的解决方案
问题原因
你使用的REGEXMATCH(B2, DOUBLE!A2:A)无法生效,是因为REGEXMATCH的第二个参数要求是单个正则表达式字符串,不能直接传入数组范围,它只会尝试匹配DOUBLE!A2单元格的内容,无法遍历整个A2:A区域。
解决方案
以下两种公式都能实现你的需求:
方案1:使用COUNTIF函数
=IF(COUNTIF(DOUBLE!A2:A, B2) > 0, B2, "Cannot be doubled")
- 原理:
COUNTIF统计DOUBLE!A2:A中与B2内容完全匹配的单元格数量,数量大于0说明内容存在,返回B2,否则返回指定提示文本。
方案2:使用MATCH+ISNUMBER函数
=IF(ISNUMBER(MATCH(B2, DOUBLE!A2:A, 0)), B2, "Cannot be doubled")
- 原理:
MATCH在DOUBLE!A2:A中精确匹配B2的内容,找到则返回对应的行号(数字),ISNUMBER判断返回值是否为数字,是则说明内容存在,返回B2,否则返回提示文本。
批量应用到整列
如果需要一次性对B2:B整列应用该规则,可以使用数组公式:
=BYROW(B2:B, LAMBDA(x, IF(x="", "", IF(ISNUMBER(MATCH(x, DOUBLE!A2:A, 0)), x, "Cannot be doubled"))))
或者兼容旧版的数组公式写法:
=ARRAYFORMULA(IF(B2:B="", "", IF(ISNUMBER(MATCH(B2:B, DOUBLE!A2:A, 0)), B2:B, "Cannot be doubled")))
内容的提问来源于stack exchange,提问作者emmy
相关产品推荐
相关产品推荐

