Выпадающий список с чекбоксами excel

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

Используйте поле списка для создания раскрывающегося списка с несколькими флажками
A: Создайте список с исходными данными
B: Назовите ячейку, в которой вы будете размещать выбранные элементы
C: вставить форму, чтобы помочь вывести выбранные элементы
Легко создавайте раскрывающийся список с флажками с помощью замечательного инструмента
Дополнительные руководства для раскрывающегося списка …


Используйте поле списка для создания раскрывающегося списка с несколькими флажками

Как показано на скриншоте ниже, на текущем листе все имена в диапазоне A2: A11 будут исходными данными для списка. При нажатии на кнопку в ячейке C4 можно вывести выбранные элементы, и все выбранные элементы в списке будут отображаться в ячейке E4. Для этого сделайте следующее.

A. Создайте список с исходными данными

1. Нажмите Застройщик > Вставить > Список (Active X Control). Смотрите скриншот:

2. Нарисуйте список на текущем листе, щелкните его правой кнопкой мыши и выберите Предложения из контекстного меню.

3. в Предложения диалоговое окно необходимо настроить следующим образом.

  • 3.1 В ListFillRange введите диапазон источников, который будет отображаться в списке (здесь я ввожу диапазон A2: A11);
  • 3.2 В Стиль списка выберите 1 — вариант стиля fmList;
  • 3.3 В Выбор из нескольких вариантов выберите 1 — fmMultiSelectMulti;
  • 3.4 Закройте Предложения диалоговое окно. Смотрите скриншот:

B: Назовите ячейку, в которой вы будете размещать выбранные элементы

Если вам нужно вывести все выбранные элементы в указанную ячейку, например E4, сделайте следующее.

1. Выберите ячейку E4, введите ЛистбоксВывод в Имя Box и нажмите Enter .

C. Вставьте форму, чтобы помочь вывести выбранные элементы

1. Нажмите Вставить > Формы > Прямоугольник. Смотрите скриншот:

2. Нарисуйте прямоугольник на листе (здесь я рисую прямоугольник в ячейке C4). Затем щелкните прямоугольник правой кнопкой мыши и выберите Назначить макрос из контекстного меню.

3. в Назначить макрос диалогового окна, нажмите Новинки кнопку.

4. В дебюте Microsoft Visual Basic для приложений окна, замените исходный код в Модули окно с приведенным ниже кодом VBA.

Код VBA: создать список с несколькими флажками

Sub Rectangle1_Click()
'Updated by Extendoffice 20200730
Dim xSelShp As Shape, xSelLst As Variant, I, J As Integer
Dim xV As String
Set xSelShp = ActiveSheet.Shapes(Application.Caller)
Set xLstBox = ActiveSheet.ListBox1
If xLstBox.Visible = False Then
    xLstBox.Visible = True
    xSelShp.TextFrame2.TextRange.Characters.Text = "Pickup Options"
    xStr = ""
    xStr = Range("ListBoxOutput").Value
    
    If xStr <> "" Then
         xArr = Split(xStr, ";")
    For I = xLstBox.ListCount - 1 To 0 Step -1
        xV = xLstBox.List(I)
        For J = 0 To UBound(xArr)
            If xArr(J) = xV Then
              xLstBox.Selected(I) = True
              Exit For
            End If
        Next
    Next I
    End If
Else
    xLstBox.Visible = False
    xSelShp.TextFrame2.TextRange.Characters.Text = "Select Options"
    For I = xLstBox.ListCount - 1 To 0 Step -1
        If xLstBox.Selected(I) = True Then
        xSelLst = xLstBox.List(I) & ";" & xSelLst
        End If
    Next I
    If xSelLst <> "" Then
        Range("ListBoxOutput") = Mid(xSelLst, 1, Len(xSelLst) - 1)
    Else
        Range("ListBoxOutput") = ""
    End If
End If
End Sub

Примечание: В коде Прямоугольник1 имя формы; СписокBox1 это имя списка; Выберите параметры и Варианты получения отображаемые тексты фигуры; и ЛистбоксВывод — имя диапазона выходной ячейки. Вы можете изменить их в зависимости от ваших потребностей.

5. Нажмите другой + Q клавиши одновременно, чтобы закрыть Microsoft Visual Basic для приложений окно.

6. Нажмите кнопку прямоугольника, чтобы свернуть или развернуть список. Когда поле списка расширяется, отметьте элементы в поле списка, а затем снова щелкните прямоугольник, чтобы вывести все выбранные элементы в ячейку E4. См. Демонстрацию ниже:

7. Затем сохраните книгу как Книга Excel MacroEnable для повторного использования кода в будущем.


Создавайте раскрывающийся список с флажками с помощью замечательного инструмента

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

1. Откройте лист, в котором установлен раскрывающийся список проверки данных, щелкните Кутулс > Раскрывающийся список > Раскрывающийся список с флажками > Настройки. Смотрите скриншот:

2. в Раскрывающийся список с флажками Настройки диалоговое окно, настройте следующим образом.

  • 2.1). Обращаться к в разделе укажите область применения, в которой вы будете создавать флажки для элементов в раскрывающемся списке. Вы можете указать определенный диапазон, текущий рабочий лист, текущая рабочая тетрадь or все открытые книги в зависимости от потребностей.
  • 2.2). режим раздел выберите стиль, в котором вы хотите выводить выбранные элементы;
  • Вот берет Изменить в качестве примера, если вы выберете этот вариант, значение ячейки будет изменено в зависимости от выбранных элементов.
  • 2.3). Разделитель поле введите разделитель, который вы будете использовать для разделения нескольких элементов;
  • 2.4). Направление текста раздел выберите направление текста в зависимости от ваших потребностей;
  • 2.5) Нажмите OK кнопку.

3. Последний шаг, нажмите Кутулс > Раскрывающийся список > Раскрывающийся список с флажками > Включить раскрывающийся список флажков чтобы активировать эту функцию.

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

Для получения дополнительных сведений об этой функции, пожалуйста, посетите здесь.

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


Статьи по теме:

Автозаполнение при вводе текста в раскрывающемся списке Excel
Если у вас есть раскрывающийся список проверки данных с большими значениями, вам нужно прокрутить список вниз только для того, чтобы найти нужное, или введите все слово напрямую в поле списка. Если есть способ разрешить автозаполнение при вводе первой буквы в выпадающем списке, все станет проще. В этом руководстве представлен метод решения проблемы.

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

Создайте раскрывающийся список с возможностью поиска в Excel
Для раскрывающегося списка с многочисленными значениями найти подходящий — непростая задача. Ранее мы ввели метод автоматического заполнения раскрывающегося списка при вводе первой буквы в раскрывающемся списке. Помимо функции автозаполнения, вы также можете сделать раскрывающийся список доступным для поиска для повышения эффективности работы при поиске правильных значений в раскрывающемся списке. Чтобы сделать раскрывающийся список доступным для поиска, попробуйте метод, описанный в этом руководстве.

Автоматическое заполнение других ячеек при выборе значений в раскрывающемся списке Excel
Допустим, вы создали раскрывающийся список на основе значений в диапазоне ячеек B8: B14. При выборе любого значения в раскрывающемся списке необходимо, чтобы соответствующие значения в диапазоне ячеек C8: C14 автоматически заполнялись в выбранной ячейке. Для решения проблемы методы, описанные в этом руководстве, окажут вам услугу.

Дополнительные руководства для раскрывающегося списка …


Лучшие инструменты для работы в офисе

Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%

  • Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
  • Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон
  • Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны
  • Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
  • Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
  • Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии
  • Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
  • Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF
  • Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.

вкладка kte 201905


Вкладка Office: интерфейс с вкладками в Office и упрощение работы

  • Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
  • Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
  • Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!

офисный дно

 

iskatel

Пользователь

Сообщений: 14
Регистрация: 31.07.2015

Добрый вечер!

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

http://www.planetaexcel.ru/techniques/1/181/

Большое спасибо!

з.ы. файл исходник прилагаю!  

Изменено: iskatel01.08.2015 00:13:30

 

Юрий М

Модератор

Сообщений: 60577
Регистрация: 14.09.2012

Контакты см. в профиле

Совсем недавно

тема

была.

 

iskatel

Пользователь

Сообщений: 14
Регистрация: 31.07.2015

по первому пункту:
— при выборе значений, они должны записыватся в одну ячейку и через запятую «,»
по втрому пункту
— выбранное значение должно записываться в конце содержимого ячейки

С уважением

Изменено: iskatel01.08.2015 00:25:10

 

Юрий М

Модератор

Сообщений: 60577
Регистрация: 14.09.2012

Контакты см. в профиле

Чем второй пункт отличается от первого и где эти пункты? Записать в одну ячейку не проблема. Но в какую? Я про свой файл-пример говорю )

 

iskatel

Пользователь

Сообщений: 14
Регистрация: 31.07.2015

Юрий, признаться честно, если бы для меня была это не проблема, я бы не обращался за помощью)

Изменено: iskatel31.07.2015 23:57:18

 

Юрий М

Модератор

Сообщений: 60577
Регистрация: 14.09.2012

Контакты см. в профиле

Так я и пытаюсь помочь ) Но мне непонятно — про какие пункты Вы говорите — где эти пункты? В какую ячейку должны собираться данные?  

 

iskatel

Пользователь

Сообщений: 14
Регистрация: 31.07.2015

т.е. если я поставил курсор на любую ячейку в столбце «С», например «С4» то чтобы вылезло окно с чекбоксами, я выбрал какие нужно категории, и они прописались в эту же ячейку, через запятую (я вроде тут —

https://yadi.sk/i/TDTeSOmLiCvGV

так и пояснил). Спасибо!    

Изменено: iskatel31.07.2015 23:57:34

 

Юрий М

Модератор

Сообщений: 60577
Регистрация: 14.09.2012

Контакты см. в профиле

iskatel, Вы заметили, что я отвечаю Вам без цитирования? Понятно, к кому я обращаюсь и на какие вопросы я отвечаю? А зачем Вы цитируете меня? Исправьте свои сообщения. А я пока набросаю пример.

 

iskatel

Пользователь

Сообщений: 14
Регистрация: 31.07.2015

Юрий М, ок, спасибо! а по поводу цитирования, то привычка форумная)

 

Юрий М

Модератор

Сообщений: 60577
Регистрация: 14.09.2012

Контакты см. в профиле

 

iskatel

Пользователь

Сообщений: 14
Регистрация: 31.07.2015

Все верно, а как чтобы на одном листе выполнялось два таких макроса, т.е. мне в ячейке «С» нужно сделать выбор «Категории» а в ячейке «Е» добавить выбранную строку в чекбоксе (в конце содержимого текущей ячейки)
вот если можно в моем файле, пожалуйста

и можно сделать выбор в ячейке «С» без кнопки «Записать», а просто поставил чекбоксы и потом курсор на любую ячейку и он сохраняет

Изменено: iskatel01.08.2015 00:25:35

 

Юрий М

Модератор

Сообщений: 60577
Регистрация: 14.09.2012

Контакты см. в профиле

Чтобы список (один и тот же) применялся к двум столбцам, нужно в  макросе изменить контролируемый диапазон (правый клик по ярлычку листа — исходный текст). Если выпадающие списки для столбцов разные — нужно рисовать второй ЛистБокс.
Можно и без кнопки, если на неё трудно нажимать)) Но сейчас я исчезаю — завтра на суточное дежурство. Подождите — может кто и доделает… Но лучше самому попробовать — пригодится в жизни.  ))

 

iskatel

Пользователь

Сообщений: 14
Регистрация: 31.07.2015

Юрий М,
надеюсь с выбором в ячейке «С» разберусь , но как быть с ячейкой «Е» в которой будет идти текст, а после нажатия кнопки «Состав» чтобы появлялись чекбоксы, происходил выбор и данный вобор добавлялся в конец содержимого текущей ячейки, как показано на картинке.

Юрий, буду рад вашей помощи завтра! Спасибо!

 

Юрий М

Модератор

Сообщений: 60577
Регистрация: 14.09.2012

Контакты см. в профиле

Сделайте МАЛЕНЬКИЙ пример на основе моего файла и поясните, откуда брать данные для второго списка.
И ещё — нужна ли кнопка «Состав», или делать аналогично — по активации ячейки?

 

iskatel

Пользователь

Сообщений: 14
Регистрация: 31.07.2015

Юрий М,
Юрий М,
Пример файла можно взять выше. Для второго списка данных будет не много, там можно на втором листе перечислять этих пять составов и все, и вот во втором списке нужна будет кнопка, потому что сначала вручную будет писаться текст, и когда нужно будет в эту ячейку дописать состав, то нужно нажать на кнопку Состав, выбрать и потом кликнуть на любое место чтобы добавилось

 

Юрий М

Модератор

Сообщений: 60577
Регистрация: 14.09.2012

Контакты см. в профиле

#16

01.08.2015 19:34:07

Цитата
Юрий М написал: Сделайте МАЛЕНЬКИЙ пример на основе моего файл

и создайте тот самый перечень данных.

 

iskatel

Пользователь

Сообщений: 14
Регистрация: 31.07.2015

Юрий М,  не могу понять смысл создавать еще один файл? когда я его уже два раза прикреплял, в нем указан перечень данных. я ведь вроде все описал в скриншоте

сообщение №1

— открыл ваш файл, вписал туда текст (в вашем случае там было указано «Значение 1», я указал «Другой текст») не могу понять правда зачем, какая разница какое слово там будет?!

ну и еще раз перепишу сообщение которые было выше:
— для первого списка кнопка «Записать» не нужна

— «Для второго списка данных будет не много, там можно на втором листе перечислять этих пять составов и все, во втором списке нужна будет кнопка, потому что сначала вручную будет писаться текст в ячейку, и когда нужно будет в эту ячейку дописать состав, то нужно нажать на кнопку Состав, выбрать, и потом кликнуть на любое место чтобы добавилось»

Сам перечень данных (Категории, Состав) я разместил на втором листе (Лист2), т.е. там должны находится исх.данные, а на первом листе уже сами результаты.

Спасибо!

Изменено: iskatel02.08.2015 15:16:42

 

Юрий М

Модератор

Сообщений: 60577
Регистрация: 14.09.2012

Контакты см. в профиле

#18

02.08.2015 21:10:25

Цитата
iskatel написал:
не могу понять смысл создавать еще один файл? <…> я ведь вроде все описал в скриншоте сообщение №1

Не должен я готовить данные — переписывать с рисунка в таблицу. Это Вы должны сделать.

Цитата
iskatel написал:
Сам перечень данных (Категории, Состав) я разместил на втором листе

Нет на втором листе списка «Состав».

 

iskatel

Пользователь

Сообщений: 14
Регистрация: 31.07.2015

Юрий М,
Я сразу не так понял вас. я думал что вы не знаете какой текст (исходные данные) должны быть, это на самом деле не важно какие там слова буду.

Извинись, действительно на втором листе «Составы» не указал, получается при сохранении не нажал сохранить.

прик. новый

 

Юрий М

Модератор

Сообщений: 60577
Регистрация: 14.09.2012

Контакты см. в профиле

 

iskatel

Пользователь

Сообщений: 14
Регистрация: 31.07.2015

Юрий М,
Спасибо! Практически то что нужно, есть пару нюансов которые ни как не могу исправить, вообщем снова сделал скриншот

и еще вопросик: можно в столбце «Размер» сделать так же как в столбце «Категории»

Спасибо!

Изменено: iskatel04.08.2015 12:09:43

 

Юрий М

Модератор

Сообщений: 60577
Регистрация: 14.09.2012

Контакты см. в профиле

1. Отображение/скрытие первого и второго ЛистБоксов исправил.
2. Про «Размеры» вообще впервые слышу. Да и про второй ЛистБокс изначально ничего не говорилось… Так мы никогда не остановимся — столбцов хватает)) У Вас есть рабочий код — добавляйте по аналогии на лист ещё один контрол (ЛистБокс) и задавайте ему контролируемый диапазон.

 

iskatel

Пользователь

Сообщений: 14
Регистрация: 31.07.2015

#23

04.08.2015 21:02:14

Юрий М, Спасибо за правки, сейчас вроде галочки ставятся сразу.

скажите где в коде указывается чтобы в отображающем списке «Составы» данные брались с «Лист2» ячейки B2:B5 (мне нужно с В2:В15)
я вроде код внимательно просмотрел но там такого нет:

Код
Sub Macro2()
Dim i As Long, x As Long
    With Sheets("Лист1").ListBox2
        For i = 0 To .ListCount - 1
            If .Selected(i) Then
                x = x + 1
                If x = 1 Then
                    Range(Adr) = Range(Adr) & "<br><br>Состав: " & .List(i, 0)
                Else
                    Range(Adr) = Range(Adr) & ", " & .List(i, 0)
                End If
                .Selected(i) = False
            End If
        Next
        Sheets("Лист1").ListBox2.Visible = False
    End With
    If x = 0 Then MsgBox "Не выбрано ни одной позиции. Повторите ввод.", 48, "Ошибка!"
End Sub

Изменено: iskatel04.08.2015 21:02:59

 

Юрий М

Модератор

Сообщений: 60577
Регистрация: 14.09.2012

Контакты см. в профиле

В коде этого нет — задано в свойствах самого ЛистБокса. Или заполнять программно.

 

iskatel

Пользователь

Сообщений: 14
Регистрация: 31.07.2015

Я никак не могу понять какой ЛистБокс и где увидеть его свойства? в интернете пишут все про VBA?

 

Юрий М

Модератор

Сообщений: 60577
Регистрация: 14.09.2012

Контакты см. в профиле

Включите режим конструктора — отобразятся все ЛистБоксы, выделяем нужный и жмём кнопку «Свойства»

 

iskatel

Пользователь

Сообщений: 14
Регистрация: 31.07.2015

Огромное спасибо! Все получилось! ну а вообще как то все запутано в ексле и код сам и сам методы работы vba

 

Jack_Famous

Пользователь

Сообщений: 10848
Регистрация: 07.11.2014

OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome

Юрий М, о посте №10… Здравствуйте! Подскажите, как сделать, чтобы данные вводились при выборе, а не кнопкой с макросом, ну или чтобы кнопка была всегда рядом с активной ячейкой (списки огромные — каждый раз листать вверх очень неудобно…

Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄

 

Юрий М

Модератор

Сообщений: 60577
Регистрация: 14.09.2012

Контакты см. в профиле

Несколько вариантов:
1. Кнопку разместить в закреплённой первой строке — всегда будет перед глазами (самый простой вариант).
2. Саму кнопку отображать рядом с ЛистБоксом (см. код, как это сделано для ЛистБокса).

 

Юрий М

Модератор

Сообщений: 60577
Регистрация: 14.09.2012

Контакты см. в профиле

#30

30.01.2016 13:58:16

А вот и реализация. Обе кнопки выполняют одну и туже функцию. Оставьте нужную. Или обе :-)

Прикрепленные файлы

  • ЛистБокс с мультивыбором 04.xlsm (29.23 КБ)

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

Очень удобный инструмент Excel для проверки введенных данных. Повысить комфорт работы с данными позволяют возможности выпадающих списков: подстановка данных, отображение данных другого листа или файла, наличие функции поиска и зависимости.

Создание раскрывающегося списка

Путь: меню «Данные» — инструмент «Проверка данных» — вкладка «Параметры». Тип данных – «Список».

Создание выпадающего списка.

Ввести значения, из которых будет складываться выпадающий список, можно разными способами:

  1. Вручную через «точку-с-запятой» в поле «Источник».
  2. Ввод значений.

  3. Ввести значения заранее. А в качестве источника указать диапазон ячеек со списком.
  4. Проверка вводимых значений.

  5. Назначить имя для диапазона значений и в поле источник вписать это имя.

Имя диапазона.
Раскрывающийся список.

Любой из вариантов даст такой результат.



Выпадающий список в Excel с подстановкой данных

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

  1. Выделяем диапазон для выпадающего списка. В главном меню находим инструмент «Форматировать как таблицу».
  2. Форматировать как таблицу.

  3. Откроются стили. Выбираем любой. Для решения нашей задачи дизайн не имеет значения. Наличие заголовка (шапки) важно. В нашем примере это ячейка А1 со словом «Деревья». То есть нужно выбрать стиль таблицы со строкой заголовка. Получаем следующий вид диапазона:
  4. Выпадающий список.

  5. Ставим курсор в ячейку, где будет находиться выпадающий список. Открываем параметры инструмента «Проверка данных» (выше описан путь). В поле «Источник» прописываем такую функцию:

Ввод значения в источник.

Протестируем. Вот наша таблица со списком на одном листе:

Список и таблица.

Добавим в таблицу новое значение «елка».

Добавлено значение елка.

Теперь удалим значение «береза».

Удалено значение береза.

Осуществить задуманное нам помогла «умная таблица», которая легка «расширяется», меняется.

Теперь сделаем так, чтобы можно было вводить новые значения прямо в ячейку с этим списком. И данные автоматически добавлялись в диапазон.

Ввод данных из списка.

  1. Сформируем именованный диапазон. Путь: «Формулы» — «Диспетчер имен» — «Создать». Вводим уникальное название диапазона – ОК.
  2. Создание имени.

  3. Создаем раскрывающийся список в любой ячейке. Как это сделать, уже известно. Источник – имя диапазона: =деревья.
  4. Снимаем галочки на вкладках «Сообщение для ввода», «Сообщение об ошибке». Если этого не сделать, Excel не позволит нам вводить новые значения.
  5. Сообщение об ошибке.

  6. Вызываем редактор Visual Basic. Для этого щелкаем правой кнопкой мыши по названию листа и переходим по вкладке «Исходный текст». Либо одновременно нажимаем клавиши Alt + F11. Копируем код (только вставьте свои параметры).
  7. Private Sub Worksheet_Change(ByVal Target As Range)
     
    Dim lReply As Long
     
        If Target.Cells.Count > 1 Then Exit Sub
        If Target.Address = "$C$2" Then
         If IsEmpty(Target) Then Exit Sub
           If WorksheetFunction.CountIf(Range("Деревья"), Target) = 0 Then
              lReply = MsgBox("Добавить введенное имя " & _
                             Target & " в выпадающий список?", vbYesNo + vbQuestion)
              If lReply = vbYes Then
                  Range("Деревья").Cells(Range("Деревья").Rows.Count + 1, 1) = Target
              End If
           End If
         End If
    End Sub
     
  8. Сохраняем, установив тип файла «с поддержкой макросов».
  9. Сообщение об ошибке.

  10. Переходим на лист со списком. Вкладка «Разработчик» — «Код» — «Макросы». Сочетание клавиш для быстрого вызова – Alt + F8. Выбираем нужное имя. Нажимаем «Выполнить».

Макрос.

Когда мы введем в пустую ячейку выпадающего списка новое наименование, появится сообщение: «Добавить введенное имя баобаб в выпадающий список?».

Нажмем «Да» и добавиться еще одна строка со значением «баобаб».

Выпадающий список в Excel с данными с другого листа/файла

Когда значения для выпадающего списка расположены на другом листе или в другой книге, стандартный способ не работает. Решить задачу можно с помощью функции ДВССЫЛ: она сформирует правильную ссылку на внешний источник информации.

  1. Делаем активной ячейку, куда хотим поместить раскрывающийся список.
  2. Открываем параметры проверки данных. В поле «Источник» вводим формулу: =ДВССЫЛ(“[Список1.xlsx]Лист1!$A$1:$A$9”).

Имя файла, из которого берется информация для списка, заключено в квадратные скобки. Этот файл должен быть открыт. Если книга с нужными значениями находится в другой папке, нужно указывать путь полностью.

Как сделать зависимые выпадающие списки

Возьмем три именованных диапазона:

Три именованных диапазона.

Это обязательное условие. Выше описано, как сделать обычный список именованным диапазоном (с помощью «Диспетчера имен»). Помним, что имя не может содержать пробелов и знаков препинания.

  1. Создадим первый выпадающий список, куда войдут названия диапазонов.
  2. Список диапазонов.

  3. Когда поставили курсор в поле «Источник», переходим на лист и выделяем попеременно нужные ячейки.
  4. Таблица со списком.

  5. Теперь создадим второй раскрывающийся список. В нем должны отражаться те слова, которые соответствуют выбранному в первом списке названию. Если «Деревья», то «граб», «дуб» и т.д. Вводим в поле «Источник» функцию вида =ДВССЫЛ(E3). E3 – ячейка с именем первого диапазона.
  6. Второй раскрывающийся список.

    Выбор нескольких значений из выпадающего списка Excel

    Бывает, когда из раскрывающегося списка необходимо выбрать сразу несколько элементов. Рассмотрим пути реализации задачи.

    1. Создаем стандартный список с помощью инструмента «Проверка данных». Добавляем в исходный код листа готовый макрос. Как это делать, описано выше. С его помощью справа от выпадающего списка будут добавляться выбранные значения.
    2. Private Sub Worksheet_Change(ByVal Target As Range)
          On Error Resume Next
          If Not Intersect(Target, Range("Е2:Е9")) Is Nothing And Target.Cells.Count = 1 Then
              Application.EnableEvents = False
              If Len(Target.Offset(0, 1)) = 0 Then
                  Target.Offset(0, 1) = Target
              Else
                  Target.End(xlToRight).Offset(0, 1) = Target
              End If
              Target.ClearContents
              Application.EnableEvents = True
          End If
      End Sub
       
    3. Чтобы выбранные значения показывались снизу, вставляем другой код обработчика.
    4. Private Sub Worksheet_Change(ByVal Target As Range)
          On Error Resume Next
          If Not Intersect(Target, Range("Н2:К2")) Is Nothing And Target.Cells.Count = 1 Then
              Application.EnableEvents = False
              If Len(Target.Offset(1, 0)) = 0 Then
                  Target.Offset(1, 0) = Target
              Else
                  Target.End(xlDown).Offset(1, 0) = Target
              End If
              Target.ClearContents
              Application.EnableEvents = True
          End If
      End Sub
       
    5. Чтобы выбираемые значения отображались в одной ячейке, разделенные любым знаком препинания, применим такой модуль.

    6. Private Sub Worksheet_Change(ByVal Target As Range)
          On Error Resume Next
          If Not Intersect(Target, Range("C2:C5")) Is Nothing And Target.Cells.Count = 1 Then
              Application.EnableEvents = False
              newVal = Target
              Application.Undo
              oldval = Target
              If Len(oldval) <> 0 And oldval <> newVal Then
                  Target = Target & "," & newVal
              Else
                  Target = newVal
              End If
              If Len(newVal) = 0 Then Target.ClearContents
              Application.EnableEvents = True
          End If
      End Sub

    Не забываем менять диапазоны на «свои». Списки создаем классическим способом. А всю остальную работу будут делать макросы.

    Выпадающий список с поиском

    1. На вкладке «Разработчик» находим инструмент «Вставить» – «ActiveX». Здесь нам нужна кнопка «Поле со списком» (ориентируемся на всплывающие подсказки).
    2. Вставить ActiveX.

    3. Щелкаем по значку – становится активным «Режим конструктора». Рисуем курсором (он становится «крестиком») небольшой прямоугольник – место будущего списка.
    4. Элемент ActiveX.

    5. Жмем «Свойства» – открывается перечень настроек.
    6. Свойства ActiveX.

    7. Вписываем диапазон в строку ListFillRange (руками). Ячейку, куда будет выводиться выбранное значение – в строку LinkedCell. Для изменения шрифта и размера – Font.

    Скачать пример выпадающего списка

    При вводе первых букв с клавиатуры высвечиваются подходящие элементы. И это далеко не все приятные моменты данного инструмента. Здесь можно настраивать визуальное представление информации, указывать в качестве источника сразу два столбца.

Skip to content

5 способов создать выпадающий список в ячейке Excel

Одной из наиболее полезных функций при вводе данных является возможность использовать выпадающий список в Excel. Он позволяет выбирать значение из предварительно определенного перечня и разрешает вводить только те данные, которые соответствуют вашим требованиям. Мы предложим вам несколько простых способов, как создавать выпадающие списки в Excel. Более сложные способы, основанные на динамических диапазонах и использовании данных из других таблиц, мы также рассмотрим.

Зачем нужен выпадающий список?

Часто случается так, что в какой-то из колонок вашей таблицы нужно вводить одинаковые повторяющиеся значения. К примеру, фамилии сотрудников, названия товаров или делать выбор в ячейке Excel вида «да – нет». Что может случиться? Конечно, в первую очередь будут ошибки при вводе. Человеческий фактор ведь никто не отменял. Чем нам сие грозит? К примеру, когда мы решим подсчитать, сколько заказов выполнил каждый из менеджеров, то окажется, что фамилий больше, чем сотрудников. Далее придётся искать ошибки, исправлять их и вновь повторять расчет.

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

Важно то, что вы теперь будете не писать, а выбирать их с помощью мыши или клавиатуры. Это значительно ускоряет работу, а также гарантирует защиту от случайных ошибок. Проверка того, что мы записали в таблицу, теперь уже не нужна.

1 — Самый быстрый способ создать выпадающий список.

Как проще всего добавить выпадающий список в таблицу Excel? Всего один щелчок правой кнопкой мыши по пустой клетке под столбцом с данными, затем команда контекстного меню «Выберите из раскрывающегося списка» (Choose from drop-down list). А можно просто стать в нужное место и нажать сочетание клавиш Alt+стрелка вниз. Появится отсортированный перечень уникальных ранее введенных значений.
Способ не работает, если нашу ячейку и столбец с записями отделяет хотя бы одна пустая строка или вы хотите ввести то, что еще не вводилось выше. На нашем примере это хорошо видно.

простой способ создания

2 — Используем меню.

Давайте рассмотрим небольшой пример, в котором нам нужно постоянно вводить в таблицу одни и те же наименования товаров. Выпишите в столбик данные, которые мы будем использовать (например, названия товаров). В нашем примере — в диапазон G2:G7.

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

Далее в главном меню выберите на вкладке Данные – Проверка… (Data – Validation). Затем укажите пункт Тип данных (Allow) и выберите вариант Список (List). Поставьте курсор в поле Источник (Source) и впишите в него адреса с эталонными значениями элементов — в нашем случае G2:G7. Рекомендуется также использовать здесь абсолютные ссылки (для их установки нажмите клавишу F4).

заполнить через меню

Бонусом здесь идет возможность задать подсказку и сообщение об ошибке, если автоматически вставленное значение вы захотите изменить вручную. Для этого существуют вкладки Подсказка по вводу (Input Message) и Сообщение об ошибке (Error Alert).

В качестве источника значений для выпадающего списка в Excel можно использовать также и именованный диапазон.

создаем из именованного диапазона списки в excel

К примеру, диапазону I2:I13, содержащему названия месяцев, можно присвоить наименование «месяцы». Затем имя можно ввести в поле «Источник».

использование именованного диапазона в выпадающем списке

Кроме того, и источник и в виде обычного диапазона ячеек, и именованный диапазон могут находиться на других листах вашей рабочей книги.

Но вы можете и не использовать диапазоны или ссылки, а просто определить возможные варианты прямо в поле «Источник». К примеру, чтобы реализовать в таблице Excel простейший выбор «да – нет», вы можете вписать туда –

Да;Нет

Используйте для разделения значений точку с запятой, запятую, либо другой символ, установленный у вас в качестве разделителя элементов. (Смотрите Панель управления — Часы и регион — Форматы — Дополнительно — Числа.)

3 — Создаем элемент управления.

Вставим на лист новый объект – элемент управления «Поле со списком» с последующей привязкой его к данным на листе Excel. Делаем:

  1. Откройте вкладку Разработчик (Developer). Если её не видно, то в Excel 2007 нужно нажать кнопку Офис – Параметры – флажок Отображать вкладку Разработчик на ленте (Office Button – Options – Show Developer Tab in the Ribbon) или в версии 2010–2013 и выше щелкните правой кнопкой мыши по ленте, выберите команду Настройка ленты (Customize Ribbon) и включите отображение вкладки Разработчик (Developer) с помощью флажка.
  2. Найдите нужный значок среди элементов управления (см.рисунок ниже).

используем элемент управления

Вставив элемент управления на рабочий лист, щелкните по нему правой кнопкой мышки и выберите в появившемся меню пункт «Формат объекта». Далее указываем диапазон ячеек, в котором записаны допустимые значения для ввода. В поле «Связь с ячейкой» укажем, куда именно поместить результат. Важно учитывать, что этим результатом будет не само значение из указанного нами диапазона, а только его порядковый номер.

получаем в ячейку номер позиции в списке

Но нам ведь нужен не этот номер, а соответствующее ему слово. Используем функцию ИНДЕКС (INDEX в английском варианте). Она позволяет найти в списке значений одно из них соответственно его порядковому номеру. В качестве аргументов ИНДЕКС укажите диапазон ячеек (F5:F11) и адрес с полученным порядковым номером (F2).

Формулу в F3 запишем, как показано на рисунке:

=ИНДЕКС(F5:F11;F2)

Как и в предыдущем способе, здесь возможны ссылки на другие листы, на именованные диапазоны.

Обратите также внимание, что здесь мы не привязаны ни к какой конкретному месту таблицы. Таким списком Excel удобно пользоваться, поскольку его можно свободно «перетаскивать» мышкой в любое удобное место. Для этого на вкладке «Разработчик» нужно активизировать режим конструктора.

4 — Элемент ActiveX

Действуем аналогично предыдущему способу, но выбираем иконку чуть ниже — из раздела «Элементы ActiveX».

элемент ActiveX в раскрывающемся списке

Определяем перечень допустимых значений (1). Обратите внимание, что здесь для показа можно выбирать сразу несколько колонок. Затем выбираем адрес, по которому будет вставлена нужная позиция из перечня (2).Указываем количество столбцов, которые будут использованы как исходные данные (3), и номер столбца, из которого будет происходить выбор для вставки на лист (4). Если укажете номер столбца 2, то в А5 будет вставлена не фамилия, а должность. Можно также указать количество строк, которое будет выведено в перечне. По умолчанию — 8. Остальные можно прокручивать мышкой (5).

Этот способ сложнее предыдущего, но зато возвращает сразу значение, а не его номер. Поэтому необходимость в промежуточной ячейке и обработке ее при помощи ИНДЕКС — отпадает. Думаю, таким списком пользоваться гораздо удобнее.

5 — Выпадающий список в Excel с автозаполнением

Задача: Создать перечень, в который будут автоматически добавляться значения из заданного динамического диапазона. Если в любую ячейку этого диапазона будут внесены изменения, то сразу же изменится и набор предлагаемых к выбору значений. Никакие формулы и настройки здесь корректировать не нужно.

Вот как автозаполнение может выглядеть на простом примере:

автозаполнение

Способ 1. Укажите заведомо большой источник значений для списка.

Самая простая и несложная хитрость. В начале действуем по обычному алгоритму действий: в меню выбираем на вкладке Данные – Проверка … (Data – Validation). Из перечня Тип данных (Allow) выберите вариант Список (List). Поставьте курсор в поле Источник (Source).  Зарезервируем в списке набор с большим запасом: например, до 55-й строки, хотя занято у нас только 7. Обязательно не забудьте поставить галочку в чекбоксе «Игнорировать пустые …». Тогда ваш «резерв» из пустых значений не будет вам мешать.

резервируем данные для списков

Действительно самый простой способ, но не слишком удобный. Ведь зарезервированное место может и закончиться…

Конечно, в качестве источника можно указать и весь столбец:

=$A:$A

Но обработка такого большого количества ячеек может несколько замедлить вычисления. Особенно в больших таблицах Excel.

Способ 2. Применяем именованный диапазон.

Именованный диапазон отличается от обычного тем, что ему присвоено определенное наименование. С ним гораздо проще работать, так как не нужно вводить ссылку, а достаточно просто указать его имя. Давайте рассмотрим небольшой пример.

именованный диапазон в раскрывающихся списках

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

Выделим имеющийся в нашем распоряжении перечень имен A2:A10. Затем присвоим ему название, заполнив поле «Имя», находящееся левее строки формул.

Так вы присвоите какое-то имя этому диапазону Excel.

Создадим в С2 перечень значений. В качестве источника для него укажем выражение

=имя

Недостатком работы с таким выпадающим списком в Excel является то, что новые значения нельзя просто дописывать в конец используемого перечня. Они останутся за пределами именованного диапазона. Если что-то нужно добавить, то их придется вставлять внутрь диапазона, использовав вставку пустой строки.

Перечень ещё можно отсортировать, чтобы удобно было пользоваться.

расширяем именованный диапазон

Главное неудобство пользования таким списком заключается в том, что используемый нами диапазон — статический. Автоматически его размеры измениться не могут. Согласитесь, не слишком удобный и технологичный способ. Слишком много ручных операций.

А теперь давайте пойдем дальше и посмотрим, как можно работать с динамическим диапазоном, который автоматически подстраивается под вводимые значения.

Способ 3. Выпадающий список на основе «умной» таблицы Excel.

Начиная с 2007 года таблица для Excel — уже не просто набор строк и столбцов. Если вы просто расположите показатели с привычном для нас табличном виде, то он не будет считать их таблицей. Существует специальное форматирование, после чего диапазон начинает вести себя как единое целое, приобретая целый ряд интересных свойств. В частности, он начинает сам отслеживать свои размеры, динамически изменяясь при корректировке данных.

Любой набор значений в таблице может быть таким образом преобразован. Например, A1:A8. Выделите их мышкой. Затем преобразуйте в таблицу, используя меню Главная — Форматировать как таблицу (Home — Format as Table). Укажите, что в первой строке у вас находится название столбца. Это будет «шапка» вашей таблицы. Внешний вид может быть любым: это не более чем внешнее оформление и ни на что больше оно не влияет.

Как уже было сказано выше, «умная» таблица хороша для нас тем, что динамически меняет свои размеры при добавлении в нее информации. Если в строку ниже нее вписать что-либо, то она тут же присоединит к себе её. Таким образом, новые значения можно просто дописывать. К примеру, впишите в A9 слово «кокос», и таблица тут же расширится до 9 строк.

Следовательно, автоматическое обновление набора используемой информации в списке можно организовать, если использовать содержимое какого-либо столбца «умной» таблицы.

Осталось только обозначить ее как источник. Проблема заключается в том, что программа в качестве источника в списке не понимает выражение вида

=Таблица1[Столбец1]

и не считает его формулой. Хотя в обычных выражениях на листе вашей рабочей книги это вполне будет работать. Эта конструкция обозначает ссылку на первый столбец. Но в поле «Источник» она почему-то игнорируется.

Чтобы использовать «умную таблицу» как источник, нам придется пойти на небольшую хитрость и воспользоваться функцией ДВССЫЛ (INDIRECT в английском варианте). Эта функция преобразует текстовую переменную в обычную ссылку.

добавляем в ячейку автоматически пополняемые списки

Формула теперь будет выглядеть следующим образом:

=ДВССЫЛ(«Таблица5[Продукт]»)

Таблица5 — имя, автоматически присвоенное «умной таблице». У вас оно может быть другим. На вкладке меню Конструктор (Design) можно изменить стандартное имя на свое (но без пробелов!). По нему мы сможем потом адресоваться к нашей таблице на любом листе книги.

«Продукт» — название нашего первого и единственного столбца, присвоено по его заголовку.

Не забудьте также заключить все выражение в кавычки, чтобы обозначить его как текстовую переменную.

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

Надеемся, вы сможете теперь с помощью списков без ошибок вводить часто повторяющиеся данные в таблицу Excel при помощи выпадающего списка.

А вот еще полезная для вас информация:

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

Выпадающий список, с автозаполнением чекбоксов.

Proliant

Дата: Понедельник, 11.11.2013, 14:01 |
Сообщение № 1

Группа: Пользователи

Ранг: Прохожий

Сообщений: 9


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Уважаемые форумчане! Подскажите, пожалуйста, как связать в Excel элементы выпадающего списка с пустыми чекбоксами? В моем случае, в Excel имеется: 1. выпадающий список с перечнем отделов фирмы; 2. выпадающий список с перечнем должностей фирмы, доступных для каждого отдела; 3. в ячейках списком — перечень всех прав доступа, доступных в компании; 4. напротив каждого права доступа — пустой чекбокс. Необходимо, чтобы: 1. при выборе из списка одного из отделов, во втором списке отображались только должности, соответствующие этому отделу; 2. при выборе должности, отмечались в чекбоксах только те права доступа, которые соответствуют данной должности.

 

Ответить

китин

Дата: Понедельник, 11.11.2013, 14:09 |
Сообщение № 2

Группа: Модераторы

Ранг: Экселист

Сообщений: 6973


Репутация:

1063

±

Замечаний:
0% ±


Excel 2007;2010;2016

к примеру вот. ТЫЦили ТУТ


Не судите очень строго:я пытаюсь научиться
ЯД 41001877306852

 

Ответить

Proliant

Дата: Понедельник, 11.11.2013, 14:28 |
Сообщение № 3

Группа: Пользователи

Ранг: Прохожий

Сообщений: 9


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

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

 

Ответить

Poltava

Дата: Понедельник, 11.11.2013, 14:37 |
Сообщение № 4

Группа: Друзья

Ранг: Форумчанин

Сообщений: 232


Репутация:

50

±

Замечаний:
0% ±


Пример приложите

 

Ответить

Proliant

Дата: Понедельник, 11.11.2013, 14:52 |
Сообщение № 5

Группа: Пользователи

Ранг: Прохожий

Сообщений: 9


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Poltava, вот в упрощенном виде. Нужно, чтобы при выборе из выпадающего списка одной из позиций, заполнялись только чекбоксы, соответствующие этой позиции. То есть, можно задать вопрос по-другому. Как заставить чексбокс поменять состояние на «checked» при выборе одного из элементов выпадающего списка?

К сообщению приложен файл:

Request.xlsm
(19.6 Kb)

Сообщение отредактировал ProliantПонедельник, 11.11.2013, 14:58

 

Ответить

Proliant

Дата: Понедельник, 11.11.2013, 16:15 |
Сообщение № 6

Группа: Пользователи

Ранг: Прохожий

Сообщений: 9


Репутация:

0

±

Замечаний:
0% ±


Excel 2010

Нашел в поиске на форуме по ключевому слову вот эту тему: http://www.excelworld.ru/forum/2-6164-1 Примерно это мне и нужно, только вот разобраться как работает данный файл не могу. Помогите, люди добрые! =)

 

Ответить

Понравилась статья? Поделить с друзьями:
  • Выпадающий список с флажками в excel
  • Выпадающий список с пустой строкой в excel
  • Выпадающий список с помощью макроса excel
  • Выпадающий список с поиском в excel скачать
  • Выпадающий список с изменением цвета в excel