Как уменьшить размер файла и ускорить его
Если в один прекрасный момент вы осознаете, что ваш основной рабочий файл в Excel разбух до нескольких десятков мегабайт и во время открытия файла можно смело успеть налить себе кофе, то попробуйте пробежаться по описанным ниже пунктам – возможно один или несколько из них укоротят вашего “переростка” до вменяемых размеров и разгонят его “тормоза” 🙂
Проблема 1. Используемый диапазон листа больше, чем нужно
Если ваша таблица занимает 5 на 5 ячеек, то это отнюдь не означает, что Excel запоминает при сохранении этого файла только 25 ячеек с данными. Если вы в прошлом использовали какие-либо ячейки на этом листе, то они автоматически включаются в используемый диапазон (так называемый Used Range), который и запоминается при сохранении книги. Проблема в том, что при очистке используемых ячеек Excel далеко не всегда автоматически исключает их из используемого диапазона, т.е. начинает запоминать в файле больше данных, чем реально имеется.
Проверить это просто – нажмите на клавиатуре сочетание клавиш Ctrl+End и посмотрите куда переместится активная ячейка. Если она прыгнет на фактическую последнюю ячейку с данными на листе – отлично. А если вдруг ускачет сильно правее и/или ниже “в пустоту” – дело плохо: все эти ненужные пустые ячейки Excel тоже запоминает внутри файла.
Лечится это, тем не менее, достаточно легко:
- Выделите первую пустую строку под вашей таблицей
- Нажмите сочетание клавиш Ctrl+Shift+стрелка вниз – выделятся все пустые строки до конца листа.
- Удалите их, нажав на клавиатуре Ctrl+знак минус или выбрав на вкладке Главная – Удалить – Удалить строки с листа (Home – Delete – Delete rows).
- Повторите то же самое со столбцами.
- Повторите все вышеописанные процедуры на каждом листе, где при нажатии на Ctrl+End активная ячейка перемещается не на фактическую последнюю ячейку с данными а “в пустоту” ниже и/или правее.
- Сохраните файл (обязательно, иначе изменения не вступят в силу!)
Если в вашей книге очень много таких листов, то проще, наверное, использовать короткий макрос.
Проблема 2. Используется старый формат XLS вместо новых XLSX, XLSM и XLSB
Много лет и версий подряд еще с начала девяностых в Excel был один формат файлов – XLS. Это, конечно, убирало проблемы совместимости, но, сам по себе, этот формат давно устарел и имел много неприятных недостатков (большой размер, непрозрачность внутренней структуры данных, легкую повреждаемость и т.д.)
Начиная с верии Excel 2007 Microsoft ввела новые форматы сохранения файлов, использование которых заметно облегчает жизнь и – ваши файлы:
- XLSX – по сути является зазипованным XML. Размер файлов в таком формате по сравнению с Excel 2003 меньше, в среднем, в 5-7 раз.
- XLSM – то же самое, но с поддержкой макросов.
- XLSB – двоичный формат, т.е. по сути – что-то вроде скомпилированного XML. Обычно в 1.5-2 раза меньше, чем XLSX. Единственный минус: нет совместимости с другими приложениями кроме Excel, но зато размер – минимален.
Вывод: всегда и везде, где можно, переходите от старого формата XLS (возможно, доставшегося вам “по наследству” от предыдущих сотрудников) к новым форматам.
Проблема 3. Избыточное форматирование
Сложное многоцветное форматирование, само-собой, негативно отражается на размере вашего файла. А условное форматирование еще и ощутимо замедляет его работу, т.к. заставляет Excel пересчитывать условия и обновлять форматирование при каждом чихе.
Оставьте только самое необходимое, не изощряйтесь. Особенно в тех таблицах, которые кроме вас никто не видит. Для удаления только форматов (без потери содержимого!) выделите ячейки и выберите в выпадающем списке Очистить – Очистить форматы (Clear – Clear Formats) на вкладке Главная (Home):
Особенно “загружают” файл отформатированные целиком строки и столбцы. Т.к. размер листа в последних версиях Excel сильно увеличен (>1 млн. строк и >16 тыс. столбцов), то для запоминания и обрабоки подобного форматирования нужно много ресурсов. В Excel 2013-2016, кстати, появилась надстройка Inquire, которая содержит инструмент для быстрого избавления от подобных излишеств – кнопку Удалить избыточное форматирование (Clean Excess Cell Formatting):
Она мгновенно удаляет все излишнее форматирование до конца листа, оставляя его только внутри ваших таблиц и никак не повреждая ваши данные. Причем может это сделать даже для всех листов книги сразу.
Если вы не видите у себя в интерфейсе вкладку Inquire, то ее необходимо подключить на вкладке Разработчик – Надстройки COM (Developer – COM Addins).
Проблема 4. Ненужные макросы и формы на VBA
Большие макросы на Visual Basic и особенно пользовательские формы с внедренной графикой могут весьма заметно утяжелять вашу книгу. Для удаления:
- нажмите Alt+F11, чтобы войти в редактор Visual Basic
- найдите окно Project Explorer’а (если его не видно, то выберите в меню View – Project Explorer)
- удалите все модули и все формы (правой кнопкой мыши – Remove – дальше в окне с вопросом о экспорте перед удалением – No):
Также код может содержаться в модулях листов – проверьте их тоже. Также можно просто сохранить файл в формате XLSX без поддержки макросов – все макросы и формы умрут автоматически. Также можно воспользоваться инструментом Очистить книгу от макросов из надстройки PLEX.
Проблема 5. Именованные диапазоны
Если в вашем файле используются именованные диапазоны (особенно с формулами, динамические или получаемые при фильтрации), то имеет смысл от них отказаться в пользу экономии размера книги. Посмотреть список имеющихся диапазонов можно нажав Ctrl+F3 или открыв окно Диспетчера имен (Name Manager) на вкладке Формулы (Formulas):
Также вычищайте именованные диапазоны с ошибками (их можно быстро отобрать с помощью кнопки Фильтр в правом верхнем углу этого окна) – они вам точно не пригодятся.
Проблема 6. Фотографии высокого разрешения и невидимые автофигуры
Если речь идет о фотографиях, добавленных в книгу (особенно когда их много, например в каталоге продукции), то они, само-собой, увеличивают размер файла. Советую сжимать их, уменьшая разрешение до 96-150 точек на дюйм. На экране по качеству это совершенно не чувствуется, а размер файла уменьшает в разы. Для сжатия воспользуйтесь кнопкой Сжать рисунки (Compress pictures) на вкладке Формат (Format):
Кроме видимых картинок на листе могут содержаться и невидимые изображения (рисунки, фотографии, автофигуры). Чтобы увидеть их, выделите любую картинку и на вкладке Формат (Format) нажмите кнопку Область выделения (Selection Pane).
Для удаления вообще всех графических объектов на текущем листе можно использовать простой макрос:
Sub Delete_All_Pictures() 'макрос для удаления всех картинок на текущем листе Dim objPic As Shape For Each objPic In ActiveSheet.Shapes objPic.Delete Next objPic End Sub
Проблема 7. Исходные данные сводных таблиц
По-умолчанию Excel сохраняет данные для расчета сводной таблицы (pivot cache) внутри файла. Можно отказаться от этой возможности, заметно сократив размер файла, но увеличив время на обновление сводной при следующем открытии книги. Щелкните правой кнопкой мыши по сводной таблице и выберите команду Свойства таблицы (Pivot Table Properties) – вкладка Данные (Data) – снять флажок Сохранять исходные данные вместе с файлом (Save source data with file):
Если у вас несколько сводных таблиц на основе одного диапазона данных, то сократить размер файла здорово помогает метод, когда все сводные таблицы после первой строятся на основе уже созданного для первой таблицы кэша. В Excel 2000-2003 это делается выбором переключателя на первом шаге Мастера сводных таблиц при построении:
В Excel 2007-2016 кнопку Мастера сводных таблиц нужно добавлять на панель вручную – на ленте такой команды нет. Для этого щелкните по панели быстрого доступа правой кнопкой мыши и выберите Настройка панели быстрого доступа (Customize Quick Access Toolbar) и затем найдите в полном списке команд кнопку Мастер сводных таблиц (PivotTable and PivotChart Wizard):
Проблема 8. Журнал изменений (логи) в файле с общим доступом
Если в вашем файле включен общий доступ на вкладке Рецензирование – Доступ к книге (Review – Share Workbook), то внутри вашего файла Excel на специальном скрытом листе начинает сохраняться вся история изменений документа: кто, когда и как менял ячейки всех листов. По умолчанию, такой журнал сохраняет данные изменений за последние 30 дней, т.е. при активной работе с файлом, может запросто занимать несколько мегабайт.
Мораль: не используйте общий доступ без необходимости или сократите количество дней хранения данных журнала, используя вторую вкладку Подробнее (Advanced) в окне Доступ к книге. Там можно найти параметр Хранить журнал изменений в течение N дней (Keep change history for N days) или совсем отключить его:
Проблема 9. Много мусорных стилей
Про эту пакость я уже подробно писал ранее в статье о том, как победить ошибку “Слишком много форматов ячеек”. Суть, если кратко, в том, что если вы разворачиваете на вкладке Главная список Стили ячеек (Home – Cell Styles) и видите там очень много непонятных и ненужных стилей, то это плохо – и для размера вашего файла Excel и для его быстродействия.
Удалить ненужные стили можно с помощью макроса или готовой команды из надстройки PLEX.
Проблема 10. Много примечаний
Примечания к ячейкам, конечно, не самый вредный момент из всех перечисленных. Но некоторые файлы могут содержать большое количество текста или даже картинок в примечаниях к ячейкам. Если примечания не содержат полезной для вас информации, то их можно легко удалить с помощью команды на вкладке Главная – Очистить – Очистить примечания (Home – Clear – Clear Comments).
Содержание
- Процедура уменьшения размера книги
- Способ 1: уменьшение рабочего диапазона
- Способ 2: устранение избыточного форматирования
- Способ 3: удаление ссылок
- Способ 4: изменения формата
- Вопросы и ответы
При работе в Экселе некоторые таблицы достигают довольно внушительного размера. Это приводит к тому, что размер документа увеличивается, иногда достигая даже десятка мегабайт и более. Увеличение веса книги Excel приводит не только к увеличению занимаемого им места на жестком диске, но, что ещё более важно, к замедлению скорости выполнения различных действий и процессов в ней. Попросту говоря, при работе с таким документом программа Excel начинает тормозить. Поэтому актуальным становится вопрос оптимизации и сокращения размеров подобных книг. Давайте разберемся, как можно уменьшить размер файла в Экселе.
Процедура уменьшения размера книги
Оптимизировать разросшийся файл следует сразу по нескольким направлениям. Многие пользователи не догадываются, но зачастую книга Excel содержит много ненужной информации. Когда файл небольшой на это никто особого внимания не обращает, но если документ стал громоздким, нужно оптимизировать его по всем возможным параметрам.
Способ 1: уменьшение рабочего диапазона
Рабочий диапазон – это та область, действия в которой запоминает Excel. При пересчете документа программа пересчитывает все ячейки рабочей области. Но она не всегда соответствует тому диапазону, в котором действительно работает пользователь. Например, нечаянно поставленный пробел далеко внизу от таблицы расширит размер рабочего диапазона до того элемента, где этот пробел находится. Получается, что Эксель при пересчете каждый раз будет обрабатывать кучу пустых ячеек. Посмотрим, как можно устранить данную проблему на примере конкретной таблицы.
- Вначале взглянем на её вес перед оптимизацией, чтобы сравнить каковым он будет после выполнения процедуры. Это можно сделать, переместившись во вкладку «Файл». Переходим в раздел «Сведения». В правой части открывшегося окна указаны основные свойства книги. Первым же пунктом свойств является размер документа. Как видим, в нашем случае он составляет 56,5 килобайт.
- Прежде всего, следует выяснить, насколько реальная рабочая область листа отличается от той, которая действительно нужна пользователю. Это сделать довольно просто. Становимся в любую ячейку таблицы и набираем комбинацию клавиш Ctrl+End. Excel тут же перемещается к последней ячейке, которую программа считает конечным элементом рабочей области. Как видим, в конкретно нашем случае это строка 913383. Учитывая то, что реально таблица занимает только шесть первых строк, можно констатировать факт, что 913377 строчек являются, по сути, бесполезным грузом, который не только увеличивает размер файла, но, из-за постоянного пересчета всего диапазона программой при выполнении любого действия, приводит к замедлению работы над документом.
Конечно, в реальности такой большой разрыв между фактическим рабочим диапазоном и тем, который за него принимает Excel, бывает довольно редко, и мы взяли такое большое количество строк для наглядности. Хотя, иногда бывают даже случаи, когда рабочей областью считается вся площадь листа.
- Для того, чтобы устранить эту проблему, нужно удалить все строки, начиная от первой пустой и до самого конца листа. Для этого выделяем первую ячейку, которая находится сразу же под таблицей, и набираем сочетание клавиш Ctrl+Shift+стрелка вниз.
- Как видим, после этого были выделены все элементы первого столбца, начиная от указанной ячейки и до конца таблицы. Затем щелкаем по содержимому правой кнопкой мыши. В открывшемся контекстном меню выбираем пункт «Удалить».
Многие пользователи пытаются произвести удаление, нажав на кнопку Delete на клавиатуре, но это не правильно. Данное действие очищает содержимое ячеек, но не удаляет их сами. Поэтому в нашем случае оно не поможет.
- После того, как мы выбрали пункт «Удалить…» в контекстном меню, открывается небольшое окошко удаления ячеек. Выставляем в нем переключатель в позицию «Строку» и щелкаем по кнопке «OK».
- Все строки выделенного диапазона были удалены. Обязательно пересохраняем книгу, нажав на иконку дискеты в левом верхнем углу окна.
- Теперь посмотрим, как это нам помогло. Выделяем любую ячейку таблицы и набираем сочетание клавиш Ctrl+End. Как видим, Excel выделил последнюю ячейку таблицы, а это значит, что именно она теперь является последним элементом рабочей области листа.
- Теперь перемещаемся в раздел «Сведения» вкладки «Файл», чтобы узнать насколько сократился вес нашего документа. Как видим, он теперь составляет 32,5 Кбайт. Напомним, что до проведения процедуры оптимизации его размер составлял 56,5 Кб. Таким образом, он был уменьшен более чем в 1,7 раза. Но в данном случае главным достижением является даже не сокращение веса файла, а то, что теперь программа освобождена от пересчета фактически незадействованного диапазона, что существенно повысит скорость обработки документа.
Если в книге несколько листов, с которыми вы работаете, нужно провести подобную процедуру с каждым из них. Это позволит ещё больше уменьшить размер документа.
Способ 2: устранение избыточного форматирования
Ещё одним важным фактором, который делает документ Excel более тяжелым, является избыточное форматирование. Сюда можно отнести применение различных видов шрифтов, границ, числовых форматов, но в первую очередь это касается заливки ячеек различными цветами. Так что перед тем, как дополнительно отформатировать файл, нужно дважды подумать, а обязательно ли стоит это делать или без данной процедуры можно легко обойтись.
Особенно это касается книг, содержащих большое количество информации, которые сами по себе уже имеют немалый размер. Добавление форматирования в книгу может увеличить её вес даже в несколько раз. Поэтому нужно выбрать «золотую» середину между наглядностью представления информации в документе и размером файла, применять форматирование только там, где оно действительно необходимо.
Ещё одним фактором, связанным с форматированием, утяжеляющим вес, является то, что некоторые пользователи предпочитают отформатировать ячейки «с запасом». То есть, они форматируют не только саму таблицу, но и диапазон, который находится под ней, иногда даже до конца листа, с расчетом на то, что, когда в таблицу будут добавляться новые строки, не нужно будет каждый раз форматировать их снова.
Но неизвестно, когда именно будут добавляться новые строки и как много их добавится, а таким предварительным форматированием вы утяжелите файл уже прямо сейчас, что отрицательно также скажется и на скорости работы с данным документом. Поэтому, если вы и применили форматирование к пустым ячейкам, не входящим в таблицу, то его обязательно следует убрать.
- Прежде всего, нужно выделить все ячейки, которые расположены ниже диапазона с данными. Для этого кликаем по номеру первой пустой строки на вертикальной панели координат. Выделяется вся строчка. После этого применяем уже знакомую нам комбинацию горячих клавиш Ctrl+Shift+стрелка вниз.
- После этого весь диапазон строк ниже части таблицы, заполненной данными, будит выделен. Находясь во вкладке «Главная» кликаем по значку «Очистить», который расположен на ленте в блоке инструментов «Редактирование». Открывается небольшое меню. Выбираем в нем позицию «Очистить форматы».
- После этого действия во всех ячейках выделенного диапазона форматирование будет удалено.
- Таким же образом можно удалить ненужное форматирование в самой таблице. Для этого выделяем отдельные ячейки или диапазон, в котором считаем форматирование минимально полезным, нажимаем на кнопку «Очистить» на ленте и из списка выбираем пункт «Очистить форматы».
- Как видим, форматирование в выделенном диапазоне таблицы было полностью удалено.
- После этого возвращаем данному диапазону некоторые элементы форматирования, которые считаем уместными: границы, числовые форматы и т.д.
Вышеописанные действия помогут существенно уменьшить размер книги Excel и ускорить работу в ней. Но лучше изначально использовать форматирование только там, где оно по-настоящему уместно и необходимо, чем потом тратить время на оптимизацию документа.
Урок: Форматирование таблиц в Экселе
Способ 3: удаление ссылок
В некоторых документах очень большое количество ссылок, откуда подтягиваются значения. Это тоже может серьезно тормозить скорость работы в них. Особенно сильно на этот показать влияют внешние ссылки на другие книги, хотя и внутренние ссылки тоже негативно отражаются на быстродействии. Если источник, откуда ссылка берет информацию, не является постоянно обновляемым, то есть, смысл заменить ссылочные адреса в ячейках на обычные значения. Это способно увеличить скорость работы с документом. Посмотреть, ссылка или значение находится в конкретной ячейке, можно в строке формул после выделения элемента.
- Выделяем область, в которой содержатся ссылки. Находясь во вкладке «Главная», щелкаем по кнопке «Копировать» которая расположена на ленте в группе настроек «Буфер обмена».
В качестве альтернативы после выделения диапазона можно использовать сочетание горячих клавиш Ctrl+C.
- После того, как скопировали данные, не снимаем выделения с области, а кликаем по ней правой кнопкой мыши. Производится запуск контекстного меню. В нем в блоке «Параметры вставки» нужно произвести щелчок по значку «Значения». Он имеет вид пиктограммы с изображенными цифрами.
- После этого все ссылки в выделенной области будут заменены статистическими значениями.
Но нужно помнить, что этот вариант оптимизации книги Excel не всегда приемлем. Его можно применять только тогда, когда данные из первоисточника не являются динамическими, то есть, не изменятся со временем.
Способ 4: изменения формата
Ещё одним способом существенно сократить размер файла является изменение его формата. Этот способ, наверное, больше всех остальных помогает сжать книгу, хотя и выше представленными вариантами тоже нужно пользоваться в комплексе.
В Экселе существуют несколько «родных» форматов файлов – xls, xlsx, xlsm, xlsb. Формат xls являлся базовым расширением для программы версии Excel 2003 и ранее. Он является уже устаревшим, но, тем не мене, многими пользователями продолжает до сих пор применяться. К тому же, бывают случаи, когда приходится возвращаться к работе со старыми файлами, которые были созданы много лет назад ещё во времена отсутствия современных форматов. Не говоря уже о том, что с книгами с данным расширением работают многие сторонние программы, которые не умеют обрабатывать более поздние варианты документов Excel.
Нужно отметить, что книга с расширением xls имеет гораздо больший размер, чем современный её аналог формата xlsx, который в нынешнее время Эксель использует, как главный. В первую очередь, это связано с тем, что файлы xlsx, по сути, являются сжатыми архивами. Поэтому, если вы используете расширение xls, но желаете уменьшить вес книги, то это можно сделать просто пересохранив её в формате xlsx.
- Для конвертирования документа из формата xls в формат xlsx переходим во вкладку «Файл».
- В открывшемся окне сразу обращаем внимание на раздел «Сведения», где указано, что в настоящее время вес документа составляет 40 Кбайт. Далее щелкаем по наименованию «Сохранить как…».
- Открывается окно сохранения. При желании можно перейти в нем в новую директорию, но большинству пользователей удобнее хранить новый документ там же, где и исходник. Наименование книги при желании можно сменить в поле «Имя файла», хотя и не обязательно. Самым важным в данной процедуре является выставить в поле «Тип файла» значение «Книга Excel (.xlsx)». После этого можно жать на кнопку «OK» в нижней части окна.
- После того, как сохранение произведено, перейдем в раздел «Сведения» вкладки «Файл», чтобы посмотреть, насколько уменьшился вес. Как видим, он теперь составляет 13,5 Кбайт против 40 Кбайт до проведения процедуры конвертирования. То есть, одно только сохранение в современном формате позволило сжать книгу почти в три раза.
Кроме того, в Экселе существует ещё один современный формат xlsb или двоичная книга. В нем документ сохраняется в бинарной кодировке. Эти файлы весят ещё меньше, чем книги в формате xlsx. К тому же, язык, на котором они записаны, ближе всего для программы Excel. Поэтому она работает с такими книгами быстрее, чем с любым другим расширением. При этом книга указанного формата по функциональности и возможностям применения различных инструментов (форматирование, функции, графики и т.д.) ни в чем не уступает формату xlsx и превосходит формат xls.
Основная причина, почему xlsb не стал форматом по умолчанию в Excel, заключается в том, что с ним практически не умеют работать сторонние программы. Например, если вам нужно будет экспортировать информацию из Excel в программу 1C, то это можно будет сделать с документами xlsx или xls, но не с xlsb. Но, если вы не планируете перенос данных ни в какую-то стороннюю программу, то смело можете сохранять документ в формате xlsb. Это позволит вам уменьшить размер документа и увеличит скорость работы в нем.
Процедура сохранения файла в расширении xlsb аналогична той, какую мы проделывали для расширения xlsx. Во вкладке «Файл» кликаем по пункту «Сохранить как…». В открывшемся окне сохранения в поле «Тип файла» нужно выбрать вариант «Двоичная книга Excel (*.xlsb)». Затем щелкаем по кнопке «Сохранить».
Смотрим на вес документа в разделе «Сведения». Как видим, он уменьшился ещё больше и теперь составляет всего 11,6 Кбайт.
Подводя общие итоги, можно сказать, что если вы работает с файлом в формате xls, то наиболее эффективным способом уменьшить его размер является пересохранение в современных форматах xlsx или xlsb. Если же вы уже используете данные расширения файлов, то для уменьшения их веса следует правильно настроить рабочую область, убрать избыточное форматирование и ненужные ссылки. Наибольшую отдачу вы получите, если произведете все эти действия в комплексе, а не ограничитесь только одним вариантом.
Каждый, кто часто имеет дело с Excel и созданными в нем документами, рано или поздно сталкивается с проблемой медленной работы файла. «Файл тормозит, что делать?»
Такой вопрос часто можно увидеть на форумах, тематических сайтах или просто в списке запросов поисковика. Чаще всего подобная проблема сопровождается гипертрофированными размерами книги Excel. Из этой статьи вы узнаете несколько самых действенных способов уменьшения размера файла и ускорения его работы.
1. Уменьшаем размер используемого диапазона листа
Наиболее часто проблема увеличения размера книги и ее торможения бывает связана с разросшимся используемым диапазоном листа. Это тот диапазон, который Excel запоминает и с которым каждый раз работает. Если вы используете на листе всего несколько ячеек, но когда то у вас там была таблица в 1000 строк, то даже после ее удаления Excel будет обрабатывать все эти строки, тем самым замедляя работу файла.
Чтобы проверить, есть ли на листе лишние пустые столбцы и строки нужно нажать сочетание клавиш «Ctrl+End». Вы попадете в последнюю ячейку, которую использует программа. Если она явно за пределами ваших данных, то лишние строки и столбцы стоит удалить. Для этого в столбце А встаем в ячейку ниже последней нужной нам строки и нажимаем «Ctrl+Shift+End».
Выделятся все лишние строки. Удаляем их. То же самое повторяем для столбцов. Если их много – файл может зависнуть. В таком случае проще использовать небольшой макрос. Нажмите Alt+F11 или кнопку Visual Basic на вкладке Разработчик (как ее активировать – показывали здесь), вставьте новый модуль через меню Insert – Module и скопируйте туда код макроса:
Sub УдалениеЛишнихЯчеек()
For Each Sht In ActiveWorkbook.Worksheets
Sht.UsedRange
Next Sht
End Sub
Чтобы запустить его – на той же вкладке (1) нажмите кнопку “Макросы” (2), выберите в списке “УдалениеЛишнихЯчеек” (3) и нажмите кнопку “Выполнить” (4).
После проделывания всех операций обязательно сохраняем книгу.
2. Пересохраняем файл в другом формате
Если кто-то еще пользуется файлами в старом формате XLS, но уже сидит на более новом ПО (Excel 2007 и новее), то есть смысл пересохранить файл в один из новых форматов: XLSX, XLSM, XLSB. Они более современные, лучше оптимизированы, весят меньше и работают быстрее. Самый компактный из них – XSLB. При сохранении в этом формате размер файла существенно уменьшится (даже если пересохранить в него “новый” XLSX).
3. Удаляем лишние объекты из книги
Часто при копировании в файл данных из сторонних программ (например, 1С) вместе с ними копируются лишние объекты (фигуры, картинки и прочее), которые не всегда можно сразу заметить на листе. Чтобы проверить, есть ли в файле лишние объекты, нужно найти на ленте команду “Найти и выделить” (1) и выбрать “Область выделения” (2). Откроется список объектов листа (3).
Удалить все объекты можно выделив их и нажав клавишу Delete. Чтобы выделить все объекты снова используем команду “Найти и выделить” (1), выбираем пункт “Выделить группу ячеек” (2) и в открывшемся окне выбираем “Объекты” (3).
Если объектов много, то имеет смысл удалять их простым макросом. Код – ниже. Его нужно запустить поочередно на каждом листе.
Sub УдаляемОбъекты()
For each shp in ActiveSheet.Shapes
shp.delete
Next shp
End Sub
4. Уменьшаем размер сводных таблиц
Если в вашем файле есть сводные таблицы, то имеет смысл отключить хранение данных для них вместе с файлом. Это потребует обновления таблицы каждый раз при открытии книги, но уменьшит размер файла.
Для отключения этой опции выберите нужную сводную таблицу, перейдите в ее Параметры (правая кнопка мыши – Параметры сводной таблицы) и на вкладке Данные (1) снимите галочку с пункта “Сохранять исходные данные вместе с файлом” (2).
5. Заменяем формулы на значения
Если в файле содержится очень много формул, то нужно постараться везде, где это возможно, заменить их на значения. Постоянный пересчет сильно замедляет работу файла. И хоть его можно отключить (как – смотри здесь), рекомендуем избавляться ото всех лишних формул на листах.
6. Удаляем лишнее форматирование
Красивые документы нравятся всем, но чем более пёстрый лист у Вас получился, тем медленнее будет работать файл. А условное форматирование сказывается на быстродействии еще больше, так как основано на формулах и постоянно пересчитывается. Рекомендуем удалять все лишние форматы, оставляя только то, что действительно нужно (как очистить форматы – смотри здесь). Минимализм сейчас в моде.
Чтобы удалить лишние правила условного форматирования выбираем на вкладке “Главная” инструмент “Условное форматирование”, кнопка “Управление правилами”. В открывшемся диспетчере выбираем весь лист (1), выделяем лишнее правило (2) и удаляем его (3). Повторяем, пока не удалим всё лишнее.
И помните – никогда не используйте формат целиком для всего столбца или строки!
7. Удаляем лишние имена
Именованные диапазоны используют далеко не все, но обнаружить их в своем файле может каждый (например, они могли попасть туда при импорте или копировании данных). Весь список можно увидеть в диспетчере имен (“Формулы” – “Диспетчер имен”). Там же можно и удалить все ненужные имена.
Иногда в книге могут оказаться скрытые имена. Для их удаления придется воспользоваться небольшим макросом.
Sub УдалениеСкрытыхИмен()
For Each Nm In ActiveWorkbook.Names
If Nm.Visible = 0 Then
Nm.Delete
End If
Next Nm
End Sub
Заключение
Предложенные выше способы помогают решить подавляющее большинство “решаемых” проблем с быстродействием и размером книги. Однако, помните – если ваш рабочий файл содержит множество сводных таблиц, сложных формул, связи с другими документами, диаграммы и условные форматы – то вполне может быть, что и после всех проделанных операций он будет работать медленно и весить много. Это естественно, так как вычислительные способности компьютеров и самого Excel не безграничны. В таких случаях стоит задуматься о том, чтобы оптимизировать саму логику работы файла, подумать над перестраиванием всей модели вычислений. Если такая необходимость возникла, но самостоятельно решение придумать не удалось – можете обращаться к нам.
Ваши вопросы по статье можете задавать через нашего бота обратной связи в Telegram:
@ExEvFeedbackBot
Хитрости »
1 Май 2011 260517 просмотров
Как уменьшить размер файла
Данный вопрос возникает периодически на различных форумах. Решил написать некоторые рекомендации по уменьшению веса файла. Применив их Вы сможете понять – действительно ли Ваши данные настолько раздувают файл или же в файле имеется много лишнего.
Почему я это пишу. Бывают ситуации, когда в файле всего один лист, данных на нем на 1000 строк и 20 столбцов. Никаких формул, только значения. Но размер файла непомерно велик – скажем 10 Мб. Этого недопустимо. Или есть различные формулы, но Вы все равно считаете, что размер файла не соответствует тому, что должно бы быть.
Автоматически убрать все лишнее из файла так же поможет команда надстройки MulTEx Оптимизировать книгу
При этом описанные ниже причины, которые влияют на размер файла, так же могут влиять и на его “быстродействие”.
Следующие действия необходимо проделать на каждом листе книги:
- Первое, что необходимо вспомнить – а не в общем ли доступе файл? Если в Общем, то есть вероятность, что размер файла растет именно из-за этого. Дело в том, что при установке общего доступа к файлу, по умолчанию ведется журнал изменений, в который записываются все действия, произведенные в книге каждым пользователем за период, указанный в параметрах. Чем больше пользователей – тем сильнее раздувается файл. Как избавиться или изменить период:
Excel 2007 и выше: вкладка Рецензирование(Review) – Доступ к книге(Shared workbook);
Excel 2003: Сервис – Доступ к книге.
Переходим на вкладку Подробнее(Advanced) и выбираем Не хранить журнал изменений(don’t keep change history).
Еще лучше – снять общий доступ с книги, сохранить. Если общий доступ все еще нужен, то открываем книгу и опять даем общий доступ, но теперь устанавливаем кол-во дней, в течении которых надо хранить журнал. По умолчанию – 30, но можно сделать меньше, если файл сильно разбухает за озвученный период. Далее неплохо бы отключить оба пункта в разделе Включить в личное представление(Include in personal view): параметры печати(Print settings) и фильтры(Filter settings). Личные представления позволяют сохранять для каждого пользователя файла свои параметры печати и настройки фильтров. Чем больше разных пользователей – тем больше настроек сохраняется и тем выше вероятность замедления работы файла и увеличения его размеров. А практическая ценность этих пунктов в ущерб удобству и быстроте работы с файлом сомнительная.
После этого сохранить файл.
Подробнее про общий доступ можно прочитать в статье: Ведение журнала сделанных в книге изменений - Убедитесь, что лист не содержит ячеек без данных, но занимающих пространство. Перейдя на лист, нажмите Ctrl+End. Активируется последняя ячейка листа. Если она расположена ниже или правее последних нужных рабочих данных – то удалите все строки и столбцы после последних данных таблицы. Удалите полностью строки. Сделать это быстро можно так. Нажимаем Ctrl+End и попадаем на последнюю ячейку. Выделяем эту строку и нажимаем Ctrl+Shift+стрелка Вверх. Выделились все строки вместе с последней строкой данных. Удерживая Shift жмем на клавиатуре стрелку Вниз. Тоже самое и со столбцами.
- Посмотрите лист на предмет форматирования. Необходимо избегать форматирования ЦЕЛИКОМ столбцов либо строк. Это приводит к раздуванию файла. Все форматирование, выходящее за границы таблицы необходимо убрать. А еще лучше – вообще избегать излишнего форматирования, особенно если книгой никто, кроме Вас не пользуется. Вместо Заливки ячеек – Белым цветом ставьте “Нет заливки”.Чтобы убрать все форматирование из ячеек: выделяете необходимый диапазон и:
для Excel 2003: Правка – Очистить – Формат.
В Excel 2007-2010: вкладка Главная(Home) – Очистить(Clear) –Очистить форматы(Clear formats)
- Проверить наличие в книге лишних объектов. Удаляем объекты:
В Excel 2003: меню Правка– Перейти – Выделить – Объекты.
в Excel 2007-2010: вкладка Главная(Home) –Найти и выделить(Find & Select) –Выделение группы ячеек(Go To Special…) –Объекты(Objects).
Нажмите Delete. Все объекты на листе будут удалены. Правда есть небольшой шанс, что на листе так же есть и скрытые объекты. Тогда надо идти в редактор VBA (Alt+F11) –Ctrl+R. Отображаете окно свойств (F4). Находите объект ЭтаКнига(ThisWorkbook), в окне свойств этого объекта находите свойство DisplayDrawingObjects и ставите там значение – -4104–xlDisplayShapes. После этого переходите опять на лист и повторяете операции по выделению и удалению объектов, описанные выше. Зачем все так сложно? То, что мы не видим все объекты на листе не означает, что их там нет. Плюс могут быть объекты нулевых размеров. Как правило “невидимые” и “нулевые” объекты попадают на лист в результате копирования из других файлов и работы различных макросов. И в некоторых случаях объекты переносятся с нулевой длиной и шириной или вообще невидимые. Как следствие – объект не видно, но файл увеличивается в размерах. И при каждом копировании он начинает увеличиваться в размерах в геометрической прогрессии, т.к. по умолчанию объекты копируются вместе с ячейками. После нескольких таких копирований-вставок файл начинает дико тормозить даже при выделении ячеек. Выделили ячейку, хотите выделить другую – файл задумался на пару секунд. - Если привыкли помечать ячейки примечаниями (вкладка Рецензирование –Создать примечание), то самое время задуматься так ли это необходимо. Т.к. примечание это тоже объект, то их избыточное количество на листах так же может привести к замедлению работы файла. Удалить все примечания из выделенных ячеек очень просто: выделяем ячейки – вкладка Рецензирование –Удалить. Небольшой совет: если нет прямой необходимости в хранении примечаний именно таким образом, то самый правильный способ выделить отдельный столбец в таблице, в который заносить примечания для строки данных. Данный способ оптимально подходит для таблиц в правильной структуре. Тогда можно будет осуществлять поиск, сортировку и фильтрацию по примечаниям. Если примечаний уже много и информацию из них необходимо перенести в ячейки, то можно воспользоваться этим решением: Как получить текст примечания в ячейку?
- Еще очень хорошо помогает удаление всех формул и связей. Удаление не в прямом смысле: заменить все формулы значениями, которые они вернули. Это можно сделать без макросов: выделяем все ячейки с данными на листе-Копируем-правая кнопка мыши-Специальная вставка-Значения. Но это не очень удобно, если листов много, поэтому я заготовил для этого еще и макрос, который проделает эту операцию на всех листах активной книги:
Sub All_Cells_In_All_Sheets_To_Value() Dim wsSh As Object For Each wsSh In Sheets wsSh.UsedRange.Value = wsSh.UsedRange.Value Next wsSh End Sub
Данный макрос необходимо вставить в стандартный модуль и выполнить (нажав F5 в редакторе VBA или непосредственно с листа: нажать Alt+F8-выбрать макрос All_Cells_In_All_Sheets_To_Value-Выполнить)
- Так же в книге могут содержаться имена, которые тоже порой довольно неплохо прибавляют вес файлу. Посмотреть их можно, нажав сочетание клавиш Ctrl+F3на листе. Но может оказаться так, что имена будут скрытыми, и тогда Вы просто так их не увидите. Отобразить их можно при помощи следующего кода:
Sub All_Names_Visible() Dim objName As Object, wsSh As Object For Each objName In ActiveWorkbook.Names objName.Visible = True Next objName For Each wsSh In Sheets For Each objName In wsSh.Names objName.Visible = True Next objName Next wsSh End Sub
Данный код используется как и предыдущий. Он отображает все имена на листе и в книге. После выполнения макроса необходимо повторно нажать сочетание клавиш Ctrl+F3 на листе. Теперь Вы можете удалить ненужные Вам имена. Так же все имена можно сразу удалить при помощи следующего кода:
Sub Delete_All_Names() Dim objName As Object, wsSh As Object On Error Resume Next For Each objName In ActiveWorkbook.Names objName.Delete Next objName For Each wsSh In Sheets For Each objName In wsSh.Names objName.Delete Next objName Next wsSh End Sub
Только применяя данный код Вы должны быть уверены, что Вам действительно не нужны все имена в книге. Т.к. выполнив данный макрос Вы уже не сможете вернуть удаленные имена.
- Проверьте, нет ли в книге скрытых листов, на которых может содержаться ненужная информация и с которыми можно проделать операции, описанные выше. Как их обнаружить можно узнать, прочитав эти статьи:
Как сделать лист скрытым?
Как сделать лист очень скрытым
После всех этих действий необходимо сохранить файл, чтобы изменения вступили в силу. Только после этого станет видно изменился размер файла или нет. Я бы советовал сохранять файл как копию, если не уверены, что удалили действительно ненужное.
Также см.:
Оптимизировать книгу
Файл долго фильтрует строки/тормозит при фильтрации
Статья помогла? Поделись ссылкой с друзьями!
Видеоуроки
Поиск по меткам
Access
apple watch
Multex
Power Query и Power BI
VBA управление кодами
Бесплатные надстройки
Дата и время
Записки
ИП
Надстройки
Печать
Политика Конфиденциальности
Почта
Программы
Работа с приложениями
Разработка приложений
Росстат
Тренинги и вебинары
Финансовые
Форматирование
Функции Excel
акции MulTEx
ссылки
статистика
Таблицы XLS могут весить несколько десятков мегабайт. Хотя это не критично для жесткого диска или даже самой маленькой флешки, это очевидно по скорости обработки самого файла. Файлы большего размера открываются медленнее, и с ними труднее работать.
Предлагаем инструкцию, как уменьшить размер файла Excel и ускорить работу с таблицами.
Уменьшить рабочую зону
Часто рабочая область файла xls не совпадает с реальной. После открытия программа обрабатывает кучу пустых ячеек, которые не нужны для работы. В результате увеличивается и размер файла, и скорость работы с ним.
Откройте таблицу и нажмите Ctrl + End. Программа переместит вас на последнюю строку, которую она считает работающей. Сравните, где на самом деле заканчивается ваша таблица, и окончательный номер ячейки.
Например, ваша таблица на самом деле закончилась на строке 667, и после нажатия клавиш Ctrl + End мы переместились на строку 1971. Оказывается, нам не нужны 1304 строки, но программа считает их работающими и обрабатывает их, когда открыт.
Нам нужно удалить лишние строки и ячейки. Щелкните первую пустую ячейку под таблицей, нажмите комбинацию клавиш Ctrl + Shift и стрелку вниз. Это выделит все пустые строки. Забавно, что у нас было назначено более 60 000 линий, и только в 1971 году.
Щелкните правой кнопкой мыши выбранную область и нажмите «Удалить». Используйте только этот метод удаления, не нажимайте клавишу Delete, потому что клавиша Delete удаляет только содержимое таблицы, но не саму таблицу.
Далее появится сообщение, в котором мы выбираем «Линия» и нажимаем ОК.
Следует уменьшить размер файла и сократить время обработки.
Лишнее форматирование
Создайте таблицу с минимальным форматированием. Если специфика вашей работы не требует выделения ячеек другого цвета и другого вида, откажитесь от этого. Выделение текста полужирным шрифтом или курсивом также увеличивает нагрузку на таблицу на несколько десятых килобайта.
То же самое и с таблицей с картинками. Удалите ненужные изображения.
Сжатие изображений
Но если вы по-прежнему не можете удалить изображение или фотографию из документа, вы можете сжать их. Выберите изображение и щелкните вкладку «Формат». Здесь мы должны выбрать пункт «Сжать изображения».
Установим настройки, как показано на скриншоте, и нажмем «ОК».
Качество изображения не сильно изменилось, но его размер уменьшился. Это можно сделать с другими изображениями в таблице.
Удаление ссылок
Внутренние и внешние ссылки в таблице утяжеляют файл. По возможности избавьтесь от них. Но вы должны делать это осторожно: если ссылки в таблице динамические и со временем будут меняться, вы не можете удалить этот контент. Если таблица содержит статические данные, которые не изменятся, удалите ссылки (замените их статическими).
Выберите область подключения. Скопируйте их, используя клавиши Ctrl + C, затем щелкните правой кнопкой мыши выбранную область. В параметрах вставки выберите пункт «Значение» (указано на скриншоте).
Сохраняем файл в другом формате
Формат XLS несколько устарел, потому что теперь в новых версиях Excel используется сжатый формат XLSX (по аналогии с Word — docx). Чтобы сохранить файл в другом формате, щелкните контекстное меню «Файл» в верхней части таблицы и нажмите «Сохранить как».
Сохраните файл на свой компьютер, используя тип файла «Книга Excel». Таблица сохранится в новом расширении xlsx и будет меньше весить. Для сравнения: наш xls-файл весил чуть более 200 КБ, а новый xlsx был более чем вдвое меньше: 78 КБ.
Сжатие файлов онлайн
вы можете использовать онлайн-сервисы, предлагающие сжатие файлов Excel. Один из них — Wecompress (https://www.wecompress.com/ru/). Перейдем на главную страницу и выберем файл, нажав на знак плюса.
Дождитесь завершения сжатия. Чем больше размер файла, тем больше времени требуется.
В нашем случае сервис не нашел никаких элементов, которые можно было бы сжать, о чем мы видели сообщение.
Давайте попробуем взять таблицу с изображением, чтобы увидеть, насколько хорошо работает сервис.
Мы загрузили файл размером 856 КБ, и в результате получилось 356 КБ. Сервис быстро удалил ровно 500 КБ лишнего места.
Кстати, вы можете установить расширение Wecompress для браузера Google Chrome.
Итоги
Итак, есть 6 способов сжать электронную таблицу Excel:
- убрать ненужное форматирование;
- удалить пустые строки и ячейки;
- удалить ссылки или сделать их статичными;
- сжимать изображения внутри таблицы;
- изменить разрешение файла на xlsx;
- воспользуйтесь онлайн-сервисом и сожмите файл.