Расчет листа в Excel занимает больше времени, чем расчет всей книги - PullRequest
0 голосов
/ 14 мая 2018

У меня большая громоздкая книга, которую меня попросили изменить.

Имеет около 60 вкладок с финансовыми данными проекта и пару листов, которые извлекают данные из них с помощью команды INDIRECT. Я не могу избавиться от УКАЗАНИЙ (это не моя рабочая тетрадь). Там около 200 строк с 20 столбцами этих косвенных имен.

Финансовые показатели проекта обновляются только один раз в месяц, и они используют SUMIFS для таблицы данных приличного размера (тысяча строк / месяц). Поэтому, поскольку они не нуждаются в пересчете, я попытался использовать Расчет листа Shift-F9. Казалось, это заняло очень много времени.

Я провел серию тестов на нем. Если я вычисляю каждый лист по очереди и рассчитываю его по VBA, то лист, над которым я работаю, занимает 1,25 сек. общее время для всех листов составляет 7 секунд.

Если, однако, я запускаю синхронизированную таблицу sheet.calculate на одном листе, это займет 10 секунд.

Я знаю, что из-за волатильности INDIRECT это замедляет его, поскольку XL будет использовать только один процессорный поток, если он вычисляет INDIRECT. Глядя на веб-страницу MS об этом, кажется, что первое, что делает XL, это смотрит на дерево зависимостей и оптимизирует его. так ли это, потому что дерево зависимостей не оптимизировано при запуске sheet.calculate (или shift-F9)?

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

...