Excel функция фильтр несколько условий

Excel для Microsoft 365 Excel для Microsoft 365 для Mac Excel для Интернета Excel 2021 Excel 2021 для Mac Excel 2019 Excel для iPad Excel для iPhone Excel для планшетов с Android Excel для телефонов с Android Еще…Меньше

Функция ФИЛЬТР позволяет выполнять фильтрацию диапазона данных на основе условий, которые вы определяете.

Ваш браузер не поддерживает видео. Установите Microsoft Silverlight, Adobe Flash Player или Internet Explorer 9.

В следующем примере мы использовали формулу =FILTER(A5:D20,C5:C20=H2,»») для возврата всех записей Для Apple, как указано в ячейке H2, и если яблок нет, возвращается пустая строка («»).

Функция ФИЛЬТР: фильтрация по региону и продукту (яблоко)

Функция ФИЛЬТР фильтрует массив с учетом массива логических значений (ИСТИНА/ЛОЖЬ).

=ФИЛЬТР(массив;включить;[если_пусто])

Аргумент

Описание

массив

Обязательный элемент

Массив или диапазон для фильтрации

включить

Обязательный элемент

Массив логических переменных с аналогичной высотой или шириной, что и массив.

[если_пусто]

Необязательный элемент

Значение, возвращаемое, если все значения во включенном массиве пустые (фильтр не возвращает ничего)

Примечания: 

  • Массив может рассматриваться как ряд значений, столбец со значениями или комбинация строк и столбцов значений. В приведенном выше примере массив для нашей формулы ФИЛЬТР представляет собой диапазон A5:D20.

  • Функция ФИЛЬТР возвращает массив, который будет переноситься на другие ячейки, если является конечным результатом формулы. Это означает, что Excel будет динамически создавать соответствующий по размеру диапазон массива при нажатии клавиши ВВОД. Если ваши вспомогательные данные хранятся в таблице Excel, тогда массив будет автоматически изменять размер при добавлении и удалении данных из диапазона массива, если вы используете структурированные ссылки. Дополнительные сведения см. в статье о переносе массива.

  • Если набор данных потенциально может возвращать пустое значение, используйте третий аргумент ([если_пусто]). В противном случае возникнет ошибка #ВЫЧИС! , так как Excel в настоящее время не поддерживает пустые массивы.

  • Если какое-либо значение аргумента include является ошибкой (#N/A, #VALUE и т. д.) или не может быть преобразовано в логическое значение, функция FILTER вернет ошибку.  

  • Приложение Excel ограничило поддержку динамических массивов в операциях между книгами, и этот сценарий поддерживается, только если открыты обе книги. Если закрыть исходную книгу, все связанные формулы динамического массива вернут ошибку #ССЫЛКА! после обновления.

Примеры

Функция ФИЛЬТР, используемая для возврата нескольких условий

В данном случае мы используем оператор умножения (*) для возврата всех значений в диапазоне массива (A5:D20), содержащих текст «Яблоко» И находящихся в восточном регионе: =ФИЛЬТР(A5:D20;(C5:C20=H1)*(A5:A20=H2);»»).

Использование ФИЛЬТР с оператором умножения (*) для возврата всех значений в нашем диапазоне массива (A5:D20), содержащих текст "Яблоко" И находящихся в восточном регионе.

Функция ФИЛЬТР, используемая для возврата нескольких условий и сортировки

В данном случае мы используем предыдущую функцию ФИЛЬТР с функцией СОРТ для возврата всех значений в диапазоне массива (A5:D20), содержащих текст «Яблоко» И находящихся в восточном регионе, а затем для сортировки единиц в порядке убывания: =СОРТ(ФИЛЬТР(A5:D20;(C5:C20=H1)*(A5:A20=H2);»»);4;-1)

Использование функций ФИЛЬТР и СОРТ для возврата всех значений в диапазоне массива (A5:D20), содержащих текст "Яблоко" И находящихся в восточном регионе, а затем сортировки единиц в порядке убывания.

В данном случае мы используем функцию ФИЛЬТР с оператором сложения (+) для возврата всех значений в диапазоне массива (A5:D20), содержащих текст «Яблоко» ИЛИ находящихся в восточном регионе, а затем для сортировки единиц в порядке убывания: =СОРТ(ФИЛЬТР(A5:D20;(C5:C20=H1)+(A5:A20=H2);»»),4;-1).

Совместное использование ФИЛЬТР и СОРТ: фильтрация по продукту (яблоко) или по региону (Восток)

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

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.

См. также

Функция СЛМАССИВ

Функция ПОСЛЕДОВ

Функция СОРТ

Функция СОРТПО

Функция УНИК

Ошибки #ПЕРЕНОС! в Excel

Динамические массивы и поведение массива с переносом

Оператор неявного пересечения: @

Нужна дополнительная помощь?

Функция ФИЛЬТР позволяет выполнять фильтрацию диапазона данных на основе определенных условий.

Описание функции ФИЛЬТР

Функция ФИЛЬТР является одной из семи функций, которые Microsoft анонсировала 24 сентября 2018 года вместе с революционным нововведением использования динамических массивов в Excel. Данная функция, как и остальные 6 и возможность использования динамических массивов не должна быть доступна пользователям, купившим Office 2019 и, тем более, более ранним версиям.

Воспользоваться новыми возможностями смогут пользователи с подпиской Office 365, а в будущем пользователи Office 2021 (следующей версией, которая следует за Office 2019), если к тому времени Microsoft попросту не оставит только вариант с подпиской.

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

Синтаксис

=ФИЛЬТР(массив; включить; [если_пусто])

Аргументы

массиввключитьесли_пусто

Обязательный. Массив или диапазон для фильтрации

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

На рисунке выше видно, что вторым аргументом записано условие: когда значение из диапазона равно Яблоко, последний, не обязательный, аргумент опущен.

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

Замечания

  • Функция ФИЛЬТР (FILTER) использует возможности динамических массивов Excel, это означает, что результат вычисления будет автоматически распространяться на смежные ячейки. Также это означает, что нет необходимости фиксировать ячейки абсолютными ссылками в формуле, равно как и использовать автозаполнение;
  • Если нужно отфильтровать значение по нескольким условиям, то для логического И используется знак умножения *

    На рисунке выше представлен результат фильтрации по продукту Яблоко из региона Восток;

  • Если нужно отфильтровать значение по нескольким условиям, то для логического ИЛИ используется знак суммирования +

    На рисунке выше диапазон отфильтрован по продукту Яблоко или из региона Восток;

  • Если результат вычисления формулы должен заполнить ячейки, которые уже заняты, то будет возвращена ошибка #ПЕРЕНОС!

    После очистки ячейки/ ячеек, которые «стоят на пути» вычисления формулы, формула вернет результат.

Пример

Видео работы функции

Дополнительные материалы

Файл из видео.

Microsoft добавила динамические массивы в Excel и новые функции.

Содержание

  1. Функции динамических массивов: СОРТ, ФИЛЬТР и УНИК
  2. Функция СОРТ (SORT)
  3. Функция ФИЛЬТР (FILTER)
  4. Функция УНИК (UNIQUE)
  5. Комбинирование функций
  6. Расширенный фильтр в Excel
  7. Стандартный метод
  8. Расширенный фильтр
  9. Основа
  10. Использование макроса расширенного фильтра
  11. Подробнее о сложных запросах
  12. Логические условия
  13. Функция «Фильтр»
  14. Выводы

Функции динамических массивов: СОРТ, ФИЛЬТР и УНИК

Эта статья является логическим продолжением предыдущего материала про новые динамические массивы (ДМ), появившиеся в Excel в Office 365. Если вы ещё с не ознакомились (кому лень читать — там есть видео), то очень советую сделать это сейчас, чтобы понимать о чём, собственно, идёт речь и как заполучить все эти радости в вашем Excel.

Обновление Office 365, которое подарило Microsoft Excel новый вычислительный движок с поддержкой динамических массивов, также добавило к нашему арсеналу 7 новых функций, заточенных специально для работы с массивами. В этой статье я хотел бы рассказать про три самых важных функции: СОРТ, ФИЛЬТР и УНИК. Остальные играют скорее вспомогательную роль — про них чуть позже.

Для простоты я буду во всех примерах я буду показывать работу этих функций на обычных таблицах, но можно иметь ввиду, что с «умными» таблицами (созданными через Главная — Форматировать как таблицу или сочетанием клавиш Ctrl + T ) эти функции тоже отлично работают.

Функция СОРТ (SORT)

=СОРТ( массив ; [индекс_сортировки] ; [порядок_сортировки] ; [по_столбцу] )

В самом простом варианте требует в качестве аргумента только массив (диапазон) и выдает его уже в отсортированном виде:

По умолчанию сортировка выполняется по возрастанию. Если нужен обратный порядок, то за это отвечает третий аргумент (1 — по возрастанию, -1 — по убыванию):

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

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

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

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

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

Функция ФИЛЬТР (FILTER)

=ФИЛЬТР( массив ; включить ; [если_пусто] )

Назначение этой функции — принять в качестве аргумента массив исходных ячеек и отфильтровать его по заданному условию(ям). Какие строки включить в результаты, а какие убрать — определяется вторым аргументом. Он должен представлять из себя массив логических значений ЛОЖЬ (FALSE) и ИСТИНА (TRUE) , задающих статус для каждой строки:

Логическую ИСТИНУ и ЛОЖЬ можно, для компактности, заменить на 1 (или любое другое число) и 0 (или пустую ячейку):

А самое интересное, что логические значения могут быть результатом какого-либо выражения, например:

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

  • =ФИЛЬТР(B2:D25; D2:D25>=10000 ) — отбираем все заказы, где стоимость больше или равна 10 000
  • =ФИЛЬТР(B2:D25; ЛЕВСИМВ(B2:B25) = «Б» ) — фильтрация всех строк, где название товара начинается с «Б» (блуза, брюки, бриджи и т.д.)
  • =ФИЛЬТР(B2:D25; (B2:B25 = «Брюки») * (C2:C25 = «Анна») ) — отбор всех сделок Анны, где она продавала брюки
  • =ФИЛЬТР(B2:D25; (C2:C25 = «Анна») + (C2:C25 = «Иван») ) — все сделки Анны и Ивана
  • =ФИЛЬТР(B2:D25; ЕСЛИОШИБКА(ПОИСК(«Самара»;A2:A25);0) ) — фильтрация всех сделок, где в названии города содержится слово Самара (г. Самара, Самара г., город Самара, Самара-городок и т.д.)

Если функция ФИЛЬТР не находит ни одного значения, удовлетворяющего условию, то она выдаёт ошибку #ВЫЧИСЛ! Чтобы вывести вместо неё что-то более осмысленное, можно использовать третий аргумент:

Функция УНИК (UNIQUE)

В самом простом варианте эта функция извлекает из входного массива все имеющиеся там значения, удаляет повторы и выдаёт то, что осталось:

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

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

Комбинирование функций

Само-собой, никто не запрещает нам «женить» все упомянутые функций между собой — здесь-то и начинается настоящая магия, мощь и синергия.

Разберём, для примера, классическую задачу: предположим, что нам нужно сформировать справочник по городам для выпадающего списка на основе выгрузки из какой-нибудь базы данных. В исходной выгрузке города повторяются в случайном порядке, есть пустые ячейки и дубли. А необходимый нам справочник, содержащий эталонный набор городов, должен быть:

  • без повторов
  • без пустых ячеек
  • отсортирован по возрастанию от А до Я

Делается всё вышеперечисленное одной (!) формулой:

В английской версии эта функция выглядит как:

  • ФИЛЬТР — отбирает только те ячейки, где есть данные (не пусто)
  • УНИК — убирает повторы в отобранном функцией ФИЛЬТР списке
  • СОРТ — сортирует получившийся справочник по алфавиту

После этого останется только указать получившийся динамический массив как источник для выпадающего списка на вкладке Данные — Проверка данных (Data — Validation) , не забыв добавить после адреса первой ячейки массива знак решётки:

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

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

Ну, лучше поздно, чем никогда, верно? По крайней мере, нашим детям точно будет проще 🙂

Источник

Расширенный фильтр в Excel

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

Стандартный метод

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

1

После этого на заголовках покажутся стрелки.

2

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

Далее появится окно, в котором нам нужно убрать галочку возле пункта «Выделить все» и оставить только пункт «USA».

3

После нажатия на кнопку «ОК» список автоматически будет отфильтрован так, что будут отображаться только информация о продажах из Соединенных Штатов.

4

Далее нужно нажать стрелочку на следующей колонке «Quarter» и поставить галочку возле строки Qtr 4, убрав все остальные.

5

Ура, после этих нехитрых манипуляций будет отображаться только товары из США за четвертый квартал.

6

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

Расширенный фильтр

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

Расширенный фильтр – это как раз пример такого инструмента. Особенно если его немного усовершенствовать.

Основа

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

7

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

8

Чтобы отфильтровать данные, необходимо в диапазоне, который мы будем фильтровать, нажать на любую ячейку и открыть на ленте вкладку «Данные». Там вы увидите кнопку «Дополнительно». Если по ней нажать, появится окно, где уже будет указан правильный диапазон. Осталось только указать ячейки, в каких приводятся условия.

9

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

С использованием кнопки «Скопировать результат в другое место» можно добиться того, чтобы фильтр отображал значения не прямо здесь, а в отдельном диапазоне. Если нам требуется это сделать, то для этого существует поле «Поместить результат в диапазон». В случае с нашим примером, эта функция использоваться не будет, поэтому мы просто нажимаем «ОК». Отфильтрованные строки мгновенно окажутся на листе.

10

Использование макроса расширенного фильтра

Большинство людей согласятся, что в стандартном виде расширенный фильтр – жутко неудобная штука. И да, это действительно так. Кроме того, что нужно создавать таблицу специально под условия, вручную туда вводить данные, а также открывать отдельное диалоговое окно и вводить туда диапазоны. Но если воспользоваться макросами, большинство операций можно автоматизировать.

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

Private Sub Worksheet_Change(ByVal Target As Range)

If Not Intersect(Target, Range(«A2:I5»)) Is Nothing Then

On Error Resume Next

Range(«A7»).CurrentRegion.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:=Range(«A1»).CurrentRegion

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

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

11

Согласитесь, что теперь значительно удобнее.

Подробнее о сложных запросах

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

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

12

Здесь нужно учитывать такие моменты:

  1. Символ * говорит о каком-угодно количестве символов, а ? – лишь одном.
  2. Числовые и текстовые запросы обрабатываются разным способом. Так, если условная ячейка, в которой указано число 5, указана пользователем, то это еще не означает, что фильтр будет искать все числа, которые начинаются с этой цифры. Но если в ней будет указана буква Б, то фильтр будет отбирать те данные, которые содержат текст, который начинается с нее. Простыми словами, если текст не начинается со знака =, то он эквивалентен такому, в конце которого находится символ *.
  3. Если используются даты, то они вводятся в таком формате, как в Соединенных Штатах. Сначала указывается месяц, потом день, а потом – год, а также элементы перечисления разделяются дробью. Это даже касается локализованного под Россию Экселя.

Логические условия

Огромное преимущество расширенного фильтра заключается в том, что можно использовать логические условия. Что это такое? Логическим условием называется такое условие, которое использует логический оператор И или ИЛИ. Конечно, есть и другие, но они описаны выше.

Характерная черта любой логической операции в том, что она возвращает условие «Истина» или «Ложь». В случае с расширенным фильтром, условие будет следующее: если определенное условие истинно.

То есть, логическое условие «И» фактически расшифровывается, как «если критерий 1 и критерий 2 соответствуют критерию 3». Например, если яблоки и морковь стоят одинаково, то. Или – аналогично, просто вместо «И» вставляется «Или». На практике это может выглядеть так. Если пользователи купили товары компании 1 или компании 2, то отобразить эти покупки. В таком случае при приобретении чего-то третьего, оно не отображается.

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

Итак, что нужно знать? Если условия находятся в одной строке, хотя и различных ячейках, то они считаются как те, которые соединены друг с другом логическим оператором «И».

13

В описываемом примере фильтр покажет только те бананы, которые были куплены в Московском Ашане в третьем квартале.

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

Например, в приведенном ниже примере фильтр будет учитывать только заказы менеджера Волиной как по персикам, купленным в Москве и луке, который продавался в третьем квартале в Самаре.

14

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

15

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

Функция «Фильтр»

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

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

Синтаксис функции следующий.

=ФИЛЬТР(массив; включить; [если_пусто])

Разберем основные аргументы:

  1. Массив. Это диапазон (как представленный в виде ссылки, так и именованный), который будет использоваться для фильтрации данных.
  2. Включить. Это массив переменных, имеющих такую же ширину и высоту, как и массив. Простыми словами, это условия, при которых должны отображаться конкретные значения.
  3. Если_пусто. Это дополнительный аргумент, который задает значение, которое возвращается при обнаружении, что все значения включенного массива пустые.

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

  1. Она задействует динамические массивы. Учитывая это, результат всегда будет касаться и смежных ячеек.
  2. Если необходимо задать фильтру несколько условий, необходимо использовать знак умножения во втором аргументе, а сами условия взять в скобки.
  3. Для использования оператора ИЛИ нужно использовать знак суммирования вместо знака умножения, а сами критерии также взять в скобки.
  4. Если окажется, что в ячейке, в которую будет возвращаться значение, уже есть какие-то значения, то появится ошибка #ПЕРЕНОС! Чтобы избавиться от нее, нужно очистить данные, содержащиеся в соответствующей ячейке.

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

Выводы

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

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

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

Источник

Функции динамических массивов: СОРТ, ФИЛЬТР и УНИК

Эта статья является логическим продолжением предыдущего материала про новые динамические массивы (ДМ), появившиеся в Excel в Office 365. Если вы ещё с не ознакомились (кому лень читать — там есть видео), то очень советую сделать это сейчас, чтобы понимать о чём, собственно, идёт речь и как заполучить все эти радости в вашем Excel.

Обновление Office 365, которое подарило Microsoft Excel новый вычислительный движок с поддержкой динамических массивов, также добавило к нашему арсеналу 7 новых функций, заточенных специально для работы с массивами. В этой статье я хотел бы рассказать про три самых важных функции: СОРТ, ФИЛЬТР и УНИК. Остальные играют скорее вспомогательную роль — про них чуть позже.

Для простоты я буду во всех примерах я буду показывать работу этих функций на обычных таблицах, но можно иметь ввиду, что с «умными» таблицами (созданными через Главная — Форматировать как таблицу или сочетанием клавиш Ctrl+T) эти функции тоже отлично работают.

Итак, поехали…

Функция СОРТ (SORT)

Синтаксис:

=СОРТ(массив; [индекс_сортировки]; [порядок_сортировки]; [по_столбцу])

В самом простом варианте требует в качестве аргумента только массив (диапазон) и выдает его уже в отсортированном виде:

Функция СОРТ (SORT) - простой случай

По умолчанию сортировка выполняется по возрастанию. Если нужен обратный порядок, то за это отвечает третий аргумент (1 — по возрастанию, -1 — по убыванию):

Обратная сортировка

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

Сортировка по 3-му столбцу

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

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

Одновременная сортировка по нескольким столбцам в разном направлении

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

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

Бррр… :(

Функция ФИЛЬТР (FILTER)

Синтаксис:

=ФИЛЬТР(массив; включить; [если_пусто])

Назначение этой функции — принять в качестве аргумента массив исходных ячеек и отфильтровать его по заданному условию(ям). Какие строки включить в результаты, а какие убрать — определяется вторым аргументом. Он должен представлять из себя массив логических значений ЛОЖЬ (FALSE) и ИСТИНА (TRUE), задающих статус для каждой строки:

Фильтрация функцией ФИЛЬТР

Логическую ИСТИНУ и ЛОЖЬ можно, для компактности, заменить на 1 (или любое другое число) и 0 (или пустую ячейку):

Фильтрация по единичкам

А самое интересное, что логические значения могут быть результатом какого-либо выражения, например:

Фильтр по условию

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

  • =ФИЛЬТР(B2:D25; D2:D25>=10000) — отбираем все заказы, где стоимость больше или равна 10 000
  • =ФИЛЬТР(B2:D25; ЛЕВСИМВ(B2:B25) = «Б») — фильтрация всех строк, где название товара начинается с «Б» (блуза, брюки, бриджи и т.д.)
  • =ФИЛЬТР(B2:D25; (B2:B25 = «Брюки») * (C2:C25 = «Анна»)) — отбор всех сделок Анны, где она продавала брюки
  • =ФИЛЬТР(B2:D25; (C2:C25 = «Анна») + (C2:C25 = «Иван»)) — все сделки Анны и Ивана
  • =ФИЛЬТР(B2:D25; ЕСЛИОШИБКА(ПОИСК(«Самара»;A2:A25);0)) — фильтрация всех сделок, где в названии города содержится слово Самара (г. Самара, Самара г., город Самара, Самара-городок и т.д.)

Если функция ФИЛЬТР не находит ни одного значения, удовлетворяющего условию, то она выдаёт ошибку #ВЫЧИСЛ! Чтобы вывести вместо неё что-то более осмысленное, можно использовать третий аргумент:

Сообщение, если ничего не найдено

Функция УНИК (UNIQUE)

Синтаксис:

=УНИК(массив; [по_столбцам]; [один_раз])

В самом простом варианте эта функция извлекает из входного массива все имеющиеся там значения, удаляет повторы и выдаёт то, что осталось:

Извлечение уникальных функцией УНИК

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

Извлечение уникальных строк

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

Извлечение только уникальных элементов

Комбинирование функций

Само-собой, никто не запрещает нам «женить» все упомянутые функций между собой — здесь-то и начинается настоящая магия, мощь и синергия.

Разберём, для примера, классическую задачу: предположим, что нам нужно сформировать справочник по городам для выпадающего списка на основе выгрузки из какой-нибудь базы данных. В исходной выгрузке города повторяются в случайном порядке, есть пустые ячейки и дубли. А необходимый нам справочник, содержащий эталонный набор городов, должен быть:

  • без повторов
  • без пустых ячеек
  • отсортирован по возрастанию от А до Я

Делается всё вышеперечисленное одной (!) формулой:

Комбинирование функций массива

В английской версии эта функция выглядит как:


=SORT(UNIQUE(FILTER(B2:B100000;NOT(ISEMPTY(B2:B100000)))))

Здесь:

  • ФИЛЬТР — отбирает только те ячейки, где есть данные (не пусто)
  • УНИК — убирает повторы в отобранном функцией ФИЛЬТР списке
  • СОРТ — сортирует получившийся справочник по алфавиту

После этого останется только указать получившийся динамический массив как источник для выпадающего списка на вкладке Данные — Проверка данных (Data — Validation), не забыв добавить после адреса первой ячейки массива знак решётки:

Вып.список на динамическом массиве с формулами

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

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

Ну, лучше поздно, чем никогда, верно? По крайней мере, нашим детям точно будет проще :)

Ссылки по теме

  • Что такое динамические массивы в новом Excel и как они работают
  • Как отсортировать список формулой
  • Как создать выпдающий список в ячейке листа Excel

Вывести на экран информацию по одному / нескольким параметрам можно с помощью фильтрации данных в Excel.

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

Автофильтр и расширенный фильтр в Excel

Имеется простая таблица, не отформатированная и не объявленная списком. Включить автоматический фильтр можно через главное меню.

  1. Выделяем мышкой любую ячейку внутри диапазона. Переходим на вкладку «Данные» и нажимаем кнопку «Фильтр».
  2. Кнопка.

  3. Рядом с заголовками таблицы появляются стрелочки, открывающие списки автофильтра.

Стрелочки.

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

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

Птичка.

Сразу видим результат:

Пример.

Особенности работы инструмента:

  1. Автофильтр работает только в неразрывном диапазоне. Разные таблицы на одном листе не фильтруются. Даже если они имеют однотипные данные.
  2. Инструмент воспринимает верхнюю строчку как заголовки столбцов – эти значения в фильтр не включаются.
  3. Допустимо применять сразу несколько условий фильтрации. Но каждый предыдущий результат может скрывать необходимые для следующего фильтра записи.

У расширенного фильтра гораздо больше возможностей:

  1. Можно задать столько условий для фильтрации, сколько нужно.
  2. Критерии выбора данных – на виду.
  3. С помощью расширенного фильтра пользователь легко находит уникальные значения в многострочном массиве.



Как сделать расширенный фильтр в Excel

Готовый пример – как использовать расширенный фильтр в Excel:

  1. Создадим таблицу с условиями отбора. Для этого копируем заголовки исходного списка и вставляем выше. В табличке с критериями для фильтрации оставляем достаточное количество строк плюс пустая строка, отделяющая от исходной таблицы.
  2. Таблица условий.

  3. Настроим параметры фильтрации для отбора строк со значением «Москва» (в соответствующий столбец таблички с условиями вносим = «=Москва»). Активизируем любую ячейку в исходной таблице. Переходим на вкладку «Данные» — «Сортировка и фильтр» — «Дополнительно».
  4. Дополнительно.

  5. Заполняем параметры фильтрации. Исходный диапазон – таблица с исходными данными. Ссылки появляются автоматически, т.к. была активна одна из ячеек. Диапазон условий – табличка с условием.
  6. Параметры.

  7. Выходим из меню расширенного фильтра, нажав кнопку ОК.

Пример1.

В исходной таблице остались только строки, содержащие значение «Москва». Чтобы отменить фильтрацию, нужно нажать кнопку «Очистить» в разделе «Сортировка и фильтр».

Как пользоваться расширенным фильтром в Excel

Рассмотрим применение расширенного фильтра в Excel с целью отбора строк, содержащих слова «Москва» или «Рязань». Условия для фильтрации должны находиться в одном столбце. В нашем примере – друг под другом.

Условие.

Заполняем меню расширенного фильтра:

Параметры1.

Получаем таблицу с отобранными по заданному критерию строками:

Пример2.

Выполним отбор строк, которые в столбце «Магазин» содержат значение «№1», а в столбце стоимость – «>1 000 000 р.». Критерии для фильтрации должны находиться в соответствующих столбцах таблички для условий. На одной строке.

Критерий.

Заполняем параметры фильтрации. Нажимаем ОК.

Пример3.

Оставим в таблице только те строки, которые в столбце «Регион» содержат слово «Рязань» или в столбце «Стоимость» — значение «>10 000 000 р.». Так как критерии отбора относятся к разным столбцам, размещаем их на разных строках под соответствующими заголовками.

Критерий1.

Применим инструмент «Расширенный фильтр»:

Пример4.

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

Основные правила:

  1. Результат формулы – это критерий отбора.
  2. Записанная формула возвращает результат ИСТИНА или ЛОЖЬ.
  3. Исходный диапазон указывается посредством абсолютных ссылок, а критерий отбора (в виде формулы) – с помощью относительных.
  4. Если возвращается значение ИСТИНА, то строка отобразится после применения фильтра. ЛОЖЬ – нет.

Отобразим строки, содержащие количество выше среднего. Для этого в стороне от таблички с критериями (в ячейку I1) введем название «Наибольшее количество». Ниже – формула. Используем функцию СРЗНАЧ.

СРЗНАЧ.

Выделяем любую ячейку в исходном диапазоне и вызываем «Расширенный фильтр». В качестве критерия для отбора указываем I1:I2 (ссылки относительные!).

В таблице остались только те строки, где значения в столбце «Количество» выше среднего.

Пример5.

Чтобы оставить в таблице лишь неповторяющиеся строки, в окне «Расширенного фильтра» поставьте птичку напротив «Только уникальные записи».

Скачать пример работы с расширенным фильтром

Уникальные значения.

Нажмите ОК. Повторяющиеся строки будут скрыты. На листе останутся только уникальные записи.

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