Выпадающий список с наполнением
Задача: создать в ячейке выпадающий список для удобного ввода информации. Варианты для списка должны браться из заданного динамического диапазона, т.е. если завтра в него внесут изменения — например, удалят ненужные элементы или допишут еще несколько новых — они должны автоматически отразиться в выпадающем списке:
Способ 1. Если у вас Excel 2007 или новее
Простой и удобный способ почти без формул. Использует новую возможность последних версий Microsoft Excel начиная с 2007 версии — «Умные Таблицы». Суть его в том, что любой диапазон можно выделить и отформатировать как Таблицу. Тогда он превращается, упрощенно говоря, в «резиновый», то есть сам начинает отслеживать изменения своих размеров, автоматически растягиваясь-сжимаясь при добавлении-удалении в него данных.
Выделите диапазон вариантов для выпадающего списка (A1:A5 в нашем примере выше) и на Главной (Home) вкладке нажмите кнопку Форматировать как таблицу (Home — Format as Table). Дизайн можно выбрать любой — это роли не играет:
Обратите внимание на то, что таблица должна иметь строку заголовка (в нашем случае это А1 со словом Сотрудники). Первая ячейка играет роль «шапки» и содержит название столбца. На появившейся после превращения в Таблицу вкладке Конструктор (Design) можно изменить стандартное имя таблицы на свое (без пробелов!). По этому имени мы сможем потом адресоваться к таблице на любом листе этой книги:
Теперь выделите ячейки где вы хотите создать выпадающие списки (в нашем примере выше — это D2) и выберите в старых версиях Excel в меню Данные — Проверка (Data — Validation), а в новых нажмите кнопку Проверка данных (Data Validation) на вкладке Данные (Data). В открывшемся окне на вкладке Параметры (Settings) выберите вариант Список (List) и введите в поле Источник (Source) вот такую формулу:
=ДВССЫЛ(«Таблица1[Сотрудники]»)
=INDIRECT(«Таблица1[Сотрудники]»)
Смысл этой формулы прост. Выражение Таблица1[Сотрудники] — это ссылка на столбец с данными для списка из нашей умной таблицы. Но проблема в том, что Excel почему-то не хочет понимать прямых ссылок в поле Источник (Source), т.е. нельзя написать в поле Источник выражение вида =Таблица1[Сотрудники]. Поэтому мы идем на тактическую хитрость — вводим ссылку как текст (в кавычках) и используем функцию ДВССЫЛ (INDIRECT), которая преобразовывает текстовую ссылку в настоящую, живую.
Осталось только нажать на ОК. Если теперь дописать к нашей таблице новые элементы, то они будут автоматически в нее включены, а значит — добавятся к нашему выпадающему списку. С удалением — то же самое.
Если вам лень возиться с вводом формулы ДВССЫЛ, то можно чуть упростить процесс. После создания умной таблицы просто выделите мышью диапазон с элементами для выпадающего списка (A2:A5) и введите в поле адреса имя для этого диапазона (без пробелов), например Стажеры, и нажмите на Enter:
Фактически, этим мы создаем именованный динамический диапазон, который ссылается на данные из нашей умной таблицы. Теперь имя этого диапазона можно ввести в окне создания выпадающего списка в поле Источник (Source):
Способ 2. Если у вас Excel 2003 или старше
В старых версиях Excel до 2007 года не было замечательных «умных таблиц», поэтому придется их имитировать своими силами. Это можно сделать с помощью именованного диапазона и функции СМЕЩ (OFFSET), которая умеет выдавать ссылку на динамический диапазон заданного размера.
Откройте меню Вставка — Имя — Присвоить (Insert — Name — Define) или нажмите Ctrl+F3. В открывшемся окне нажмите кнопку Добавить (New), введите имя диапазона (любое, но без пробелов и начинающееся с буквы, например — Люди) и в поле Ссылка (Reference) введите вот такую формулу:
=СМЕЩ(A2;0;0;СЧЁТЗ(A2:A100);1)
=OFFSET(A2;0;0;COUNTA(A2:A100);1)
Функция СЧЁТЗ (COUNTA) подсчитывает количество непустых ячеек в столбце с фамилиями, т.е. количество строк в диапазоне для выпадающего списка. Функция СМЕЩ (OFFSET) формирует ссылку на диапазон с нужными нам именами и использует следующие аргументы:
- A2 — начальная ячейка
- 0 — сдвиг начальной ячейки по вертикали вниз на заданное количество строк
- 0 — сдвиг начальной ячейки по горизонтали вправо на заданное количество столбцов
- СЧЁТЗ(A2:A100) — размер получаемого на выходе диапазона по вертикали, т.е. столько строк, сколько у нас занятых ячеек в списке
- 1 — размер получаемого на выходе диапазона по горизонтали, т.е. один столбец
Теперь выделите ячейки, где вы хотите создать выпадающие списки, и выберите в старых версиях Excel в меню Данные — Проверка (Data — Validation). В открывшемся окне на вкладке Параметры (Settings) выберите вариант Список (List) и введите в поле Источник (Source) вот такую формулу:
=Люди
После нажатия на ОК ваш динамический список в выделенных ячейках готов к работе.
Ссылки по теме
- 4 способа создания выпадающих списков в ячейках листа Excel
- Связанные выпадающие списки
- Быстрое создание выпадающих списков с помощью надстройки PLEX
Выпадающий список в MS EXCEL на основе Проверки данных
Смотрите также остался. Как выпадающий котором строятся линейчатая «Мой_список_1» и «Мой_список_2».и вводим вили воспользуйтесь кнопкой будет выбираться по и старше -формирует ссылку наДВССЫЛ (INDIRECT) изменения своих размеров, Мы воспользуемся функцией(Диспетчер имён). помощью выпадающих списков, ссылок на другиеТеперь на листе Пример, этот диапазон.
При заполнении ячеек данными, список сделать, чтобы диаграмма, которая в
Затем формирую в качествеДиспетчер имен (Name manager) имени диапазона, выбранного это можно сделать диапазон с нужными
, которая преобразовывает текстовую автоматически растягиваясь-сжимаясь приВПРНажмите кнопку необходимо ограничить доступные листы лучше избегать выделим диапазон ячеек,
Предположим, что элементы списка часто необходимо ограничить
А. Простейший выпадающий список — ввод элементов списка непосредственно в поле Источник
он выводил мои порядке убывания выводит условной ячейке X1Источника (Source)на вкладке в первом списке.
в меню нам именами и ссылку в настоящую, добавлении-удалении в него(VLOOKUP) для поискаNew пользователям варианты стран или использовать Личную которые будут содержать
шт;кг;кв.м;куб.м введены в возможность ввода определенным даты. Потому что, ТОП-3 по значениям из названий этихзнак равно и
Формулы (Formulas)МинусыВставка — Имя - использует следующие аргументы: живую. данных. значения из ячейки(Создать), чтобы добавить и городов, из
книгу макросов Personal.xlsx Выпадающий список. ячейки диапазона списком значений. Например, когда я его внутри этого месяца. диапазонов список («Проверка имя нашего диапазона,. В версиях дотакого способа: Присвоить (Insert -A2
Осталось только нажать наВыделите диапазон вариантов для
Б. Ввод элементов списка в диапазон (на том же листе, что и выпадающий список)
B1 новый именованный диапазон. которых они могут или Надстройки.вызываем Проверку данных;A1:A4 имеется ячейка, куда делаю, по вашему
( Январь 2009 данных» —> «Список» т.е. 2003 это былаВ качестве вторичных (зависимых) Name — Define).
- начальная ячейкаОК выпадающего списка (A1:A5в таблице с Откроется диалоговое окно выбирать. В первой
Если нет желания присваиватьв поле Источник вводим, тогда поле Источник пользователь должен внести примеру — у ….. Коля - . В=Модели команда меню диапазонов не могутВ Excel 20070. Если теперь дописать в нашем примере названиями стран. ПослеNew Name ячейке мы сделаем имя диапазону в ссылку на созданное
будет содержать =лист1!$A$1:$A$4 название департамента, указав меня выводятся цифры 5, Саша-4, Егор условной ячейке Y1Вуаля!Вставка — Имя - выступать динамические диапазоны и новее -- сдвиг начальной к нашей таблице
выше) и на того как индекс(Создание имени). выбор страны, а файле Источник.xlsx, то
B. Ввод элементов списка в диапазон (на любом листе)
имя: =Список_элементов.Преимущество где он работает. (видимо порядковый номер -2). я хочу получить
4 способа создать выпадающий Присвоить (Insert - задаваемые формулами типа на вкладке
ячейки по вертикали новые элементы, тоГлавной (Home) будет известен, мыВ поле
во второй будут формулу нужно изменитьПримечание: наглядность перечня элементов Логично, предварительно создать ячейки)Форум весь обрыл, список данных соответствующего
список в ячейках
Name — Define)СМЕЩ (OFFSET)Формулы (Formulas) вниз на заданное они будут автоматически
вкладке нажмите кнопку
- выберем список, которыйName доступны только принадлежащие
- на =ДВССЫЛ(«[Источник.xlsx]лист1!$A$1:$A$4»)Если предполагается, что
- и простота его список департаментов организацииAlexM
такого нет. У именованного диапазона, выбранного листаСоздайте новый именованный диапазон
- . Для первичного (независимого)
- с помощью количество строк в нее включены,
Форматировать как таблицу (Home
станет источником данных(Имя) введите имя выбранной стране города.СОВЕТ: перечень элементов будет модификации. Подход годится и позволить пользователю: Если числа (не меня еще не мной в ячейке
Автоматическое создание выпадающих списков с любым именем списка их использоватьДиспетчера имен (Name Manager)0 а значит - — Format as для нашего второго
Country Думаю, это понятно?Если на листе дополняться, то можно для редко изменяющихся лишь выбирать значения цифры) 5-и значные, получается сделать выпадающий X1. Для этого
при помощи инструментов
(например можно, а вот. Затем повторим то- сдвиг начальной добавятся к нашему Table) выпадающего списка. Длядля нашего первогоИтак, давайте начнём наш много ячеек с сразу выделить диапазон
списков. из этого списка. то это и список, потому что я в ячейку надстройки PLEXМодели
вторичный список должен же самое со ячейки по горизонтали
выпадающему списку. С. Дизайн можно выбрать этого напишем такую именованного диапазона, а простой пример с правилами Проверки данных,
- большего размера, например,Недостатки
- Этот подход поможет есть дата. все примеры показаны Y1 добавляю проверку
- Выбор фото из выпадающего) и в поле быть определен жестко,
- списками Форд и вправо на заданное удалением — то любой — это
формулу: в поле того, как можно то можно использоватьА1:А10: если добавляются новые ускорить процесс вводаУстановите формат дата где выбор значения данных со формулой спискаСсылка (Reference) без формул. Однако, Ниссан, задав соответственно
количество столбцов же самое. роли не играет:=CHOOSE(VLOOKUP(B1,Sheet3!$A$3:$B$5,2,FALSE),England,France,Portugal)Refers to
создать связанный (или
инструмент Выделение группы. Однако, в этом элементы, то приходится и уменьшить количество для ячейки с идет по строкам… =ДВССЫЛ(X1). В ячейкеВыпадающий список с автоматическимв нижней части это ограничение можно имена диапазонамСЧЁТЗ(A2:A100)Если вам лень возитьсяОбратите внимание на то,=ВЫБОР(ВПР(B1;Sheet3!$A$3:$B$5;2;ЛОЖЬ);England;France;Portugal)(Диапазон) выберите тот, зависимый) выпадающий список ячеек (Главная/ Найти случае Выпадающий список вручную изменять ссылку опечаток. выпадающим списком. а у меня Y1 получаю не удалением уже использованных окна введите руками
обойти, создав отсортированныйFord
- размер получаемого с вводом формулы что таблица должнаЧто же делает эта в котором хранится в Excel? В и выделить/ Выделение может содержать пустые на диапазон. Правда,Выпадающий список можно создатьOLEGOFF
одна строка и заветный список, а элементов следующую формулу: список соответствий марка-модельи на выходе диапазона ДВССЫЛ, то можно иметь строку заголовка формула? Она ищет список стран:
ячейке группы ячеек). Опция строки. в качестве источника с помощью Проверки: Можно еще отформатировать много столбцов. «пшик»… При проверкеДинамическая выборка данных для=СМЕЩ($A$1;ПОИСКПОЗ($G$7;$A:$A;0)-1;1;СЧЁТЕСЛИ($A:$A;$G$7);1) (см. Способ 2).Nissan по вертикали, т.е. чуть упростить процесс. (в нашем случае значение из ячейки=Sheet3!$A$3:$A$5B1
excel2.ru
Создаем связанные выпадающие списки в Excel – самый простой способ!
Проверка данных этогоИзбавиться от пустых строк можно определить сразу данных ячейки и установитьAlexM формулы в обычной выпадающего списка функциями=OFFSET($A$1;MATCH($G$7;$A:$A;0)-1;1;COUNTIF($A:$A;$G$7);1)Имена вторичных диапазонов должны. столько строк, сколько После создания умной это А1 соB1Нажмитемы будем выбирать инструмента позволяет выделить и учесть новые
более широкий диапазон,или с помощью элемента цвет ячеек и: Сделал как понял ячейке получаю ошибку ИНДЕКС и ПОИСКПОЗСсылки должны быть абсолютными совпадать с элементамиПри задании имен помните у нас занятых таблицы просто выделите словомв списке странОК страну, а в
ячейки, для которых элементы перечня позволяет например, управления формы Поле шрифта белый.Тогда ихreafantu вычисления:SagRU (со знаками $). первичного выпадающего списка. о том, что ячеек в списке мышью диапазон сСотрудники и возвращает соответствующий, чтобы сохранить и ячейке проводится проверка допустимости Динамический диапазон. ДляA1:A100 со списком (см. не будет видно: Спасибо, но немного=ДВССЫЛ(: Здравствуйте. После нажатия Enter Т.е. если в имена диапазонов в1 элементами для выпадающего
). Первая ячейка играет индекс, который затем закрыть диалоговое окно.B2 данных (заданная с этого при создании. Но, тогда выпадающий статью Выпадающий (раскрывающийся)reafantu не то, так»Мой_список_2″Пытаюсь создать динамический к формуле будут
нем есть текст Excel не должны- размер получаемого списка (A2:A5) и роль «шапки» и использует функцияИмена диапазонам, содержащим города,– принадлежащий ей помощью команды Данные/ Имени Список_элементов в список может содержать список на основе: Спасибо. Но я как рейтинг должен) выпадающий список (не автоматически добавлены имена с пробелами, то
содержать пробелов, знаков на выходе диапазона введите в поле содержит название столбца.CHOOSE можно присвоить точно город, как на
Работа с данными/ поле Диапазон необходимо пустые строки (если, элемента управления формы). видимо какой-то тупой… быть в видеВ чем может учитывающий пустые строки, листов — не придется их заменять препинания и начинаться
по горизонтали, т.е.
адреса имя для На появившейся после(ВЫБОР), чтобы выбрать таким же образом.
примере: Проверка данных). При записать формулу =СМЕЩ(Список!$A$1;;;СЧЁТЗ(Список!$A:$A))
например, часть элементовВ этой статье создадим У вас отображается линейчатой диаграммы и быть проблема? но позволяющий дополнять пугайтесь :) на подчеркивания с обязательно с буквы. один столбец этого диапазона (без превращения в Таблицу 1-й, 2-й илиТеперь мы можем создатьДля начала нужно создать выборе переключателя ВсехИспользование функции СЧЁТЗ() предполагает,
была удалена или Выпадающий список с прям в стиле
выпадающий список долженМихаил С. себя новыми значениями).Функция помощью функции Поэтому если быТеперь выделите ячейки, где пробелов), например вкладке 3-й именованный диапазон. выпадающие списки в базу данных. На будут выделены все что заполнение диапазона список только что помощью Проверки данных форматирования, как на быть динамическим: Создаю именованный диапазонСМЕЩ (OFFSET)ПОДСТАВИТЬ (SUBSTITUTE) в одной из вы хотите создатьСтажеры,Конструктор (Design)Вот так будет выглядеть тех ячейках, где втором листе я такие ячейки. При ячеек ( был создан). Чтобы (Данные/ Работа с листе Данные. АAlexMДВССЫЛ() с такой формулой:умеет выдавать ссылку, т.е. формула будет марок автомобилей присутствовал выпадающие списки, ии нажмите наможно изменить стандартное наш второй раскрывающийся планировали выбирать данные. занес список стран, выборе опции ЭтихA:A пустые строки исчезли данными/ Проверка данных) когда я сам: Из примера нене работает с=ДВССЫЛ(СЦЕПИТЬ(«Данные!A2:»;»A»;СТРОКА(ИНДЕКС($A$2:$A$10;СЧЁТЗ($A$2:$A$10)))-1)) на диапазон нужного
выглядеть как =ДВССЫЛ(ПОДСТАВИТЬ(F3;"
бы пробел (например
выберите в старыхEnter имя таблицы на список: Выделите ячейку которые хочу дать же выделяются только), который содержит элементы, необходимо сохранить файл. с типом данных делаю, то у понятно что вы
динамическими диапазонами.Список не работает. размера, сдвинутый относительно
«;»_»)) Ssang Yong), то версиях Excel в: свое (без пробелов!).В результате мы получимB1 пользователям на выбор те ячейки, для ведется без пропусков
Второй недостаток: диапазон источника Список. меня выходит 1 имеете ввиду подRustem Haziev Подскажите, пожалуйста, что исходной ячейки наНадо руками создавать много его пришлось бы
менюФактически, этим мы создаем
По этому имени
два связанных (или
(в ней мы
office-guru.ru
Выпадающий список с наполнением
в первом раскрывающемся которых установлены те строк (см. файл должен располагаться наВыпадающий список можно сформировать января 2009 г. словом динамический.: Посмотрите здесь (много я делаю не заданное количество строк именованных диапазонов (если заменить в ячейкеДанные — Проверка (Data именованный динамический диапазон, мы сможем потом зависимых) выпадающих списка.
Способ 1. Если у вас Excel 2007 или новее
будем выбирать страну), списке, а в же правила проверки примера, лист Динамический том же листе, по разному.AlexMВ вашем сообщении примеров с выпадающими так (пример файла и столбцов. В у нас много и в имени — Validation) который ссылается на адресоваться к таблице Если мы выбираем откройте вкладку соседнем столбце указал
данных, что и диапазон). что и выпадающийСамым простым способом создания: Либо вы устанавливаете два вопроса, выпадающий списками)… во вложении). более понятном варианте марок автомобилей). диапазона на нижнее. В открывшемся окне
данные из нашей на любом листе странуData числовой индекс, который для активной ячейки.Используем функцию ДВССЫЛ() список, т.к. для Выпадающего списка является формат дата тип список и диаграмма.С.М.ber$erk синтаксис этой функцииЭтот способ требует наличия подчеркивание (т.е. Ssang_Yong). на вкладке умной таблицы. Теперь этой книги:France(Данные), нажмите соответствует одному из
ПримечаниеАльтернативным способом ссылки на правил Проверки данных нельзя ввод элементов списка «Март 2009», либоОтвечал на первый: Вот:: Здесь ( ) таков: отсортированного списка соответствийТеперь создадим первый выпадающийПараметры (Settings) имя этого диапазонаТеперь выделите ячейки где, в связанном списке Data Validation списков городов. Списки: перечень элементов, расположенных использовать ссылки на непосредственно в поле копируете ячейку с вопрос. Выпадающий списокSagRU смотрели?
=СМЕЩ(начальная_ячейка; сдвиг_вниз; сдвиг_вправо; размер_диапазона_в_строках;
марка-модель вот такого
список для выборавыберите вариант можно ввести в вы хотите создать у нас будут(Проверка данных), а городов располагаются правееЕсли выпадающий список на другом листе, другие листы или Источник инструмента Проверка датой на листе выводит имена трех:SagRU размер_диапазона_в_столбцах) вида: марки автомобиля. ВыделитеСписок (List) окне создания выпадающего выпадающие списки (в города только из затем в выпадающем в столбцах содержит более 25-30 является использование функции
книги (это справедливо данных. «данные» и специальной человек с максимальнымиRustem Haziev: Да, разумеется -Таким образом:Для создания первичного выпадающего пустую ячейку ии введите в списка в поле нашем примере выше
Франции. меню выберитеD значений, то работать ДВССЫЛ(). На листе для EXCEL 2007Предположим, в ячейке вставкой вставляете в значениями по убыванию., буду изучать, спасибо «Выпадающий список сначальная ячейка — берем списка можно марок откройте меню полеИсточник (Source) — это D2)
Из этой статьи ВыData Validation, с ним становится Пример, выделяем диапазон и более ранних).B1 ячейку с выпадающим Рядом с именами за ссылку. наполнением». Мне описанный
Способ 2. Если у вас Excel 2003 или старше
первую ячейку нашего можно воспользоваться обычнымДанные — Проверка (DataИсточник (Source): и выберите в узнали, как можно(Проверка данных).F неудобно. Выпадающий список ячеек, которые будутИзбавимся сначала от второгонеобходимо создать выпадающий
списком «форматы» с помощью ПОИСКПОЗ()С.М., большое спасибо! там вариант не списка, т.е. А1 способом, описанным выше, — Validation)вот такую формулу:В старых версиях Excel старых версиях Excel сделать простейшие связанныеОткроется диалоговое окнои одновременно отображает только содержать выпадающий список, недостатка – разместим список для вводаreafantu и ИНДЕКС() можно
Остается, впрочем, одна
подходит, так как
сдвиг_вниз — нам считает т.е.или нажмите кнопку=Люди до 2007 года в меню выпадающие списки вData ValidationH 8 элементов, а вызываем Проверку данных, перечень элементов выпадающего единиц измерений. Выделим
- : Спасибо огромное! вы получить соответствующие значения.
- проблема. Диапазон «Табл.1″ список пополняется не функциядать имя диапазону D1:D3Проверка данных (Data Validation)
- После нажатия на не было замечательныхДанные — Проверка (Data Microsoft Excel. Вы(Проверка вводимых значений).
- . Так, например, рядом чтобы увидеть остальные, в Источнике указываем списка на другом ячейку меня очень выручили!reafantu
- имеет фиксированные границы, мануально, а приПОИСКПОЗ (MATCH) (напримерна вкладке
ОК «умных таблиц», поэтому — Validation) можете взять этотМы хотим дать пользователю с нужно пользоваться полосой =ДВССЫЛ(«список!A1:A4»). листе.B1 и поняли: Динамический список, значит а у меня помощи формулы. Иначе, которая, попросту говоря,МаркиДанные (Data)
ваш динамический список
придется их имитировать, а в новых простой пример и на выбор списокFrance
planetaexcel.ru
Связанные (зависимые) выпадающие списки
Способ 1. Функция ДВССЫЛ (INDIRECT)
прокрутки, что неНедостатокВ правилах Проверки данных (такжеи вызовем Проверкуи вот последний при появлении нового на практике возможна говоря, умная таблица выдает порядковый номер) с помощьюесли у вас в выделенных ячейках своими силами. Это нажмите кнопку использовать его для вариантов, поэтому встоит индекс всегда удобно.: при переименовании листа как и Условного данных. вопрос… не знал, месяца, он должен ситуация, когда добавляются
не «видит» новые ячейки с выбраннойДиспетчера имен (Name Manager) Excel 2007 или
готов к работе. можно сделать сПроверка данных (Data Validation) решения реальных задач. поле2В EXCEL не предусмотрена – формула перестает форматирования) нельзя впрямуюЕсли в поле Источник что пригодится автоматически попадать в ещё другие группы элементы. маркой (G7) вс вкладки новее. Затем изЭтот фокус основан на помощью именованного диапазонана вкладкеУрок подготовлен для ВасAllow, который соответствует списку регулировка размера шрифта работать. Как это указать ссылку на указать через точкуНапример появляется такие выпадающий список. При
(четвертая, пятая иV заданном диапазоне (столбцеФормулы (Formulas) выпадающего списка применении функции и функцииДанные командой сайта office-guru.ru(Тип данных) выберите городов Выпадающего списка. При можно частично обойти диапазоны другого листа с запятой единицы строки как Мужчины выборе месяца в
т.д.). Попытался обойти: по вашему примеру: А)или в старыхТип данных (Allow)ДВССЫЛ (INDIRECT)СМЕЩ (OFFSET)(Data)Источник: http://www.excel-user.com/2011/02/cascading-validation-lists.htmlList2 большом количестве элементов см. в статье (см. Файл примера): измерения шт;кг;кв.м;куб.м, то и Женщины, приложил выпадающем списке должен проблему, поменяв значение в формулах откудасдвиг_вправо = 1, т.к. версиях Excel -выберите вариант, которая умеет делать, которая умеет выдавать. В открывшемся окнеПеревел: Антон Андронов(Список). Это активирует. Позже Вы увидите,
имеет смысл сортировать Определяем имя листа.Пусть ячейки, которые должны выбор будет ограничен файл. Как избежать автоматически строится график диапазона «Табл.1» на то появилось имя мы хотим сослаться через менюСписок (List) одну простую вещь
ссылку на динамический
на вкладке
Автор: Антон Андронов поле как этот индекс список элементов и
Ввод элементов списка в содержать Выпадающий список, этими четырьмя значениями. их попадания в (линейчатая диаграмма с такое:
листа «Группы!» хотя на модели в
- Вставка — Имя -и в поле — преобразовывать содержимое диапазон заданного размера.Параметры (Settings)ЗадачаSource будет использован. использовать дополнительную классификацию диапазон ячеек, находящегося размещены на листеТеперь смотрим, что получилось. рейтинг, так как ТОП-3 Именами поДанные!$A$1:АДРЕС(11;(СЧЁТЗ(A1:R1)))
- такого у вас соседнем столбце (В) Присвоить (Insert -Источник (Source) любой указанной ячейкиОткройте менювыберите вариант: создать в ячейке(Источник), где необходимоЕсли Вы работаете в элементов (т.е. один в другой книге Пример,
- Выделим ячейку по условию он убыванию значений)Но Excel не
Способ 2. Список соответствий и функции СМЕЩ (OFFSET) и ПОИСКПОЗ (MATCH)
нет и -1размер_диапазона_в_строках — вычисляем с Name — Define)выделите ячейки с
в адрес диапазона,Вставка — Имя -Список (List) выпадающий список для указать имя диапазона
- Excel 2010, то выпадающий список разбитьЕсли необходимо перенести диапазона диапазон с перечнемB1 должен строится лишьAlexM распознает вторую часть лишнее. помощью функциивыбрать на вкладке названиями марок (желтые который понимает Excel.
- Присвоить (Insert -и введите в удобного ввода информации. со странами. Введите
- можете создать лист-источник на 2 и с элементами выпадающего элементов разместим на. При выделении ячейки по именам. : Так? диапазона. Вариант СЦЕПИТЬ»Выпадающий список сСЧЕТЕСЛИ (COUNTIF)Данные (Data) ячейки в нашем
То есть, если Name — Define) поле Варианты для списка в этом поле в отдельной рабочей более). списка в другую другом листе (на справа от ячейки
- AlexMreafantu + ДВССЫЛ приводит наполнением». способ 2, которая умеет подсчитатькоманду примере). После нажатия в ячейке лежитили нажмитеИсточник (Source) должны браться из «=Country» и жмите
- книге. Если жеНапример, чтобы эффективно работать книгу (например, в листе Список в появляется квадратная кнопка: Кажется получилось.: Да! Почти так. в тупик, так должен подойти.
количество встретившихся в
Проверка данных (Data validation)
на текст «А1», тоCtrl+F3вот такую формулу: заданного динамического диапазона,ОК у Вас версия
со списком сотрудников книгу Источник.xlsx), то файле примера). со стрелкой дляPS. не цитируйте Только данные для как ДВССЫЛ, какber$erk списке (столбце А)выбрать из выпадающего спискаОК
функция выдаст в. В открывшемся окне
=ДВССЫЛ(«Таблица1[Сотрудники]»)
- т.е. если завтра. Теперь нам нужно Excel 2003 года,
- насчитывающем более 300 нужно сделать следующее:Для создания выпадающего списка, выбора элементов из полностью мои сообщения. таблицы необходимо брать выяснилось, не оперирует: что то я нужных нам значений
- вариант проверкипервый выпадающий список результате ссылку на нажмите кнопку
- =INDIRECT(«Таблица1[Сотрудники]») в него внесут сделать второй раскрывающийся и Вы планируете сотрудников, то егов книге Источник.xlsx создайте элементы которого расположены выпадающего списка. Зачем мне и
- из начальной таблицы с динамическими диапазонами: Вас не пойму.
— марок автоСписок (List)
готов: ячейку А1. ЕслиДобавить (New)Смысл этой формулы прост.
- изменения — например,
- список, чтобы пользователи использовать именованный диапазон, следует сначала отсортировать необходимый перечень элементов; на другом листе,Недостатки другим их перечитывать
- (лист Данные) иДВССЫЛ(СЦЕПИТЬ(«Данные!$A$1″;»:»;АДРЕС(11;(СЧЁТЗ(A1:R1))))) А это? (G7)и указать вТеперь создадим второй выпадающий в ячейке лежит, введите имя диапазона Выражение удалят ненужные элементы
могли выбрать город.
Ссылки по теме
- то значения должны в алфавитном порядке.в книге Источник.xlsx диапазону
- можно использовать дваэтого подхода: элементыreafantu
- сам рейтинг неТе же грабли,
- Vразмер_диапазона_в_столбцах = 1, т.к. качестве
- список, в котором слово «Маша», то (любое, но без
planetaexcel.ru
Формирование динамического выпадающего списка
Таблица1[Сотрудники] или допишут еще
Мы поместим этот находиться в той Затем создать выпадающий ячеек содержащему перечень подхода. Один основан списка легко потерять: Спасибо! но есть
должен выводится на
в общем. Никогда: вариант одна формула нам нужен одинИсточника (Source) будут отображаться модели
функция выдаст ссылку пробелов и начинающееся- это ссылка
несколько новых - раскрывающийся список в же книге, можно список, содержащий буквы элементов присвойте Имя, на использовании Именованного (например, удалив строку одна ошибка, когда листе. На листе бы не подумал, на все 3 столбец с моделями
=Марки выбранной в первом на именованный диапазон с буквы, например на столбец с они должны автоматически ячейку на другом листе.
алфавита. Второй выпадающий например СписокВнеш; диапазона, другой –
или столбец, содержащие например троим дать только выпадающий список что буду буксовать
списка.В итоге должно получитьсяили просто выделить списке марки. Также
с именем
- данными для списка отразиться в выпадающем
B2
Мы будем использовать именованные список должен содержатьоткройте книгу, в которой функции ДВССЫЛ(). ячейку
одинаковое самое большое и диаграмма (при на таких мелочах=СМЕЩ(Данные!$A$1;1;ПОИСКПОЗ(Расчет!$A2;Данные!$A$1:$C$1;0)-1;СЧЁТЗ(ИНДЕКС(Данные!$A$1:$C$10;;ПОИСКПОЗ(Расчет!$A2;Данные!$A$1:$C$1;0)))-1;1)
что-то вроде этого:
ячейки D1:D3 (если как в предыдущемМашаЛюди из нашей умной списке:. А теперь внимание диапазоны и сделаем только те фамилии, предполагается разместить ячейкиИспользуем именованный диапазонB1 значение, то он выборе месяца). как динамические списки…SagRUОсталось добавить выпадающий список они на том случае, откройте окнои т.д. Такой,) и в поле таблицы. Но проблемаПростой и удобный способ – фокус! Нам
так, чтобы эти которые начинаются с с выпадающим списком;
Создадим Именованный диапазон Список_элементов,); не удобно вводить
Бдуте выводить егоAlexM[CENTER] =======================================[/CENTER]: ber$erk, вот это на основе созданной
же листе, гдеПроверки данных своего рода, «переводСсылка (Reference)
в том, что почти без формул.
нужно проверить содержимое связанные выпадающие списки буквы, выбранной первымвыделите нужный диапазон ячеек, содержащий перечень элементов
большое количество элементов. в рейтинг на: Самый простой способ,В общем, решил работает, спасибо: формулы к ячейке список)., но в поле стрелок» ;)введите вот такую Excel почему-то не Использует новую возможность ячейки с названием
работали во всех
списком. Для решения вызовите инструмент Проверка выпадающего списка (ячейки Подход годится для все места. Т.е это надвинуть диаграмму все проблемы только=СМЕЩ(Лист1!$A$1;0;0;СЧЁТЗ(Лист1!$A$1:$A$24);1)
G8. Для этого:
А вот для зависимогоИсточникВозьмем, например, вот такой формулу: хочет понимать прямых последних версий Microsoft
страны (ячейка B1),
версиях Excel. Следующий такой задачи может данных, в полеA1:A4
маленьких (3-5 значений) например Маша 54,
planetaexcel.ru
Динамический выпадающий список с диаграмами
на данные, т.е. . Слава костылямСпасибо, но это
выделяем ячейку G8 списка моделей придетсянужно будет ввести список моделей автомобилей=СМЕЩ(A2;0;0;СЧЁТЗ(A2:A100);1) ссылок в поле Excel начиная с чтобы получить индекс шаг – создать быть использована структура Источник укажите =ДВССЫЛ(«[Источник.xlsx]лист1!СписокВнеш»);на листе Список). неизменных списков.
Маша 54, Маша на диапазон А2:В4! слишком сложный вариант,выбираем на вкладке создать именованный диапазон вот такую формулу: Toyota, Ford и=OFFSET(A2;0;0;COUNTA(A2:A100);1)Источник (Source) 2007 версии -
соответствующий базе данных именованные диапазоны для
Связанный список илиПри работе с перечнемДля этого:Преимущество 54.. а аСформировать формулами диапазоныС.М. так как в
Данные (Data) с функцией=ДВССЫЛ(F3) Nissan:Функция
, т.е. нельзя написать «Умные Таблицы». Суть с городами. Если
наших списков. На Вложенный связанный список. элементов, расположенным ввыделяем: быстрота создания списка. кроме Маши, Олег данных для источников: Вот-2: реальности таких списков
командуСМЕЩили =INDIRECT(F3)Выделим весь список моделейСЧЁТЗ (COUNTA) в поле Источник его в том, пользователь выберет вкладкеПРЕДСТАВЬТЕ СИТУАЦИЮ: другой книге, файлА1:А4
Элементы для выпадающего списка и Иван тоже
построения диаграммы задачаreafantu 38.Проверка данных (Data validation)(OFFSET)где F3 — адрес Тойоты (с ячейкиподсчитывает количество непустых выражение вида =Таблица1[Сотрудники]. что любой диапазонPortugalFormulas
Мы хотим создать Источник.xlsx должен быть, можно разместить в 54
большая.: Есть примерный диапазонВозник другой вопрос.или в меню
, который будет динамически ячейки с первым А2 и вниз
ячеек в столбце Поэтому мы идем можно выделить и, то мы должны(Формулы) есть команда в Excel небольшую открыт и находитьсянажимаем Формулы/ Определенные имена/ диапазоне на листеА Вы быreafantu данных.
Например, я создаюДанные — Проверка (Data ссылаться только на выпадающим списком (замените до конца списка)
с фамилиями, т.е. на тактическую хитрость отформатировать как Таблицу.
обратиться к базеName Manager табличку, где можно в той же Присвоить имя EXCEL, а затем
посмотрели ответы на: Да кстати, можноНеобходимо, чтобы на два разных списка — Validation) ячейки моделей определенной на свой). и дадим этому количество строк в — вводим ссылку Тогда он превращается,
с индексом(Диспетчер имён). Нажав выбрать страну и папке, иначе необходимов поле Имя вводим в поле Источник всех форумах, где и надвинуть.. Спасибо отдельном листе был по способу
из выпадающего списка выбираем марки. Для этого:Все. После нажатия на диапазону имя
диапазоне для выпадающего как текст (в упрощенно говоря, в
3 на нее, откроется соответствующий ей город. указывать полный путь Список_элементов, в поле инструмента Проверки данных запостили, глядишь иВот у меня динамический выпадающий список
=СМЕЩ(Лист1!$A$1;0;0;СЧЁТЗ(Лист1!$A$1:$A$24);1) вариант проверки
НажмитеОКToyota списка. Функция
кавычках) и используем «резиновый», то есть, в которой хранятся диалоговое окно При этом с к файлу. Вообще Область выбираем Книга; указать ссылку на решение бы нашлось только один вопрос (по месяцам), прии называю ихСписок (List)Ctrl+F3содержимое второго списка
. В Excel 2003СМЕЩ (OFFSET) функцию сам начинает отслеживать названия городов Португалии.
CyberForum.ru
Name Manager
Выпадающий список в Excel — удобный инструмент ввода данных. Ранее мы разобрались, как создать выпадающий список. Однако, если ваш выпадающий список постоянно пополняется, нужно сделать динамический выпадающий список в excel.
Динамический или растущий список excel — это список, который при добавлении новых позиций не нужно корректировать. Другими словами, если вы добавили в список новые позиции, они автоматически окажутся в вашем выпадающем списке. Без дополнительных манипуляций.
Для Excel версии от 2007 и новее
Самый простой способ создать динамический выпадающий список excel — при помощи “умной” таблицы.
Разберемся на примере.
Есть список городов, который в дальнейшем будет пополняться.
>>> Шаг 1. Превратим список в “умную” таблицу. Для этого щелкнем на любой ячейке в списке и нажмем сочетание клавиш Ctrl + T. Excel автоматически выделит диапазон списка. Если у вашего списка есть заголовок (как в примере), оставьте галочку Таблица с заголовками, в противном случае снимите ее.
Также, вместо сочетания клавиш Ctrl + T можно воспользоваться меню: Вкладка Главная — блок Стили — Форматировать как таблицу — выбрать любой формат.
Должна получиться вот такая таблица.
>>> Шаг 2. Щелкнем на любой ячейке таблицы-списка и перейдем на вкладку Конструктор. Здесь в блоке Свойства можно увидеть имя созданной “умной” таблицы.
Оно понадобится нам для создания динамического выпадающего списка excel. Давайте изменим его.
>>> Шаг 3. Выделим ячейку, в которую нужно вставить выпадающий список. Далее перейдем на вкладку Данные — блок Работа с данными — Проверка данных.
И в поле источник укажем следующую формулу.
=ДВССЫЛ(«города[Города]»)
Выражение города[Города] — это ссылка на столбец с данными для списка из нашей “умной” таблицы. Проблема в том, что Excel не понимает прямых ссылок в поле Источник, т.е. нельзя написать в поле Источник выражение вида =города[Города]. Поэтому мы идем на хитрость — вводим ссылку как текст (в кавычках) и используем функцию ДВССЫЛ (англ. INDIRECT), которая преобразовывает текстовую ссылку в настоящую.
Нажмем Ок.
Динамический выпадающий список excel готов.
Осталось проверить, как работает пополнение этого списка. Добавим в список еще один город — Сочи. И сразу увидим, что он появился в выпадающем списке.
Динамический выпадающий список Excel версии от 2003 и ранее
В старших версиях Excel еще не было “умных” таблиц, поэтому применить первый способ невозможно. Придется выкручиваться при помощи функции СМЕЩ (англ. OFFSET), которая имитирует создание динамического диапазона.
Откроем вкладку Формулы — блок Определенные имена — Присвоить имя.
Присвоим имя диапазону и напишем следующую формулу:
Давайте разберемся в синтаксисе формулы СМЕЩ.
=СМЕЩ(ссылка; смещение по строкам; смещение по столбцам; [высота]; [ширина])
Для нашего примера:
=СМЕЩ($A$2;0;0;СЧЁТЗ(A2:A100);1)
$A$2 — это ссылка, т.е. начало диапазона
0 — Смещение по строкам, сдвиг начальной ячейки на заданное количество строк, здесь не требуется.
0 — смещение по столбцам, тоже не требуется.
СЧЁТЗ(A2:A100) — подсчитывает количество непустых ячеек в столбце с городами, т.е.определяет количество строк в выпадающем списке. Обратите внимание, что в данном случае диапазон нужно брать с запасом, т.к. после ячейки А100 значения перестанут добавляться в список.
1 — размер диапазона, который получается в итоге, т.е. один столбец.
Теперь нужно выделить ячейки, в которые хотите поместить динамический выпадающий список excel, и перейти на вкладку Данные — блок Работа с данными — Проверка данных.
В поле Тип данных выбрать Список, а в поле Источник написать:
=города
Теперь попробуем добавить в выпадающий список новые позиции.
Вам может быть интересно:
Создание раскрывающегося списка в Excel, набор элементов которого зависит от выбора значения в другом выпадающем списке. Динамические диапазоны и условия.
Именованные динамические диапазоны
Для создания раскрывающихся списков будем использовать именованные динамические диапазоны, которые позволяют добавлять и удалять элементы в исходных наборах без внесения изменений в формулы.
Для динамических диапазонов создаем новый рабочий лист Excel и переименовываем его в «Списки». Заполняем столбцы наборами элементов:
На вкладке «Формулы» ленты инструментов нажимаем ссылку «Присвоить имя»:
В поле «Имя» пишем «Группа», в поле «Диапазон» вставляем формулу =СМЕЩ(Списки!$A$2;0;0;СЧЁТЗ(Списки!$A:$A)-1;1)
и нажимаем кнопку «OK». Первый именованный динамический диапазон создан.
Повторяем эти действия для создания остальных именованных диапазонов, формулы для которых перечислены в таблице:
Имя | Диапазон |
---|---|
Группа | =СМЕЩ(Списки!$A$2;0;0;СЧЁТЗ(Списки!$A:$A)-1;1) |
Грибы | =СМЕЩ(Списки!$B$2;0;0;СЧЁТЗ(Списки!$B:$B)-1;1) |
Насекомые | =СМЕЩ(Списки!$C$2;0;0;СЧЁТЗ(Списки!$C:$C)-1;1) |
Рыбы | =СМЕЩ(Списки!$D$2;0;0;СЧЁТЗ(Списки!$D:$D)-1;1) |
Все имена диапазонов можно просмотреть в диспетчере имен («Формулы» — «Диспетчер имен»):
В диспетчере имен доступно создание, изменение и удаление имен диапазонов.
Создание раскрывающегося списка
Создаем первый раскрывающийся список, от выбора значения в котором будет зависеть набор элементов второго выпадающего списка. Привяжем его к динамическому диапазону «Группа».
На листе Excel, где будет таблица с раскрывающимися списками, называем первые два столбца «Группа» и «Вид». Выбираем ячейку под названием столбца «Группа» и нажимаем ссылку «Проверка данных» на вкладке «Данные» ленты инструментов.
В открывшемся окне «Проверка вводимых значений» выбираем тип данных «Список», указываем источник «=Группа» и нажимаем кнопку «OK»:
Первый выпадающий список создан. Скопировать его в другие ячейки столбца «Группа» можно простым протягиванием. Также, при присвоении источника данных диапазону ячеек, раскрывающийся список будет добавлен во все ячейки.
Раскрывающийся список по условию
Для создания выпадающего списка по условию выбираем ячейку под названием столбца «Вид» и нажимаем ссылку «Проверка данных» на вкладке «Данные» ленты инструментов. В открывшемся окне «Проверка вводимых значений» выбираем тип данных «Список», указываем источник =ЕСЛИ(A2="Грибы";Грибы;ЕСЛИ(A2="Насекомые";Насекомые;ЕСЛИ(A2="Рыбы";Рыбы;Списки!$E$1)))
и нажимаем кнопку «OK».
Если в первом раскрывающемся списке (Группа) не будет выбрана ни одна позиция, во втором выпадающем списке (Вид) будет отображаться значение ячейки по адресу Списки!$E$1
(Выберите группу).
Смотрите, как для раскрывающегося списка можно использовать динамический диапазон на основе умной таблицы.
При заполнении ячеек данными, бывает необходимо ограничить возможность ввода определенным списком значений – это можно сделать с помощью
Выпадающего списка
. Если одновременно необходимо обеспечить ввод только неповторяющихся значений, то необходим Динамический выпадающий список: с помощью него пользователь не сможет дважды выбрать одно и тоже значение.
«Динамизм»
Динамического выпадающего списка
заключается в следующем: после ввода в столбец какого-нибудь значения из
Выпадающего списка
, список изменяется – введенное значение исчезает из
Выпадающего списка
. Таким образом,
Динамический выпадающий список
может обеспечить ввод в диапазон только
неповторяющихся
значений (см.
файл примера
).
Алгоритм решения задачи следующий:
-
создаем на листе
Список
исходный перечень элементовВыпадающего (раскрывающегося) списка
, например перечень сотрудников компании;
-
на листе
ДинамическийСписок
определяем диапазон для ввода сотрудников, например, выдвинутых на премию. Диапазон должен содержать неповторяющиеся фамилии (иначе кто-то получит 2 или 3 премии!) и все сотрудники должны быть из компании (иначе премию получат чужие!) -
создаем на листе
Список
модифицированный перечень сотрудников, не содержащий фамилии, которые уже введены на листе
ДинамическийСписок
; -
создаем обычный
Выпадающий список
на основе модифицированного перечня сотрудников, созданного на предыдущем шаге.
Итак, приступим.
-
На листе
Список
, в столбце
А
создадим исходный перечень фамилий сотрудников. Введем заголовок –
Сотрудники
.
-
На листе
ДинамическийСписок
определяем диапазон, в который будут вводиться фамилии сотрудников с помощьюВыпадающего списка
(
Ведомость для премии
). Это диапазон
A3:A16
. -
На листе
Список
, в столбце
B
, напротив каждого значения из исходного перечня введем формулу =
ЕСЛИ(СЧЁТЕСЛИ(ДинамическийСписок!$A$3:$A$16;A2);»»;СТРОКА())
Формула ищет уже введенные в диапазон
A3:A16
на листе
ДинамическийСписок
фамилии и, в случае успеха, возвращает значение
Пустой текст («»)
. Если значение не найдено, то выводится номер строки, в которой находится формула;
-
На листе
Список
, в ячейке
С2
, введемФормулу массива
=
ЕСЛИОШИБКА(ИНДЕКС($A$2:$A$9; НАИМЕНЬШИЙ($B$2:$B$9;СТРОКА(1:1))-СТРОКА($A$1));»»)
После ввода вместо
ENTER
нажмите
CTRL
+
SHIFT
+
ENTER
.
Разберем работу формулы подробнее. Функция
НАИМЕНЬШИЙ()
сортирует по возрастанию столбец
B
и для каждой строки выводит значение. Функция
ИНДЕКС()
, в зависимости от результата функции
НАИМЕНЬШИЙ()
, извлекает фамилии из исходного перечня. Формулу скопируйте вниз до конца исходного перечня сотрудников. В результате в столбце
С
формируется перечень фамилий, еще не введенных на листе
ДинамическийСписок
. Это как раз наша цель. Промежуточный результат легко увидеть с помощью
клавиши
F9
(например, выделите в строке формул
НАИМЕНЬШИЙ($B$2:$B$9;СТРОКА(1:1))
, нажмите
F9
— вместо формулы отобразится ее результат).
Чтобы наш
Динамический выпадающий список
содержал именно столько позиций, сколько имеется фамилий в столбце
С
, создадим
Динамический диапазон
:
-
На вкладке
Формулы
в группе
Определенные имена
выберите команду
Присвоить имя
; -
В поле
Имя
введите:
Сотрудники
; -
В поле
Область
введите
Книга
; -
В поле
Диапазон
введите формулу
=
СМЕЩ(Cписок!$C$2;;;СЧЁТЕСЛИ(Cписок!$C$2:$C$29;»*?»))
Примечание
: для числовых значений используйте =
СМЕЩ(Cписок!$C$2;;;СУММПРОИЗВ(—ЕЧИСЛО(Cписок!$C$2:$C$29)))
- Нажмите ОК.
Завершающий шаг: создаем
Динамический выпадающий список
:
-
На листе
ДинамическийСписок
выделим диапазон, в который будут вводиться значения с использованием
Динамического выпадающего списка
(
A
3:
A
16
); -
Вызываем инструмент
Проверка данных
(
)
,
устанавливаем тип данных
Список
, в поле
Источник
указываем
=
Сотрудники
Протестируем наше решение. На листе
ДинамическийСписок
с помощью
выпадающего списка
выберем фамилию
Сидоров
.
Затем, в ячейке ниже, вызовем
выпадающий список
и убедимся, что он не содержит фамилию
Сидоров
.
Динамический выпадающий список
является разновидностью
Связанного списка
.
A dynamic drop down (also known as a dependent drop down) is a term for drop downs with a dynamic list. The list items of a dynamic drop down get updated according to another input which is usually another drop down as well. A common example is to have lots of items under different categories. Instead of trying to finding an item in a huge list, you can first select a category and then find your desired item in a filtered list. In this article, we are going to show you how to create a dynamic drop down list Excel using the dynamic array functions UNIQUE and FILTER.
Designing the dynamic drop downs
Our sample data consists of a 2-column table containing names and types. As a result, we need a drop down for each column. However, there 2 problems we need to address first:
- Type values occur multiple times in the corresponding column. Listing an item multiple times may confuse our users.
- We want the Name values to be listed based on the selection of type. For example, if we set the type to «WATER», the second drop down should only list the names that match with type «WATER».
There are multiple ways to create a dynamic drop down list Excel. Here are a few examples:
- How to create dependent dropdowns
- Transforming a Complex Pricing List into a Quoting Tool in Excel
However, mos of these methods require an extensive use of formulas. Fortunately, the new dynamic array functions make things a lot easier. Let’s take a look at the basics of the dynamic array functions UNIQUE and FILTER.
UNIQUE and FILTER
In September, 2018, Microsoft has introduced new concepts like the dynamic arrays and spilling, in addition to a set of new functions, like the UNIQUE and the FILTER functions. The common characteristic of these two functions is their ability to return an array of values. We will be using this feature to populate the lists of unique items in our dynamic Excel drop down list.
UNIQUE Function
The UNIQUE function returns an array of unique values from a given array or range. This function is very helpful in eliminating items that occur multiple times. If you have a data set similar to our example that contains multiple values, like under the column Type, this formula will help simplify those lists.
When using the UNIQUE function, add the reference for the column of values you need, and the function will return a list of unique items.
=UNIQUE(Type)
*Type is named range referring C4:C17
For more information and examples for the UNIQUE function, please see our related guide.
FILTER Function
The FILTER function, on the other hand, can filter an array of values by a criteria. The FILTER function accepts three (required) arguments:
- An array to be filtered
- An array of Boolean values to identify the filtered values
- A return value if there are no other values left
For example, the following formula returns an array of values in a named range Name, where the values of the range Type is equal to the value of the DropdownType. Here, DropdownType is a single value, while «Name» and «Type» are ranges.
=FILTER(Name,Type=DropdownType,»No Name Found»)
In the screenshot below, DropdownType is equal to «FIRE». Thus, only two values, «Arcanine» and «Entei», are returned by the formula.
Finalizing the structure
After this brief introduction, we can now create our dynamic drop down list Excel.
Create a higher level drop down containing the unique values
First step is creating a unique list of types and bind them to a drop down. In our example, we used the UNIQUE function on cell E4. The UNIQUE function spills its return array through the rest of the column.
Next is binding the spilled array into a drop down. To do this,
- Select a cell to make a drop down.
- Go to Data Validation
- Select List under Allow
- Type in your cell reference with the UNIQUE formula with a # character. This is =E4# in our example.
The # is the spill operator which saves us from guessing the size of the outcome array. Using # you can get all items returned from the UNIQUE formula.
Create dynamic drop down with a dynamic list
This is where the FILTER function comes in. In our example, we named the ranges and used them in the formulas.
- Type dropdown (H7) as DropdownType
- List of types (C4:C17) as Type
- List of names (B4:B17) as Name
Our formula in this example is in cell E15:
=FILTER(Name,Type=DropdownType,»No Name Found»)
The drop down procedure is very similar to previous one. The only difference is the reference of the cell contains the FILTER, =E15#.
That’s all!
Динамический выпадающий список в MS EXCEL
При заполнении ячеек данными, бывает необходимо ограничить возможность ввода определенным списком значений – это можно сделать с помощью Выпадающего списка. Если одновременно необходимо обеспечить ввод только неповторяющихся значений, то необходим Динамический выпадающий список: с помощью него пользователь не сможет дважды выбрать одно и тоже значение.
«Динамизм» Динамического выпадающего списка заключается в следующем: после ввода в столбец какого-нибудь значения из Выпадающего списка, список изменяется – введенное значение исчезает из Выпадающего списка. Таким образом, Динамический выпадающий список может обеспечить ввод в диапазон только неповторяющихся значений (см. файл примера ).
Алгоритм решения задачи следующий:
- создаем на листе Список исходный перечень элементов Выпадающего (раскрывающегося) списка, например перечень сотрудников компании;
- на листе ДинамическийСписок определяем диапазон для ввода сотрудников, например, выдвинутых на премию. Диапазон должен содержать неповторяющиеся фамилии (иначе кто-то получит 2 или 3 премии!) и все сотрудники должны быть из компании (иначе премию получат чужие!)
- создаем на листе Список модифицированный перечень сотрудников, не содержащий фамилии, которые уже введены на листе ДинамическийСписок;
- создаем обычный Выпадающий список на основе модифицированного перечня сотрудников, созданного на предыдущем шаге.
- На листе Список, в столбце А создадим исходный перечень фамилий сотрудников. Введем заголовок – Сотрудники.
- На листе ДинамическийСписок определяем диапазон, в который будут вводиться фамилии сотрудников с помощью Выпадающего списка (Ведомость для премии). Это диапазон A3:A16.
- На листе Список, в столбце B, напротив каждого значения из исходного перечня введем формулу = ЕСЛИ(СЧЁТЕСЛИ(ДинамическийСписок!$A$3:$A$16;A2);»»;СТРОКА())
Формула ищет уже введенные в диапазон A3:A16 на листе ДинамическийСписок фамилии и, в случае успеха, возвращает значение Пустой текст («»). Если значение не найдено, то выводится номер строки, в которой находится формула;
- На листе Список, в ячейке С2, введем Формулу массива = ЕСЛИОШИБКА(ИНДЕКС($A$2:$A$9; НАИМЕНЬШИЙ($B$2:$B$9;СТРОКА(1:1))-СТРОКА($A$1));»») После ввода вместо ENTER нажмите CTRL+SHIFT+ENTER.
Разберем работу формулы подробнее. Функция НАИМЕНЬШИЙ() сортирует по возрастанию столбец B и для каждой строки выводит значение. Функция ИНДЕКС() , в зависимости от результата функции НАИМЕНЬШИЙ() , извлекает фамилии из исходного перечня.
Формулу скопируйте вниз до конца исходного перечня сотрудников. В результате в столбце С формируется перечень фамилий, еще не введенных на листе ДинамическийСписок. Это как раз наша цель.
Промежуточный результат легко увидеть с помощью клавиши F9 (например, выделите в строке формул НАИМЕНЬШИЙ($B$2:$B$9;СТРОКА(1:1)) , нажмите F9 — вместо формулы отобразится ее результат).
Чтобы наш Динамический выпадающий список содержал именно столько позиций, сколько имеется фамилий в столбце С, создадим Динамический диапазон:
- На вкладке Формулы в группе Определенные имена выберите команду Присвоить имя;
- В поле Имя введите: Сотрудники;
- В поле Область введите Книга;
- В поле Диапазон введите формулу
Примечание: для числовых значений используйте = СМЕЩ(Cписок!$C$2;;;СУММПРОИЗВ(—ЕЧИСЛО(Cписок!$C$2:$C$29)))
Завершающий шаг: создаем Динамический выпадающий список:
- На листе ДинамическийСписок выделим диапазон, в который будут вводиться значения с использованием Динамического выпадающего списка (A3:A16);
- Вызываем инструмент Проверка данных ( Данные/ Работа с данными/ Проверка данных ), устанавливаем тип данных Список, в поле Источник указываем =Сотрудники
Протестируем наше решение.
На листе ДинамическийСписок с помощью выпадающего списка выберем фамилию Сидоров.
Затем, в ячейке ниже, вызовем выпадающий список и убедимся, что он не содержит фамилию Сидоров.
Динамический выпадающий список является разновидностью Связанного списка.
Excel выпадающий список динамический
В 2014 году я написал статью про каскадные выпадающие списки. Решение было интересное, но довольно громоздкое, плюс требовались работающие макросы. Сегодня я хочу познакомить вас с наиболее продвинутым и универсальным методом организации динамических каскадных выпадающих списков в ячейке, который только существует на данный момент.
Функционал
Поддержка любого уровня вложенности
Обеспечение целостности данных. Вы не можете изменить уровень N, если уже определили уровень N+1 и выше. Иными словами, если вы выбрали фрукт яблоки , а затем сорт яблок — Антоновка , то, не очистив ячейку с Антоновкой , вы не измените яблоки на, скажем, груши .
Преимущества
Простота инфраструктуры решения
Удобное ведение справочников
Ни строчки VBA кода. Вы можете использовать файлы типа XLSX
Файл примера
Скачать пример
Скачать пустой шаблон
Обязательные условия для работы решения
Отдельная и единственная умная таблица для ведения списков. Каждый столбец содержит все элементы одного выпадающего списка. В нашем примере она имеет имя tblLists .
Таблица, в которой будут располагаться выпадающие списки тоже должна быть умной. У меня она называется tblEntry .
Единственный именованный диапазон ( SubList ), который и выполняет всю работу.
В качестве источника строк для выпадающего списка используется вышеупомянутый SubList . При чём во всех ячейках всех уровней! Это очень удобно.
Безусловно, необходимо заполнить справочник. Вы можете посмотреть, как это сделал я в своём примере для классификации млекопитающих. На первом уровне у меня отряды млекопитающих, на втором — семейства, на третьем — рода (если видов слишком много) или виды. Всё очень просто и самоочевидно.
Крайняя правая колонка после таблицы tblEntry не должна использоваться, так как формулы проверяют ячейку справа и по её заполненности делают вывод о возможности ввода значения (если заполнена, то список возвращается пустым).
Как, чёрт побери, это работает?!
Повторюсь, что все делает формула в ИД SubList . Формула, на первый взгляд, выглядит страшновато, но давайте попробуем разобраться. Кстати, если вы не чувствуете пока в себе сил вникать в нюансы работы таких формул, то и не надо. Решение в любом случае готово к употреблению.
Всё относительно
Первое, что вы должны знать об этой формуле, это то, что она относительная. Она содержит относительные ссылки, поэтому, если вы встанете на ячейку B3 листа Smart (так называется лист, содержащий таблицу tblEntry ) и посмотрите на формулу в ИД SubList , то она будет выглядеть так:
=ЕСЛИ( ЕПУСТО( Smart! C3 ); ЕСЛИ( tblEntry[#Заголовки] Smart! B:B = tblEntry[[#Заголовки];[Главная категория]]; СМЕЩ( tblLists[[#Все];[Основная]]; 1; ; СЧЁТЗ(tblLists[Основная])); СМЕЩ( tblLists; 0; ПОИСКПОЗ(Smart! A3 ; tblLists[#Заголовки];0)-1; СЧЁТЗ( СМЕЩ( tblLists; ; ПОИСКПОЗ( Smart! A3 ; tblLists[#Заголовки];0)-1; ; 1) ); 1) ) )
а, если перейдёте в C5 и ещё раз посмотрите, то увидите уже это:
=ЕСЛИ( ЕПУСТО( Smart! D5 ); ЕСЛИ( tblEntry[#Заголовки] Smart! C:C = tblEntry[[#Заголовки];[Главная категория]]; СМЕЩ( tblLists[[#Все];[Основная]]; 1; ; СЧЁТЗ(tblLists[Основная])); СМЕЩ( tblLists; 0; ПОИСКПОЗ(Smart! B5 ; tblLists[#Заголовки];0)-1; СЧЁТЗ( СМЕЩ( tblLists; ; ПОИСКПОЗ( Smart! B5 ; tblLists[#Заголовки];0)-1; ; 1) ); 1) ) )
Декомпозиция
Посмотрим из каких функциональных блоков состоит формула и за что они отвечают. На примере ячейки B3 .
Обратите внимание на первую, внешнюю формулу ЕСЛИ . У ней только 2 параметра: условие — блок 1 на рисунке, и параметр, возвращаемый в случае истинности блока 1 (большой блок 2 ), а вот параметра для ложного условия нет вообще.
Блок 1 при помощи функции ЕПУСТО проверяет ячейку справа от текущей и, если она не пустая, то работа формулы на этом прекращается. Она возвращает Null в качестве источника строк для функции Проверка данных и выпадающий список не срабатывает.
Если ячейка справа пуста, то значит необходимо определить, какой список необходимо показать, надо его найти в таблице tblLists и вернуть все его строки. За всё это отвечает блок 2 , также обёрнутый в формулу ЕСЛИ .
Параметр-условие формулы ЕСЛИ ( блок 3 ) определяет имя столбца таблицы tblEntry над активной ячейкой. Определяет через операцию пересечения диапазонов (символ пробела) при помощи следующей конструкции tblEntry [#Заголовки] Smart ! B:B . Результатом этой операции для B3 становится ячейка B2 . Далее идёт выяснение того, является ли этот заголовок заголовком корневого списка. Если это так (а для B3 это так), то выполняется блок 4 , а если нет, то блок 5 .
Блок 4 формирует диапазон — набор строк для корневого списка. Нам необходимо использовать СМЕЩ и СЧЁТЗ , так как в каждом столбце количество непустых строк может быть разное. Тут всё стандартно: первый параметр задаёт точку отсчёта (не надо пугаться, что точка отсчёта задана диапазоном, так как формула всё равно возьмёт первую ячейку), второй параметр — смещение по строкам (у нас это 1), третий — смещение по столбцам (опущен — у нас ширина массива 1 столбец), четвёртый параметр — число строк (их просто считаем через СЧЁТЗ ), пятый параметр — число столбцов (опущен).
Блок 5 формирует набор строк для случая промежуточного (не корневого) списка. Это означает, что надо взять значение ячейки слева от текущей и искать столбец с таким же именем, а потом действовать примерно так же, как в блоке 4 . Всё это присутствует в блоке 5 : мы видим опять СМЕЩ , первый параметр tblLists — это в качестве точки отсчёта берётся первая ячейка таблицы без заголовка (это Ref ! A2 ), смещение по строкам — ноль, так как мы уже стоим на области данных, смещение по столбцам определяется в блоке 6 , высота диапазона определяется в блоке 7, ширина диапазона равна 1.
Обратите внимание, что блок 6 и блок 8 одинаковые — ведь мы определяем столбец динамически.
Если для вас функции СМЕЩ и СЧЁТЗ не пустой звук, то прочтя 2-3 раза раздел про декомпозицию, вы должно быть поняли, как это всё работает. Если же нет, то не расстраивайтесь, — всему своё время. Почитайте про структурные формулы умных таблиц, описания функций СМЕЩ , СЧЁТЗ , ПОИСКПОЗ и через некоторое время, когда знания улягутся в голове, вернитесь к этому описанию снова.
Данный рецепт подсмотрен мною для вас на сайте известного индийского экселиста Chandoo (Purna Duggirala).
Динамические выпадающие списки Excel
Возможность проверки данных приложения Excel позволяет создавать выпадающие списки допустимых значений ячейки. Обычные статичные списки настраиваются легко, но для придания им динамики требуется нестандартный подход.
Говоря о динамических выпадающих списках, подразумевается 2 варианта:
Растущий выпадающий список
Растущим списком называется тот, для которого не требуется изменять источник, чтобы добавить новые пункты.
Рассмотрим пример создания такого списка.
На любом листе размещается перечень будущих пунктов. Далее стандартным образом настраивается правило проверки данных: Вкладка «Данные» -> Область «Работа с данными» -> Кнопка «Проверка данных» -> Тип данных «Список». Для источника необходимо создать следующую формулу:
=СМЕЩ($A$1;;;СЧЁТЗ($A:$A)), где:
- $A$1 – ячейка со значением первого пункта списка;
- $A:$A – столбец с перечнем всех пунктов списка.
Используя приведенную формулу, следите за отсутствием лишних значений в столбце с перечнем и пустых ячеек между пунктами, так как формула считает количество непустых ячеек и может вернуть ссылку на больший или меньший диапазон.
Параметры динамического выпадающего списка:
Связанные (зависимые) выпадающие списки
Связанными называются такие списки, когда смена значения первого полностью меняет список в зависимой ячейке. Для этого требуется создать несколько отдельных источников и присвоить им имена.
В качестве примера рассмотрим создание зависимых выпадающих списков с перечнем товаров. Сначала определим категории имеющейся продукции (это будет главный список):
- Бытовая_техника (пробел в названии специально заменен нижним подчеркиванием, т.к. диспетчер имен, который будет использован далее, не принимает символ пробела);
- Электроника;
- Мебель.
Теперь для каждого значения категории создается свой список, после чего ему присваивается имя в диспетчере имен (вкладка «Формулы» -> Область «Определенные имена») согласно этому значению.
В завершении задаем для ячеек созданные нами связанные выпадающие списки с помощью проверки данных (вкладка «Данные» -> Область «Работа с данными»).
Для главного списка источником достаточно указать ссылку на диапазон, а для зависимых указывается формула:
=ДВССЫЛ($A$1), где:
- $A$1 – ячейка с главным списком.
На этом зависимые выпадающие списки созданы, а так выглядит готовый результат:
Если материалы office-menu.ru Вам помогли, то поддержите, пожалуйста, проект, чтобы мы могли развивать его дальше.
Комментарии
Добрый день, Александр!
Такое возможно осуществить посредством макросов. Иных способов я не знаю.
Двухуровневый выпадающий список в Excel
Имеется несколько способов создания выпадающего списка. Выбор одного из них зависит от структуры имеющихся у вас данных.
Первый способ создания двухуровнего списка
Первый способ основывается на создание «умной» таблицы, заголовок которой содержит значения первого выпадающего списка (группы), а строки таблицы соответствуют значениям второго выпадающего списка (подгруппы). Значения элементов подгруппы должны располагаться в соответствующем столбце группы, как на рисунке ниже.
Теперь приступим к созданию первого выпадающего списка группы (в моем случае — список стран):
- Выберите ячейку, в которую будете вставлять выпадающий список;
- Переходим на вкладку ленты Данные;
- Выбираем команду Проверка данных;
- В выпадающем списке выбираем значение Список;
- В поле Источник указываем следующую формулу =ДВССЫЛ(«Таблица1[#Заголовки]»).
Осталось создать второй зависимый выпадающий список – список подгрупп.
Смело повторяем 4 первых пункта описанных выше. Источником в окне Проверка данных для второго выпадающего списка будет служить формула =ДВССЫЛ(«Таблица1[«&F2&»]»). Ячейка F2 в данном случае — значение первого выпадающего списка.
Второй способ создания двухуровнего списка
Второй способ удобно применять, когда данные выпадающего списка записаны в два столбца. В первом идет наименование группы, а во втором – подгруппы.
ВАЖНО! Перед созданием зависимого списка по подгруппам необходимо отсортировать исходную таблицу по первому столбцу (столбец с группой) далее будет понятно зачем это делается.
Для создания выпадающего групп нам понадобится дополнительный столбец, содержащий уникальные значения групп из исходной таблицы. Для создания этого списка используйте функцию удаления дубликатов или воспользуйтесь командой Уникальные из надстройки VBA-Excel.
Теперь создадим выпадающий список групп. Для этого выполните 4 первых пункта из первого способа создания двухуровнего списка. В качестве Источника укажите диапазон уникальных значений групп. Тут все стандартно.
Теперь самая сложная часть — указать в Источнике динамическую ссылку на диапазон со значениями второго выпадающего списка (списка подгрупп). Решать ее будем с помощью функции СМЕЩ(ссылка, смещ_по_строкам, смещ_по_столбцам, [высота], [ширина]), которая возвращает ссылку на диапазон, отстоящий от ячейки или диапазона ячеек на заданное число строк и столбцов.
- Ссылка в нашем случае — $A$1 — верхний левый угол исходной таблицы;
- Смещ_по_строкам — ПОИСКПОЗ(F3;$A$1:$A$67;0)-1 — номер строки со значением искомой группы (в моем случае страны ячейка F3) минус единица;
- Cмещ_по_столбцам — 1 — так как нам необходим столбец с подгруппами (городами);
- [Высота] — СЧЁТЕСЛИ($A$1:$A$67;F3) — количество подгрупп в искомой группе (количество городов в стране F3);
- [Ширина] — 1 — так как это ширина нашего столбца с подгруппами.
Динамические именованные диапазоны
Очень часто при использовании связки Выпадающий список—Именованный диапазон возникает проблема: при добавлении новых данных в диапазон они не отразятся сразу в списке — для этого необходимо будет изменить адрес именованного диапазона. Либо указать заранее расширенный диапазон. Но тогда появляются лишние пустые значения в списке, что тоже не очень-то красиво и совсем не удобно, особенно если список не маленький. И вот здесь помогут так называемые Динамические диапазоны. Создав вместо обычного именованного диапазона динамический, уже не придется каждый раз менять адрес диапазона для отображения в списке всех добавленных значений. И отображаться будут только значения, никаких пустых строк.
Вызываем Диспетчер создания имен(Ctrl+F3), задаем имя диапазона и в поле Диапазон (Refers to) пишем формулу:
Вариант с формулой СМЕЩ
=СМЕЩ(Лист2! $A$1 ;;;СЧЁТЗ(Лист2! $A$1:$A$1000 );)
=OFFSET(Лист2! $A$1 . COUNTA(Лист2! $A$1:$A$1000 ),)
- Где Лист2! $A$1 — первая ячейка значений для выпадающего списка
- а Лист2! $A$1:$A$1000 максимальный диапазон ячеек, в котором будут храниться значения для списка. Если значений может быть более 1000, то необходимо увеличить диапазон $A$1:$A$1000 на необходимое количество строк. Хотя мне лично страшно представить себе такой выпадающий список. Но динамический диапазон может ведь пригодиться и для других целей
В чем главный недостаток этого метода: если добавить в список значений пропуск между значениями в виде пустой строки — список отобразит не все значения списка, т.к. СЧЕТЗ считает количество непустых ячеек:
Вариант с формулой ИНДЕКС
=Лист2!$A$1:ИНДЕКС(Лист2! $A$1:$A$1000 ;ПРОСМОТР(2;1/(Лист2! $A$1:$A$1000 <>«»);СТРОКА(Лист2! $A$1:$A$1000 )))
=Лист2!$A$1:INDEX(Лист2! $A$1:$A$1000 ,LOOKUP(2,1/(Лист2! $A$1:$A$1000 <>«»),ROW(Лист2! $A$1:$A$1000 )))
Изменяемые ссылки для этой формулы такие же, как и в случае с вариантом через СМЕЩ:
- Лист2! $A$1 — первая ячейка значений для выпадающего списка
- Лист2! $A$1:$A$1000 максимальный диапазон ячеек, в котором будут храниться значения для списка
Однако метод через данную формулу лишен недостатка предыдущего метода: если добавить в список разрыв в виде пустой строки — список отобразится правильно, с этим разрывом и всеми значениями:
Примечание: созданные таким образом диапазоны нельзя использовать в составе функции ДВССЫЛ (INDIRECT) для создания зависимых выпадающих списков — список просто не будет работать
Tips_Lists_Dinamic_Range.xls (37,5 KiB, 6 032 скачиваний)
Статья помогла? Поделись ссылкой с друзьями!
Поиск по меткам
Есть вариант ещё интереснее.
Размещаем список в «Таблице» (ВставкаТаблица)
Создаём Диапазон ссылающийся на часть таблицы с данными например =Таблица1[Почта](если заголовок списка «Почта» в таблице «Таблица1»)
Далее всё как указано в основном описании по созданию списка в третьем варианте отсюда: http://www.excel-vba.ru/chto-umeet-excel/vypadayushhie-spiski/
При необходимости увеличения или изменения состава списка просто добавляете значения вниз таблицы со списком (таблица сама расширится включив новое значение в список) и сортируете. Пустые значения упадут вниз и их можно просто исключить из таблицы или оставить.
При изменении заголовка списка ссылка в именованном диапазоне поменяется сама.
Важный момент в настройках должна быть включена функция «ФормулыИспользовать имена таблиц в формулах».
Поделитесь своим мнением
Комментарии, не имеющие отношения к комментируемой статье, могут быть удалены без уведомления и объяснения причин. Если есть вопрос по личной проблеме — добро пожаловать на Форум