Как сделать выпадающий список в таблице в Excel или Calc.
Пример подобного списка:
Понятно, что в этой клинике зубы вырывают только «пакетным» способом, или по 10, или по 20, или сразу по 30, но никак не по 11 или 27?!
Еще бы.
Простейший способ
Подходит, когда будущий список содержит ограниченное количество вариантов. Например,
- Да
- Хз
- Нет
Excel
Пишем на листе короткий список пациентов. Хватает даже одного – «Иван».
Выделяем ячейку справа от «Ивана» (как на картинке), и выбираем пункты меню Data > Validation > Allow: List > Source.
Пункты «Data» и «Validation» в русскоязычных версиях называются «Данные» и «Проверка»
В поле ‘Source’ вписываем это:
Да;Хз;Нет
Пояснение: это значения выпадающего списка. Если нужно что-то добавить, учитываем, что все значения разделяются через точку с запятой.
Внимание!
В зависимости от некоторых настроек Excel по-умолчанию, бывает, что разделителем является не точка с запятой (;), а простая запятая – (,). Еще не могу сказать точно, где это настраивается, поэтому пробуем оба варианта.
Итак, контора пишет:
Результат
Копируем эту ячейку as is (просто курсор находится «на ячейке», жмем Ctrl+C) повсюду, куда нам нужно (ставим курсор, куда нужно, и жмем Ctrl+V). Можно скопировать даже в другой файл Excel или на другой лист.
Чтобы ячейки всей колонки показывали выпадающий список, можно вставить эту ячейку со списком напротив пациента «Иван», и ухватив курсором ее нижний правый край, не отпуская левую кнопку, потянуть ее «вниз». Весь диапазон заполнится копиями нашей «ячейки со списком».
Итого:
Calc
Все то же самое, выбираем пункты меню Data > Validity… > Allow: List > Entries.
Вписываем по одному значению на строку
- Да
- Хз
- Нет
А теперь предположим, что бухгалтерия уже две недели шурует с этим файлом, и вдруг требует вставить им еще и варианты «Может быть» и «Частично»…
Простейший способ
Excel
Ставим курсор на ячейку, в которой содержится наш список, и снова взываем к ее редактированию (Data > Validation > Allow: List > Source).
Редактируем список. Но не используем клавиши «влево – вправо». Почему – просто попробуй, поймешь.
Обязательно жмакаем опцию «Apply these changes to all others cells with same range». Это объяснит Excel, что внесенные изменения относятся ко всем ячейкам, которые содержат редактируемыми нами список.
[Ок].
Calc
Надо выбрать все ячейки, в которых находится наш список, снова пройти по Data > Validity… > Allow: List > Entries и изменить значения.
Мудрейший способ
Делаем ссылку на отдельно хранящийся список.
Excel
Пишем на листе короткий список пациентов. Хватает даже одного – «Иван».
На том же листе, где-то в верхних (чтобы поближе было) ячейках следует расписать опции будущих выпадающих списков.
Пример:
- ячейка А1 – Да
- ячейка В1 – Хз
- ячейка С1 – Нет
- ячейка D1 – Может быть
Переходим к списку пациентов, выделяем первую ячейку в колонке «Заплатил?» (справа от «Ивана»). Ставим курсор туда, где должна будет начинаться будущая колонка с ячейками, которые содержат выпадающий список. В нашем случае – это колонка «Заплатил?» напротив ячейки со значением «Иван».
Выбираем пункты меню Data > Validation > Allow: List > Source.
Пункты «Data» и «Validation» в русскоязычных версиях называются «Данные» и «Проверка»
В поле ‘Source’ вписываем это:
=$A$1:$C$1
или это
=A1:C1
Или ничего не вписываем, а просто кликаем на квадрат, который находится в правом краю поля Source. Окно превратится в узкую полоску. Мы не пугаемся, а курсором выделяем на листе диапазон ячеек, из которых потом будут взяты данные: A1, B1, C1, D1, E1, F1, G1, и тд, если нужно. Можно даже выделять пустые ячейки, рассчитывая заполнить их позже (мало ли что бухгалтерия придумает).
В процессе этого выделения ячеек поле Source будет заполняться самостоятельно.
По-умолчанию Excel запишет выделенный пользователем диапазон через знак «$» – он указывает, что строго-настрого нужна именно эта ячейка, брать данные только из нее, чтобы ни случилось.
Если указать просто =A1:C1, то при изменении расположения ячеек на листе (что часто бывает) Excel будет считать, что адрес указанного диапазона может быть изменен.
Дальше все то же – при наведении курсора на ячейку с выпадающим списком появляется особый указатель. Пользуемся.
Чтобы ее «размножить» – хватаем за угол и тянем вниз… Или копируем куда-нибудь в другое место на листе.
Calc
Почти то же самое, но выбираем пункты меню Data > Validity… > Allow: Cell Range > Source.
Нужно указывать диапазон руками: $A$1:$C$1, к примеру. Замечу – без знака «=«.
Кстати
Можно организовать этот список в «реальный» список на языке табличного редактора.
Собственно, шаг необязательный, из разряда «Заголовок следует обрамлять тэгом <H1>, но можно и «неформально» обрамить его тэгом <span style=»font-size: 22px;> – и покажи мне разницу…«, но имеет место бывать.
- Выделите ячейки с данными, которые должны попасть в выпадающий список (например, наименованиями товаров).
- Выберите в меню Вставка – Имя – Присвоить (Insert – Name – Define) и введите имя (можно любое, но обязательно без пробелов!) для выделенного диапазона (например Товары). Нажмите ОК.
- Выделите ячейки (можно сразу несколько), в которых хотите получить выпадающий список и выберите в меню «Данные – Проверка» (Data – Validation). На первой вкладке «Параметры» из выпадающего списка «Тип данных» выберите вариант «Список» и введите в строчку «Источник» знак равно и имя диапазона (т.е. =Товары).
Можно сделать и так:
В любом случае списку должно быть присвоено уникальное имя.
Почему это круто: список «Товары» можно будет потом произвольно увеличивать или уменьшать. Табличный редактор будет учитывать не определенные ячейки, расположенные в определенном месте, а список as is. И все изменения в списке будут распространяться на все ячейки, которые «проверяют его для создания выпадающих списков».
Горячие клавиши
Курсор стоит на ячейке с выпадающим списком.
Excel
Alt+Down arrow.
То есть, Alt+стрелка «вниз».
Calc
По-умолчанию не установлено.
В справке написано Ctrl+D, но в справке баг (увы).
Поэтому назначаем лично:
- Tools > Customize > Keyboard > Shortcut Keys
- Проскроллить и выбрать желаемое сочетание клавиш для открытия существующего списка. Я выбрал Ctrl+Down. Внимание, Alt+Down недоступно (вообще все сочетания с Alt тут недоступны для редактирования).
- В Functions > Category выбрать Edit.
- В Functions > Function выбрать Selection List.
- Нажать на кнопку Modify.
Дополнение
Всякие другие волшебства на тему выпадающих списков см. на Planeta Excel. Особенно «Ссылки по теме«.










Спасибо большое. Эта тема очень актуальна и в справке мелкосовта выплывает после получаса ковыряния, да и то в общих чертах, а в гугле – на третьей странице. Это именно то, что мне нужно.
Отдельное спасибо за рисунки-скриншоты!
Алексей, подскжите, пожалуйста, можно ли как-то сделать, чтобы в нужной ячейке оказался выпадающий список, в котором будут только уникальные записи из некой колонки?
Решение нашел сам автор вопроса.
Дано:
1. Вася
2. Петя
3. Вася
4. Коля
5. Маша
6. Коля
Нужен список:
1. Вася
2. Петя
3. Коля
4. Маша
Нашел тут http://www.get-digital-help.com/2009/03/30/how-to-extract-a-unique-list-and-the-duplicates-in-excel-from-one-column/ формулу для автоматического составления уникального ряда
Для русской версии Excel формула должна быть такая:
=ЕСЛИОШИБКА(ИНДЕКС(ИмяИсходногоНабора;ПОИСКПОЗ(0;СЧЁТЕСЛИ($B$1:B1;ИмяИсходногоНабора);0));»")
Потом я создаю выпадающий список на основе этого ряда.
Доброго времени суток!
Внимательнейше прочитал весь материал. Спасибо большое, все более-менее понятно и опробовано.
Вопрос. Как в О_о задать связь между выпадающим списком и его неким значением? Ну, например, у меня есть выпадающий список :
Вася
Коля
Петя
Саша.
У Васи вес 56 кг, у Коли 68, у Пети 94, у Саши 72. И если я выбираю в выпадающем списке Васю, у меня, скажем в ячейке рядом, должно вывалиться 56 кило.
Заранее благодарен.
С уважением.
В Excel это делается так.
Там почти под заголовком записи есть линк «Скачать пример». В нем надо выбрать значение в ячейке F4, и в ячейке F5 подгружается список, который относится к выбранной опции в F4.
Открыл указанный пример в O_o – функция работает адекватно. Только при смене значений в F4 в О_о не обновляется автоматически значение ячейки F5.
Посмотрел. В О_о несколько не так, но мысль дали. Буду пробовать, если получится – отпишусь.
С уважением.
Доброго времени суток!
Делюсь, как обещал. Несколько кривовато в О_о это все организовано, но ладно…
Итак, мы имеем таблицу:
Имя Вес
Вася 50
Петя 48
Жора 72
Григорий 101
То есть нам нужно выбрать имя – а в соседнем окошечке появляется вес искомого гражданина.
1. Выпадающий список я организовал может несколько сложно, но мне показалось это более удобным… Выделяем столбец имен без заголовка, то есть именно имена… Вот тафтологизм получился %) . Затем идем Данные-Определить диапазон. И назначаем имя для нашего столбца – например – Имена1. Далее (кстати описанный метод работает не только на текущей странице – я выпадающий список вынес на титульный лист а лист с таблицей спрятал – так изящнее) ставим курсор в необходимую нам ячейку и идем Данные-Проверка. В меню «допустимый тип данных» выбираем «диапазон ячеек». Набираем – Имена1. Все, вуаля, выпадающий список у нас появился.
2. Далее несколько корявее. Воспользуемся функцией базы данных DGET. Я убил примерно полчаса, чтобы разобраться с ней – ну очень криво реализована. Для начала, придется продублировать заголовки столбцов исходной таблицы с именами и весами, причем абсолютно точно, иначе не работает. То есть над нашим выпадающим списком пишем – Имя, над соседней клеточкой, в которой будет выводиться вес, пишем – Вес. Это обусловлено синтаксисом функции, может у кого получится по другому, у меня не вышло нифига. Теперь начинаем священнодействовать. Собственно в ячейку, куда должен вес выводиться, забиваем функцию DGET. Следующим образом:
=DGET(Диапазон исходной таблицы, то есть тупо полностью выделяем исходную таблицу вместе с заголовками; «Вес» – в кавычках забиваем заголовок столбца, который будем выводить, в нашем случае действительно – Вес; а здесь должны быть выделены скопом следующие ячейки – те, где мы сверху подписывали Имя и Вес, ячейка с нашим выпадающим списком и ячейка, куда этот вес должен быть записан, то есть та, где мы сейчас функцию DGET набираем.) Скобка закрыта.
Блин, написал, перечитал, решил показать точно с циферками, на примере одной страницы.
A B
1 Имя Вес
2 Вася 50
3 Петя 48
4 Жора 72
5 Григорий 101
6
7
8 Имя Вес
9 Тут выпадает список Тут пишем =DGET(A1:B5; «Вес»; A8:B9)
Все, должно работать.
С уваженим.
Отлично!
Если вы пришлете мне файл с работающим примером, я его тут опубликую. Все будет проще.
Ага, хорошо, сделаю, в среду наверное – понедельник навалился как-то резко, вторник будет не лучше.
Огромное спасибо Андрей за подробное описание такой ВОЗМОЖНОСТИ автоматического изменения значения соседней ячейки при выборе из списка. Я долго искал описание и нашел!!! Хочу внести комментарии в Ваше подробное описание.
1. функция DGET() в русском написании выглядит как БИЗВЛЕЧЬ().
2. Проверил в своем Excel 2007 ваш пример, но в последенй строке «9 Тут выпадает список Тут пишем =DGET(A1:B5; «Вес»; A8:B9)» возникает циклическая ошибка. Нужно исправить диапазон в третьем секторе с «A8:B9″ на «A8:A9″ и все будет работать.
Еще раз благодарю за описание!!!!
Ага… Замечательно, спасибо взаимно, сделаю второй вариант своей разработки теперь под эксель.
ЗЫ. Алексей предложил выложить файл с примером – если не затруднит, сделайте для экселя.