Автофильтр excel vba: полное руководство с примерами

Фильтрация данных в excel с использованием расширенного фильтра

Формулы в сводных таблицах Excel

Сначала составим сводный отчет, где итоги будут представлены не только суммой. Начнем работу с нуля, с пустой таблицы. За одно узнаем как в сводной таблице добавить столбец.

  1. Добавим в отчет заголовок «Поставщик». Заголовок «Стоимость» три раза перетащим в поле «Значения» — в сводную таблицу добавятся три одинаковых столбца.
  2. Для первого столбца оставим значение «Сумма» для итогов. Для второго – «Среднее». Для третьего – «Количество».
  3. Поменяем местами значения столбцов и значения строк. «Поставщик» — в названия столбцов. «Σ значения» — в названия строк.

Сводный отчет стал более удобным для восприятия:

Научимся прописывать формулы в сводной таблице. Щелкаем по любой ячейке отчета, чтобы активизировать инструмент «Работа со сводными таблицами». На вкладке «Параметры» выбираем «Формулы» — «Вычисляемое поле».

Жмем – открывается диалоговое окно. Вводим имя вычисляемого поля и формулу для нахождения значений.

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

Экспериментируйте: инструменты сводной таблицы – благодатная почва. Если что-то не получится, всегда можно удалить неудачный вариант и переделать.

Как сделать автофильтр в Excel

Для включения необходимо щелкнуть в любом месте таблицы с данными, перейти на вкладку «Данные» — «Сортировка и фильтр». Нажать кнопку «Фильтр». Или нажмите комбинацию горячих клавиш CTRL+SHIFT+L.

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

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

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

Сделаем фильтрацию числовых значений:

  1. Нажимаем кнопку автофильтра у заголовка столбца с числовыми значениями. Выбираем «Числовые фильтры» — раскрывается список условий.
  2. Выберем, например, «больше или равно». Откроется пользовательский автофильтр в Excel.
  3. Зададим в качестве критерия для фильтрации значение «3000». Введем эти цифры в поле напротив условия.
  4. На листе останутся только те данные, которые соответствуют заданному критерию.

Чтобы снять фильтр, нажимаем на значок в заголовке столбца и выбираем «Снять фильтр…».

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

  1. Нажимаем кнопку автофильтра у заголовка «Цена». В списке «Числовых фильтров» выбираем оператор «Первые 10».
  2. Открывается меню «Наложение условия по списку». Определяемся, какие значения хотим видеть: наибольшие или наименьшие. С помощью счетчика задаем, сколько таких значений должно отобразиться в таблице.
  3. Если отбор будет производиться по числам, то назначаем условие «Элементов списка». Если необходимо отфильтровать значения в процентах, то выбираем «% от количества элементов».
  4. Чтобы закрыть окно и выполнить условие поиска, жмем ОК.

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

В качестве критерия можно задать несколько условий поиска.

Назначим фильтр для столбца «Дата»:

  1. Нажимаем кнопку автофильтра. Открываем выпадающий список «Фильтры по дате».
  2. Чтобы отобразить данные за второе полугодие 2014 г., назначим критерий «После». В открывшемся окне «Пользовательского автофильтра» для критерия «После» напишем условие «01.06.2014». Выберем функцию «И». Назначим второй критерий – «До». Условие – «31.12.2014». Дату можно вводить вручную, а можно выбрать в «Календаре».
  3. После нажатия кнопки ОК пользователю становится доступна информация за второе полугодие 2014 года.

Отфильтруем текстовый диапазон ячеек:

  1. Нажимаем кнопку у заголовка «Наименование». При наведении курсора на «Текстовые фильтры» откроется список доступных операторов сравнения, по которым можно сделать отбор.
  2. Допустим, нам нужно отобразить информацию по товарам, в названии которых есть цифра «2». Выбираем критерий «Содержит». Вводим условие «2».
  3. После нажатия ОК.

При назначении условий для пользовательского автофильтра можно пользоваться элементами подстановки:

  • «?» — заменяет один любой знак. Условие для фильтрации данных в столбце «Наименование» — «Содержит «1?»:
  • «*» — заменяет несколько знаков.

В конце любого списка фильтров (числовых, текстовых, по дате) есть «Настраиваемый фильтр». Эта кнопка тоже открывает окно пользовательского автофильтра в Excel.

Макро-рекордер — твой друг (или враг)

Мы можем легко получить код VBA для фильтров, включив
макро-рекордер, а затем применив один или несколько фильтров к диапазону /
таблице.

Вот шаги для создания макроса фильтра с помощью устройства
записи макросов:

  1. Включите рекордер макросов:
    1. Вкладка «Разработчик»> «Запись макроса».
    2. Дайте макросу имя, выберите, где вы хотите сохранить код, и нажмите ОК.
  2. Примените один или несколько фильтров, используя раскрывающиеся меню фильтров.
  3. Остановите рекордер.
  4. Откройте редактор VB (вкладка «Разработчик»> Visual Basic) для просмотра кода.

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

Код будет выглядеть примерно так:

Мы видим, что каждая строка использует метод AutoFilter для
применения фильтра к столбцу. Он также содержит информацию о критериях фильтра.

Мы видим, что каждая строка использует метод AutoFilter для
применения фильтра к столбцу. Он также содержит информацию о критериях фильтра.

Работа с мастером «Расширенного фильтра»

Самое сложное позади — Вы научились формировать критерии отбора. Остался один шаг. Выделяем диапазон с исходными данными (или любую его ячейку — Excel сам определит и выделит нужный массив) и находим на ленте команду «Дополнительно» во вкладке «Данные» в группе «Сортировка и Фильтр». Перед Вами появится окно «Расширенный фильтр»

1) задать исходный диапазон (он будет выбран автоматически при запуске фильтра),

2) определить диапазон условия (ваша мини-табличка с критериями, автоматически Excel может определить диапазон неточно, лучше каждый раз переназначать его заново), на этом шаге помним, что выделяем только заголовки и строки с критерием, пустые строки включать в диапазон нельзя ,

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

4) указать, стоит ли показать все записи, или вывести только уникальные.

После настройки нажимаем «ОК» и получаем желаемый результат.

Чтобы очистить фильтр, переместите курсор в шапку таблицы с отфильтрованными данными и воспользуйтесь командой «Очистить» на ленте, или примените Автофильтр (Ctrl+Shift+L).

Сортировка и фильтр по цвету с помощью функций

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

Функция цвета заливки ячейки на VBA

Для создания пользовательских функций перейдем в редактор Visual Basic (комбинация клавиш Alt + F11), создадим новый модуль и добавим туда код следующей функции:

Visual Basic

1 2

3

Public Function ColorFill(MyCell As Range)

ColorFill = MyCell.Interior.ColorIndex

End Function

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

Вернемся в Excel и применим новую функцию ColorFill — либо непосредственно введем формулу в ячейку, либо вызовем ее с помощью мастера функций (выбрав из категории Определенные пользователем). В дополнительном столбце прописываем код заливки ячейки:


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

Функция цвета текста ячейки на VBA

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

Visual Basic

1 2

3

Public Function ColorFont(MyCell As Range)

ColorFont = MyCell.Font.ColorIndex

End Function

Функция ColorFont в качестве значения возвращает числовой код цвета шрифта ячейки и принцип ее применения аналогичен примеру рассмотренному выше.

Фильтрация отдельных полей строк и столбцов

Кнопки фильтра в полях строк и столбцов, прикрепленные к названиям, позволяют фильтровать записи в конкретных группах значений источника данных. Для фильтрации данных в столбцах или строках сводной таблицы щелкните на такой кнопке и установите флажок равным значению (Выделить все) в верхней части раскрывающегося списка. Затем установите флажки всех групп или отдельных записей, итоговые значения которых вам нужны в сводной таблице, и щелкните на кнопке ОК.

Как и в случае фильтрации по полю фильтра, Excel заменяет стандартный значок конусообразной пиктограммой фильтра, свидетельствующей о том, что поле в настоящий момент отфильтровано по одному или нескольким своим значениям, которые и отображаются в сводной таблице. Чтобы снова отобразить все значения поля столбца или строки, щелкните на кнопке фильтра, а затем — на пункте (Выделить все) в самом верху раскрывающегося списка.

На скриншоте ниже показан пример сводной таблицы после фильтрации по дате (выбрана дата 1 января) и категории (выбраны Одежда, Питание и Хоз. Расходы).

Категория Хоз. Расходы не отображается в списке по причине отсутствия этой категории расходов за 1 января.

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

Автофильтр

  1. Выделить одну ячейку из диапазона данных.
  2. На вкладке Данные найдите группу Сортировка и фильтр .
  3. Щелкнуть по кнопке Фильтр .

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

Варианты фильтрации данных

  • Фильтр по значению – отметить флажком нужные значения из столбца данных, которые высвечиваются внизу диалогового окна.
  • Фильтр по цвету – выбор по отформатированной ячейке: по цвету ячейки, по цвету шрифта или по значку ячейки (если установлено условное форматирование).
  • Можно воспользоваться строкой быстрого поиска
  • Для выбора числового фильтра, текстового фильтра или фильтра по дате (в зависимости от типа данных) выбрать соответствующую строку. Появится контекстное меню с более детальными возможностями фильтрации:
  1. При выборе опции Числовые фильтры появятся следующие варианты фильтрации: равно, больше, меньше, Первые 10… и др.
  2. При выборе опции Текстовые фильтры в контекстном меню можно отметить вариант фильтрации содержит. , начинается с… и др.
  3. При выборе опции Фильтры по дате варианты фильтрации – завтра, на следующей неделе, в прошлом месяце и др.
  4. Во всех перечисленных выше случаях в контекстном меню содержится пункт Настраиваемый фильтр… , используя который можно задать одновременно два условия отбора, связанные отношением И – одновременное выполнение 2 условий, ИЛИ – выполнение хотя бы одного условия.

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

Отмена фильтрации

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

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

Чтобы быстро снять фильтрацию со всех столбцов необходимо выполнить команду Очистить на вкладке Данные

Срезы – это те же фильтры, но вынесенные в отдельную область и имеющие удобное графическое представление. Срезы являются не частью листа с ячейками, а отдельным объектом, набором кнопок, расположенным на листе Excel. Использование срезов не заменяет автофильтр, но, благодаря удобной визуализации, облегчает фильтрацию: все примененные критерии видны одновременно. Срезы были добавлены в Excel начиная с версии 2010.

Создание срезов

В Excel 2010 срезы можно использовать для сводных таблиц, а в версии 2013 существует возможность создать срез для любой таблицы.

Для этого нужно выполнить следующие шаги:

  1. Выделить в таблице одну ячейку и выбрать вкладку Конструктор .

  1. В диалоговом окне отметить поля, которые хотите включить в срез и нажать OK.

Форматирование срезов

  1. Выделить срез.
  2. На ленте вкладки Параметры выбрать группу Стили срезов , содержащую 14 стандартных стилей и опцию создания собственного стиля пользователя.

  1. Выбрать кнопку с подходящим стилем форматирования.

Чтобы удалить срез, нужно его выделить и нажать клавишу Delete.

Изменение итоговой функции сводной таблицы

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

Однако некоторые сводные таблицы требуют других итоговых функций, например Среднее или Количество.

Для изменения итоговой функции дважды щелкните на названии столбца Сумма по полю… Откроется диалоговое окно Параметры поля значений.

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

  • Количество. Подсчитывает количество элементов в определенной категории с учетом установленного фильтра (следует заметить, что эта функция используется по умолчанию для текстовых полей, назначаемых в качестве полей значений).
  • Среднее. Вычисляет среднее значение поля в конкретной категории с учетом установленного фильтра.
  • Максимум. Отображает максимальное числовое значение поля в конкретной категории с учетом установленного фильтра.
  • Минимум. Отображает минимальное числовое значение поля в конкретной категории с учетом установленного фильтра.
  • Произведение. Отображает произведение всех числовых полей в конкретной категории с учетом установленного фильтра.
  • Количество чисел. Вычисляет количество числовых значений в конкретной категории с учетом установленного фильтра (текстовые значения игнорируются).
  • Смещенное отклонение. Отображает стандартное отклонение для выборки, представленной данным полем в конкретной категории с учетом установленного фильтра.
  • Несмещенное отклонение. Отображает стандартное отклонение для генеральной совокупности, представленной полем в конкретной категории с учетом установленного фильтра.
  • Смещенная дисперсия. Отображает дисперсию выборки, представленной данным полем в конкретной категории с учетом установленного фильтра.
  • Несмещенная дисперсия. Отображает дисперсию генеральной совокупности, представленной данным полем в конкретной категории с учетом установленного фильтра.

После выбора новой итоговой функции в списке, находящемся на вкладке Операция диалогового окна Параметры поля вычислений, щелкните на кнопке ОК, и Excel применит вновь выбранную функцию к данным сводной таблицы.

Вот и всё! Теперь вы умеете создавать сводные таблицы в Excel, форматировать, сортировать и фильтровать данные.

Пустые ячейки и промежуточные итоги

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

Отберем в диапазоне с пустыми ячейками ячейки со значениями:

  1. Выделяем диапазон с данными и щелкаем по кнопке «Фильтр» (чтобы у заголовков появились «стрелочки»).
  2. Нажимаем кнопку у заголовка первого столбца. В меню фильтрации выбираем «Выделить все». Убираем выделение напротив значения «Пустые».

Чтобы выполнить команду, жмем ОК.

Все пустые строки будут удалены.

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

Сменился диапазон – сумма стала иной.

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

Понравилась статья? Поделиться с друзьями:
Самоучитель Брин Гвелл
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: