Огромное всем спасибо за присланные ответы! Они натолкнули меня на мысль и задачка была решена!
Собственно хотел заставить работать встроенную гугловскую функцию QUERY с наименованиями полей в передаваемой таблице. Решение напрашивалось самое простое - заменить в запросе наименования полей на соответствующие наименования Col1, Col2 и т.д. Надо было только найти красивое решение как перехватывать запрос и на лету изменять его:)
Ниже найденное мною решение. Возможно кто-то решит его доработать - присылайте свои варианты :)
Решение:
В Google.Docs есть такая штука, как именованные функции:
https://support.google.com/docs/answer/12504534
В итоге я через именованные функции сделал свою:
M_QUERY(диапазон, запрос)
которую описал как:
=QUERY({диапазон}; Q(диапазон; запрос))
а в Apps Script описал функцию Q, которая и обрабатывает передаваемые запросы:
function Q(table, query){
console.log(query);
if (table[0].map){
table = table[0];
for(var key in table){
query = query.replaceAll('`'+table[key]+'`', 'Col'+(1+Number(key)));
}
}
return query;
}
Собственно все подготовительные операции проведены и можно в таблицах гугл использовать созданную функцию M_QUERY
Берём таблицу вида:
где первая строка содержит наименования полей
и на требуемом листе пишем формулу:
=M_QUERY(1:1000; "select `ID` where `ASIGNED_BY` like '%Иванов%'")
"1:1000" - заменяем на диапазон, содержащий исходные данные :)
Профит!