在查询函数中使用动态符号
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")
电子表格无法识别 B
或 C
或 Col1
或 Col2
或任何参数
另一种方式:
脚本:
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
我需要创建一个通用公式来从查询中获取值,但我不知道要通知的数据范围到底在哪里。 我无法命名范围,因为我们有很多选项卡,并且选项卡会根据需要加倍。
我使用 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")
没有工作,出现同样的错误
仅使用带有循环的脚本来识别范围非常慢并且变得不可行。
有没有人需要这样使用查询命令? 有什么解决方法吗?
使用
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