Я пытаюсь настроить диспетчер задач в Google Sheets.Я создал новый лист для каждого проекта, затем при вводе имени листа в ячейку я создам строку, которую можно использовать для запроса и извлечения всех данных в мастер-лист.
при добавленииИдентификатор проекта, который я использую для объединения строк, которые я хочу использовать в качестве данных запроса:
Формула: =IFERROR(ARRAYFORMULA(if(isblank(A3),"",CONCATENATE("'", A3, "'", "!A87:M"))))
Ввод:
Cell A3 - Sheet1
Cell A4 - Sheet2
Вывод:
Cell B3 - 'Sheet1'!A87:M
Cell B4 - 'Sheet2'!A87:M
Затем я использую эти выходные данные для построения данных для моего запроса.
Метод 1: =ARRAYFORMULA(FILTER(B3:B, NOT(B3:B = "")))
Вывод:
Cell C2 - 'Sheet1'!A87:M
Cell C3 - 'Sheet2'!A87:M
Метод 2: =join(";", filter(B2:B, not(B2:B = "")))
Вывод:
Cell C4 - '19654'!A87:M;'19984'!A87:M;'Sheet5'!A87:M
Затем я передам вывод в мой запрос, чтобы попытаться вернуть данные из каждого проекта:
=query({INDIRECT(C2)},"Select Col1, Col2, Col3 where Col1 is not null")
Если я использую метод 1, вывод - это просто результат первой ячейки.Он не получит все из результата всей формулы массива
Если я использую метод 2, вывод возвращает сообщение об ошибке ref:
Функция Значение параметра INDIRECT 1 равно'' Лист1 'A87:! M;' Лист2 'A87: M;'.Это недопустимая ссылка на ячейку / диапазон.
Я могу заставить запрос работать, если вручную ввести каждую из строк в данные запроса:
=query({INDIRECT(C2); INDIRECT(C3)},"Select Col1, Col2, Col3 where Col1 is not null")
Но я хочу сделать так, чтобы при вводе нового имени листа формулы обновлялись и возвращали результат всех страниц.
Любая помощь будет высоко оценена и заранее благодарна.