Применение фильтра в выпадающем списке Excel (все версии)

Loading

Применяем фильтр в выпадающем списке Excel (все версии).

Для чего вообще в выпадающем списке нужен фильтр?

В ходе работы часто возникает ситуация, кода необходимо для внесения данных выбирать нужные значения из заданного перечня. Такой способ позволяет не только ускорить введение данных, но и избавиться от возможных ошибок при наборе текста. Этот инструмент называется «Выпадающий список и создается командой: «Данные» – «проверка данных» – «тип данных» – «Список»

Как видно, работа по созданию списка не трудна. Однако, при наличии в списке множества записей, то ориентироваться в нем уже непросто. Способ поиска с помощью ввода текста-шаблона или с помощью сортировки в данном случае часто не только невозможен, но и бесполезен

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

В течении нашего занятия создадим фильтр выпадающего списка в ячейке, основываясь на функциях, имеющихся в любой версии MS Excel. Это позволит применить данный способ в любой ситуации. Способ достаточно прост и быстр. При создании фильтра кратко будут описаны функции, которые используются, и те параметры этих функций, которые необходимо использовать. Чтобы создать такой фильтр, нам понадобится всего пять шагов.

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

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

Шаг первый. Проверяем вхождение шаблонного текста в список.

Для такой проверки можно применить функции ПОИСК или НАЙТИ. Функция НАЙТИ чувствительна к регистру, поэтому применим функцию ПОИСК во избежание ошибок с несовпадающим регистром. Ее синтаксис

=ПОИСК(искомый текст; строка для поиска наличия искомого текста).

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

Введем в ячейку A1 листа ИтоговыйСписок текст, который явно присутствует в ячейках нашего списка на листе проверка. Следом на листе проверка в ячейке В2 введем формулу

=ПОИСК(ИтоговыйСписок!$A$1;Проверка!A2)

Обратите внимание – ячейка с листа ИтоговыйСписок, где лежит проверяемый текст, имеет абсолютный адрес. Протягиваем формулу вниз и зададим для полученного столбца для удобства название «Вхождение»

Рисунок 1

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

Шаг второй. Выведем возрастающую нумерацию для ячеек списка на листе проверка, в которых имеется проверочное слово.

Чтобы это сделать, применим функцию ЕСЛИ в столбце С листа проверка. Она позволяет проверить условие и вывести один из двух вариантов в зависимости от его соблюдения.

В качестве условия применим функцию ЕЧИСЛО, с помощью которой обернем нашу функцию поиск. Если функция ПОИСК найдет нужное слово в списке, то результатом будет цифра. Тогда функция ЕЧИСЛО выведет результат ИСТИНА, а если нет, то результатом функции ЕЧИСЛО будет ложь.

Для параметра ИСТИНА функции ЕСЛИ зададим автоматическую нумерацию полученных строк с найденными числами. Для этого возьмем максимум из предыдущих ячеек и прибавим к полученному единицу. Так как в начале никаких предыдущих ячеек фактически нет, то для функции МАКС возьмем диапазон С1:С1 и закрепим первую ячейку. В результате при копировании формулы вниз будем получать диапазоны C1:C2, C1:C3 и так далее.

Ну и для параметра ЛОЖЬ выведем пустое значение в виде двух кавычек подряд. В результате получаем такую запись.

=ЕСЛИ(ЕЧИСЛО(B2);МАКС($C$1:C1)+1;0)

Рисунок 2

Шаг третий. Соберем вместе все значения, соответствующие нашему искомому параметру.

В ячейке D2 листа проверка. Напротив ее первой ячейки применим функцию ИНДЕКС. Ее параметры – адрес исходного диапазона, номер строки и номер столбца этого диапазона, из пересечения которых надо взять данные. Исходным диапазоном будет диапазон А1:С121 на листе проверка. Номер нужной строки найдем с помощью функции ПОИСКПОЗ, указав для поиска с помощью функции СТРОКА номер строки верхней ячейки и запустив точный поиск в помощью типа сопоставления равного нулю. Номер столбца зададим первый.

=ИНДЕКС($A$2:$A$15;ПОИСКПОЗ(СТРОКА()-1;$C$2:$C$15;0);1)

Рисунок 3

Как видим, после перечня строк, содержащих последнее введение значение на листе список, для позиций с недоступными (проще говоря – не найденными) данными появилась ошибка Н/Д.. Избавимся от нее, обернув нашу формулу функцией ЕСЛИОШИБКА и указав в качестве второго параметра этой функции ноль. В результате получим формулу

=ЕСЛИОШИБКА(ИНДЕКС($A$2:$A$15;ПОИСКПОЗ(СТРОКА(D1);$C$2:$C$15;0);1);0)

Назовем добавленный столбец «Список»

Рисунок 4

Шаг четвертый. Сформируем на основе полученного перечня источник для выпадающего списка и применим его.

Переходим на лист ИтоговыйСписок. Выделяем ячейку А2, переходим на вкладку данные и нажимаем кнопку «проверка данных».

Рисунок 5

Тип данных выбираем «Список», а в строке “источник” введем функцию СМЕЩ. С ее помощью зададим диапазон, ячейки которого будут использованы в нашем списке. Параметры функции СМЕЩ по очереди в нашем случае:

1. начальная ячейка, относительно которой будем двигаться. В нашем случае это ячейка D2 на листе проверка. Не забываем ее закрепить.

2. сдвиг по строкам. В нашем случае его нет, поэтому просто отделим место этого параметра стандартным разделителем.

3. сдвиг по колонкам. Его тоже не будет.

4. количество строк в формируемом диапазоне. Чтобы это узнать, от общего количества заполненных ячеек в колонке D листа проверка отнимем количество числовых ячеек в этом же столбце. Найти количество тех и других можно функциями СЧЕТЗ и СЧЕТ соответственно. Необходимо так же учесть заголовок, поэтому из результата расчета надо дополнительно вычесть 1

5. Количество столбцов в формируемом диапазоне. У нас будет только одна колонка.

В итоге получаем

=СМЕЩ(Проверка!$D$2;;;СЧЁТЗ(Проверка!$D:$D)-СЧЁТ(Проверка!$D:$D)-1;1)

Рисунок 6

Рисунок 7

На первый взгляд все готово, но остались проблемы

Во-первых, мы вводим данные в отдельной ячейку. Желательно это делать в самой ячейке с списком.

Во-вторых, при вводе для поиска отсутствующих данных появится ошибка. Это не совсем удобно.

Исправим эту ситуацию.

Прежде всего на листе Проверка в ячейке E1 сделаем ссылку на ячейку с выпадающим списком листа ИтоговыйСписок.

Рисунок 8

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

Рисунок 9

 

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

Рисунок 10

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

Рисунок 11

Подведем итог.

Мы научились фильтровать выпадающий список в Excel, применяя стандартные формулы и функции. Данный подход позволил упростить работу по применению выпадающего списка на практике. Этот способ работает во всех версиях Excel/ В следующих материалах мы расскажем, как упростить данную работу в версиях Microsoft Office 365, а также в версиях не меньше MS Office 2021. Вы можете самостоятельно попробовать выполнить работу уроку, скачав учебный фал по ссылке. Удалите в нем все формулу и попробуйте написать их заново.

Мы же желаем успехов в работе и применении в ней полученных сегодня знаний!