Google表格用QUERY实现VLOOKUP筛选时报解析错误如何解决
报错原因
- QUERY 函数的第二个参数(查询语句文本)内部不能直接插入表格区域引用语法
{'Keyword'!G2:G19},所有需要动态传入查询语句的单元格值,都需要先在查询字符串外部拼接成符合QUERY语法的格式再传入。 - 你需要匹配的是C列值落在多个关键词的范围内,不能用
=运算符,要改用IN运算符来匹配列表内的任意值。
修正后的公式
=QUERY('raw_13-19'!A:G, "SELECT * WHERE C IN ('"&TEXTJOIN("','", TRUE, 'Keyword'!G2:G19)&"')", 1)
逻辑说明
- 用
TEXTJOIN("','", TRUE, 'Keyword'!G2:G19)把Keyword!G2:G19里的所有非空关键词拼接成关键词1','关键词2','关键词3的格式,前后再拼接单引号和括号,就形成了QUERY的IN运算符要求的('关键词1','关键词2','关键词3')列表结构。 - 去掉了原公式中数据集外层多余的大括号,如果你不需要对原始数据集做列序调整/增删,直接引用
'raw_13-19'!A:G即可。 - 如果你的关键词里本身包含单引号,可以先把关键词里的单引号替换成双单引号转义,修改后公式如下:
=QUERY('raw_13-19'!A:G, "SELECT * WHERE C IN ('"&TEXTJOIN("','", TRUE, SUBSTITUTE('Keyword'!G2:G19, "'", "''"))&"')", 1)
内容的提问来源于stack exchange,提问作者Isaac
相关产品推荐
相关产品推荐

