Разное

Выпадающий список c: Элемент ComboBox в Windows Forms

09.06.2021

Содержание

Выпадающий список с добавлением новых элементов

Предположим, что у нас есть справочник с именами сотрудников и таблица, куда этих сотрудников нужно вносить:


Задача состоит из двух частей:

  • Сделать выпадающий список, причем так, чтобы при дописывании новых людей к справочнику — они автоматически появлялись и в выпадающем списке.
  • Реализовать возможность добавления новых людей в список и с другой стороны — при вводе нового имени в любую из жёлтых ячеек оно должно автоматически добавляться к справочнику (и в выпадающий список в будущем, само-собой).

Такая вот двухсторонняя связь справочника и выпадающего списка.

Шаг 1. Создаем умную таблицу


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

Для этого выделим весь справочник (ячейки A1:A7) и нажмём сочетание клавиш Ctrl+T или выберем Главная — Форматировать как таблицу (Home — Format as Table). В следующем окне можно смело жать ОК:

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


Теперь создадим именованный диапазон, указывающий на заполненные именами ячейки в нашем справочнике. Для этого выделим в справочнике уже только имена без шапки (ячейки A2:A7) и в левой части строки формул (там будет имя таблицы) введём имя для нашего диапазона (например Люди):


После ввода имени обязательно нужно нажать на клавишу Enter — слово Люди исчезнет из этого поля, но диапазон будет создан.

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

[Справочник], а не на конкретные выделенные ячейки. Убедиться в этом можно, если выбрать на вкладке Формулы команду Диспетчер имен (Formulas — Name Manager) и посмотреть куда ссылается имя Люди:


Таким образом, при дописывании новых имен к справочнику будет расширяться наша «умная» Таблица1, а за ней и наш именованный диапазон Люди.

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

Выделяем жёлтые ячейки и жмем на вкладке Данные (Data) кнопку Проверка данных (Data Validation) 

Далее выбираем из выпадающего списка Тип данных (Allow) позицию Список (List) и вводим в строку Источник (Source) ссылку на созданный на шаге 1 именованный диапазон (не забудьте перед именем диапазона поставить знак равенства!

):


Чтобы Excel позволил нам в будущем ввести в список и новые имена, снимем галочки на вкладках Сообщение для ввода (Input Message) и Сообщение об ошибке (Error Alert) и нажмем ОК. Выпадающий список готов!

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


Шаг 4. Добавляем простой макрос

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

Щёлкаем правой кнопкой мыши по ярлычку нашего листа и выбираем Просмотреть код (View Source)

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

Private Sub Worksheet_Change(ByVal Target As Range)
    Set p = Range("Люди")
    If Target.Cells.Count > 1 Then Exit Sub
    If IsEmpty(Target) Then Exit Sub
    If Not Intersect(Target, Range("D2:D10")) Is Nothing Then
        If WorksheetFunction. CountIf(p, Target) = 0 Then
            r = MsgBox("Добавить новое имя в справочник?", vbYesNo)
            If r = vbYes Then p.Cells(p.Rows.Count + 1) = Target
        End If
    End If
End Sub

Теперь при попытке ввести новое имя в любую из жёлтых ячеек Excel будет спрашивать:


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

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

Панель индикаторов (Dashboards) > Фильтрация данных > Иерархический выпадающий список

Иерархический выпадающий список (Tree View Box) — это элемент фильтрации на панели индикаторов, который предоставляет возможность создать иерархию значений и фильтровать данные, для элементов анализа во вьювере, по этим значениям. Может быть расположен в любом месте на панели индикаторов. В зависимости от размеров панели индикаторов во вьювере, может расти или сжиматься только по ширине.
 

 

 

В этой главе будут рассмотрены следующие вопросы:

Редактор элемента Иерархический выпадающий список;

Одиночный режим;

Мульти режим;

Зависимые списки;

Таблица свойств.

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

Одиночный (One), т.е. во вьювере можно выбрать только одно значение в пределах одного уровня иерархии значений. Соответственно, фильтрация данных для элементов панели индикаторов будет выполняться только по одному значению.
Несколько (Multi), т.е. во вьювере можно будет  выбрать несколько значений в пределах одного уровня иерархии значений. Соответственно, фильтрация данных для элементов панели индикаторов будет выполняться по всем выбранным значениям.
 
Настройка элемента Иерархический выпадающий список выполняется в его редакторе. Для того чтобы вызвать редактор, следует в дизайнере отчетов:
Осуществить двойной щелчок по элементу Иерархический выпадающий список;
Выделить элемент Иерархический список, и в контекстном меню выбрать команду Редактировать (Design);
Выделить элемент Иерархический выпадающий список, и на панели свойств нажать кнопку Обзор (Browse) у свойства Ключи (Keys).
 
 

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

 

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

В этом поле отображается выражение выделенного поля данных элемента.

Параметр Режим выбора (Selection Mode) определяет количество одновременно выбранных значений элемента Иерархический выпадающий список — один элемент или много элементов.

Параметр Отобразить все значения (Show All Value) включает опцию выбора всех значений в элементе Иерархический выпадающий список. Если этот параметр включен, то в элементе Иерархический выпадающий список будет присутствовать значение Все, т.е. отметив флажком это значение, все значения этого элемента будут выбраны.

Параметр Отобразить пустые (Show Blanks) предоставляет возможность отображать или не отображать пустые значения из источника данных в списке значений текущего элемента.

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

 

 

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

 

Шаг 1: Добавьте элементы панели индикаторов;
 
Шаг 2: Добавьте элемент Иерархический выпадающий список;
 
Шаг 3: В редакторе элемента Иерархический выпадающий список, следует указать элемент данных с категориями и элемент данных с продуктами.

 

Информация

 

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

 

 

 
Шаг 4: Параметр Режим выбора установить в значение Одно.
 
Шаг 5: Закрыть редактор и перейти к просмотру отчета во вьювере или на вкладку предварительного просмотра.

 
Шаг 6: Выполнить щелчок левой кнопкой указателя ввода по имени категории, для того чтобы отобразить данные по этой категории.
 
Шаг 7: Раскрыть эту категорию, нажав элемент управления «стрелочка», и выбрать продукт из этой категории, для того чтобы отобразить данные по этому продукту.

 

 
 

Поскольку, режим выбора элемента Иерархический выпадающий список установлен в значение Одно, то отобразить данные одновременно по нескольким категориям и продуктам не предоставляется возможным. Однако, можно отобразить данные по всем значениям элемента Иерархический выпадающий список. Для этого следует включить значение Все.
 
Шаг 8: Вернуться в дизайнер отчетов и вызвать редактор элемента Иерархический выпадающий список;
 
Шаг 9: Установить флажок у параметра Отобразить все значения;
 
Шаг 10: Закрыть редактор элемента Иерархический выпадающий список и перейти к просмотру отчета во вьювере или на вкладку предварительного просмотра.

 

 

 

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

 

 
Мульти режим

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

 

Шаг 1: Добавьте элементы панели индикаторов;
 
Шаг 2: Добавьте элемент Иерархический выпадающий список;
 
Шаг 3: В редакторе элемента Иерархический выпадающий список, следует указать элемент данных с категориями и элемент данных с продуктами.
 

Информация

 

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

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

 

 

 
Шаг 4: Параметр Режим выбора установить в значение Несколько элементов.
 
Шаг 5: Закрыть редактор и перейти к просмотру отчета во вьювере или на вкладку предварительного просмотра.

 
Шаг 6: Отметить флажками значения, по которым следует отфильтровать данные для элементов панели индикаторов. В данном случае, отметить флажками несколько категорий.
 
Шаг 7: Раскрыть эти категории нажав элемент управления «стрелочка», и выбрать продукты, по которым необходимо отобразить данные.

 

 

 

Данные для элементов панели индикаторов будут отфильтрованы в зависимости от выбранных значений элемента Иерархический выпадающий список. Соответственно, у значений, по которым не требуется отображать данные, следует снять флажок. В мульти режиме выбора, также можно включить значение Все. В этом случае, для того чтобы установить (снять) флажок у всех значений элемента Иерархический выпадающий список достаточно будет установить (снять) флажок только у значения Все. Для того чтобы включить значение Все следует:
 
Шаг 6: Вернуться в дизайнер отчетов и вызвать редактор элемента Иерархический выпадающий список;
 
Шаг 7: Установить флажок у параметра Отобразить все значения;
 
Шаг 8: Закрыть редактор элемента Иерархический выпадающий список и и перейти к просмотру отчета во вьювере или на вкладке предварительного просмотра.
 

Информация

 

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

 

 

 

 
Зависимые списки

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

 
Для того чтобы создать зависимые иерархические списки следует:
 
Шаг 1: Добавить элементы панели индикаторов;
 
Шаг 2: Добавить элемент Иерархический выпадающий список с перечнем стран и городов поставщиков;

 

Шаг 3: Добавить элемент Иерархический выпадающий список с перечнем категорий и продуктов;
 
Шаг 4: В редакторе второго элемента Иерархический выпадающий список, в поле параметра Главный элемент из выпадающего меню выбрать первый элемент Иерархический выпадающий список;
 
Шаг 5: Закрыть редактор и перейти к просмотру отчета, во вьювере или на вкладке предварительного просмотра.

 
Шаг 6: Выбрать страны поставщиков, раскрыть их и выбрать города поставщиков. Значения второго элемента Иерархический выпадающий список с перечнем категорий и продуктов, будет отфильтрован в зависимости от выбранных стран и городов.
 
Шаг 7: Отметить флажками категории и продукты, по которым необходимо отобразить данные.

 

 

Информация

 

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

 

 

 

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

 

Наименование

Описание

Преобразование данных

(Data Transformation)

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

Группа

(Group)

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

Цвет фона
(Back Color)

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

Граница
(Border)

Группа свойств, которая предоставляет возможность настроить границы элемента: цвет, стороны, размер и стиль.

Шрифт

(Font)

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

Цвет текста

(Fore Color)

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

Стиль
(Style)

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

Доступность

(Enabled)

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

Отступ снаружи
(Margin)

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

Отступ внутри
(Padding)

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

Формат

(Text Format)

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

Наименование
(Name)

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

Псевдоним

(Alias)

Предоставляет возможность изменить псевдоним текущего элемента.

Ограничения

(Restrictions)

Предоставляет возможность настроить права использования текущего элемента на панели индикаторов:

Параметр Изменение допускается (Allow Change) предоставляет возможность разрешить или запретить изменение элемента. Если флажок установлен, то текущий элемент можно изменить. Если же флажок не установлен, то этот элемент изменить невозможно.
Параметр Удаление допускается (Allow Delete) предоставляет возможность разрешить или запретить удаление элемента. Если флажок установлен, то текущий элемент можно удалить. Если же флажок не установлен, то этот элемент удалить невозможно.
Параметр Перемещение допускается (Allow Move) предоставляет возможность разрешить или запретить перемещение элемента. Если флажок установлен, то текущий элемент можно переместить. Если же флажок не установлен, то этот элемент переместить невозможно.
Параметр Изменение размера допускается (Allow Resize) предоставляет возможность разрешить или запретить изменить размеры элемента. Если флажок установлен, то размеры текущего элемента можно изменить. Если же флажок не установлен, то размеры этого элемента изменить невозможно.
Параметр Выбор допускается (Allow Select) предоставляет возможность разрешить или запретить выбор элемента. Если флажок установлен, то текущий элемент можно выбрать. Если же флажок не установлен, то этот элемент выбрать невозможно.

Замок

(Locked)

Предоставляет возможность запретить или разрешить изменение размеров и перемещение текущего элемента. Если свойство установлено в значение Да (True), то текущий элемент невозможно будет переместить или изменить его размер. Если же данное свойство установлено в значение Нет (False), то этот элемент переместить и изменить его размеры.

Связь

(Linked)

Предоставляет возможность привязать текущее местоположение к панели индикаторов или другому элементу. Если свойство установлено в значение Да (True), то текущий элемент привязан к текущему местоположению. Если же данное свойство установлено в значение Нет (False), то этот элемент не привязан к текущему местоположению.

Как строить выпадающие списки в Excel

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

Есть много способов, чтобы создавать выпадающие списки в Excel. Рассмотрим некоторые вместе с аналитиком Laba Александром Галабурдой.

Как работает выпадающий список в Excel

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

Чтобы создать такой выпадающий список, перейдите в раздел «Данные» на панели инструментов, в группе «Работа с данными» выберите пункт «Проверка данных».

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

Окно делится на 3 вкладки:

#1. Параметры

Здесь задаются основные параметры выпадающего списка в Excel:

  • Тип данных. Можно выбрать тип данных, который будет содержать список: диапазон целых или действительных чисел, текстовые выражения, даты и время. Можно задать ограничения по длине текста и различные формулы.
  • Игнорировать пустые значения — данный пункт означает, что Excel не будет проверять на правильность ячейки, в которых содержатся пустые значения.
  • Список допустимых значений. Этот флажок отображается только в том случае, если выбран тип данных «Список». Если убрать флажок, в ячейке будет происходить проверка на соответствие значений списку, но раскрывающее поле с выпадающими значениями будет отсутствовать.
  • Значение. Работает только с теми типами данных, в которых можно задать ограничения по числам или датам.
  • Источник. Здесь перечисляются значения для проверки данных или задается формула.
  • Распространить изменения на другие ячейки с тем же условием. Excel здесь находит все ячейки в книге, которые ссылаются на идентичное по свойствам условие и изменяет их согласно новых параметров. В случае, если флажок не будет установлен, условие будет изменено только для выделенных ячеек в таблице.
  • Очистить все — удаляет установленную проверку данных с выделенных ячеек.

#2. Подсказка по вводу

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

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

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

Примеры выпадающих списков в Excel

#1. Стандартный

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

Если вам нужно ввести подсказки и настроить вывод сообщения об ошибке, переходим в соответствующие разделы и прописываем необходимые свойства. Затем нажимаем «ОК».

Как видим, при выделении ячейки в диапазоне A2:A25 во вкладке «Проект», у нас появился список значений.

#2. Список с подстановкой данных

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

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

Настроим проверку данных иначе. Для автодополнения списков рассмотрим 2 варианта:

#1. Умная таблица. Выделяем диапазон с источником, переходим во вкладку на панели инструментов «Главная», раздел «Стили», раскрываем меню «Форматировать как таблицу» и выбираем понравившийся стиль умной таблицы Excel. 

Подробнее о том, что такое  «Умные таблицы» и как с ними работать — на наших курсах. 

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

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

В строке с источником прописываем ссылку на столбец таблицы с использованием функции ДВССЫЛ: =ДВССЫЛ(«Товары[Товар]»). Далее отмечаем «Распространить изменения на другие ячейки с тем же условием», и нажимаем «ОК».

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

#2. Диспетчер имен. Этот способ аналогичный предыдущему, только с тем отличием, что имя будет присвоено диапазону без преобразования его в умную таблицу. 

Имя диапазона так же, как и в умной таблице, не должно содержать пробелы и знаки препинания. Выделяем диапазон ячеек с запасом пустых строк. Например, в нашем случае, мы понимаем, что в списке больше 25 значений содержаться не будет. Переходим во вкладку «Формулы», раздел «Определенные имена», меню «Диспетчер имен», нажимаем «Создать».

Называем будущий список, при необходимости корректируем диапазон значений.

Возвращаемся на лист «Проект», выделяем ячейку, в которой должен быть выпадающий список, переходим в меню «Проверка данных» и в поле Источник ссылаемся на созданный диапазон, нажимаем «ОК».

Общие рекомендации

  • Присваивайте источникам с данными имена. Это позволит пополнять списки новыми данными без изменения формулы в проверке данных.
  • Если в вашем отчете содержится несколько списков, выносите источники на отдельный лист. Это практично и не загромождает главную страницу отчета лишними данными.
  • Сортируйте список по удобному для вас параметру — в больших массивах это позволит быстро найти нужную позицию.
  • Не дублируйте в источниках значения выпадающего списка, иначе у вас будет несколько одинаковых значений.
  • По умолчанию в выпадающем списке отображается всего 8 первых значений. Если нужно отобразить больше или реализовать функцию быстрого поиска, используйте элементы управления VBA или ActiveX.

Весь бизнес-контент в удобном формате. Интервью, кейсы, лайфхаки корп. мира — в нашем телеграм-канале. Присоединяйтесь!

Подписывайтесь на нашу рассылку

Спасибо за подписку!

Последние материалы

Свободный график или «обед по расписанию»

Выпуск о том, как выбрать график и при чем тут мотивация.

Как «прокачать» ОП, чтобы он генерил прибыль, а не проблемы

Отзывы слушателей курса по продажам в Laba.

4 самых громких случая взяток в истории бизнеса

Рассказываем, кому и зачем крупные компании платили миллионы.

О правильном дизайне полей с выпадающими списками 📜⤵️

Выпадающие (они же – раскрывающиеся) списки пользуются дурной славой. Их ставят там, где это не нужно, создают избыточное количество опкций или просто неряшливо оформляют. Сам по себе элемент такого отношения, конечно, не заслуживает. UX-дизайнер Тесс Гэдд в недавном посте на UX Collective разобрала ключевые ошибки и полезные практики в отношении раскрывающихся списков и родственных элементов.

1. Анатомия выпадающего списка

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

  1. Текст метки.
  2. Контейнер.
  3. Стрелка для раскрытия списка.
  4. Заполнитель.
  5. Полоса прокрутки.
  6. Меню списка.
  7. Элементы списка – опции, варианты выбора.
  8. Разделитель групп элементов.
  9. Выделенный элемент.
  10. Текст и оформление для обеспечения обратной связи.
Анатомия выпадающего списка

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

2.1. Стандартный выпадающий список без текстового поля

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

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

2.2. Выпадающий список с текстовым полем (или текстовое поле со списком)

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

Выпадающий список с текстовым полем

Несколько отличный вариант – автодополнение – текстовое поле предлагает способ завершения слова или фразы.

2.3. Раскрывающийся список с мультиселектом (множественным выбором)

Большинство видов dropdown-элементов являются расширением радиокнопок – можно выбрать лишь один элемент. Но список с мультиселектом ближе к чекбоксам: в одном поле ввода пользователь может выбрать несколько элементов.

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

По возможности не используйте такие элементы интерфейса – с ними попросту неудобно работать.

2.4. Выпадающий список с группировкой элементов

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

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

2.5. Меню с возможностью выбора

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

Меню с прокруткой

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

2.6. Выбор даты

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

Выпадающий список для выбора даты

3.1. Стандартный стиль

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

Стандартный стиль с соединением контейнера и меню элементовСтиль с разделением контейнера и меню элементов

3.2. Скругленные углы

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

Список со скругленными углами

3.3. Иконки

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

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

3.4. Иллюстрации

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

Выпадающий список с иллюстрациями

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

3.5. Material Design

Стиль line only пропал из методических рекомендаций Material Design, но до сих пор часто встречается в интернете.

Стиль line only для старого оформления списков в Material Design

Стиль одной линии сменился на filled dropdown – контейнер выделен не только линией, но и затененной областью. Не так легковесно, но более дружелюбно по отношению к пользователю.

Стиль оформления filled dropdown

Ещё больший акцент на контейнере списка сделан в контурном стиле оформления outlined dropdown.

Стиль оформления outlined dropdown

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

Когда пользователь взаимодействует с полем любого вида, нужно давать обратную связь.

Активное состояние

4.

1. Блокированный элемент

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

Блокированный список

4.2. Наведение курсора

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

Изменение состояния при наведении курсора

4.3. Подсветка и состояние фокуса

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

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

Подсветка (слева) и сочетание подсветки и фокуса

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

Состояние фокуса

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

Состояние фокуса при наведении курсора

4.4. Выбранный пункт

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

Пункт выбран

4.5. Обратная связь для ошибочного ввода

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

Обратная связь в случае ошибочного заполнения

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

5.1. Пустой заполнитель

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

Вариант с пустым заполнителем

5.2. Подсказка

Другой вариант – дать в плейсхолдере одну из классических подсказок.

Вариант заполнителя с подсказкой

5.3. Побуждающая фраза

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

Побуждающая фраза: глагол + существительное.

5.4. Один из вариантов выбора

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

Вариант с предпоказом одного из элементов списка

6.1. Если в списке меньше пяти вариантов

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

Список не нужен, если в нем меньше пяти опций

Число 5, конечно, не сакральное – руководствуйтесь здравым смыслом.

6.2. Если у вас две опции, используйте слайдер

Продолжение первого правила: если опций всего две, лучше использовать простой переключатель в виде слайдера.

Если у вас две опции

6.3. Иногда легче печатать, чем выбирать

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

Иногда проще напечатать текст

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

В случае числового ввода небольших чисел, например, числа пассажиров, можно облегчить ввод с помощью степпера.

В случае ввода чисел списки тоже обычно не нужны

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

Для чисел с плавающей запятой – слайдерыТем более для интервалов

6.4. Если вариантов много

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

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

Если в списке пять и более вариантов.

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

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

Наши широкомасштабные тесты на удобство использования показывают, что в то время как 82% сайтов электронной коммерции используют специально разработанные раскрывающиеся списки для оформления заказа, 31% всех настраиваемых раскрывающихся списков имеют значительные проблемы с удобством использования.

Из публикации «5 распространенных ошибок в юзабилити кастомных выпадающих списков» (англ.)

7.1. Дефолтные списки

Вот несколько примеров нативных списков в «дикой природе». Попробуйте их на странице для тестов html.com:

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

Как видно из приведенных примеров, элементы для разных платформ и браузеров различаются незначительно. Эти списки не очень красивые, но удобные в использовании.

7.2. Использование оболочки

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

Пример использования полукастомного подхода

Пройдитесь по следующему списку и проверьте, соответствует ли ваш dropdown-элемент правилами доступности:

  1. Активное состояние выпадающего списка, включая метку, должно быть по высоте не меньше 44px.
  2. Каждая позиция в раскрывающемся меню должна быть по высоте не менее 44px с зазором между вариантами не менее 8px.
  3. Цвета должны соответствовать стандарту доступности AAA.
  4. Выпадающий список должен поддерживать состояние фокуса.
  5. Выпадающий список должен быть доступен без использования курсора (с помощью Tab).
  6. Если вы используете кастомный тип раскрывающего списка, убедитесь, что он может раскрываться вверх, когда он оказался на нижней границе области просмотра.

***

Надеемся, этот пост был для вас полезен. На proglib.io есть ещё много материалов, касающихся дизайна интерфейсов, к примеру:

Как создать или удалить выпадающий список в Excel

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

Электронную таблицу можно превратить в инструмент для анализа данных

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

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

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

Техническая сторона вопроса

Перед тем, как сделать выпадающий список в Excel, сформируйте на листе в диапазоне ячеек необходимые варианты. Проследите за тем, чтобы в этом перечне не было пустых строк, иначе Эксель не сможет создать нужный объект на листе. Введённые значения в строках можно отсортировать по алфавиту. Для этого найдите в Ленте настроек вкладку данные и нажмите на «Сортировку». Когда работа с данными у вас закончится, выделите нужный диапазон. В нём не должно быть пустых строк, это важно! Программа не сможет создать список с пустым элементом внутри себя, потому что пустая строка не будет восприниматься в качестве данных для выбора. При этом перечень данных вы можете сформировать и на другом листе, не только на том, где будет располагаться поле ввода. Допустим, вы не хотите, чтобы они были доступны для редактирования другим пользователям. Тогда имеет смысл расположить их на скрытом листе.

После того, как вы сформировали перечень данных, выделите ячейку, в которой должен быть создан выпадающий список. В Ленте настроек Excel на вкладке «Данные» найдите кнопку «Проверка». При нажатии на неё откроется диалоговое окно. В нём вам нужно выбрать пункт «Разрешить» и установить его значение на «Список». Так в этой ячейке способ ввода будет изменён на выбор из доступных вариантов. Но пока что эти варианты не определены. Для того, чтобы добавить их в созданный объект, в поле «Источник» введите диапазон данных. Чтобы не впечатывать их вручную, нажмите на значок ввода в правой части поля, тогда окно свернётся, и вы привычным выделением мышкой сможете выбрать нужные ячейки. Как только вы отпустите левую кнопку мыши, окно откроется снова. Осталось нажать ОК, и в выделенной ячейке появится треугольник, значок выпадающего списка. Нажав на него, вы получите перечень вариантов, введённых вами ранее. После этого, если варианты расположены на отдельном листе, его можно скрыть, кликнув правой кнопкой мыши на его название внизу рабочего окна и выбрав одноимённый пункт в контекстном меню.

При выделении этой ячейки рядом с ней появятся несколько кнопок. Чтобы упростить пользователю задачу ввода, вы можете с помощью этой кнопки задать имя ячейки. То же самое вы можете сделать выше, рядом с окном ввода формул есть соответствующий пункт. Так список будет понятнее, ведь пользователю не придётся гадать по его значениям, что именно тут нужно выбрать. Кроме того, в диалоговом окне можно внести сообщение-подсказку, которое будет отображено при наведении курсора на ячейку. Если ячейка не должна оставаться пустой, уберите галочку «Игнорировать пустые значения». Флажок «Список допустимых значений» должен быть установлен в любом случае.

Удаление списка

Когда выпадающий список больше не нужен, его можно удалить из документа. Для этого выделите ячейку на листе Excel, содержащую его, и перейдите в Ленте настроек на вкладку «Данные» — «Проверка данных». Там во вкладке параметров нажмите на кнопку «Очистить всё». Объект будет удалён, но при этом диапазон данных останется без изменений, то есть значения не будут удалены.

Заключение

Алгоритм создания таких объектов прост. Перед тем, как создать в Excel раскрывающийся список, сформируйте перечень значений, при необходимости отформатируйте так, как вам удобно. Обратите внимание на 2 нюанса. Первый: длина диапазона данных ограничена, пороговое значение 32767 элементов, второй: длина всплывающего окна будет определена длиной пунктов из перечня. Располагая этот объект на странице, вы упростите ввод данных от других пользователей. Их использование положительно влияет на скорость и точность работы, помогает упростить формулы, работающие в документе, и разрешает проблему неодинакового форматирования текстовых данных. Но если вы используете в книге Экселя Microsoft Share Point, создать выпадающий список будет невозможно, что связано с ограничениями в работе публикующей программы.

Создание выпадающего списка в ячейке — Выпадающие списки — Эффективная работа в Excel — Статьи об Excel

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

Итак, для создания выпадающего списка необходимо:

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

Для Excel версий ниже 2007 те же действия выглядят так:

2.  Выбираем «Тип данных» -«Список» и указываем диапазон списка

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

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

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

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

5. Если список значений находится на другом листе, то вышеописанным образом создать выпадающий список не получится (до версии Excel 2010). Для этого необходимо будет присвоить имя списку. Это можно сделать несколько способами. Первый: выделите список и кликните правой кнопкой мыши, в контекстном меню выберите «Присвоить имя«

Для Excel версий ниже 2007 те же действия выглядят так:

Второй: воспользуйтесь Диспетчером имён (Excel версий выше 2003 — вкладка «Формулы» — группа «Определённые имена«), который в любой версии Excel вызывается сочетанием клавиш Ctrl+F3.
Какой бы способ Вы не выбрали в итоге Вы должны будете ввести имя (я назвал диапазон со списком list) и адрес самого диапазона (в нашем примере это‘2’!$A$1:$A$3)

6. Теперь в ячейке с выпадающим списком укажите в поле «Источник» имя диапазона

7. Готово!

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

То есть вручную, через ;(точка с запятой) вводим список в поле «Источник«, в том порядке в котором мы хотим его видеть (значения введённые слева-направо будут отображаться в ячейке сверху вниз).

При всех своих плюсах выпадающий список, созданный вышеописанным образом, имеет один, но очень «жирный» минус: проверка данных работает только при непосредственном вводе значений с клавиатуры. Если Вы попытаетесь вставить в ячейку с проверкой данных значения из буфера обмена, т.е скопированные предварительно любым способом, то Вам это удастся. Более того, вставленное значение из буфера УДАЛИТ ПРОВЕРКУ ДАННЫХ И ВЫПАДАЮЩИЙ СПИСОК ИЗ ЯЧЕЙКИ, в которую вставили предварительно скопированное значение. Избежать этого штатными средствами Excel нельзя.

Выпадающий список с поиском в Excel — Создание выпадающего списка значений в ячейках Excel 2007

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

Содержание

Создание дополнительного списка

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

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

Выделяем данные, которые планируем занести в раскрывающийся список. Кликаем правой кнопкой мыши, и в контекстном меню выбираем пункт «Присвоить имя…».

Открывается форма создания имени. В поле «Имя» вписываем любое удобное наименование, по которому будем узнавать данный список. Но, это наименование должно начинаться обязательно с буквы. Можно также вписать примечание, но это не обязательно. Жмем на кнопку «OK».

Переходим во вкладку «Данные» программы Microsoft Excel. Выделяем область таблицы, где собираемся применять выпадающий список. Жмем на кнопку «Проверка данных», расположенную на Ленте.

Открывается окно проверки вводимых значений. Во вкладке «Параметры» в поле «Тип данных» выбираем параметр «Список». В поле «Источник» ставим знак равно, и сразу без пробелов пишем имя списка, которое присвоили ему выше. Жмем на кнопку «OK».

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

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

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

В открывшемся окне переходим в подраздел «Настройка ленты», и ставим флажок напротив значения «Разработчик». Жмем на кнопку «OK».

После этого, на ленте появляется вкладка с названием «Разработчик», куда мы и перемещаемся. Чертим в Microsoft Excel список, который должен стать выпадающим меню. Затем, кликаем на Ленте на значок «Вставить», и среди появившихся элементов в группе «Элемент ActiveX» выбираем «Поле со списком».

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

Затем мы перемещаемся в «Режим конструктора». Жмем на кнопку «Свойства элемента управления».

Открывается окно свойств элемента управления. В графе «ListFillRange» вручную через двоеточие прописываем диапазон ячеек таблицы, данные которой будут формировать пункты выпадающего списка.

Далее, кликаем по ячейке, и в контекстном меню последовательно переходим по пунктам «Объект ComboBox» и «Edit».

Выпадающий список в Microsoft Excel готов.

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

Связанные списки

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

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

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

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

Во второй ячейке тоже запускаем окно проверки данных, но в графе «Источник» вводим функцию «=ДВССЫЛ» и адрес первой ячейки. Например, =ДВССЫЛ($B3).

Как видим, список создан.

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

Всё, таблица создана.

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

Как создать раскрывающееся меню в WinForms и C #

Если вам нужно значение и заголовок (метка), создайте соответствующий класс

  класс ComboItem
{
    общедоступный int ID {получить; набор; }
    общедоступная строка Text {получить; набор; }
}
  

Затем в поле со списком вы устанавливаете для свойства DisplayMember значение Text , а для свойства ValueMember — значение ID .


DropDownStyle ComboBox определяет его поведение. DropDownStyle.DropDown позволяет пользователю вводить текст. С DropDownStyle.DropDownList пользователь может выбирать только элементы из списка.


Вы можете заполнить ComboBox так:

  myCombo.DataSource = новый ComboItem [] {
    новый ComboItem {ID = 1, Text = "One"},
    новый ComboItem {ID = 2, Text = "Two"},
    новый ComboItem {ID = 3, Text = "Three"}
};
  

Источник данных может быть любым перечислимым.

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

  int id = (int) myComboBox. SelectedValue;
  

Обратите внимание, что в ComboBox можно добавлять элементы любого типа. Если вы не укажете свойства DisplayMember и ValueMember , ComboBox использует метод объекта ToString для определения отображаемого текста, и вы можете получить выбранный элемент (не выбранное значение) с помощью свойства SelectedItem . .

Если добавить объекты этого типа …

  класс Человек
{
    общедоступный int PersonID {получить; набор }
    общедоступная строка FirstName {получить; набор; }
    публичная строка LastName {получить; набор; }

    общедоступная строка переопределения ToString ()
    {
        return FirstName + "" + LastName;
    }
 }
  

… в ComboBox, вы можете получить выбранный элемент, например,

  Лицо selectedPerson = (Человек) myComboBox.SelectedItem;
int personID = selectedPerson.PersonID;
  

ComboBox отобразит имя и фамилию людей.

immayankmodi / bind-dropdown-list-asp-net-c-vb: Серия блогов AspnetO: динамическое связывание Asp.net DropDownList в C # Vb.net

Серия блогов AspnetO: динамическое связывание Asp.net DropDownList в C # Vb.net


AspnetO — быстрый способ изучить Asp.net [http://www.aspneto.com]

Источник:

  1. http://www.aspneto.com/get-data-from-database-and-bind-to-asp-net-dropdownlist-using-c-vb-net.HTML
  2. http://www.aspneto.com/asp-net-dropdownlist-country-state-city-cascading-without-page-refresh.html
  3. http://www.aspneto.com/dropdownlist-cascading-country-state-city-dependency-one-another-in-asp-net.html
  4. http://www.aspneto.com/how-to-show-title-or-tooltip-in-asp-net-dropdownlist-using-c-vb.html

Вам также может понравиться:

  1. http://www.aspneto.com/how-to-validate-dropdownlist-in-asp-dot-net-using-jquery.html
  2. http: // www.aspneto.com/ado-net-main-difference-between-executereader-executenonquery-executescalar. html
  3. http://www.aspneto.com/how-to-bind-data-to-gridview-using-executereader-in-asp-net-c-vb-net.html
  4. http://www.aspneto.com/oop-concepts-object-oriated-programming-concepts-with-examples.html
  5. http://www.aspneto.com/100-frequent-asked-interview-questions-on-asp-net-sql-server-oop-concepts.html

Этот набор модулей предназначен для предоставления небольших рабочих примеров на языках программирования, таких как Asp.net, C # / Vb, HTML, CSS, JavaScript, jQuery и т. д. или любые другие сторонние API.

Модули стремятся быть простыми, хорошо документированными и удобными для модификации, чтобы помочь разработчикам быстро изучить их внутренняя работа, с небольшим чтением и практическим опытом. Не стесняйся, если только начинаешь, Ведь именно поэтому вы будете знать вопросы и проблемы новичка лучше, чем опытный разработчик!

  -----------
Как использовать?
-----------

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

1. Распакуйте проект в любое место на вашем компьютере.
2. Выберите C # / VB.NET, дважды щелкните файл «BindDropDownListExamples.sln».
3. Вы увидите список страниц, откройте его и следуйте образцу кода.
4. Создайте базу данных sql и выполните сценарий "country-state-city-sample-script.sql" для создания таблиц и вставки фиктивных данных.
4. Измените необходимые изменения (скорее всего, строку подключения)
5. Вот и все! Теперь вы готовы к работе ..;)
  

AspnetO — это место, где мы делимся друг с другом, вы учитесь! Для получения дополнительных руководств по веб-дизайну и разработке, вы можете посетить нас по адресу http: // www.aspneto.com. Если вы обнаружите проблему, неправильный формат кода, устаревший или неправильный код или что-то подобное, сообщите нам об этом, связавшись с нами по электронной почте. со страницы http://www.aspneto.com/contact-us/ с соответствующей темой.

Приветствуются предложения, исправления и требования к новым веткам. Пожалуйста, без спама. Мы будем следить за вами! 🙂

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

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

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

Вот несколько примеров:

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

Такие списки называются зависимыми раскрывающимися списками , поскольку список зависит от другого значения.Они создаются с проверкой данных с использованием настраиваемой формулы на основе функции ДВССЫЛ и именованных диапазонов. Это может показаться сложным, но на самом деле это очень просто и является отличным примером того, как можно использовать INDIRECT.

Прочтите, чтобы узнать, как создавать зависимые раскрывающиеся списки в Excel.

Пример зависимого раскрывающегося списка

В примере, показанном ниже, столбец B представляет собой раскрывающееся меню для категории продуктов питания, а столбец C предоставляет параметры в выбранной категории. Если пользователь выбирает «Фрукты», они видят список фруктов, если они выбирают «Орехи», они видят список орехов, а если они выбирают «Овощи», они видят список овощей.

При проверке данных в столбце B используется эта настраиваемая формула:

 

И проверка данных в столбце C использует следующую формулу сокращения:

 

Если рабочий лист содержит следующие именованные диапазоны:

категория = E4: G4
овощ = F5: F10
орех = G5: G9
фрукты = E5: E11

Как это работает

Ключ к этой технике — это диапазоны + функция КОСВЕННО. INDIRECT принимает текстовые значения и пытается оценить их как ссылки на ячейки. Например, INDIRECT возьмет текст «A1» и превратит его в фактическую ссылку:

 

Аналогичным образом, КОСВЕННЫЙ преобразует текст «A1: A10» в диапазон A1: A10 внутри другой функции:

 

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

Будьте уверены, метод до безумия есть 🙂

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

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

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

 

B5 преобразуется в текст «орех», который преобразуется в диапазон G5: G9.

Как настроить зависимые раскрывающиеся списки

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

1. Создайте нужные вам списки. В этом примере создайте список фруктов, орехов и овощей на листе.

2. Создайте именованные диапазоны для каждого списка: категория = E4: G4, овощ = F5: F10, орех = G5: G9 и фрукт = E5: E11.

Важно: значения в E4, F4 и G4 должны соответствовать последним трем указанным выше диапазонам (овощи, орехи и фрукты). Другими словами, вы должны убедиться, что имена созданных вами именованных диапазонов соответствуют значениям, которые будут отображаться в раскрывающемся списке «Категория».

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

 

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

4. Создайте правило проверки данных для зависимого раскрывающегося списка с настраиваемой формулой на основе функции КОСВЕННО:

 

В этой формуле INDIRECT просто оценивает значения в столбце B как ссылки, которые связывают их с ранее определенными именованными диапазонами.

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

Примечание. Используемый здесь подход не чувствителен к регистру.Именованный диапазон называется «орех», а значение в B6 — «орех», но функция ДВССЫЛ правильно преобразуется в именованный диапазон, даже если регистр отличается.

Работа с пробелами

Именованные диапазоны не допускают пробелов, поэтому обычно вместо них используются символы подчеркивания. Так, например, если вы хотите создать именованный диапазон для мороженого , вы должны использовать ice_cream. Это работает нормально, но зависимые раскрывающиеся списки будут повреждены, если они попытаются сопоставить «мороженое» с «ice_cream».Чтобы решить эту проблему, вы можете использовать более надежную настраиваемую формулу для проверки данных:

 

В этой формуле по-прежнему используется КОСВЕННЫЙ, чтобы связать текстовое значение в A1 с именованным диапазоном, но перед выполнением ДВССЫЛКА функция ЗАМЕНА заменяет все пробелы символами подчеркивания. Если в тексте нет пробелов, ПОДСТАВИТЬ не действует.

Практический файл

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

C # DropDownList выбор значения | автор: Jennifer Wong

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

  

AppendDataBoundItems = «true» позволяет пользователю добавлять asp: ListItems, которые не являются частью базы данных.В этом примере я добавил «- — Выбрать — -». Код позади находится в .aspx.cs. Чтобы иметь возможность выбрать элемент и обновить значение в базе данных, в DropDownList добавьте свойство AutoPostBack и установите для него значение true. Затем добавьте свойство OnSeletedIndexChanged и выберите параметр «создать новое событие». Он автоматически создаст метод в .aspx.cs.

  

Свойство AutoPostBack получает или устанавливает значение, указывающее, будет ли обратная передача в server автоматически происходит, когда пользователь изменяет выбор в списке.Метод OnSelectedIndexChanged вызывает событие SelectedIndexChanged, которое позволяет разработчикам предоставить настраиваемый обработчик для события.

В коде за файлом я добавил следующее:

 protected void DropDownList1_SelectedIndexChanged (объект-отправитель, EventArgs e) 
{
DropDownList1.SelectedValue = DropDownList1.SelectedItem.Value;
}

Присваивает текущее свойство SelectedItem.Value свойству SelectedValue. При нажатии кнопки отправки SelectedValue может быть передано в базу данных с помощью различных методов, созданных на бизнес-уровне.

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

Как сделать списки, зависящие от проверки данных Excel

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

ПРИМЕЧАНИЕ. Существует других методов, для настройки зависимых раскрывающихся списков, поэтому выберите метод настройки, который лучше всего соответствует вашим потребностям.

Демонстрация: зависимые выпадающие списки

Этот анимированный снимок экрана показывает, как работает простой зависимый раскрывающийся список.

  • Фрукты выбран как Тип продукта в строке 3, поэтому в раскрывающемся списке отображается список Фруктов
  • Овощной выбран в качестве типа продукта в строке 4, поэтому в раскрывающемся списке отображается список Овощи

В следующем разделе есть инструкции по установке и видео.

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

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

ПРИМЕЧАНИЕ. Существует других методов, для настройки зависимых раскрывающихся списков, поэтому выберите метод настройки, который лучше всего соответствует вашим потребностям.

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

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

На снимке экрана ниже вы можете увидеть заполненный лист ввода данных.

  • Выберите вид продукции (фрукты или овощи) в столбце B.
  • Затем в столбце C в зависимом раскрывающемся списке отображаются элементы только для выбранного типа продукта.

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

Настройте рабочие листы

В этом примере будет рабочая книга с двумя листами — лист ввода данных и лист со списками.

  1. Создать новую книгу
  2. Измените имя для Sheet1 на «DataEntry»
  3. Вставьте новый лист в книгу и назовите этот лист «Списки»

Создать списки

Затем вы создадите списки с элементами для раскрывающихся списков.

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

Чтобы создать каждый список, вы выполните три действия:

  1. Введите элементы в лист списков
  2. Форматировать списки в виде таблицы Excel
  3. Назовите списки.
1. Введите списки

Чтобы ввести списки, перейдите на лист Списки.Начнем с основного списка — Типы продукции.

  1. В ячейке B2 введите заголовок основного списка: Список продуктов
  2. В ячейках B3 и B4 введите Fruit and Vegetable.

ПРИМЕЧАНИЕ : Список «Продукция» содержит однословных товаров, — Фрукты и овощи. Это важно, потому что эти слова будут использоваться в качестве имен Excel, а имена из двух слов не допускаются в качестве имен . Если вам нужно используйте элементы, состоящие из нескольких слов, в основном списке, см .: Использование элементов из двух слов

Добавить зависимые списки

Затем введите зависимые списки с заголовками Список фруктов (в ячейке D2) и Список овощей (в ячейке F2).Эти списки могут содержать элементы из одного слова (яблоко) или из нескольких слов (стручковая фасоль).

2. Форматировать списки в виде таблиц

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

Выполните следующие действия для каждого из 3 списков:

  1. Выберите ячейку в списке и на вкладке «Главная» нажмите «Форматировать как таблицу».
  2. Щелкните один из стилей таблицы
  3. Поставить галочку напротив «Моя таблица имеет заголовки»
  4. Нажмите ОК

Вот лист списков, все 3 списка отформатированы как таблицы Excel

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

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

Назовите список продукции
  1. Выберите элементы в таблице «Производство» (ячейки B3: B4), но не заголовок таблицы.
  2. Щелкните поле Имя слева от строки формул
  3. Введите имя для списка из одного слова — Produce
  4. Нажмите клавишу Enter, чтобы ввести имя.
Назовите списки фруктов и овощей

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

  1. Выберите названия фруктов в ячейках D3: D6
  2. Щелкните поле Имя слева от строки формул
  3. Введите название списка из одного слова — Fruit .
  4. Нажмите клавишу Enter, чтобы ввести имя.
  5. Выберите названия овощей в ячейках F3: F6.
  6. Щелкните поле Имя слева от строки формул
  7. Введите название списка из одного слова — Vegetable .
  8. Нажмите клавишу Enter, чтобы ввести имя.

Добавить главное раскрывающееся меню

Затем вы добавите главное раскрывающееся меню (Тип продукта) на лист DataEntry. Это обычный раскрывающийся список проверки данных.

Запустите лист ввода данных

Сначала вы вводите заголовки на листе ввода данных и настраиваете именованную таблицу.

  1. На листе DataEntry введите заголовки в B2: C2 — ProductType и Item
  2. Выберите ячейку B2 и на вкладке Главная щелкните Форматировать как таблицу
  3. Щелкните один из стилей таблицы
  4. Поставить галочку напротив «Моя таблица имеет заголовки»
  5. Нажмите ОК

Добавить главное раскрывающееся меню

Далее вы увидите основной раскрывающийся список в столбце Тип продукта

  1. На листе DataEntry выберите ячейку B3
  2. На ленте перейдите на вкладку «Данные», затем нажмите «Проверка данных».
  3. В раскрывающемся списке Разрешить выберите Список
  4. В поле «Источник» введите знак равенства и имя списка: = Производство
  5. Нажмите OK, чтобы завершить настройку проверки данных.
  6. Чтобы проверить раскрывающийся список, щелкните стрелку в ячейке B3 и выберите «Фрукты» из списка.

Добавить зависимый раскрывающийся список

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

  1. На листе DataEntry выберите ячейку C3
  2. На ленте перейдите на вкладку «Данные», затем нажмите «Проверка данных».
  3. В раскрывающемся списке Разрешить выберите Список
  4. В поле Источник введите знак равенства и ДВССЫЛКА , ссылаясь на первую ячейку данных в столбце Тип продукта:
    В этом примере ячейка C3 активна, поэтому формула будет ссылаться на Ячейка типа продукта в строке 3: = КОСВЕННО (B3)
    Примечание : Если вы щелкните ячейку B3, Excel добавит абсолютную ссылку — $ B $ 3 .Удалите знаки $, поскольку нам нужна относительная ссылка в этой формуле
  5. Нажмите ОК.

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

Проверка выпадающих списков

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

  1. Фрукт должен быть выбран в ячейке B3 — если нет, выберите его сейчас.
  2. Выберите ячейку C3, затем щелкните стрелку и выберите один из фруктов в списке.

  3. Затем нажмите клавишу TAB, чтобы начать новую строку в таблице ввода данных.
  4. В столбце «Тип продукта» выберите «Овощной» в раскрывающемся списке «Продукт».
  5. Перейти в столбец «Товар», в том же ряду.
  6. В столбце «Товар» щелкните стрелку раскрывающегося списка и выберите товар из списка «Овощи».

ПРИМЕЧАНИЕ : Если Тип продукта не был выбран, раскрывающийся элемент в этом ряду работать не будет.

Зависимый выпадающий список — Города

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

В этом видео показаны основные этапы настройки, а затем показано, как использовать функцию ЕСЛИ в Excel с зависимым раскрывающимся списком.

Показать длинный или короткий раскрывающийся список

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

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

Настройка списков

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

  1. Введите полный список клиентов
  2. Выберите все ячейки в этом списке и назовите диапазон: FullList
  3. В другом столбце введите «Полный список» в строке 2.
  4. Начиная со строки 3, введите краткий список основных клиентов
  5. Выберите все ячейки в этом списке, включая ячейку «Полный список»
  6. Назовите этот диапазон: ShortList

Создать раскрывающийся список

Затем вы создадите раскрывающийся список, используя проверку данных с помощью формулы IF:

  1. Выберите ячейки, в которых должен быть раскрывающийся список клиентов
  2. На ленте перейдите на вкладку «Данные», затем нажмите «Проверка данных».
  3. В диалоговом окне Проверка данных в разделе Разрешить выберите Список
  4. В поле «Источник» введите формулу ЕСЛИ, которая ссылается на активную ячейку и именованные списки.
    • Если вы используете список в одной ячейке, используйте абсолютную ссылку
      • = ЕСЛИ ($ E $ 3 = «Полный список», Полный список, Короткий список)
    • Для нескольких ячеек используйте относительную ссылку
      • = ЕСЛИ (E3 = «Полный список», Полный список, Короткий список)
  5. Нажмите ОК, чтобы закрыть диалоговое окно.

Используйте раскрывающийся список

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

Если ячейка , а не содержит текст «Полный список», в раскрывающемся списке отобразится краткий список основных клиентов.

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

Расширенные зависимые выпадающие списки

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

Используйте элементы из двух слов

В некоторых книгах может потребоваться, чтобы элементы из двух слов были Раскрывающийся список проверки данных Excel. Например, вы выбрали «Красный» Fruit »,« Green Fruit »и« Yellow Fruit »

  1. Создайте первый именованный диапазон и раскрывающийся список, как описано выше.
  2. Создайте поддерживающие именованные списки, используя имена из одного слова, напримерКрасный фрукт, Зеленый фрукт, желтый фрукт
  3. Во втором раскрывающемся списке выберите Разрешить: список и используйте формулу который удаляет пробелы из имен. Например:

= КОСВЕННО (ПОДСТАВИТЬ (A2, «», «»))

Основные предметы с запрещенными символами

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

Например, вы можете выбрать «Красные фрукты», «Зеленые фрукты» и «Желтые фрукты». & Апельсин’. Для зависимых списков можно создавать диапазоны с именами из одного слова, например YOFruit . Затем создайте таблицу поиска, в котором перечислены все элементы в первом раскрывающемся списке проверки данных Excel, и диапазон, в котором будут храниться его зависимые элементы.

Для начала создайте списки элементов и первую проверку данных Excel раскрывающийся список:

  1. Создайте первый именованный диапазон и раскрывающийся список, как описано выше.В этом примере диапазон назван ProductList со значениями в ячейках A6: A8. В раскрывающемся списке в ячейке A2 используется ProductList как его источник.
  2. Создайте зависимые списки и назовите их, используя имена из одного слова, со словом «список» в конце, например RedFruitList , GreenFruitList , ИОФруктовый список . В этом примере RedFruitList находится в A11: A12, YOFruitList находится в A15: A16, а GreenFruitList находится в A19: 20.
  3. Выберите элемент из раскрывающегося списка в ячейке A2.

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

  1. В столбце справа от диапазона FruitList введите код имя для каждого зависимого списка элемента. Например, вводится YOFruit как кодовое название для желтых и оранжевых фруктов.
  2. Назовите таблицу поиска.В этом примере диапазон A6: B8 назван ProductLookup .
  3. Выберите ячейку B2 и в меню «Данные» выберите «Проверка».
  4. Разрешить: список.
  5. В качестве источника введите формулу, которая использует формулу VLookup для поиска имя диапазона зависимого списка — комбинация кодового имени и «Список».
    Например: = КОСВЕННО (ВПР (A2, ProductLookup, 2,0) & «Список»)

Если в ячейке A2 выбрано Red Fruit , формула VLookup будет вернуть RedFruitList в качестве имени диапазона для зависимого списка.Элементы RedFruitList будут отображаться в раскрывающемся списке ячейки B2.

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

На снимке экрана ниже показаны таблицы поиска с именем RedFruitLookup, YOFruitLookup и GreenFruitLookup. Списки предметов с кодовыми названиями и «Список» были добавлены в рабочий лист.

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

= КОСВЕННАЯ (ВПР (B2, КОСВЕННАЯ (ВПР (A2, ProductLookup, 2,0) и «Поиск»), 2,0) и «Список»)

Формула находит справочную таблицу на основе выбранного типа продукта. в ячейке А2, эл.грамм. RedFruitLook и получает код выбранного продукта — Mac. Он добавляет к коду «Список» и показывает элементы в ассортимент MacList.

Добавить третий зависимый раскрывающийся список

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

Обратите внимание, что названия регионов не уникальны. — Западный регион есть и в Канаде, и в США, поэтому мы не можем показать список городов, основанный только на названиях регионов.

Чтобы убедиться, что отображается правильный список городов, списки городов будут названы по стране и региону. Есть 2 страны, и каждая страна имеет 3 региона, поэтому мы настроим 6 именованных диапазонов для раскрывающихся списков 3-го уровня.

ПРИМЕЧАНИЕ : Если вам нужно больше, чем несколько именованных диапазонов для списков 3-го уровня, попробуйте вместо этого метод «Зависимые списки с таблицами» — его будет проще настроить и поддерживать.

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

  1. Создайте основные именованные диапазоны — Страна, Канада и США, как описано выше.
  2. Создайте еще один набор именованных диапазонов, присвоив им имена для доступных комбинации в первых двух списках. Для Например, создайте диапазоны с именами CanadaWest и USAWest.

  3. На листе ввода данных настройте раскрывающиеся списки в столбцах Страна и Регион.
  4. В раскрывающемся списке Город добавьте проверку данных и выберите Разрешить: Список
  5. В качестве источника используйте формулу который объединяет записи в первых двух столбцах.
    Например, в ячейке D2 проверка данных формула использует INDIRECT и SUBSTITUTE для объединения значений в B2 и C2 и удаления любых пробелов:
  6. = КОСВЕННО (ПОДСТАВИТЬ (B2 & C2, «», «»))

Использовать динамические списки

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

Именованные таблицы Excel

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

  • Создайте таблицу с элементами списка
  • Выбрать все элементы в столбце таблицы (не заголовок)
  • Щелкните поле «Имя», введите имя диапазона из одного слова и нажмите «Ввод».

Затем используйте один из показанных выше примеров функции КОСВЕННЫЙ, чтобы создать зависимый раскрывающийся список.

Обход динамического имени

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

  1. Создайте первый именованный диапазон и раскрывающийся список, как описано выше.
  2. Создайте поддерживающие именованные списки и назовите первую ячейку в каждом диапазон, например ячейка B1 называется «Фрукты», а ячейка C1 — «Овощи».

  3. Назовите столбец, в котором находится каждый список, например.грамм. столбец B называется FruitCol, а столбец C — VegetablesCol
  4. Во втором раскрывающемся списке выберите Разрешить: список и используйте формулу который вычисляет диапазон поиска. Например, если первое раскрывающееся меню список находится в ячейке E2:

= СМЕЩЕНИЕ (КОСВЕННОЕ ($ E2), 0,0, СЧЕТ (КОСВЕННОЕ (E2 & «Столбец»)), 1)

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

= СМЕЩЕНИЕ (КОСВЕННО (ПОДСТАВИТЬ ($ F2, «», «»)), 0,0, СЧЕТ (КОСВЕННО (ПОДСТАВИТЬ ($ F2, » «,» «) И» Col «)), 1)

Предотвратить недопустимый выбор

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

Например, в главном раскрывающемся списке можно выбрать «Фрукты», а в зависимом раскрывающемся списке — «Лимон». Если позже фрукт будет изменен на овощ, выбор лимона будет неправильным — это не овощ.

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

Изменения блока в первую очередь Выпадающий

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

Изменения блока в первом раскрывающемся списке

С зависимыми выпадающими списками могут возникнуть проблемы, если кто-то пойдет вернуться к первому списку и изменить его. Затем первый и второй выбор не совпадают — например, на снимке экрана ниже Vegetable первый выбор, а банан выбран во втором столбце.

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

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

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

Чтобы изменить формулу:

  1. Выберите ячейки проверки данных в первом столбце
  2. На вкладке «Данные» ленты щелкните «Проверка данных».
  3. Для Разрешить выберите Список
  4. В поле Формула введите:
  5. = ЕСЛИ (C2 = «», Произвести, КОСВЕННО («FakeRange»))

  6. Нажмите ОК

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

Очистить зависимую ячейку после выбора

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

Другой вариант — использовать макрос для очистки зависимой ячейки после сделав выбор в первом раскрывающемся списке. Это предотвратит несоответствие выбор.

В этом примере столбец B содержит раскрывающийся список регионов.После вы выбираете регион, раскрывающийся список в столбце C показывает клиентов в выбранном регионе.

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

Добавить код события для очистки ячейки клиента

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

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

ПРИМЕЧАНИЕ : В образце книги также есть код для очистки нескольких зависимых ячеек .

 Private Sub Worksheet_Change 
_ (Целевое значение ByVal как диапазон) При ошибке Возобновить Далее Если Target.Column = 2, то Если Target.Validation.Type = 3, то Application.EnableEvents = False Цель.Смещение (0, 1) .ClearContents Конец, если Конец, если exitHandler: Application.EnableEvents = True Выйти из подводной лодки Конечный переводник

Скачать образцы файлов

  1. Скачать образец файла для зависимых проверка данных Intro — Fruit / Vegetable example
  2. Скачать образец файла для зависимых проверка данных Advanced — 3-й список; 2-слово / незаконно
  3. Скачать образец файла для зависимых проверка данных с помощью динамических списков — пример фруктов / других продуктов / овощей
  4. Скачать образец файла для Clear Зависимая ячейка после выбора
  5. Загрузите образец файла для краткого или длинного раскрывающегося списка клиентов.

Не пропустите наши советы по Excel

Не пропустите мои последние советы и видео по Excel! Щелкните OK, чтобы получать мой еженедельный информационный бюллетень с советами по Excel и ссылками на другие новости и ресурсы Excel.

Дополнительные уроки

Основы проверки данных

Индекс проверки данных Страница

Изменить название продукта на код

Выбор зависимых раскрывающихся меню

Зависимое выпадающее из динамических массивов

Dependent Drop Down Lists Видео

Зависимые раскрывающиеся списки из отсортированного списка

Зависимые списки с индексом

Скрыть ранее использованные элементы в раскрывающемся списке

Используйте список проверки данных из другой книги

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

Советы по проверке данных

Проверка данных с помощью комбинированного списка

Зависимые раскрывающиеся списки в Excel с несколькими словами и пробелами в первом списке — Xelplus

Таким же образом перейдите к Data Validation на вкладке Data и выберите List .

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

  • Дивизион производительности: 5 австралийских долларов: 19 австралийских долларов
  • Размер игры: $ B $ 5: $ B $ 19
  • Utility Div: 5 канадских долларов: 19 канадских долларов

Вместо этого будет использоваться комбинация функций ИНДЕКС () и ПОИСКПОЗ () в Excel.

Однако запись формулы непосредственно в поле Source окна Data Validation не даст вам помощи Excel, которая поможет вам с синтаксисом.

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

Синтаксис INDEX ():

= ИНДЕКС (массив; номер_строки; [номер_столбца])

  • массив: область, в которой может быть ответ. В данном случае это $ A $ 5: $ C $ 19.
  • row_num: определяет, сколько строк нужно переместить вниз по массиву, чтобы найти ответ. Поскольку мы хотим включить все строки, оставьте это поле пустым.
  • column_num: указывает номер столбца, в котором находится список ответов. Поскольку мы хотим, чтобы он был динамическим в соответствии с выбором в первом раскрывающемся списке, будет использоваться функция ПОИСКПОЗ (). Это вернет число, определяющее, сколько столбцов нужно переместить вправо, чтобы найти ответ.

Синтаксис MATCH ():

= ПОИСКПОЗ (искомое_значение, искомый_массив, [тип_сопоставления])

  • lookup_value: значение, которое вы хотите найти. В данном случае это $ G $ 4.
  • lookup_array: здесь искать lookup_value. $ A $ 4: $ C $ 4.
  • match_type: есть три варианта: «1 — меньше чем», «0 — точное совпадение» и «-1 — больше чем». Используйте 0.

Окончательная формула:

= ИНДЕКС ($ A $ 5: $ C $ 19« ПОИСКПОЗ ($ G $ 4, $ A $ 4: $ C $ 4,0))

Поскольку это будет вставлено в проверку данных, обязательно исправьте ссылки на ячейки, добавив $ или нажав клавишу F4. (Вот ссылка на другие руководства INDEX MATCH.)

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

Чтобы проверить, возвращает ли он правильный список, перейдите в строку формул и нажмите клавишу F9.

Затем он покажет содержимое.

Нажмите ESC или CTRL Z, чтобы выйти из этого вида и вернуться к обычной формуле.

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

Перейдите в ячейку, в которой вы хотите второй раскрывающийся список, ячейку G5.

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

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

Как привязать фотографии к выбору раскрывающегося списка в Excel — Excel-байты

Вот как можно изменить фотографию на основе выбора из раскрывающегося списка в Excel:

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

Этот пост был получен в результате вопроса, заданного на форуме группы пользователей LinkedIn, и в ответе упоминался подкаст-дуэль между Mr. Excel и Excel Is Fun. Вот ссылка на подкаст дуэлей по этой теме.

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

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

Вот 4 фотографии и имена, которые я хочу связать с каждой:

Вот результат, которого я хочу достичь:

Как и в случае с некоторыми предыдущими сообщениями в блоге, я настоятельно рекомендую вам посмотреть видео. Я кратко прохожу шаги ниже, но видео лучше всего объясняет детали, чтобы сделать это.

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

Шаг 2. Создайте список для раскрывающегося списка «Проверка данных». Сначала я назвал список из ячеек A2: A5 «Вино», используя «Создать из выделенного» на вкладке «Формулы».

Шаг 3: Найдите место для раскрывающегося списка и с помощью «Проверка данных — Списки» введите список в соответствии с тем, как вы его назвали. В моем случае: «= Wine»:

Шаг 4: Назовите ячейки, в которых находятся фотографии. Опять же, я использовал «Создать из выделенного» и назвал ячейки B2: B5 на основе имен в ячейках A2: A5.

Шаг 5: Щелкните ячейку, в которой расположен раскрывающийся список, и создайте именованную формулу. Для этого воспользуйтесь сочетанием клавиш Ctrl + F3, затем нажмите «Создать». Затем я заключил расположение ячейки в КОСВЕННУЮ функцию. INDIRECT преобразует текстовую строку в фактическую ссылку на ячейку. Я также назвал его «WinePhoto». Теперь любое имя, которое мы вызываем из раскрывающегося списка, будет привязано к ссылке на ячейку с тем именем, которое мы сделали на шаге 4:

.

Шаг 6: Наконец, скопируйте любую из фотографий в желаемое место рядом с раскрывающимся списком, затем щелкните фотографию и в строке формул введите =, а затем имя формулы из шага 5:

Теперь при любом выборе из раскрывающегося списка должна появиться фотография с этим именем!

Счастливого отличия!

.

Добавить комментарий

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