Google Sheets Query动态范围优化:移除V2引用的语法问题
解决Google Sheets Query动态范围的语法问题
错误原因
你之前的写法Trades!A2:N&getTradesLastRow()是直接将单元格区域与行号做字符串拼接,但Google Sheets无法自动识别这种拼接结果为有效范围,必须通过INDIRECT()函数把拼接后的文本转换为可识别的单元格区域引用。
直接替换的正确公式
把原V2单元格里的拼接逻辑直接嵌入INDIRECT(),替代原来的INDIRECT(V2),即可移除对V2的依赖:
=query({INDIRECT("Trades!A2:N"&getTradesLastRow()), arrayformula(row(INDIRECT("Trades!A2:N"&getTradesLastRow())))}, "select Col2, ...")
优化版(更高效清晰)
用LET()函数定义变量,避免重复调用getTradesLastRow()和INDIRECT(),提升公式效率和可读性:
=LET( lastRow, getTradesLastRow(), dataRange, INDIRECT("Trades!A2:N"&lastRow), query({dataRange, arrayformula(row(dataRange))}, "select Col2, ...") )
内容的提问来源于stack exchange,提问作者sk65plus
相关产品推荐
相关产品推荐

