在查询函数中使用动态符号

Use a dynamic notation into a query function

我需要创建一个通用公式来从查询中获取值,但我不知道要通知的数据范围到底在哪里。 我无法命名范围,因为我们有很多选项卡,并且选项卡会根据需要加倍。

我使用 MATCH 函数知道数据范围是什么,但它不适用于 QUERY 命令,它将用于我需要的过滤器。

像这样:

=query(B78:BV129;"select B, C")//- worked

=query("B"&MATCH("Ini";B:B;0)&":"&"BV"&MATCH("End";B:B;0);"select B, C")     

电子表格无法识别 BCCol1Col2 或任何参数

另一种方式:

脚本:

 function getRange(rr){
  var range = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().captura.getRange(rr);
  return range;
 }
=query(getRange("B78:BV129");"select Col1, Col2")

没有工作,出现同样的错误

仅使用带有循环的脚本来识别范围非常慢并且变得不可行。

有没有人需要这样使用查询命令? 有什么解决方法吗?

  • 使用INDIRECT

    =query(INDIRECT("B"&MATCH("Ini";B:B;0)&":"&"BV"&MATCH("End";B:B;0));"select B,Z....
    
  • 脚本应 return 值:

    var range = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(rr);// captura?
    return range.getValues(); } //added getValues