Выпадающий список в ячейке листа

Видео

 У кого мало времени и нужно быстро ухватить суть - смотрим обучающее видео:

Кому интересны подробности и нюансы всех описанных способов - дальше по тексту.

Способ 1. Примитивный

Один щелчок правой кнопкой мыши по пустой ячейке под столбцом с данными, команда контекстного меню Выбрать из раскрывающегося списка (Choose from drop-down list) или нажать сочетание клавиш ALT+стрелка вниз. Способ не работает, если ячейку и столбец с данными отделяет хотя бы одна пустая строка или вам нужен товар, который еще ни разу не вводился выше:

dropdown1.gif

Способ 2. Стандартный

  1. Выделите ячейки с данными, которые должны попасть в выпадающий список (например, наименованиями товаров).
  2. Если у вас Excel 2003 или старше - выберите в меню Вставка - Имя - Присвоить (Insert - Name - Define), если Excel 2007 или новее - откройте вкладку Формулы (Formulas) и воспользуйтесь кнопкой Диспетчер имен (Name Manager), затем Создать. Введите имя (можно любое, но обязательно без пробелов и начать с буквы!) для выделенного диапазона (например Товары). Нажмите ОК.
  3. Выделите ячейки (можно сразу несколько), в которых хотите получить выпадающий список и выберите в меню (на вкладке) Данные - Проверка (Data - Validation). Из выпадающего списка Тип данных (Allow) выберите вариант Список (List) и введите в строчку Источник (Source) знак равенства и имя диапазона (т.е. =Товары).

dropdown2.gif

Нажмите ОК.

Все! Наслаждайтесь!

dropdown3.gif

Важный нюанс. В качестве источника данных для списка может выступать и динамический именованный диапазон, например прайс-лист. Тогда при дописывании новых товаров к прайсу, они будут автоматически добавляться к выпадающему списку. Еще одним часто используемым трюком для таких списков является создание связанных выпадающих списков (когда содержимое одного списка меняется в зависимости от выбора в другом).

Способ 3. Элемент управления

Этот способ представляет собой вставку на лист нового объекта - элемента управления "поле со списком" с последующей привязкой его к диапазонам на листе. Для этого:

  1. В Excel 2007/2010 откройте вкладку Разработчик (Developer). В более ранних версиях - панель инструментов Формы (Forms) через меню Вид - Панели инструментов - Формы (View - Toolbars - Forms). Если этой вкладки не видно, то нажмите кнопку Офис - Параметры Excel - флажок Отображать вкладку Разработчик на ленте (Office Button - Excel Options - Show Developer Tab in the Ribbon)
  2. Найдите значок выпадающего списка среди элементов управления форм (не ActiveX!). Ориентируйтесь по всплывающим подсказкам - Поле со списком:
    dropdown4.gif
    Щелкните по значку и нарисуйте небольшой горизонтальный прямоугольник - будущий список.
  3. Щелкните по нарисованному списку правой кнопкой мыши и выберите команду Формат объекта (Format control). В появившемся диалоговом окне задайте
    • Формировать список по диапазону - выделите ячейки с наименованиями товаров, которые должны попасть в список
    • Связь с ячейкой - укажите ячейку куда нужно выводить порядковый номер выбранного пользователем элемента.
    • Количество строк списка - сколько строк показывать в выпадающем списке. По умолчанию - 8, но можно больше, чего не позволяет предыдущий способ.

После нажатия на ОК списком можно пользоваться.

Чтобы вместо порядкового номера элемента выводилось его название можно дополнительно использовать функцию ИНДЕКС (INDEX), которая умеет выводить содержимое нужной по счету ячейки из диапазона:

dropdown6.gif

Способ 4. Элемент ActiveX

Этот способ частично напоминает предыдущий. Основное отличие в том, что на лист добавляется не элемент управления, а элемент ActiveX "Поле со списком" из раскрывающегося набора под кнопкой Вставить (Insert) с вкладки Разработчик (Developer):

dropdown7.gif

Механизм добавления тот же - выбираем объект из списка и рисуем его на листе. А вот дальше начинаются серьезные отличия от предыдущего способа.

Во-первых, созданный выпадающий ActiveX список может находится в двух принципиально разных состояниях - режиме отладки, когда можно настраивать его параметры и свойства, двигать его по листу и менять размеры и - режиме ввода, когда единственное, что можно - выбирать из него данные. Переключение между этими режимами происходит с помощью кнопки Режим Конструктора (Design Mode) на вкладке Разработчик (Developer):

dropdown8.gif

Если эта кнопка нажата, то мы можем настраивать параметры выпадающего списка, нажав соседнюю кнопку Свойства (Properties), которая откроет окно со списком всех возможных настроек для выделенного объекта:

dropdown9.gif

Самые нужные и полезные свойства, которые можно и нужно настроить:

  • ListFillRange - диапазон ячеек, откуда берутся данные для списка. Выделить мышью диапазон он не даст, надо просто вписать его руками с клавиатуры (например, Лист2!A1:A5)
  • LinkedCell - связанная ячейка, куда будет выводиться выбранный из списка элемент
  • ListRows - количество отображаемых строк
  • Font - шрифт, размер, начертание (курсив, подчеркивание и т.д. кроме цвета)
  • ForeColor и BackColor - цвет текста и фона, соответственно

Большим и жирным плюсом этого способа является возможность быстрого перехода к нужному элементу в списке при вводе первых букв с клавиатуры(!), чего нет у всех остальных способов. Приятным моментом, также, является возможность настройки визуального представления (цветов, шрифтов и т.д.)

При использовании этого способа, также возможно указывать в качестве ListFillRange не только одномерные диапазоны. Можно, например задать диапазон из двух столбцов и нескольких строк, указав дополнительно, что выводить нужно два столбца (свойство ColumnCount=2). Тогда можно получить весьма привлекательные результаты, окупающие все потраченные на дополнительные настройки усилия:

dropdown10.gif

 

Итоговая сравнительная таблица всех способов

  Способ 1. Примитивный Способ 2. Стандартный Способ 3. Элемент управления Способ 4. Элемент ActiveX
Сложность низкая средняя высокая высокая
Возможность настройки шрифта, цвета и т.д. нет нет нет да
Количество отображаемых строк всегда 8 всегда 8 любое любое
Быстрый поиск элемента по первым буквам нет нет нет да
Необходимость использования дополнительной функции ИНДЕКС нет нет да нет
Возможность создания связанных выпадающих списков нет да нет нет

Ссылки по теме:


Страницы: 1  2  3  4  5  
06.01.2016 02:00:04
К 4 варианту можно сделать дополнительную модификацию в виде:
1. Выпадающий список с отображение на экране сразу нескольких элементов со списка (как после нажатия треугольника (который бы менял данные при вводе в его поле названия).
2. И в конце можно было выбрать элемент с помощью Таб или enter (а лучше и тем и другим).

На счет пункта 2 вообще есть возможность прописывать в теле макроса клавишу для завершения определенного действия?
16.02.2016 20:34:23
Здравствуйте, вопрос такой, возможно ли из выпадающего списка а желательнее из двух выпадающих списков выбрать 2 разных не связанных значения в одну ячейку? Пример: в одном столбце (кресло,диван, столик.....) в другом столбце (кожа, велюр, бархат...). Надо что бы в конечном результате в одной ячейке при выборе двух разных значений было указано (кресло - кожа,) или (диван - бархат). Если нет то какими другими возможностями можно это сделать если не из выпадающего списка? Заранее спасибо!
17.02.2016 21:04:08
Сергей, надо просто склеить текст из ячеек с выпадающими списками.
17.02.2016 22:55:59
Николай, Спасибо! Подскажите еще пожалуйста, у меня есть два листа на первом листе "Рабочий" указываю исходную информацию к примеру в ячейке А1 (коробка апельсинов), а на втором листе указываю в ячейке к примеру В1 ссылку на ячейку А1 с Рабочего листа (=Рабочий!A1). Возможно что бы на втором листе в ячейке В1 данные сразу преобразовывались в текст, чтобы редактировать его, а не отображались в виде  формулы (=Рабочий!A1).
29.02.2016 20:27:58
Понял принцип составления выпадающего списка при помощи AktiveX на одном листе. подскажите пожалуйста, как забить этим способом диапазон на нескольких листах книги?
14.03.2016 21:32:09
Добрый день!

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

Заранее благодарю за консультацию.
22.03.2016 14:18:41
Помогите пожалуйста советом с какой стороны подступиться?
Есть задание сделать подбор  и поиск из разных таблиц .Приблизительно как сделан подбор на этом сайте http://printer.umans.ru
на кнопке " Подобрать услугу"
Возможно ли такое сделать в exele.
Выпадающие списки не подходят около 400 строк неудобно подбирать .
Посоветуйте в каком направлении копать????
29.03.2016 14:05:47
Николай, подскажите, при построении списка из ActiveX можно ввести случайное значение, которого нет в списке и оно отобразится в связанной ячейке... Как сделать, чтобы можно было выбирать только элементы  списка?
04.04.2016 13:09:54
Комментарий удалён.
14.05.2016 10:35:37
Добрый день.
С элементом "поле со списком" проблем не возникает. А вот элемент "список" из ActiveX, который выполняет вроде те же функции, но для меня более удобен, почему то при каждом пересчете книги меняется в размерах самопроизвольно (уменьшается его ширина и высота). Каждый раз приходиться включать режим конструктора и подправлять его вручную. Все настройки перепробовала. Может это связано с тем, что диапазон исходных данных находиться на другом листе и задан формулой массива? Или в чем причина? Подскажите, кто знает.
19.05.2016 10:37:01
Добрый день.
По 4-му способу, нужно чтобы в выпадающем списке отображалась информация по нескольким столбцам.
Как корректно прописать свойство ColumnCount=2? И может ли быть не 2 колонки, а 6 к примеру?
Спасибо.
28.06.2016 10:30:27
Добрый день!

Спасибо большое за сайт, очень просто и доходчиво объясняется и в видео материалах, книге и комментариях. Большое значение имеет дикция Тренера. Николай, Ваши видеоуроки приятно слушать и материал легко усваивается. Спасибо большое!

А теперь вопрос связанным выпадающим спискам (более 2 уровней):
как сделать так, чтобы в связанных выпадающих списках на любом уровне позиции списка не повторялись ( использую метод с формулой смещ()?
То есть для списка первого уровня все легко и понятно, мы просто создали список уникальных позиций и сослались на него через проверку данных.
А для следующих уровней мы же не используем простую ссылку как для первого уровня, вернее используем ссылку на диапазон, создаваемый через формулу смещ(), отталкиваясь от выбранного значения в первом уровне.
например: 1 уровень : доходы, расходы. 2 уровень расходов: производственные и административные, 3 уровень административных расходов : 10 позиций и так далее. Соответственно, во втором списке позиция "админ расходы" отразится 10 раз.
Чем глубже требуемый анализ, тем больше дублирующихся значений в  списке предшествующих уровнях.

Помогите пож-ста советом.
Спасибо!  
12.07.2016 12:27:25
Когда в формуле ссылаешься на связанную ячейку(где выводиться число), то формула не работает, пока не зайдешь в связанную ячейку и не нажмешь enter. Как исправить?
21.11.2016 10:08:46
Думал, что в книге более подробный вариант, но ошибся. Из приведенного примера не понятно, как именно при способе с элементом Activ x указать диапазон для вывода нескольких  столбцов?
И может кто-то еще подскажет, столкнулся с тем, что  выпадающий список Activ x  просматривает диапазон только вниз, то есть если я хочу сделать выпадающий список который расположен горизонтально по столбцам, то список видит только первую ячейку.
01.12.2016 14:25:06
Спасибо за науку. :)  На 5 столбцов тоже работает.
05.01.2017 16:39:45
Спасибо! Очень интересно и ясно объяснили.
22.01.2017 08:47:23
Добрый день!
Подскажите пожалуйста, при использовании 3 и 4 способа можно ли диапазон значений сделать динамическим?
В данный момент у меня на отдельном листе записаны данные и их количество меняется в разных документах, чтобы не переписывать постоянно свойства у меня в качестве источника данных задан весь столбец (A:A), но при этом сами понимаете сколько ячеек в выпадающем списке. Можно ли сделать так, чтобы показывались только непустые ячейки?

И еще одна заморочка. В первом столбце листа с исходными у меня только номер, остальные значения в документ подставляются функцией ВПР, но при этом в случае использования способа 3 все работет нормально, т.к. номер совпадает с номером строки. А при использовании 4 способа ВПР отказывался работать пока я не задал текстовый формат столбцу с номерами и ячейке в которую подставляется значение
07.02.2017 19:22:39
Добрый вечер.
Весь лень пытался найти на форуме способ решения своей задачи, не удалось.
Очень много похожих решений но все же есть отличия.
Мне необходимо чтобы при выборе из выпадающего списка наименования товара в четырех соседних ячейках автоматические выдавались параметры этого товара, которые расположены в том же списке. Т.е. вся эта информация храниеся в одной таблице, мне нужно что бы на другом листе при выборе товара выдавалась инфа об этом товаре в одну строчку (и 5 столбцов).
21.02.2017 12:38:04
Функция ВПР Вам в помощь...
05.03.2017 10:02:21
Спасибо. Стандартный (Способ 2) рулит!
K M
16.03.2017 00:06:32
добрый день!
Подскажите как удалить выпадающий список с помощью макроса?
Список сделан по 2му методу (стандартный), данные берутся из отдельного листа.
05.07.2017 10:00:02
Добрый день. Подскажите пожалуйста, как сделать выпадающий список в стандартной "Форме" (инструмент самого exel)? Пробовал через: разработчик/вставить/элемент управления формы/поле со списком - не получается. При запуске Формы, выпадающий список отсутствует....
01.08.2017 11:21:22
Доброго времени суток. Такая проблема, сделал таблицу с зависимыми выпадающими списками, но проблема что в некоторых списках очень много параметров, и каждый раз прокручивать в поисках нужного очень долго. Хочется что бы в выпадающем списке был текстовый фильтр, как его сделать подскажите пожалуйста.
26.11.2017 20:54:27
У меня есть вопрос.
Дело в том что у меня в столбце я выбераю варианты с выпадаещего списка. но проблема В том что ячейки которые я создал от куда будут брать данные для списка им дал цвет формат и так далее.
Но когда выбераю на  столбце там только текст попадает.
Так как у меня список длиный и каждый раз я заполняю его с нова не хотелось постоянно менять формат звета и так далее.
Есть какоето решение на мою проблему?
IMG
27.11.2017 10:02:57
Простого способа переносить форматы исходных ячеек в ячейку выпадающего списка нет, к сожалению.
P.S. У меня от вашей орфографии и грамматики мозг взорвался - сижу и думаю, как дальше жить после такого с утра.
05.04.2018 10:15:32
Nikolay zdravstvuyte. Xochu vam skazat prosto spasibo za etot sayt i vashu rabotu. Kak zdes v Tursii govorat Ellerinize saglik. Day bog zdorovya vashim rukam. Eto ne malenkiy trud i pomosh ochen mnogim. Spasibo ogromnoe. :like:
08.05.2018 12:05:19
Отличная и понятная статья. Иногда забываешь мелочи. Всегда приятно освежить знания.
23.08.2018 17:07:20
Отлично, большое спасибо.
Есть вопрос, делаю с  ActiveX, в настройках свойств выпадающего списка прописываю в ListFillRange не одномерный диапазон (A1:C16), в ColumnCount ставлю "3", в списке все отображается нормально, но в LinkedCell (G2) выводится только левое значение из массива.
Пробовал в LinkedCell ставить несколько ячеек (G2:I2), результат тот же.
В чем здесь дело, не пойму, где я что пропустил)...
Excel 2016.
 
Спасибо огромное за тему.. долго искал. Все конечно хорошо, но вот как сделать,Способ 4. Элемент ActiveX, кодна набираешь первые буквы, появляется искомое слово, и что бы не тыкать курсором, просто нажать кнопку "Ввод" или "Tab" и перейти на следующую строку?
Страницы: 1  2  3  4  5  
Наверх