如何在Google Sheets中使用QUERY函数对比两列并找出缺失值
解决QUERY函数查找两列差异值的问题
你的公式问题出在QUERY的NOT IN子句不支持直接引用单元格区域,必须传入具体的、逗号分隔的值列表。这里可以用TEXTJOIN把D列的值转换成符合SQL语法的格式,再嵌入到QUERY语句中。
正确公式:
=QUERY(B3:B, "SELECT B WHERE B IS NOT NULL AND B NOT IN ('"&TEXTJOIN("','", TRUE, D3:D)&"')", 0)
公式说明:
TEXTJOIN("','", TRUE, D3:D):把D3:D里的非空值拼接成'值1','值2','值3'的格式,第二个参数TRUE会自动忽略D列的空值,避免干扰判断。- 用
&把拼接后的字符串嵌入QUERY的SQL语句中,让NOT IN能识别D列的所有有效值。 - 保留
B IS NOT NULL来过滤B列的缺失值,符合你的需求。
注意事项:
如果D列包含数字,公式里给数字加的单引号不会影响匹配,QUERY会自动处理数据类型转换;如果需要严格匹配类型,可以根据实际情况调整拼接格式(不过一般场景下上面的公式足够用)。
内容的提问来源于stack exchange,提问作者philip barbican
相关产品推荐
相关产品推荐

