Я обнаружил, что вставка строк в структуры таблиц или в обычные ячейки - вручную или иным образом - очень и очень медленная. Например, вставка 7 строк в таблицу (содержащую только буквальные строки) или в соседние ячейки на листе без условного форматирования занимает более 10 минут.
Рабочая книга состоит из 45 рабочих листов и 20 таблиц, причем большие таблицы содержат XML-файлы размером около 10 КБ. XML-файлы электронных таблиц имеют размер 33 МБ, большинство из них имеют размер около 300 КБ, 5 из них имеют размер более 1 МБ, а один - 15 МБ. Он довольно сложный, но не массивный. Все вычисления проходят слева направо вверх вниз, с правого листа на левый лист, и мне в основном удалось избежать формул массива. Все таблицы имеют обычную структуру, а вычисляемые столбцы имеют только одну формулу. Большинство столбцов таблицы являются вычисляемыми, и только несколько столбцов меньшего размера содержат буквальные данные.
У меня есть много условного форматирования на паре листов, но я очень тщательно следил за тем, чтобы оно было рациональным и не допускало его фрагментации: у меня есть около 45 правил для всего листа, и они обобщены для охвата всех столбцов. Основная обработка для принятия решений о форматировании перенесена в таблицы в качестве вспомогательных столбцов и, как я уже сказал, имеет очень регулярную структуру.
Кажется, что этот тип редактирования не является потокобезопасным, поэтому загружается только один процессор, и дисковая активность очень мала. Я не могу понять, что excel делает все это время. Конечно, я установил расчет вручную...
Я видел комментарии, связывающие этот тип вещей с увеличенными ограничениями строк и столбцов, но я не понимаю, почему это должно быть фактором. Если я посмотрю на XML-файлы электронных таблиц, там будет код только для строк и столбцов, занятых значениями или формулами. Так почему же незанятые клетки в игре?
Это оказывает огромное влияние на мою продуктивность, хотя я многому учусь, читая подобные сайты в свободное время. Мне действительно нужно выяснить, в чем проблема, чтобы я мог избежать или обойти эту проблему, если это возможно.
Может ли кто-нибудь помочь мне в этом?
На всякий случай, если люди задаются этим вопросом, ответ — использовать power query и power view в excel. Я считаю, что средние (500 тыс. строк) наборы данных, сложные структуры и преобразования работают без сучка и задоринки. Я больше никогда не использую формулы в таблицах. Другое дело, что это естественным образом приводит вас к мощному би, что здорово. Это мой совет.
Application.ScreenUpdating = False
? - person Orbling   schedule 23.10.2013