Excel тормозит на фильтрах

Хитрости »

18 Декабрь 2015              34176 просмотров


Файл долго фильтрует строки/тормозит при фильтрации

Довольно часто у пользователей после продолжительной работы в файле возникает проблема: при изменении условия фильтрации(Данные(Data)Фильтр(Filter)) файл задумывается на минуту, а порой и не на одну. В этой статье я решил рассмотреть несколько причин подобного поведения файла и как их устранить. При этом описанные методы так же справедливы и для случаев, когда файл тормозит не только при фильтрации, но и при других изменениях на листе:

  • Большое количество формул и функций на листах
    Самая частая причина — наличие большого количества формул на листе. Это могут быть и ВПР(VLOOKUP) с большим диапазоном данных и СУММПРОИЗВ(SUMPRODUCT), и любые другие в разных сочетаниях. Так же значительно тормозить файл могут формулы массива, даже если они не сложные. Добавить тормозов в этом случае могут еще и так называемые «летучие» функции, среди которых чаще других в файлах используются: ДВССЫЛ(INDIRECT), СМЕЩ(OFFSET), ЯЧЕЙКА(CELL). Почему летучие и чем они плохи? Обычно функции пересчитываются только в том случае, если изменена сама функция или любой аргумент этой функции(иными словами только если изменены ячейки, которые влияют на результат функции). Летучие же функции пересчитываются при любом изменении в книге(в том числе сортировка и фильтрация), независимо от того, повлияет ли это на расчет самой функции.
    Поэтому если файл напичкан формулами и тормозит, то первое, что надо сделать это найти те формулы, расчеты которых больше не нужны и преобразовать их в значения: Как удалить в ячейке формулу, оставив значения?. Оптимальный вариант: сделать копию файла, заменить все формулы значениями и просматривать данные в нем. Так же можно заменить ту часть формул, расчеты которых не нужны для выполнения текущей задачи.
    Если этот вариант не подходит, то необходимо убедиться, а нет ли летучих функций? Это можно сделать элементарно при помощи поиска: Ctrl+F, найти(find what) -Имя функции, кнопка Параметры(Options>>) -снять галку с Ячейка целиком(Match case). В этом случае надо попробовать оптимизировать расчеты, отказавшись от таких функций. Как правило в большинстве случаев их можно заменить другими функциями, но это потребует знания самих функций.
    Так же следует помнить, что функции и формулы могут быть не просто на листе, а так же содержаться в именованных диапазонах: Именованные диапазоны. Как пример таких формул: Динамические именованные диапазоны. Поэтому так же следует проверить наличие именованных диапазонов и удалить все неиспользуемые. С осторожностью удаляйте такие имена — как правило, если плохо в этом ориентируетесь удалять их можно только на копиях файлов и только после того, как все формулы в книге замените значениями


  • Наличие условного форматирования на листе
    Если в листе есть много условий условного форматирования, это вполне может приводить к медленной работе файла не только при изменения условий фильтрации, но и вообще при любом действии на листе — изменение данных в ячейках, сортировка, пересчет формул и т.д. Происходит это потому, что условное форматирование накладывает формат поверх реального и определяется на основании условий, которые могут определяться расположением и видимостью строк на листе. Поэтому следует убедиться в наличии/отсутствии условного форматирования и понять — а так ли оно нужно в этом файле? Если не знаете где искать условное форматирование: Основные понятия условного форматирования и как его создать
  • Разбиение на печатные страницы
    Очень сильно может замедлить работу файла разбиение листа на печатные страницы, особенно если рабочий диапазон(UsedRange) листа довольно большой. Почему этот режим тормозит? Потому что при каждом изменении на листе Excel будет просматривать каждую строку и столбец и обращаясь при этом к настройкам печати(принтера), перерисовывая границы печати на листе.
    Кто установил эти границы, если я сам этого не делал? По умолчанию после вывода листа на печать, независимо от настроек книги или принтера, Excel отображает линии разбиения листа Excel на печатные листы и не убирает их.
    Убрать печатные страницы можно через параметры:
    Excel 2003:
    СервисПараметры -вкладка ВидАвторазбиение на страницы
    Excel 2007:
    Кнопка ОфисПараметры Excel(Excel options) -вкладка Дополнительно(Advanced)Показывать разбиение на страницы(Show page breaks)
    Excel 2010-2013:
    ФайлПараметры(Options) -вкладка Дополнительно(Advanced)Показывать разбиение на страницы(Show page breaks)
  • Структура/Группировка данных
    Как ни странно, но на фильтр очень сильно влияет наличие структуры/группировки на листе. Устанавливается группировка через вкладку Данные(Data)Группировать(Group) или Данные(Data)Промежуточные итоги(Subtotal).
    При этом тормоза в файле могу проявиться не сразу, а после добавления определенного количества строк или столбцов.
    Делается группировка обычно для возможности компактно расположить на листе данные, относящиеся к определенной группе или категории. И это действительно удобно, но не стоит увлекаться. Если файл стал тормозить — попробуйте создать его копию и удалить всю структуру и группировки: Данные(Data)Разгруппировать(Ungroup)Удалить структуру(Clear Outline). Если это поможет — стоит задуматься: а так ли нужна была структура?
    И отдельно буду публиковать подборку советов из комментариев к статье:

  • перенос текста на строки тоже может быть причиной тормозов. Поэтому лучше его не выставлять там, где он не нужен(например, для ячеек с текстом, который помещается в ячейке и так). Где искать: вкладка ГлавнаяПереносить текст или правая кнопка мыши —Формат ячеек -вкладка ВыравниваниеПереносить текст.
  • фильтр тормозит внутри «умной таблицы»(Вставка(Insert)Таблица(Table)). Если тормоза проявляются внутри умных таблиц, или при работе с ними, или в формулах, ссылающихся на них — то имеет смысл проверить работу файла без этих таблиц. Для этого необходимо все умные таблицы преобразовать в обычные: правая кнопка мыши по любой ячейке умной таблицы —Таблица(Table)Преобразовать в диапазон(Convert to Range).
    Рекомендую проделывать это все на копии файла, т.к. восстанавливать некоторые возможности умных таблиц после из удаления может быть не так просто

Ну и конечно, все эти варианты могут сойтись в одном файле. В таком случае в файле достаточно будет меньшее количество каждого компонента для получения коктейля «Глубинный тормоз» :)

Так же советую ознакомиться со статьей: Как уменьшить размер файла. Она тоже может помочь с устранением тормозов.

Так же см.:
Excel тормозит/зависает при копировании ячейки/диапазона
Как уменьшить размер файла


Статья помогла? Поделись ссылкой с друзьями!

  Плейлист   Видеоуроки


Поиск по меткам



Access
apple watch
Multex
Power Query и Power BI
VBA управление кодами
Бесплатные надстройки
Дата и время
Записки
ИП
Надстройки
Печать
Политика Конфиденциальности
Почта
Программы
Работа с приложениями
Разработка приложений
Росстат
Тренинги и вебинары
Финансовые
Форматирование
Функции Excel
акции MulTEx
ссылки
статистика

 

Ольга М

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

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

Добрый день!

Помогите, может кто сталкивался.
Таблица — 15 столбцов и около 10 000 строк. Ссылок на другие книги нет, но есть ссылки на листы, есть простые формулы сцепить и округлить. Проблема возникает при фильтрации. Книга очень сильно подвисает.
Перевела в формат xlsb, удалил пустые строки и столбцы, ограничила фильтр таблицей с данными — не помогло. Скопировала отдельно лист и сделал все данные значениями — та же самая история. Удалила часть столбцов и часть строк — не дает эффекта. Перенесла на другой компьютер — тоже тормозит, перенесла на Mac — тоже не тянет. Ничего не помогает…

Подскажите, может кто сталкивался и решил проблему.

Изменено: vikttur17.08.2021 15:45:48

 

New

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

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

1. показать файл нам
2. попробуйте отключить автоматический пересчёт формул (меню Формулы — Параметры вычисления — Вручную) — помогает?

 

Jack Famous

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

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

OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome

#3

17.08.2021 15:53:14

Цитата
New: отключить автоматический пересчёт формул

Ольга М, пересчёт отфильтрованной умной таблицы идёт в десятки и сотни раз медленнее, чем без применённых фильтров
Один из

«приколов«

Excel  :D

Изменено: Jack Famous17.08.2021 15:54:32

Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄

 

Файл долго фильтрует строки/тормозит при фильтрации

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

Jack Famous

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

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

OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome

Дмитрий(The_Prist) Щербаков, приветствую!
Дим, у тебя там, кстати, нет про то, что «умные» таблицы тупят при фильтре  :D

Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄

 

Дмитрий(The_Prist) Щербаков

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

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

Профессиональная разработка приложений для MS Office

#6

17.08.2021 16:02:16

Цитата
Jack Famous написал:
«умные» таблицы тупят при фильтре

тут как бы…У меня они сами по себе не тупят при фильтре. Тупят, если они большие и с формулами всякими. Но они и без фильтра тупят, когда большие и с формулами, а про формулы уже есть первым пунктом…Спасибо, подумаю, как это обыграть и может добавлю в статью.

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

Jack Famous

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

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

OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome

#7

17.08.2021 16:29:33

Цитата
Дмитрий(The_Prist) Щербаков: Но они и без фильтра тупят, когда большие и с формулами

на работе реальная умная таблица на 600 тыс строк и 20 столбцов. Сортировать невозможно (макросом забрать массив в память, отсортировать и выплюнуть обратно — 5 сек), зато фильтровать с отключенным автопересчётом — без проблем. Наличие формул на фильтр не влияет, если, опять же, автопересчёт отключен

Изменено: Jack Famous17.08.2021 16:30:38

Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄

 

sokol92

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

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

#8

17.08.2021 17:04:26

Цитата
Ольга М написал:
есть простые формулы сцепить и округлить

При каждом изменении автофильтра происходит полный

пересчет

этих формул. Воспользуйте рекомендациями из #2 и #7.

Владимир

  • Remove From My Forums
  • Вопрос

  • Добрый день!

    Есть 2 схожих по содержимому файла MS Excel. В одном фильтр обрабатывает за считанные секунды, а во втором с задержкой и надписью: «Приложение не отвечает». В процессах при этом (на Windows XP) появляется процесс OFFLB.EXE.

    С другим файлом все нормально. Что может быть не так?


    Александр Щербаков

Ответы

  • Ответ крылся в «Условном форматировании» книги, сохраненной в формате Excel 97-2003. При удалении всех правил все заработало нормально.

    Решение подсказало копирование листа в новую книгу, которая при сохранении стала ругаться именно на условное форматирование.


    Александр Щербаков

    • Помечено в качестве ответа

      18 апреля 2011 г. 9:02

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

Несколько дней назад фильтрация на этом листе стала очень медленной. Фильтрация любого столбца по любому ключевому слову занимает около 5 секунд. Это довольно долго, потому что этот лист много фильтруется, и это раздражает.
Лист не имеет каких-либо формул или ссылок на другие листы или файлы.
При смене ячеек выполняется два макроса, но отключение обоих макросов не делает это быстрее.

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

У кого-нибудь есть идея, почему это может быть так медленно?

Обычно это происходит потому, что Excel считает, что набор данных намного больше, чем на самом деле. Например, если кто-то перешел к ячейке A1048576 и отформатировал ее, даже если она не выглядит иначе, теперь Excel считает, что у вас более миллиона строк. Проверьте это, выбрав ячейку A1 и нажав CTRL + End. Это приведет вас к тому, что Excel считает последней ячейкой на листе. Если это проблема, вы можете удалить все строки и / или столбцы после того, как заканчиваются ваши фактические данные, сохранить файл, закрыть его и снова открыть. Это должно помешать Excel видеть все эти пустые ячейки как часть данных. Если это не сработает, выберите ваши данные и вставьте их в новый файл.

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

Sub automatic_update_on()

   Application.Calculation = xlAutomatic

End Sub

Sub automatic_update_off()

   Application.Calculation = xlManual

End Sub

Шаг 1: Выбрать все (Ctrl+A)

Шаг 2: Перейдите в раздел Домашняя страница> Очистить> Очистить форматы.

Шаг 3: Сохраните файл и повторно примените фильтр.

Вы сделали Это работает для меня каждый раз; пожалуйста, дайте мне знать, если это работает для вас!

В этой статье расскажу, как я решил проблему с Excel у себя на работе раз и навсегда. А теперь постоянно делюсь этим решением с коллегами, а они в свою очередь подтверждают эффективность данных действий. Изначально проблема заключалась в том, что сотрудники каждый день по несколько раз жаловались на то, что Excel зависает при работе: долго открывает файлы, сохраняет, долго пересчитывает формулы и обновляет ячейки, а также наглухо зависает при перемещении по ячейкам, даже при простом клике, окно белеет и вылезает надпись «Программа не отвечает». Зависания Excel от 1 минуты до 30 минут были частой проблемой и головной проблемой для сисадминов, когда я только перешёл на новую работу, поэтому сразу решил заняться этой проблемой. Делалось это для того, чтобы

  • снять нагрузку с IT-отдела
  • наконец-то чтобы пользователи остались довольными.
  • повысить свою квалификацию в решении вопросов пользователей
  • выслужиться перед работодателем, куда ж без этого 🙂
  • написать данную статью и поделиться с вами, а благодаря вашим коментариям «Спасибо!» я получаю искреннее удовольствие.

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

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

1. Отключить аппаратное ускорение прорисовки (бесплатно)

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

  • Откройте меню Файл
  • Выберете подпункт Параметры
  • Дополнительно
  • Внизу найдите раздел Отображение (в старых версиях Экран)
  • Найдите пункт «Отключить аппаратное ускорение обработки изображения»
  • Поставьте на нём галочку
  • Перезапустите программу Excel и заодно окна Microsoft Office
  • Готово!

После этого у вас Excel будет работать быстрее и меньше тормозить. Особенно это даёт результат на компьютерах и ноутбуках со встроенной видеокартой, потому что аппаратное ускорение на таких видеокартах более чем сомнительно. Особенно меньше будет подвисать в моменты, когда в большом файле пересчитываются формулы по каждому «чиху» (перемещение по ячейкам, попытки копировать, вызвать контекстное меню, вставить, редактировать) или перерисовываются ячейки при изменении размеров окна.

2. Перейти на SSD (надо купить SSD)

Это универсальный способ для того, чтобы заставить операционную систему и программы быстрее открываться, работать, меньше тормозить. Если до этого Excel и Word у вас открывались за 5-20 секунд, то после перехода на твердотельные накопители это будет происходить за 1-2 секунды. Также Windows будет грузиться не 2-10 минут, а 10-15 секунд. Согласитесь, это очень большой прирост производительности. Вкупе с предыдущим пунктом — это самые действенные способы. Все нижеследующие способы менее эффективные, но тоже позволяют избавиться от тормозов Excel.

Более подробно про SSD я написал в своей статье Срочно переходите на SSD. Плюсы и минусы твердотельных накопителей, сравнение с простыми жёсткими дисками

3. Почистить папку TEMP, Temporary (бесплатно)

Временные файлы — это на самом деле большая проблема на компьютерах, где Windows установлен довольно давно и ни разу эта папка не чистилась. Папка временных файлов у каждого пользователя своя, её легко открыть введя в адресной строке %TEMP% и нажав Enter. Если в этой папке свыше 500-1000 файлов и огромное количество папок с перешифрованными названиями, а также весь список файлов и папок грузится очень долго, значит этот пункт вам очень сильно поможет. Дело в том, что все программы и службы в своей работе используют папку с временными файлами как некоторый отстойник, куда можно ненадолго распаковать файлы, закинуть копии, автосохоранять различные ситуации, закачивать обновления, скрипты. Но не все эти файлы также благополучно удаляются, как создаются. Естественно с течением времени она так набухает, что все программы, использующие эту папку начинают подтормаживать. Excel не исключение, он пытается туда сохранять промежуточные версии документов, пока вы не нажмёте Сохранить, и прочие данные. Соответственно как долго у вас эта папка открывается, также долго Excel может пытаться открыть или восстановить некоторые файлы.

Для решения этой проблемы надо почистить папку со временными файлами. Сделать это можно как вручную, выделив и нажать Delete. Но надо быть аккуратным, не удалить файлы, которые сейчас используются. Но я использую программу Ccleaner. Есть и другие аналоги, однако Ccleaner меня более чем устраивает, главное — не обращать внимание на рекламу и предложения перейти на полную PRO-версию. Скачать последнюю версию можно здесь https://www.ccleaner.com/ru-ru/ccleaner/builds. Выбирайте сокращенную версию, если она там имеется. Одно замечание — можете убирать галочку с «Файлы Cookie» в каждом браузере при стандартной очистке, чтобы у вас не слетала авторизация и не приходилось заново заходить в личные кабинеты и почту. Далее жмёте «Анализ», затем «Очистка». Если у вас удалилось больше 2 Гб, значит у вас очень захламлённый компьютер, данный пункт вам подошёл. Удаляйте временные файлы раз в месяц, полгода. Каждый день и неделю не надо, это уже перебор.

4. Почистить папку %appdata%/Microsoft/Excel от временных файлов (бесплатно)

Кроме папки TEMP, Excel также сохраняет временные копии в %appdata% (которая roaming)/Microsoft/Excel. Также как и в предыдущем пункте, здесь может много файлов лишь с одним отличием — все они принадлежат Excel, ничего лишнего не удалите. Но если вдруг в будущем вам потребуется восстановить какой-то файл, то у вас это не получится. Поэтому опять-таки будьте аккуратны, удаляйте вручную, здесь Ccleaner не поможет.

5. Удалите лишние стили (форматирование), которые наслаиваются при копировании из разных файлов (долго, бесплатно)

Этот способ поможет, если у вас Excel зависает при работе именно с одной конкретной таблицей. Бывает такое, что файл могут редактировать множество пользователей и каждый из них добавляет в файл что-то своё, применяет свои стили. Или, например, когда вы в один файл копируете таблицы и их куски с кучи разных файлов, собираете всё в одном файлике и он начинает тормозить. Особенно это заметно, когда применяется условное форматирование (кто пользуется Excel, тот знает), чересстрочные выделения и прочие стили заголовков, строк и столбцов. Из-за этого «компота», как говорил Медведев, Excel и тормозит. Поэтому если вам все эти форматирования неважны, а важнгы именно данные, то надо из удалить. Выделить диапазон ячеек или весь лист и в меню выбрать «Очистить форматирование». Иногда это не срабатывает ,потому что остаются ссылки и зависимости, а также невидимые объекты. На моей памяти одна сотрудница запихивала в маленькие ячейки 1 на 1 см фотографии по 5Мбайт и искренне удивлялась, почему этот файл долго открывается, обрабатывается и сохраняется.

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

6. Купите лицензию MS Office или последнюю версию офисного пакета (дорого, проблема может быть не в этом)

Вы не поверите, но бывает, что Excel зависает, если у вас пиратская версия, поэтому однозначно купите лицензию. Хоть Майкрософт Офис стоит дорого, но он стоит каждой копейки, ведь благодаря ему вы можете зарабатывать. А лицензионная версия часто работает без сбоев из-за ошибок активации, а также ошибок, связанных с патчами, кряками и активаторами. Просто купите, для дома версия стоит недорого.

И в том случае, если вы ещё пользуетесь версиями Microsoft Office 2007 или даже 2003, то пришла пора поставить новую версию. Некоторые функции в старых версиях отсутствует, также потихоньку сокращается совместимость файлов. Так, например, файлы, запароленные в свежей версии Excel, допустим 2016 или 2019, могут просто не открыться в версии 2007. Я уж молчу, что в 2003 изначально не было поддержки файлов xlsx и docx, над оставить патч, а в 2007 нет поддержки файлов формата odf и ods, также нет экспорта в PDF напрямую, возможности работы с pdf и многих других функций.

7. Отключите лишние надстройки

Чуть не забыл про этот пункт. Так как Excel очень мощная программа, то другие программы интегрируются в неё с помощью разных надстроек. Есть надстройки OneDrive, КонсультантПлюс, Foxit, антивирусов, конвертеров файлов и прочие. Пользуетесь вы ими редко, либо не пользуетесь совсем, а из-за них Excel зависает частенько. Поэтому лишние надстройки надо удалять. Делается это так:

  • Файл
  • Параметры
  • Надстройки
  • в пункте Активные надстройки приложений выбрать ненужные и отключить
  • Перезапустить Excel.

В принципе всё. Пользуйтесь на здоровье, работайте с Excel без тормозов, лагов и зависаний, редактируйте таблицы и не испытывайте неудобств. Если статья помогла и оказалась полезна, буду благодарен за комментарии и замечания или дополнения!

Отблагдарить автора статьи также можно переводом, +100 вам в карму!

Понравилась статья? Поделить с друзьями:
  • Excel тип ячейки текстовый
  • Excel торговля на бирже
  • Excel тип ячейки перечисляемый
  • Excel топ 10 сводная таблица
  • Excel тип ячейки дата