Итак, у нас есть формула, которая выкатывает запрос для QUERY, вот ее мы и засунем во второй аргумент этой функции (в примере беру диапазон из 100 столбцов — от A до CV — вы можете взять любой, какой нужен, разумеется, в том числе с запасом на создание новых в исходнике)
=QUERY (IMPORTRANGE (ссылка на файл;"'Название листа'!A2:CV"); «Select Col"& JOIN («, Col»; ArrayFormula (ПОИСКПОЗ (СМЕЩ ($A1;0;0;1;СЧЁТЗ ($ 1:$ 1)); IMPORTRANGE (ссылка на файл;"'Название листа'!1:1″);0))))Или — через TEXTJOIN :
=QUERY (IMPORTRANGE (ссылка на файл;"'Название листа'!A2:CV"); «Select Col"& TEXTJOIN («, Col»; ИСТИНА; ArrayFormula (IFNA (ПОИСКПОЗ ($ 1:$ 1; IMPORTRANGE (ссылка на файл;"'Название листа'!1:1″);0) ;""))))Все, успех! Можно выбирать столбцы из выпадающего списка и данные будут тянуться автоматом. Если выберете один и тот же столбец дважды — будет ошибка #ЗНАЧ, т.к. QUERY не разрешает повторять столбцы в запросе. Можно отлавливать ошибку — это оставляем на ваше усмотрение :) Про ошибки
писали здесь.