Как обойти ошибку IMPORTRANGE: "Results too large"?

Я пытаюсь выполнить IMPORTRANGE из диапазона, содержащего 240 000 ячеек (40 столбцов и 6 000 строк). Функция IMPORTRANGE выдает ошибку "Результаты слишком велики". Я не могу найти документацию по ограничениям этой функции.

Каковы ограничения функции IMPORTRANGE?

Как я могу обойти это, чтобы я мог импортировать эти данные в свой лист?

У меня тоже была похожая проблема.

Попробуйте разделить диапазон импорта с помощью формулы массива.

Пример:

Importrange("sheet", "A:ZZ")

становится

ARRAYFORMULA({Importrange("sheet", "A:ZZ5000");Importrange("sheet", "A5001:ZZ10000")...etc...})

Проверьте это с различными размерами данных, чтобы получить самую короткую версию, и это должно сделать то, что вам нужно.

Комментарии (3)
Решение

Мои эксперименты показывают, что существует максимальное ограничение на количество элементов, которые вы можете импортировать с помощью функции importrange(), которое не связано с общим количеством ячеек в вашем листе Google.

Эта цифра, похоже, составляет около 175 000 ячеек. Я не уверен, что это официальное максимальное значение, но это самое большее, что я смог импортировать без получения ошибки 'слишком большой'.

Комментарии (0)

Пустые ячейки могут быть фактором. Мы наблюдали разрушение импортного диапазона при 23573x11 или 259 тыс. ячеек, типичный рост составляет 10 или около того строк ежедневно, так что мы уже давно превысили 250 тыс. ячеек. Один столбец в основном пустой, в паре других есть несколько пустых.

Я не смог заставить ARRAYFORMULA разобрать данные, как показано выше, или с другими предположениями, поэтому я использовал это в скрытой вкладке "Ingest".

=importrange("Лист", "A1:K10000") в ячейке A1 =importrange("Лист", "A10001:K") в ячейке A10001

Моя рабочая вкладка/вкладка презентации использует

=query(Ingest!A:K,,1)

чтобы обеспечить постоянное форматирование, наши исходные листы перезаписываются ежедневно.

Комментарии (0)

Используя ответ Сэма и читая документацию, я нашел способ, как получить результат BIG DATA без ошибок. Для этого нужно сделать экспорт шаг за шагом. В одном запросе. Например, если вам нужно экспортировать данные sheet!A3:X100000.

Попробуйте сделать следующее: сначала сделайте запрос и выберите только

=QUERY(importrange("link_sheet", "sheet!A3:X10000"), "select *", 0);

после получения результата просто отредактируйте запрос с

=QUERY(importrange("link_sheet", "sheet!A3:X10000"), "select *", 0);  

на

=QUERY(importrange("link_sheet", "sheet!A3:X20000"), "select *", 0); 

после получения данных отредактируйте запрос еще раз

=QUERY(importrange("link_sheet", "sheet!A3:X300000"), "select *", 0); 

и продолжать, пока вы не разбогатеете

=QUERY(importrange("link_sheet", "sheet!A3:X100000"), "select *", 0);

Таким образом я смог импортировать около 800 000 ячеек с данными. Для моей задачи этого было достаточно, но я думаю, если мне понадобятся более длинные данные, я смогу продолжить и это сработает.

Вы также должны помнить, что у Google Spreadsheets есть ограничение на то, что в одном документе может быть не более 2 миллионов ячеек.

Комментарии (0)

Из моего опыта использования IMPORTRANGE, количество ячеек не было причиной вообще, но каждый раз, когда я превышал 36 столбцов, он терпел неудачу. Мои результаты могли быть 600 строк или 6000 строк до тех пор, пока я не превышал 36 столбцов. Как ни странно, это можно обойти, комбинируя функции IMPORTRANGE.

Пример: =QUERY({IMPORTRANGE("Spreadsheet_Key", "Sheet1!A:AI") , IMPORTRANGE("Spreadsheet_Key", "Sheet1!AJ:AM")}, "WHERE Col38= 'test'").

Обратите внимание на скобки {}, используемые до и после двух функций IMPORTRANGE

Комментарии (0)