При активном использовании функции IMPORTRANGE столкнулся с медленной работой и частой ошибкой «Внутренняя ошибка импорта». Задумался, что причина может быть в структуре взаимосвязей между таблицами. Сейчас сделано так, что из файла с результатами есть перенос данных в исходный файл на другой лист. Схема 1 в приложенном файле.
Насколько сильно такой «обратный» импорт влияет на скорость и на ошибку импорта?
Или причина в другом: в количестве файлов Источников и файлов Результатов, в размерах файлов, в количестве формул IMPORTRANGE (приведенная мной Схема упрощена)?
Имеет ли смыл «при прочих равных» перейти на Схему 2?
Спасибо.
Добрый день!
При активном использовании функции IMPORTRANGE столкнулся с медленной работой и частой ошибкой «Внутренняя ошибка импорта». Задумался, что причина может быть в структуре взаимосвязей между таблицами. Сейчас сделано так, что из файла с результатами есть перенос данных в исходный файл на другой лист. Схема 1 в приложенном файле.
Насколько сильно такой «обратный» импорт влияет на скорость и на ошибку импорта?
Или причина в другом: в количестве файлов Источников и файлов Результатов, в размерах файлов, в количестве формул IMPORTRANGE (приведенная мной Схема упрощена)?
Имеет ли смыл «при прочих равных» перейти на Схему 2?
book, Последнее время Importrange вызывает проблемы у многих пользователей ссылка В представленных схемах, большого отличия нет, т.к. ссылки не совсем цикличны, цикличные ссылки подразумевают взаимовлияние Результата на источник.
в количестве файлов Источников и файлов Результатов, в размерах файлов, в количестве формул IMPORTRANGE (приведенная мной Схема упрощена)?
Это всё причины тормозов, они все влияют на работу таблиц, при прочих равных, я бы на вашем месте задумался о реструктуризации системы и сборки новой с меньшим количеством файлов и организацией связей внутри одного файла, либо переход на СКРИПТЫ
book, Последнее время Importrange вызывает проблемы у многих пользователей ссылка В представленных схемах, большого отличия нет, т.к. ссылки не совсем цикличны, цикличные ссылки подразумевают взаимовлияние Результата на источник.
в количестве файлов Источников и файлов Результатов, в размерах файлов, в количестве формул IMPORTRANGE (приведенная мной Схема упрощена)?
Это всё причины тормозов, они все влияют на работу таблиц, при прочих равных, я бы на вашем месте задумался о реструктуризации системы и сборки новой с меньшим количеством файлов и организацией связей внутри одного файла, либо переход на СКРИПТЫKashimirush
Верно ли понимаю, что формулы «внутри» файла работают быстрее? К примеру, IMPORTRANGE можно заменить на QUERY. Другими словами, лучше одни файл с 10 листами, чем 10 файлов по 1 листу.
Если говорить о скриптах, то имеет ли смысл их использовать только для замены IMPORTRANGE, а другие вычисления, фильтры, сводные и т.п. оставить «на формулах»?
Kashimirush, спасибо за отклик!
Верно ли понимаю, что формулы «внутри» файла работают быстрее? К примеру, IMPORTRANGE можно заменить на QUERY. Другими словами, лучше одни файл с 10 листами, чем 10 файлов по 1 листу.
Если говорить о скриптах, то имеет ли смысл их использовать только для замены IMPORTRANGE, а другие вычисления, фильтры, сводные и т.п. оставить «на формулах»?book
Верно ли понимаю, что формулы «внутри» файла работают быстрее? К примеру, IMPORTRANGE можно заменить на QUERY
Вы что, используете IMPORTRANGE внутри ОДНОГО и того же файла для связи между листами?! Немедленно забыть, искоренить! Для этого есть масса других способов. Гугл, конечно, тут не прав - к IMPORTRANGE надо было давно прикрутить проверку на "тот же файл" и отображать непреодолимую ошибку, а то сбивают людей с толку, а люди привыкают и пытаются использовать.
Чтобы на Лист2 получить данные с Лист1 из диапазона A1:D20, НЕ НУЖНО писать такую формулу: [vba]
Код
=IMPORTRANGE("<<< id того же самого файла >>>";"Лист1!A1:D20")
[/vba] а можно использовать такие: [vba]
Код
=ArrayFormula('Лист1'!A1:D20)
[/vba]или [vba]
Код
={'Лист1'!A1:D20}
[/vba] Или с помощью любой подходящей функции: [vba]
Верно ли понимаю, что формулы «внутри» файла работают быстрее? К примеру, IMPORTRANGE можно заменить на QUERY
Вы что, используете IMPORTRANGE внутри ОДНОГО и того же файла для связи между листами?! Немедленно забыть, искоренить! Для этого есть масса других способов. Гугл, конечно, тут не прав - к IMPORTRANGE надо было давно прикрутить проверку на "тот же файл" и отображать непреодолимую ошибку, а то сбивают людей с толку, а люди привыкают и пытаются использовать.
Чтобы на Лист2 получить данные с Лист1 из диапазона A1:D20, НЕ НУЖНО писать такую формулу: [vba]
Код
=IMPORTRANGE("<<< id того же самого файла >>>";"Лист1!A1:D20")
[/vba] а можно использовать такие: [vba]
Код
=ArrayFormula('Лист1'!A1:D20)
[/vba]или [vba]
Код
={'Лист1'!A1:D20}
[/vba] Или с помощью любой подходящей функции: [vba]
Верно ли понимаю, что формулы «внутри» файла работают быстрее?
Ну это должно быть очевидно, когда Importrange оборачивают внутри формул в таблице результата, это гораздо дольше, чем произвести все нужные расчеты в таблице источнике, и только нужный результат передать в таблицу результат.
имеет ли смысл их использовать только для замены IMPORTRANGE, а другие вычисления, фильтры, сводные и т.п. оставить «на формулах»
Это риторический вопрос обсуждение сферического коня в вакууме, я же без понятия какой у вас функционал, но как гласит библия: "Пока работает - не трожь!" - если формулы выполняют нужный вам функционал, то трогать их, конечно, не стоит.
А вот структура данных ваша - вносит трудности и с использованием Importrange и применением скриптов. Если с первым все понятно, то при написании скриптов будет сложно уследить за всеми перемещениями данных и написать скрипты так, чтобы они не приводили к ошибкам.
[p.s.]ИМХО - я бы подумал над 1 каким то МЕГА файлом со скриптом, который производит расчеты и запуливает их в нужные таблицы.[/p.s.]
Верно ли понимаю, что формулы «внутри» файла работают быстрее?
Ну это должно быть очевидно, когда Importrange оборачивают внутри формул в таблице результата, это гораздо дольше, чем произвести все нужные расчеты в таблице источнике, и только нужный результат передать в таблицу результат.
имеет ли смысл их использовать только для замены IMPORTRANGE, а другие вычисления, фильтры, сводные и т.п. оставить «на формулах»
Это риторический вопрос обсуждение сферического коня в вакууме, я же без понятия какой у вас функционал, но как гласит библия: "Пока работает - не трожь!" - если формулы выполняют нужный вам функционал, то трогать их, конечно, не стоит.
А вот структура данных ваша - вносит трудности и с использованием Importrange и применением скриптов. Если с первым все понятно, то при написании скриптов будет сложно уследить за всеми перемещениями данных и написать скрипты так, чтобы они не приводили к ошибкам.
[p.s.]ИМХО - я бы подумал над 1 каким то МЕГА файлом со скриптом, который производит расчеты и запуливает их в нужные таблицы.[/p.s.]Kashimirush
Работа, работа, перейди на Федота...
Сообщение отредактировал Kashimirush - Среда, 03.11.2021, 15:38
Да, здесь есть над чем работать. Если мыслю в верном направлении, то надо минимизировать количество файлов и, соответственно, количество связей (IMPORTRANGE или Скрипов) между ними.
Да, здесь есть над чем работать. Если мыслю в верном направлении, то надо минимизировать количество файлов и, соответственно, количество связей (IMPORTRANGE или Скрипов) между ними.