Использование расширенных условий фильтрации
Если для фильтрации данных требуются сложные условия (например, Type = "Produce" OR Salesperson = "Егоров"), можно использовать диалоговое окно Расширенный фильтр.
Чтобы открыть диалоговое окно Расширенный фильтр, щелкните Данные > Расширенные.
Продавец = "Егоров" ИЛИ Продавец = "Грачев"
Тип = "Фрукты" И Продажи > 1000
Тип = "Фрукты" ИЛИ Продавец = "Грачев"
(Продажи > 6000 И Продажи 3000) ИЛИ
(Salesperson = "Buchanan" AND Sales > 1500)
Продавец = имя со второй буквой "г"
Обзор
Действие команды Дополнительно отличается от действия команды Фильтр в некоторых важных аспектах.
Она отображает диалоговое окно Расширенный фильтр, а не меню "Автофильтр".
Вы вводите расширенные условия в отдельном диапазоне условий на листе над диапазоном ячеек или таблицей, которую нужно отфильтровать. В качестве источника расширенных условий в Microsoft Office Excel используется отдельный диапазон условий в диалоговом окне Расширенный фильтр.
Образец данных
Этот пример данных используется для всех процедур, используемых в этой статье.
Данные включают четыре пустые строки над диапазоном списка, которые будут использоваться в качестве диапазона условия (A1:C4) и диапазон списка (A6:C10). Диапазон условий содержит названия столбцов и по крайней мере одну пустую строку между значениями условий и диапазоном списка.
Для работы с данными выберите их в таблице ниже, скопируйте, а затем вкопируйте в ячейку A1 нового листа Excel.
Операторы сравнения
Операторы сравнения используются для сравнения двух значений. Результатом сравнения является логическое значение: ИСТИНА либо ЛОЖЬ.
= (знак «больше или равно»)
Больше или равно
Использование знака равенства для ввода текста или значения
Поскольку знак "равно" (=)используется для указать формулу при введите текст или значение в ячейку, Excel высмеет его. однако это может привести к непредвиденным результатам фильтрации. Чтобы указать оператор сравнения равенства для текста или значения, введите условия в качестве строкового выражения в соответствующей ячейке в диапазоне условий:
где ввод — искомый текст или значение. Например:
Вводится в ячейку
Вычисляется и отображается
Учет регистра
При фильтрации текстовых данных в Excel не учитывается регистр букв. Однако для поиска с учетом регистра можно воспользоваться формулой. Пример см. в разделе Условия с подстановочными знаками.
Использование заранее определенных имен
Вы можете назвать диапазон Условия,и ссылка на диапазон автоматически появится в поле Диапазон условия. Вы также можете определить имя База данных для отфильтрованного диапазона списка и имя Извлечь для области, в которой нужно вставки строк, и эти диапазоны автоматически появятся в полях Диапазон списка и Копировать в соответственно.
Создание условий с помощью формулы
В качестве условия можно использовать значение, вычисленное с помощью формулы. Обратите внимание на важные моменты, указанные ниже.
Формула должна возвращать результат ИСТИНА или ЛОЖЬ.
Поскольку используется формула, введенное строковое выражение должно иметь обычный вид, а не тот, который показан ниже:
Не используйте название столбца в качестве названия условия. Либо оставьте название условия пустым, либо используйте название, не являющееся названием столбца в диапазоне списка (в последующих примерах: "Среднее арифметическое" и "Точное совпадение").
Если в формуле используется название столбца, а не относительная ссылка на ячейку или имя диапазона, в ячейке с условием будет выведено значение ошибки #ИМЯ? или #ЗНАЧ!. Эту ошибку можно проигнорировать, так как она не влияет на то, как фильтруется диапазон списка.
В формуле, которая используется для условий, необходимо использовать относительную ссылку для ссылки на соответствующую ячейку в первой строке данных.
Все остальные ссылки в формуле должны быть абсолютными.
Несколько условий, один столбец, любое из условий истинно
Логическое выражение: (Продавец = "Егоров" ИЛИ Продавец = "Грачев")
Вставьте как минимум три пустые строки над диапазоном списка, которые можно использовать в качестве диапазона условий. Диапазон условий должен включать названия столбцов. Убедитесь, что есть по крайней мере одна пустая строка между значениями условий и диапазоном списка.
Чтобы найти строки, отвечающие нескольким условиям для одного столбца, введите условия непосредственно одно под другим в разных строках диапазона условий. Используя пример, введите:
Щелкните ячейку в диапазоне списка. Используя пример, щелкните любую ячейку в диапазоне A6:C10.
На вкладке Данные в группе Сортировка и фильтр нажмите кнопку Дополнительно.
Выполните одно из следующих действий:
Чтобы отфильтровать диапазон списка, скрыв строки, не отвечающие условиям, выберите вариант Фильтровать список на месте.
Чтобы отфильтровать список, скопировав строки, не отвечающие условиям, в другую область листа, выберите вариант Скопировать результат в другое место, щелкните в поле Поместить результат в диапазон, а затем щелкните левый верхний угол области, в которой нужно вставить строки.
Совет При копировании отфильтрованных строк в другое место можно указать, какие столбцы следует включить в операцию копирования. Перед фильтрацией скопируйте нужные названия столбцов в первую строку области, в которую вы собираетесь вставить отфильтрованные строки. При применении фильтра введите ссылку на скопированные названия столбцов в поле Поместить результат в диапазон. Тогда скопированные строки будут включать только те столбцы, названия которых вы скопировали.
В поле Диапазон условий введите ссылку на диапазон условий, включая названия условий. Используя пример, введите $A$1:$C$3.
Чтобы временно отодвинуть диалоговое окно Расширенный фильтр, пока вы выбираете диапазон критериев, нажмите кнопку Свернуть .
Используя пример, получаем следующий отфильтрованный результат для диапазона списка:
Несколько условий, несколько столбцов, все условия истинны
Логическое выражение: (Тип = "Фрукты" И Продажи > 1000)
Вставьте как минимум три пустые строки над диапазоном списка, которые можно использовать в качестве диапазона условий. Диапазон условий должен включать названия столбцов. Убедитесь, что есть по крайней мере одна пустая строка между значениями условий и диапазоном списка.
Чтобы найти строки, отвечающие нескольким условиям в нескольких столбцах, введите все условия в одной строке диапазона условий. Используя пример, введите:
Щелкните ячейку в диапазоне списка. Используя пример, щелкните любую ячейку в диапазоне A6:C10.
На вкладке Данные в группе Сортировка и фильтр нажмите кнопку Дополнительно.
Выполните одно из следующих действий:
Чтобы отфильтровать диапазон списка, скрыв строки, не отвечающие условиям, выберите вариант Фильтровать список на месте.
Чтобы отфильтровать список, скопировав строки, не отвечающие условиям, в другую область листа, выберите вариант Скопировать результат в другое место, щелкните в поле Поместить результат в диапазон, а затем щелкните левый верхний угол области, в которой нужно вставить строки.
Совет При копировании отфильтрованных строк в другое место можно указать, какие столбцы следует включить в операцию копирования. Перед фильтрацией скопируйте нужные названия столбцов в первую строку области, в которую вы собираетесь вставить отфильтрованные строки. При применении фильтра введите ссылку на скопированные названия столбцов в поле Поместить результат в диапазон. Тогда скопированные строки будут включать только те столбцы, названия которых вы скопировали.
В поле Диапазон условий введите ссылку на диапазон условий, включая названия условий. Используя пример, введите $A$1:$C$2.
Чтобы временно отодвинуть диалоговое окно Расширенный фильтр, пока вы выбираете диапазон критериев, нажмите кнопку Свернуть .
Используя пример, получаем следующий отфильтрованный результат для диапазона списка:
Несколько условий, несколько столбцов, любое из условий истинно
Логическое логика: (Тип = "Фрукты" ИЛИ Продавец = "Грачев")
Вставьте как минимум три пустые строки над диапазоном списка, которые можно использовать в качестве диапазона условий. Диапазон условий должен включать названия столбцов. Убедитесь, что есть по крайней мере одна пустая строка между значениями условий и диапазоном списка.
Чтобы найти строки, отвечающие нескольким условиям в нескольких столбцах, где любое условие может быть истинным, введите эти условия в разных строках диапазона условий. Используя пример, введите:
Щелкните ячейку в диапазоне списка. Используя пример, щелкните любую ячейку в диапазоне списка A6:C10.
На вкладке Данные в группе Сортировка и фильтр нажмите кнопку Дополнительно.
Выполните одно из следующих действий:
Чтобы отфильтровать диапазон списка, скрыв строки, не отвечающие условиям, выберите вариант Фильтровать список на месте.
Чтобы отфильтровать список, скопировав строки, не отвечающие условиям, в другую область листа, выберите вариант Скопировать результат в другое место, щелкните в поле Поместить результат в диапазон, а затем щелкните левый верхний угол области, в которой нужно вставить строки.
Совет: При копировании отфильтрованных строк в другое место можно указать, какие столбцы следует включить в операцию копирования. Перед фильтрацией скопируйте нужные названия столбцов в первую строку области, в которую вы собираетесь вставить отфильтрованные строки. При применении фильтра введите ссылку на скопированные названия столбцов в поле Поместить результат в диапазон. Тогда скопированные строки будут включать только те столбцы, названия которых вы скопировали.
В поле Диапазон условий введите ссылку на диапазон условий, включая названия условий. Используя пример, введите $A$1:$B$3.
Чтобы временно отодвинуть диалоговое окно Расширенный фильтр, пока вы выбираете диапазон критериев, нажмите кнопку Свернуть .
Используя пример, получаем следующий отфильтрованный результат для диапазона списка:
Несколько наборов условий, один столбец во всех наборах
Логическое выражение: ( (Продажи > 6000 И Продажи Тип
Данные в группе Сортировка и фильтр нажмите кнопку Дополнительно.
Выполните одно из следующих действий:
Чтобы отфильтровать диапазон списка, скрыв строки, не отвечающие условиям, выберите вариант Фильтровать список на месте.
Чтобы отфильтровать список, скопировав строки, не отвечающие условиям, в другую область листа, выберите вариант Скопировать результат в другое место, щелкните в поле Поместить результат в диапазон, а затем щелкните левый верхний угол области, в которой нужно вставить строки.
Совет: При копировании отфильтрованных строк в другое место можно указать, какие столбцы следует включить в операцию копирования. Перед фильтрацией скопируйте нужные названия столбцов в первую строку области, в которую вы собираетесь вставить отфильтрованные строки. При применении фильтра введите ссылку на скопированные названия столбцов в поле Поместить результат в диапазон. Тогда скопированные строки будут включать только те столбцы, названия которых вы скопировали.
В поле Диапазон условий введите ссылку на диапазон условий, включая названия условий. Используя пример, введите $A$1:$D$3.
Чтобы временно отодвинуть диалоговое окно Расширенный фильтр, пока вы выбираете диапазон критериев, нажмите кнопку Свернуть .
Используя пример, получаем следующий отфильтрованный результат для диапазона списка:
Несколько наборов условий, несколько столбцов в каждом наборе
Логическое выражение: ( (Продавец = "Егоров" И Продажи > 3000) ИЛИ (Продавец = "Грачев" И Продажи > 1500) )
Вставьте как минимум три пустые строки над диапазоном списка, которые можно использовать в качестве диапазона условий. Диапазон условий должен включать названия столбцов. Убедитесь, что есть по крайней мере одна пустая строка между значениями условий и диапазоном списка.
Чтобы найти строки, отвечающие нескольким наборам условий, каждый из которых содержит условия для нескольких столбцов, введите каждый набор условий в отдельных столбцах или строках. Используя пример, введите:
Щелкните ячейку в диапазоне списка. Используя пример, щелкните любую ячейку в диапазоне списка A6:C10.
На вкладке Данные в группе Сортировка и фильтр нажмите кнопку Дополнительно.
Выполните одно из следующих действий:
Чтобы отфильтровать диапазон списка, скрыв строки, не отвечающие условиям, выберите вариант Фильтровать список на месте.
Чтобы отфильтровать список, скопировав строки, не отвечающие условиям, в другую область листа, выберите вариант Скопировать результат в другое место, щелкните в поле Поместить результат в диапазон, а затем щелкните левый верхний угол области, в которой нужно вставить строки.
Совет При копировании отфильтрованных строк в другое место можно указать, какие столбцы следует включить в операцию копирования. Перед фильтрацией скопируйте нужные названия столбцов в первую строку области, в которую вы собираетесь вставить отфильтрованные строки. При применении фильтра введите ссылку на скопированные названия столбцов в поле Поместить результат в диапазон. Тогда скопированные строки будут включать только те столбцы, названия которых вы скопировали.
В поле Диапазон условий введите ссылку на диапазон условий, включая названия условий. Используя пример, введите $A$1:$C$3.Чтобы временно переместить диалоговое окно Расширенный фильтр, пока вы выбираете диапазон условия, нажмите кнопку Свернуть .
Используя пример, получим следующий отфильтрованный результат для диапазона списка:
Условия с подстановочными знаками
Логическое выражение: Продавец = имя со второй буквой "г"
Чтобы найти текстовые значения с совпадающими знаками в некоторых из позиций, выполните одно или несколько действий, описанных ниже.
Чтобы найти строки, в которых текстовое значение в столбце начинается с определенной последовательности знаков, введите эти знаки, не используя знак равенства ( =). Например, если ввести условие Бел, будут найдены строки с ячейками, содержащими слова "Белов", "Беляков" и "Белугин".
Воспользуйтесь подстановочными знаками.
Любой символ
Например, если найти "кузнецов" и "смайл"
Любое количество символов
Например, если найти "*-восток", будут "северо-восток" и "Юго-восток".
(тильда), за которой следует ?, * или
Вопроси метка, звездочка или тильда
Например, fy91
? соответствует результат "ан91?"
Вставьте как минимум три пустые строки над диапазоном списка, которые можно использовать в качестве диапазона условий. Диапазон условий должен включать названия столбцов. Убедитесь, что есть по крайней мере одна пустая строка между значениями условий и диапазоном списка.
В строках под названиями столбцов введите условия, которым должен соответствовать результат. Используя пример, введите:
Щелкните ячейку в диапазоне списка. Используя пример, щелкните любую ячейку в диапазоне списка A6:C10.
На вкладке Данные в группе Сортировка и фильтр нажмите кнопку Дополнительно.
Выполните одно из следующих действий:
Чтобы отфильтровать диапазон списка, скрыв строки, не отвечающие условиям, выберите вариант Фильтровать список на месте
Чтобы отфильтровать список, скопировав строки, не отвечающие условиям, в другую область листа, выберите вариант Скопировать результат в другое место, щелкните в поле Поместить результат в диапазон, а затем щелкните левый верхний угол области, в которой нужно вставить строки.
Совет: При копировании отфильтрованных строк в другое место можно указать, какие столбцы следует включить в операцию копирования. Перед фильтрацией скопируйте нужные названия столбцов в первую строку области, в которую вы собираетесь вставить отфильтрованные строки. При применении фильтра введите ссылку на скопированные названия столбцов в поле Поместить результат в диапазон. Тогда скопированные строки будут включать только те столбцы, названия которых вы скопировали.
В поле Диапазон условий введите ссылку на диапазон условий, включая названия условий. Используя пример, введите $A$1:$B$3.
Чтобы временно отодвинуть диалоговое окно Расширенный фильтр, пока вы выбираете диапазон критериев, нажмите кнопку Свернуть .
Используя пример, получаем следующий отфильтрованный результат для диапазона списка:
Расширенный фильтр в EXCEL
history 31 марта 2013 г.
- Группы статей
- Подстановочные знаки (*, ?)
- Расширенный фильтр
Главный недостаток стандартного фильтра ( Данные/ Сортировка и фильтр/ Фильтр ) – это отсутствие визуальной информации о примененном в данный момент фильтре: необходимо каждый раз лезть в меню фильтра, чтобы вспомнить критерии отбора записей. Особенно это неудобно, когда применено несколько критериев. Расширенный фильтр лишен этого недостатка – все критерии помещаются в виде отдельной таблички над фильтруемыми записями.
Алгоритм создания Расширенного фильтра прост:
- Создаем таблицу, к которой будет применяться фильтр (исходная таблица);
- Создаем табличку с критериями (с условиями отбора);
- Запускаем Расширенный фильтр .
Пусть в диапазоне A 7:С 83 имеется исходная таблица с перечнем товаров, содержащая поля (столбцы) Товар , Количество и Цена (см. файл примера ). Таблица не должна содержать пустых строк и столбцов, иначе Расширенный фильтр (да и обычный Автофильтр ) не будет правильно работать.
Задача 1 (начинается. )
Настроим фильтр для отбора строк, которые содержат в наименовании Товара значения начинающиеся со слова Гвозди . Этому условию отбора удовлетворяют строки с товарами гвозди 20 мм , Гвозди 10 мм , Гвозди 10 мм и Гвозди .
Табличку с условием отбора разместим разместим в диапазоне А 1 :А2 . Табличка должна содержать также название заголовка столбца, по которому будет производиться отбор. В качестве критерия в ячейке А2 укажем слово Гвозди .
Примечание : Структура критериев у Расширенного фильтра четко определена и она совпадает со структурой критериев для функций БДСУММ() , БСЧЁТ() и др.
Обычно критерии Расширенного фильтра размещают над таблицей, к которой применяют фильтр, но можно их разместить и сбоку таблицы. Избегайте размещения таблички с критериями под исходной таблицей, хотя это не запрещено, но не всегда удобно, т.к. в исходную таблицу могут добавляться новые строки.
ВНИМАНИЕ! Убедитесь, что между табличкой со значениями условий отбора и исходной таблицей имеется, по крайней мере, одна пустая строка (это облегчит работу с Расширенным фильтром ).
Теперь все подготовлено для работы с Расширенным фильтром:
- выделите любую ячейку таблицы (это не обязательно, но позволит ускорить заполнение параметров фильтра);
- вызовите Расширенный фильтр ( Данные/ Сортировка и фильтр/ Дополнительно );
- в поле Исходный диапазон убедитесь, что указан диапазон ячеек таблицы вместе с заголовками ( A7:С83 );
- в поле Диапазон условий укажите ячейки содержащие табличку с критерием, т.е. диапазон А1:А2 .
При желании можно отобранные строки скопировать в другую таблицу, установив переключатель в позицию Скопировать результат в другое место . Но мы это здесь делать не будем.
Нажмите кнопку ОК и фильтр будет применен — в таблице останутся только строки содержащие в столбце Товар наименования гвозди 20 мм , Гвозди 10 мм , Гвозди 50 мм и Гвозди . Остальные строки будут скрыты.
Номера отобранных строк будут выделены синим шрифтом.
Чтобы отменить действие фильтра выделите любую ячейку таблицы и нажмите CTRL+SHIFT+L (к заголовку будет применен Автофильтр , а действие Расширенного фильтра будет отменено) или нажмите кнопку меню Очистить ( Данные/ Сортировка и фильтр/ Очистить ).
Задача 2 (точно совпадает)
Настроим фильтр для отбора строк, у которых в столбце Товар точно содержится слово Гвозди . Этому условию отбора удовлетворяют строки только с товарами гвозди и Гвозди ( Регистр не учитывается). Значения гвозди 20 мм , Гвозди 10 мм , Гвозди 50 мм учтены не будут.
Табличку с условием отбора разместим разместим в диапазоне B1:В2 . Табличка должна содержать также название заголовка столбца, по которому будет производиться отбор. В качестве критерия в ячейке B2 укажем формулу ="= Гвозди" .
Теперь все подготовлено для работы с Расширенным фильтром:
- выделите любую ячейку таблицы (это не обязательно, но позволит ускорить заполнение параметров фильтра);
- вызовите Расширенный фильтр ( Данные/ Сортировка и фильтр/ Дополнительно );
- в поле Исходный диапазон убедитесь, что указан диапазон ячеек таблицы вместе с заголовками ( A7:С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 . Если эти товары НЕ найдены, ВПР() возвращает ошибку #Н/Д, которая обрабатывается функцией ЕНД() — в итоге, формула возвращает ИСТИНА и строка выводится.
Вывод уникальных строк
О выводе уникальных строк с помощью Расширенного фильтра можно прочитать в этой статье .