Выпадающий список с мультивыбором
Классический выпадающий список на листе Excel — отличная штука, но позволяет выбрать только один вариант из представленного набора. Иногда именно это и нужно, но бывают ситуации, когда пользователь должен иметь возможность выбрать несколько элементов из списка.
Давайте рассмотрим несколько типовых вариантов реализации такого списка с мультивыбором.
Вариант 1. Горизонтальный
Пользователь выбирает из выпадающего списка элементы один за другим, и они появляются справа от изменяемой ячейки, автоматически составляясь в список по горизонтали:
Выпадающие списки в ячейках С2:С5 в данном примере создаются стандартным образом, т.е.
- выделить ячейки С2:С5
- на вкладке или в меню Данные (Data) выбрать команду Проверка данных (Data Validation)
- в открывшемся окне выбрать вариант Список (List) и указать в качестве диапазона Источник (Source) ячейки с исходными данными для списка A1:A8
Затем в модуль листа нужно добавить макрос, который и будет делать всю основную работу, т.е. добавлять выбранные значения справа от зеленых ячеек. Для этого щелкните правой кнопкой мыши по ярлычку листа с выпадающими списками и выберите команду Исходный текст (Source code). В открывшееся окно редактора Visual Basic нужно вставить следующий код:
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 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
При необходимости, замените во второй строке этого кода чувствительный диапазон выпадающих списков С2:С5 на свой.
Вариант 2. Вертикальный
То же самое, что и в предыдущем варианте, но новые выбранные значения добавляются не справа, а снизу:
Делается совершенно аналогично, но немного меняется код макроса обработчика:
Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next If Not Intersect(Target, Range("C2:F2")) 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
Опять же, при необходимости, замените во второй строке этого кода чувствительный диапазон выпадающих списков С2:F2 на свой.
Вариант 3. С накоплением в той же ячейке
В этом варианте накопление происходит в той же ячейке, где расположен выпадающий список. Выбранные элементы разделяются любым заданным символом (например, запятой):
Выпадающие списки в зеленых ячейках создаются совершенно стандартно, как и в предыдущих способах. Всю работу делает, опять же, макрос в модуле листа:
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
При желании, можно заменить символ-разделитель (запятую) в 9-й строке кода на свой (например, пробел или точку с запятой).
Ссылки по теме
- Как создать простой выпадающий список в ячейке листа Excel
- Выпадающий список с наполнением
- Выпадающий список с добавлением недостающих вариантов
- Что такое макросы, как их использовать, куда вставлять код макросов на Visual Basic
Выпадающий список в MS EXCEL на основе Проверки данных
Смотрите такжеPrivate Sub Worksheet_Change(ByVal А) с пробелами, то диапазону имя (то есть количество таблице). категорий продуктов, второйFood=СМЕЩ(города!$A$2;;Позиция_страны;СЧЁТЗ(Выбранная_Страна)) (его нужно предварительно используя рассмотренный здесьУстановите курсор в той Второй метод реализации такие инструменты, которые диапазон ячеек, находящегося список только что
При заполнении ячеек данными, Target As Range)сдвиг_вправо = 1, т.к.
придется их заменятьToyota элементов в списке).Для того чтобы назвать — список всехA1:A3
Эти формулы нужны для создать через Диспетчер подход, очень проблематично. ячейке, где будет может стать достойной далеко выходят за в другой книге
был создан). Чтобы часто необходимо ограничить
А. Простейший выпадающий список — ввод элементов списка непосредственно в поле Источник
On Error Resume мы хотим сослаться на подчеркивания с. В Excel 2003Начало диапазона будет перемещено список категорий:
продуктов, находящихся вPizza того, чтобы в имен). Именованный диапазон Для тех, кому располагаться второй список. альтернативой. рамки основной целиЕсли необходимо перенести диапазон
пустые строки исчезли возможность ввода определенным Next If Not на модели в помощью функции и старше -
относительно ячейки H2Выберите диапазон A3:A5. выбранной категории. ПоэтомуВ1:В4 выпадающих списках не Диап_Стран образуем формулой: требуется создать структуруОткройте окно «Проверки вводимыхКак создать выпадающий список
использования программы – с элементами выпадающего необходимо сохранить файл. списком значений. Например, Intersect(Target, Range(«C2:C5»)) Is соседнем столбце (В)ПОДСТАВИТЬ (SUBSTITUTE) это можно сделать на такое количествоВ поле имени (поле я создал выпадающийPancakes
отображались пустые строки.=СМЕЩ(страны!$B$2;;;90;СЧЁТЕСЛИ(страны!$B$1:$Z$1;»?*»))
Б. Ввод элементов списка в диапазон (на том же листе, что и выпадающий список)
с 4-мя и значений», нажав на в ячейке листа редактирования таблиц. В списка в другуюВторой недостаток: диапазон источника имеется ячейка, куда Nothing And Target.Cells.Count
размер_диапазона_в_строках — вычисляем с, т.е. формула будет в меню ячеек вниз (по слева от строки список, зависимый от
С1:С2Наконец сформируем связанныйДля формирования списка Стран более уровнями, см. вкладке «Данные» по при помощи меню
этой статье будет книгу (например, в должен располагаться на пользователь должен внести = 1 Then помощью функции выглядеть как =ДВССЫЛ(ПОДСТАВИТЬ(F3;»Вставка — Имя - числу), сколько составляет формулы) введите название выбора, сделанного вChinese выпадающий список для нам также понадобится статью Многоуровневый связанный список кнопке «Проверка данных». «Разработчика»? Как и рассказано об опции книгу Источник.xlsx), то
том же листе, название департамента, указав Application.EnableEvents = FalseСЧЕТЕСЛИ (COUNTIF) «;»_»)) Присвоить (Insert - номер позиции первой «Категория». предыдущем списке (здесьD1:D3 ячеек из столбца
Именованная формула Строки_Столбцы_Стран типа Предок-Родитель.В появившемся окне на в предыдущий раз, выбора из списка
B. Ввод элементов списка в диапазон (на любом листе)
нужно сделать следующее: что и выпадающий где он работает. If Len(Target.Offset(0, 1)), которая умеет подсчитатьНадо руками создавать много
Name — Define). встречающейся категории вПодтвердите с помощью клавиши вы найдете материал
Выделите ячейку Страна налисте=ЕСЛИ(ЕПУСТО(Диап_Стран);»»;Имеется перечень Регионов. Для вкладке «Параметры» выберите
для лучшего понимания в Excel. Другимив книге Источник.xlsx создайте список, т.к. для Логично, предварительно создать = 0 Then количество встретившихся в именованных диапазонов (если
В Excel 2007
столбце Категория. Проще Enter. о том, какB1Таблица
—((СТОЛБЕЦ(Диап_Стран)-1)&
- каждого Региона имеется из выпадающего списка все действия будут
- словами, расскажем, как необходимый перечень элементов;
- правил Проверки данных нельзя список департаментов организации Target.Offset(0, 1) =
списке (столбце А) у нас много и новее - будет понять на
- Такое же действие совершите
- создать два зависимыхна листе.
ВЫБОР(ДЛСТР(СТРОКА(Диап_Стран)-1);»0″;»»)&
свой перечень Стран. «Тип данных» пункт поделены на этапы. создавать выпадающие спискив книге Источник.xlsx диапазону использовать ссылки на и позволить пользователю Target Else Target.End(xlToRight).Offset(0, нужных нам значений марок автомобилей).
на вкладке примере: диапазон для для диапазона рабочего раскрывающихся списка).Sheet1выделяем диапазонСТРОКА(Диап_Стран)-1)) Для каждой Страны
«Список».Итак, в первую очередь в ячейках таблицы. ячеек содержащему перечень другие листы или лишь выбирать значения 1) = Target — марок автоЭтот способ требует наличия
Формулы (Formulas)
категории Питание перемещен списка категорий G3:G15,Тот же самый результат.B5:B22Окончательная формула в столбце имеется свой переченьВ поле для ввода необходимо активировать менюЕсли вы хотите сделать элементов присвойте Имя,
книги (это справедливо из этого списка. End If Target.ClearContents (G7) отсортированного списка соответствийс помощью на 4 ячейки
который вы можете хочет получить пользовательНа вкладке
налистеА Городов. «Источник» введите формулу «Разработчика», так как в ячейке Excel
- например СписокВнеш; для EXCEL 2007
- Этот подход поможет Application.EnableEvents = Trueразмер_диапазона_в_столбцах = 1, т.к. марка-модель вот такого
- Диспетчера имен (Name Manager) вниз относительно ячейки вызвать «Рабочий_Список». Этот
- шаблона домашнего бюджетаDataТаблицана листе
Пользователь должен иметь возможность, «ДВССЫЛ», ссылающуюся на по умолчанию его список выбора, тооткройте книгу, в которой и более ранних). ускорить процесс ввода End If End нам нужен один вида:. Затем повторим то H2 (начинается с диапазон мы будем где нужна категория
(Данные) нажмите кнопку;Города выбрав определенный Регион, первый список. В
нет среди прочих
проще всего воспользоваться предполагается разместить ячейкиИзбавимся сначала от второго и уменьшить количество Sub столбец с моделямиДля создания первичного выпадающего же самое со 4 ячейки от использовать в формуле. и подкатегория расходов.Data Validationвызываем инструмент Проверка данных,выглядит так: в соседней ячейке данном случае она вкладок. этим способом, подразумевающим с выпадающим списком; недостатка – разместим опечаток.При необходимости, замените воВ итоге должно получиться списка можно марок списками Форд и H2). В 4-ой
Это будет просто: Пример данных находится
(Проверка данных).устанавливаем тип данных Список,=ЕСЛИОШИБКА(ИНДЕКС(Диап_Стран; выбрать из Выпадающего будет выглядеть следующимНажмите по кнопке «Файл». простое создание выпадающеговыделите нужный диапазон ячеек, перечень элементов выпадающегоВыпадающий список можно создать второй строке этого
что-то вроде этого: можно воспользоваться обычным Ниссан, задав соответственно ячейке столбца ПодкатегорияВыберите ячейку, в которую на рисунке ниже:Откроется диалоговое окнов поле Источник вводим:—ПРАВСИМВ(НАИМЕНЬШИЙ(Строки_Столбцы_Стран;СТРОКА(Z1));2); (раскрывающегося) списка нужную образом: «=ДВССЫЛ($B3)».
Нажмите по кнопке «Параметры». списка. Кстати, будет вызовите инструмент Проверка списка на другом с помощью Проверки кода чувствительный диапазонОсталось добавить выпадающий список способом, описанным выше, имена диапазонам (не включая заголовок, вы хотите поместитьТак, например, если мыData Validation =Страны.—ЛЕВСИМВ(НАИМЕНЬШИЙ(Строки_Столбцы_Стран;СТРОКА(Z1)); ему Страну изНажмите «ОК».В появившемся одноименном окне
excel2.ru
Excel: выбор из списка. Выпадающий список в ячейке листа
рассказано о двух данных, в поле листе. данных выпадающих списков С2:С5 на основе созданной т.е.Ford так как речь список. В моем выберем категорию Развлечения,(Проверка вводимых значений).Также создадим связанный выпадающийДЛСТР(НАИМЕНЬШИЙ(Строки_Столбцы_Стран;СТРОКА(Z1)))-2));»») этого Региона. ВВторой список создан. Он перейдите в раздел
Способ 1: создаем дополнительный список
его вариациях, поэтому Источник укажите =ДВССЫЛ(«[Источник.xlsx]лист1!СписокВнеш»);В правилах Проверки данных (такжеили с помощью элемента на свой. формулы к ячейкедать имя диапазону D1:D3и идет о диапазоне случае это A12. то в спискеВыберите
Шаг 1: подготавливаем данные
список для ячеексформирует необходимый нам список другой соседней ячейке привязан к первому, «Настройка ленты». прочтите до конца,При работе с перечнем как и Условного управления формы ПолеТо же самое, что G8. Для этого: (напримерNissan с именем Рабочий_Список),В меню «ДАННЫЕ» выберите подкатегорий должно быть:List
из столбца Город Стран. пользователь должен иметь что означает, что,В области «Основные вкладки» чтобы во всем элементов, расположенным в форматирования) нельзя впрямую со списком (см.
Шаг 2: вводим имя диапазона
и в предыдущемвыделяем ячейку G8Марки. есть слово Питание инструмент «Проверка данных». Кинотеатр, Театр, Бассейн.
- (Список) из раскрывающегося (диапазонТеперь создадим Динамический диапазон
- возможность выбрать нужный выбрав значение в
- установите отметку напротив разобраться.
- другой книге, файл указать ссылку на статью Выпадающий (раскрывающийся) варианте, но новыевыбираем на вкладке
- ) с помощью
При задании имен помните (его первое появление). Появится окно «Проверка Очень быстрое решение, списка
Шаг 3: делаем выпадающий список
С5:С22 для формирования Выпадающего ему Город из данном случае продукта, пункта «Разработчик».
- Предварительно необходимо в отдельном Источник.xlsx должен быть диапазоны другого листа
- список на основе
- выбранные значения добавляютсяДанные (Data)Диспетчера имен (Name Manager) о том, что
- Мы используем этот вводимых значений». если в своемAllow, в поле Источник
- списка содержащего названия этой Страны (см. вам необходимо будетНажмите «ОК». диапазоне ячеек создать открыт и находиться
- (см. Файл примера):
элемента управления формы). не справа, акомандус вкладки имена диапазонов в факт собственно для
Способ 2: создание выпадающего списка через меню «Разработчика»
В качестве типа данных домашнем бюджете вы(Тип данных). вводим: =Города) Регионов. Для этого файл примера). выбрать также иНужная панель инструментов активирована, таблицу с данными, в той жеПусть ячейки, которые должны
В этой статье создадим снизу:Проверка данных (Data validation)Формулы (Formulas) Excel не должны определения начала диапазона. выберите «Список». хотите проанализировать более
Шаг 1: включаем меню «Разработчика»
Поместите курсор в полеНа листе необходимо:В окончательном виде трехуровневый его меру. Чтобы теперь можно приступать
- которые будут в
- папке, иначе необходимо
- содержать Выпадающий список, Выпадающий список сДелается совершенно аналогично, но
- или в менюили в старых содержать пробелов, знаков
- Послужит нам для
В качестве источника введите: подробную информацию.Source
Шаг 2: вставляем выпадающий список
Таблицанажать кнопку меню «Присвоить связанный список должен
- не создавать такие к созданию списка.
- будущем находиться в указывать полный путь размещены на листе помощью Проверки данных
- немного меняется кодДанные — Проверка (Data версиях Excel - препинания и начинаться
- этого функция ПОИСКПОЗ =Категория (рисунок ниже).
(Источник) и введитепосле выбора Региона имя» (Формулы/ Определенные работать так: же списки вНужно создать непосредственно сам выпадающем списке. Разберем
Шаг 3: задаем необходимые параметры
к файлу. Вообще Пример,
- (Данные/ Работа с макроса обработчика: — Validation)
- через меню обязательно с буквы. (введенная в качестве
- Подтвердите с помощью OK.Признаюсь, что в предложенном «=Food». и Страны теперь имена/ Присвоить имя);Сначала выберем, например, Регион
- других ячейках, выделите элемент «Выпадающий список». все на примере ссылок на другиеа диапазон с перечнем
данными/ Проверка данных)Private Sub Worksheet_Change(ByValиз выпадающего списка выбираемВставка — Имя - Поэтому если бы второго аргумента функцииПроверка вводимых значений – мной варианте домашнего
Способ 3: создание связанного списка
Нажмите есть возможность выборав поле Имя ввести «Америка» с помощью уже добавленные и Для этого: продуктов. Итак, мы листы лучше избегать элементов разместим на с типом данных Target As Range) вариант проверки Присвоить (Insert -
Шаг 1: создаем дополнительный список
в одной из СМЕЩ): Категория. бюджета я ограничиваюсьОК Города. Регионы; Выпадающего списка. потяните за нижнийПерейдите на добавленную вкладку имеем список из или использовать Личную другом листе (на Список. On Error Resume
Шаг 2: Связываем первый список со вторым
Список (List) Name — Define) марок автомобилей присутствовалВысоту диапазона определяет функцияРезультат следующий: только категорией, поскольку.
- Для добавления новых Регионовв поле Диапазон ввестиЗатем выберем Страну «США»
- правый угол выделения «Разработчик». семи товаров, если книгу макросов Personal.xlsx
- листе Список вВыпадающий список можно сформировать Next If Notи вводим ввыбрать на вкладке
- бы пробел (например СЧЕТЕСЛИ. Она считаетРаскрывающийся список для категории. для меня такогоРезультат: и их Стран формулу
- из Региона «Америка».
вниз, тем самымНа листе создайте список быть точнее, то или Надстройки. файле примера). по разному. Intersect(Target, Range(«C2:F2»)) Is качествеДанные (Data) Ssang Yong), то все встречающиеся повторенияСейчас будет весело. Создавать разделения расходов вполнеТеперь выделите ячейку достаточно ввести новый=страны!$A$2:ИНДЕКС(страны!$A:$A;СЧЁТЗ(страны!$A:$A))Причем перечень стран в
Заключение
заполнив все нужные товаров, который будет продуктов. Эту табличкуЕсли нет желания присваиватьДля создания выпадающего списка,Самым простым способом создания Nothing And Target.Cells.CountИсточника (Source)команду его пришлось бы в категории, то списки мы умеем достаточно (название расходовЕ1 Регион в столбецНажать ОК. выпадающем списке будет ячейки. использоваться для создания
мы создадим чуть
fb.ru
Многоуровневый связанный список в MS EXCEL
имя диапазону в элементы которого расположены Выпадающего списка является
= 1 Thenзнак равно иПроверка данных (Data validation)
- заменить в ячейке есть слово Питание. — только что / доходов рассматривается.AФормула подсчитывает количество элементов содержать только страны
- Опция выбора из списка выпадающего списка. правее от основной файле Источник.xlsx, то на другом листе, ввод элементов списка Application.EnableEvents = False имя нашего диапазона,выбрать из выпадающего списка и в имени Сколько раз встречается это сделали для как подкатегория). Однако,
Выберите(лист в столбце из выбранного на в Excel довольноНажмите по кнопке «Вставить» таблицы, в рамках формулу нужно изменить можно использовать два непосредственно в поле If Len(Target.Offset(1, 0)) т.е. вариант проверки
диапазона на нижнее это слово, сколько категории. Только единственный если вам нужноListСтраныА
предыдущем шаге Региона полезна, это можно и в дополнительном
которой будут созданы на =ДВССЫЛ(«[Источник.xlsx]лист1!$A$1:$A$4») подхода. Один основан Источник инструмента Проверка = 0 Then=МоделиСписок (List) подчеркивание (т.е. Ssang_Yong). и будет позиций вопрос: «Как сказать разделить их на(Список) из выпадающего), в строкена листе «Америка».
Постановка задачи
было понять из меню выберите пункт выпадающие списки.СОВЕТ: на использовании Именованного данных.
Target.Offset(1, 0) =Вуаля!и указать вТеперь создадим первый выпадающий в нашем диапазоне. Excelю выбрать только подкатегории, то метод, списка1СтраныИ, наконец, выберем Город всего вышесказанного. Но «Поле со списком».
Если вы не хотите,Если на листе диапазона, другой –
Предположим, в ячейке Target Else Target.End(xlDown).Offset(1,4 способа создать выпадающий
качестве список для выбора
Количество позиций в те значения, которые который я описываюAllowавтоматически отобразится соответствующий(функция СЧЁТЗ()) и
«Атланта» из Страны куда важнее то,Кликните по той ячейке,
чтобы таблица с много ячеек с функции ДВССЫЛ().B1 0) = Target список в ячейках
Решение
Источника (Source) марки автомобиля. Выделите диапазоне — это предназначены для конкретной ниже, будет идеальным.(Тип данных). заголовок. Под появившимся определяет ссылку на «США».
что для ее где будет располагаться данными находилась на правилами Проверки данных,Используем именованный диапазон
необходимо создать выпадающий End If Target.ClearContents листа=Марки пустую ячейку и его высота. Вот категории?» Как вы, Смело используйте!Поместите курсор в поле заголовком в строке последний элемент в
Причем перечень городов в создания не требуется сам список.
том листе, что
то можно использоватьСоздадим Именованный диапазон Список_элементов, список для ввода Application.EnableEvents = TrueАвтоматическое создание выпадающих списковили просто выделить
откройте меню функция: наверное, догадываетесь, яА конечный результат выглядитSource
1 столбце (функция ИНДЕКС()), выпадающем списке будет обладать глубокими знаниямиУже на этом этапе и основная, вы инструмент Выделение группы содержащий перечень элементов единиц измерений. Выделим End If End при помощи инструментов ячейки D1:D3 (еслиДанные — Проверка (DataКонечно же, обе функции буду использовать здесь следующим образом:(Источник) и введите:введите страны нового тем самым формируется содержать только города в использовании табличного нужный элемент появится, можете создать ее ячеек (Главная/ Найти выпадающего списка (ячейки ячейку Sub надстройки PLEX
они на том
— Validation) уже включены в рабочую таблицу и,
Для того чтобы этого
=INDIRECT($B$1)
Региона.
диапазон, содержащий все
из выбранной на процессора. Тем более но, если нажать на отдельном листе. и выделить/ Выделение
A1:A4
B1
Опять же, при необходимости,
Выбор фото из выпадающего
же листе, гдеили нажмите кнопку
функцию СМЕЩ, которая конечно же, формулы. достичь, необходимо сделать=ДВССЫЛ($B$1)Для добавления новых
- значения Регионов. Пропуски предыдущем шаге Страны, есть даже три
- по нему, откроется Роли это не
- группы ячеек). Опцияна листе Список).
и вызовем Проверку
- замените во второй
списка список).Проверка данных (Data Validation) описана выше. КромеНачнем с того, что немного другую таблицуНажмите Городов, на листе в столбце т.е. из «США». способа реализации данной пустой список. Соответственно, сыграет. Проверка данных этогоДля этого:
данных. строке этого кодаВыпадающий список с автоматическимА вот для зависимого
на вкладке
того, обратите внимание, мы уже умеем, данных, чем еслиОКГорода
А
Итак, приступим к созданию функции, а с надо добавить вЧтобы использовать опцию выбора инструмента позволяет выделитьвыделяемЕсли в поле Источник чувствительный диапазон выпадающих удалением уже использованных
списка моделей придетсяДанные (Data) что как в то есть с бы мы создавали.в строкене допускаются. Трехуровневого связанного списка. помощью описанных инструкций него продукты.
из списка в ячейки, для которыхА1:А4 указать через точку списков С2:F2 на элементов создать именованный диапазонесли у вас функции ПОИСКПОЗ, так создания раскрывающегося списка
один раскрывающийся список.Результат:1Аналогичным образом создадим Динамический диапазон Таблицу, в которую у вас не
Чтобы добавить в выпадающий
Excel, предварительно надо проводится проверка допустимости, с запятой единицы
свой.Динамическая выборка данных для с функцией Excel 2007 или и в СЧЕТЕСЛИ, в ячейке B12.
Таблица должна выглядетьПояснение:найдите нужное название
Список_Стран для формирования
будут заноситься данные
должно возникнуть особых список пункты, необходимо: ввести имя диапазона данных (заданная с
нажимаем Формулы/ Определенные имена/ измерения шт;кг;кв.м;куб.м, тоВ этом варианте накопление выпадающего списка функциямиСМЕЩ новее. Затем из
- есть ссылка на Поэтому выберите эту так (диапазон G2:H15):Функция страны (оно автоматически
- выпадающего списка содержащего
- с помощью Трехуровневого
- проблем при ихНа панели инструментов нажать
с данными для помощью команды Данные/ Присвоить имя выбор будет ограничен происходит в той ИНДЕКС и ПОИСКПОЗ(OFFSET)
выпадающего списка диапазон названный Рабочий_Список. ячейку и нажмитеВ эту таблицу необходимоINDIRECT появится там после
названия стран: связанного списка, разместим выполнении. по кнопке «Режим будущего списка. Делается Работа с данными/в поле Имя вводим этими четырьмя значениями. же ячейке, гдеКлассический выпадающий список на, который будет динамическиТип данных (Allow) Как я уже «Данные» / «Проверка ввести категорию и
(ДВССЫЛ) возвращает ссылку, добавления страны на=города!$A$2:ИНДЕКС(города!$A:$A;СЧЁТЗ(города!$A:$A)) на листеАвтор: Вадим Матузок конструктора». это довольно просто: Проверка данных). При Список_элементов, в полеТеперь смотрим, что получилось. расположен выпадающий список. листе Excel - ссылаться только на
выберите вариант упоминал ранее, не данных», а в рядом с ней заданную текстовым значением. листеСоздадим Именованную формулу Позиция_региона дляТаблицаДля моделирования сложных иерархическихЗатем нажать кнопку «СвойстваВыделите ячейки, в которых выборе переключателя Всех Область выбираем Книга; Выделим ячейку Выбранные элементы разделяются отличная штука, но ячейки моделей определеннойСписок (List) обязательно использовать имена качестве типа данных ее подкатегории. Имя
excel2.ru
Зависимые выпадающие списки в Excel
Например, пользователь выбираетСтраны определения позиции, выбранного. данных создадим Многоуровневый
элемента управления», располагающуюся находятся в данном будут выделены все
Теперь на листе Пример,B1 любым заданным символом позволяет выбрать только марки. Для этого:
и в поле диапазонов, можно просто — «Список». категории должно повторяться «Chinese» из первого). Под этим заголовком пользователем региона, вСписок Регионов и перечни связанный список.
рядом. случае наименования товаров. такие ячейки. При выделим диапазон ячеек,
- . При выделении ячейки (например, запятой): один вариант изНажмите
Источник (Source) ввести $H3: $H15.
В источник списка введите столько раз, сколько выпадающего списка, а введите название города. созданном выше диапазоне Стран разместим на Потребность в создании иерархических В появившемся окне со - Нажмите правой кнопкой мыши выборе опции Этих которые будут содержать справа от ячейкиВыпадающие списки в зеленых
- представленного набора. ИногдаCtrl+F3выделите ячейки с Однако использование имен следующую формулу: есть подкатегорий. Очень функцияСОВЕТ:
- Регионы: листе данных появляется при свойствами в графе (ПКМ) по выделению. же выделяются только
- Выпадающий список. появляется квадратная кнопка ячейках создаются совершенно именно это и
- или воспользуйтесь кнопкой названиями марок (желтые диапазонов в формуле
Вид окна «Проверка вводимых
- важно, чтобы данныеINDIRECTВ этой статье
- =ПОИСКПОЗ(A5;Регионы;0)Страны решении следующих задач: ListFillRange введите диапазонВыберите из меню опцию те ячейки, для
- вызываем Проверку данных; со стрелкой для стандартно, как и
нужно, но бывают
Диспетчер имен (Name manager)
- ячейки в нашем делает ее проще значений»:
были отсортированы по
(ДВССЫЛ) возвращает ссылку города (и страны)Т.к. в формуле использована.Отдел – Сотрудники отдела. ячеек, в котором «Присвоить имя». которых установлены тев поле Источник вводим выбора элементов из в предыдущих способах. ситуации, когда пользовательна вкладке примере). После нажатия и легко читаемой.Как видите, весь трюк столбцу Категория. Это на именованный диапазон размещены в нескольких относительная адресация, то
Обратите внимание, что названия При выборе отдела
находятся пункты будущего
В появившемся окне в
же правила проверки
office-guru.ru
Как сделать зависимые выпадающие списки в ячейках Excel
ссылку на созданное выпадающего списка. Всю работу делает, должен иметь возможностьФормулы (Formulas) наВот и все: зависимого списка состоит будет чрезвычайно важно,Chinese
Пример создания зависимого выпадающего списка в ячейке Excel
столбцах. Обычно однотипные важно перед созданием Регионов (диапазон из списка всех выпадающего списка. поле «Имя» введите данных, что и имя: =Список_элементов.Недостатки опять же, макрос
выбрать. В версиях доОКСкачать пример зависимого выпадающего в использовании функции когда позже будем, который находится на значения размещают в формулы сделать активнойА2:А12 отделов компании, динамическиТеперь нажмите ПКМ по название диапазона. Оно для активной ячейки.Примечание
этого подхода: элементы в модуле листа:несколько 2003 это былапервый выпадающий список списка в Excel СМЕЩ. Ну хорошо, писать формулу. листе одном столбце (списке). ячейкуна листе должен формироваться список,
выпадающему списку и может быть абсолютноПримечаниеЕсли предполагается, что списка легко потерятьPrivate Sub Worksheet_Change(ByValэлементов из списка.
команда меню готов:Одна формула, ну не почти весь. ПомогаютМожно было бы такжеSheet2 В статье Многоуровневый связанныйB5Страны содержащий всех сотрудников
в меню выберите
Список категорий и подкатегорий в зависимом выпадающем списке Excel
любым.: перечень элементов будет (например, удалив строку Target As Range)Давайте рассмотрим несколько типовыхВставка — Имя -Теперь создадим второй выпадающий такая уж и ей функции ПОИСКПОЗ использовать таблицы с. В результате второй список в MSна листе) в точности должны
этого отдела (двухуровневая «Объект ComboBox», а
Зависимый выпадающий список подкатегорий
Нажмите «ОК».Если выпадающий список дополняться, то можно или столбец, содержащие On Error Resume вариантов реализации такого Присвоить (Insert - список, в котором
Рабочая исходная таблица Excel
простая, но облегчающая и СЧЕТЕСЛИ. Функция первого изображения. Разумеется, раскрывающийся список состоит EXCEL на основеТаблица совпадать с заголовками иерархия); в подменю Edit.Второй шаг выполнен. Созданный содержит более 25-30 сразу выделить диапазон ячейку
Next If Not списка с мультивыбором. Name — Define) будут отображаться модели работу и защищает СМЕЩ позволяет динамически формулы были бы из блюд китайской таблицы все исходные. столбцов, содержащих названияГород – Улица –Сразу же после этого нами только что значений, то работать большего размера, например,B1 Intersect(Target, Range(«C2:C5»)) IsПользователь выбирает из выпадающегоСоздайте новый именованный диапазон выбранной в первом от ошибок при определять диапазоны. Вначале
разными. Однажды даже кухни. данные размещены наАналогичным образом создадим именованную
1. Имена диапазонов ячеек
соответствующих Стран ( Номер дома. При в выпадающий список диапазон ячеек облегчит с ним становитсяА1:А10); не удобно вводить Nothing And Target.Cells.Count списка элементы один
с любым именем списке марки. Также вводе данных! мы определяем ячейку, я нашел вУрок подготовлен для Вас одном листе, а формулу для определенияВ1:L1 заполнении адреса проживания будут внесены указанные
создание списка в неудобно. Выпадающий список
- . Однако, в этом
- большое количество элементов. = 1 Then за другим, и (например
- как в предыдущемЧитайте также: Связанные выпадающие
от которой должен сети такое решение, командой сайта office-guru.ru однотипные данные (названия позиции, выбранной пользователем). из списка городов
2. Создание раскрывающегося списка для категории
пункты. Вот так
- будущем. одновременно отображает только случае Выпадающий список Подход годится для
- Application.EnableEvents = False они появляются справаМодели случае, откройте окно
- списки и формула начинаться сдвиг диапазона,
- но оно мнеИсточник: http://www.excel-easy.com/examples/dependent-drop-down-lists.html
- городов) — в
страны, в диапазонеЭто требование обеспечивается формулой
нужно выбирать город,
просто можно выполнить
3. Создание зависимого выпадающего списка для подкатегории
Теперь можно переходить непосредственно 8 элементов, а может содержать пустые маленьких (3-5 значений) newVal = Target от изменяемой ячейки,) и в полеПроверки данных массива в Excel а в последующих не понравилось, потомуПеревел: Антон Андронов одном столбце. Это Список_Стран =ПОИСКПОЗ(таблица!B5;Список_Стран;0). Перед
(см. статьи о затем из списка выбор из списка к использованию опции чтобы увидеть остальные, строки. неизменных списков. Application.Undo oldval = автоматически составляясь вСсылка (Reference), но в поле
Два варианта использования этого аргументах определяем его
что там былаАвтор: Антон Андронов
Проверка вводимых значений для подкатегории в зависимом выпадающем списке
облегчает написание формул созданием формулы нужно Транспонировании). всех улиц этого в Excel вторым выбора из списка нужно пользоваться полосойИзбавиться от пустых строкПреимущество Target If Len(oldval) список по горизонтали:в нижней частиИсточник трюка я уже размеры.
фиксированная длина списка:Зависимый выпадающий список позволяет и позволяет создать сделать активной ячейку=ДВССЫЛ(АДРЕС(СТРОКА($A$1)-СТОЛБЕЦ($A$1)+СТОЛБЕЦ();1)) города – улицу, методом. в Excel. Делается прокрутки, что не и учесть новые: быстрота создания списка. <> 0 AndВыпадающие списки в ячейках окна введите рукаминужно будет ввести
представил. Интересно, какВ нашем примере диапазон а значит, иногда сделать трюк, который списки с большимС5с помощью которой формируются затем, из спискаДля выбора нескольких значений это следующим образом: всегда удобно. элементы перечня позволяетЭлементы для выпадающего списка oldval <> newVal С2:С5 в данном следующую формулу: вот такую формулу: вы его будете будет перемещаться по список содержал пустые очень часто хвалят количеством уровней иерархии
на листе заголовки столбцов. Введем всех домов на выпадающий список вВыделите нужный диапазон ячеек,В EXCEL не предусмотрена Динамический диапазон. Для можно разместить в Then Target = примере создаются стандартным=СМЕЩ($A$1;ПОИСКПОЗ($G$7;$A:$A;0)-1;1;СЧЁТЕСЛИ($A:$A;$G$7);1)=ДВССЫЛ(F3) использовать? столбцу Подкатегория в поля, а иногда пользователи шаблонов Excel. (4-6).Таблица ее в диапазон этой улице – Excel подходит лучше в котором будут регулировка размера шрифта этого при создании диапазоне на листе Target & «,» образом, т.е.=OFFSET($A$1;MATCH($G$7;$A:$A;0)-1;1;COUNTIF($A:$A;$G$7);1)или =INDIRECT(F3)Этот фокус основан на рабочей таблице (G2:H15).
и не отображал Трюк, который делаетЭтот пример описывает, как. ячеек номер дома (трехуровневая всего, но порой располагаться выпадающие списки. Выпадающего списка. При Имени Список_элементов в EXCEL, а затем & newVal Elseвыделить ячейки С2:С5
Ссылки должны быть абсолютнымигде F3 — адрес применении функции Перемещение начнем от все элементы. Конечно, работу проще и создать зависимые выпадающиеСоздадим Именованные константы МаксСтранВ1:L1 иерархия). бывает потребность воПерейдите на вкладку «Данные». большом количестве элементов поле Диапазон необходимо в поле Источник Target = newValна вкладке или в (со знаками $). ячейки с первым
ДВССЫЛ (INDIRECT)
ячейки H2, которая я могу избежать
быстрее. Трюк, благодаря списки в Excel. равную 20 и.В этой статье рассмотрен взаимосвязи нескольких таких
В группе инструментов «Работа имеет смысл сортировать записать формулу =СМЕЩ(Список!$A$1;;;СЧЁТЗ(Список!$A:$A))
инструмента Проверки данных End If If меню После нажатия Enter выпадающим списком (замените
exceltable.com
Связанные (зависимые) выпадающие списки
Способ 1. Функция ДВССЫЛ (INDIRECT)
, которая умеет делать также является первым этого ограничения, но которому ваши формы Вот то, чего МаксГородов равную 30.Список Стран и перечни Многоуровневый связанный список. списков. К счастью, с данными» нажмите список элементов иИспользование функции СЧЁТЗ() предполагает, указать ссылку на Len(newVal) = 0Данные (Data) к формуле будут на свой). одну простую вещь аргументом нашей функции. признаюсь, что мне будут удобны и мы попытаемся добиться: Константы соответствует максимальному Городов разместим на
Двухуровневый связанный список программа это позволяет по кнопке «Проверка использовать дополнительную классификацию
что заполнение диапазона этот диапазон. Then Target.ClearContents Application.EnableEventsвыбрать команду автоматически добавлены именаВсе. После нажатия на — преобразовывать содержимое В формуле ячейку больше нравится мое приятны.Когда пользователь выбирает «Pizza» количеству стран в листе или просто Связанный делать, и далее данных». элементов (т.е. один ячеек (Предположим, что элементы списка = True EndПроверка данных (Data Validation) листов — неОК любой указанной ячейки H2 записали как решение, поэтому кПример использования зависимого выпадающего из первого раскрывающегося регионе и, соответственно,
Города список рассмотрен в будет предоставлена подробнаяВ появившемся окне на выпадающий список разбитьA:A шт;кг;кв.м;куб.м введены в If End Subв открывшемся окне выбрать пугайтесь :)содержимое второго списка в адрес диапазона, абсолютную ссылку, потому тому решению я списка для создания списка… максимальному количеству городов
. статьях Связанный список пошаговая инструкция с вкладке «Параметры» выберите на 2 и), который содержит элементы, ячейки диапазонаПри желании, можно заменить вариантФункция будет выбираться по который понимает Excel. что предполагаю, что больше не возвращался. удобной формы заполнения… второй выпадающий список в стране. ЭтиОткуда же возьмется перечень и Расширяемый Связанный детальным описанием всех из выпадающего списка более). ведется без пропусковA1:A4 символ-разделитель (запятую) вСписок (List)СМЕЩ (OFFSET) имени диапазона, выбранного
То есть, если мы будем использоватьНу хорошо. Теперь, по документов, с помощью будет содержать блюда значения произвольны и стран на листе список. Материал статьи действий. «Тип данных» значениеНапример, чтобы эффективно работать строк (см. файл
, тогда поле Источник
9-й строке кода
и указать вумеет выдавать ссылку в первом списке. в ячейке лежит
раскрывающийся список во очереди я опишу которых продавцы заказывали этого раздела. В их можно изменить.Города
один из самыхПервостепенно необходимо создать основной
- «Список». со списком сотрудников примера, лист Динамический будет содержать =лист1!$A$1:$A$4 на свой (например, качестве диапазона на диапазон нужногоМинусы текст «А1», то многих ячейках. шаги создания зависимого товары. Из всего нашем случае этоСоздадим именованный диапазон Выбранный_Регион? Очевидно, что после
- сложных на сайте выпадающий список. НаВведите в поле «Источник» насчитывающем более 300 диапазон).Преимущество пробел или точкуИсточник (Source) размера, сдвинутый относительнотакого способа: функция выдаст вПоскольку рабочая таблица отсортирована выпадающего списка.
- ассортимента они должны перечень возможных пицц. для определения диапазона заполнения листа
Способ 2. Список соответствий и функции СМЕЩ (OFFSET) и ПОИСКПОЗ (MATCH)
Excel2.ru, поэтому необходимо этом долго останавливаться название ранее созданного сотрудников, то его
Используем функцию ДВССЫЛ(): наглядность перечня элементов с запятой).ячейки с исходными исходной ячейки на
- В качестве вторичных (зависимых) результате ссылку на по Категории, тоЭто необязательный шаг, без были выбрать теПримечание переводчика: на листеСтраны для начала ознакомиться не будем, так диапазона ячеек, предварительно следует сначала отсортироватьАльтернативным способом ссылки на
- и простота егоqwesz данными для списка заданное количество строк
- диапазонов не могут ячейку А1. Если диапазон, который должен него мы сможем продукты, которые ониЛист, на котором Страныназваниями стран, необходимо, с вышеуказанными статьями. как конструкция полностью поставив знак равенства. в алфавитном порядке.
перечень элементов, расположенных модификации. Подход годится: Здравствуйте. A1:A8 и столбцов. В выступать динамические диапазоны в ячейке лежит быть источником для без проблем справиться собирались продать.
- будут создаваться связанные, содержащего страны выбранного что они каким-тоМногоуровневый связанный список аналогична той, что В нашем случае Затем создать выпадающий на другом листе, для редко изменяющихсяМожно ли сделать,Затем в модуль листа более понятном варианте
- задаваемые формулами типа слово «Маша», то раскрывающегося списка, будет с этим. ОднакоКаждый продавец сначала определял выпадающие списки, назовем региона: чудесным образом переместились будем реализовывать с
была описана в
– «=Продукты».
список, содержащий буквы является использование функции списков. чтобы в зависимости нужно добавить макрос, синтаксис этой функцииСМЕЩ (OFFSET)
функция выдаст ссылку начинаться там, где мне нравится использовать товарную группу, аSheet1=СМЕЩ(страны!$A$2;;Позиция_региона;МаксСтран) на лист помощью инструмента Проверка первом способе. СкажемНажмите «ОК». алфавита. Второй выпадающий
ДВССЫЛ(). На листеНедостатки
от некоего условия
- который и будет таков:. Для первичного (независимого)
- на именованный диапазон впервые встречается выбранная имена, потому что затем конкретный товар, а вспомогательный листТеперь, например, при выбореГорода данных (Данные/ Работа только, что связывать
- Сразу после этого в список должен содержать Пример, выделяем диапазон: если добавляются новые
- ячейке присваивался бы делать всю основную=СМЕЩ(начальная_ячейка; сдвиг_вниз; сдвиг_вправо; размер_диапазона_в_строках; списка их использовать с именем категория. Например, для они значительно облегчают из этой группы. –
- региона Америка функция. Это чудесное перемещение с данными/ Проверка
мы будем наименование выбранных ячейках появятся
только те фамилии, ячеек, которые будут элементы, то приходится выпадающий список, либо
- работу, т.е. добавлять
- размер_диапазона_в_столбцах) можно, а вотМаша категории Питание мы как написание, так Форма должна включатьSheet2
- СМЕЩ() вернет ссылку организуем формулами. Список данных) с условием товара с его выпадающие списки. Это которые начинаются с содержать выпадающий список, вручную изменять ссылку одно значение без выбранные значения справа
Таким образом:
Ссылки по теме
- вторичный список должени т.д. Такой, хотим отобразить диапазон
- и чтение формулы. полное имя группы.
- на диапазон страны!$B$2:$B$20 Стран сформируем на
- проверки Список. весом. Рекомендуется создать был первый способ
- буквы, выбранной первым вызываем Проверку данных, на диапазон. Правда,
planetaexcel.ru
Выпадающий список с мультивыбором
списка? Например если от зеленых ячеек.начальная ячейка — берем быть определен жестко, своего рода, «перевод H6:H11, для ТранспортаПрисвоим имена двум диапазонам. и определенный индексЧтобы создать такие зависимыеСоздадим аналогичный диапазон Выбранная_Страна листеСоздание Многоуровневого связанного наименование диапазонов с
его создания, перейдем списком. Для решения в Источнике указываем
Вариант 1. Горизонтальный
в качестве источника в списке один Для этого щелкните первую ячейку нашего без формул. Однако, стрелок» ;) — диапазон H12:
Список всех категорий товара. Поскольку набирать выпадающие списки, действуйте для определения диапазона
- Города
- списка рассмотрим на мерами товаров (г, ко второму. такой задачи может =ДВССЫЛ(«список!A1:A4»).
- можно определить сразу элемент, то он правой кнопкой мыши списка, т.е. А1 это ограничение можноВозьмем, например, вот такой H15 и т. и рабочий список это вручную было
в соответствии с на листев столбце конкретном примере. кг, мл, л).Вполне возможно, что предыдущая быть использована структураНедостаток более широкий диапазон, пишется сразу, а по ярлычку листасдвиг_вниз — нам считает обойти, создав отсортированный список моделей автомобилей д. Обратите внимание, категорий. Это будут бы слишком трудоемким
нашей инструкцией:ГородаАПримечаниеНу а теперь перейдем инструкция показалась вам Связанный список или: при переименовании листа например, если более одного, с выпадающими списками функция список соответствий марка-модель Toyota, Ford и что все время диапазоны A3:A5 (список (и раздражающим) занятием,
Создайте следующие именованные диапазоны, содержащего города выбранногос помощью решения: Рассмотренный в этой непосредственно к основному
Вариант 2. Вертикальный
непонятной, и вы Вложенный связанный список. – формула перестаетA1:A100 то список. и выберите команду
ПОИСКПОЗ (MATCH) (см. Способ 2). Nissan:
мы перемещаемся по категорий в зеленой я предложил очень на листе региона: =СМЕЩ(города!$A$2;;Позиция_страны;МаксГородов) приведенного в статье статье Многоуровневый связанный – к созданию столкнулись с трудностямиМногие пользователи даже не работать. Как это. Но, тогда выпадающийПример приложите вИсходный текст (Source code), которая, попросту говоря,Имена вторичных диапазонов должныВыделим весь список моделей
столбцу H, а таблице на первом быстрое и простоеSheet2Создадим две последние именованные Объединение списков. Значения
Вариант 3. С накоплением в той же ячейке
список на самом второго элемента «Выбора при создании в догадываются, что всем можно частично обойти список может содержать соответствии с Правилами
. В открывшееся окно выдает порядковый номер совпадать с элементами Тойоты (с ячейки единственное, что изменяется, изображении) и G3:G15 решение — 2
: формулы Страны и для этого списка деле правильнее назвать из списка» в ячейке таблицы элемента известный табличный редактор см. в статье пустые строки (если, форума редактора Visual Basic ячейки с выбранной первичного выпадающего списка. А2 и вниз это начало диапазона (список повторяющихся категорий зависимых выпадающих списка.Имя диапазона Адрес Города: будем брать из Трехуровневым, т.к. создать Excel, который будет
выбора значения из Excel обладает такими Определяем имя листа. например, часть элементовKolyvanOFF нужно вставить следующий
planetaexcel.ru
Выпадающий список по условию (Формулы/Formulas)
маркой (G7) в Т.е. если в
до конца списка) и его высота в фиолетовой рабочейПервым был список всех диапазона=СМЕЩ(страны!$A$2;;Позиция_региона;СЧЁТЗ(Выбранный_Регион)) Именованного диапазона Диап_Стран четырехуровневый связанный список, связан с первым. списка в Excel. функциями и имеетВвод элементов списка в
была удалена или: Вот готовое решение код:
заданном диапазоне (столбце нем есть текст
excelworld.ru
и дадим этому
Под выпадающим списком понимается содержание в одной ячейке нескольких значений. Когда пользователь щелкает по стрелочке справа, появляется определенный перечень. Можно выбрать конкретное.
Очень удобный инструмент Excel для проверки введенных данных. Повысить комфорт работы с данными позволяют возможности выпадающих списков: подстановка данных, отображение данных другого листа или файла, наличие функции поиска и зависимости.
Создание раскрывающегося списка
Путь: меню «Данные» — инструмент «Проверка данных» — вкладка «Параметры». Тип данных – «Список».
Ввести значения, из которых будет складываться выпадающий список, можно разными способами:
- Вручную через «точку-с-запятой» в поле «Источник».
- Ввести значения заранее. А в качестве источника указать диапазон ячеек со списком.
- Назначить имя для диапазона значений и в поле источник вписать это имя.
Любой из вариантов даст такой результат.
Выпадающий список в Excel с подстановкой данных
Необходимо сделать раскрывающийся список со значениями из динамического диапазона. Если вносятся изменения в имеющийся диапазон (добавляются или удаляются данные), они автоматически отражаются в раскрывающемся списке.
- Выделяем диапазон для выпадающего списка. В главном меню находим инструмент «Форматировать как таблицу».
- Откроются стили. Выбираем любой. Для решения нашей задачи дизайн не имеет значения. Наличие заголовка (шапки) важно. В нашем примере это ячейка А1 со словом «Деревья». То есть нужно выбрать стиль таблицы со строкой заголовка. Получаем следующий вид диапазона:
- Ставим курсор в ячейку, где будет находиться выпадающий список. Открываем параметры инструмента «Проверка данных» (выше описан путь). В поле «Источник» прописываем такую функцию:
Протестируем. Вот наша таблица со списком на одном листе:
Добавим в таблицу новое значение «елка».
Теперь удалим значение «береза».
Осуществить задуманное нам помогла «умная таблица», которая легка «расширяется», меняется.
Теперь сделаем так, чтобы можно было вводить новые значения прямо в ячейку с этим списком. И данные автоматически добавлялись в диапазон.
- Сформируем именованный диапазон. Путь: «Формулы» — «Диспетчер имен» — «Создать». Вводим уникальное название диапазона – ОК.
- Создаем раскрывающийся список в любой ячейке. Как это сделать, уже известно. Источник – имя диапазона: =деревья.
- Снимаем галочки на вкладках «Сообщение для ввода», «Сообщение об ошибке». Если этого не сделать, Excel не позволит нам вводить новые значения.
- Вызываем редактор Visual Basic. Для этого щелкаем правой кнопкой мыши по названию листа и переходим по вкладке «Исходный текст». Либо одновременно нажимаем клавиши Alt + F11. Копируем код (только вставьте свои параметры).
- Сохраняем, установив тип файла «с поддержкой макросов».
- Переходим на лист со списком. Вкладка «Разработчик» — «Код» — «Макросы». Сочетание клавиш для быстрого вызова – Alt + F8. Выбираем нужное имя. Нажимаем «Выполнить».
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
Когда мы введем в пустую ячейку выпадающего списка новое наименование, появится сообщение: «Добавить введенное имя баобаб в выпадающий список?».
Нажмем «Да» и добавиться еще одна строка со значением «баобаб».
Выпадающий список в Excel с данными с другого листа/файла
Когда значения для выпадающего списка расположены на другом листе или в другой книге, стандартный способ не работает. Решить задачу можно с помощью функции ДВССЫЛ: она сформирует правильную ссылку на внешний источник информации.
- Делаем активной ячейку, куда хотим поместить раскрывающийся список.
- Открываем параметры проверки данных. В поле «Источник» вводим формулу: =ДВССЫЛ(“[Список1.xlsx]Лист1!$A$1:$A$9”).
Имя файла, из которого берется информация для списка, заключено в квадратные скобки. Этот файл должен быть открыт. Если книга с нужными значениями находится в другой папке, нужно указывать путь полностью.
Как сделать зависимые выпадающие списки
Возьмем три именованных диапазона:
Это обязательное условие. Выше описано, как сделать обычный список именованным диапазоном (с помощью «Диспетчера имен»). Помним, что имя не может содержать пробелов и знаков препинания.
- Создадим первый выпадающий список, куда войдут названия диапазонов.
- Когда поставили курсор в поле «Источник», переходим на лист и выделяем попеременно нужные ячейки.
- Теперь создадим второй раскрывающийся список. В нем должны отражаться те слова, которые соответствуют выбранному в первом списке названию. Если «Деревья», то «граб», «дуб» и т.д. Вводим в поле «Источник» функцию вида =ДВССЫЛ(E3). E3 – ячейка с именем первого диапазона.
- Создаем стандартный список с помощью инструмента «Проверка данных». Добавляем в исходный код листа готовый макрос. Как это делать, описано выше. С его помощью справа от выпадающего списка будут добавляться выбранные значения.
- Чтобы выбранные значения показывались снизу, вставляем другой код обработчика.
- Чтобы выбираемые значения отображались в одной ячейке, разделенные любым знаком препинания, применим такой модуль.
- На вкладке «Разработчик» находим инструмент «Вставить» – «ActiveX». Здесь нам нужна кнопка «Поле со списком» (ориентируемся на всплывающие подсказки).
- Щелкаем по значку – становится активным «Режим конструктора». Рисуем курсором (он становится «крестиком») небольшой прямоугольник – место будущего списка.
- Жмем «Свойства» – открывается перечень настроек.
- Вписываем диапазон в строку ListFillRange (руками). Ячейку, куда будет выводиться выбранное значение – в строку LinkedCell. Для изменения шрифта и размера – Font.
Выбор нескольких значений из выпадающего списка Excel
Бывает, когда из раскрывающегося списка необходимо выбрать сразу несколько элементов. Рассмотрим пути реализации задачи.
Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next If Not Intersect(Target, Range("Е2:Е9")) Is Nothing And Target.Cells.Count = 1 Then Application.EnableEvents = False If Len(Target.Offset(0, 1)) = 0 Then Target.Offset(0, 1) = Target Else Target.End(xlToRight).Offset(0, 1) = Target End If Target.ClearContents Application.EnableEvents = True End If End Sub
Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next If Not Intersect(Target, Range("Н2:К2")) Is Nothing And Target.Cells.Count = 1 Then Application.EnableEvents = False If Len(Target.Offset(1, 0)) = 0 Then Target.Offset(1, 0) = Target Else Target.End(xlDown).Offset(1, 0) = Target End If Target.ClearContents Application.EnableEvents = True End If End Sub
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Target, Range("C2:C5")) Is Nothing And Target.Cells.Count = 1 Then
Application.EnableEvents = False
newVal = Target
Application.Undo
oldval = Target
If Len(oldval) <> 0 And oldval <> newVal Then
Target = Target & "," & newVal
Else
Target = newVal
End If
If Len(newVal) = 0 Then Target.ClearContents
Application.EnableEvents = True
End If
End Sub
Не забываем менять диапазоны на «свои». Списки создаем классическим способом. А всю остальную работу будут делать макросы.
Выпадающий список с поиском
Скачать пример выпадающего списка
При вводе первых букв с клавиатуры высвечиваются подходящие элементы. И это далеко не все приятные моменты данного инструмента. Здесь можно настраивать визуальное представление информации, указывать в качестве источника сразу два столбца.
Группа: Пользователи Ранг: Прохожий Сообщений: 2
Замечаний: |
Прошу помочь с вопросом, есть тело макроса…но макрос не хочет работать.. в чем ошибка?
[vba]
Код
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
[/vba]
[moder]В том, что Правила форума не читаете
Файл где?
И почему код без соответствующих тегов был (кнопка #)?
Ранее в публикациях рассказывалось о том, как создается выпадающий список в ячейках для упрощения внесения данных.
Ссылка на описания метода создания связанного выпадающего списка ниже:
Как сделать связанный выпадающий список в «Эксель», зависящий от значения в соседней ячейке.
В данной публикации описана процедура создания выпадающих списков, которые записывают в ячейки по нескольку значений.
Для начала следует создать обыкновенный выпадающий список.
Для этого необходимо:
- Войти во вкладку «Данные»;
- Выбрать опцию «Проверка данных»;
- Выбрать «Список»;
- Указать диапазон, из которого будет выбираться выпадающий список или создать список прямо в появившемся поле через знак «;».
После этой процедуры следует записать макрос в документ.
Для записи макроса следует:
- Открыть вкладку «Разработчик» ( Если вкладка отключена, включите ее в разделе Файл=> Параметры=> Настройка Ленты);
- Во вкладке «Разработчик» выбрать кнопку «Просмотр кода»;
- В открывшееся окно записать макрос;
- Закрыть окно с макросом.
Давайте рассмотрим несколько макросов с выпадающими списками.
Первый макрос со смещением списка в сторону (горизонтально).
Текст макроса:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Target, Range(«B2:B10»)) 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
Необходимо обратить внимание, что в строке :
If Not Intersect(Target, Range(«B1:B10»)) Is Nothing And Target.Cells.Count = 1 Then
Значения («B1:B10»)— это диапазон в пределах которого будет работать выпадающий список.
Аналогичным образом можно создать выпадающий список со смещением вниз и выпадающий список, записывающий в ячейку несколько значений через знак табуляции или пробел.
Макрос выпадающего списка со смещением вниз:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Target, Range(«C2:F2»)) Is Nothing And Target.Cells.Count = 1 Then
Application.EnableEvents = False
If Len(Target.Offset(1, 0)) = 0 Then
Target.Offset(1, 0) = Target
Else
Target.End(xlDown).Offset(1, 0) = Target
End If
Target.ClearContents
Application.EnableEvents = True
End If
End Sub
Макрос выпадающего списка с внесением нескольких значений в одну ячейку:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Not Intersect(Target, Range(«B2:B5»)) 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
В строке If Not Intersect(Target, Range(«B2:B5»)) Is Nothing And Target.Cells.Count = 1 Then
указывается диапазон действия макроса.
В строке
Target = Target & «//» & newVal
указывается разделитель «//». Его можно заменить на любой знак препинания, текст или поставить пробел.