Найти тему

📌 Как сделать в Excel: 3 способа создать список значений на основе выбранного критерия

Оглавление

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

В данном обзоре мы рассмотрим 3 (три) подхода решения позволяющие создать список значений на основе выбранного критерия.

Для удобства поиска нужного материала у нас на канале есть удобный рубрикатор, а все видео предыдущих уроков также доступны на youtube (ссылка внизу поста и в описании канала)
Для удобства поиска нужного материала у нас на канале есть удобный рубрикатор, а все видео предыдущих уроков также доступны на youtube (ссылка внизу поста и в описании канала)
Как сделать в Excel: 3 способа создать список значений на основе выбранного критерия
Как сделать в Excel: 3 способа создать список значений на основе выбранного критерия

📢 Файл с примером размещен в конце статьи 🔽

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

▶️ Исходные данные

Для целей данного примера в качестве исходных данных рассмотрим следующие:

Пример исходных данных
Пример исходных данных

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

Назначаем именованные диапазоны
Назначаем именованные диапазоны

🔔 Обращаем внимание! В данном примере список уникальных значений по столбцу "Менеджер" сформирован с использованием сочетания функций СОРТ и УНИК.

Аргументы функций СОРТ и УНИК. Доступно в Excel в Office 365 и LTSC 2021
Аргументы функций СОРТ и УНИК. Доступно в Excel в Office 365 и LTSC 2021

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

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

▶️ Цели и задачи

В качестве критерия будем использовать данные ячейки С2 (выбор осуществляется из выпадающего списка) которой присвоим имя "Критерий":

Определение ячейки для выбора критерия поиска
Определение ячейки для выбора критерия поиска

🎯 Задача: сформировать создать список значений (перечень проданных товаров) на основе выбранного критерия (Менеджера)

Постановка задачи
Постановка задачи

▶️ Способ 1. Используем сочетание функций

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

Функции Excel | Excel на ИЗИ: ✅ Приемы эффективной работы в Microsoft Excel | Дзен

Одной из встроенных функций позволяющей выполнить левосторонний поиск является ИНДЕКС:

Аргументы функции ИНДЕКС
Аргументы функции ИНДЕКС

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

Так как массив определен ранее как именованный диапазон "Товар", то остается определить только номер строки.

Для поиска номера строки можно воспользоваться сочетанием функций НАИМЕНЬШИЙ+СТРОКА+ЧСТРОК:

Аргументы функций: НАИМЕНЬШИЙ, СТРОКА, ЧСТРОК
Аргументы функций: НАИМЕНЬШИЙ, СТРОКА, ЧСТРОК

Данный подход позволит определить номера строк, в которых находятся соответствующие значения:

Определение номера строки
Определение номера строки

⚙️ Краткое описание:

🔘 ЕСЛИ(Менеджер=Критерий; ...): условие проверяет, соответствует ли значение в столбце "Менеджер" критерию, заданному в ячейке "Критерий".

  • Если условие выполняется, формула продолжает работу, иначе возвращает ЛОЖЬ.
  • Часть формулы СТРОКА(Товар)-1 возвращает номер строки в столбце "Товар". -1 вычитается для того, чтобы получить корректный номер строки, с которой начинается поиск (напомним, назначенный именованный диапазон начинается со второй строки)
Проверка соответствия критерию
Проверка соответствия критерию

🔘 НАИМЕНЬШИЙ(ЕСЛИ(...);ЧСТРОК($B$5:B5)): находит минимальное значение в массиве, где ЧСТРОК($B$5:B5) определяет позицию критерия в указанном массиве.

Минимальное значение будет соответствовать первому найденному критерию в столбце "Менеджер"
Минимальное значение будет соответствовать первому найденному критерию в столбце "Менеджер"

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

=ЕСЛИОШИБКА(ИНДЕКС(Товар;НАИМЕНЬШИЙ(ЕСЛИ(Менеджер=Критерий;СТРОКА(Товар)-1);ЧСТРОК($B$5:B5)));"")
=ЕСЛИОШИБКА(ИНДЕКС(Товар;НАИМЕНЬШИЙ(ЕСЛИ(Менеджер=Критерий;СТРОКА(Товар)-1);ЧСТРОК($B$5:B5)));"")

🔔 Обращаем внимание! Чтобы учесть обработку возможных ошибок в результирующую формулу включена функция ЕСЛИОШИБКА. Теперь, если при выполнении формулы возникает ошибка, то возвращается пустая строка.

📝 Примечание автора: Разместив формулу в ячейке В5 завершите ее сочетанием клавиш Ctrl + Shift + Enter и распространите ее вниз. Список значений на основе выбранного критерия готов! 😉

▶️ Способ 2. Пишем макрос

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

А потому, в качестве альтернативы, рассмотрим процедуру события Worksheet_Change, которая автоматически выполняется при изменении ячейки на листе:

Пример макроса для создания списка значений на основе выбранного критерия
Пример макроса для создания списка значений на основе выбранного критерия

⚙️ Краткое описание:

  • Объявляем необходимые переменные
  • Задаем ячейку на текущем листе в качестве ячейки критерия. В тот момент, когда в эту ячейку вносятся какие-либо изменения, код предпринимает соответствующие действия.
  • Если выбранная ячейка критерия не пустая, проверяем наличие соответствующих критериев.
  • В случае если соответствующий критерий не найден или выбранный критерий пуст, очищаем содержимое столбца "B".
  • Если критерии найдены, после предварительной очистки содержимого столбца "B" добавляем соответствующие товары в ячейку в столбце "B" текущего листа.

🔔 Немаловажной частью кода является Application. Screenupdating = False, который останавливает визуальное обновление экрана в Excel.

Любые действия, выполняемые кодом, не видны пользователю до тех пор, пока для параметра Application.ScreenUpdating не будет установлено значение True.

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

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

Вспомогательная функция
Вспомогательная функция

Теперь при изменении изменение ячейки с критерием на текущем листе макрос осуществляет поиск соответствующих значений и добавляет их на текущем листе (начиная с ячейки B5).

Пример создания списка значений на основе выбранного критерия
Пример создания списка значений на основе выбранного критерия

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

▶️ Способ 3. Создаем сводную таблицу

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

Сводные таблицы | Excel на ИЗИ: ✅ Приемы эффективной работы в Microsoft Excel | Дзен

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

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

Альтернативным решением будет совместное использование сводной таблицы и срезов:

Применение срезов для создания списка значений на основе выбранного критерия
Применение срезов для создания списка значений на основе выбранного критерия

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

🙌 Оставайся с нами на связи и узнавай больше о других методах и приемах работы в Excel:

Excel на ИЗИ
It's Moskovskaya_Excel на ИЗИ - YouTube

СКАЧАТЬ ПРИМЕР 🔽

Как создать список значений на основе выбранного критерия.xlsm