Гипертрофия таблиц Excel

По | 17.01.2013

big-excel

Всем опытным пользователям Miсrosoft Excel встречались файлы xls, xlsx значительного размера, явно не соответствующего объему данных в таблицах.
Открываются такие таблицы долго, сохраняются медленно, по почте не пересылаются…

Попробуем разобраться, как сделать диагностику и уменьшить размер файлов, не прибегая к специальным программам.

1. «Инспектор документов» и «Проверка совместимости»
ps0

Эти средства, встроенные в Office 2007 и 2010, позволяют найти:

— скрытые листы, строки и столбцы;
— прочие скрытые объекты, например, скрытые картинки;
— многое другое, не связанное с темой заметки.

Если выполнить «Проверка совместимости» и сохранить «Отчёт о совместимости» на новый лист, то в отчёте можно увидеть, например, какой диапазон, т.е. количество строк и столбцов Excel считает задействованными в таблице.
ps1
* если есть ошибки нажимаем «Копировать на новый лист» и смотрим более подробно.

2. Распаковать xlsx файл

Переименовать расширение xlsx файла в zip и распаковать архив.
Можно увидеть размер исходников картинок, размер отдельных листов.
Обратите внимание на размер первого листа книги — sheet1.xml.
ps2

Таким образом мы подтвердили, что проблема в первом листе книги.

3. Удалить лишнее

Мы выяснили, что в нашем листе хранится информация о 12397 пустых столбцах. Необходимо от них избавиться.
Проще всего создать новую книгу или лист и скопировать туда рабочую таблицу. Источник удалить.
Если по каким-то причинам это затруднительно, например, из-за большого количества ссылок в формулах на этот лист, то выделяем лишние столбцы и удаляем (последний столбец можно посмотреть в отчете совместимости или передвинув горизонтальный скрол в крайнее правое положение).
Выделение такого количества столбцов возможно только с помощью клавиши SHIFT, т.е. выделяем первый удаляемый столбец как обычно, а последний удерживая SHIFT.
Вариант — написать простой макрос для удаления столбцов. Пример:

Columns("BV:RHU").Select
Range("RHU1").Activate
Selection.Delete Shift:=xlToLeft

Перед запуском макроса перепроверьте диапазон!

Добавить комментарий