Если для фильтрации данных требуются сложные условия (например, Тип = «Фрукты» ИЛИ Продавец = «Егоров»), можно использовать диалоговое окно Расширенный фильтр.
Чтобы открыть диалоговое окно Расширенный фильтр, щелкните Данные > Дополнительно.
Расширенный фильтр |
Пример |
---|---|
Обзор расширенных условий фильтра |
|
Несколько условий, один столбец, любое из условий истинно |
Продавец = «Егоров» ИЛИ Продавец = «Грачев» |
Несколько условий, несколько столбцов, все условия истинны |
Тип = «Фрукты» И Продажи > 1000 |
Несколько условий, несколько столбцов, любое из условий истинно |
Тип = «Фрукты» ИЛИ Продавец = «Грачев» |
Несколько наборов условий, один столбец во всех наборах |
(Продажи > 6000 И Продажи < 6500) ИЛИ (Продажи < 500) |
Несколько наборов условий, несколько столбцов в каждом наборе |
(Продавец = «Егоров» И Продажи >3000) ИЛИ |
Условия с подстановочными знаками |
Продавец = имя со второй буквой «г» |
Обзор расширенных условий фильтра
Действие команды Дополнительно отличается от действия команды Фильтр в некоторых важных аспектах.
-
Она отображает диалоговое окно Расширенный фильтр, а не меню «Автофильтр».
-
Вы вводите расширенные условия в отдельном диапазоне условий на листе над диапазоном ячеек или таблицей, которую нужно отфильтровать. В качестве источника расширенных условий в Microsoft Office Excel используется отдельный диапазон условий в диалоговом окне Расширенный фильтр.
Образец данных
Этот пример данных используется для всех процедур, описанных в этой статье.
Эти данные включают четыре пустые строки над диапазоном списка, которые будут использоваться как диапазон условий (A1:C4) и диапазон списка (A6:C10). Диапазон условий содержит названия столбцов и по крайней мере одну пустую строку между значениями условий и диапазоном списка.
Для работы с этими данными выделите их в следующей таблице, скопируйте, а затем вставьте в ячейку A1 на новом листе Excel.
Тип |
Продавец |
Продажи |
Тип |
Продавец |
Продажи |
Напитки |
Шашков |
5 122 ₽ |
Мясо |
Егоров |
450 ₽ |
фрукты |
Грачев |
6328 ₽ |
Фрукты |
Егоров |
6544 ₽ |
Операторы сравнения
Операторы сравнения используются для сравнения двух значений. Результатом сравнения является логическое значение: ИСТИНА либо ЛОЖЬ.
Оператор сравнения |
Значение |
Пример |
---|---|---|
= (знак равенства) |
Равно |
A1=B1 |
> (знак «больше») |
Больше |
A1>B1 |
< (знак «меньше») |
Меньше |
A1<B1 |
>= (знак «больше или равно») |
Больше или равно |
A1>=B1 |
<= (знак «меньше или равно») |
Меньше или равно |
A1<=B1 |
<> (знак «не равно») |
Не равно |
A1<>B1 |
Использование знака равенства для ввода текста или значения
При вводе текста или значения в ячейке знак равенства (=) используется для обозначения формулы, поэтому Excel вычисляет то, что вы вводите. Однако при этом вы можете получить неожиданные результаты фильтрации. Чтобы указать оператор сравнения «равно» для текста или значения, введите условия в виде строкового выражения в соответствующей ячейке в диапазоне условий.
=»=
ввод
»
где ввод — искомый текст или значение. Например:
Вводится в ячейку |
Вычисляется и отображается |
---|---|
=»=Егоров» |
=Егоров |
=»=3000″ |
=3000 |
Учет регистра
При фильтрации текстовых данных в Excel не учитывается регистр букв. Однако для поиска с учетом регистра можно воспользоваться формулой. Пример см. в разделе Условия с подстановочными знаками.
Использование заранее определенных имен
Вы можете назвать диапазон Условия, и ссылка на диапазон автоматически появится в поле Диапазон условий. Вы также можете указать имя База данных для диапазона списка, который будет фильтроваться, и имя Извлечение для области, в которой вы собираетесь вставлять строки. Эти диапазоны автоматически появятся в полях Исходный диапазон и Поместить результат в диапазон соответственно.
Создание условий с помощью формулы
В качестве условия можно использовать значение, вычисленное с помощью формулы. Обратите внимание на важные моменты, указанные ниже.
-
Формула должна возвращать результат ИСТИНА или ЛОЖЬ.
-
Поскольку используется формула, введенное строковое выражение должно иметь обычный вид, а не тот, который показан ниже:
=»=
ввод
» -
Не используйте название столбца в качестве названия условия. Либо оставьте название условия пустым, либо используйте название, не являющееся названием столбца в диапазоне списка (в последующих примерах: «Среднее арифметическое» и «Точное совпадение»).
Если в формуле используется название столбца, а не относительная ссылка на ячейку или имя диапазона, в ячейке с условием будет выведено значение ошибки #ИМЯ? или #ЗНАЧ!. Эту ошибку можно проигнорировать, поскольку она не влияет на фильтрацию диапазона списка.
-
В формуле, которая используется для условий, необходимо использовать относительную ссылку для ссылки на соответствующую ячейку в первой строке данных.
-
Все остальные ссылки в формуле должны быть абсолютными.
Несколько условий, один столбец, любое из условий истинно
Логическое выражение: (Продавец = «Егоров» ИЛИ Продавец = «Грачев»)
-
Вставьте как минимум три пустые строки над диапазоном списка, которые можно использовать в качестве диапазона условий. Диапазон условий должен включать названия столбцов. Убедитесь, что есть по крайней мере одна пустая строка между значениями условий и диапазоном списка.
-
Чтобы найти строки, отвечающие нескольким условиям для одного столбца, введите условия непосредственно одно под другим в разных строках диапазона условий. Используя пример, введите:
Тип
Продавец
Продажи
=»=Егоров»
=»=Грачев»
-
Щелкните ячейку в диапазоне списка. Используя пример, щелкните любую ячейку в диапазоне A6:C10.
-
На вкладке Данные в группе Сортировка и фильтр нажмите кнопку Дополнительно.
-
Выполните одно из следующих действий:
-
Чтобы отфильтровать диапазон списка, скрыв строки, не отвечающие условиям, выберите вариант Фильтровать список на месте.
-
Чтобы отфильтровать список, скопировав строки, не отвечающие условиям, в другую область листа, выберите вариант Скопировать результат в другое место, щелкните в поле Поместить результат в диапазон, а затем щелкните левый верхний угол области, в которой нужно вставить строки.
Совет При копировании отфильтрованных строк в другое место можно указать, какие столбцы следует включить в операцию копирования. Перед фильтрацией скопируйте нужные названия столбцов в первую строку области, в которую вы собираетесь вставить отфильтрованные строки. При применении фильтра введите ссылку на скопированные названия столбцов в поле Поместить результат в диапазон. Тогда скопированные строки будут включать только те столбцы, названия которых вы скопировали.
-
-
В поле Диапазон условий введите ссылку на диапазон условий, включая названия условий. Используя пример, введите $A$1:$C$3.
Чтобы временно убрать диалоговое окно Расширенный фильтр, пока вы выбираете диапазон условий, нажмите кнопку Свернуть диалоговое окно .
-
Используя пример, получаем следующий отфильтрованный результат для диапазона списка:
Тип
Продавец
Продажи
Мясо
Егоров
450 ₽
фрукты
Грачев
6 328 ₽
Фрукты
Егоров
6 544 ₽
Несколько условий, несколько столбцов, все условия истинны
Логическое выражение: (Тип = «Фрукты» И Продажи > 1000)
-
Вставьте как минимум три пустые строки над диапазоном списка, которые можно использовать в качестве диапазона условий. Диапазон условий должен включать названия столбцов. Убедитесь, что есть по крайней мере одна пустая строка между значениями условий и диапазоном списка.
-
Чтобы найти строки, отвечающие нескольким условиям в нескольких столбцах, введите все условия в одной строке диапазона условий. Используя пример, введите:
Тип
Продавец
Продажи
=»=Фрукты»
>1 000
-
Щелкните ячейку в диапазоне списка. Используя пример, щелкните любую ячейку в диапазоне A6:C10.
-
На вкладке Данные в группе Сортировка и фильтр нажмите кнопку Дополнительно.
-
Выполните одно из следующих действий:
-
Чтобы отфильтровать диапазон списка, скрыв строки, не отвечающие условиям, выберите вариант Фильтровать список на месте.
-
Чтобы отфильтровать список, скопировав строки, не отвечающие условиям, в другую область листа, выберите вариант Скопировать результат в другое место, щелкните в поле Поместить результат в диапазон, а затем щелкните левый верхний угол области, в которой нужно вставить строки.
Совет При копировании отфильтрованных строк в другое место можно указать, какие столбцы следует включить в операцию копирования. Перед фильтрацией скопируйте нужные названия столбцов в первую строку области, в которую вы собираетесь вставить отфильтрованные строки. При применении фильтра введите ссылку на скопированные названия столбцов в поле Поместить результат в диапазон. Тогда скопированные строки будут включать только те столбцы, названия которых вы скопировали.
-
-
В поле Диапазон условий введите ссылку на диапазон условий, включая названия условий. Используя пример, введите $A$1:$C$2.
Чтобы временно убрать диалоговое окно Расширенный фильтр, пока вы выбираете диапазон условий, нажмите кнопку Свернуть диалоговое окно .
-
Используя пример, получаем следующий отфильтрованный результат для диапазона списка:
Тип
Продавец
Продажи
фрукты
Грачев
6 328 ₽
Фрукты
Егоров
6 544 ₽
Несколько условий, несколько столбцов, любое из условий истинно
Логическое выражение: (Тип = «Фрукты» ИЛИ Продавец = «Грачев»)
-
Вставьте как минимум три пустые строки над диапазоном списка, которые можно использовать в качестве диапазона условий. Диапазон условий должен включать названия столбцов. Убедитесь, что есть по крайней мере одна пустая строка между значениями условий и диапазоном списка.
-
Чтобы найти строки, отвечающие нескольким условиям в нескольких столбцах, где любое условие может быть истинным, введите эти условия в разных строках диапазона условий. Используя пример, введите:
Тип
Продавец
Продажи
=»=Фрукты»
=»=Грачев»
-
Щелкните ячейку в диапазоне списка. Используя пример, щелкните любую ячейку в диапазоне списка A6:C10.
-
На вкладке Данные в группе Сортировка и фильтр нажмите кнопку Дополнительно.
-
Выполните одно из следующих действий:
-
Чтобы отфильтровать диапазон списка, скрыв строки, не отвечающие условиям, выберите вариант Фильтровать список на месте.
-
Чтобы отфильтровать список, скопировав строки, не отвечающие условиям, в другую область листа, выберите вариант Скопировать результат в другое место, щелкните в поле Поместить результат в диапазон, а затем щелкните левый верхний угол области, в которой нужно вставить строки.
Совет: При копировании отфильтрованных строк в другое место можно указать, какие столбцы следует включить в операцию копирования. Перед фильтрацией скопируйте нужные названия столбцов в первую строку области, в которую вы собираетесь вставить отфильтрованные строки. При применении фильтра введите ссылку на скопированные названия столбцов в поле Поместить результат в диапазон. Тогда скопированные строки будут включать только те столбцы, названия которых вы скопировали.
-
-
В поле Диапазон условий введите ссылку на диапазон условий, включая названия условий. Используя пример, введите $A$1:$B$3.
Чтобы временно убрать диалоговое окно Расширенный фильтр, пока вы выбираете диапазон условий, нажмите кнопку Свернуть диалоговое окно .
-
Используя пример, получаем следующий отфильтрованный результат для диапазона списка:
Тип
Продавец
Продажи
фрукты
Грачев
6 328 ₽
Фрукты
Егоров
6 544 ₽
Несколько наборов условий, один столбец во всех наборах
Логическое выражение: ( (Продажи > 6000 И Продажи < 6500 ) ИЛИ (Продажи < 500) )
-
Вставьте как минимум три пустые строки над диапазоном списка, которые можно использовать в качестве диапазона условий. Диапазон условий должен включать названия столбцов. Убедитесь, что есть по крайней мере одна пустая строка между значениями условий и диапазоном списка.
-
Чтобы найти строки, отвечающие нескольким наборам условий, каждый из которых содержит условия для одного столбца, используйте несколько столбцов с одинаковым заголовком. Используя пример, введите:
Тип
Продавец
Продажи
Продажи
>6 000
<6 500
<500
-
Щелкните ячейку в диапазоне списка. Используя пример, щелкните любую ячейку в диапазоне списка A6:C10.
-
На вкладке Данные в группе Сортировка и фильтр нажмите кнопку Дополнительно.
-
Выполните одно из следующих действий:
-
Чтобы отфильтровать диапазон списка, скрыв строки, не отвечающие условиям, выберите вариант Фильтровать список на месте.
-
Чтобы отфильтровать список, скопировав строки, не отвечающие условиям, в другую область листа, выберите вариант Скопировать результат в другое место, щелкните в поле Поместить результат в диапазон, а затем щелкните левый верхний угол области, в которой нужно вставить строки.
Совет: При копировании отфильтрованных строк в другое место можно указать, какие столбцы следует включить в операцию копирования. Перед фильтрацией скопируйте нужные названия столбцов в первую строку области, в которую вы собираетесь вставить отфильтрованные строки. При применении фильтра введите ссылку на скопированные названия столбцов в поле Поместить результат в диапазон. Тогда скопированные строки будут включать только те столбцы, названия которых вы скопировали.
-
-
В поле Диапазон условий введите ссылку на диапазон условий, включая названия условий. Используя пример, введите $A$1:$D$3.
Чтобы временно убрать диалоговое окно Расширенный фильтр, пока вы выбираете диапазон условий, нажмите кнопку Свернуть диалоговое окно .
-
Используя пример, получаем следующий отфильтрованный результат для диапазона списка:
Тип
Продавец
Продажи
Мясо
Егоров
450 ₽
фрукты
Грачев
6 328 ₽
Несколько наборов условий, несколько столбцов в каждом наборе
Логическое выражение: ( (Продавец = «Егоров» И Продажи > 3000) ИЛИ (Продавец = «Грачев» И Продажи > 1500) )
-
Вставьте как минимум три пустые строки над диапазоном списка, которые можно использовать в качестве диапазона условий. Диапазон условий должен включать названия столбцов. Убедитесь, что есть по крайней мере одна пустая строка между значениями условий и диапазоном списка.
-
Чтобы найти строки, отвечающие нескольким наборам условий, каждый из которых содержит условия для нескольких столбцов, введите каждый набор условий в отдельных столбцах или строках. Используя пример, введите:
Тип
Продавец
Продажи
=»=Егоров»
>3 000
=»=Грачев»
>1 500
-
Щелкните ячейку в диапазоне списка. Используя пример, щелкните любую ячейку в диапазоне списка A6:C10.
-
На вкладке Данные в группе Сортировка и фильтр нажмите кнопку Дополнительно.
-
Выполните одно из следующих действий:
-
Чтобы отфильтровать диапазон списка, скрыв строки, не отвечающие условиям, выберите вариант Фильтровать список на месте.
-
Чтобы отфильтровать список, скопировав строки, не отвечающие условиям, в другую область листа, выберите вариант Скопировать результат в другое место, щелкните в поле Поместить результат в диапазон, а затем щелкните левый верхний угол области, в которой нужно вставить строки.
Совет При копировании отфильтрованных строк в другое место можно указать, какие столбцы следует включить в операцию копирования. Перед фильтрацией скопируйте нужные названия столбцов в первую строку области, в которую вы собираетесь вставить отфильтрованные строки. При применении фильтра введите ссылку на скопированные названия столбцов в поле Поместить результат в диапазон. Тогда скопированные строки будут включать только те столбцы, названия которых вы скопировали.
-
-
В поле Диапазон условий введите ссылку на диапазон условий, включая названия условий. Используя пример, введите $A$1:$C$3. Чтобы временно убрать диалоговое окно Расширенный фильтр, пока вы выбираете диапазон условий, нажмите кнопку Свернуть диалоговое окно .
-
Используя пример, получим следующий отфильтрованный результат для диапазона списка:
Тип
Продавец
Продажи
фрукты
Грачев
6 328 ₽
Фрукты
Егоров
6 544 ₽
Условия с подстановочными знаками
Логическое выражение: Продавец = имя со второй буквой «г»
-
Чтобы найти текстовые значения с совпадающими знаками в некоторых из позиций, выполните одно или несколько действий, описанных ниже.
-
Чтобы найти строки, в которых текстовое значение в столбце начинается с определенной последовательности знаков, введите эти знаки, не используя знак равенства (=). Например, если ввести условие Бел, будут найдены строки с ячейками, содержащими слова «Белов», «Беляков» и «Белугин».
-
Воспользуйтесь подстановочными знаками.
Используйте
Чтобы найти
? (вопросительный знак)
Любой символ (один)
Пример: условию «стро?а» соответствуют результаты «строфа» и «строка»* (звездочка)
Любое количество символов
Пример: условию «*-восток» соответствуют результаты «северо-восток» и «юго-восток»~ (тильда), за которой следует ?, * или ~
Вопросительный знак, звездочку или тильду
Пример: условию «ан91~?» соответствует результат «ан91?»
-
-
Вставьте как минимум три пустые строки над диапазоном списка, которые можно использовать в качестве диапазона условий. Диапазон условий должен включать названия столбцов. Убедитесь, что есть по крайней мере одна пустая строка между значениями условий и диапазоном списка.
-
В строках под названиями столбцов введите условия, которым должен соответствовать результат. Используя пример, введите:
Тип
Продавец
Продажи
=»=Мя*»
=»=?г*»
-
Щелкните ячейку в диапазоне списка. Используя пример, щелкните любую ячейку в диапазоне списка A6:C10.
-
На вкладке Данные в группе Сортировка и фильтр нажмите кнопку Дополнительно.
-
Выполните одно из следующих действий:
-
Чтобы отфильтровать диапазон списка, скрыв строки, не отвечающие условиям, выберите вариант Фильтровать список на месте
-
Чтобы отфильтровать список, скопировав строки, не отвечающие условиям, в другую область листа, выберите вариант Скопировать результат в другое место, щелкните в поле Поместить результат в диапазон, а затем щелкните левый верхний угол области, в которой нужно вставить строки.
Совет: При копировании отфильтрованных строк в другое место можно указать, какие столбцы следует включить в операцию копирования. Перед фильтрацией скопируйте нужные названия столбцов в первую строку области, в которую вы собираетесь вставить отфильтрованные строки. При применении фильтра введите ссылку на скопированные названия столбцов в поле Поместить результат в диапазон. Тогда скопированные строки будут включать только те столбцы, названия которых вы скопировали.
-
-
В поле Диапазон условий введите ссылку на диапазон условий, включая названия условий. Используя пример, введите $A$1:$B$3.
Чтобы временно убрать диалоговое окно Расширенный фильтр, пока вы выбираете диапазон условий, нажмите кнопку Свернуть диалоговое окно .
-
Используя пример, получаем следующий отфильтрованный результат для диапазона списка:
Тип
Продавец
Продажи
Напитки
Шашков
5 122 ₽
Мясо
Егоров
450 ₽
фрукты
Грачев
6 328 ₽
Дополнительные сведения
Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.
Расширенный фильтр и немного магии
У подавляющего большинства пользователей Excel при слове «фильтрация данных» в голове всплывает только обычный классический фильтр с вкладки Данные — Фильтр (Data — Filter):
Такой фильтр — штука привычная, спору нет, и для большинства случаев вполне сойдет. Однако бывают ситуации, когда нужно проводить отбор по большому количеству сложных условий сразу по нескольким столбцам. Обычный фильтр тут не очень удобен и хочется чего-то помощнее. Таким инструментом может стать расширенный фильтр (advanced filter), особенно с небольшой «доработкой напильником» (по традиции).
Основа
Для начала вставьте над вашей таблицей с данными несколько пустых строк и скопируйте туда шапку таблицы — это будет диапазон с условиями (выделен для наглядности желтым):
Между желтыми ячейками и исходной таблицей обязательно должна быть хотя бы одна пустая строка.
Именно в желтые ячейки нужно ввести критерии (условия), по которым потом будет произведена фильтрация. Например, если нужно отобрать бананы в московский «Ашан» в III квартале, то условия будут выглядеть так:
Чтобы выполнить фильтрацию выделите любую ячейку диапазона с исходными данными, откройте вкладку Данные и нажмите кнопку Дополнительно (Data — Advanced). В открывшемся окне должен быть уже автоматически введен диапазон с данными и нам останется только указать диапазон условий, т.е. A1:I2:
Обратите внимание, что диапазон условий нельзя выделять «с запасом», т.е. нельзя выделять лишние пустые желтые строки, т.к. пустая ячейка в диапазоне условий воспринимается Excel как отсутствие критерия, а целая пустая строка — как просьба вывести все данные без разбора.
Переключатель Скопировать результат в другое место позволит фильтровать список не прямо тут же, на этом листе (как обычным фильтром), а выгрузить отобранные строки в другой диапазон, который тогда нужно будет указать в поле Поместить результат в диапазон. В данном случае мы эту функцию не используем, оставляем Фильтровать список на месте и жмем ОК. Отобранные строки отобразятся на листе:
Добавляем макрос
«Ну и где же тут удобство?» — спросите вы и будете правы. Мало того, что нужно руками вводить условия в желтые ячейки, так еще и открывать диалоговое окно, вводить туда диапазоны, жать ОК. Грустно, согласен! Но «все меняется, когда приходят они ©» — макросы!
Работу с расширенным фильтром можно в разы ускорить и упростить с помощью простого макроса, который будет автоматически запускать расширенный фильтр при вводе условий, т.е. изменении любой желтой ячейки. Щелкните правой кнопкой мыши по ярлычку текущего листа и выберите команду Исходный текст (Source Code). В открывшееся окно скопируйте и вставьте вот такой код:
Private Sub Worksheet_Change(ByVal Target As Range) If Not Intersect(Target, Range("A2:I5")) Is Nothing Then On Error Resume Next ActiveSheet.ShowAllData Range("A7").CurrentRegion.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range("A1").CurrentRegion End If End Sub
Эта процедура будет автоматически запускаться при изменении любой ячейки на текущем листе. Если адрес измененной ячейки попадает в желтый диапазон (A2:I5), то данный макрос снимает все фильтры (если они были) и заново применяет расширенный фильтр к таблице исходных данных, начинающейся с А7, т.е. все будет фильтроваться мгновенно, сразу после ввода очередного условия:
Так все гораздо лучше, правда?
Реализация сложных запросов
Теперь, когда все фильтруется «на лету», можно немного углубиться в нюансы и разобрать механизмы более сложных запросов в расширенном фильтре. Помимо ввода точных совпадений, в диапазоне условий можно использовать различные символы подстановки (* и ?) и знаки математических неравенств для реализации приблизительного поиска. Регистр символов роли не играет. Для наглядности я свел все возможные варианты в таблицу:
Критерий | Результат |
гр* или гр | все ячейки начинающиеся с Гр, т.е. Груша, Грейпфрут, Гранат и т.д. |
=лук | все ячейки именно и только со словом Лук, т.е. точное совпадение |
*лив* или *лив | ячейки содержащие лив как подстроку, т.е. Оливки, Ливер, Залив и т.д. |
=п*в | слова начинающиеся с П и заканчивающиеся на В т.е. Павлов, Петров и т.д. |
а*с | слова начинающиеся с А и содержащие далее С, т.е. Апельсин, Ананас, Асаи и т.д. |
=*с | слова оканчивающиеся на С |
=???? | все ячейки с текстом из 4 символов (букв или цифр, включая пробелы) |
=м??????н | все ячейки с текстом из 8 символов, начинающиеся на М и заканчивающиеся на Н, т.е. Мандарин, Мангостин и т.д. |
=*н??а | все слова оканчивающиеся на А, где 4-я с конца буква Н, т.е. Брусника, Заноза и т.д. |
>=э | все слова, начинающиеся с Э, Ю или Я |
<>*о* | все слова, не содержащие букву О |
<>*вич | все слова, кроме заканчивающихся на вич (например, фильтр женщин по отчеству) |
= | все пустые ячейки |
<> | все непустые ячейки |
>=5000 | все ячейки со значением больше или равно 5000 |
5 или =5 | все ячейки со значением 5 |
>=3/18/2013 | все ячейки с датой позже 18 марта 2013 (включительно) |
Тонкие моменты:
- Знак * подразумевает под собой любое количество любых символов, а ? — один любой символ.
- Логика в обработке текстовых и числовых запросов немного разная. Так, например, ячейка условия с числом 5 не означает поиск всех чисел, начинающихся с пяти, но ячейка условия с буквой Б равносильна Б*, т.е. будет искать любой текст, начинающийся с буквы Б.
- Если текстовый запрос не начинается со знака =, то в конце можно мысленно ставить *.
- Даты надо вводить в штатовском формате месяц-день-год и через дробь (даже если у вас русский Excel и региональные настройки).
Логические связки И-ИЛИ
Условия записанные в разных ячейках, но в одной строке — считаются связанными между собой логическим оператором И (AND):
Т.е. фильтруй мне бананы именно в третьем квартале, именно по Москве и при этом из «Ашана».
Если нужно связать условия логическим оператором ИЛИ (OR), то их надо просто вводить в разные строки. Например, если нам нужно найти все заказы менеджера Волиной по московским персикам и все заказы по луку в третьем квартале по Самаре, то это можно задать в диапазоне условий следующим образом:
Если же нужно наложить два или более условий на один столбец, то можно просто продублировать заголовок столбца в диапазоне критериев и вписать под него второе, третье и т.д. условия. Вот так, например, можно отобрать все сделки с марта по май:
В общем и целом, после «доработки напильником» из расширенного фильтра выходит вполне себе приличный инструмент, местами не хуже классического автофильтра.
Ссылки по теме
- Суперфильтр на макросах
- Что такое макросы, куда и как вставлять код макросов на Visual Basic
- Умные таблицы в Microsoft Excel
Вывести на экран информацию по одному / нескольким параметрам можно с помощью фильтрации данных в Excel.
Для этой цели предназначено два инструмента: автофильтр и расширенный фильтр. Они не удаляют, а скрывают данные, не подходящие по условию. Автофильтр выполняет простейшие операции. У расширенного фильтра гораздо больше возможностей.
Автофильтр и расширенный фильтр в Excel
Имеется простая таблица, не отформатированная и не объявленная списком. Включить автоматический фильтр можно через главное меню.
- Выделяем мышкой любую ячейку внутри диапазона. Переходим на вкладку «Данные» и нажимаем кнопку «Фильтр».
- Рядом с заголовками таблицы появляются стрелочки, открывающие списки автофильтра.
Если отформатировать диапазон данных как таблицу или объявить списком, то автоматический фильтр будет добавлен сразу.
Пользоваться автофильтром просто: нужно выделить запись с нужным значением. Например, отобразить поставки в магазин №4. Ставим птичку напротив соответствующего условия фильтрации:
Сразу видим результат:
Особенности работы инструмента:
- Автофильтр работает только в неразрывном диапазоне. Разные таблицы на одном листе не фильтруются. Даже если они имеют однотипные данные.
- Инструмент воспринимает верхнюю строчку как заголовки столбцов – эти значения в фильтр не включаются.
- Допустимо применять сразу несколько условий фильтрации. Но каждый предыдущий результат может скрывать необходимые для следующего фильтра записи.
У расширенного фильтра гораздо больше возможностей:
- Можно задать столько условий для фильтрации, сколько нужно.
- Критерии выбора данных – на виду.
- С помощью расширенного фильтра пользователь легко находит уникальные значения в многострочном массиве.
Как сделать расширенный фильтр в Excel
Готовый пример – как использовать расширенный фильтр в Excel:
- Создадим таблицу с условиями отбора. Для этого копируем заголовки исходного списка и вставляем выше. В табличке с критериями для фильтрации оставляем достаточное количество строк плюс пустая строка, отделяющая от исходной таблицы.
- Настроим параметры фильтрации для отбора строк со значением «Москва» (в соответствующий столбец таблички с условиями вносим = «=Москва»). Активизируем любую ячейку в исходной таблице. Переходим на вкладку «Данные» — «Сортировка и фильтр» — «Дополнительно».
- Заполняем параметры фильтрации. Исходный диапазон – таблица с исходными данными. Ссылки появляются автоматически, т.к. была активна одна из ячеек. Диапазон условий – табличка с условием.
- Выходим из меню расширенного фильтра, нажав кнопку ОК.
В исходной таблице остались только строки, содержащие значение «Москва». Чтобы отменить фильтрацию, нужно нажать кнопку «Очистить» в разделе «Сортировка и фильтр».
Как пользоваться расширенным фильтром в Excel
Рассмотрим применение расширенного фильтра в Excel с целью отбора строк, содержащих слова «Москва» или «Рязань». Условия для фильтрации должны находиться в одном столбце. В нашем примере – друг под другом.
Заполняем меню расширенного фильтра:
Получаем таблицу с отобранными по заданному критерию строками:
Выполним отбор строк, которые в столбце «Магазин» содержат значение «№1», а в столбце стоимость – «>1 000 000 р.». Критерии для фильтрации должны находиться в соответствующих столбцах таблички для условий. На одной строке.
Заполняем параметры фильтрации. Нажимаем ОК.
Оставим в таблице только те строки, которые в столбце «Регион» содержат слово «Рязань» или в столбце «Стоимость» — значение «>10 000 000 р.». Так как критерии отбора относятся к разным столбцам, размещаем их на разных строках под соответствующими заголовками.
Применим инструмент «Расширенный фильтр»:
Данный инструмент умеет работать с формулами, что дает возможность пользователю решать практически любые задачи при отборе значений из массивов.
Основные правила:
- Результат формулы – это критерий отбора.
- Записанная формула возвращает результат ИСТИНА или ЛОЖЬ.
- Исходный диапазон указывается посредством абсолютных ссылок, а критерий отбора (в виде формулы) – с помощью относительных.
- Если возвращается значение ИСТИНА, то строка отобразится после применения фильтра. ЛОЖЬ – нет.
Отобразим строки, содержащие количество выше среднего. Для этого в стороне от таблички с критериями (в ячейку I1) введем название «Наибольшее количество». Ниже – формула. Используем функцию СРЗНАЧ.
Выделяем любую ячейку в исходном диапазоне и вызываем «Расширенный фильтр». В качестве критерия для отбора указываем I1:I2 (ссылки относительные!).
В таблице остались только те строки, где значения в столбце «Количество» выше среднего.
Чтобы оставить в таблице лишь неповторяющиеся строки, в окне «Расширенного фильтра» поставьте птичку напротив «Только уникальные записи».
Скачать пример работы с расширенным фильтром
Нажмите ОК. Повторяющиеся строки будут скрыты. На листе останутся только уникальные записи.
Фильтр по многоуровневым группам
- Подробности
- Создано 18 Февраль 2015
Содержание |
---|
Файл |
Как это работает |
Ограничения |
Еще один пример, расширяющий грани возможного в Excel.
Требуется создать фильтр, отбирающий записи в таблице сгруппированных по определенному полю. Главное условие — группы могут быть вложены одна в другую. Задача по описанию проста, встречается повсеместно, но реализовать нормальную работу в электронных таблицах на практике достаточно проблематично. В программных комплексах для решения этой задачи используются служебные таблицы соответствий «родитель-потомок» (все ко всем), либо аналогичные по функциональности структуры в оперативной памяти. В Excel можно использовать автофильтр с множественной выборкой подчиненных групп вручную. Этот же алгоритм можно попытаться автоматизировать, используя программную проверку элементов фильтра. Решение вполне реализуемо, но по факту смотрится не очень красиво, так как в Excel не реализован вызов события на изменение автофильтра. Придется добавлять специальную кнопку или искать еще какое-то не самое красивое решение с точки зрения пользовательского интерфейса. Можно также попытаться совсем не использовать встроенные возможности фильтрации Excel, вместо этого полностью реализовать проверку, скрытие и показ нужных строк с данными средствами VBA. Но это не наш метод — мы не используем программирование, там где без него можно обойтись.
Пример демонстирует масштабируемое решение (через копирование строк) для фильтрации данных по многоуровневым группам почти без программирования. Единственный макрос нужен только для упрощения процедуры повторного вызова Расширенного фильтра Excel и, в принципе, без него можно обойтись.
Файл
В приложении к статье файл multilevelgroups.xls с решением задачи. Работает во всех версиях Excel, начиная с 2000 (10.0) (по идее Excel 2011 for Mac тоже должно работать, пока нет возможности проверить). Для автоматического обновления таблицы данных по выбору из списка необходимо подключить макросы Excel.
В файле 2 таблицы, первая — справочник многоуровневых групп, вторая — пример таблицы с данными (Группа-Продукт). Для фильтрации групп использовано поле со списком.
Можно добавлять данные в середину справочника групп через копирование строк целиком. Также можно менять названия и подчиненность. Помните, что при переименовании родительской группы, значения в подчиненных группах (поле Parent) автоматически не меняется. Для переименования можно использовать замену данных, либо привязать подчиненную группу через формулу со ссылкой на название родителя. Справочник групп не содержит никаких дополнительных полей для ввода, кроме названия и ссылки на родительсий элемент. В скрытых столбцах содержатся формулы, позволяющие решить задачу фильтрации данных без программирования. Для показа скрытых столбцов проще всего нажать на кнопку [+] структуры документа.
Важным полем справочника групп является FilterID — по нему можно проводить сортировку стандартными средствами Excel после добавления элемента в середину списка. Сортировка для корректности функционирования примера, в принципе, не обязательна. Но она позволяет выстроить элементы фильтра в правильном иерархическом порядке, что важно с точки зрения пользовательского интерфейса.
В таблице с условными данными в заголовке поля Group располагается элемент управления типа раскрывающийся список. Взят за основу контрол из коллекции Forms, а не ActiveX Combobox — для возможности использования в Excel for Mac. Переделать пример на ActiveX Combobox не представляет особого труда. В свойствах контрола указан источник значений списка ($D$2:$D$19) и служебная ячейка записи номера выбранного элемента ($H$1)
Как это работает
Основной идеей, реализации алгоритма решения задачи является использование стандартного интерфейсного средства Расширенный фильтр. Он позовляет применить в фильтре условия, записанные в отельном диапазоне рабочего листа. Самое важное отличие от обычного автофильтра — эти условия можно вычислить по формулам! Так в примере отбираются строки по полю Group таблицы данных на основе условий записанных в столбце F справочника групп. Критерий отбора расширенного фильтра представляет собой множество значений, вычисленных по сложным формулам. Служебное поле FilterID формируется на основе рассчитанного уровня вложенности и номера строки в справочнике. Таким образом, вместо дополнительного идентификатора группы использован номер строки по порядку, всегда хранящийся в электронных таблицах неявным образом. Префикс «=» в итоговых значениях поля Group определяет точное соответствие в условии, без него отбираются наименования, начинающиеся на значение в ячейке.
После изменения значения в поле со списком запускается макрос, который обновляет диапазон расширенного фильтра таблицы. Для удобства использования диапазонам фильтрации и критериев были присвоены имена — listData и listCriteria (в примере выделены жирными рамками). Использование именованных диапазонов позволяет сохранить работоспособность примера при изменении размеров справочника или таблицы данных. Макрос, запускаемый после выбора нового элемента списка, настолько простой, что первоначально был просто записан автоматическим средством Excel.
Sub Macro1() Range("listData").AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range("listCriteria"), Unique:=False End Sub
Как уже отмечалось, можно обновлять расширенный фильтр вручную методами интерфейса Excel без использования макроса — результат будет тот же.
Ограничения
Из-за особенностей реализации имеются ограничения в справочнике групп:
- Общее количество элементов в каждой подгруппе — не более 99
Формулы поддерживают два знака на каждую группу. - Количество уровней вложенности — не более 4
Задано в ячейке G1, можно увеличить - Группы должны иметь уникальные наименования
- Заголовки полей фильтрации групп в таблице и в служебном столбце справочника должны быть одинаковые.
В примере — Group.
Основная причина ограничений в размере поля FilterID, там должно храниться целое число. В каждом конкретном случае практической реализации можно настроить пример на расширение ограничений, например, увеличить максимальное количество групп, уменьшив лимит уровней вложенности.
Смотри также
» Условное форматирование
Форматирование ячеек Excel предназначено для представления информации в удобном наглядном виде, что повышает уровень понимания…
» Обработка больших объемов данных. Часть 2. Интерфейс
В статье систематизируются простые приемы обработки больших объемов данных при помощи стандартных методов интерфейса Excel. Информация…
» Использование справочников
При построении сложных экономических моделей обычно имеется набор данных, используемых в нескольких таблицах как в качестве…
» Списки выбора
Показано три варианта реализации списков для выбора значения.
Главный недостаток стандартного
фильтра
(
Данные/ Сортировка и фильтр/ Фильтр
) – это отсутствие визуальной информации о примененном в данный момент фильтре: необходимо каждый раз лезть в меню фильтра, чтобы вспомнить критерии отбора записей. Особенно это неудобно, когда применено несколько критериев. Расширенный фильтр лишен этого недостатка – все критерии помещаются в виде отдельной таблички над фильтруемыми записями.
Алгоритм создания
Расширенного фильтра
прост:
- Создаем таблицу, к которой будет применяться фильтр (исходная таблица);
- Создаем табличку с критериями (с условиями отбора);
-
Запускаем
Расширенный фильтр
.
Пусть в диапазоне
A
7:С
83
имеется исходная таблица с перечнем товаров, содержащая поля (столбцы)
Товар
,
Количество
и
Цена
(см. файл примера ). Таблица не должна содержать пустых строк и столбцов, иначе
Расширенный фильтр
(да и обычный
Автофильтр
) не будет правильно работать.
Задача 1 (начинается…)
Настроим фильтр для отбора строк, которые содержат в наименовании Товара значения
начинающиеся
со слова
Гвозди
. Этому условию отбора удовлетворяют строки с товарами
гвозди 20 мм
,
Гвозди 10 мм
,
Гвозди 10 мм
и
Гвозди
.
Табличку с условием отбора разместим разместим в диапазоне
А
1
:А2
. Табличка должна содержать также название заголовка столбца, по которому будет производиться отбор. В качестве критерия в ячейке
А2
укажем слово
Гвозди
.
Примечание
: Структура критериев у
Расширенного фильтра
четко определена и она совпадает со структурой критериев для функций БДСУММ() , БСЧЁТ() и др.
Обычно критерии
Расширенного фильтра
размещают над таблицей, к которой применяют фильтр, но можно их разместить и сбоку таблицы. Избегайте размещения таблички с критериями под исходной таблицей, хотя это не запрещено, но не всегда удобно, т.к. в исходную таблицу могут добавляться новые строки.
ВНИМАНИЕ!
Убедитесь, что между табличкой со значениями условий отбора и исходной таблицей имеется, по крайней мере, одна пустая строка (это облегчит работу с
Расширенным фильтром
).
Теперь все подготовлено для работы с
Расширенным фильтром:
- выделите любую ячейку таблицы (это не обязательно, но позволит ускорить заполнение параметров фильтра);
-
вызовите
Расширенный фильтр
( Данные/ Сортировка и фильтр/ Дополнительно ); -
в поле
Исходный диапазон
убедитесь, что указан диапазон ячеек таблицы вместе с заголовками (
A
7:С
83
); -
в поле
Диапазон условий
укажите ячейки содержащие табличку с критерием, т.е. диапазон
А
1
:А2
.
При желании можно отобранные строки скопировать в другую таблицу, установив переключатель в позицию
Скопировать результат в другое место
. Но мы это здесь делать не будем.
Нажмите кнопку ОК и фильтр будет применен — в таблице останутся только строки содержащие в столбце Товар наименования
гвозди 20 мм
,
Гвозди 10 мм
,
Гвозди 50 мм
и
Гвозди
. Остальные строки будут скрыты.
Номера отобранных строк будут выделены синим шрифтом.
Чтобы отменить действие фильтра выделите любую ячейку таблицы и нажмите
CTRL+SHIFT+L
(к заголовку будет применен
Автофильтр
, а действие
Расширенного фильтра
будет отменено) или нажмите кнопку меню
Очистить
( Данные/ Сортировка и фильтр/ Очистить ).
Задача 2 (точно совпадает)
Настроим фильтр для отбора строк, у которых в столбце Товар
точно
содержится слово
Гвозди
. Этому условию отбора удовлетворяют строки только с товарами
гвозди
и
Гвозди
(
Регистр
не учитывается). Значения
гвозди 20 мм
,
Гвозди 10 мм
,
Гвозди 50 мм
учтены не будут.
Табличку с условием отбора разместим разместим в диапазоне
B1:В2
. Табличка должна содержать также название заголовка столбца, по которому будет производиться отбор. В качестве критерия в ячейке
B2
укажем формулу =»=
Гвозди»
.
Теперь все подготовлено для работы с
Расширенным фильтром:
- выделите любую ячейку таблицы (это не обязательно, но позволит ускорить заполнение параметров фильтра);
-
вызовите
Расширенный фильтр ( Данные/ Сортировка и фильтр/ Дополнительно );
-
в поле
Исходный диапазон
убедитесь, что указан диапазон ячеек таблицы вместе с заголовками (
A
7:С
83
); -
в поле
Диапазон условий
укажите ячейки содержащие табличку с критерием, т.е. диапазон
B1
:B2
. - Нажмите ОК
Применять
Расширенный фильтр
с такими простыми критериями особого смысла нет, т.к. с этими задачами легко справляется
Автофильтр
. Рассмотрим более сложные задачи по фильтрации.
Если в качестве критерия указать не =»=Гвозди» , а просто
Гвозди
, то, будут выведены все записи содержащие наименования
начинающиеся
со слова Гвозди (
Гвозди 80мм
,
Гвозди2
). Чтобы вывести строки с товаром,
содержащие
на слово
гвозди
, например,
Новые гвозди
, необходимо в качестве критерия указать =»=*Гвозди» или просто *
Гвозди, где
* является
подстановочным знаком
и означает любую последовательность символов.
Задача 3 (условие ИЛИ для одного столбца)
Настроим фильтр для отбора строк, у которых в столбце Товар содержится значение начинающееся со слова
Гвозди
ИЛИ
Обои
.
Критерии отбора в этом случае должны размещаться под соответствующим заголовком столбца (
Товар
) и должны располагаться
друг под другом
в одном столбце (см. рисунок ниже). Табличку с критериями размести в диапазоне
С1:С3
.
Окно с параметрами Расширенного фильтра и таблица с отфильтрованными данными будет выглядеть так.
После нажатия ОК будут выведены все записи, содержащие в столбце
Товар
продукцию
Гвозди
ИЛИ
Обои
.
Задача 4 (условие И)
Произведем отбор только тех строк таблицы, которые
точно
содержат в столбце
Товар
продукцию
Гвозди
, а в столбце
Количество
значение >40. Критерии отбора в этом случае должны размещаться под соответствующими заголовками (Товар и Количество) и должны располагаться
на одной строке
. Условия отбора должны быть записаны в специальном формате: =»=
Гвозди»
и =»>40″ . Табличку с условием отбора разместим разместим в диапазоне
E1:F2
.
После нажатия кнопки ОК будут выведены все записи содержащие в столбце
Товар
продукцию
Гвозди
с количеством >40.
СОВЕТ:
При изменении критериев отбора лучше каждый раз создавать табличку с критериями и после вызова фильтра лишь менять ссылку на них.
Примечание
: Если пришлось очистить параметры Расширенного фильтра ( Данные/ Сортировка и фильтр/ Очистить ), то перед вызовом фильтра выделите любую ячейку таблицы – EXCEL автоматически вставит ссылку на диапазон занимаемый таблицей (при наличии пустых строк в таблице вставится ссылка не на всю таблицу, а лишь до первой пустой строки).
Задача 5 (условие ИЛИ для разных столбцов)
Предыдущие задачи можно было при желании решить обычным
автофильтром
. Эту же задачу обычным фильтром не решить.
Произведем отбор только тех строк таблицы, которые
точно
содержат в столбце
Товар
продукцию
Гвозди
, ИЛИ которые в столбце
Количество
содержат значение >40. Критерии отбора в этом случае должны размещаться под соответствующими заголовками (Товар и Количество) и должны располагаться
на разных строках
. Условия отбора должны быть записаны в специальном формате: =»>40″ и =»=
Гвозди»
. Табличку с условием отбора разместим разместим в диапазоне
E4:F6
.
После нажатия кнопки ОК будут выведены записи содержащие в столбце
Товар
продукцию
Гвозди
ИЛИ значение >40 (у любого товара).
Задача 6 (Условия отбора, созданные в результате применения формулы)
Настоящая мощь
Расширенного фильтра
проявляется при использовании в качестве условий отбора формул.
Существует две возможности задания условий отбора строк:
- непосредственно вводить значения для критерия (см. задачи выше);
- сформировать критерий на основе результатов выполнения формулы.
Рассмотрим критерии задаваемые формулой. Формула, указанная в качестве критерия отбора, должна возвращать результат ИСТИНА или ЛОЖЬ.
Например, отобразим строки, содержащие Товар, который встречается в таблице только 1 раз. Для этого:
-
введем в ячейку
H2
формулу =СЧЁТЕСЛИ(Лист1!$A$8:$A$83;A8)=1 -
в
Н1
вместо заголовка
введем поясняющий текст, например,
Неповторяющиеся значения
. Поясняющий текст НЕ должен совпадать ни с одним заголовком столбца таблицы! В противном случае фильтр будет работать неправильно.
Применим
Расширенный фильтр
, указав в качестве диапазона условий ячейки
Н1:Н2
.
Обратите внимание на то, что диапазон поиска значений введен с использованием
абсолютных ссылок
, а критерий в функции СЧЁТЕСЛИ() – с относительной ссылкой. Это необходимо, поскольку при применении
Расширенного фильтра
EXCEL увидит, что
А8
— это относительная ссылка и будет перемещаться вниз по столбцу Товар по одной записи за раз и возвращать значение либо ИСТИНА, либо ЛОЖЬ. Если будет возвращено значение ИСТИНА, то соответствующая строка таблицы будет отображена. Если возвращено значение ЛОЖЬ, то строка после применения фильтра отображена не будет.
СОВЕТ:
Для проверки работоспособности формулы можно создать дополнительный столбец рядом с таблицей (например в F) и ввести указанную выше формулу в ячейку F8, а затем скопировать ее вниз. Будет сформирован столбец со значениями ИСТИНА/ЛОЖЬ, который поможет определить как работает ваша формула.
Примеры других формул из файла примера :
-
Вывод строк с ценами больше, чем 3-я по величине цена в таблице. =C8>НАИБОЛЬШИЙ( $С$8:$С$83 ;5) В этом примере четко проявляется коварство функции НАИБОЛЬШИЙ(). Если отсортировать столбец
С
(цены), то получим: 750; 700;
700
; 700; 620, 620, 160, … В человеческом понимании «3-ей по величине цене» соответствует 620, а в понимании функции НАИБОЛЬШИЙ() –
700
. В итоге, будет выведено не 4 строки, а только одна (750); -
Вывод строк с учетом РЕгиСТра =СОВПАД(«гвозди»;А8) . Будут выведены только те строки, в которых товар
гвозди
введен с использованием строчных букв; - Вывод строк, у которых цена выше среднего =С8>СРЗНАЧ($С$8:$С$83) ;
ВНИМАНИЕ!
Применение
Расширенного фильтра
отменяет примененный к таблице фильтр (
Данные/ Сортировка и фильтр/ Фильтр
).
Задача 7 (Условия отбора содержат формулы и обычные критерии)
Рассмотрим теперь другую таблицу из файла примера на листе Задача 7 .
В столбце
Товар
приведено название товара, а в столбце
Тип товара
— его тип.
Задача состоит в том, чтобы для заданного типа товара вывести товары, у которых цена ниже средней. То есть у нас 3 критерия: первый критерий задает Товар, 2-й — его Тип, а 3-й критерий (в виде формулы) задает цену ниже средней.
Критерии разместим в строках 6 и 7. Введем нужные Товар и Тип товара. Для заданного Тип товара вычислим среднее и выведем ее для наглядности в отдельную ячейку F7. В принципе, формулу можно ввести прямо в формулу-критерий в ячейку С7. Поясняющий текст в ячейке над формулой (С6) НЕ должен совпадать ни с одним заголовком столбца таблицы! В противном случае фильтр будет работать неправильно.
Далее действуем как обычно: выделяем любую ячейку таблицы, вызываем
Расширенный фильтр (Advanced Filter)
и указываем диапазон с критериями.
Будут выведены 2 товара из 4-х (заданного типа товара).
В файле примера для удобства использовано
Условное форматирование
: выделяются строки удовлетворяющие первым 2-м критериям (подробнее см. статью
Выделение строк таблицы в MS EXCEL в зависимости от условия в ячейке
).
Задача 7.1. (Совпадают ли 2 значения в одной строке?)
Есть таблица, в которой указаны Год выпуска и Год покупки автомобиля.
Требуется вывести только те строки, в которых Год выпуска совпадает с Годом покупки. Это можно сделать с помощью элементарной формулы =В10=С10 .
Поясняющий текст в ячейке С6 НЕ должен совпадать ни с одним заголовком столбца таблицы! В противном случае фильтр будет работать неправильно.
Задача 8 (Является ли символ числом?)
Пусть у нас есть таблица с перечнем различных типов гвоздей.
Требуется отфильтровать только те строки, у которых в столбце Товар содержится
Гвозди 1 дюйм
,
Гвозди 2 дюйма
и т.д. товары
Гвозди нержавеющие, Гвозди хромированные
и т.д. не должны быть отфильтрованы.
Проще всего это сделать если в качестве фильтра задать условие, что после слова Гвозди должно идти цифра. Это можно сделать с помощью формулы =ЕЧИСЛО(—ПСТР(A11;ДЛСТР($A$8)+2;1))
Формула вырезает из наименования товара 1 символ после слова Гвозди (с учетом пробела). Если этот символ число (цифра), то формула возвращает ИСТИНА и строка выводится, в противном случае строка не выводится. В столбце F показано как работает формула, т.е. ее можно протестировать до запуска
Расширенного фильтра
.
Задача 9 (Вывести строки, в которых НЕ СОДЕРЖАТСЯ заданные Товары)
Требуется отфильтровать только те строки, у которых в столбце Товар НЕ содержатся:
Гвозди, Доска, Клей, Обои
.
Для этого придется использовать простую формулу =ЕНД(ВПР(A15;$A$8:$A$11;1;0))
Функция ВПР()
ищет в столбце Товар каждой строки наименования товаров, указанных в диапазоне
А8:А11
. Если эти товары НЕ найдены, ВПР() возвращает ошибку #Н/Д, которая обрабатывается
функцией ЕНД()
— в итоге, формула возвращает ИСТИНА и строка выводится.
Вывод уникальных строк
О выводе
уникальных
строк с помощью Расширенного фильтра можно
прочитать в этой статье
.
Содержание
- Использование расширенного фильтра в Excel
- Шаг 1: Создание таблицы с условиями отбора
- Шаг 2: Запуск расширенного фильтра
- Вопросы и ответы
Наверное, все пользователи, которые постоянно работают с Microsoft Excel, знают о такой полезной функции этой программы как фильтрация данных. Но не каждый в курсе, что существуют также и расширенные возможности у этого инструмента. Давайте рассмотрим, что умеет делать расширенный фильтр Microsoft Excel и как им пользоваться.
Недостаточно сразу запустить расширенный фильтр — для этого необходимо выполнить еще одно условие. Далее мы расскажем о последовательности действий, которые следует предпринять.
Шаг 1: Создание таблицы с условиями отбора
Чтобы установить расширенный фильтр, прежде всего требуется создать дополнительную таблицу с условиями отбора. Ее шапка в точности такая, как у основной, которую мы, собственно, и будем фильтровать. Для примера мы разместили дополнительную таблицу над основной и окрасили ее ячейки в оранжевый цвет. Хотя размещать ее можно в любом свободном месте и даже на другом листе.
Теперь вписываем в дополнительную таблицу сведения, которые нужно будет отфильтровать из основной таблицы. В нашем конкретном случае из списка выданной сотрудникам заработной платы мы решили выбрать данные по основному персоналу мужского пола за 25.07.2016.
Шаг 2: Запуск расширенного фильтра
Только после того как дополнительная таблица создана, можно переходить к запуску расширенного фильтра.
- Переходим на вкладку «Данные» и на ленте в блоке инструментов «Сортировка и фильтр» жмем по «Дополнительно».
- Открывается окно расширенного фильтра. Как видим, существует два режима использования этого инструмента: «Фильтровать список на месте» и «Скопировать результаты в другое место». В первом случае фильтрация будет производиться прямо в исходной таблице, а во втором — отдельно в диапазоне ячеек, которые вы укажете сами.
- В поле «Исходный диапазон» нужно указать диапазон ячеек исходной таблицы. Это можно сделать вручную, вбив координаты с клавиатуры, либо выделив нужный диапазон ячеек с помощью мышки. В поле «Диапазон условий» нужно аналогичным образом вписать диапазон шапки дополнительной таблицы и той строки, которая содержит условия. При этом следует обратить внимание, чтобы в данный диапазон не попали пустые строки, иначе ничего не получится. По завершении настроек нажмите «OK».
- В исходной таблице остались только те значения, которые мы решили отфильтровать.
- Если был выбран вариант с выводом результата в другое место, в поле «Поместить результат в диапазон» следует указать диапазон ячеек, в которые будут выводиться отфильтрованные данные. Можно указать и одну ячейку. В этом случае она станет верхней левой ячейкой новой таблицы. Подтверждаем выбор кнопкой «OK».
- После этого действия исходная таблица осталась без изменений, а отфильтрованные данные выводятся в отдельную таблицу.
- Чтобы сбросить фильтр при использовании построения списка на месте, на ленте в блоке инструментов «Сортировка и фильтр» щелкните по кнопке «Очистить».
Таким образом, можно сделать вывод, что расширенный фильтр предоставляет больше возможностей, чем обычная фильтрация данных. Но нельзя не отметить, что работа с этим инструментом все-таки менее удобна, чем со стандартным фильтром.
Еще статьи по данной теме:
Помогла ли Вам статья?
Таблицы в Excel могут содержать большое количество информации. Для комфортной работы с массивами данных применяются обычный и расширенный фильтры. Однако их использование иногда доставляет ряд трудностей начинающим пользователям.
Назначение и существующие виды
Под фильтрацией понимают выделение необходимых данных при одновременном скрытии ненужных. Таким образом, облегчается работа с большим количеством информации в Excel. Не нужно искать по всей таблице «заветные» строки, достаточно задать требуемые параметры в фильтре, и они «подсветятся». Существуют два вида сортировки: автофильтр и расширенный фильтр.
Пользовательский или расширенный фильтр
Установка фильтра
Название опции подчеркивает более широкие возможности по сравнению со стандартным вариантом. Перед применением необходимо создать поле с условиями. Обычно для этого копируются заголовки нужной таблицы и вставляются сверху нее. Между строками с условиями и исходными данными должна быть минимум одна пустая строка.
После этого включается фильтр в Excel:
- На панели вкладок нажать на «Данные».
- В окне «Сортировка и фильтр» кликнуть по «Дополнительно».
- Появится меню «Расширенный фильтр» с различными настройками.
Фильтр инициализирован. Настройки и условия фильтрации рассматриваются ниже.
Настройки и условия
Есть несколько настроек в меню фильтрации:
- По умолчанию в появившемся окне отмечен подпункт «Фильтровать список на месте» или «Filter the list, in-place» в англоязычной версии. Эта опция позволяет провести операцию в той же локации, что и исходная таблица.
- Строка «Исходный диапазон» или «List range». Здесь нужно проставить координаты фильтруемой таблицы, включая заголовки. Начальная координата — первая ячейка, конечная — последняя.
- «Диапазон условий» или «Criteria range». Указывается местоположение условий фильтрования. Условия задания координат аналогичны предыдущему пункту.
Если в критерии отбора будет включена пустая строка, то этот фильтр не будет действовать. Будут выбраны все данные, поэтому нужно внимательно указывать диапазон.
- Если нужно оставить только неповторяющиеся строки, то нужно отметить ячейку «Только уникальные записи» или «Unique records only».
Кроме задания точных критериев отбора, в расширенном режиме возможна выборка, путём создания приблизительных значений, использования формул и условий. Основные операторы для создания подобных запросов следующие:
Критерий | Результат |
---|---|
пр* или пр | все записи, которые начинаются с «Пр», т.е. прима, продукт и аналогичные данные |
=диван | все данные, имеющие точное совпадение со словом «диван» и только |
*лив* или *лив | слова, содержащие слог «лив», например, оливки, Ливония, прилив. |
=т*в | надписи, начинающиеся с «Т» и заканчивающиеся на «В» — Титов, Тургенев |
п*с | схожее с предыдущим пунктом написание критерия, но здесь буква С не должна быть обязательно в конце слова, а может находиться в любом месте после П, например, просо, простой |
=*г | записи, оканчивающиеся на Г |
=??? | слова, где есть 3 символа, включая пробелы и цифры |
=а????с | выбор данных, состоящих из 6 символов и имеющих в начале букву «А», а в конце букву «С», такие как «ананас», «адонис» |
=*л??а | слова, которые заканчиваются на «а», а четвёртой буквой с конца в слове является «л», например, «малина». |
<=В | записи, начинающиеся с букв «А», «Б», «В» |
<>*е* | слова, которые не имеют букву «Е» |
<>*вна | все слова, исключая те, которые заканчиваются на «вна» |
= | выборка всех пустых ячеек |
<> | отбор несвободных «клеток» |
>=199 | отбираются данные со значением большим или равным 199 |
10 или =10 | показатели со значениями равными 10 |
>=2/28/2018 | события с датой позже 28 февраля 2018 года (включительно) |
<=12/03/2019 | Данные с датой раньше, чем 12 марта 2019 года |
Нужно помнить следующее при составлении условий:
- * — может означать любое количество различных знаков;
- ? — один символ;
- дата ставится в североамериканском стиле, то есть мм/дд/гггг.
Базовыми условиями пользовательской фильтрации в Excel являются логические «И( AND)» и «ИЛИ(OR)». Все установки отбора используют эти операторы в различных вариациях.
Логическое «И» получается путем размещения условий выборки в одной строке на разных или одинаковых столбцах. При такой конфигурации будут выбраны элементы, отвечающие одновременно всем критериям, указанным в строке фильтра.
На рисунке показана работа оператора «И». Будут выбраны товары с наименованием «Бананы», которые поставлялись в III квартале года в Москве, в гипермаркеты «Ашан». Предметы, не отвечающие вышеуказанным условиям, показаны не будут.
Если нужно применить условие «И» к одному столбцу несколько раз, то нужно создать нужное количество таких столбцов в диапазоне условий и применить к ним оператор.
На примере показано двойное использование логического «И» в столбце «Дата». В результате такого применения будут выбраны все события между 1 марта и 31 мая 2013 года.
Логическое «ИЛИ» получается при размещении критериев отбора на разных строках диапазона условий. В этом случае будут показаны элементы, удовлетворяющие любому из пунктов выбора.
На рисунке показана совместная работа операторов «И» и «ИЛИ». После установки таких параметров, будут выбраны строки с надписями «Персик» или «Лук». Причём для «Персик» необходимым является выполнение еще двух критериев: наличие города Москва и менеджера Волина. Для «Лук» нужен только III квартал и город Самара.
Действенным методом в расширенном фильтре является использование формул для формирования критерия выборки. Алгоритм прост — формула проверяет ячейки на «Истину» или «Ложь» и показывает строки с истинным результатом. При составлении задания с помощью формулы нужно учитывать следующее:
- формулы нужно вставлять в пустые строки, не содержащие заголовки «таблицы» или отличающиеся от них;
- формула должна начинать «работать» с первых ячеек после заголовка, чтобы не пропустить какое-либо значение из таблицы. Поэтому ссылка на применение формулы начинается с первой строки в любом столбце;
- ссылка на проверку по формуле должна быть относительной, вида B5, в отличие от абсолютной, которая пишется в виде $B$5. При статичной или абсолютной ссылке проверяться будет только указанная ячейка, относительная дает старт на проверку всех ячеек, начиная с первой.
На рисунке показан пример использования формулы, которая выделяет товары, встречающиеся 1 раз.
Здесь в столбце H, в первой ячейке введен текст для объяснения формулы. Сама формула указана в ячейке H2 и выглядит следующим образом:
=СЧЁТЕСЛИ(Лист1!$A$8:$A$83;A8)=1
Здесь $A$8:$A$83 — абсолютная ссылка, указывающая диапазон действия формулы. A8 — относительная ссылка. Она показывает номер ячейки, с которой начнется проверка по формуле. Результаты, отвечающие условию «ИСТИНА», будут показаны. Таким образом, все товары, которые представлены в единичном экземпляре отобразятся.
Применение
Алгоритм применения пользовательского фильтра следующий:
- Создать пустую таблицу с теми же заголовками, что и в редактируемой базе.
- Вписать критерии выборки.
- Инициализировать фильтр, описанным выше способом.
- После открытия окна с настройками, ввести необходимые показатели и подтвердить.
- После применения, в базе данных будут показаны только строки, удовлетворяющие условиям отбора.
Перемещение результатов отбора в другую таблицу
Для того чтобы данные фильтрации отобразились в ином диапазоне нужно сделать следующее:
Удаление пользовательского фильтра
Сбросить функцию можно несколькими способами:
- Если результаты были выведены без перемещения, то удалить их можно, нажав на вкладку «Данные» и в подменю «Сортировка и фильтр» кликнуть по пункту «Очистить».
- Стандартным нажатием клавиш Ctrl + Z, отменяющим предыдущие действия.
- Включить автофильтр, в результате чего, все результаты отбора будут сброшены.
Стандартный фильтр
Кроме расширенного отбора, в простых случаях, удобнее пользоваться автофильтром.
Запуск
Включить стандартную функцию выборки данных можно тремя способами:
- На главной панели нажать на пункт «Данные», в подменю «Сортировка и фильтр» кликнуть по иконке с надписью «Фильтр».
- Выбрать пункт «Главная», в подсистеме «Редактирование» нажать на «Сортировка и фильтр». В появившемся окне выбрать «Фильтр».
- С помощью нажатия кнопок Ctrl + Shift + L.
В итоге на заголовке списка появятся стрелки, с помощью которых можно установить критерии отбора.
Параметры выбора
Существуют несколько параметров исключения.
Синхронизация по дате
При наличии столбца с датами, можно произвести сортировку информации этого типа. Для этого нужно нажать на стрелку в соответствующем заголовке. В появившемся меню много интуитивно понятных пунктов. При выборе «Выделить все», помечаются все данные столбца, и фильтрация применяется к ним. Также можно выбрать определенные значения, убрав галочку с предыдущего пункта и поставив её перед нужной позицией.
В качестве примера, можно произвести выборку событий между двумя датами: 1 июня 2014 года и 31 декабря 2014 года. Для этого:
- выбрать в контекстном меню надпись «После…»;
- откроется подменю, в нем для функции «После…» выбрать дату 01.06.2014;
- выбрать логическое «И»;
- в нижней строке «До» выбрать вторую дату и подтвердить.
Результатом будет показ информации между 1 июня и 31 декабря 2014 года.
Текстовой отбор
Также как и для значений даты, можно произвести выборку данных с определенным текстом или сигнальным словом. В рассмотренной выше таблице текст содержится в столбце «Наименование». Кликнуть по стрелке на нем. Откроется окно с настройками фильтра по слову.
Все действия понятны и аналогичны действию с датами. Для фильтрации данных у которых есть символ «2», можно выполнить следующие шаги:
Числовой критерий
Также можно произвести сортировку по числовым данным. Для этого нажать на столбец, содержащий числовую информацию и выбрать «Числовые фильтры».
Открывшееся подменю содержит многочисленные параметры для выборки. Они не сложны и понятны при взаимодействии с ними. Отдельно можно упомянуть опцию «Первые 10». Исходя из названия, критерий выберет 10 самых больших или, если поменять направление, 10 наименьших чисел.
Однако результат может отличаться от ожидаемого. Так как среди значений могут быть повторяющиеся числа, в итоге может быть больше отфильтрованных значений, чем 10.
Изменение строки
Иногда бывает нужным изменить порядок столбцов в строке. Для этого применяется сортировка по строкам, включающая следующие действия:
- Выбрать во вкладке «Данные» или «Data», пункт «Сортировать» или «Sort».
- Появится окно с настройками «Сортировка» или «Sort». Если строка содержит заголовки, то нужно отметить пункт «Мои данные содержат заголовки» или «My data has headers». В противном случае ставить галочку не нужно. После этого кликнуть по пункту «Параметры» или «Options».
- В подменю «Параметры» отметить, как будут меняться столбцы — сверху вниз (Sort top to bottom) или слева направо (Sort left to right). Если изменяется порядок следования в строке, то нужно выбрать «Слева направо».
- Далее в окне «Sort» указать строку в которой будет изменен порядок следования столбцов и указать в каком порядке будет идти перестроение — от А до Я (A to Z) или наоборот.
После подтверждения произойдет фильтрация по строкам.
Отключение фильтра
Для удаления выборки со столбца необходимо нажать на стрелку и кликнуть по надписи «Удалить фильтр из столбца».
Для удаления всех критериев отбора на вкладке «Данные» кликнуть по «Фильтр».