Продолжая тему создания выпадающих списков в Excel сегодня рассмотрим простой и эффективный способ создания выпадающего списка уникальных значений в алфавитном порядке.
Этот метод позволяет легко организовать выбор из уникальных элементов, что может быть полезным во многих ситуациях, например, при создании отчетов или форм.
📢 Файл с примером размещен в конце статьи 🔽
▶️ Пример исходных данных
Для целей данного примера рассмотрим диапазон значений с возможными дубликатами:
🎯 Цель: создать выпадающий список уникальных значений (в ячейке В2) представленных в алфавитном порядке
🔔 Реализацию поставленной задачи разделим на 2 (два) этапа:
- идентифицировать уникальные значения и отсортировать их в алфавитном порядке;
- добавить отсортированные уникальные значения в выпадающий список в определенной ячейке на листе.
▶️ Метод Bubble Sort
Представленный ниже макрос демонстрирует классическую реализацию алгоритма сортировки пузырьком (Bubble Sort) для массива значений, принимая массив значений в качестве входных данных и сортирует его в порядке возрастания.
Сортировка осуществляется многократно, путем прохода по массиву, при этом каждый проход позволяет следующему по величине (или наименьшему, в зависимости от порядка сравнения) значению «всплывать» на правильную позицию:
Алгоритм сравнивает пары соседних элементов массива и, при необходимости, меняет их местами до тех пор, пока весь массив не будет отсортирован.
▶️ Выпадающий список уникальных значений в алфавитном порядке
⚙️ Как это работает:
🔘 Определяем и инициализируем переменные, которые будут использоваться:
- ws - рабочий лист (для представления активного рабочего листа);
- rng - диапазон, который представляет собой именованный диапазон «Список» на активном листе:
- uniqueValues - коллекция для хранения уникальных значений, извлеченных из rng
- i - целое число для целей итерации;
- Переменная cell используется для перебора каждой ячейки в указанном диапазоне rng. В данном контексте она представляет собой временную переменную, которая последовательно принимает значение каждой ячейки в диапазоне rng при каждой итерации цикла For Each.
🔘 Заполняем коллекцию уникальными непустыми значениями, найденными в rng.
On Error Resume Next используется для пропуска ошибок при попытке добавить дубликат элемента в коллекцию (для коллекций требуются уникальные ключи).
🔘 После сбора уникальных значений сортируем их с помощью алгоритма пузырьковой сортировки (рассмотрено выше). Отсортированные значения сохраняются в массиве.
➡️ Результат: применяем отсортированные уникальные значения в качестве списка проверки данных к целевой ячейке (в примере, B2), создавая выпадающий список в указанной ячейке:
⚠️ Обращаем внимание: Что может привести к разным результатам сортировки?
📝 Примечание автора: чтобы выполнить макрос в списке макросов выберите нужный макрос и нажмите Выполнить:
Или воспользуйтесь одним, из ранее рассмотренных способов:
🔶 Подводя итог
Представленный метод позволяет создать выпадающий список уникальных значений в алфавитном порядке. В зависимости от требований задачи, может быть дополнен и изменен.
🔵 Ознакомиться с другими приемами создания выпадающих списков вы можете в наших предыдущих обзорах 🔽
🙌 Оставайся с нами на связи и узнавай больше о других методах и приемах работы в Excel:
✅ СКАЧАТЬ ПРИМЕР 🔽