У меня большая громоздкая книга, которую меня попросили изменить.
Имеет около 60 вкладок с финансовыми данными проекта и пару листов, которые извлекают данные из них с помощью команды INDIRECT. Я не могу избавиться от УКАЗАНИЙ (это не моя рабочая тетрадь). Там около 200 строк с 20 столбцами этих косвенных имен.
Финансовые показатели проекта обновляются только один раз в месяц, и они используют SUMIFS для таблицы данных приличного размера (тысяча строк / месяц).
Поэтому, поскольку они не нуждаются в пересчете, я попытался использовать Расчет листа Shift-F9. Казалось, это заняло очень много времени.
Я провел серию тестов на нем. Если я вычисляю каждый лист по очереди и рассчитываю его по VBA, то лист, над которым я работаю, занимает 1,25 сек. общее время для всех листов составляет 7 секунд.
Если, однако, я запускаю синхронизированную таблицу sheet.calculate на одном листе, это займет 10 секунд.
Я знаю, что из-за волатильности INDIRECT это замедляет его, поскольку XL будет использовать только один процессорный поток, если он вычисляет INDIRECT. Глядя на веб-страницу MS об этом, кажется, что первое, что делает XL, это смотрит на дерево зависимостей и оптимизирует его. так ли это, потому что дерево зависимостей не оптимизировано при запуске sheet.calculate (или shift-F9)?
Что происходит, кажется безумным, что один лист занимает больше времени, чем полная книга.