Google Sheets判断输入值是否存在于指定列并返回Yes/No
解决方案
要实现判断A列输入值是否存在于B列并返回"Yes"/"No",可以用以下两种直接有效的公式:
方法1:COUNTIF + IF
在目标单元格(比如C2)输入公式:=IF(COUNTIF(B:B, A2)>0, "Yes", "No")
输入完成后下拉填充到整列即可。
原理:COUNTIF(B:B, A2)会统计B列中等于A2的单元格数量,只要数量大于0就说明存在,返回"Yes",否则返回"No"。
方法2:MATCH + ISNUMBER + IF
另一种等效公式:=IF(ISNUMBER(MATCH(A2, B:B, 0)), "Yes", "No")
原理:MATCH(A2, B:B, 0)会在B列精确查找A2的位置,找到就返回行号(数字),找不到返回#N/A;ISNUMBER判断结果是否为数字,从而确定是否存在。
为什么你之前的方法出错
- VLookup问题:VLookup默认使用近似匹配(第四个参数省略或为TRUE),如果B列未排序,会返回错误结果。即使改成精确匹配的
VLOOKUP(A2, B:B, 1, FALSE),找不到时也会返回#N/A,需要嵌套IFERROR才能返回"No",不如上面的方法直接。 - IF语句报错:你遇到的
"In Search Evaluatio, cannot find '5' within '1'"错误,应该是在IF中误用了SEARCH或FIND函数。这两个函数是文本内容搜索,当A列是数值、B列单元格也是数值时,它们会被强制转换为文本进行匹配,比如把5变成"5"、1变成"1",自然找不到匹配项,从而报错。这两个函数不适合用来判断数值是否存在于整列中。
注意事项
如果A列和B列的数据类型不一致(比如A是数值,B是文本格式的数值),需要统一格式后再使用公式。例如A列是文本格式,可转换为数值再判断:=IF(COUNTIF(B:B, VALUE(A2))>0, "Yes", "No")
内容的提问来源于stack exchange,提问作者Justin Vargas
相关产品推荐
相关产品推荐

