Excel как сделать выбор значения из списка. Создаем связанные выпадающие списки в Excel – самый простой способ
Microsoft Excel – отличный инструмент для работы с табличными данными. С его помощью можно быстро создать подходящую таблицу и заполнить ее данными. При этом Excel упрощает не только работу с данными в таблице, но и сам процесс заполнения таблицы.
В этом материале речь пойдет именно о заполнении таблицы. Здесь вы сможете узнать, как в Эксель сделать выпадающий список, который позволит значительно быстрее заполнять таблицу данными. Инструкция будет актуальна для Excel 2007, 2010, 2013 и 2016.
Самый простой способ сделать выпадающий список в Экселе, это воспользоваться функцией для проверки данных. Для создания данного выпадающего списка вам сначала нужно сделать обычный список с данными и разместить его в документе Эксель. Такой список можно разместить на том же листе документа, где будет расположен выпадающий список, либо на любом другом листе.
Итак, сначала создаем список данных, которые должны находится в выпадающем списке, и размещаем его в любом удобном месте документа Эксель. Например, вы можете разместить такой список за областью печати либо на другом листе документа Эксель.
После этого выбираем ячейку, в которой нужно сделать выпадающий список. Выделяем эту ячейку мышкой и нажимаем на кнопку «Проверка данных», на вкладке «Данные».
После этого откроется окно «Проверка вводимых значений». В этом окне сначала нужно открыть выпадающий список «Тип данных» и выбрать там вариант «Список».
После чего нужно заполнить строку «Источник».
Для этого устанавливаем курсор в строку «Источник» после чего выделяем мышкой список данных, который должен находится в созданном выпадающем списке.
После указания источника закрываем окно «Проверка вводимых значений» нажатием на кнопку «Ok». Выпадающий список в Экселе сделан и его можно проверять.
Но, теперь в данную ячейку можно ввести только те данные, которые присутствуют в выпадающем списке. А при попытке ввести неверное значение вы будете получать сообщение об ошибке.
Если вы хотите оставить возможность вводить в ячейку данные не содержащиеся в выпадающем списке, то вам нужно выделить ячейку с впадающим списком и нажать на кнопку «Проверка данных». Дальше в открывшемся окне нужно перейти на вкладку «Сообщение об ошибке» и снять отметку напротив функции «Выводить сообщение об ошибке».
После сохранения этих настроек вы можете вводить в ячейку не только те данные, которые доступны в выпадающем списке, но и любые другие, которые вам понадобятся.
Как сделать выпадающий список с добавлением данных
Описанный выше вариант выпадающего списка достаточно удобен. Но, если вы хотите регулярно добавлять в него новые данные, то этот вариант не подойдет, поскольку после каждого добавления данных вам придется изменять диапазон, который указывается в поле «Источник». Решить эту проблему можно с помощью функции «Умные таблицы», которая появилась в Microsoft Excel 2007.
Для этого вам нужно сделать список с данными, точно также как описано выше. Единственно отличие, теперь список должен иметь заголовок.
После создания списка, его нужно выделить и с помощью кнопки «Форматировать как таблицу» на вкладке «Главная» применить к списку любой стиль.
После выбора стиля, появится окно «Форматирование таблицы». Здесь нужно установить отметку напротив функции «Таблица с заголовком» и нажать «Ok».
В результате у вас должна получится таблица с данными, примерно такая, как на скриншоте внизу.
Теперь нужно выделить ячейку, в которой вы хотите сделать выпадающий список, и нажать на кнопку «Проверка данных» на вкладке «Данные». В открывшемся окне нужно выбрать «Тип данных – Список», а потом установить курсор в строку «Источник» и выделить мышкой список с данными, которые должны использоваться для выпадающего списка (выделять заголовок списка не нужно).
Данный способ создания выпадающих списков с возможностью добавления новых строк был проверен на Excel 2010, но он также должен работать и в Excel 2007. Как и в более современных версиях Excel, например, Excel 2013 и Excel 2016.
Чтобы не набирать по буквам и цифрам уже набранные ранее текстовые и числовые значения ячеек, для ускорения процесса заполнения информацией ячеек листа MS Excel и для минимизации ошибок, в том числе опечаток и орфографических, удобно применять раскрывающийся список.
Из раскрывающегося списка несколькими кликами мыши можно ввести в назначенные ячейки нужную информацию. Широко применяются раскрывающиеся списки при написании расчетных программ в Excel.
Программа MS Excel, имея очень дружественный интерфейс, предлагает пользователю несколько разных вариантов помощи при вводе в ячейки рабочего листа повторяющейся информации.
Предположим, что мы ведем базу данных поступления металлопроката на склад. В первом столбце мы указываем вид прокатного профиля.
Вариант №0 — «Элементарный».
Делая очередную запись в ячейку А9, при наборе первой буквы наименования профиля, например «Ш», Excel предлагает заполнить ячейку словом «Швеллер». После набора «Ш» достаточно нажать кнопку «Ввод» на клавиатуре – и слово будет введено в ячейку.
«Минусом» данного варианта является необходимость ввода иногда нескольких букв и невозможность заранее создать справочник наименований, ограничивающий свободу деятельности пользователя.
Переходим непосредственно к вариантам создания раскрывающихся списков.
Вариант №1 — «Простейший».
Если активировать мышью ячейку А9, нажать сочетание клавиш «Alt» «↓», то появится раскрывающийся список, содержащий все ранее введенные в этом столбце значения. Остается лишь выбрать мышью нужную запись. Вместо набора вышеуказанного сочетания клавиш можно щелчком правой кнопки мыши вызвать контекстное меню и выбрать в нем пункт «Выбрать из раскрывающегося списка…». В результате увидим тот же выпадающий список.
В данном варианте активная ячейка обязательно должна примыкать снизу к диапазону значений, а сам диапазон не должен содержать пустых ячеек!
Вариант №2 — «Простой».
Этот вариант позволяет заранее создать список (справочник) значений из которых пользователь в дальнейшем сможет выбирать необходимые записи. При этом список может быть размещен где угодно на листе (или даже на другом листе) и может быть при необходимости скрыт от пользователя.
Для того чтобы создать раскрывающийся список в этом варианте необходимо выполнить ряд последовательных шагов.
1. Создаем список возможных значений, записав их в столбец по одному в ячейку. Допустим это перечень в ячейках А2…А8.
2. Активируем ячейку, в которой необходимо поместить раскрывающийся список путем установки в нее курсора. Пусть это будет та же ячейка А9.
3. Выбираем в главном меню кнопку «Данные» – «Проверка…».
4. В выпавшем окне «Проверка вводимых значений» выбираем вкладку «Параметры».
5. В поле «Тип данных:» из раскрывающегося списка (подобного тому, который мы создаем) выбираем значение «Список».
6. В появившемся поле «Источник:» указываем диапазон, содержащий список возможных значений.
7. Устанавливаем (если он не установлен по умолчанию) флажок «Список допустимых значений» и нажимаем кнопку «ОК».
Раскрывающийся список готов. Его можно скопировать как формулы в любое количество ячеек!
Вариант №3 — «Сложный».
Этот вариант создания раскрывающегося списка, не смотря на свое название «Сложный», по сути таковым не является. Для создания выпадающего списка в нем используется элемент «Поле со списком» панели инструментов «Формы».
Создадим раскрывающийся список этим способом.
1. Создаем список-справочник в ячейках А2…А8.
2. Выбираем в главном меню кнопку «Вид» – «Панели инструментов» – «Формы».
3. В появившейся панели «Формы» выбираем «Поле со списком» и рисуем его, например, в ячейке А9.
Элемент «Поле со списком» размещается не в самой ячейке, а, как бы, над ней!!! Элемент может быть большим и находиться над несколькими ячейками.
4. Щелкаем правой кнопкой мыши по нарисованному элементу и в появившемся контекстном меню выбираем «Формат объекта».
5. В выпавшем окне «Форматирование объекта» на вкладке «Элемент управления» заполняем поля в соответствии с рисунком, расположенном ниже и нажимаем «ОК».
6. Раскрывающийся список готов. Он выводит порядковый номер элемента списка в связанную ячейку В9. (Можете назначить любую удобную вам ячейку, не обязательно В9!)
Для вывода в какую-либо ячейку самого значения из списка-справочника применим функцию ИНДЕКС. Допустим, нам необходимо вывести значение в ячейку А9, расположенную под элементом «Поле со списком».
Для этого в ячейку А9 запишем формулу: =ИНДЕКС(A2:A8;В9)
Наглядный пример подробно рассмотрен в статье « ». Можно перейти по ссылке и ознакомиться.
Раскрывающийся список, созданный этим способом плюс применение функций ИНДЕКС и/или ВПР предоставляют безграничные возможности пользователю при извлечении данных из различных базовых справочных таблиц.
Вариант №4 — «Самый сложный».
Для создания выпадающего списка в этом случае используется также элемент «Поле со списком», но панели инструментов «Элементы управления» (в MS Excel 2003). Это так называемые элементы ActiveX. Здесь все очень похоже внешне на вариант №3, но значительно шире возможности настройки и форматирования элемента.
1. Выбираем в главном меню кнопку «Вид» – «Панели инструментов» – «Элементы управления».
2. В появившейся панели «Элементы управления» выбираем «Поле со списком» и рисуем его в ячейке А9. Элемент ActiveX «Поле со списком» размещается не в самой ячейке, а сверху, накрывая ее!!!
3.
Нажимаем кнопку «Свойства» на панели «Элементы управления» и в выпавшем окне «Properties» («Свойства») вручную вписываем диапазон исходных данных, адрес связанной ячейки (ячейки, куда будет введено выбранное значение) и количество отображаемых строк.
4. Далее при желании можно изменить шрифт, его цвет, цвет фона, и еще ряд параметров… Ничего сложного нет в использовании «Самого сложного» варианта – убедитесь сами. Все интуитивно понятно, хотя базовые знания английского языка не помешают!
5. Отжимаем кнопку «Выход из режима конструктора» на панели «Элементы управления» и проверяем работу раскрывающегося списка. Все работает! Выбранное значение записано в ячейку А9, в нашем примере — под элементом «Поле со списком». Вообще связанной ячейкой может быть абсолютно любая кроме ячеек, где располагается базовый список.
Итоги.
Вариант №0 автоматизирует в некоторой степени заполнение ячеек, но к раскрывающимся спискам, конечно, отношения не имеет и приведен здесь под соответствующим номером, как элементарный вариант автоматизации ввода повторяющихся данных.
На практике я чаще всего создаю раскрывающиеся списки в Excel, используя варианты №1 и №3, реже — вариант №2 и совсем редко — вариант №4, хотя именно он является, безусловно, самым гибким, предоставляющим самые широкие возможности.
Но часто наш выбор в жизни определяют вкусы, стереотипы и привычки! В зависимости от задачи, которую необходимо решить при работе в Excel, следует выбирать наиболее приемлемый и удобный для каждого конкретного случая вариант создания раскрывающихся списков.
Подписывайтесь на анонсы статей в окне, расположенном в конце каждой статьи или в окне вверху страницы и не забывайте подтверждать подписку кликом по ссылке в письме, которое придет к вам на указанную почту (может прийти в папку «Спам» — все зависит от настроек вашей почты)!!!
Полезной или нет, оказалась эта статья для вас, уважаемые читатели? Напишите об этом в комментариях.
Проще всего эту задачу выполнить следующим образом. Нажатием правой кнопки по ячейке под столбцом с данными вызываем контекстное меню. Здесь интересует поле Выбрать из раскрывающегося списка . То же самое можно сделать, нажав комбинацию клавиш Alt+Стрелка вниз .
Однако, такой метод не сработает, если желаете создать список в другой ячейке, не входящей в диапазон и в более, чем одной до или после. Это позволит сделать следующий метод.
Стандартный способ
Потребуется выделить диапазон ячеек
, из которых будет создан выпадающий список
, после чего Вставка
– Имя
– Присвоить
(Excel 2003). В более новой версии (2007, 2010, 2013, 2016) перейдите на вкладку Формулы
, где в разделе Определенные имена
обнаружите кнопку Диспетчер имен
.
Жмем кнопку Создать
, вносите имя, можно любое, после чего ОК
.
Выделите ячейки
(или несколько), где хотите вставить выпадающий перечень требуемых полей. В меню выберите Данные
– Тип данных
– Список
. В поле Источник
внесите ранее созданное имя или же можно просто указать диапазон, что будет равносильно.
Теперь полученную ячейку можно скопировать
в любое место на листе, она будет содержать перечень необходимых элементов таблицы. Также её можно растянуть, чтобы получить диапазон с выпадающими списками.
Интересный момент – при изменении данных в диапазоне, основанный на нем список также будет меняться, то есть он будет динамическим .
Используем элементы управления
Метод основан на вставке элемента управления, называемом «поле со списком «, которое будет представлять собой диапазон данных.
Выберите вкладку Разработчик
(для Excel 2007/2010), в других версиях потребуется активировать эту вкладку на ленте в параметрах
– Настроить ленту
.
Переходим на эту вкладку – жмем кнопку Вставить
. В элементах управления выбираем Поле со списком
(не ActiveX) и нажмите по значку. Нарисуйте прямоугольник
.
Правой кнопкой по нему – Формат объекта
.
Связью с ячейкой выберите то поле, куда следует поместить порядковый номер элемента в списке. Затем жмем ОК .
Применение элементов ActiveX
Все, как и в предыдущем только выбираем Поле со списком
(ActiveX).
Отличия в следующем: элемент ActiveX может находиться в двух вариантах — режиме отладки
, позволяющем изменять параметры, и — режиме ввода
, можно только производить выборку данных из него. Смена режимов осуществляется кнопкой Режим Конструктора
во вкладке Разработчик
.
В отличии от остальных способов этот позволяет настраивать
шрифты, цвета и осуществить быстрый поиск.
Многие пользователи даже не догадываются, что всем известный табличный редактор Excel обладает такими функциями и имеет такие инструменты, которые далеко выходят за рамки основной цели использования программы - редактирования таблиц. В этой статье будет рассказано об опции выбора из Другими словами, расскажем, как создавать выпадающие списки в ячейках таблицы.
Способ 1: создаем дополнительный список
Если вы хотите сделать в ячейке Excel список выбора, то проще всего воспользоваться этим способом, подразумевающим простое создание выпадающего списка. Кстати, будет рассказано о двух его вариациях, поэтому прочтите до конца, чтобы во всем разобраться.
Шаг 1: подготавливаем данные
Предварительно необходимо в отдельном диапазоне ячеек создать таблицу с данными, которые будут в будущем находиться в выпадающем списке. Разберем все на примере продуктов. Итак, мы имеем список из семи товаров, если быть точнее, то продуктов. Эту табличку мы создадим чуть правее от основной таблицы, в рамках которой будут созданы выпадающие списки.
Если вы не хотите, чтобы таблица с данными находилась на том листе, что и основная, вы можете создать ее на отдельном листе. Роли это не сыграет.
Шаг 2: вводим имя диапазона
Чтобы использовать опцию выбора из списка в Excel, предварительно надо ввести имя диапазона с данными для будущего списка. Делается это довольно просто:
- Выделите ячейки, в которых находятся в данном случае наименования товаров.
- Нажмите правой кнопкой мыши (ПКМ) по выделению.
- Выберите из меню опцию «Присвоить имя».
- В появившемся окне в поле «Имя» введите название диапазона. Оно может быть абсолютно любым.
- Нажмите «ОК».
Второй шаг выполнен. Созданный нами только что диапазон ячеек облегчит создание списка в будущем.
Шаг 3: делаем выпадающий список
Теперь можно переходить непосредственно к использованию опции выбора из списка в Excel. Делается это следующим образом:
- Выделите нужный диапазон ячеек, в котором будут располагаться выпадающие списки.
- Перейдите на вкладку «Данные».
- В группе инструментов «Работа с данными» нажмите по кнопке «Проверка данных».
- В появившемся окне на вкладке «Параметры» выберите из выпадающего списка «Тип данных» значение «Список».
- Введите в поле «Источник» название ранее созданного диапазона ячеек, предварительно поставив знак равенства. В нашем случае - «=Продукты».
- Нажмите «ОК».
Сразу после этого в выбранных ячейках появятся выпадающие списки. Это был первый способ его создания, перейдем ко второму.
Способ 2: создание выпадающего списка через меню «Разработчика»
Вполне возможно, что предыдущая инструкция показалась вам непонятной, и вы столкнулись с трудностями при создании в ячейке таблицы элемента выбора значения из списка в Excel. Второй метод реализации может стать достойной альтернативой.
Как создать выпадающий список в ячейке листа при помощи меню «Разработчика»? Как и в предыдущий раз, для лучшего понимания все действия будут поделены на этапы.
Шаг 1: включаем меню «Разработчика»
Итак, в первую очередь необходимо активировать меню «Разработчика», так как по умолчанию его нет среди прочих вкладок.
- Нажмите по кнопке «Файл».
- Нажмите по кнопке «Параметры».
- В появившемся одноименном окне перейдите в раздел «Настройка ленты».
- В области «Основные вкладки» установите отметку напротив пункта «Разработчик».
- Нажмите «ОК».
Нужная панель инструментов активирована, теперь можно приступать к созданию списка.
Шаг 2: вставляем выпадающий список
Нужно создать непосредственно сам элемент «Выпадающий список». Для этого:
- Перейдите на добавленную вкладку «Разработчик».
- На листе создайте список товаров, который будет использоваться для создания выпадающего списка.
- Нажмите по кнопке «Вставить» и в дополнительном меню выберите пункт «Поле со списком».
- Кликните по той ячейке, где будет располагаться сам список.
Уже на этом этапе нужный элемент появится, но, если нажать по нему, откроется пустой список. Соответственно, надо добавить в него продукты.
Шаг 3: задаем необходимые параметры
Чтобы добавить в выпадающий список пункты, необходимо:
- На панели инструментов нажать по кнопке «Режим конструктора».
- Затем нажать кнопку «Свойства элемента управления», располагающуюся рядом.
- В появившемся окне со свойствами в графе ListFillRange введите диапазон ячеек, в котором находятся пункты будущего выпадающего списка.
- Теперь нажмите ПКМ по выпадающему списку и в меню выберите «Объект ComboBox», а в подменю Edit.
Сразу же после этого в выпадающий список будут внесены указанные пункты. Вот так просто можно выполнить выбор из списка в Excel вторым методом.
Способ 3: создание связанного списка
Для выбора нескольких значений выпадающий список в Excel подходит лучше всего, но порой бывает потребность во взаимосвязи нескольких таких списков. К счастью, программа это позволяет делать, и далее будет предоставлена подробная пошаговая инструкция с детальным описанием всех действий.
Шаг 1: создаем дополнительный список
Первостепенно необходимо создать основной выпадающий список. На этом долго останавливаться не будем, так как конструкция полностью аналогична той, что была описана в первом способе. Скажем только, что связывать мы будем наименование товара с его весом. Рекомендуется создать наименование диапазонов с мерами товаров (г, кг, мл, л).
Шаг 2: Связываем первый список со вторым
Ну а теперь перейдем непосредственно к основному - к созданию второго элемента «Выбора из списка» в Excel, который будет связан с первым.
- Установите курсор в той ячейке, где будет располагаться второй список.
- Откройте окно «Проверки вводимых значений», нажав на вкладке «Данные» по кнопке «Проверка данных».
- В появившемся окне на вкладке «Параметры» выберите из выпадающего списка «Тип данных» пункт «Список».
- В поле для ввода «Источник» введите формулу «ДВССЫЛ», ссылающуюся на первый список. В данном случае она будет выглядеть следующим образом: «=ДВССЫЛ($B3)».
- Нажмите «ОК».
Второй список создан. Он привязан к первому, что означает, что, выбрав значение в данном случае продукта, вам необходимо будет выбрать также и его меру. Чтобы не создавать такие же списки в других ячейках, выделите уже добавленные и потяните за нижний правый угол выделения вниз, тем самым заполнив все нужные ячейки.
Заключение
Опция выбора из списка в Excel довольно полезна, это можно было понять из всего вышесказанного. Но куда важнее то, что для ее создания не требуется обладать глубокими знаниями в использовании табличного процессора. Тем более есть даже три способа реализации данной функции, а с помощью описанных инструкций у вас не должно возникнуть особых проблем при их выполнении.
Option Explicit Option Compare Text Dim bu As Boolean Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.CountLarge > 1 Then Exit Sub If Target.Row = 1 Then Me.TextBox1.Visible = False: Me.ListBox1.Visible = False: Exit Sub If Target.Column = 3 Then " номер столбца, в который вносим значения bu = True With Me.TextBox1 .Top = Target.Top: .Text = Target.Value: .Activate End With With Me.ListBox1 .Top = Target.Top + 5 If (.Top + .Height + ActiveWindow.PointsToScreenPixelsY(0) * Application.InchesToPoints(1) * 15 / 1440) > _ (ActiveWindow.Application.Height + ActiveWindow.Application.Top) Then _ .Top = .Top - .Height + Target.Height "* ActiveWindow.Zoom / 100 .Clear End With bu = False Me.TextBox1.Visible = True: Me.ListBox1.Visible = True Else Me.TextBox1.Visible = False: Me.ListBox1.Visible = False End If End Sub Private Sub TextBox1_Change() If Len(TextBox1.Text) = 0 Or bu Then Exit Sub "при отсутствии символов для поиска - выход Dim x, i As Long, txt As String, lt As Long, s As String txt = TextBox1.Text: lt = Len(TextBox1.Text) "Где ищем значения x = Sheets("номенклатура";).Columns(1).SpecialCells(2).Offset(1).Value " For i = 1 To UBound(x, 1) " поиск по первым буквам "If txt = Mid(x(i, 1), 1, lt) Then s = s & x(i, 1) & "~" For i = 1 To UBound(x, 1) "поиск по любому вхождению If InStr(x(i, 1), txt) Then s = s & "~" & x(i, 1) Next i ListBox1.List = Split(s, "~";) End Sub Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) If KeyCode = 13 Or KeyCode = 9 Then With Me.TextBox1 ActiveCell.Value = .Value .Visible = False: ListBox1.Visible = False End With ActiveCell(2, 1).Select End If End Sub Private Sub ListBox1_Click() If ListBox1.ListIndex = -1 Then Exit Sub Application.EnableEvents = False bu = True With Me.ListBox1 ActiveCell.Value = .Value Me.TextBox1.Text = .Value Me.TextBox1.Visible = False: .Visible = False End With Application.EnableEvents = True bu = False End Sub Private Sub Worksheet_Change(ByVal Target As Range) Dim lReply As Long If Target.Column = 2 Then Exit Sub If Not Intersect(Target, Range("C2:C100000";)) Is Nothing Then If IsEmpty(Target) Then Exit Sub If WorksheetFunction.CountIf(Sheets("номенклатура";).Columns(1), Target) = 0 Then lReply = MsgBox("Добавить введенное имя " & Target & " в выпадающий список", vbYesNo + vbQuestion) If lReply = vbYes Then Worksheets("номенклатура";).Range("номенклатура";).Cells(Worksheets("номенклатура";).Range("номенклатура";).Rows.Count + 1, 1) = Target End If End If End If Sheets("номенклатура";).Range("номенклатура";).Sort Key1:=Sheets("номенклатура";).Range("A1";), Order1:=xlAscending, Header:=xlGuess, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _ DataOption1:=xlSortNormal "этот код и поможет отсортировать в алфавитном порядке" End Sub