Или результат слишком большой или данные не выводятся вообще
Друзья, наверняка вы видели такую или похожую ошибку, когда пытались загрузить слишком большой диапазон данных с помощью
IMPORTRANGE.Иногда и на меньшем объёме данных
IMPORTRANGE "ломается" и не выводит результат.Есть решение: делим
IMPORTRANGE на небольшими диапазоны (скажем, по 1000 строк) и соединяем их с помощью фигурных скобо {} или VSTACK.Получится что-то вроде:
={
IMPORTRANGE(url;"a1:1000");
IMPORTRANGE(url;"a1001:2000");
IMPORTRANGE(url;"a1:1000")
}
Но, если фрагментов много, то писать такую формулу руками неудобно.
Напишем же формулу формулой :)
=let(
_url;"https://docs.google.com/";
_shName;"Лист1";
_step;1000;
_n;25;
_s;SEQUENCE(_n;1;2;_step);
REDUCE(importrange(_url;_shName & "!1:1");_s;
LAMBDA(_acc;_add1; IFNA(VSTACK(_acc;IFERROR(IMPORTRANGE(_url; _shName & "!" & _add1 & ":" & _add1 + _step - 1)))))))
Что здесь происходит?
🔹
SEQUENCE генерирует стартовые строки: 2, 1002, 2002…🔹
IMPORTRANGE тянет по 1000 строк за раз.🔹
VSTACK складывает всё друг под другом.🔹
REDUCE аккуратно объединяет блоки в единую таблицу.🔹
LET делает формулу читабельной, как будто это вовсе не формула.Дополнительные материалы:
Большая статья про
IMPORTRANGE от нашего маэстро Рената ШагабутдиноваС помощью скрипта даём доступ к Таблицам, чтобы IMPORTRANGE заработал без ручного расшаривания
🐟 Заказать работу у нас: @namokonov
