Используйте динамическую запись в функции запроса - PullRequest
0 голосов
/ 02 мая 2019

Мне нужно создать общую формулу, чтобы получить значение из запроса, но я не знаю точно, где находится диапазон данных, которые нужно сообщить. Я не могу назвать диапазон, потому что у нас много вкладок, и вкладки дублируются по мере необходимости.

Я использовал функцию 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")

Не работает с той же ошибкой

Использование только сценария с циклом для определения диапазона было очень медленным и стало невозможным.

Кому-нибудь когда-нибудь нужно было использовать команду запроса таким образом? Есть обходные пути?

1 Ответ

0 голосов
/ 02 мая 2019
  • Использование 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
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...