Связанные (зависимые) выпадающие списки
Способ 1. Функция ДВССЫЛ (INDIRECT)
Этот фокус основан на применении функции ДВССЫЛ (INDIRECT), которая умеет делать одну простую вещь — преобразовывать содержимое любой указанной ячейки в адрес диапазона, который понимает Excel. То есть, если в ячейке лежит текст «А1», то функция выдаст в результате ссылку на ячейку А1. Если в ячейке лежит слово «Маша», то функция выдаст ссылку на именованный диапазон с именем Маша и т.д. Такой, своего рода, «перевод стрелок»
Возьмем, например, вот такой список моделей автомобилей Toyota, Ford и Nissan:
Выделим весь список моделей Тойоты (с ячейки А2 и вниз до конца списка) и дадим этому диапазону имя Toyota на вкладке Формулы (Formulas) с помощью Диспетчера имен (Name Manager). Затем повторим то же самое со списками моделей Ford и Nissan, задав соответственно имена диапазонам Ford и Nissan.
При задании имён помните о том, что имена диапазонов в Excel не должны содержать пробелов, знаков препинания и начинаться обязательно с буквы. Поэтому если бы в одной из марок автомобилей присутствовал бы пробел (например Ssang Yong), то его пришлось бы заменить в ячейке и в имени диапазона на нижнее подчеркивание (т.е. Ssang_Yong).
Теперь создадим первый выпадающий список для выбора марки автомобиля. Выделите пустую ячейку (на картинке выше — зелёную) и нажмите кнопку Проверка данных (Data Validation) на вкладке Данные (Data). Затем из выпадающего списка Тип данных (Allow) выберите вариант Список (List) и в поле Источник (Source) выделите ячейки с названиями марок (желтые ячейки в нашем примере). После нажатия на ОК первый выпадающий список готов.
Теперь создадим второй выпадающий список, в котором будут отображаться модели выбранной в первом списке марки. Также как в предыдущем случае, выделите пустую ячейку, где должен быть список моделей (на картинке она синяя) и откройте окно Проверки данных, но в поле Источник нужно будет ввести вот такую формулу:
=ДВССЫЛ(F2)
где F2 — адрес ячейки с первым выпадающим списком (замените на свой).
Все. После нажатия на ОК содержимое второго списка будет выбираться по имени диапазона, выбранного в первом списке.
Минусы такого способа:
- Надо руками создавать много именованных диапазонов (если у нас много марок автомобилей).
- В качестве вторичных (зависимых) диапазонов не могут выступать динамические диапазоны задаваемые формулами типа СМЕЩ (OFFSET). Для первичного (независимого) списка их использовать можно, а вот вторичный список должен быть определен жестко, без формул. Однако, это ограничение можно обойти, создав справочник соответствий марка-модель (см. Способы 3 и 4).
- Имена вторичных диапазонов должны совпадать с элементами первичного выпадающего списка. Т.е. если в нем есть текст с пробелами, то придется их заменять на подчеркивания с помощью функции ПОДСТАВИТЬ (SUBSTITUTE), т.е. формула будет выглядеть как:
=ДВССЫЛ(ПОДСТАВИТЬ(F2;» «;»_»))
Способ 2. Умные таблицы
Этот подход очень похож на предыдущий, но использует вместо именованных диапазонов — «умные» динамические таблицы, которые будут выступать источником данных для вторичного списка:
Таким образом, мы:
- Сначала преобразуем наши справочники в «умные» таблицы, используя сочетание клавиш Ctrl+T или команду Главная — Форматировать как таблицу (Home — Format as Table) и
- Даём им имена (Фрукты, Овощи, Зелень) на вкладке Конструктор (Design) в поле Имя таблицы (Table Name).
- Создаём первый и второй (связанный) выпадающие списки точно так же, как в предыдущем способе с функцией ДВССЫЛ (INDIRECT).
Главным плюсом и отличием такого способа является возможность легко добавлять новые товары в каждую категорию — динамическая «умная» таблица автоматически расширится, и нам не придется вручную исправлять ссылку на диапазон (как это требуется в предыдущем способе).
Способ 3. Отсортированный справочник
Этот способ требует наличия отсортированного списка соответствий марка-модель вот такого вида:
Для создания первичного выпадающего списка можно марок можно воспользоваться обычным способом, описанным выше, т.е. выбрать на вкладке Данные (Data) команду Проверка данных (Data validation) и указать в качестве источника жёлтые ячейки с марками
А вот для зависимого списка моделей придется создать именованный диапазон с функцией СМЕЩ (OFFSET), который будет динамически ссылаться только на ячейки моделей определенной марки. Для этого:
- Нажмите сочетание клавиш Ctrl+F3 или воспользуйтесь кнопкой Диспетчер имен (Name manager) на вкладке Формулы (Formulas).
- Создайте новый именованный диапазон с любым именем (например Модели) и в поле Ссылка (Reference) в нижней части окна введите руками следующую формулу:
=СМЕЩ($A$1;ПОИСКПОЗ($G$7;$A:$A;0)-1;1;СЧЁТЕСЛИ($A:$A;$G$7);1)
=OFFSET($A$1;MATCH($G$7;$A:$A;0)-1;1;COUNTIF($A:$A;$G$7);1)
Ссылки должны быть абсолютными (со знаками $). После нажатия Enter к формуле будут автоматически добавлены имена листов — не пугайтесь.
Работает это следующим образом. Функция СМЕЩ (OFFSET) умеет выдавать ссылку на диапазон нужного размера, сдвинутый относительно исходной ячейки на заданное количество строк и столбцов. В более понятном варианте синтаксис этой функции таков:
=СМЕЩ(начальная_ячейка; сдвиг_вниз; сдвиг_вправо; высота_диапазона_в_строках; ширина_диапазона_в_столбцах)
Таким образом:
- начальная ячейка — берем первую ячейку нашего списка, т.е. А1
- сдвиг_вниз — нам считает функция ПОИСКПОЗ (MATCH), которая, попросту говоря, выдает порядковый номер ячейки с выбранной маркой (G7) в заданном диапазоне (столбце А)
- сдвиг_вправо = 1, т.к. мы хотим сослаться на модели в соседнем столбце (В)
- высота_диапазона_в_строках — вычисляем с помощью функции СЧЕТЕСЛИ (COUNTIF), которая умеет подсчитать количество встретившихся в списке (столбце А) нужных нам значений — марок авто (G7)
- ширина_диапазона_в_столбцах = 1, т.к. нам нужен один столбец с моделями
В итоге должно получиться что-то вроде этого:
Осталось добавить выпадающий список на основе созданной формулы к ячейке G8. Для этого:
- выделяем ячейку G8
- выбираем на вкладке Данные (Data) команду Проверка данных (Data validation)
- из выпадающего списка выбираем вариант проверки Список (List) и вводим в качестве Источника (Source) знак равно и имя нашего диапазона, т.е. =Модель
И наш связанный список моделей готов.
Способ 4. Неотсортированный справочник
Предыдущий способ неплох, но предполагает наличие обязательно отсортированного справочника вида «марка-модель», где названия марок повторяются многократно. Иногда же требуется в качестве справочника использовать более банальную конструкцию:
Первый уровень выпадающего списка (диапазон А2:А14 на рисунке выше) здесь делается классическим образом через команду Данные — Проверка данных — Список (Data — Validation — List) и в качестве источника указать зелёные ячейки с названиями категорий.
А для связанных выпадающих списков во втором столбце (B2:B14) в поле Источник (Source) мы используем хитрую формулу:
=СМЕЩ($E$2;1;ПОИСКПОЗ(A2;$E$2:$G$2;0)-1;СЧЁТЗ(СМЕЩ($E$2;1;ПОИСКПОЗ(A2;$E$2:$G$2;0)-1;10;1));1)
Она ищет нужную категорию в зелёной шапке таблицы, спускается на одну ячейку вниз и ссылается затем на диапазон, по высоте равный количеству товаров в выбранной категории.
Ссылки по теме
- 4 способа создать выпадающий список в ячейках листа
- Автоматическое создание выпадающих списков при помощи инструментов надстройки PLEX
- Выбор фото из выпадающего списка
- Выпадающий список с автоматическим удалением уже использованных элементов
- Динамическая выборка данных для выпадающего списка функциями ИНДЕКС и ПОИСКПОЗ
Итак, как сделать два связанных списка в Excel: категория, подкатегория и категория более нижнего уровня. Своими словами в данном случае нижний уровень — это «подподкатегория» если она вообще существует… Но для лучшего понимания данного обучающего материала, предположим, что существует.
Два связанных выпадающих списка с формулой массива
В любом случае, с самого начала напишем, что этот учебный материал является продолжением материала: Как сделать зависимые выпадающие списки в ячейках Excel, в котором подробно описали логику и способ создания одного из таких списков. Рекомендуем вам ознакомиться с ним, потому что здесь подробно описывается только то, как сделать тот другой связанный выпадающий список А это то, что мы хотим получить:
Итак, мы имеем:
- тип автомобиля: Легковой, Фургон и Внедорожник (Категория)
- производитель: Fiat, Volkswagen i Suzuki (Подкатегория) и
- модель: … немножечко их есть (Подподкатегория)
В то же время мы имеем следующие данные:
Этот список должен быть отсортирован в следующей очередности:
- Тип.
- Производитель.
- Модель.
Он может быть любой длины. Что еще важно: стоит добавить к нему еще два меньших списка, необходимых для Типа и Производителя, то есть к категории (первый список) и подкатегории (второй список). Эти дополнительные списки списки выглядят следующим образом:
Дело в том, что эти списки не должны иметь дубликатов записей по Типу и Производителю, находящихся в списке Моделей. Вы можете создать их с помощью инструмента «Удалить дубликаты» (например, это показано в этом видео продолжительностью около 2 минут). Когда мы это сделали, тогда …
Первый и второй связанный выпадающий список: Тип и Производитель
Для ячеек, которые должны стать раскрывающимися списками в меню «Данные» выбираем «Проверка данных» и как тип данных выбираем «Список».
Для Типа как источник данных мы просто указываем диапазон B7:B9.
Для Производителя мы уже используем формулу, которая подробно описана здесь. Она выглядит так:
Модель — описание для этой записи сделаем таким же самым образом.
Третий связывающий выпадающий список: Модель
Теперь рассмотрим, как связать выпадающий список в Excel. Поскольку Модель зависит как от Типа, так и от Производителя — значит мы будем использовать сложную формулу. После поместим ее не в проверку данных, а в именной диапазон. Соответственно проверка данных будет содержать ссылку на это имя. Предположим, мы хотим отобразить в нем легковые модели Fiat. В первом списке мы выбрали Легковой, во втором — Fiat.
Мы будем перемещать ячейку H4 на столько строк, пока не найдем позицию первого легкового Fiatа. Поэтому в колонке Тип мы должны иметь значение Легковой, а в колонке Производитель должен быть Fiat. Если бы мы использовали промежуточный столбец (это было бы отличным решением, но хотели бы показать вам что-то более крутое ;-), то мы бы искали комбинацию этих данных: Легковой Fiat. Однако у нас нет такого столбца, но мы можем создать его «на лету», другими словами, используя формулу. Набирая эту формулу, вы можете себе представить, что такой промежуточный столбец существует, и вы увидите, что будет проще
Для определения положения Легковой Fiat, мы, конечно, будем использовать функцию ПОИСКПОЗ. Смотрите:
ПОИСКПОЗ(B4&C4;F5:F39&G5:G39;0)
Вышеописанное означает, что мы хотим знать позицию Легкового Fiatа (отсюда и связь B4&C4). Где? В нашем воображаемом вспомогательном столбце, то есть: F5:F39&G5:G39. И здесь самая большая сложность всей формулы.
Остальное уже проще, а наибольшего внимания требует функция СЧЁТЕСЛИМН, которая проверяет, сколько есть Легковых Fiatов. В частности, она проверяет, сколько раз в списке встречаются такие записи, которые в столбце F5:F39 имеют значение Легковой, а в столбце G5:G39 — Fiat. Функция выглядит так:
СЧЁТЕСЛИМН(F5:F39;B4;G5:G39;C4)
А вся формула для именного диапазона раскрывающегося списка это:
Если вы планируете использовать эту формулу в нескольких ячейках — не забудьте обозначить ячейки как абсолютные ссылки!
Теперь чтобы правильно использовать данную формулу по назначению в третьем выпадающем списке нам необходимо выполнить рад последовательных действий:
- Создаем новое имя. Для этого выберите инструмент: «ФОРМУЛЫ»-«Определенные имена»-«Диспетчер имен»-«Создать».
- При создании имени в поле «Имя:» вводим слово – модель, а в поле «Диапазон:» вводим выше указанную формулу и нажимаем на всех открытых диалоговых окнах ОК:
- Перейдите на ячейку D4 чтобы там создать выпадающий список, в котором на этот раз в поле ввода «Источник:» следует указать ссылку на выше созданное имя с формулой =модель.
Скачать зависимые выпадающие списки в Excel
Когда вы перейдете в меню «Данные», «Проверка данных» и выберите как Тип данных «список», а в поле «Источник» вставьте не саму формулу, а ссылку на имя «=модель» именного диапазона с этой формулой. Такой подход обеспечит стабильность работы третьего выпадающего списка.
Связанные выпадающие списки в Excel.
Смотрите также исчерпал запас допустимых: китин — Это уже другая тема инструмент «Вставить» – «Источник» функцию вида Long If Target.Cells.CountВручную через «точку-с-запятой» в 4 ячейки от это сделали для столько раз, сколько Трюк, который делаетПри работе с перечнемИспользуем именованный диапазонэтого подхода: элементы
=ДВССЫЛ(ПОДСТАВИТЬ(A2;» «;»_»)) всех списков сразуВыпадающие списки в Excel смен. Добавим еще
вы убрали значение ? «ActiveX». Здесь нам =ДВССЫЛ(E3). E3 – > 1 Then поле «Источник». H2). В 4-ой категории. Только единственный есть подкатегорий. Очень работу проще и элементов, расположенным вСоздадим Именованный диапазон Список_элементов, списка легко потерятьЕсли список на
вместе с шапкойбывают разные. Есть один столбец и #Н/Д, если значениеenzo нужна кнопка «Поле ячейка с именем Exit Sub If
Ввести значения заранее. А ячейке столбца Подкатегория
вопрос: «Как сказать
важно, чтобы данные быстрее. Трюк, благодаря другой книге, файл содержащий перечень элементов (например, удалив строку другом листе, то таблицы списков – простой введем в него в первой ячейке
: Вроде нашел в со списком» (ориентируемся первого диапазона. Target.Address = «$C$2″ в качестве источника (не включая заголовок, Excelю выбрать только были отсортированы по
которому ваши формы Источник.xlsx должен быть выпадающего списка (ячейки или столбец, содержащие в формуле указываем у нас этораскрывающийся список Excel в формулу, которая будет не выбрано?
форуме) на всплывающие подсказки).Бывает, когда из раскрывающегося Then If IsEmpty(Target) указать диапазон ячеек так как речь те значения, которые столбцу Категория. Это будут удобны и
открыт и находитьсяA1:A4 ячейку название этого листа. диапазон А1:D4. На ячейке выводить номера свободных
Вроде ок, всеfelixtreem Щелкаем по значку –
списка необходимо выбрать Then Exit Sub со списком. идет о диапазоне предназначены для конкретной будет чрезвычайно важно, приятны. в той жена листе Список).B1 Напишем так. =ДВССЫЛ(»Размеры!А2:А4») закладке «Формулы» в. Есть сотрудников:
работает. Очень огромное: Добрый день. становится активным «Режим сразу несколько элементов. If WorksheetFunction.CountIf(Range(«Деревья»), Target)Назначить имя для диапазона с именем Рабочий_Список), категории?» Как вы, когда позже будемПример использования зависимого выпадающего папке, иначе необходимоДля этого:
); не удобно вводитьНажимаем «ОК». Теперь разделе «Определенные имена»многоуровневые зависимые выпадающие списки
=ЕСЛИ(F2-G2 спасибо. Сам быПомогите решить проблему. конструктора». Рисуем курсором Рассмотрим пути реализации = 0 Then значений и в есть слово Питание наверное, догадываетесь, я писать формулу. списка для создания
указывать полный путьвыделяем большое количество элементов. во втором столбце
нажимаем функцию «Создать в ExcelТеперь надо сформировать непрерывный такую формулу яЕсть лист1, в (он становится «крестиком»)
задачи.
lReply = MsgBox(«Добавить поле источник вписать (его первое появление). буду использовать здесьМожно было бы также удобной формы заполнения к файлу. ВообщеА1:А4 Подход годится для установлены выпадающие списки, из выделенного фрагмента».
. Это, когда, в (без пустых ячеек) бы никогда не котором таблица из небольшой прямоугольник –Создаем стандартный список с введенное имя « это имя. Мы используем этот рабочую таблицу и,
использовать таблицы с документов, с помощью ссылок на другие, маленьких (3-5 значений) которые меняются, в
В появившемся диалоговом зависимости от выбранных список свободных сотрудников нарисовал бы. колонок: НаименованиеКол-воЦенаСумма место будущего списка. помощью инструмента «Проверка & _ TargetЛюбой из вариантов даст факт собственно для конечно же, формулы. первого изображения. Разумеется, которых продавцы заказывали листы лучше избегать
нажимаем Формулы/ Определенные имена/ неизменных списков. зависимости от того, окне оставляем галочку данных в первом
для связи -=ЕСЛИ(ЕНД(ВПР($A12;Лист2!$B$2:$H$161;6;ЛОЖЬ));»»;ВПР($A12;Лист2!$B$2:$H$161;6;ЛОЖЬ))Есть лист2, вЖмем «Свойства» – открывается данных». Добавляем в & » в такой результат. определения начала диапазона.
Начнем с того, что формулы были бы товары. Из всего или использовать Личную
Присвоить имяПреимущество что написано в только у строки столбце выпадающего списка, на следующем шагекитин
excel-office.ru
Выпадающий список в MS EXCEL на основе Проверки данных
котором есть две перечень настроек. исходный код листа выпадающий список?», vbYesNo Послужит нам для мы уже умеем, разными. Однажды даже ассортимента они должны книгу макросов Personal.xlsxв поле Имя вводим: быстрота создания списка. ячейках первого столбца. «В строке выше». меняется выпадающий список — с выпадающим: да, felixtreem, я
колонки: ТоварЦенаВписываем диапазон в строку готовый макрос. Как
+ vbQuestion) IfНеобходимо сделать раскрывающийся список этого функция ПОИСКПОЗ то есть с я нашел в были выбрать те
или Надстройки. Список_элементов, в полеЭлементы для выпадающего списка Получилось так.Нажимаем «ОК». Всё, имена в ячейках второго списком. Для этого
убрал значение ошибкиНужно сделать выпадающий
А. Простейший выпадающий список — ввод элементов списка непосредственно в поле Источник
ListFillRange (руками). Ячейку, это делать, описано lReply = vbYes со значениями из (введенная в качестве создания раскрывающегося списка
сети такое решение, продукты, которые ониЕсли нет желания присваивать Область выбираем Книга; можно разместить вКопируем формулу вниз по присвоены. На закладке столбца, третьего, т.д. добавим еще один
#Н/Д.а если у список в лист1, куда будет выводиться выше. С его Then Range(«Деревья»).Cells(Range(«Деревья»).Rows.Count + динамического диапазона. Если
второго аргумента функции в ячейке B12. но оно мне собирались продать. имя диапазону вТеперь на листе Пример, диапазоне на листе столбцу. Мы создали «Формулы» нажимаем функцию
Здесь разберём столбец и введем вас офис выше что бы в выбранное значение – помощью справа от 1, 1) = вносятся изменения в СМЕЩ): Поэтому выберите эту не понравилось, потомуКаждый продавец сначала определял
файле Источник.xlsx, то выделим диапазон ячеек,
Б. Ввод элементов списка в диапазон (на том же листе, что и выпадающий список)
EXCEL, а затем двухуровневый выпадающий список «Диспетчер имен».двухуровневый зависимый выпадающий список в него такую 2007,то все ещё колонке «Наименование» можно в строку LinkedCell.
выпадающего списка будут Target End If имеющийся диапазон (добавляютсяВысоту диапазона определяет функция ячейку и нажмите что там была
товарную группу, а формулу нужно изменить которые будут содержать в поле Источник в Excel.Здесь перечислены все наши
в Excel страшноватую на первый проше: было выбрать позицию Для изменения шрифта добавляться выбранные значения.Private End If End или удаляются данные), СЧЕТЕСЛИ. Она считает «Данные» / «Проверка фиксированная длина списка: затем конкретный товар на =ДВССЫЛ(«[Источник.xlsx]лист1!$A$1:$A$4») Выпадающий список. инструмента Проверки данныхДругой способ сделать диапазоны списков. Проверили. взгляд формулу:
200?’200px’:»+(this.scrollHeight+5)+’px’);»>=ЕСЛИОШИБКА(ВПР($A2;Лист2!$B$2:$H$161;6;ЛОЖЬ);»») из лист2 с и размера – Sub Worksheet_Change(ByVal Target If End Sub они автоматически отражаются все встречающиеся повторения данных», а в а значит, иногда из этой группы.СОВЕТ:
вызываем Проверку данных; указать ссылку на связанный выпадающий список всё. Можно подкорректироватьНапример, в первом
B. Ввод элементов списка в диапазон (на любом листе)
=ЕСЛИ(D2>СЧЁТ($H$2:$H$10);»»;ИНДЕКС($E$2:$E$10;НАИМЕНЬШИЙ($H$2:$H$10;СТРОКА(E2)-1)))felixtreem колонки «Товар», при Font. As Range) OnСохраняем, установив тип файла
в раскрывающемся списке. в категории, то качестве типа данных список содержал пустые
Форма должна включатьЕсли на листев поле Источник вводим этот диапазон. в Excel, смотрите
размер диапазона. Мы столбце из выпадающегоили, соответственно,: Тогда может еще этом, после выбораСкачать пример выпадающего списка Error Resume Next «с поддержкой макросов».
Выделяем диапазон для выпадающего
есть слово Питание. — «Список». поля, а иногда полное имя группы много ячеек с
ссылку на созданное
- Предположим, что элементы списка в статье «Как уменьшили размер диапазона
- списка выбрали «Пальто».=IF(D2>COUNT($H$2:$H$10);»»;INDEX($E$2:$E$10;SMALL($H$2:$H$10;ROW(E2)-1)))
- подскажите, как сделать в лист1 пунктаПри вводе первых букв
If Not Intersect(Target,Переходим на лист со списка. В главном Сколько раз встречается
- В источник списка введите
- и не отображал и определенный индекс правилами Проверки данных,
имя: =Список_элементов.
шт;кг;кв.м;куб.м введены в сделать связанные выпадающие «Юбка», чтобы в Во втором столбцеПри всей внешней жуткости выборку нужной строки «Наименование» в соседней с клавиатуры высвечиваются Range(«Е2:Е9»)) Is Nothing списком. Вкладка «Разработчик»
меню находим инструмент это слово, сколько следующую формулу: все элементы. Конечно, товара. Поскольку набирать то можно использоватьПримечание ячейки диапазона
списки в Excel выпадающем списке не появился выпадающий список вида, эта формула по первым буквам ячейке (то бишь, подходящие элементы. И And Target.Cells.Count = — «Код» -
«Форматировать как таблицу».
и будет позицийВид окна «Проверка вводимых я могу избежать это вручную было инструмент Выделение группыЕсли предполагается, чтоA1:A4 легко». было пустой строки. размеров этого пальто. делает одну простую
ввода с клавиатуры? через одну ячейку) это далеко не 1 Then Application.EnableEvents «Макросы». Сочетание клавишОткроются стили. Выбираем любой. в нашем диапазоне.
значений»: этого ограничения, но бы слишком трудоемким
ячеек (Главная/ Найти перечень элементов будет, тогда поле ИсточникПри заполнении ячеек данными,Теперь устанавливаем А, если в
- вещь — выводитПримерно как в
- в поле «цена», все приятные моменты = False If для быстрого вызова
- Для решения нашей Количество позиций вКак видите, весь трюк
- признаюсь, что мне (и раздражающим) занятием, и выделить/ Выделение дополняться, то можно
будет содержать =лист1!$A$1:$A$4 часто необходимо ограничитьпервый выпадающий список в первом столбце этой очередное по номеру тотале, начинаешь набирать унаследовалась цена из данного инструмента. Здесь Len(Target.Offset(0, 1)) = – Alt + задачи дизайн не диапазоне — это зависимого списка состоит больше нравится мое
я предложил очень группы ячеек). Опция сразу выделить диапазонПреимущество возможность ввода определенным
ячейки столбца А
же ячейки из имя сотрудника (используя нужный текст и «лист2» выбранной строчки. можно настраивать визуальное 0 Then Target.Offset(0, F8. Выбираем нужное имеет значения. Наличие его высота. Вот в использовании функции решение, поэтому к быстрое и простое Проверка данных этого большего размера, например,: наглядность перечня элементов списком значений. Например,. выпадающего списка выбрали функцию НАИМЕНЬШИЙ) из курсор сам переходитПрикрепляю файл. представление информации, указывать 1) = Target имя. Нажимаем «Выполнить». заголовка (шапки) важно. функция:
СМЕЩ. Ну хорошо, тому решению я
решение — 2 инструмента позволяет выделитьА1:А10 и простота его имеется ячейка, кудаУ нас, в «Брюки», то во списка или пустую в соответствующие поля.Pelena в качестве источника
Else Target.End(xlToRight).Offset(0, 1)Когда мы введем в В нашем примереКонечно же, обе функции почти весь. Помогают больше не возвращался. зависимых выпадающих списка. ячейки, для которых. Однако, в этом модификации. Подход годится пользователь должен внести
примере, мы выделяем втором столбце будет ячейку, если именаМожно без лишних: Здравствуйте сразу два столбца. = Target End пустую ячейку выпадающего это ячейка А1 уже включены в ей функции ПОИСКПОЗНу хорошо. Теперь, поПервым был список всех проводится проверка допустимости случае Выпадающий список для редко изменяющихся название департамента, указав диапазон A2:A3. И,
excel2.ru
Как сделать зависимые выпадающие списки в ячейках Excel
выпадающий список с свободных сотрудников уже заморочек, типа скрыванияИспользуйте поиск поMelia95 If Target.ClearContents Application.EnableEvents списка новое наименование, со словом «Деревья». функцию СМЕЩ, которая и СЧЕТЕСЛИ. Функция
Пример создания зависимого выпадающего списка в ячейке Excel
очереди я опишу категорий продуктов, второй данных (заданная с может содержать пустые списков. где он работает. через «Проверки данных» размерами брюк. кончились. не соответствий, не
форуму, задача решалась: Друзья, добрый день! = True End появится сообщение: «Добавить То есть нужно описана выше. Кроме СМЕЩ позволяет динамически шаги создания зависимого — список всех помощью команды Данные/ строки.Недостатки Логично, предварительно создать на закладке «Данные»,Итак, сделаем две
в Excel 2003 и возможность выбора соседних много разСитуация стандартная: If End Sub введенное имя баобаб выбрать стиль таблицы того, обратите внимание, определять диапазоны. Вначале выпадающего списка. продуктов, находящихся в Работа с данными/Избавиться от пустых строк
: если добавляются новые список департаментов организации устанавливаем выпадающие списки. таблицы. Саму таблицу старше идем в позиций.SkyPro
1й выпадающий списокЧтобы выбранные значения показывались в выпадающий список?». со строкой заголовка. что как в мы определяем ячейку,Это необязательный шаг, без выбранной категории. Поэтому Проверка данных). При и учесть новые
элементы, то приходится
Список категорий и подкатегорий в зависимом выпадающем списке Excel
и позволить пользователю Тип данных – сделаем на странице менюА в ЛИСТ2,: http://www.excelworld.ru/forum/2-633-1 (А2) — общая снизу, вставляем другойНажмем «Да» и добавиться Получаем следующий вид функции ПОИСКПОЗ, так от которой должен него мы сможем я создал выпадающий выборе переключателя Всех
элементы перечня позволяет вручную изменять ссылку
Зависимый выпадающий список подкатегорий
лишь выбирать значения выбираем «Список». А книги «Таблица». АВставка — Имя - наименования можно сортирнутьhttp://www.planetaexcel.ru/techniques/1/38/ группа риска код обработчика.Private Sub
Рабочая исходная таблица Excel
еще одна строка диапазона: и в СЧЕТЕСЛИ, начинаться сдвиг диапазона, без проблем справиться список, зависимый от будут выделены все Динамический диапазон. Для на диапазон. Правда, из этого списка. в строке «Источник» списки сделаем на Присвоить (Insert -
по альфавиту, этоhttp://www.excel-vba.ru/chto-um….-spiski2й выпадающий список Worksheet_Change(ByVal Target As со значением «баобаб».Ставим курсор в ячейку, есть ссылка на а в последующих с этим. Однако выбора, сделанного в такие ячейки. При этого при создании в качестве источника Этот подход поможет указываем имя диапазона. странице «Размеры». У Name — Define) вообще не критично.Поиск не пробовали? (В2), зависимый - Range) On ErrorКогда значения для выпадающего где будет находиться
диапазон названный Рабочий_Список. аргументах определяем его мне нравится использовать предыдущем списке (здесь
1. Имена диапазонов ячеек
выборе опции Этих Имени Список_элементов в можно определить сразу ускорить процесс ввода Например, «=Наименование_товара». нас есть такаяв Excel 2007 иЕсли слишком геморно,На этот вопрос
конкретный риск в Resume Next If списка расположены на выпадающий список. Открываем Как я уже размеры. имена, потому что вы найдете материал же выделяются только поле Диапазон необходимо более широкий диапазон,
и уменьшить количествоПодробнее, как установить
- таблица.
- новее — жмем то и так уже отвечали неоднократно. рамках группы из
- Not Intersect(Target, Range(«Н2:К2»)) другом листе или
параметры инструмента «Проверка упоминал ранее, неВ нашем примере диапазон они значительно облегчают о том, как те ячейки, для записать формулу =СМЕЩ(Список!$A$1;;;СЧЁТЗ(Список!$A:$A))
2. Создание раскрывающегося списка для категории
например,
- опечаток. выпадающий список, смотритеИ мы сделали такие кнопку
- сойдет, как есть,китин А2. Is Nothing And
- в другой книге, данных» (выше описан
- обязательно использовать имена будет перемещаться по
- как написание, так
создать два зависимых которых установлены те
Использование функции СЧЁТЗ() предполагает,
A1:A100
3. Создание зависимого выпадающего списка для подкатегории
Выпадающий список можно создать в статье «Выпадающий списки.Диспетчер Имен (Name Manager) ну а вдруг.: да файла личноДелаю всё шаг Target.Cells.Count = 1 стандартный способ не путь). В поле диапазонов, можно просто столбцу Подкатегория в и чтение формулы. раскрывающихся списка).
же правила проверки что заполнение диапазона. Но, тогда выпадающий с помощью Проверки список в Excel».Внимание!на вкладкекитин я не вижу за шагом, как Then Application.EnableEvents =
работает. Решить задачу «Источник» прописываем такую
ввести $H3: $H15. рабочей таблице (G2:H15).
Проверка вводимых значений для подкатегории в зависимом выпадающем списке
Присвоим имена двум диапазонам.Тот же самый результат данных, что и ячеек ( список может содержать данных УстанавливаемВ списках названияФормулы (Formulas): поищите поиском.где недавноfelixtreem пишут повсюду, но False If Len(Target.Offset(1, можно с помощью функцию:
Однако использование имен Перемещение начнем от Список всех категорий хочет получить пользователь для активной ячейки.A:A пустые строки (если,или с помощью элементазависимые выпадающие списки в столбцов (В, С,и создаем новый именованный была такая тема: Непонятно. Файл прикреплял. в итоге постоянно 0)) = 0
функции ДВССЫЛ: онаПротестируем. Вот наша таблица диапазонов в формуле ячейки H2, которая и рабочий список шаблона домашнего бюджетаПримечание), который содержит элементы, например, часть элементов управления формы Поле столбце В D) должны полностью диапазонPelenaSkyPro — Те имею «При вычислении Then Target.Offset(1, 0) сформирует правильную ссылку со списком на делает ее проще также является первым категорий. Это будут
где нужна категория: ведется без пропусков была удалена или со списком (см.. совпадать с названиемИмена: Один вопрос - ссылки, что вы «Источник» возникает ошибка». = Target Else на внешний источник одном листе: и легко читаемой. аргументом нашей функции. диапазоны A3:A5 (список и подкатегория расходов.Если выпадающий список строк (см. файл список только что статью Выпадающий (раскрывающийся)Это второй уровень в первом столбцепо следующей формуле: одна тема кинули, читал, тамПожалуйста, помогите, чем Target.End(xlDown).Offset(1, 0) = информации.Добавим в таблицу новое
Вот и все: В формуле ячейку категорий в зеленой Пример данных находится содержит более 25-30 примера, лист Динамический был создан). Чтобы список на основе выпадающих списков. (у нас –=СМЕЩ(Лист1!$I$2;0;0;СЧЁТЗ(Лист1!$I$2:$I$10)-СЧИТАТЬПУСТОТЫ(Лист1!I$2:I$10))Я знаю, что делать, описывается категории и
можете. Target End IfДелаем активной ячейку, куда значение «елка».Скачать пример зависимого выпадающего H2 записали как таблице на первом на рисунке ниже: значений, то работать диапазон). пустые строки исчезли элемента управления формы).Внимание! это наименование товарав англоязычной версии =OFFSET(Лист1!$I$2;0;0;COUNTA(Лист1!$I$2:$I$10)-COUNTBLANK(Лист1!I$2:I$10)) но не знаю подкатегории. Мне жеЗаранее благодарю! Target.ClearContents Application.EnableEvents =
хотим поместить раскрывающийся
Теперь удалим значение «береза». списка в Excel
абсолютную ссылку, потому изображении) и G3:G15Так, например, если мы с ним становитсяИспользуем функцию ДВССЫЛ() необходимо сохранить файл.
В этой статье создадимПеред тем, как – ячейки А2:А4
Фактически, мы просто даемкуда потом девать надо, что быPelena True End If
exceltable.com
Выпадающий список в Excel с помощью инструментов или макросов
список.Осуществить задуманное нам помоглаОдна формула, ну не что предполагаю, что (список повторяющихся категорий выберем категорию Развлечения, неудобно. Выпадающий список
Альтернативным способом ссылки наВторой недостаток: диапазон источника Выпадающий список с устанавливать выпадающие списки должны совпадать с диапазону занятых ячеек тела… после того, как: Здравствуйте. End Sub
Создание раскрывающегося списка
Открываем параметры проверки данных. «умная таблица», которая такая уж и мы будем использовать в фиолетовой рабочей
то в списке одновременно отображает только перечень элементов, расположенных должен располагаться на
- помощью Проверки данных в столбце В,
- ячейками В1:D1). в синем столбцеИмеем в качестве примера я выбрал на
- У Вас вЧтобы выбираемые значения отображались В поле «Источник» легка «расширяется», меняется.
простая, но облегчающая раскрывающийся список во
таблице).
Выпадающий список в Excel с подстановкой данных
подкатегорий должно быть: 8 элементов, а на другом листе, том же листе, (Данные/ Работа с выберите в первойЕсли наименований много, собственное название
- недельный график дежурств, Лист1 из выпадающего первом списке после в одной ячейке,
- вводим формулу: =ДВССЫЛ(“[Список1.xlsx]Лист1!$A$1:$A$9”).Теперь сделаем так, чтобы работу и защищает многих ячейках.Для того чтобы назвать Кинотеатр, Театр, Бассейн. чтобы увидеть остальные, является использование функции что и выпадающий данными/ Проверка данных) верхней ячейке столбца то столбец можноИмена
- который надо заполнить списка нужный мне названия пробел лишний разделенные любым знакомИмя файла, из которого можно было вводить от ошибок приПоскольку рабочая таблица отсортирована
список категорий: Очень быстрое решение, нужно пользоваться полосой
ДВССЫЛ(). На листе список, т.к. для
с типом данных
А любое значение. транспонировать в строку..
именами сотрудников, причем товар, в соседней (неразрывный). Если его препинания, применим такой берется информация для новые значения прямо вводе данных!
- по Категории, тоВыберите диапазон A3:A5. если в своем прокрутки, что не Пример, выделяем диапазон
- правил Проверки данных нельзя Список. Главное, чтобы эта Как это сделать,Осталось выделить ячейки B2:B8
- для каждого сотрудника ячейке этого же убрать, то всё модуль. списка, заключено в в ячейку сЧитайте также: Связанные выпадающие
- диапазон, который долженВ поле имени (поле домашнем бюджете вы всегда удобно. ячеек, которые будут использовать ссылки наВыпадающий список можно сформировать ячейка не была смотрите в статье нашего графика и максимальное количество рабочих листа сразу же получаетсяPrivate Sub Worksheet_Change(ByVal квадратные скобки. Этот этим списком. И списки и формула быть источником для слева от строки хотите проанализировать болееВ EXCEL не предусмотрена содержать выпадающий список, другие листы или по разному. пустой. У нас «Как поменять местами добавить в них дней (смен) ограничено. появилась цена этогоMelia95 Target As Range) файл должен быть данные автоматически добавлялись
- массива в Excel раскрывающегося списка, будет
- формулы) введите название подробную информацию. регулировка размера шрифта вызываем Проверку данных, книги (это справедливоСамым простым способом создания – это ячейка столбцы и строки
выпадающий список с Идеальным вариантом было товара. Список товаров: Pelena, спасибо большое!On Error Resume открыт. Если книга
в диапазон.Два варианта использования этого начинаться там, где
Выпадающий список в Excel с данными с другого листа/файла
«Категория». Выпадающего списка. При в Источнике указываем для EXCEL 2007 Выпадающего списка является А2. в Excel» тут. элементами диапазона бы организовать в и цен уже
- Всё отлично, работает. Next с нужными значениями
- Сформируем именованный диапазон. Путь: трюка я уже впервые встречается выбранная
Подтвердите с помощью клавишиПризнаюсь, что в предложенном большом количестве элементов =ДВССЫЛ(«список!A1:A4»). и более ранних). ввод элементов спискаВыделяем диапазон вКак настроить Excel,Имена ячейках B2:B8 выпадающий
Как сделать зависимые выпадающие списки
сформирован на Лист2.
китинIf Not Intersect(Target, находится в другой «Формулы» — «Диспетчер представил. Интересно, как категория. Например, для Enter. мной варианте домашнего
- имеет смысл сортироватьНедостатокИзбавимся сначала от второго
- непосредственно в поле столбце В (у чтобы при добавлении. Для этого список, но при
- Еще раз прикрепляю: нет, слишком просто!!!! Range(«C2:C5»)) Is Nothing папке, нужно указывать имен» — «Создать». вы его будете категории Питание мыТакое же действие совершите бюджета я ограничиваюсь список элементов и: при переименовании листа недостатка – разместим Источник инструмента Проверка
Выбор нескольких значений из выпадающего списка Excel
нас – это ячеек в списокв Excel 2003 и этом сделать так, файл.
- формула в проверку And Target.Cells.Count = путь полностью. Вводим уникальное название использовать? хотим отобразить диапазон для диапазона рабочего только категорией, поскольку использовать дополнительную классификацию – формула перестает перечень элементов выпадающего данных. В2:В3). Снова через столбца A, автоматически старше — откроем чтобы уже занятыеНасколько я понимаю, данных 1 ThenВозьмем три именованных диапазона: диапазона – ОК.Под выпадающим списком понимается H6:H11, для Транспорта списка категорий G3:G15, для меня такого элементов (т.е. один
- работать. Как это списка на другомПредположим, в ячейке функцию «Проверка данных» писалось название нового меню сотрудники автоматически убирались в моем примере,200?’200px’:»+(this.scrollHeight+5)+’px’);»>=СМЕЩ(Лист2!$A$2;;ПОИСКПОЗ($A$2;Лист2!$A$1:$U$1;0)-1;СЧЁТЗ(ИНДЕКС(Лист2!$A$2:$U$19;;ПОИСКПОЗ($A$2;Лист2!$A$1:$U$1;0))))Application.EnableEvents = FalseЭто обязательное условие. ВышеСоздаем раскрывающийся список в содержание в одной — диапазон H12: который вы можете разделения расходов вполне выпадающий список разбить можно частично обойти листе.
- B1 выбираем «Тип данных» столбца, смотрите вДанные — Проверка (Data из выпадающего списка,
нужно использовать параметр_Boroda_
newVal = Target описано, как сделать
любой ячейке. Как ячейке нескольких значений. H15 и т. вызвать "Рабочий_Список". Этот
достаточно (название расходов
на 2 и
см. в статье
В правилах Проверки данных (также
необходимо создать выпадающий – список. А статье «Как добавить
- Validation) оставляя только свободных: ЕСЛИ, вроде как-то
: Я обычно немного
Application.Undo
обычный список именованным
это сделать, уже Когда пользователь щелкает
д. Обратите внимание,
диапазон мы будем
/ доходов рассматривается
более). Определяем имя листа. как и Условного список для ввода в строке «Источник» столбец в Excel
Выпадающий список с поиском
- ,Чтобы реализовать подобный вариант так: Если из посложнее пишу, ноoldval = Target диапазоном (с помощью
- известно. Источник – по стрелочке справа, что все время использовать в формуле. как подкатегория). Однако,Например, чтобы эффективно работать
- Ввод элементов списка в форматирования) нельзя впрямую
- единиц измерений. Выделим пишем такую формулу автоматически».в Excel 2007 и выпадающего списка выполним выпадающего списка на зато можно дописыватьIf Len(oldval) <>
«Диспетчера имен»). Помним,
имя диапазона: =деревья. появляется определенный перечень. мы перемещаемся поЭто будет просто: если вам нужно со списком сотрудников диапазон ячеек, находящегося указать ссылку на ячейку =ДВССЫЛ(А2)
exceltable.com
Зависимые выпадающие списки (Иное/Other)
Как сделать в Excel новее — жмем
несколько простых шагов.
ячейке на ЛИСТ1 данные для списков 0 And oldval
что имя неСнимаем галочки на вкладках Можно выбрать конкретное. столбцу H, аВыберите ячейку, в которую
разделить их на насчитывающем более 300 в другой книге диапазоны другого листаB1Этой формулой мы говорим
динамический диапазон кнопку
Сначала давайте подсчитаем кто
выбрана ячейка А1 сразу прямо на
<> newVal Then может содержать пробелов «Сообщение для ввода»,Очень удобный инструмент Excel единственное, что изменяется, вы хотите поместить
подкатегории, то метод, сотрудников, то его
Если необходимо перенести диапазон
(см. Файл примера):и вызовем Проверку
Excel, что список- чтобы размерПроверка данных (Data Validation)
из наших сотрудников на ЛИСТ2, тогда лист2 и ониTarget = Target и знаков препинания. «Сообщение об ошибке». для проверки введенных это начало диапазона список. В моем
который я описываю
следует сначала отсортировать
с элементами выпадающего
Пусть ячейки, которые должны
данных. нужно показывать, в диапазонов списков прина вкладке уже назначен на на ЛИСТ1 и автоподхватываются в оба & «,» &Создадим первый выпадающий список, Если этого не данных. Повысить комфорт и его высота случае это A12.
ниже, будет идеальным. в алфавитном порядке. списка в другую
excelworld.ru
Как сделать — Связанный (зависимый) выпадающий список (Формулы)
содержать Выпадающий список,Если в поле Источник
зависимости от значения
добавлении или убавленииДанные (Data) дежурство и на
ячейка В2 должна вып. списка newVal
куда войдут названия сделать, Excel не работы с данными (то есть количествоВ меню «ДАННЫЕ» выберите Смело используйте! Затем создать выпадающий книгу (например, в размещены на листе указать через точку в ячейке столбца ячеек менялся автоматически,В открывшемся окне выберем сколько смен. Для быть равна ячейке
Для списка 1
Else диапазонов.
позволит нам вводить позволяют возможности выпадающих элементов в списке).
инструмент «Проверка данных».А конечный результат выглядит
список, содержащий буквы
книгу Источник.xlsx), то
Пример,
с запятой единицы А.
смотрите в статье в списке допустимых этого добавим к
ЛИСТ2 В2.200?’200px’:»+(this.scrollHeight+5)+’px’);»>=ИНДЕКС(Лист2!$1:$1;1):ИНДЕКС(Лист2!$1:$1;СЧЁТЗ(Лист2!$1:$1))
Target = newValКогда поставили курсор в новые значения. списков: подстановка данных,Начало диапазона будет перемещено Появится окно «Проверка следующим образом: алфавита. Второй выпадающий нужно сделать следующее:а диапазон с перечнем измерения шт;кг;кв.м;куб.м, тоЗдесь все просто. «Чтобы размер таблицы значений вариант зеленой таблице ещекитинДля списка 2
End If поле «Источник», переходим
Вызываем редактор Visual Basic. отображение данных другого относительно ячейки H2 вводимых значений».Для того чтобы этого список должен содержатьв книге Источник.xlsx создайте элементов разместим на выбор будет ограничен Но бывает название Excel менялся автоматически».Список (List) один столбец, введем
: ну если вамКод200?’200px’:»+(this.scrollHeight+5)+’px’);»>=ИНДЕКС(Лист2!$2:$2;ПОИСКПОЗ(Лист1!$A27;Сп1;)):ИНДЕКС(Лист2!$1:$99;СЧЁТЗ(ИНДЕКС(Лист2!$1:$99;;ПОИСКПОЗ(Лист1!$A27;Сп1;)));ПОИСКПОЗ(Лист1!$A27;Сп1;))If Len(newVal) =
на лист и Для этого щелкаем
листа или файла,
на такое количествоВ качестве типа данных
достичь, необходимо сделать только те фамилии, необходимый перечень элементов; другом листе (на
этими четырьмя значениями. диапазона (столбца) состоитТеперь нужно присвоитьи укажем в него следующую надо только,что бы
enzo 0 Then Target.ClearContents выделяем попеременно нужные правой кнопкой мыши наличие функции поиска ячеек вниз (по
выберите «Список».
немного другую таблицу которые начинаются св книге Источник.xlsx диапазону листе Список вТеперь смотрим, что получилось. из нескольких слов. имена всем этимИсточник (Source)
формулу:тогда это просто: Интересно стало ,Application.EnableEvents = True ячейки. по названию листа
и зависимости. числу), сколько составляетВ качестве источника введите: данных, чем если буквы, выбранной первым
ячеек содержащему перечень файле примера). Выделим ячейку Например, «Зимние пальто». спискам. У нас
данных:=СЧЁТЕСЛИ($B$2:$B$8;E2) или в англоязычной ВПР а если на
End IfТеперь создадим второй раскрывающийся и переходим поПуть: меню «Данные» -
номер позиции первой =Категория (рисунок ниже). бы мы создавали
списком. Для решения элементов присвойте Имя,Для создания выпадающего списка,
excelworld.ru
Выпадающий список с удалением использованных элементов
B1 А в имени
в списках четыреВот и все! Теперь
Постановка задачи
версии =COUNTIF($B$2:$B$8;E2)200?’200px’:»+(this.scrollHeight+5)+’px’);»>=ВПР($A7;Лист2!$B$2:$H$161;6;ЛОЖЬ) листе2, данные будутEnd Sub список. В нем вкладке «Исходный текст». инструмент «Проверка данных» встречающейся категории вПодтвердите с помощью OK. один раскрывающийся список. такой задачи может например СписокВнеш; элементы которого расположены. При выделении ячейки диапазона нельзя ставить диапазона (четыре столбца).
при назначении сотрудниковФактически, формула просто вычисляетсделал на примере
Шаг 1. Кто сколько работает?
в 2 столбцаНе забываем менять диапазоны должны отражаться те Либо одновременно нажимаем — вкладка «Параметры». столбце Категория. ПрощеПроверка вводимых значений – Таблица должна выглядеть быть использована структураоткройте книгу, в которой
на другом листе, справа от ячейки
пробел. Имя диапазона Легко и быстро на дежурство их сколько раз имя
Шаг 2. Кто еще свободен?
1 ячейки С7 ( Проект и на «свои». Списки слова, которые соответствуют клавиши Alt + Тип данных – будет понять на Категория. так (диапазон G2:H15): Связанный список или
предполагается разместить ячейки
Шаг 3. Формируем список
можно использовать два появляется квадратная кнопка напишем так «Зимние_пальто». сделать так. имена будут автоматически сотрудника встречалось вкитин под проект) ? создаем классическим способом. выбранному в первом F11. Копируем код «Список».
примере: диапазон для
Результат следующий:
В эту таблицу необходимо
Вложенный связанный список. с выпадающим списком; подхода. Один основан со стрелкой для Но формула ДВССЫЛКак присвоить имя диапазону удаляться из выпадающего диапазоне с именами.: немного переделал.убрал ошибку.файл На листе 1 А всю остальную
Шаг 4. Создаем именованный диапазон свободных сотрудников
- списке названию. Если (только вставьте своиВвести значения, из которых категории Питание перемещенРаскрывающийся список для категории. ввести категорию и
- Зависимый выпадающий список позволяетвыделите нужный диапазон ячеек, на использовании Именованного выбора элементов из не найдет этот в
списка, оставляя толькоТеперь выясним, кто из новый. можно будет зависимые
работу будут делать
«Деревья», то «граб»,
параметры).Private Sub Worksheet_Change(ByVal будет складываться выпадающий на 4 ячейкиСейчас будет весело. Создавать рядом с ней сделать трюк, который
Шаг 5. Создаем выпадающий список в ячейках
вызовите инструмент Проверка диапазона, другой – выпадающего списка. диапазон. Тогда формулуExcel. тех, кто еще наших сотрудников еще
- 200?’200px’:»+(this.scrollHeight+5)+’px’);»>=ЕСЛИ(ЕНД(ВПР($A2;Лист2!$B$2:$H$161;6;ЛОЖЬ));»»;ВПР($A2;Лист2!$B$2:$H$161;6;ЛОЖЬ)) выпадающие списки сделать макросы. «дуб» и т.д. Target As Range) список, можно разными
- вниз относительно ячейки списки мы умеем ее подкатегории. Имя очень часто хвалят данных, в поле функции ДВССЫЛ().
Недостатки нужно написать так.Выделяем диапазон ячеек свободен. свободен, т.е. неfelixtreem ? Или это
На вкладке «Разработчик» находим Вводим в поле Dim lReply As способами: H2 (начинается с — только что категории должно повторяться пользователи шаблонов Excel.
planetaexcel.ru
Источник укажите =ДВССЫЛ(«[Источник.xlsx]лист1!СписокВнеш»);
Хитрости »
1 Май 2011 197763 просмотров
Связанные выпадающие списки
Скачать файл, используемый в видеоуроке:
Связанные выпадающие списки.xls (216,5 KiB, 3 066 скачиваний)
Чтобы понять о чем пойдет речь в статье сначала необходимо понимать что такое выпадающий список и как его создать. Теперь попробуем разобраться что значит выражение «связанный выпадающий список». Я бы еще назвал такой список зависимым. Т.е. когда список значений одного выпадающего списка зависит от значения, выбранного в другом выпадающем списке или просто забитого в ячейку. Представим ситуацию: есть ячейка А2. В ней создан выпадающий список со значениями: Овощи, Фрукты, Мясо, Напитки. А в ячейке В2 нам нужен такой список, чтобы значения этого самого списка изменялись в зависимости от того, какое значение мы укажем в ячейке А2 — т.е. список выбранной категории продуктов. Например выбрали в А2 значение Овощи — в В2 появился выпадающий список, содержащий значения: Морковь, Капуста, Картошка, Редиска, Помидоры. Выбрали в А2 Мясо — в В2 появился выпадающий список, содержащий значения: Говядина, Телятина, Свинина, Курица, Индейка. И т.д.
Подготовка
Для начала нам потребуется создать все эти списки. Что-то вроде этого:
Далее для каждого из этих списков необходимо назначить именованный диапазон. Создать можно любым способом из описанных в этой статье. Главное помнить — если сами списки расположено на листе, отличном от того, на котором списки выпадающие — то обязательно создавать именованный диапазон с назначением области действия — Книга.
В приложенном к статье примере диапазоны имеют имена категорий — их можно видеть в заголовках.
Если ваши категории содержат пробел — необходимо заменить его на нижнее подчеркивание (_) или удалить, т.к. в качестве именованного диапазона такое значение не подойдет и ничего в результате не получится.
Создание зависимых списков
В ячейке А2 создаем «список списков» — основной список, на основании значений которого будет создаваться второй список. Этот список может быть создан любым способом (как создать выпадающий список). Назовем его Список категорий.
В ячейке В2 потребуется создать список на основании формулы, хоть по сути и так же, как и остальные: вкладка Данные (Data)—Проверка данных (Data validation)—Список (List). Но теперь вместо прямого указания имени списка необходимо указать ссылку на именованный диапазон, который мы выберем в Списке категорий(ячейка А2), на основании его имени. В этом нам поможет функция ДВССЫЛ (INDIRECT). Просто записываем эту формулу в поле Источник (Source): =ДВССЫЛ($A2)
На что обратить внимание: если вы планируете распространять такой список на столбец, то ссылка должна выглядеть именно так: $A2. Перед цифрой не должно быть знака доллара ($A$2 — неправильно). Иначе зависимый список будет всегда формироваться исключительно на основании значении ячейки А2.
Источник из другой книги
Сами списки товара могут находится и в другой книге. Если книга называется Книга со списком.xls и на Лист1 в ячейке А1 в этой книге находится имя нужного нам списка, то формула будет выглядеть так:
=ДВССЫЛ(«‘[Книга со списком.xls]Лист1’!»&$A$1)
На что обратить внимание: лучше всегда перед именем книги и после имени листа ставить апостроф — ‘. Так вы избежите проблем и недопонимания, если имя листа или книги содержит пробелы и иные специфические символы. В отличии от списков внутри одной книги в данном случае знак доллара должен быть и перед буквой и перед цифрой. В ином случае возможны ошибки (если, конечно, это не было сделано специально с пониманием того, что делалось).
Ограничения: данный способ создания списков хорош, но не обошлось и без ложки дегтя. Даже двух:
- обе книги должны быть открыты. Если вы закроете книгу со списками, то получите ошибку — выпадающие списки просто перестанут работать
- созданные подобным образом связанные списки не будут работать с динамическими именованными диапазонами
И ничего с этими ограничениями не поделать при подобном подходе.
Скачать пример
Tips_Lists_Connect_Validation.xls (26,5 KiB, 18 103 скачиваний)
Так же см.:
Выпадающие списки
Именованные диапазоны
Динамические именованные диапазоны
Статья помогла? Поделись ссылкой с друзьями!
Видеоуроки
Поиск по меткам
Access
apple watch
Multex
Power Query и Power BI
VBA управление кодами
Бесплатные надстройки
Дата и время
Записки
ИП
Надстройки
Печать
Политика Конфиденциальности
Почта
Программы
Работа с приложениями
Разработка приложений
Росстат
Тренинги и вебинары
Финансовые
Форматирование
Функции Excel
акции MulTEx
ссылки
статистика
Что такое выпадающий список
Выпадающий список в Excel (или раскрывающийся список) — это список в ячейке Excel, из которого можно выбрать одно из нескольких заранее заданных значений. Это удобно для быстрого и правильного заполнения данных: не вбивать руками, а просто выбрать. Тут же можно настроить контроль, чтобы пользователи не могли вносить значения, не предусмотренные в списке.
Выпадающий список работает так: выбираете ячейку и справа от нее появляется кнопка со стрелкой вниз (правда, стрелка больше похожа на треугольник).
После нажатия на кнопку списка появится перечень доступных значений, одно из которых можно выбрать.
Значений в списке может быть много, но в обзор помещается до 8 строк. Если значений в списке больше восьми, справа от них появится полоса прокрутки.
Создание выпадающего списка
Чтобы создать выпадающий список, выделите ячейку, где он должен появиться (или группу ячеек) и перейдите на вкладку Данные -> Проверка данных.
В появившемся окне укажите тип данных – Список, поставьте галочку рядом со строкой «Список допустимых значений».
Источником данных может быть:
- Текст – пишется через точку с запятой «;» и без знака равно «=», например
Материалы;Заработная плата;Амортизация
- Ссылки на ячейки:
=$A$1:$A$7
- Именованный диапазон:
=ИмяДиапазона
и т.д.
Связанные выпадающие списки
Связанные выпадающие списки – это списки, в которых выпадающие значения появляются не «просто так», а в зависимости от уже заполненных данных. Так, для выбранной группы появится только список входящих в неё наименований.
Создадим выпадающие списки несколькими способами – для разных таблиц с исходными данными.
Способ 1. Названия групп в заголовках столбцов, в строках – элементы групп.
Способ 2. Названия групп – в первом столбце, элементы групп – во втором столбце.
Способ 1. Связанные выпадающие списки из таблицы с группами в заголовках столбцов
Исходные данные: таблица с названиями групп в заголовках столбцов.
В этом способе используется всего одна простая формула — ДВССЫЛ (правда, непривычная обычным пользователям) и форматированная smart-таблица Excel (иногда их еще называют «умные» таблицы). Зато вы получите взаимозависимые списки и будете пользоваться ими по принципу «сделал и забыл». Не нужно будет переживать о том, что «слетит» диапазон и переделывать всю архитектуру данных. Просто один раз сделаете и будете пользоваться.
Справка:
Форматированная таблица – это таблица, у которой есть свое имя, свойства и структура. Такая таблица представляет из себя именованный «саморасширяющийся» диапазон. При добавлении в нее новых данных границы таблицы автоматически «захватят» новое значение.
У форматированной таблицы множество преимуществ по сравнению с обычной. Поэтому на курсах и семинарах я советую использовать такие таблицы везде, где есть такая возможность.
Создать форматированную таблицу просто: выделите диапазон ячеек и перейдите в меню Главная -> Форматировать как таблицу -> выберите понравившийся вид таблицы. Готово – форматированная таблица создана.
Формула ДВССЫЛ передает значения из ячейки, адрес которой записан в самой формуле в виде текстовой строки.
Например, записываем в ячейке B1 адрес ячейки А1. Формула ДВССЫЛ(B1) «увидит», какой адрес записан в ячейке B1, а результатом вычисления формулы будет текст, записанный в ячейке А1. Эту же формулу можно записать, указав адрес ячейки в кавычках – ДВССЫЛ(«А1»).
С помощью ДВССЫЛ можно обратиться к ячейке по адресу с помощью других формул, например СЦЕПИТЬ, & или ЕСЛИ и т.д. Так, формула на рисунке ДВССЫЛ(B1&C1) обращается к тексту в ячейке А1. После нажатия Enter в ячейке, где вводилась формула ДВССЫЛ(B1&C1) появится значение из ячейки A1, в нашем случае это «текст».
Пошаговая инструкция по созданию связанных выпадающих списков
Шаг 1. Создайте справочник исходных данных в виде форматированной smart-таблицы.
- Выделите таблицу со статьями и преобразуйте ее в smart-таблицу: выберите в меню Главная -> Форматировать как таблицу.
- В появившемся окне обязательно проверьте галочку рядом с надписью «Таблица с заголовками». Если ее нет – поставьте.
- Присвойте созданной таблице имя: выделите любую ячейку таблицы, перейдите на вкладку Конструктор, введите имя — «Источник».
Таблица «Источник» создана. Теперь можно обращаться к таблице и её элементам по имени. Например, название заголовка таблицы будет выглядеть так: =Источник[#Заголовки]
Столбец таблицы: =Источник[Материалы]
Чтобы появилась такая формула, нажмите равно = и выделите столбец, его имя появится в строке формул.
Шаг 2. Создайте выпадающий список с группами.
- Выделите ячейки в столбце «группа».
- Перейдите в меню Данные -> Проверка данных.
- В появившемся окне выберите тип данных — Список, а в строке Источник введите формулу =ДВССЫЛ(«Источник[#Заголовки]»)
Готово! В столбце «группа» появился выпадающий список.
Шаг 3. Создайте выпадающий список со статьями.
- Выделите столбец «статья» в таблице.
- Перейдите в меню Данные -> Проверка данных.
- В появившемся окне выберите тип данных — Список, а в строке Источник введите формулу: =ДВССЫЛ(«Источник[«&$G3&»]»)
В формуле $G3 – это первая ячейка из столбца «группа». Ссылка на столбец «зафиксирована» с помощью знака доллара $, а строка может изменяться.
Готово! В столбце «статья» появляется только список статей, входящих в группу.
Теперь в форматированную smart-таблицу можно добавлять новые группы и статьи. Добавим, например, новый столбец «Прочее», и такая группа сразу же появится в выпадающем списке.
Способ 2. Связанные выпадающие списки из таблицы с группами в первом столбце и элементами — во втором
Исходные данные: таблица с названиями групп в первом столбце, элементами групп – во втором столбце.
На самом деле в сети можно найти несколько вариантов реализации этого способа. Но у них у всех есть один недостаток: такой список нужно «администрировать». Потому что таблица должна быть всегда отсортирована по названиям групп – нельзя, чтобы группы располагались произвольно. Если группы будут идти «как попало», то формула, с помощью которой это всё сделано (СМЕЩ) не сработает, и список будет создаваться с ошибкой. Т.е. пользователю нужно все время сортировать первый столбец или добавлять туда данные в алфавитном порядке. А еще потребуется записывать где-то отдельно сами названия групп и это тоже нужно будет делать «вручную».
Мы придумали, как обойти эту проблему: с помощью сводных таблиц, которые будут за нас упорядочивать данные. Благодаря этому постоянное «администрирование» будет заменено на простую процедуру «обновить».
Для создания списков используем форматированные (умные) таблицы, сводные таблицы, формулы СМЕЩ + ПОИСКПОЗ + СЧЁТЗ, СЧЁТЕСЛИ и диспетчер имен.
Справка:
СМЕЩ выдает ссылку на диапазон ячеек, находящийся в указанном количестве ячеек от исходной. Ссылка определяется с учетом заданного в формуле размера диапазона – числа строк и столбцов. Другими словами, этой формулой вы можете «сказать» Excel-ю на сколько ячеек он должен отступить и какой диапазон «захватить».
Синтаксис формулы СМЕЩ такой:
СМЕЩ(ссылка ; смещ_по_строкам ; смещ_по_столбцам ; [высота] ; [ширина] ), где
- ссылка – ссылка, от которой вычисляется смещение, может быть адресом ячейки или группы ячеек;
- смещ_по_строкам – количество строк, которые требуется отсчитать вверх или вниз от начальной ссылки;
- смещ_по_столбцам – количество столбцов, которые требуется отсчитать влево или вправо от начальной ссылки;
- [высота] – число строк возвращаемой ссылки (необязательный);
- [ширина] – число столбцов возвращаемой ссылки (необязательный).
Ищет нужный нам элемент в диапазоне ячеек и выдает его порядковый номер в диапазоне.
Синтаксис ПОИСКПОЗ такой:
ПОИСКПОЗ( искомое_значение ; просматриваемый_массив ; [тип_сопоставления] )
- искомое_значение – значение, которое ищем. Может быть числом, текстом, логическим значением или ссылкой на ячейку;
- просматриваемый_массив – диапазон ячеек, где будем искать нужное значение;
- [тип_сопоставления] — число -1, 0 или 1, которое показывает, как сравнивать искомое значение с ячейками просматриваемого массива. Не переживайте, если не поняли, когда и что ставить, потому что 90% случаев нужно выбирать ноль.
Подробнее про эту формулу можно посмотреть в видеоинструкции: Какая формула лучше ВПР и работает с несколькими критериями
СЧЁТЗ просто считает количество непустых ячеек в диапазоне.
Почти тот же СУММЕСЛИ, только проще – подсчитывает количество значений, соответствующих определенному условию.
Пошаговая инструкция по созданию списков
Шаг 1. Преобразуйте исходные данные в форматированную smart-таблицу.
- Выделите таблицу со статьями и преобразуйте ее в smart-таблицу: перейдите в меню Главная -> Форматировать как таблицу.
- В появившемся окне обязательно проверьте галочку рядом с надписью «Таблица с заголовками». Если ее нет – поставьте.
- Присвойте таблице имя: на вкладке Конструктор введите имя таблицы — «статьи».
Форматированная таблица «статьи» создана.
Шаг 2. Создайте две сводные таблицы – одну с названиями групп, вторую — со статьями.
Для чего используем сводные таблицы? Во-первых, чтобы вручную не создавать перечень групп, а во-вторых, как уже упоминали выше, чтобы вручную не сортировать справочники статей (что иногда забывают сделать пользователи, а это важно, иначе формула СМЕЩ «срабатывает» с ошибкой). «Ручную» работу сделает вместо нас кнопка «Обновить» в меню Данные — нажимаем ее каждый раз после появления новых статей.
- Создайте первую сводную таблицу с группами статей.
Выделите любую ячейку таблицы с исходными данными, перейдите в меню Вставка -> Сводная таблица. Добавьте сводную таблицу на существующий лист и поместите группы в область строк.
- Создайте вторую сводную таблицу со статьями: меню Вставка -> Сводная таблица. В область строк поместите группы и статьи.
- Форматируем сводную таблицу со статьями и придаем ей вид справочника.
Выделите любую ячейку таблицы, перейдите на вкладку Конструктор -> Макет отчета -> Показать в табличной форме. У нас получится почти та таблица, которая нам нужна, но в ней автоматом появятся промежуточные суммы. Чтобы их отключить, идем: Промежуточные итоги -> Не показывать промежуточные суммы.
- Скройте строку «Общий итог» в обеих таблицах справочников. Перейдите на вкладку Конструктор -> Общие итоги -> Отключить для строк и столбцов.
В итоге получатся два справочника, как на рисунке ниже. Для удобства разместите таблицы рядом на одном листе – с первой строки и в столбцах A, C и D, как на рисунке (это поможет разобраться с формулой СМЕЩ).
Шаг 3. Создайте именованные диапазоны с помощью диспетчера имен.
- Откройте диспетчер имен: в меню Формулы -> Диспетчер имен.
- В появившемся окне нажмите кнопку «Создать».
-
- Введите имя «ГруппыСписок» и формулу, которая будет определять диапазон:
=СМЕЩ($A$1;1;0;СЧЁТЗ($A:$A)-1;1)
- Введите имя «ГруппыСписок» и формулу, которая будет определять диапазон:
Пояснения к формуле:
СМЕЩ ( $A$1 ; 1 ; 0 ; СЧЁТЗ( $A:$A ) – 1 ; 1 ) – определяет адрес ячеек с названиями групп.
-
- $A$1 – это первая ячейка в справочнике групп.
- Следующие цифры 1 ; 0 – это отступ от первой ячейки на 1 строку и 0 столбцов (отступ нужен, потому что в первой ячейке название столбца).
- СЧЁТЗ( $A:$A ) – 1 Считаем число непустых ячеек в столбце А. Вычитаем -1, потому что название столбца не должно быть в списке.
- Последнее число 1 в формуле – это количество столбцов.
Нажмите ОК. Названия листов в формуле появятся сами.
- Точно так же создайте в диспетчере имен список статей.
Введите имя ГруппыСтатей, а для диапазона – формулу:
=СМЕЩ($C$1;ПОИСКПОЗ($G2;$C:$C;0)-1;1;СЧЁТЕСЛИ($C:$C;$G2);1)
Пояснения к формуле:
СМЕЩ ( $C$1 ; ПОИСКПОЗ ( $G2 ; $C:$C ; 0 ) – 1 ; 1 ; СЧЁТЕСЛИ( $C:$C ; $G2 ) ; 1 ) – определяет адрес ячеек с названиями статей из группы с помощью ПОИСКПОЗ, которая ищет группы статей.
- $С$1 – это первая ячейка в столбце с группами.
- ПОИСКПОЗ ( $G2 ; $C:$C ; 0 ) – 1 Определяет, на сколько строк нужно отступить от первой ячейки.ПОИСКПОЗ ищет название группы, выбранной в таблице с данными (столбец $G) среди ячеек справочника (столбец $C). В адресе ячейки $G2 не «закрепляем» номер строки с помощью знака $, чтобы формула работала для каждой ячейки в столбце.
- Следующая цифра 1 – это отступ на 1 столбец вправо, т.е. переходим к столбцу «статьи», откуда нужно брать данные.
- СЧЁТЕСЛИ( $C:$C ; $G2 ) – считаем число ячеек в столбце $C, в которых названия групп такие же, как в столбце с данными. Здесь тоже не «закрепляем» номер строки у ячейки $G2 с помощью знака $.
- Последнее число 1 в формуле – это количество столбцов.
Шаг 4. Создайте выпадающие списки.
Выделите ячейки в столбце «группы», перейдите в меню Данные -> Проверка данных. Задайте тип данных Список, источник =ГруппыСписок.
То же самое – для статей. Тип данных – список, источник =ГруппыСтатьи
Выпадающие списки готовы. Форматированные smart-таблицы позволят «захватить» все данные, а сводные таблицы – избежать ошибок, отсортировать справочник и создать список групп.