Большая рабочая книга открывается медленно, но быстро, если разделить ее на две связанные рабочие книги. Почему?

Большая рабочая книга открывается медленно, но быстро, если разделить ее на две связанные рабочие книги. Почему?

У меня есть модель Excel, где основным элементом является одна большая структурированная таблица, которая содержит около 2000 столбцов и 200 строк. Каждый столбец содержит формулу, которая одинакова для каждой строки. В виде файла XLSB рабочая книга занимает около 11 МБ и открывается за 45 секунд. Сами формулы эффективны — полный расчет рабочей книги выполняется менее чем за 1 секунду.

Если я разделю эту модель на две, используя два отдельных листа в одной рабочей книге (со ссылками между ними), производительность не изменится. Но когда я разделю эти листы на две рабочие книги, используя ссылки в качестве внешних ссылок, я смогу открыть оба файла и обновить ссылки примерно за 10 секунд.

Почему отдельные рабочие книги могут улучшить производительность? Можно ли достичь той же производительности в рамках одной рабочей книги?

EDIT: Очищенные рабочие тетради можно найти здесь:https://drive.google.com/drive/folders/0Bz0YVEO1u0jOaGtpS1ZnR3kzRWc?usp=sharing Model1.xlsb и Model2.xlsb — это разделенные файлы. Чтобы создать Model1and2.xlsb, я просто переместил два листа из Model2 в Model1.

EDIT 2: Настройка Workbook.ForceFullCalculation=TRUEрешает эту проблему. Это определенно как-то связано со временем загрузки дерева зависимостей. Я добавил Model1and2-ForceFullCalculation.xlsb в общую папку для демонстрации.

Связанный контент