Размер папок в excel

 

cmepx

Пользователь

Сообщений: 15
Регистрация: 04.07.2018

Здравствуйте, почитал инструкцию

https://www.planetaexcel.ru/techniques/3/45/

но так и не смог применить для своего случая эти знания.
Может быть подскажете элегантное решение.
Дана таблица в экселе, где в одном столбце приведено точное название папки, не путь, а название. Соответственно во второй столбец необходимо вставить значение  — это размер папки. Например в гигабайтах.
Пробовал при помощи Power Query создать список фалов и потом консолидировать по имени папки. Но, видимо, слишком много значений и результата не выходит. Да и вообще, хочется как-то проще — без промежуточных табличек. С vba знаком только на уровне ctrl+c +v )))
Прошу вашей помощи или каких-то идей =)
Спасибо.

 

БМВ

Модератор

Сообщений: 21385
Регистрация: 28.12.2016

Excel 2013, 2016

#2

20.01.2020 17:55:50

Цитата
cmepx написал:
Дана таблица в экселе, где в одном столбце приведено точное название папки, не путь, а название. Соответственно во второй столбец необходимо вставить значение  — это размер папки.

на моем компе есть папка 1 и она не одна c таким именем, Вы можете сказать её размер? Также будет в растерянности и любой скрипт VBA.

По вопросам из тем форума, личку не читаю.

 

cmepx

Пользователь

Сообщений: 15
Регистрация: 04.07.2018

Зачем же так утрировать. Но согласен, что моя оплошность — не уточнил, где папки.
Папки находятся на отдельном жёстком диске в корне и имеют уникальное название. Надо узнать размер каждой папки первого (верхнего) уровня на диске. И да, на других дисках, нет копий этих папок или папок с таким же названием. За уникальность ручаюсь ))

Прикрепленные файлы

  • папки.png (41.28 КБ)

Изменено: cmepx21.01.2020 09:21:38

 

PooHkrd

Пользователь

Сообщений: 6602
Регистрация: 22.02.2017

Excel x64 О365 / 2016 / Online / Power BI

cmepx, т.е. вам нужно автоматически просканировать все диски, найти на них нужную вам папку и дать её размер?

Вот горшок пустой, он предмет простой…

 

cmepx

Пользователь

Сообщений: 15
Регистрация: 04.07.2018

Выше отписал. Нужно узнать размер папок в корне диска (верхнего уровня) только на одном диске.

 

vikttur

Пользователь

Сообщений: 47199
Регистрация: 15.09.2012

Не цитруйте без необходимости

 

artyrH

Пользователь

Сообщений: 2054
Регистрация: 01.07.2018

в Power Query
работает медленно. размер в Mb

 

БМВ

Модератор

Сообщений: 21385
Регистрация: 28.12.2016

Excel 2013, 2016

#8

21.01.2020 10:25:08

Цитата
artyrH написал:
работает медленно. размер в Mb

А иначе и не будет, у папки нет свойства размер и для его определения сканируются все вложенные папки и файлы.

Не всегда

Код
Set FSO = CreateObject("Scripting.FileSystemObject")
dirSize = FSO.GetFolder(dirPath).Size

Возможно поможет

Код
Sub test()
Const dirPath = "c:"
On Error Resume Next
Set FSO = CreateObject("Scripting.FileSystemObject")
i = 1
With Sheet1
.UsedRange.ClearContents
.Cells(1, 1) = "Folder Name"
.Cells(1, 2) = "Folder size MB"
For Each Folder In FSO.GetFolder(dirPath).subfolders
i = i + 1
    .Cells(i, 1) = Folder.Name
    .Cells(i, 2) = Folder.Size / 1024 / 1024
        If Err <> 0 Then
        .Cells(i, 2) = "NoAccess"
        Err.Clear
    End If
Next
End With
End Sub

Изменено: БМВ21.01.2020 11:08:49
(Убрал Set foder = FSO.GetFolder(Folder), а то и не мешает и лишнее :-) )

По вопросам из тем форума, личку не читаю.

 

PooHkrd

Пользователь

Сообщений: 6602
Регистрация: 22.02.2017

Excel x64 О365 / 2016 / Online / Power BI

artyrH, если хотите чтобы было быстро, то рекомендую использовать Folder.Contents вместо Folder.Files. Эта функция не сканирует все содержимое вложенных папок в отличие от, а показывает содержимое только указанной папки. при этом содержимое вложенных папок показано в виде таблиц, т.е. если нужно, то можно добраться до папки любого уровня вложенности. В таком случае все работает значительно быстрее.  ;)
БМВ, там все хуже, функция использованная Артемом сканирует вообще весь диск, а нужно сначала через Folder.Contents найти нужные юзеру папки, а потом уже через Folder.Files сканировать только их и считать, только их содержимое.

Изменено: PooHkrd21.01.2020 10:30:29

Вот горшок пустой, он предмет простой…

 

Alemox

Пользователь

Сообщений: 2183
Регистрация: 25.02.2013

#10

21.01.2020 10:55:35

Цитата
БМВ написал:
у папки нет свойства размер
Код
Sub Папка()
Dim FSO As Object
Set FSO = CreateObject("Scripting.FileSystemObject").GetFolder("C:UsersАлександрDownloads")
MsgBox Round(FSO.Size / 1048576, 1) & " МБайт"
End Sub

Изменено: Alemox21.01.2020 10:55:46

Мастерство программиста не в том, чтобы писать программы, работающие без ошибок.
А в том, чтобы писать программы, работающие при любом количестве ошибок.

 

БМВ

Модератор

Сообщений: 21385
Регистрация: 28.12.2016

Excel 2013, 2016

Alemox, выше уже давно исправил. :-)

По вопросам из тем форума, личку не читаю.

 

Alemox

Пользователь

Сообщений: 2183
Регистрация: 25.02.2013

Меня отвлекли поэтому убежал потом прибежал дописал, а вы смотрю уже исправили.  :)

Мастерство программиста не в том, чтобы писать программы, работающие без ошибок.
А в том, чтобы писать программы, работающие при любом количестве ошибок.

 

cmepx

Пользователь

Сообщений: 15
Регистрация: 04.07.2018

Спасибо всем за столь бурное обсуждение и оперативный ответ.
Сделал для примера небольшой списочек и скопировал скрипт. Поменял в скрипте букву диска.
Думал, что при запуске скрипта появятся данные в выделенной ячейке, но ничего не произошло. Скрипт отработал, но ничего не выдал.
Подскажите, как этот скрипт правильно применить.
Спасибо.

Прикрепленные файлы

  • book.xlsm (13.45 КБ)

 

БМВ

Модератор

Сообщений: 21385
Регистрация: 28.12.2016

Excel 2013, 2016

#14

21.01.2020 16:39:15

Заменить
With Sheet1
на
With Activesheet

Только список не нужен, он затрется, так как скрипт просканирует все что есть.
А для списка этот, проверку на наличие поленился делать

Код
Sub test1()
Const dirPath = "G:"
On Error Resume Next
Set FSO = CreateObject("Scripting.FileSystemObject")
With ActiveSheet
For Each mCELL In .Range(.Cells(1, 1), .Cells(1, 1).End(xlDown))
    mCELL.Offset(, 1) = FSO.GetFolder(dirPath & mCELL).Size / 1024 / 1024
    If Err <> 0 Then
        mCELL.Offset(, 1) = "NoAccess"
        Err.Clear
    End If
Next
End With
End Sub

По вопросам из тем форума, личку не читаю.

 

cmepx

Пользователь

Сообщений: 15
Регистрация: 04.07.2018

#15

21.01.2020 17:01:33

Спасибо! Здорово получилось.

Изменено: cmepx22.01.2020 09:23:05

Здравствуйте форумчане. На основании темы Список файлов в папке и других форумов
сделал для себя таблицу см. приложенный файл. Примечание: Чтобы все работало распаковать архив в корень диска С:

Остались вопросы которые не могу решить:
1 Сохранение таблицы и работа при запуске из C:Program FilesCatalog или D:Program FilesCatalog
2 Не работает «Создать список файлов» из корневых папок C: D: E:
3 Сохранять файл PDF в папке из которой создавался список и после сохранения открывать эту папку для просмотра. Сейчас он жестко создается в папке C:CatalogСписки папок
4 Вывод ошибки «Превышен лимит 300 строк» и потом завершение работы если в списке более 300 строк.
5 Иногда не показывает размер некоторых папок и приходится вручную дописывать их размер в байтах.
6 Бывает не срабатывает автоформат какой-то строки и она отображается без форматирования, хотя
другие строки норм.

Этот макрос выводит информацию о папке — например, её размер, и количество файлов в ней:

Sub ПодсчётКоличестваФайловВПапке()
    ' задаём папку
    FolderPath = "C:Documents and SettingsAdminРабочий стол"
 
    ' получаем характеристики папки
    Set FSO = CreateObject("Scripting.FileSystemObject")
    КоличествоФайловВПапкеБезУчётаПодпапок = FSO.GetFolder(FolderPath).Files.Count
    КоличествоПодпапок = FSO.GetFolder(FolderPath).SubFolders.Count
    РазмерПапкиВБайтах = FSO.GetFolder(FolderPath).Size
 
    ' подсчитываем количество файлов с учётом файлов в подпапках
    КоличествоФайловВПапкеСУчётомПодпапок = FilesCount(FolderPath)
 
    Debug.Print "В папке найдено " & КоличествоФайловВПапкеБезУчётаПодпапок & " файлов и " & _
                КоличествоПодпапок & " подпапок. Всего файлов: " & КоличествоФайловВПапкеСУчётомПодпапок
    Debug.Print "Папка занимает на диске " & РазмерПапкиВБайтах & " байтов (" & _
                FileOrFolderSize(РазмерПапкиВБайтах) & ")"
End Sub

Результат работы кода (в окне Immediate):

В папке найдено 186 файлов и 31 подпапок. Всего файлов: 4216
Папка занимает на диске 193158100 байтов (184 Мб)

Если же вам надо вывести список файлов на лист Excel — смотрите функцию FilenamesCollection:
http://excelvba.ru/code/FilenamesCollection

Код необходимых функций для подсчёта файлов:

Function FilesCount(ByVal FolderPath As String, Optional ByVal SearchDeep As Long = 999) As Long
    ' Получает в качестве параметра путь к папке FolderPath,
    ' и глубину поиска SearchDeep в подпапках (если SearchDeep=1, то подпапки не просматриваются).
    ' Возвращает количество найденных файлов
    ' (применяется рекурсивный вызов процедуры GetAllFileNamesUsingFSO)

    Set FSO = CreateObject("Scripting.FileSystemObject")    ' создаём экземпляр FileSystemObject
    FilesCount = GetFilesCountUsingFSO(FolderPath, FSO, SearchDeep)       ' подсчёт файлов
    Set FSO = Nothing
End Function
 
Function GetFilesCountUsingFSO(ByVal FolderPath As String, ByRef FSO, ByVal SearchDeep As Long)
    ' перебирает все файлы и подпапки в папке FolderPath, используя объект FSO
    ' перебор папок осуществляется в том случае, если SearchDeep > 1
    ' добавляет пути найденных файлов в коллекцию FileNamesColl
    'On Error Resume Next:
    Set curfold = FSO.GetFolder(FolderPath)
    If Not curfold Is Nothing Then    ' если удалось получить доступ к папке
        GetFilesCountUsingFSO = curfold.Files.Count
        SearchDeep = SearchDeep - 1    ' уменьшаем глубину поиска в подпапках
        If SearchDeep Then    ' если надо искать глубже
            For Each sfol In curfold.SubFolders    ' перебираем все подпапки в папке FolderPath
                GetFilesCountUsingFSO = GetFilesCountUsingFSO + GetFilesCountUsingFSO(sfol.Path, FSO, SearchDeep)
            Next
        End If
        Set fil = Nothing: Set curfold = Nothing    ' очищаем переменные
    End If
End Function

Для вывода понятной (отформатированной) информации об объёме папки или файла используется функция FileOrFolderSize:

Function FileOrFolderSize(ByVal s) As String
    Size = Fix(Val(s)):    ' If s = "" Then FileOrFolderSize = "<нет доступа>"
    Select Case Size
        Case Is < 1000: FileOrFolderSize = Size & " байт"
        Case Is < 10000: FileOrFolderSize = FormatNumber(Size / 1024, 1) & " Кб"
        Case Is < 1000000: FileOrFolderSize = FormatNumber(Size  1024, 0) & " Кб"
        Case Is < 10000000: FileOrFolderSize = FormatNumber(Size / 1024 / 1024, 1) & " Mб"
        Case Is < 1000000000: FileOrFolderSize = FormatNumber(Size / 1024 / 1024, 0) & " Мб"
        Case Else: FileOrFolderSize = FormatNumber(Size / 1024 / 1024 / 1024, 1) & " Гб"
    End Select
End Function

Ответы с готовыми решениями:

Не работает код, который получает размер папки
Здравствуйте, форумчане.
Есть код:

#include &lt;windows.h&gt;
#include &lt;iostream&gt;
using namespace…

Макрос, который закрывает документ Excel
Коллеги,
очень нужна маленькая подсказка. Кто -нибудь подскажет как написать макрос, который…

Макрос, который переворачивает таблицу (Excel)
Здраствуйте.
Помогите, пожалуйста, написать макрос который переворачивает таблицу.
Вот пример:…

создать макрос в excel замена текста в ячейке на картирку из папки
Добрый день. Нужна помощь в написании макроса, поскольку сама в этом вообще ничего не понимаю. Суть…

2

Книги Excel, как известно, становятся мучительно медленными и тяжелыми по мере добавления в них большего количества данных / формул / изображений.

Иногда легко избавиться от лишних хлопот и контролировать размер файла Excel, а иногда это не так.

А поскольку Excel не является веб-инструментом, большинство из нас работает и сотрудничает, отправляя файлы Excel по электронной почте. А большим файлом Excel, который весит 50 МБ, может быть сложно поделиться с коллегами / клиентами.

В моей последней работе мы использовали почтовый клиент Lotus Notes, который работает очень медленно, и отправка тяжелых файлов Excel через это была пыткой.

Хотя волшебного способа уменьшить размер книги Excel не существует, есть несколько приемов, которые можно использовать, чтобы немного сократить размер книги.

Примечание: влияние этих методов на уменьшение размера файла Excel будет зависеть от ваших данных. Для некоторых это может помочь уменьшить размер на 50%, а для некоторых это может привести к уменьшению размера только на 5%.

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

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

В зависимости от вашей рабочей тетради вы можете использовать один или несколько из этих советов.

Удалите ненужные рабочие листы / данные

Лучшие решения часто самые простые.

И эта техника больше соответствует здравому смыслу, а не волшебству Excel.

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

Это напрямую связано с размером файла Excel. Поэтому, как только вы удалите некоторые листы и сохраните книгу, вы сразу увидите уменьшенный размер файла.

Результаты теста:

Я создал файл Excel с 10 листами, каждый из которых содержит 2,6 миллиона точек данных (26 столбцов по 100 000 точек данных в каждом столбце).

В результате размер этой книги составляет 143 МБ (и требуется некоторое время, чтобы сохранить и открыть).

Теперь, когда я удалил пять листов, размер уменьшился вдвое (да).

Как видите, данные на вашем листе напрямую зависят от размера файла.

Преобразовать в двоичный формат (XLSB)

Знаете ли вы, что просто сохранив файл Excel в формате XLSB, можно уменьшить размер файла?

Да, это правда.

Все, что вам нужно сделать, это при сохранении книги использовать формат .xlsb.

Вот как это сделать:

  1. Щелкните вкладку Файл.
  2. Щелкните Сохранить как.
  3. Щелкните Обзор.
  4. В диалоговом окне «Сохранить как» измените тип файла на двоичная книга Excel (.xlsb).

Результаты теста

У меня была книга Excel, которая занимала 14,6 МБ места.

После преобразования того же файла в формат XLSB я смог уменьшить его размер до 10,4 МБ (уменьшение размера на ~ 28%).

Что такое XLSB?

Когда вы сохраняете файл Excel (.xlsx или .xlsm), он сохраняется в формате XML.

Например, если я изменю расширение файла XLSX на ZIP, а затем открою его, я получу вот что.

И если я дальше перейду в папку «xl», а затем перейду в папку рабочего листа, он покажет мне рабочие листы в этой книге (и эти рабочие листы сохранены как XML-документ).

Теперь сделаем то же самое с файлом XLSB.

Поэтому я сначала меняю расширение файла на ZIP, затем открываю его и нахожу Sheet1. Вот что вы получите:

Вы заметите, что и XLSX, и XLSB сохраняют лист в другом формате.

XLSX / XLSM сохраняет его как файл XML, а XLSB сохраняет его как двоичный (.bin) файл.

И, не вдаваясь в технические подробности, файлы XML имеют большой размер по сравнению с двоичным файлом.

Поэтому, когда вы сохраняете книгу Excel в формате XLSB, размер файла уменьшается. В приведенном выше примере уменьшение размера составило ~ 30%.

XLSB против XLSX / XLSM

Когда дело доходит до использования формата XLSB, уменьшение размера является огромным преимуществом. Но при работе с форматом XLSB нужно быть немного осторожным.

Преимущества формата XLSB:

  1. Уменьшает размер файла Excel. Это может быть полезно, если у вас есть большие файлы, и вы хотите поделиться ими по электронной почте. Вы можете быстро уменьшить размер, сохранив его в формате XLSB.
  2. Файлы XLSB открываются и сохраняются быстрее, чем файлы XML. Судя по проведенным мною ограниченным тестам, файлы XLSB открывались и сохранялись на 25-50% быстрее. Эта разница заметна только в больших файлах Excel. С файлами меньшего размера и XLSB, и XLSX работают быстро.

Хотя XLSB выглядит великолепно, есть несколько причин, по которым вам следует придерживаться файлов XLSX / XLSM:

  1. С форматом XLSB у вас нет возможности узнать, есть ли в нем макрос или нет. Это делает его более рискованным, поскольку кто-то может использовать его для выполнения вредоносного кода.
  2. Файлы XLSB кодируются в проприетарном формате файлов bin, в то время как XML — это читаемый формат файлов с открытым исходным кодом. Это означает, что если вы используете сторонние инструменты с Excel, лучше использовать формат XML.
  3. Power Query не может читать данные из файла XLSB. Поэтому, если вы используете Power Query, лучше хранить данные в форматах XLSX / XLSM.

Как правило, если размер вашего файла небольшой (менее 5 МБ), лучше придерживаться форматов XLSX / XLSM.

Основываясь на том, что я слышал от людей и читал на многих форумах, многие люди предпочитают использовать XLSB в качестве формата файла, когда дело доходит до использования Excel.

Вот хорошая статья о формате XLSB.

Удалите ненужные формулы

Слишком много формул увеличат размер файла вашей книги.

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

Вот шаги, чтобы быстро преобразовать формулы в значения в Excel:

  1. Выберите весь рабочий лист / набор данных.
  2. нажмите F5 ключ.
  3. В диалоговом окне «Перейти» нажмите «Special».
  4. В диалоговом окне «Перейти к специальному» выберите «Формулы».
  5. Щелкните ОК.

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

Теперь используйте следующие шаги, чтобы преобразовать эти формулы в значения:

  1. Скопируйте выделенные ячейки (Ctrl + C)
  2. Щелкните вкладку «Главная».
  3. В группе «Буфер обмена» нажмите «Вставить».
  4. Щелкните значок «Вставить значение».

Вышеупомянутые шаги преобразуют все ячейки с формулами в значения.

Результаты теста

Я создал файл Excel с 2,7 миллионами точек данных (1048576 * 26), а затем добавил три столбца с формулами (SUM, COUNT и AVERAGE).

Затем я преобразовал эти формулы в значения и сохранил файл под другим именем.

Вот результат:

Размер файла без формул примерно на 8% меньше (обратите внимание, что у меня было всего 3 столбца с формулами).

Если у вас много формул, можно увеличить размер.

ПРИМЕЧАНИЕ: Неустойчивые формулы могут действительно увеличить размер вашего файла. В рамках теста, когда я заменил формулу СУММ на изменчивую формулу (СМЕЩЕНИЕ), это привело к скачку размера файла (с 186 МБ до 198 МБ). Поэтому, если у вас есть изменчивые формулы, которые вы можете заменить энергонезависимыми формулами или преобразовать их в значения, это поможет вам уменьшить размер файла.

Сжать изображения (до и после загрузки)

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

Проблема с изображениями заключается в том, что при их сжатии также происходит снижение качества, которое может вам не понадобиться.

При работе с изображениями лучший способ сохранить небольшой размер файла Excel — это сжать изображения перед их вставкой в ​​Excel.

Хороший онлайн-инструмент для этого — TinyPNG (или вы можете использовать Photoshop или любой другой аналогичный инструмент).

Это бесплатный инструмент, который может уменьшить размер изображения до 90% и при этом сохранить приличное качество изображения.

Ниже приведен снимок экрана, на котором я смог сжать изображение размером 3,9 МБ до 331 КБ с минимальной потерей качества.

После того, как вы загрузили эти сжатые изображения в Excel, вы можете дополнительно сжать их, используя встроенную опцию Excel.

Вот шаги для сжатия изображения в Excel:

  1. Выберите изображение, которое вы хотите сжать.
  2. Перейдите на вкладку «Формат работы с изображениями». Это контекстная вкладка, которая появляется только при нажатии на картинку.
  3. В группе «Настроить» выберите параметр «Сжать изображение».
  4. В диалоговом окне «Сжать изображения»:
    • Снимите флажок «Применить только к этому изображению», если вы хотите сжать все изображения в книге.
    • Выберите «Электронная почта» (96 пикселей на дюйм) для максимального сжатия.
  5. Щелкните ОК.
  6. Сохраните файл.

Это сжимает все изображения и помогает уменьшить размер файла книги Excel.

Результаты теста:

Я использовал опцию сжатия изображения в Excel, используя одно изображение.

Ниже приведены результаты:

При использовании параметра сжатия изображения размер файла уменьшился с 445 КБ до 43 КБ (уменьшение размера файла примерно на 90%).

Это также будет зависеть от изображения. Изображение, которое уже сжато, может не привести к значительному уменьшению размера.

Удалите сводный кеш для экономии места

Если вы работаете со сводными таблицами и боретесь с большими файлами Excel, знание о кэше сводных таблиц может быть полезно.

Когда вы создаете сводную таблицу с использованием набора данных, Excel автоматически создает сводный кэш.

Сводный кеш — это объект, содержащий реплику источника данных.

Хотя вы его не видите, он является частью книги и связан со сводной таблицей. Когда вы вносите какие-либо изменения в сводную таблицу, она не использует источник данных, а использует сводный кеш.

Хотя вы думаете, что напрямую связаны с исходными данными, на самом деле вы получаете доступ к сводному кешу (а не к исходным данным), когда вносите изменения в сводную таблицу.

Теперь, когда вы создаете реплику набора данных, это займет немного места.

Итак, как только вы создадите сводную таблицу, вы заметите, что размер файла Excel увеличивается.

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

Теперь есть два способа уменьшить размер файла при работе со сводными таблицами.

  1. Сохраните исходные данные и удалите Pivot Cache
  2. Сохраните Pivot Cache и удалите исходные данные

Давайте посмотрим на оба этих метода.

Сохранить исходные данные и удалить сводный кеш

Когда вы закончите работу со сводной таблицей и сохраните ее, вы можете заставить Excel сохранять только исходные данные и итоговую сводную таблицу, но не сводный кеш.

Это сделает ваш файл Excel легче, и у вас будет возможность воссоздать кеш сводной таблицы, когда он вам понадобится в следующий раз.

Ниже указана разница в размере при сохранении файла Excel со сводным кешем и без него.

Вот шаги, чтобы НЕТ сохранить сводный кеш:

  1. Выберите любую ячейку в сводной таблице.
  2. Щелкните вкладку «Анализ».
  3. Щелкните значок «Параметры» сводной таблицы.
  4. В диалоговом окне «Параметры сводной таблицы» перейдите на вкладку «Данные».
  5. В параметрах данных сводной таблицы снимите отметку «Сохранить исходные данные в файл». Этот параметр гарантирует, что сводный кэш не сохраняется при сохранении книги (и помогает уменьшить размер файла Excel).
  6. Установите флажок «Обновлять данные при открытии файла». Этот параметр гарантирует, что сразу после открытия книги сводная таблица будет обновлена, а сводный кеш будет автоматически сгенерирован. Если вы не отметили этот параметр, вам придется обновить сводную таблицу вручную, чтобы создать сводный кеш.
  7. Щелкните ОК.

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

Сохраните сводный кеш и удалите исходные данные

Другой способ уменьшить размер файла Excel — удалить исходные данные сводной таблицы и оставить только сводный кеш.

Это работает так, как сводный кеш является зеркальным отражением ваших данных, и вы не получаете доступа к исходным данным при внесении изменений в сводную таблицу, вместо этого вы используете сводный кеш.

Ниже приведены результаты, когда я сохранил файл Excel без исходных данных.

Для этого просто удалите данные (либо удалив данные, либо рабочий лист с данными).

Если вы хотите вернуть исходные данные, дважды щелкните ячейку «Общий итог» сводной таблицы, и она мгновенно сгенерирует весь набор данных на новом листе.

Сжать файл (ZIP IT)

Это то, что вы можете делать вне приложения Excel.

Когда вы заархивируете файл Excel, вы сразу увидите уменьшение его размера примерно на 10-15%.

Затем вы можете отправить этот заархивированный файл по электронной почте, и человек, получивший его, может распаковать файл и использовать книгу Excel.

Вот шаги, чтобы заархивировать файл Excel (для Windows):

  1. Щелкните правой кнопкой мыши файл Excel.
  2. Наведите курсор на опцию Отправить.
  3. Нажмите на опцию «Сжатая (заархивированная) папка».

Это создаст заархивированный файл для выбранной книги Excel.

Вы также заметите уменьшение размера файла (как показано ниже).

Результаты теста

С помощью этой техники мне удалось уменьшить размер файла книги Excel на 8%.

Этот метод лучше подходит для файлов размером 20–50 МБ. По мере увеличения размера файла процентное уменьшение не очень велико.

Удалить форматирование данных

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

Хотя, основываясь на своих тестах, я заметил, что это не оказывает большого влияния.

Ниже приведены размеры двух книг Excel, одна с 2,6 миллиона точек данных (на одном листе), а другая с теми же данными, но с примененным к ней форматированием (цвет ячейки, граница и курсив).

Результаты теста

Вы можете видеть, что разница между двумя файлами не так уж велика (хотя она оказывает влияние, когда у вас много данных).

Размер файла с данными составляет 14,6 МБ, а файла с данными и форматированием — 14,9 МБ.

Поэтому, если вы хотите уменьшить размер файла книги Excel, вы можете найти ненужное форматирование. Удаление может сэкономить место на диске.

Вот шаги, чтобы мгновенно удалить все форматирование, сохранив при этом данные:

  1. Выберите весь набор данных (из которого вы хотите удалить форматирование).
  2. Щелкните вкладку «Главная».
  3. В группе редактирования нажмите «Очистить».
  4. Нажмите «Очистить форматы».
  5. Сохраните книгу.

Удалить условное форматирование

Как и обычное форматирование данных, условное форматирование также увеличивает размер файла.

Однако, основываясь на своих тестах, я заметил, что разница меньше (если у вас нет нескольких правил, применяемых к нескольким листам с огромными наборами данных).

Тем не менее, рекомендуется удалить условное форматирование из любого набора данных, где оно вам не нужно.

Помимо размера, есть еще одна веская причина убрать условное форматирование — СКОРОСТЬ.

Условное форматирование непостоянно и при любых изменениях на листе пересчитывается. Это может привести к замедлению работы книги.

Результаты теста

Я создал файл с 27,2 миллионами точек данных и применил к нему 5 правил условного форматирования.

Разница в размере составляет всего несколько килобайт.

Читайте также: Советы по созданию медленных таблиц Excel быстрыми

Советы по повышению производительности Excel

Хотя описанные выше методы помогут вам уменьшить размер файла Excel, вот несколько дополнительных советов по повышению производительности книг Excel:

  1. Избегайте использования летучих формул. Помимо увеличения размера файла, изменчивые формулы также замедляют работу ваших книг. Примеры изменчивых функций: RAND, TODAY, OFFSET, INDIRECT и т. Д.
  2. Если вам нужно создать сводку для большого набора данных, вместо использования формул, посмотрите, можете ли вы вместо этого использовать сводную таблицу. Сводная таблица работает быстро и интуитивно понятно по сравнению с формулами.
  3. Если вы извлекаете данные из нескольких источников или объединяете данные из нескольких файлов, используйте Power Query для получения и преобразования данных. Вы можете сохранить данные как соединение Power Query, а не хранить их на листе. Вы можете легко создать сводную таблицу, используя подключения, созданные с помощью Power Query.
  4. Преобразуйте табличные данные в таблицу Excel и используйте таблицу Excel в формулах. Это ускоряет работу вашей книги, а формулами, созданными с использованием структурированных ссылок Excel Table, легче управлять (поскольку они более интуитивно понятны).
  5. Избегайте ссылки на всю строку или столбец в формуле. Это повысит эффективность ваших формул.
  6. Если в вашей книге много формул, отключите автоматический расчет и переключитесь на ручной расчет. Таким образом, каждый раз при изменении рабочих листов формулы не будут пересчитываться. Вы можете внести это изменение, перейдя на вкладку «Формула» и изменив «Параметры расчета».

Надеюсь, вы найдете метод и советы из этого руководства полезными.

Что еще я мог бы добавить к этому руководству, чтобы сделать его более полезным? Пожалуйста, дайте мне знать в разделе комментариев.

Понравилась статья? Поделить с друзьями:
  • Размер панели быстрого доступа word
  • Размер листа книги excel
  • Размер листа word в пикселях
  • Размер листа microsoft word
  • Размер линейки в word