Найти тему

📌 VBA Excel: Как создать выпадающий список уникальных значений в алфавитном порядке

Оглавление

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

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

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

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

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

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

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

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

🎯 Цель: создать выпадающий список уникальных значений (в ячейке В2) представленных в алфавитном порядке

🔔 Реализацию поставленной задачи разделим на 2 (два) этапа:

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

▶️ Метод Bubble Sort

Представленный ниже макрос демонстрирует классическую реализацию алгоритма сортировки пузырьком (Bubble Sort) для массива значений, принимая массив значений в качестве входных данных и сортирует его в порядке возрастания.

Сортировка осуществляется многократно, путем прохода по массиву, при этом каждый проход позволяет следующему по величине (или наименьшему, в зависимости от порядка сравнения) значению «всплывать» на правильную позицию:

Реализация алгоритма сортировки пузырьком (Bubble Sort)
Реализация алгоритма сортировки пузырьком (Bubble Sort)
Реализация алгоритма сортировки пузырьком (Bubble Sort)
Реализация алгоритма сортировки пузырьком (Bubble Sort)

Алгоритм сравнивает пары соседних элементов массива и, при необходимости, меняет их местами до тех пор, пока весь массив не будет отсортирован.

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

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

⚙️ Как это работает:

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

  • ws - рабочий лист (для представления активного рабочего листа);
  • rng - диапазон, который представляет собой именованный диапазон «Список» на активном листе:
Именованный диапазон
Именованный диапазон
  • uniqueValues - коллекция для хранения уникальных значений, извлеченных из rng
  • i - целое число для целей итерации;
  • Переменная cell используется для перебора каждой ячейки в указанном диапазоне rng. В данном контексте она представляет собой временную переменную, которая последовательно принимает значение каждой ячейки в диапазоне rng при каждой итерации цикла For Each.

🔘 Заполняем коллекцию уникальными непустыми значениями, найденными в rng.

On Error Resume Next используется для пропуска ошибок при попытке добавить дубликат элемента в коллекцию (для коллекций требуются уникальные ключи).

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

➡️ Результат: применяем отсортированные уникальные значения в качестве списка проверки данных к целевой ячейке (в примере, B2), создавая выпадающий список в указанной ячейке:

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

⚠️ Обращаем внимание: Что может привести к разным результатам сортировки?

Что может привести к разным результатам сортировки?
Что может привести к разным результатам сортировки?

📝 Примечание автора: чтобы выполнить макрос в списке макросов выберите нужный макрос и нажмите Выполнить:

Как выполнить макрос
Как выполнить макрос

Или воспользуйтесь одним, из ранее рассмотренных способов:

🔶 Подводя итог

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

Подписывайтесь на канал, чтобы не пропустить новые уроки и полезные фишки Excel
Подписывайтесь на канал, чтобы не пропустить новые уроки и полезные фишки Excel

🔵 Ознакомиться с другими приемами создания выпадающих списков вы можете в наших предыдущих обзорах 🔽

Быстрый поиск решения. Путеводитель Excel - Google Диск
Выпадающие списки в Excel | Excel на ИЗИ: ✅ Приемы эффективной работы в Microsoft Excel | Дзен
Примеры макросов VBA Excel | Excel на ИЗИ: ✅ Приемы эффективной работы в Microsoft Excel | Дзен

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

Excel на ИЗИ — полная коллекция видео на RUTUBE
It's Moskovskaya_Excel на ИЗИ - YouTube
Следите за новостями, чтобы узнать больше о VBA и Excel, в частности
Следите за новостями, чтобы узнать больше о VBA и Excel, в частности
Excel на ИЗИ

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

Как создать выпадающий список уникальных значений в алфавитном порядке.xlsm

Наука
7 млн интересуются