我需要创建一个通用公式来从查询中获取值,但是我不确切知道要通知的数据范围在哪里。 我无法命名范围,因为我们有很多标签,并且根据需要将标签加倍。
我使用了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")
电子表格无法识别B
或C
或Col1
或Col2
或任何参数
另一种方式:
脚本:
function getRange(rr){
var range = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().captura.getRange(rr);
return range;
}
=query(getRange("B78:BV129");"select Col1, Col2")
没有相同的错误
仅使用带有循环的脚本来识别范围非常缓慢,因此变得不可行。
有人需要以这种方式使用查询命令吗? 有任何解决方法吗?
答案 0 :(得分:0)
使用INDIRECT
:
=query(INDIRECT("B"&MATCH("Ini";B:B;0)&":"&"BV"&MATCH("End";B:B;0));"select B,Z....
脚本应返回值:
var range = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(rr);// captura?
return range.getValues(); } //added getValues