Оглавление
В учебнике показано, как создать выпадающий список Excel в зависимости от другой ячейки с помощью новых функций динамического массива.
Создать простой выпадающий список в Excel легко. Создание многоуровневого каскадного выпадающего списка всегда было сложной задачей. В приведенном выше учебнике описаны четыре различных подхода, каждый из которых включает безумное количество шагов, кучу различных формул и несколько ограничений, связанных с многословными записями, пустыми ячейками и т.д.
Это была плохая новость. Хорошая новость заключается в том, что эти методы были разработаны для додинамических версий Excel. Появление динамических массивов в Excel 365 изменило все! С новыми функциями динамических массивов создание выпадающего списка с несколькими зависимостями - дело нескольких минут, если не секунд. Никаких хитростей, никаких предостережений, никакой чепухи. Только быстрые, понятные и легко выполнимые решения.
Примечания:
- Этот новый способ создания выпадающих списков с помощью динамического массива работает только в Excel 365 и Excel 2021. В додинамическом Excel вам придется делать это старым добрым способом, описанным в статье Создание зависимого выпадающего списка в Excel 2019 - 2007.
- Это решение предназначено для одного ряда. Если вы хотите скопировать свои списки отбора вниз несколько рядов , затем следуйте инструкциям в раскрывающемся списке Зависимые для нескольких строк.
- Выберите ячейку, в которой должен появиться выпадающий список (в нашем случае D3).
- На Данные во вкладке Инструменты данных группу, нажмите Валидация данных .
- В Валидация данных диалогового окна, выполните следующие действия:
- Под Разрешить , выберите Список .
- В Источник введите ссылку на диапазон разлива, выводимый формулой UNIQUE. Для этого введите хэш-тег сразу после ссылки на ячейку, как показано ниже: =$G$3#
Это называется ссылкой на диапазон разлива, и этот синтаксис относится ко всему диапазону, независимо от того, насколько он расширяется или сужается.
- Нажмите OK чтобы закрыть диалоговое окно.
- Чтобы новые записи включали в раскрывающемся списке автоматически Отформатируйте исходные данные в виде таблицы Excel. Или вы можете включить несколько пустых ячеек в формулы, как показано в этом примере.
- Если ваши исходные данные содержат какие-либо пробелы, вы можете отфильтровывать заготовки с помощью этого решения.
- На сортировка по алфавиту элементов выпадающего списка, оберните свои формулы в функцию SORT, как объясняется в этом примере.
- На включать новые данные автоматически при добавлении его в список источников, добавьте несколько дополнительных ячеек в массивы, на которые ссылаются ваши формулы.
- На исключить пустые ячейки Настройте формулы так, чтобы они игнорировали пустые ячейки до тех пор, пока они не будут заполнены.
Как сделать динамический выпадающий список в Excel
Этот пример демонстрирует общий подход к созданию каскадного выпадающего списка в Excel с помощью новых функций динамического массива.
Предположим, у вас есть список фруктов в столбце А и экспортеров в столбце В. Дополнительная сложность заключается в том, что названия фруктов не сгруппированы, а разбросаны по столбцам. Задача состоит в том, чтобы поместить уникальные названия фруктов в первый выпадающий столбец и в зависимости от выбора пользователя показать соответствующих экспортеров во втором выпадающем столбце.
Чтобы создать динамический зависимый выпадающий список в Excel, выполните следующие действия:
1. Получение элементов для основного выпадающего списка
Для начала извлечем все различные названия фруктов из столбца А. Это можно сделать с помощью функции UNIQUE в ее простейшей форме - передайте список фруктов в качестве первого аргумента ( массив ) и опустить остальные необязательные аргументы, поскольку их значения по умолчанию отлично работают для нас:
=UNIQUE(A3:A15)
Формула попадает в G3, и после нажатия клавиши Enter результаты автоматически переливаются в следующие ячейки.
2. Создайте основной выпадающий список
Чтобы сделать основной выпадающий список, настройте правило проверки данных Excel таким образом:
Ваш основной выпадающий список готов!
3. Получение элементов для зависимого выпадающего списка
Чтобы получить записи для вторичного выпадающего меню, мы отфильтруем значения в столбце B на основе значения, выбранного в первом выпадающем меню. Это можно сделать с помощью другой функции динамического массива под названием FILTER:
=FILTER(B3:B15, A3:A15=D3)
Где B3:B15 - исходные данные для зависимого выпадающего списка, A3:A15 - исходные данные для главного выпадающего списка, а D3 - ячейка главного выпадающего списка.
Чтобы убедиться в правильности работы формулы, вы можете выбрать какое-либо значение в первом выпадающем списке и посмотреть результаты, возвращаемые FILTER. Отлично! :)
4. Сделайте зависимый выпадающий список
Чтобы создать второй выпадающий список, настройте критерии проверки данных точно так же, как вы это сделали для первого выпадающего списка на шаге 2. Но на этот раз обратитесь к диапазону разлива, возвращенному функцией FILTER: =$H$3#
Вот и все! Ваш зависимый от Excel выпадающий список готов к использованию.
Советы и примечания:
Как создать многозависимый выпадающий список в Excel
В предыдущем примере мы сделали выпадающий список, зависящий от другой ячейки. Но что если вам нужна многоуровневая иерархия, т.е. 3-й выпадающий список, зависящий от 2-го списка, или даже 4-й выпадающий список, зависящий от 3-го списка. Возможно ли это? Да, вы можете установить любое количество зависимых списков (разумное количество, конечно :).
В данном примере мы разместили штаты/провинции в столбце C, и теперь хотим добавить соответствующее выпадающее меню в G3:
Чтобы создать многозависимый выпадающий список в Excel, нужно сделать следующее:
1. Настройте первый выпадающий список
Основной выпадающий список создается с помощью тех же шагов, что и в предыдущем примере (см. шаги 1 и 2 выше). Единственное отличие - это ссылка на диапазон разлива, которую вы вводите в поле Источник коробка.
На этот раз формула UNIQUE находится в E8, а основной выпадающий список будет находиться в E3. Итак, вы выбираете E3, нажимаете кнопку Валидация данных , и поставьте эту ссылку: =$E$8#
2. Настройте второй выпадающий список
Как вы могли заметить, теперь столбец B содержит несколько повторений одних и тех же экспортеров. Но вам нужны только уникальные имена в вашем выпадающем списке, верно? Чтобы исключить все дубликаты, оберните функцию UNIQUE вокруг вашей формулы FILTER и введите эту обновленную формулу в F8:
=UNIQUE(FILTER(B3:B15, A3:A15=E3))
Где B3:B15 - исходные данные для второго выпадающего списка, A3:A15 - исходные данные для первого выпадающего списка, а E3 - ячейка первого выпадающего списка.
После этого используйте следующую ссылку на диапазон разлива для критериев проверки данных: =$F$8#.
3. Настройте третий выпадающий список
Чтобы собрать элементы для третьего выпадающего списка, используйте формулу ФИЛЬТР с несколькими критериями. Первый критерий проверяет весь список фруктов по значению, выбранному в первом выпадающем списке (A3:A15=E3), а второй критерий проверяет список экспортеров по выбору во втором выпадающем списке (B3:B15=F3). Полная формула находится в G8:
=FILTER(C3:C15, (A3:A15=E3) * (B3:B15=F3))
Если вы собираетесь добавить больше зависимых выпадающих элементов (4-й, 5-й и т.д.), то, скорее всего, столбец C будет содержать несколько вхождений одного и того же элемента. Чтобы предотвратить попадание дубликатов в таблицу подготовки и, соответственно, в 3-й выпадающий элемент, вложите формулу FILTER в функцию UNIQUE, как мы делали в предыдущем шаге:
=UNIQUE(FILTER(C3:C15, (A3:A15=E3) * (B3:B15=F3)))
Последнее, что вам нужно сделать, это создать еще одно правило проверки данных с помощью этого Источник ссылка: =$G$8#
Ваш выпадающий список с несколькими зависимостями готов к работе!
Совет. Аналогичным образом вы можете получить предметы для последующие выпадающие списки Предполагая, что столбец D содержит исходные данные для вашего 4-го выпадающего списка, вы можете ввести следующую формулу в H8, чтобы получить соответствующие элементы:
=UNIQUE(FILTER(D3:D15, (A3:A15=E3) * (B3:B15=F3) * (C3:C15=G3)))
Как сделать расширяемый выпадающий список в Excel
После создания выпадающего списка, вас может беспокоить вопрос, что произойдет, когда вы добавите новые элементы в исходные данные. Будет ли выпадающий список обновляться автоматически? Если ваши исходные данные отформатированы как таблица Excel, то да, динамический выпадающий список, рассмотренный в предыдущих примерах, будет расширяться автоматически без каких-либо усилий с вашей стороны, поскольку таблицы Excel являются расширяемыми по своей природе.
Если по каким-то причинам использование таблицы Excel не подходит, можно сделать выпадающий список расширяемым таким образом:
Помня об этих двух моментах, давайте доработаем формулы в нашей таблице подготовки данных. Правила проверки данных вообще не требуют корректировки.
Формула для основного выпадающего списка
Поскольку названия фруктов находятся в A3:A15, мы добавляем в массив 5 дополнительных ячеек, чтобы учесть возможные новые записи. Кроме того, мы встраиваем функцию FILTER в UNIQUE, чтобы извлечь уникальные значения без пробелов.
Учитывая вышесказанное, формула в G3 принимает такой вид:
=UNIQUE(FILTER(A3:A20, A3:A20""))
Формула для зависимого выпадающего списка
Формула в G3 не нуждается в большой доработке - просто расширьте массивы еще несколькими ячейками:
=FILTER(B3:B20, A3:A20=D3)
В результате получается полностью динамический расширяемый зависимый выпадающий список:
Как отсортировать выпадающий список по алфавиту
Хотите расположить выпадающий список в алфавитном порядке, не обращаясь к исходным данным? В новом динамическом Excel есть специальная функция и для этого! В таблице подготовки данных просто оберните функцию SORT вокруг существующих формул.
Правила проверки данных настраиваются точно так же, как описано в предыдущих примерах.
Сортировать от А до Я
Поскольку порядок сортировки по возрастанию является параметром по умолчанию, вы можете просто вложить существующие формулы в поле массив аргумент SORT, опуская все остальные аргументы, которые являются необязательными.
Для основной выпадающий список (формула в G3):
=SORT(UNIQUE(FILTER(A3:A20, A3:A20"")))
Для зависимый выпадающий список (формула в H3):
=SORT(FILTER(B3:B20, A3:A20=D3))
Готово! Оба выпадающих списка отсортированы в алфавитном порядке от А до Я.
Чтобы отсортировать от Z до A
Чтобы отсортировать в порядке убывания, необходимо задать 3-й аргумент ( порядок сортировки ) функции SORT на -1.
Для основной выпадающий список (формула в G3):
=SORT(UNIQUE(FILTER(A3:A20, A3:A20"")), 1, -1)
Для зависимый выпадающий список (формула в H3):
=SORT(FILTER(B3:B20, A3:A20=D3), 1, -1)
Это позволит отсортировать как данные в таблице подготовки, так и элементы в выпадающих списках от Z до A:
Вот как создать динамический выпадающий список в Excel с помощью новых функций динамического массива. В отличие от традиционных методов, этот подход отлично работает для однословных и многословных записей и заботится о любых пустых ячейках. Спасибо за чтение и надеемся увидеть вас в нашем блоге на следующей неделе!
Рабочая тетрадь для тренировок для скачивания
Excel-зависимый выпадающий список (файл .xlsx)