Перейти к содержимому

Как в эксель сделать выпадающий список в ячейке с автозаполнением

  • автор:

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

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

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

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

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

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

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

  1. Вручную через «точку-с-запятой» в поле «Источник». Ввод значений.
  2. Ввести значения заранее. А в качестве источника указать диапазон ячеек со списком. Проверка вводимых значений.
  3. Назначить имя для диапазона значений и в поле источник вписать это имя.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  1. Сформируем именованный диапазон. Путь: «Формулы» — «Диспетчер имен» — «Создать». Вводим уникальное название диапазона – ОК. Создание имени.
  2. Создаем раскрывающийся список в любой ячейке. Как это сделать, уже известно. Источник – имя диапазона: =деревья.
  3. Снимаем галочки на вкладках «Сообщение для ввода», «Сообщение об ошибке». Если этого не сделать, Excel не позволит нам вводить новые значения. Сообщение об ошибке.
  4. Вызываем редактор Visual Basic. Для этого щелкаем правой кнопкой мыши по названию листа и переходим по вкладке «Исходный текст». Либо одновременно нажимаем клавиши Alt + F11. Копируем код (только вставьте свои параметры).

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 
  • Сохраняем, установив тип файла «с поддержкой макросов». Сообщение об ошибке.
  • Переходим на лист со списком. Вкладка «Разработчик» — «Код» — «Макросы». Сочетание клавиш для быстрого вызова – Alt + F8. Выбираем нужное имя. Нажимаем «Выполнить».
  • Макрос.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    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 
    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 

    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». Здесь нам нужна кнопка «Поле со списком» (ориентируемся на всплывающие подсказки). Вставить ActiveX.
    2. Щелкаем по значку – становится активным «Режим конструктора». Рисуем курсором (он становится «крестиком») небольшой прямоугольник – место будущего списка. Элемент ActiveX.
    3. Жмем «Свойства» – открывается перечень настроек. Свойства ActiveX.
    4. Вписываем диапазон в строку ListFillRange (руками). Ячейку, куда будет выводиться выбранное значение – в строку LinkedCell. Для изменения шрифта и размера – Font.

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

    • Excel Formula Examples
    • Создать таблицу
    • Форматирование
    • Функции Excel
    • Формулы и диапазоны
    • Фильтр и сортировка
    • Диаграммы и графики
    • Сводные таблицы
    • Печать документов
    • Базы данных и XML
    • Возможности Excel
    • Настройки параметры
    • Уроки Excel
    • Макросы VBA
    • Скачать примеры

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

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

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

    Для этого выделите ячейку, в которой будет выпадающий список.

    На вкладке Данные кликните на Проверку данных

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

    Откроется окно «Проверка вводимых значений».

    Проверка вводимых значений

    В Условии проверки выберите Тип данных — Список, после чего ниже появится поле выбора Источника (данных), которое необходимо заполнить.

    Тип данных — список

    Рассмотрим несколько вариантов заполнения поля Источник.

    1 вариант

    Самым простым способом является ввод элементов списка непосредственно в поле Источник, разделяя элементы списка знаком «;».

    Такой подход удобен для маленьких (3-5 значений) неизменных списков.

    1 вариант заполенения поля «Источник»

    Заполнив поле Источник данными, нажмите «ОК».

    Рядом с выделенной ячейкой появится значок выпадающего списка

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

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

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

    2 вариант

    Элементы для выпадающего списка можно разместить в диапазоне на том же листе EXCEL, а затем в поле Источник указать ссылку на этот диапазон.

    Например, названия отделов находятся в диапазоне А2:А8.

    В поле Источник указываем абсолютную ссылку на этот диапазон $А$2:$А$8.

    2 вариант заполенения поля «Источник»

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

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

    3 вариант

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

    1. Создайте список на другом листе той же книги.
    2. Создайте Именованный диапазон, содержащий элементы выпадающего списка. Для этого выделите диапазон со значениями списка (А2:А8).

    Именнованный диапазон

    В левой части строки формул находится поле имен, после выделения диапазона в нем будет указана ячейка, с которой начиналось выделение. В нашем примере это А2. Вместо значения А2 напечатайте в поле имен название диапазона, например, «Отделы» и нажмите Enter.

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

    Таким образом, получили Именованный диапазон — «Отделы».

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

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

    Пройдите Данные — Проверка.

    В открывшемся окне в поле Источник введите «= Отделы» и нажмите «ОК».

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

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

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

    Ваш браузер не поддерживает видео. Установите Microsoft Silverlight, Adobe Flash Player или Internet Explorer 9.

    Таблица Excel, используемая в качестве источника для списка проверки данных

    1. На новом листе введите данные, которые должны отображаться в раскрывающемся списке. Желательно, чтобы элементы списка содержались в таблице Excel. В противном случае можно быстро преобразовать список в таблицу, выбрав любую ячейку в диапазоне и нажав клавиши CTRL+T.
    • Почему данные следует поместить в таблицу? Потому что в этом случае при добавлении и удалении элементов все раскрывающиеся списки, созданные на основе этой таблицы, будут обновляться автоматически. Дополнительные действия не требуются.
    • Теперь следует отсортировать данные в диапазоне или таблице в раскрывающемся списке.

    Примечание: Если не удается выбрать пункт Проверка данных, лист может быть защищен или предоставлен к общему доступу. Разблокируйте определенные области защищенной книги или отмените общий доступ к листу, а затем повторите шаг 3.

  • На вкладке Параметры в поле Разрешить выберите Список.
  • Выберите в поле Источник , а затем выберите диапазон списка. В примере данные находятся на листе «Города» в диапазоне A2:A9. Обратите внимание на то, что строка заголовков отсутствует в диапазоне, так как она не является одним из вариантов, доступных для выбора. Параметры списка проверки данных
  • Если пользователи не могут оставить ячейку пустой, проверка пустое поле Игнорировать.
  • Установите флажок в раскрывающемся списке В ячейке .
  • Перейдите на вкладку Входное сообщение .
    • Если вы хотите, чтобы при выборе ячейки отображалось сообщение, проверка поле Показывать входное сообщение при выделении ячейки и введите заголовок и сообщение в полях (не более 225 символов). Если вы не хотите, чтобы сообщение отображалось, снимите этот флажок. Вкладка
  • Перейдите на вкладку Оповещение об ошибке .
    • Если вы хотите, чтобы при вводе сообщения, которого нет в списке, проверка поле Показывать оповещение об ошибке после ввода недопустимых данных, выберите параметр в поле Стиль и введите заголовок и сообщение. Если вы не хотите, чтобы сообщение отображалось, снимите этот флажок. Параметры сообщения об ошибке для раскрывающегося списка проверки данных
  • Не знаете, какой вариант выбрать в поле Стиль ?
    • Чтобы отобразить сообщение, которое не мешает пользователям вводить данные, отсутствуют в раскрывающемся списке, выберите Сведения или Предупреждение. Сведения покажут сообщение с этим значком В сообщении отображается значок информации, но это не мешает людям выбирать элементы из раскрывающегося списка, а предупреждение — сообщение с этим значком В сообщении отображается значок предупреждения, но это не мешает людям выбирать элементы из раскрывающегося списка.
    • Чтобы запретить пользователям вводить данные, которые отсутствуют в раскрывающемся списке, выберите Остановить.

      Примечание: Если вы не добавили заголовок и текст, по умолчанию выводится заголовок «Microsoft Excel» и сообщение «Введенное значение неверно. Набор значений, которые могут быть введены в ячейку, ограничен».

      Работа с раскрывающимся списком

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

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

      Если вы решили изменить элементы раскрывающегося списка, см. статью Добавление и удаление элементов раскрывающегося списка.

      Чтобы удалить раскрывающийся список, см. статью Удаление раскрывающегося списка.

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

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

      Классический выпадающий список в ячейке листа Excel, сделанный через Данные — Проверка (Data — Validation) — простая и удобная штука, которую ежедневно применяют очень многие пользователи. Однако, у этого списка есть один весьма серьезный недостаток — в нём нет быстрого поиска по первым символам, т.е. фильтрации (отбора) только тех значений, куда введённый фрагмент входит как подстрока. Это серьезно ухудшает удобство пользования даже если в списке всего пара-тройка десятков позиций, а при нескольких сотнях убивает юзабилити напрочь. Давайте рассмотрим как всё же реализовать подобный трюк. В качестве подопытного кролика возьмём список 250 лучших фильмов по версии IMDb:
      Конечная цель — создать выпадающий список (ячейка G3), в котором можно будет быстро находить нужные фильмы, введя только жанр, год или фрагмент названия, например «гамп».

      Шаг 1. Определяем, кто нам нужен

      Сначала нам нужно понять, какие из исходных ячеек нужно показывать в списке, т.е. определить содержится ли введённый в выпадающем списке текст (например, жанр «детектив») в названии фильма. Для этого добавим слева от исходных данных еще один столбец с функцией ПОИСК (SEARCH) , которая ищет заданную подстроку в тексте и выдает либо порядковый номер символа, где он был обнаружен, либо ошибку, если его там нет: Ищем вхождения функцией ПОИСК
      Теперь завернем нашу формулу в функцию проверки ЕЧИСЛО (ISNUMBER) , которая превратит числа в логическую ИСТИНУ (TRUE) , а ошибки — в ЛОЖЬ (FALSE) : Превращаем в ИСТИНУ и ЛОЖЬ
      Теперь сделаем так, чтобы ЛОЖЬ превратилась в 0, а вместо ИСТИНА в столбце появились последовательно возрастающие индексы-числа 1,2,3. и т.д. Это можно сделать с помощью добавления к нашей же формуле ещё парочки функций: Создаем индексы
      Здесь функция ЕСЛИ (IF) проверяет что мы имеем (ИСТИНУ или ЛОЖЬ), и

      • если была ИСТИНА, то выводит максимальное значение из всех вышестоящих чисел + 1
      • если была ЛОЖЬ, то выводит 0

      Шаг 2. Отбираем в отдельный список

      Дальше — проще. Теперь банальной функцией ВПР (VLOOKUP) просто выведём все найденные названия (я добавил столбец с порядковыми номерами для удобства):

      Извлекаем нужные элементы

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

      Тестируем отбор

      Шаг 3. Создаем именованный диапазон

      Теперь создадим именованный диапазон, который будет ссылаться на отобранные фильмы. Для этого выбрем на вкладке Формулы команды Диспетчер имен — Создать (Formulas — Name Manager — Create) :

      Создаем именованный диапазон

      Имя диапазона может быть любым (например, Фильмы), а самое главное — это функция СМЕЩ (OFFSET) , которая и делает всю работу. Напомню её синтаксис, если вы подзабыли:

      =СМЕЩ( начальная_ячейка ; сдвиг_вниз ; сдвиг_вправо ; высота ; ширина )

      Синтаксис СМЕЩ

      • В качестве начальной ячейки задаём первую ячейку списка отобранных элементов (E2).
      • Сдвиги вниз и вправо у нас отсутствуют, т.е. равны нулю.
      • Высота диапазона у нас соответствует максимальному значению индекса из столбца А.
      • Ширина диапазона — 1 столбец.

      Осталось сделать выпадающий список.

      Шаг 4. Создаем выпадающий список

      Выделим жёлтую ячейку (G2) и выберем на вкладке Данные команду Проверка данных (Data — Validation) . В открывшемся окне выбрем Список (List) в поле Тип данных (Allow) , а в качестве источника введем имя нашего созданного диапазона со знаком равно перед ним:

      Создаем выпадающий список

      Чтобы Excel не ругался при вводе на неточное совпадение наших фраз с исходным списком, на вкладке Сообщение об ошибке (Error Alert) в этом окне нужно выключить флажок Выводить сообщение об ошибке (Show error alert) :

      Отключаем сообщение об ошибке

      Вот и всё. Можно жать на ОК и наслаждаться результатом:

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

      P.S.

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

      Вып.список на динамических массивах

      Всё, что мы делали на Шагах 1-3 заменяется одной(!) формулой, где новая функция ФИЛЬТР (FILTER) отбирает из исходного диапазона A2:A251 только те фильмы, которые содержат заданную подстроку.

      А дальше останется при создании выпадающего списка указать в качестве источника первую ячейку диапазона отобранных фильмов (C2) и добавить к ней знак #, чтобы получить ссылку на весь динамический массив:

      Создание вып.списка на динамическом массиве

      И всё. Никаких именованных диапазонов и медленных СМЕЩ, никаких танцев с дополнительными столбцами и формулами. Песня!

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

      • Что такое динамические массивы в Excel
      • Разбор трех основных функций динамических массивов: СОРТ, ФИЛЬТР и УНИК
      • 4 способа создать выпадающий список на листе Excel
  • Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Luxury Car Rental in Miami | Reserve a Premium Vehicle with RealCar