Создать фильтр в excel с выпадающим списком

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

Очень удобный инструмент 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? Одной из наиболее полезных функций проверки данных является возможность создания выпадающего списка, который позволяет выбирать значение из предварительно определенного перечня. Но как только вы начнете применять это в своих таблицах,…

A dynamic drop down (also known as a  dependent drop down) is a term for drop downs with a dynamic list. The list items of a dynamic drop down get updated according to another input which is usually another drop down as well. A common example is to have lots of items under different categories. Instead of trying to finding an item in a huge list, you can first select a category and then find your desired item in a filtered list. In this article, we are going to show you how to create a dynamic drop down list Excel using the dynamic array functions UNIQUE and FILTER.

Designing the dynamic drop downs

Our sample data consists of a 2-column table containing names and types. As a result, we need a drop down for each column. However, there 2 problems we need to address first:

  • Type values occur multiple times in the corresponding column. Listing an item multiple times may confuse our users.
  • We want the Name values to be listed based on the selection of type. For example, if we set the type to «WATER», the second drop down should only list the names that match with type «WATER».

dynamic drop down list excel

There are multiple ways to create a dynamic drop down list Excel. Here are a few examples:

  • How to create dependent dropdowns
  • Transforming a Complex Pricing List into a Quoting Tool in Excel

However, mos of these methods require an extensive use of formulas. Fortunately, the new dynamic array functions make things a lot easier. Let’s take a look at the basics of the dynamic array functions UNIQUE and FILTER.

UNIQUE and FILTER

In September, 2018, Microsoft has introduced new concepts like the dynamic arrays and spilling, in addition to a set of new functions, like the UNIQUE and the FILTER functions. The common characteristic of these two functions is their ability to return an array of values. We will be using this feature to populate the lists of unique items in our dynamic Excel drop down list.

UNIQUE Function

The UNIQUE function returns an array of unique values from a given array or range. This function is very helpful in eliminating items that occur multiple times. If you have a data set similar to our example that contains multiple values, like under the column Type, this formula will help simplify those lists.

When using the UNIQUE function, add the reference for the column of values you need, and the function will return a list of unique items.

=UNIQUE(Type)

*Type is named range referring C4:C17

For more information and examples for the UNIQUE function, please see our related guide.

dynamic drop down list excel

FILTER Function

The FILTER function, on the other hand, can filter an array of values by a criteria. The FILTER function accepts three (required) arguments:

  • An array to be filtered
  • An array of Boolean values to identify the filtered values
  • A return value if there are no other values left

For example, the following formula returns an array of values in a named range Name, where the values of the range Type is equal to the value of the DropdownType. Here, DropdownType is a single value, while «Name» and «Type» are ranges.

=FILTER(Name,Type=DropdownType,»No Name Found»)

In the screenshot below, DropdownType is equal to «FIRE». Thus, only two values, «Arcanine» and «Entei», are returned by the formula.

dynamic drop down list excel

Finalizing the structure

After this brief introduction, we can now create our dynamic drop down list Excel.

Create a higher level drop down containing the unique values

First step is creating a unique list of types and bind them to a drop down. In our example, we used the UNIQUE function on cell E4. The UNIQUE function spills its return array through the rest of the column.

Next is binding the spilled array into a drop down. To do this,

  • Select a cell to make a drop down.
  • Go to Data Validation
  • Select List under Allow
  • Type in your cell reference with the UNIQUE formula with a # character. This is =E4# in our example.

The # is the spill operator which saves us from guessing the size of the outcome array. Using # you can get all items returned from the UNIQUE formula.

dynamic drop down list excel

Create dynamic drop down with a dynamic list

This is where the FILTER function comes in. In our example, we named the ranges and used them in the formulas.

  • Type dropdown (H7) as DropdownType
  • List of types (C4:C17) as Type
  • List of names (B4:B17) as Name

Our formula in this example is in cell E15:

=FILTER(Name,Type=DropdownType,»No Name Found»)

The drop down procedure is very similar to previous one. The only difference is the reference of the cell contains the FILTER, =E15#.

That’s all!

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

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

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

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

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

    Ctrl+T

    .

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

    Примечания: 

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

    • Сейчас самое время
      отсортировать данные в диапазоне или таблице
      в раскрывающемся списке.

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

  3. Перейдите на вкладку
    данных

    на ленте, затем


    в проверку данных

    .

    Примечание: 
    Если вы не можете щелкнуть

    проверку данных

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

  4. На вкладке

    Параметры

    в поле

    Разрешить

    щелкните

    Список

    .

  5. Щелкните поле

    Источник

    и выделите диапазон списка. В примере данные находятся на листе «Города» в диапазоне A2:A9. Обратите внимание на то, что строка заголовков отсутствует в диапазоне, так как она не является одним из вариантов, доступных для выбора.

    Параметры списка проверки данных

  6. Если можно оставить ячейку пустой, установите флажок

    Игнорировать пустые

    ячейки.

  7. Установите флажок

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

  8. Откройте вкладку

    Сообщение для ввода.

    • Если вы хотите, чтобы при выборе ячейки появлялось всплывающее сообщение, установите флажок

      Отображать подсказку, если ячейка является текущей

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

      Вкладка "Сообщение для ввода" в диалоговом окне "Проверка данных"

  9. Откройте вкладку

    Сообщение об ошибке.

    • Если вы хотите, чтобы при вводе значения, которого нет в списке, появлялось всплывающее сообщение, установите флажок

      Выводить сообщение об ошибке,

      выберите параметр в поле

      Вид

      и введите заголовок и сообщение. Если вы не хотите, чтобы сообщение отображалось, снимите этот флажок.

      Параметры сообщения об ошибке для раскрывающегося списка проверки данных

  10. Не знаете, какой параметр выбрать в поле

    Вид

    ?

    • Чтобы отобразить сообщение, не препятствующее вводу данных, которые не содержатся в раскрывающемся списке, выберите вариант

      Сведения

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

    • Чтобы заблокировать пользователям ввод данных, которые не содержатся в раскрывающемся списке, выберите вариант

      Остановка

      .

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

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

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

Раскрывающийся список со значениями "Высокий", "Средний" и "Низкий"

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

  1. Создайте список допустимых элементов для раскрывающегося списка. Для этого введите элементы на листе в одном столбце или строке без пустых ячеек.

  2. Выделите ячейки, для которых нужно ограничить ввод данных.

  3. На вкладке

    Данные

    в группе

    Инструменты

    щелкните

    Проверка данных

    или

    Проверить

    .

    Меню "Данные" на панели инструментов Excel с выбранной кнопкой "Проверка данных"

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

  4. Откройте вкладку

    Параметры

    и во всплывающем меню

    Разрешить

    щелкните

    пункт Список

    .

  5. Щелкните поле

    Источник

    и выделите на листе список допустимых элементов.

    Диалоговое окно свернется, чтобы было видно весь лист.

  6. Нажмите клавишу ВВОД или кнопку

    Развернуть
    Кнопка "Развернуть" в диалоговом окне "Проверка данных"
    , чтобы развернуть диалоговое окно, а затем щелкните

    ОК

    .

    Советы: 

    • Значения также можно ввести непосредственно в поле

      Источник

      через запятую.

    • Чтобы изменить список допустимых элементов, просто измените значения в списке-источнике или диапазон в поле

      Источник

    • Можно указать собственное сообщение об ошибке, которое будет отображаться при вводе недопустимых данных. На вкладке

      Данные

      щелкните

      Проверка данных

      или

      Проверить

      , а затем щелкните

      Сообщение об ошибке

      .

См. также

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

  1. На новом листе введите данные, которые должны отображаться в раскрывающемся списке. Желательно, чтобы элементы списка содержались в
    таблице Excel
    .

    Примечания: 

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

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

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

  3. Откройте вкладку

    Данные

    на ленте и щелкните кнопку

    Проверка данных

    .

  4. На вкладке

    Параметры

    в поле

    Разрешить

    щелкните

    Список

    .

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

    Источник

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

    Источник

    через запятую. Например:


    Фрукты;Овощи;Зерновые культуры;Молочные продукты;Перекусы

  6. Если можно оставить ячейку пустой, установите флажок

    Игнорировать пустые

    ячейки.

  7. Установите флажок

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

  8. Откройте вкладку

    Сообщение для ввода.

    • Если вы хотите, чтобы при выборе ячейки появлялось всплывающее сообщение, установите флажок

      Показывать сообщения

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

  9. Откройте вкладку

    Сообщение об ошибке.

    • Если вы хотите, чтобы при вводе значения, которого нет в списке, появлялось всплывающее сообщение, установите флажок

      Показывать оповещения

      , выберите параметр в поле

      Тип

      , и введите заголовок и сообщение. Если вы не хотите, чтобы сообщение отображалось, снимите этот флажок.

  10. Щелкните

    ОК

    .

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

Дополнительные сведения

Вы всегда можете задать вопрос специалисту Excel Tech Community или попросить помощи в сообществе Answers community.

См. также

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

Видео: создание раскрывающихся списков и управление ими

Общие сведения о таблицах Excel

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

Блокировка и разблокировка определенных областей защищенного листа

Нужна дополнительная помощь?

Просмотров: 215

Постановка задачи. Необходимость применения фильтра для выпадающего списка.

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

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

На помощь приходит создание фильтра для отбора только строк, содержащих нужный текст, вручную. Использование фильтра для выпадающего списка в Excel позволит отобрать необходимые позиции, основываясь на содержании элемента выпадающего списка. Создание такого списка может быть выполнено разными способами. В частности, в MS Office 365 присутствует специальная функция ФИЛЬТР, которая позволяет решить проблему. Однако далеко не везде эта версия MS Office установлена. Особенно это касается приложений, установленных в корпоративной среде. Использовать же онлайн версию офиса, в частности, работая в облаке от yandex.ru, mail.ru , onedrive.live.com и так далее не всегда возможно и не очень удобно. Данная версия, к сожалению, не содержит многих инструментов обработки данных, к которым мы привыкли. Нет консолидации, нет промежуточного итога. Отсутствуют возможности «Анализ что, если» и получение данных из внешних источников. И этот список отсутствующих инструментов можно продолжать. Существуют так же корпоративные правила, которые во многих случаях запрещают работу с документами в онлайн режиме.

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

Исходная ситуация следующая. Имеется два листа – список и проверка. На листе список в колонке А будет задаваться проверочный текст, а в колонке В будет выводится выпадающий список, отфильтрованный согласно заданному проверочному тексту и полученный на основе диапазона А2:А121 на листе Проверка. Список достаточно условный, но вместо него может быть список оборудования, список наименований поставщиков, список операций и прочие перечни значений. Итак, приступаем. Будьте внимательны и отслеживайте текст формул и функций, которые применятся.

Фильтр в выпадающем списке Excel

Рисунок 1

Шаг первый. Проверяем вхождение шаблонного текста в список.

Для такой проверки можно применить функции ПОИСК или НАЙТИ. Функция НАЙТИ чувствительна к регистру, поэтому применим функцию ПОИСК во избежание ошибок с несовпадающим регистром. Ее синтаксис

=ПОИСК(искомый текст; строка для поиска наличия искомого текста).

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

Введем на листе список текст, который явно присутствует в ячейках нашего списка на листе проверка. Следом на листе проверка напротив первого же элемента списка введем формулу

=ПОИСК(список!$A$1;A2).

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

Фильтр в выпадающем списке Excel

Рисунок 2

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

Шаг Второй. Привязываем условие к последней заполненной ячейке в колонке А на листе список.

Получить адрес нужной ячейки мы можем, используя функцию АДРЕС. В ней надо задать номер строки нужной ячейки, номер столбца этой ячейки, тип адреса – абсолютный, смешанный с закреплением строки и так далее. Остальные параметры в нашем случае значения не имеют. Важно помнить, что результатом работы данной функции будет текстовая строка с полученной ссылкой.

Чтобы получить номер последней заполненной ячейки в колонке А на листе таблица, мы применим функцию ПОИСКПОЗ. Ее назначение – определить номер позиции выбранного элемента в указанном списке. Надо последовательно указать искомый элемент, список и тип сопоставления для определения способа поиска. Пи этом есть небольшой нюанс. Если в качестве искомого указать значение, которое будет заведомо больше любого имеющегося, а тип сопоставления задать равным единице, то будет выведена позиция последнего элемента в списке. Нам это и надо. В качестве же искомого значения укажем две буквы «Я» подряд. Вряд ли будет слово, которое будет начинаться с этих букв.

Для определения номера столбца можно просто прописать единицу, так как колонка А первая на листе. Однако мы применим функцию СТОЛБЕЦ, которая выводит номер столбца указанной ячейки. Это позволит сделать нашу формулу гибкой, не привязывая ее к одному столбцу.

Ну и наконец вспомним, что нам нужна абсолютная ссылка, поэтому третий параметр функции должен быть равен одному. Соберем все полеченные нами параметры функции АДРЕС вместе и получаем формулу

=АДРЕС(ПОИСКПОЗ(“ЯЯ”;список!A:A;1);СТОЛБЕЦ(список!A1);1)

Фильтр в выпадающем списке Excel

Рисунок 3

Как видите адрес мы получили. Но есть две проблемы. Во-первых, адрес указывает на ячейку на текущем листе проверка, а не на листе список. А во-вторых, мы видим именно адрес, а не содержимое нужной ячейки. Исправим это. Соединим полученный адрес и имя нужного листа. Выведем инаименование листа  впереди, не забывая про кавычки и восклицательный знак, и используя амперсанд для объединения полеченный строк. Теперь полученную общую строку сделаем адресом, обернув полученную строку функцией ДВССЫЛ. Это значит, что в самом начале после знака равно перед именем листа пропишем ДВССЫЛ и откроем скобку, а вторую скобку закроем в самом конце. В результате скобки функции ДВССЫЛ как бы охватывают нашу формулу получения общей строки – отсюда и название приема – обернуть. В итоге получаем такую формулу.

=ДВССЫЛ(“список!”&АДРЕС(ПОИСКПОЗ(“ЯЯ”;список!A:A;1);СТОЛБЕЦ(список!A1);1))

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

Фильтр в выпадающем списке Excel

Рисунок 4

Теперь аккуратно скопируем полученную формулу и скопируем в нашу функцию ПОИСК, выведенную в начале работы, вместо адреса ячейки А1. Проверяем работу и убеждаемся, что на листе проверка цифры появляются напротив ячеек, содержащих текст из последней заполненной ячейки листа таблица в колонке А.

Фильтр в выпадающем списке Excel

Рисунок 5

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

Чтобы это сделать, применим функцию ЕСЛИ в колонке С листа проверка. Она позволяет проверить условие и вывести один из двух вариантов в зависимости от его соблюдения.

В качестве условия применим функцию ЕЧИСЛО, с помощью которой обернем нашу функцию поиск. Если функция ПОИСК найдет нужное слово в списке, то результатом будет цифра. Тогда функция ЕЧИСЛО выведет результат ИСТИНА, а если нет, то результатом функции ЕЧИСЛО будет ложь.

Для параметра ИСТИНА функции ЕСЛИ зададим автоматическую нумерацию полученных строк с найденными числами. Для этого возьмем максимум из предыдущих ячеек и прибавим к полученному единицу. Так как в начале никаких предыдущих ячеек фактически нет, то для функции МАКС возьмем диапазон С1:С1 и закрепим первую ячейку. В результате при копировании формулы вниз будем получать диапазоны C1:C2, C1:C3 и так далее.

Ну и для параметра ЛОЖЬ выведем пустое значение в виде двух кавычек подряд. В результате получаем такую запись.

=ЕСЛИ(ЕЧИСЛО(ПОИСК(ДВССЫЛ(“список!”&АДРЕС(ПОИСКПОЗ(“ЯЯ”;список!A:A;1);СТОЛБЕЦ(список!A1);1));A2));МАКС($C$1:C1)+1;””)

Она кажется сложной, но на самом деле при последовательном ее создании сложностей возникнуть не должно.

Фильтр в выпадающем списке Excel

Рисунок 6

Шаг четвертый. Соберем вместе все значения, соответствующие нашему искомому параметру.

Чтобы это сделать, выведем снова нумерацию, соответствующую нашему списку, в колонке D листа проверка. Напротив ее первой ячейки применим функцию ИНДЕКС. Ее параметры – адрес исходного диапазона, номер строки и номер столбца этого диапазона, из пересечения которых надо взять данные. Исходным диапазоном будет диапазон А1:С121 на листе проверка. Номер нужной строки найдем с помощью функции ПОИСКПОЗ, указав для поиска номер текущей позиции в колонке С листа проверка и запустив точный поиск в помощью типа сопоставления равного нулю. Номер столбца зададим первый.

=ИНДЕКС($A$2:$C$121;ПОИСКПОЗ(D2;C2:C121;0);1)

Фильтр в выпадающем списке Excel

Рисунок 7

Как видим, после перечня строк, содержащих последнее введение значение на листе список, в ненайденных позициях вывелась ошибка. Чтобы это исправить, обернем нашу формулу функцией ЕСЛИОШИБКА и указав в качестве второго параметра этой функции ноль.

=ЕСЛИОШИБКА(ИНДЕКС($A$2:$C$121;ПОИСКПОЗ(D2;$C$2:$C$121;0);1);0) 

Фильтр в выпадающем списке Excel

Рисунок 8

Шаг пятый и последний. Формируем на основе полученного перечня источник для выпадающего списка.

Переходим на лист список. Выделяем столбец В, переходим на вкладку данные и нажимаем кнопку «проверка данных». Тип данных выбираем «Список», а в строке “источник” введем функцию СМЕЩ. С ее помощью зададим диапазон, ячейки которого будут использованы в нашем списке. Параметры функции СМЕЩ по очереди в нашем случае:

1. начальная ячейка, относительно которой будем двигаться. В нашем случае это ячейка Е2 на листе проверка. Не забываем ее закрепить.

2. сдвиг по строкам. В нашем случае его нет, поэтому просто отделим место этого параметра стандартным разделителем.

3. сдвиг по колонкам. Его тоже не будет.

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

5. Количество столбцов в формируемом диапазоне. У нас будет только одна колонка.

В итоге получаем

=СМЕЩ(проверка!$E$2;;;СЧЁТЗ(проверка!$E:$E)-СЧЁТ(проверка!$E:$E);1)

Фильтр в выпадающем списке Excel

Рисунок 9

Фильтр в выпадающем списке Excel

Рисунок 10

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

Возможные проблемы.

  1. Наша формула будет искать последнюю ячейку столбца А на листе список с текстом. Если же в последней ячейке будет число – Excel его не найдет. Чтобы обойти эту проблему, достаточно заранее задать текстовый формат для всех ячеек этого столбца.
  2. Отбор по последнему значению будет работать во всех ячейках, где применен выпадающий список. Если необходимо поменять значение на основе выпадающего списка по ранее указанному значению, достаточно вернуться к нему и убрать все введенные позже проверочные значения. Эти значения никак не связаны с значениями, отобранными из списка, поэтому проблем с другими выбранными элементами не будет.

Заключение.

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

На этом наше занятие  подошло к концу. Желаем всем успеха в работе. До встречи на наших занятиях.

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