如何在Google Sheet中让QUERY从含特定文本的行开始查询
Google Sheets 动态范围QUERY公式修复方案
原公式问题分析
你的公式存在两个语法错误:
- 引号嵌套不完整:
INDIRECT的参数字符串未正确闭合,导致公式解析失败 - 参数顺序错误:
QUERY的查询语句被错误放到了INDIRECT的参数位置,不符合函数语法要求
修正后的公式
=QUERY(INDIRECT("'Ticket Query'!B"&MATCH("Parts",'Ticket Query'!B:B,0)&":K26"), "Select * where C is not null", 0)
公式拆解说明
MATCH("Parts",'Ticket Query'!B:B,0):精准定位B列中第一个包含“Parts”的行号INDIRECT(...):将拼接的动态范围字符串(如'Ticket Query'!B6:K26)转换为QUERY可识别的单元格区域QUERY(...):对动态区域执行查询,筛选C列非空的行,最后一个参数0表示数据无表头(若你的数据有表头,可改为对应表头行数,比如1)
可选优化(处理无匹配的情况)
如果担心B列找不到“Parts”导致公式报错,可以添加IFERROR兜底:
=QUERY(IFERROR(INDIRECT("'Ticket Query'!B"&MATCH("Parts",'Ticket Query'!B:B,0)&":K26"), "'Ticket Query'!B:K26"), "Select * where C is not null", 0)
当未匹配到“Parts”时,会默认使用B:K26作为查询范围
内容的提问来源于stack exchange,提问作者Yvan L
相关产品推荐
相关产品推荐

