📌 Проблема выпадающих списков (Часть 3): как создать и настроить выпадающий список уникальных значений на основании данных сводной таблицы

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

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

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

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

▶️ Постановка задачи и пример исходных данных

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

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

Выпадающий список будем формировать в столбце В (начиная с ячейки В6)

🔔 Пример исходных данных для создания сводной таблицы см. в предыдущем обзоре:

▶️ Создаем именованный диапазон

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

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

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

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

Создание именованного диапазона на основе указанных данных
Создание именованного диапазона на основе указанных данных

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

  • используя имя листа указанное в ячейке C1 определяем лист с данными
  • устанавливаем последнюю заполненную строку в столбце (эта информация сохраняется в переменной lastRow)
  • используя метод Add создаем именованный диапазон, который охватывает данные по столбцу (A) от ячейки A2 до последней заполненной определенной

➡️ В результате, назначенное имя будет отражено в диспетчере имен:

Пример создания именованного диапазона
Пример создания именованного диапазона

🔔 При изменении критерия именованный диапазон также будет изменен:

Изменение именованного диапазона при изменении критерия
Изменение именованного диапазона при изменении критерия

▶️ Создаем выпадающий список

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

Макрос выполняет задачу создания выпадающего списка на листе "Лист2" на основе данных из определенного именованного диапазона.
Макрос выполняет задачу создания выпадающего списка на листе "Лист2" на основе данных из определенного именованного диапазона.

🔘 Определение диапазона для выпадающего списка:

  • получаем имя листа, на котором будет создан выпадающий список
  • определяем последнюю заполненную строку в столбце (B)
  • устанавливаем диапазон в столбце (B), который охватывает ячейки от B6 до последней заполненной

🔘 Установка источника данных для выпадающего списка:

  • удаляем предыдущую настройку проверки данных в диапазоне
  • добавляем новую настройку проверки данных типа "список" (xlValidateList), где источник данных для выпадающего списка устанавливается равным именованному диапазону
  • устанавливаем параметры выпадающего списка.

➡️ В результате будет создан выпадающий список на основе данных из диапазона сводной таблицы:

Пример создания выпадающего списка
Пример создания выпадающего списка

▶️ Автоматизируем решение

В целях автоматизации объединим оба рассмотренных решения

Создаем выпадающий список на основе данных из определенного именованного диапазона.
Создаем выпадающий список на основе данных из определенного именованного диапазона.

🔔 Для большего удобства можно реализовать макрос назначив его на событие листа:

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

Макрос проверяет, было ли изменено значение в указанной ячейке:

  • в случае изменений проверяем, является ли значение пустым
  • если B3 не пусто, то очищаем данные в диапазоне и вызывает макрос для создания выпадающего списка. Если B3 пусто, то очищаем данные в диапазоне.

📝 Примечание автора: Код следует поместить в модуль листа, на котором выполняется действие.

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

Теперь, при каждом изменении значения в ячейке B3, данные в диапазоне будут очищены, а затем выполнится макрос устанавливающий выпадающий список

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

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

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

➡️ Узнать больше о создании выпадающих списков Excel 🔽

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

Следите за новостями, чтобы узнать больше о VBA и Excel, в частности
Следите за новостями, чтобы узнать больше о VBA и Excel, в частности

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