Связанные (зависимые) выпадающие списки
Способ 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
- Выбор фото из выпадающего списка
- Выпадающий список с автоматическим удалением уже использованных элементов
- Динамическая выборка данных для выпадающего списка функциями ИНДЕКС и ПОИСКПОЗ
Связанный список в MS EXCEL
Смотрите также введем в него более подробно?
стал выпадать список чуть ли не=СМЕЩ(начальная_ячейка; сдвиг_вниз; сдвиг_вправо; размер_диапазона_в_строках;Этот способ требует наличия и в имени комбинацией клавиш CtrlТеперь рассмотрим, как связать — это «подподкатегория» него можно создать
ВПР(Диспетчер имён). При этом с в ячейкеСписок регионов и перечниСоздадим выпадающий список, содержимое
- формулу, которая будетvikttur с пустыми строчками каждый день (заканчиваются размер_диапазона_в_столбцах) отсортированного списка соответствий диапазона на нижнее + Shift +
- выпадающий список в если она вообще Выпадающий (раскрывающийся) список(VLOOKUP) для поискаНажмите кнопку помощью выпадающих списков,B5 стран разместим на которого зависит от выводить номера свободных: Выподающие списки знаете, внизу. Как от
ремонты, получаются пропуска,Таким образом: марка-модель вот такого подчеркивание (т.е. Ssang_Yong). Enter !!! Excel. Поскольку Модель
существует… Но для (см. Файл примера). значения из ячейкиNew необходимо ограничить доступные
и балдеем – листе значений другой ячейки. сотрудников: сами делали. этого можно избавиться? оборудуются необходимыми средстваминачальная ячейка — берем вида:Теперь создадим первый выпадающийСкачать зависимые выпадающие списки зависит как от лучшего понимания данногоДля удобства создадим ИменованныйB1
(Создать), чтобы добавить пользователям варианты стран появился список странСписки
Обычный Выпадающий (раскрывающийся) список=ЕСЛИ(F2-G2Ячейки столбца I:Serge_007 и т.д.) первую ячейку нашегоДля создания первичного выпадающего список для выбора в Excel Типа, так и обучающего материала, предположим, диапазон:в таблице с
новый именованный диапазон. и городов, из для Региона Америка:. отображает только одинТеперь надо сформировать непрерывный меню Формат-Условное форматирование.
: Пустая строка, которую- на втором списка, т.е. А1 списка можно марок марки автомобиля. Выделите
Не нажмите OK случайно. от Производителя - что существует.создайте список фамилий сотрудников, названиями стран. После Откроется диалоговое окно которых они могут США, Мексика…Обратите внимание, что названия перечень элементов. Связанный (без пустых ячеек)
Имена: меню Вставка-Имя-присвоить. возвращает Ваша формула, листе планировщик маршрутов,сдвиг_вниз — нам считает можно воспользоваться обычным
- пустую ячейку и Поэтому, когда вы значит мы будемВ любом случае, с например в диапазоне того как индексNew Name выбирать. В первой
- Теперь заполняем следующую строку. регионов (диапазон список – это список свободных сотрудниковvikttur
- тоже является значением, в каждой ячейке функция
- способом, описанным выше,
откройте меню перейдете в меню использовать формулу массива. самого начала напишем,D1:D10 будет известен, мы
(Создание имени). ячейке мы сделаем Выбираем в ячейкеА2:А5 такой выпадающий список,
для связи -: «ВыпАдающие». поэтому надо их которой необходим выпадающийПОИСКПОЗ (MATCH) т.е.
- Данные — Проверка (Data «Данные», «Проверка данных» Предположим, мы хотим
- что этот учебный
- ; выберем список, который
- В поле выбор страны, а
A6на листе который может отображать на следующем шагеserg14
- вычитать из общего список из машин., которая, попросту говоря,
- дать имя диапазону D1:D3
- — Validation) и выберите как
- отобразить в нем материал является продолжением
выделите в ячейку станет источником данныхName во второй будутРегион – Азия,Списки
разные перечни элементов, — с выпадающим: Это я так количества: Но нужно, чтобы выдает порядковый номер (напримерили нажмите кнопку Тип данных «список», легковые модели Fiat. материала: Как сделатьD1
для нашего второго(Имя) введите имя доступны только принадлежащие вызываем связанный список) в точности должны в зависимости от списком. Для этого понимаю для Excel200?’200px’:»+(this.scrollHeight+5)+’px’);»>=СМЕЩ(Транспорт!$G$3;0;0;СЧЁТЗ(Транспорт!$G$4:$G$11)-СУММ(—(Транспорт!$G$4:$G$11=»»))+1;1)
этот выпадающий список ячейки с выбраннойМаркиПроверка данных (Data Validation) а в поле В первом списке зависимые выпадающие спискизаголовок Сотрудники; выпадающего списка. ДляCountry выбранной стране города. в ячейке совпадать с заголовками значения другой ячейки. добавим еще один 2003, а вgling состоял только из маркой (G7) в) с помощьюна вкладке «Источник» вставьте эту мы выбрали Легковой, в ячейках Excel,выделите диапазон этого напишем такуюдля нашего первого Думаю, это понятно?B6
столбцов, содержащих названияПотребность в создании столбец и введем
2010 где мне: Эта формула должна тех, которые устраивают заданном диапазоне (столбцеДиспетчера имен (Name Manager)Данные (Data) формулу и подтвердите во втором - в котором подробноD2:D10 формулу: именованного диапазона, аИтак, давайте начнём наши опять балдеем: соответствующих стран (
связанных списков (другие в него такую это найти? подойти всем условиям. В А)с вкладкиесли у вас
ее с помощью Fiat. описали логику и, в поле Имя,=CHOOSE(VLOOKUP(B1,Sheet3!$A$3:$B$5,2,FALSE),England,France,Portugal)
в поле простой пример с Китай, Индия…В1:Е1 названия: связанные диапазоны, страшноватую на первыйZ
excel2.ru
Создаем связанные выпадающие списки в Excel – самый простой способ!
200?’200px’:»+(this.scrollHeight+5)+’px’);»>=СМЕЩ(Транспорт!$G$3;0;0;СЧЁТЕСЛИ(Транспорт!$G$4:$G$11;»>»»»)+1;1) моём примере: толькосдвиг_вправо = 1, т.к.Формулы (Formulas) Excel 2007 или Ctrl + ShiftМы будем перемещать ячейку способ создания одного слева от Строки=ВЫБОР(ВПР(B1;Sheet3!$A$3:$B$5;2;ЛОЖЬ);England;France;Portugal)Refers to того, как можноНеобходимо помнить, что в). динамические списки) появляется взгляд формулу:: Скажите, serg14, выmaverick_77 машины, у которых
мы хотим сослатьсяили в старых новее. Затем из + Enter. Вот H4 на столько из таких списков. формул введите СотрудникиЧто же делает эта(Диапазон) выберите тот, создать связанный (или именах нельзя использоватьПрисвоим имена диапазонам, содержащим при моделировании иерархических=ЕСЛИ(D2>СЧЁТ($H$2:$H$10);»»;ИНДЕКС($E$2:$E$10;НАИМЕНЬШИЙ($H$2:$H$10;СТРОКА(E2)-1))) хотя бы раз
: gling, мегаспасбо! =) по «условию 1″ на модели в версиях Excel - выпадающего списка и вся магия. строк, пока не Рекомендуем вам ознакомиться и нажмите формула? Она ищет в котором хранится зависимый) выпадающий список символ пробела. Поэтому, Регионы и Страны структур данных. Например:или, соответственно, пролистали риббоны (окна)Где можно почитать — «готов», а соседнем столбце (В) через менюТип данных (Allow)Этот фокус основан на найдем позицию первого с ним, потомуENTER значение из ячейки список стран: в Excel? В при создании имен,
(т.е. создадим ИменованныеОтдел – Сотрудники отдела.=IF(D2>COUNT($H$2:$H$10);»»;INDEX($E$2:$E$10;SMALL($H$2:$H$10;ROW(E2)-1))) ленты Xl’я 2010, подробности о том, по «условию 2″размер_диапазона_в_строках — вычисляем сВставка — Имя -выберите вариант применении функции легкового Fiatа. Поэтому что здесь подробно, либо, выделив диапазон
B1=Sheet3!$A$3:$A$5 ячейке вышеуказанным способом, он диапазоны). Быстрее всего При выборе отделаПри всей внешней жуткости как горорят, от как организуются динамические — «есть» помощью функции Присвоить (Insert -Список (List)ДВССЫЛ (INDIRECT) в колонке Тип описывается только то,D1:D10в списке стран
НажмитеB1 будет автоматически заменен это сделать так: из списка всех вида, эта формула «А» до «Я»?..
диапазоны?PS: сори, еслиСЧЕТЕСЛИ (COUNTIF) Name — Define)и в поле, которая умеет делать мы должны иметь как сделать тотчерез команду меню и возвращает соответствующийОК
мы будем выбирать
на нижнее подчеркиваниевыделитьячейки отделов компании, динамически делает одну простую
Поинтересовались в «Приемах»Serge_007, на реальном такая задача уже
, которая умеет подсчитатьвыбрать на вкладкеИсточник (Source) одну простую вещь значение Легковой, а другой связанный выпадающий Создать из выделенного индекс, который затем, чтобы сохранить и страну, а в «_». Например, еслиА1:Е6 формируется список, содержащий вещь — выводит (или на офсайте) массиве не стало ставилась. Но я
количество встретившихся вДанные (Data)выделите ячейки с
— преобразовывать содержимое в колонке Производитель список А фрагмента (Формулы/ Определенные использует функция закрыть диалоговое окно. ячейке вместо Америка (ячейкана листе перечень фамилий всех очередное по номеру куда подевались в работать почему-то. Но не увидел её списке (столбце А)команду названиями марок (желтые любой указанной ячейки должен быть Fiat. это то, что имена).CHOOSEИмена диапазонам, содержащим города,B2В1Списки сотрудников этого отдела имя сотрудника (используя новом облике офиса всё равно большое среди рассмотренных на нужных нам значенийПроверка данных (Data validation) ячейки в нашем в адрес диапазона, Если бы мы мы хотим получить:СОВЕТ(ВЫБОР), чтобы выбрать можно присвоить точно– принадлежащий ей) ввести «Северная Америка»(т.е. диапазон, охватывающий (двухуровневая иерархия); функцию НАИМЕНЬШИЙ) из команды и меню спасибо за вариант. форуме. Если я — марок автовыбрать из выпадающего списка примере). После нажатия который понимает Excel. использовали промежуточный столбецИтак, мы имеем::
1-й, 2-й или
таким же образом.
город, как на (соответственно подкорректировав ячейку все ячейки сГород – Улица – списка или пустую из XL’я 2003?..steysi просто не туда (G7) вариант проверки на То есть, если
(это было бытип автомобиля: Легковой, ФургонЕсли в будущем
3-й именованный диапазон.Теперь мы можем создать примере:А2 названиями Регионов и Номер дома. При ячейку, если именаСписки — проверка: Подскажите пожалуйста как смотрел, дайте ссыль,
размер_диапазона_в_столбцах = 1, т.к.Список (List)ОК в ячейке лежит отличным решением, но и Внедорожник (Категория) потребуется пополнять списокВот так будет выглядеть выпадающие списки в
Для начала нужно создать), то после нажатия
Стран);
заполнении адреса проживания
свободных сотрудников уже
office-guru.ru
Ввод данных из списка значений. Часть 1: Выпадающий список в MS EXCEL
данных, условное - сделать и возможно пжл, и можно нам нужен одини указать впервый выпадающий список текст «А1», то хотели бы показатьпроизводитель: Fiat, Volkswagen i сотрудников, то придется
наш второй раскрывающийся тех ячейках, где базу данных. На кнопки Создать изнажать кнопку «Создать из можно из списка кончились. на главной, Имена ли это в будет убить тему. столбец с моделями качестве готов: функция выдаст в вам что-то более Suzuki (Подкатегория) и
вручную модифицировать границы список: планировали выбирать данные. втором листе я выделенного фрагмента будет выделенного фрагмента» (пункт выбрать город, затемв Excel 2003 и — через формулы екселе, выпадающий список
koyaanisqatsiВ итоге должно получиться
- Источника (Source)Теперь создадим второй выпадающий результате ссылку на крутое ),
- модель: … немножечко их именованного диапазона. КакВ результате мы получим
- Выделите ячейку занес список стран, создано имя «Северная_Америка». меню Формулы/ Определенные из списка всех старше идем в и пр.пр. со следующим условием:: maverick_77, так ? что-то вроде этого:=Марки список, в котором ячейку А1. Если
то мы бы есть (Подподкатегория)
обойти это неудобство два связанных (илиB1 которые хочу дать В этом случае имена/ Создать из улиц этого города меню
VLad777 0-нет льгот, 1-скидкаgling
- Осталось добавить выпадающий списокили просто выделить будут отображаться модели в ячейке лежит искали комбинацию этих
- В то же время читайте в статье зависимых) выпадающих списка.
- (в ней мы
- пользователям на выбор формула =ДВССЫЛ(A5) работать
- выделенного фрагмента);
– улицу, затем,Вставка — Имя -: 2007 и 2010 в оплате 25%,: Может так? Изменения на основе созданной ячейки D1:D3 (если выбранной в первом
слово «Маша», то данных: Легковой Fiat. мы имеем следующие Динамический диапазон. Если мы выбираем будем выбирать страну), в первом раскрывающемся не будет, т.к.Убедиться, что стоит только
из списка всех Присвоить (Insert -Главная — Условное 2- 50%???? Нужно в закрашенных ячейках. формулы к ячейке они на том списке марки. Также функция выдаст ссылку Однако у нас данные:Теперь создадим Выпадающий список страну откройте вкладку
excel2.ru
Связанные выпадающие списки и формула массива в Excel
списке, а в при выборе региона галочка «В строке домов на этой Name — Define) форматирование-Создать правило(или управление вычислить льготу иkoyaanisqatsi G8. Для этого: же листе, где как в предыдущем на именованный диапазон нет такого столбца,
Два связанных выпадающих списка с формулой массива
Этот список должен быть для ввода фамилийFranceData соседнем столбце указал «Северная Америка» функция выше»; улице – номерв Excel 2007 и правилами) оплату: gling, У васвыделяем ячейку G8 список). случае, откройте окно с именем но мы можем отсортирован в следующей в ведомость:, в связанном списке
(Данные), нажмите
- числовой индекс, который ДВССЫЛ() не найдет
- Нажать ОК. дома (трехуровневая иерархия).
- новее — жмемФормулы — Диспетчер
Вячеслав Я поприличнее ) Списоквыбираем на вкладке
А вот для зависимогоПроверки данныхМаша
- создать его «на
- очередности:
- выделите ячейки ведомости, куда
у нас будутData Validation соответствует одному из соответствующего имени. ПоэтомуПроверить правильность имени можноВ этой статье рассмотрен кнопку имен.: только из нужныхДанные (Data) списка моделей придется, но в поле
и т.д. Такой, лету», другими словами,Тип. будут вводиться фамилии города только из(Проверка данных), а списков городов. Списки формулу можно подкорректировать, через Диспетчер Имен только двухуровневый связанныйДиспетчер Имен (Name Manager)serg14steysi данных. У менякоманду
создать именованный диапазон
Первый и второй связанный выпадающий список: Тип и Производитель
Источник своего рода, «перевод используя формулу массива.Производитель. сотрудников, например Франции.
затем в выпадающем городов располагаются правее чтобы она работала
(Формулы/ Определенные имена/ список. Многоуровневый связанныйна вкладке: Ясно. Спасибо за
, можно написать формулу с пустыми (Проверка данных (Data validation) с функцией
Третий связывающий выпадающий список: Модель
нужно будет ввести стрелок» ;) Набирая эту формулу,Модель.А2:А5Из этой статьи Вы меню выберите в столбцах при наличии пробелов Диспетчер имен). Должно список рассмотрен вФормулы (Formulas) помощь. Прошу прощения в ячейке иgling
или в менюСМЕЩ вот такую формулу:Возьмем, например, вот такой вы можете себеОн может быть любой; узнали, как можноData ValidationD в названиях Регионов: быть создано 5 одноименной статье Многоуровневыйи создаем новый именованный за глупые вопросы. растащить далее по: Именованный динамический диапазон.Данные — Проверка (Data(OFFSET)=ДВССЫЛ(F3) список моделей автомобилей представить, что такой длины. Что ещевызовите инструмент Проверка данных сделать простейшие связанные(Проверка данных)., =ДВССЫЛ(ПОДСТАВИТЬ(A5;» «;»_»)). имен. связанный список. диапазонЯ знаю, что делать, ячейкам:
maverick_77 — Validation), который будет динамическиили =INDIRECT(F3)
Toyota, Ford и
промежуточный столбец существует, важно: стоит добавить (Данные/ Работа с выпадающие списки вОткроется диалоговое окноFТеперь оМожно подкорректировать диапазон уСоздание иерархических структурИмена
но не знаюКод =ЕСЛИ(A2=0;B2*1;ЕСЛИ(A2=1;B2*1,25;ЕСЛИ(A2=2;B2*1,5;»Больше скидок: koyaanisqatsi, gling, Принципиально,из выпадающего списка выбираем ссылаться только нагде F3 — адрес Nissan: и вы увидите, к нему еще данными/ Проверка данных); Microsoft Excel. ВыData Validationинедостатках
имени Регионы (вместо
данных позволяет избежатьпо следующей формуле:
куда потом девать нет»))) Пример во образ результата такой! вариант проверки ячейки моделей определенной ячейки с первымВыделим весь список моделей что будет проще два меньших списка,установите условие проверки Список; можете взять этот
(Проверка вводимых значений).H
. =списки!$A$2:$A$6 установить =списки!$A$2:$A$5, неудобств выпадающих списков=СМЕЩ(Лист1!$I$2;0;0;СЧЁТЗ(Лист1!$I$2:$I$10)-СЧИТАТЬПУСТОТЫ(Лист1!I$2:I$10)) тела… вложении. Результат по =) Уже радостно!Список (List) марки. Для этого: выпадающим списком (замените Тойоты (с ячейки ;-) необходимых для Типа
exceltable.com
Связанные (зависимые) выпадающие списки
Способ 1. Функция ДВССЫЛ (INDIRECT)
в поле Источник введите простой пример иМы хотим дать пользователю. Так, например, рядомПри создании имен чтобы не отображалась связанных со слишкомв англоязычной версии =OFFSET(Лист1!$I$2;0;0;COUNTA(Лист1!$I$2:$I$10)-COUNTBLANK(Лист1!I$2:I$10))Имеем в качестве примера столбцу Спасибо большое! =)))и вводим вНажмите на свой). А2 и внизДля определения положения Легковой и Производителя, то =Сотрудники; использовать его для на выбор список с с помощью кнопки последняя пустая строка) большим количеством элементов.
Фактически, мы просто даем недельный график дежурств,Сgling, у Вас,
качествеCtrl+F3Все. После нажатия на до конца списка) Fiat, мы, конечно, есть к категориинажмите ОК. решения реальных задач. вариантов, поэтому вFrance меню Создать изНа листеСвязанный список можно диапазону занятых ячеек который надо заполнитьsteysi конечно, изящней =)Источника (Source)или воспользуйтесь кнопкойОК и дадим этому будем использовать функцию (первый список) иТеперь при выделении любойУрок подготовлен для Вас полестоит индекс выделенного фрагмента, всеТаблица
реализовать в EXCEL, в синем столбце именами сотрудников, причем: ОО спасибо большое!!! Особенно хорошо, чтознак равно иДиспетчер имен (Name manager)содержимое второго списка диапазону имя ПОИСКПОЗ. Смотрите: подкатегории (второй список). ячейки из диапазона командой сайта office-guru.ruAllow2 именованные диапазоны для, для ячеек
с помощью инструмента собственное название для каждого сотрудника ))) Сейчас попробую))) в выпадающем списке имя нашего диапазона,на вкладке будет выбираться поToyotaПОИСКПОЗ(B4&C4;F5:F39&G5:G39;0) Эти дополнительные спискиА2:А5Источник: http://www.excel-user.com/2011/02/cascading-validation-lists.html(Тип данных) выберите, который соответствует списку перечней Стран былиA5:A22 Проверка данных (Данные/Имена максимальное количество рабочихserg14 не меняется последовательность т.е.Формулы (Formulas) имени диапазона, выбранного. В Excel 2003Вышеописанное означает, что мы списки выглядят следующим
, справа от ячейкиПеревел: Антон АндроновList городов созданы одинаковой длинысформируем выпадающий список Работа с данными/. дней (смен) ограничено.: Здравствуйте! машин относительно друг=Модели
. В версиях до
в первом списке.
и старше - хотим знать позицию образом: будет появляться кнопка
Автор: Антон Андронов(Список). Это активирует2 (равной максимальной длине для выбора Региона. Проверка данных) с
Осталось выделить ячейки B2:B8 Идеальным вариантом было
- Прошу вашей помощи друга. Это важноВуаля! 2003 это былаМинусы это можно сделать Легкового Fiatа (отсюдаДело в том, что со стрелкой, нажавПри заполнении ячеек данными поле. Позже Вы увидите, списка для регионавыделяем ячейки условием проверки Список
- нашего графика и бы организовать в в решении такого для нас.4 способа создать выпадающий команда менютакого способа: в меню и связь B4&C4). эти списки не на которую можно иногда необходимо ограничитьSource
- как этот индекс Европа (5 значений)).A5:A22 (пример создания приведен
Способ 2. Список соответствий и функции СМЕЩ (OFFSET) и ПОИСКПОЗ (MATCH)
добавить в них ячейках B2:B8 выпадающий вопроса.Можно ли формулы,
список в ячейкахВставка — Имя -В качестве вторичных (зависимых)Вставка — Имя - Где? В нашем
- должны иметь дубликатов выбрать необходимую фамилию. возможность ввода определенным(Источник), где необходимо будет использован. Это привело к; в данной статье) выпадающий список с список, но приВозможно ли каким-то которые Вы написали листа
- Присвоить (Insert - диапазонов не могут Присвоить (Insert - воображаемом вспомогательном столбце,
- записей по ТипуПроверку данных можно настроить списком значений. Например, указать имя диапазонаЕсли Вы работаете в тому, что связанные вызываем инструмент Проверка данных; или с помощью элементами диапазона этом сделать так, образом в функции на листе «транспорт»,
Автоматическое создание выпадающих списков Name — Define) выступать динамические диапазоны Name — Define). то есть: F5:F39&G5:G39. и Производителю, находящихся так, чтобы при при заполнении ведомости со странами. Введите Excel 2010, то
- списки для другихустанавливаем тип данных – элемента управления формыИмена чтобы уже занятые ЕСЛИ() создать список разместить на третьем при помощи инструментовСоздайте новый именованный диапазон задаваемые формулами типаВ Excel 2007 И здесь самая
- в списке Моделей. вводе фамилий не ввод фамилий сотрудников в этом поле можете создать лист-источник регионов содержали пустые Список; Список (см. статью. Для этого
сотрудники автоматически убирались
если условие не
листе? А то надстройки PLEX с любым именемСМЕЩ (OFFSET) и новее - большая сложность всей Вы можете создать
из списка появлялось с клавиатуры можно «=Country» и жмите в отдельной рабочей строки.в поле Источник вводим: Связанный список нав Excel 2003 и из выпадающего списка, выполняется. этот лист у
Выбор фото из выпадающего (например
. Для первичного (независимого)
- на вкладке формулы. их с помощью
- окно с описанием заменить выбором изОК книге. Если жеКонечно, можно вручную откорректировать =Регионы основе элемента управления старше — откроем оставляя только свободных:
- serg14 нас отчётный… спискаМодели
- списка их использоватьФормулы (Formulas)Остальное уже проще, а инструмента «Удалить дубликаты» ошибки (для этого определенного заранее списка. Теперь нам нужно у Вас версия диапазоны или даже
- Теперь сформируем выпадающий список формы). меню
Чтобы реализовать подобный вариант: файл в 2003
glingВыпадающий список с автоматическим) и в поле можно, а вот
- с помощью
- наибольшего внимания требует (например, это показано во вкладке Сообщение (табеля). сделать второй раскрывающийся Excel 2003 года, вместо Именованных диапазонов
- для столбца СтранаСоздание Связанного списка наДанные — Проверка (Data выпадающего списка выполним excel: На другом листе удалением уже использованныхСсылка (Reference) вторичный список долженДиспетчера имен (Name Manager)
функция СЧЁТЕСЛИМН, которая
Ссылки по теме
- в этом видео для ввода введитеОдним из вариантов заполнения
- список, чтобы пользователи и Вы планируете создать Динамические диапазоны.
- (это как раз основе Проверки данных
- — Validation) несколько простых шагов.VLad777
- эти формулы будут элементовв нижней части
planetaexcel.ru
Выпадающий список, формируемый по условиям (Формулы/Formulas)
быть определен жестко,. Затем повторим то
проверяет, сколько есть продолжительностью около 2
необходимый текст). ячеек является выбор могли выбрать город. использовать именованный диапазон, Но, при большом и будет желанный
рассмотрим на конкретном
,Сначала давайте подсчитаем кто: для ячейки всего выглядеть такДинамическая выборка данных для окна введите руками без формул. Однако, же самое со Легковых Fiatов. В минут). Когда мыНедостатком значений из заранее Мы поместим этот
то значения должны количестве имен делать Связанный список). примере.в Excel 2007 и из наших сотрудников используйте ф-цию СЧЕТЕСЛИ.200?’200px’:»+(this.scrollHeight+5)+’px’);»>=ЕСЛИОШИБКА(ВПР(СТРОКА(A1);Транспорт!$A$3:$B$8;2;0);»») выпадающего списка функциями следующую формулу: это ограничение можно списками Форд и частности, она проверяет, это сделали, тогдаэтого решения является определенного списка в
раскрывающийся список в находиться в той это будет достаточновыделяем ячейкиЗадача новее — жмем уже назначен надля выпадающего диап.но и в ИНДЕКС и ПОИСКПОЗ
=СМЕЩ($A$1;ПОИСКПОЗ($G$7;$A:$A;0)-1;1;СЧЁТЕСЛИ($A:$A;$G$7);1) обойти, создав отсортированный
Ниссан, задав соответственно сколько раз в …
то, что у MS EXCEL. Предположим, ячейку же книге, можно трудоемко.B5:B22
: Имеется перечень Регионов, кнопку
дежурство и на макрос нужен. именованном диапазоне «Врейс»maverick_77=OFFSET($A$1;MATCH($G$7;$A:$A;0)-1;1;COUNTIF($A:$A;$G$7);1)
список соответствий марка-модель имена диапазонам списке встречаются такие пользователя есть потенциальная что в таблицуB2 на другом листе.
Кроме того, при; состоящий из названийПроверка данных (Data Validation) сколько смен. Дляvikttur тоже нужно сделать
: Здравствуйте.Ссылки должны быть абсолютными (см. Способ 2).Ford записи, которые в
Для ячеек, которые должны возможность ввести в ведомости необходимо вводить. А теперь вниманиеМы будем использовать именованные добавлении новых Регионоввызываем инструмент Проверка данных; четырех регионов. Дляна вкладке
этого добавим к: Вариант без VBA,
ссылку на новыйПомогите, пжл, решить (со знаками $).Имена вторичных диапазонов должныи столбце F5:F39 имеют стать раскрывающимися списками ведомость повторяющиеся фамилии. фамилии сотрудников. Чтобы – фокус! Нам диапазоны и сделаем придется вручную создаватьустанавливаем тип данных –
каждого Региона имеетсяДанные (Data) зеленой таблице еще но «не требуется» лист где будут насущную проблему. После нажатия Enter
совпадать с элементами
Nissan значение Легковой, а в меню «Данные» Для того, чтобы
не ошибиться с нужно проверить содержимое
так, чтобы эти именованные диапазоны для Список; свой перечень Стран.
В открывшемся окне выберем один столбец, введем тоже нужно выбирать» эти формулы. СтолбецСоздаём планировщик маршрутов
excelworld.ru
Выпадающий список с определенным условием
к формуле будут первичного выпадающего списка.. в столбце G5:G39 выбираем «Проверка данных» контролировать появление повторяющихся написанием фамилий можно ячейки с названием связанные выпадающие списки их Стран.в поле Источник вводим:
Пользователь должен иметь в списке допустимых в него следующую (столбец G). А на листе транспорта. На маршрут автоматически добавлены имена
Т.е. если вПри задании имен помните — Fiat. Функция и как тип фамилий, можно использовать
предварительно создать список страны (ячейка B1), работали во всех
CyberForum.ru
Функция «ЕСЛИ()» + выпадающий список
Чтобы не создавать десятки =ДВССЫЛ(A5)
возможность, выбрав определенный значений вариант формулу:
Вариант с условным Транспорт можно скрыть можно отправить машину листов — не нем есть текст
о том, что выглядит так: данных выбираем «Список».
идеи из статьи всех сотрудников организации, чтобы получить индекс
версиях Excel. Следующий имен, нужно изменить
Важно, чтобы при создании Регион, в соседнейСписок (List)=СЧЁТЕСЛИ($B$2:$B$8;E2) или в англоязычной форматированием — столбцы
от лишних вопросов. удовлетворяющую двум условиям: пугайтесь :)
с пробелами, то имена диапазонов вСЧЁТЕСЛИМН(F5:F39;B4;G5:G39;C4)Для Типа как источник
Ввод данных из а заполнение ведомости
соответствующий базе данных шаг – создать сам подход при правила Проверки данных ячейке выбрать из
и укажем версии =COUNTIF($B$2:$B$8;E2) I:J.
maverick_77 «условие 1» и
Функция
придется их заменять Excel не должны
А вся формула для данных мы просто списка значений. Часть свести к выбору с городами. Если именованные диапазоны для
построении Связанного списка. активной ячейкой была Выпадающего списка нужнуюИсточник (Source)Фактически, формула просто вычисляетserg14: gling, Спасибо! =) «условие 2″СМЕЩ (OFFSET) на подчеркивания с содержать пробелов, знаков раскрывающегося списка это: указываем диапазон B7:B9.
2. Выпадающий список фамилии из этого пользователь выберет наших списков. На Рассмотрим этот подход
B5 ему Страну из
данных: сколько раз имя: Благодарю за ответ.
Но у меняИтого имеем:
умеет выдавать ссылку помощью функции препинания и начинатьсяЕсли вы планируете использовать
planetaexcel.ru
Выпадающий список с удалением использованных элементов
Для Производителя мы уже с контролем дублирования.
списка.Portugal
Постановка задачи
вкладке в другой статье:, т.к. мы используем этого Региона.Вот и все! Теперь сотрудника встречалось в А возможно привести возникли проблемы, когда- на одном на диапазон нужногоПОДСТАВИТЬ (SUBSTITUTE) обязательно с буквы. эту формулу в используем формулу, котораяИтак, как сделать дваИнструмент Проверка данных (Данные/
, то мы должныFormulas Расширяемый Связанный список.
Шаг 1. Кто сколько работает?
относительную адресацию.Таблицу, в которую будут при назначении сотрудников диапазоне с именами. пример такого макроса? в столбце с листе список номеров размера, сдвинутый относительно, т.е. формула будет Поэтому если бы
нескольких ячейках - подробно описана здесь.
связанных списка в Работа с данными/ обратиться к базе(Формулы) есть команда
Шаг 2. Кто еще свободен?
ПРЕДСТАВЬТЕ СИТУАЦИЮ:Тестируем. Выбираем с помощью заноситься данные с на дежурство ихТеперь выясним, кто изserg14 номерами машин появились машин (бортов) с исходной ячейки на выглядеть как =ДВССЫЛ(ПОДСТАВИТЬ(F3;»
в одной из
Шаг 3. Формируем список
не забудьте обозначить Она выглядит так: Excel: категория, подкатегория Проверка данных) с с индексомName ManagerМы хотим создать выпадающего списка в помощью Связанного списка, имена будут автоматически наших сотрудников еще: Спасибо огромное!!!
буквы. Я в
признаками по условиям
заданное количество строк
«;»_»)) марок автомобилей присутствовал ячейки как абсолютныеМодель — описание для и категория более условием проверки Список,3(Диспетчер имён). Нажав в Excel небольшую ячейке разместим на листе
Шаг 4. Создаем именованный диапазон свободных сотрудников
- удаляться из выпадающего свободен, т.е. неserg14 формуле в диспетчере (в приложенном примере и столбцов. В
- Надо руками создавать много бы пробел (например ссылки! И еще этой записи сделаем нижнего уровня. Своими как раз предназначен
, в которой хранятся на нее, откроется табличку, где можноA5
Таблица
списка, оставляя только
исчерпал запас допустимых: Только я не имён вместо СЧЁТ — лист «Транспорт»). более понятном варианте именованных диапазонов (если
Шаг 5. Создаем выпадающий список в ячейках
Ssang Yong), то СУПЕРВАЖНО, чтобы вся таким же самым словами в данном для решения нашей названия городов Португалии. диалоговое окно
- выбрать страну иРегион – Америка,. См. файл примера тех, кто еще смен. Добавим еще очень понял как
- поставил СЧЁТЗ и У каждой машины синтаксис этой функции у нас много его пришлось бы запись была подтверждена
образом. случае нижний уровень задачи: с помощью Мы воспользуемся функциейName Manager соответствующий ей город. вызываем связанный список
Связанный_список.xlsx свободен. один столбец и это сделать…не подскажите в выпадающем списке значения условий меняется таков: марок автомобилей).
planetaexcel.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
Не забываем менять диапазоны на «свои». Списки создаем классическим способом. А всю остальную работу будут делать макросы.
Выпадающий список с поиском
Скачать пример выпадающего списка
При вводе первых букв с клавиатуры высвечиваются подходящие элементы. И это далеко не все приятные моменты данного инструмента. Здесь можно настраивать визуальное представление информации, указывать в качестве источника сразу два столбца.
Выпадающий список уникальных значений. Автоматическое обновление выпадающего списка
Введение
Выпадающий список — это супер полезный инструмент, который способствует более комфортной работе с информацией. Он позволяет вместить в ячейку сразу несколько значений, с которыми можно работать, как и с любыми другими. Чтобы выбрать нужное, достаточно щелкнуть на значок стрелки, после чего отобразится перечень значений. После выбора конкретного, ячейка автоматически заполняется им.
Рассмотрим особенности создания выпадающих списков на примере:
Исходные данные:
- Список адресов в разных городах
Задача:
- Создать автоматически обновляемый выпадающий список уникальных городов
- На основе выбранного города, создать зависимый выпадающий список адресов
Мы будем двигаться поэтапно, уделяя внимание всем возможностям данного инструмента.
Скачать файлы из этой статьи
Рабочие файлы
Обзорное видео о работе с выпадающими списками в Excel и Google таблицах смотрите ниже. Приятного просмотра!
Начнем с основ. Для того, чтобы создать выпадающий список потребуется список с данными и инструмент «Проверка данных».
Выбираем ячейку, в которой будем создавать выпадающий список. Далее переходим к инструменту «Проверка данных», тип данных – «Список». В поле «Источник» указываем диапазон списка.
Выпадающий список готов!
Такой способ позволяет представить обычный диапазон в виде выпадающего списка. Повторы данных остались в списке (в диапазоне A2:A16 названия городов повторяются и в выпадающем списке они также повторяются). Это, конечно, не удобно. О том, как сделать выпадающий список уникальных значений в Excel мы поговорим далее, пока остановимся на этом варианте.
Как создать зависимый выпадающий список в Excel?
Существует несколько вариантов. Один из них, это сочетание именованных диапазонов и функции ДВССЫЛ
.
Именованный диапазон в Excel – это ячейка (или диапазон ячеек), которой присвоено имя.
Функция ДВССЫЛ
в Excel преобразовывает текст в ссылку.
Способ 1: именованные диапазоны + функция ДВССЫЛ
Для начала создадим именованные диапазоны с адресами. Имя каждому присвоим в соответствии с городом.
Алгоритм создания именованного диапазона: выделяем диапазон, далее «Формулы» – «Задать имя».
У нас получится 5 именованных диапазона: Волгоград, Воронеж, Краснодар, Москва и Ростов_на_Дону.
Обратите внимание, к именам диапазонов есть список требований. Например, в имени не могут содержаться пробелы, запятые, дефисы и прочие символы. Подробнее о создании именованных диапазонов и работе с ними мы говорим в нашем бесплатном курсе Основы Excel.
Поэтому, вместо дефисов в названии города Ростов-на-Дону мы укажем допустимый символ – нижнее подчеркивание.
Именованные диапазоны готовы.
Теперь выбираем ячейку для второго выпадающего списка, того, который будет зависимым. Переходим к инструменту «Проверка данных», тип данных – «Список». В поле «Источник» указываем функцию: =ДВССЫЛ(D2)
, где D2 – это адрес ячейки с первым выпадающим списком городов.
В ячейке D2, которая используется в качестве аргумента функции ДВССЫЛ
, находится текстовое выражение, которое совпадает с именем соответствующего именованного диапазона с названиями городов. В результате функция возвращает ссылку на соответствующий именованный диапазон.
Зависимый выпадающий список адресов готов.
Меняя значения в ячейке D2, меняются списки в ячейке E2. За исключением города Ростов-на-Дону. В выпадающем списке городов (ячейка D2), в названии используется дефис, а в именованном диапазоне – нижнее подчеркивание.
Чтобы устранить это несоответствие, перед тем как применять функцию ДВССЫЛ
, обработаем значения функцией ПОДСТАВИТЬ
.
Функция ПОДСТАВИТЬ
заменяет определенный текст в текстовой строке на новое значение. Вместо: =ДВССЫЛ(D2)
укажем: =ДВССЫЛ(ПОДСТАВИТЬ(D2;"-";"_"))
То есть, мы проводим предварительную обработку значений, чтобы они соответствовали правилам написания имён. Если в названии города имеются дефисы, они будут заменены на нижнее подчеркивание.
Теперь зависимый выпадающий список работает и для города, содержащего в названии дефисы – Ростов-на-Дону. Вернемся к выпадающему списку городов.
Как автоматически обновить выпадающий список в Excel, при добавлении новых данных?
Для начала создадим из диапазона данных «умную» таблицу Excel. Сделать это можно сочетанием клавиш Ctrl+T
.
Одним из полезных свойств умной таблицы является растягивающийся диапазон. То есть, если мы будем добавлять новые строки, они автоматически будут попадать в выпадающий список. Например, добавим новый город – Санкт-Петербург. И вот, он уже появился в нашем первом выпадающем списке.
Как сделать выпадающий список уникальных значений в Excel?
Надоело смотреть на повторяющиеся названия городов в выпадающем списке. Реализуем выпадающий список так, чтобы названия городов в нем не повторялись. Для этого, добавим слева вспомогательный столбец. Мы дали ему название – «Уникальные».
И включим новый столбец в диапазон «умной» таблицы. «Конструктор» – «Размер таблицы». Вместо =$B$1:$C$17
указываем: =$A$1:$C$17
Визуально видно, что диапазон «умной» таблицы Excel расширился. Включать этот столбец в диапазон таблицы необходимо для того, чтобы при добавлении новых данных, пересчет уникальных городов происходил автоматически.
В ячейку А2 добавим формулу массива, которая будет формировать список уникальных городов:
=ЕСЛИОШИБКА(ИНДЕКС([Город];ПОИСКПОЗ(0;СЧЁТЕСЛИ(A$1:A1; [Город]);0));"")
Чтобы Excel воспринял нашу формулу, как формулу массива, жмем Ctrl + Shift + Enter
.
Получаем список уникальных городов, который при добавлении новых строк будет автоматически обновляться.
Из списка уникальных городов создадим именованный диапазон (мы назвали его — «Уникальные»), который затем используем в качестве источника для выпадающего списка городов.
«Проверка данных» – «Список». В источнике данных, вместо предыдущего диапазона с названиями городов =$B$2:$B$18
, задаем имя – =Уникальные
Как видим, список уникальных значений мы получили, но в придачу у нас остались совершенно ненужные пустые строки из таблицы.
Чтобы их убрать, доработаем именованный диапазон «Уникальные». В диспетчере имен, вместо диапазона =Таблица1[Уникальные]
используем: =СМЕЩ(Лист1!$A$2;0;0;СЧЁТЗ(Таблица1[Уникальные])-СЧИТАТЬПУСТОТЫ(Таблица1[Уникальные]))
где: Лист1!$A$2
– ячейка со значением первого пункта списка уникальных значений
Таблица1[Уникальные] – столбец с перечнем всех пунктов списка
Выпадающий список уникальных автоматически обновляемых значений готов.
Вернемся к зависимому списку с адресами. Выпадающий список городов теперь динамический, а вот адреса так и остались фиксированными именованными диапазонами.
Как сделать автоматически обновляемый зависимый список? Способ 2: СМЕЩ+ПОИСКПОЗ+СЧЁТЕСЛИ
Именованные диапазоны, которые мы до этого использовали в сочетании с функцией ДВССЫЛ можно удалить, далее они нам не пригодятся. Рассмотрим способ создания зависимого, автоматически обновляемого выпадающего списка.
В ячейку F2 (зависимый выпадающий список адресов) вместо: =ДВССЫЛ(ПОДСТАВИТЬ(E2;"-";"_"))
вставляем: =СМЕЩ($B$2;ПОИСКПОЗ(E2;$B$2:$B$18;0)-1;1;СЧЁТЕСЛИ($B$2:$B$18;E2);1)
Для корректной работы этого способа, данные в столбце с городом должны быть отсортированы. Функция СМЕЩ
будет динамически ссылаться только на ячейки адресов определенного города.
Аргументы функции:
Ссылка – берем первую ячейку нашего списка, т.е. $B$2
Смещение по строкам – считает функция ПОИСКПОЗ
, которая выдает порядковый номер ячейки с выбранным городом (E2) в заданном диапазоне ($B$2:$B$18
)
Смещение по столбцам = 1, т.к. мы хотим сослаться на адреса в соседнем столбце (С)
Высота – вычисляем с помощью функции СЧЁТЕСЛИ
, которая подсчитывает количество встретившихся в диапазоне ($B$2:$B$18
) нужных нам значений – названий городов (E2)
Ширина = 1, т.к. нам нужен один столбец с адресами
Готово! Добавляем новые данные, сортируем список и пользуемся зависимыми, автоматически обновляемыми выпадающими списками. При необходимости можно скопировать выпадающие списки на строки ниже, они будут корректно работать. При копировании выпадающих списков обращайте внимание на адрес ссылок. Абсолютные ссылки остаются неизменными при копировании, относительные – меняют адрес ячеек относительно нового места.
С выпадающими списками в Google таблицах все немного иначе.
Выпадающий список в Google таблицах
В Google таблицах есть аналогичный инструмент для создания выпадающих списков – «Проверка данных».
Выделяем ячейку, в которой будем размещать выпадающий список.
«Данные» – «Настроить проверку данных» – «Значение из диапазона»
Важное отличие от проверки данных Excel в том, что инструмент «Проверка данных» в Google таблицах автоматически выдает уникальные значения, и значит, нам не придется создавать вспомогательный столбец с расчетами.
Зависимый выпадающий список в Google таблицах
Возвращаемся к двум основным способам, которые мы рассмотрели в Excel.
Способ 1: именованные диапазоны + ДВССЫЛ
Создадим именованные диапазоны с адресами. Имя каждому присвоим в соответствии с городом.
Выделяем ячейки – «Данные» – «Настроить именованные диапазоны»
Указываем имя и жмем готово. У нас получится 5 именованных диапазонов: Волгоград, Воронеж, Краснодар, Москва и Ростов_на_Дону.
Также, как и в Excel, в Google таблицах к именам диапазонов есть список требований.
Поэтому, вместо дефисов в названии города Ростов-на-Дону укажем допустимый символ – нижнее подчеркивание.
В Google таблицах мы не сможем подобно Excel задать функцию ДВССЫЛ в инструменте «Проверка данных». Поэтому, разместим результат функции ДВССЫЛ в пустых ячейках правее. Не забываем добавить обработку значений от дефисов функцией ПОДСТАВИТЬ. Подробнее о том, для чего это нужно, мы говорили ранее в примере Excel.
В ячейке F1 введем: =ДВССЫЛ(ПОДСТАВИТЬ(D2;"_";"-"))
Последний штрих в создании зависимого выпадающего списка, в разделе «Настроить проверку данных», в качестве диапазона указываем список из столбца F:F.
При дальнейшей работе вспомогательный столбец F можно скрыть. Минус такого метода – отсутствие динамичности. Если мы добавим новый город и адрес, то они не появятся в созданных выпадающих списках. Но это решаемо!
Как автоматически обновить выпадающий список в Google таблицах при добавлении новых данных?
В выпадающем списке городов, достаточно расширить диапазон и вместо =$A$2:$A$16
указать: =$A$2:$A
. Теперь при добавлении нового города он автоматически появляется в выпадающем списке.
Как автоматически обновить зависимый выпадающий список в Google таблицах при добавлении новых данных?
Для того, чтобы зависимый выпадающий список автоматически обновлялся с добавлением новых данных, воспользуемся функцией СМЕЩ
.
В ячейке G6 укажем:
=СМЕЩ($A$2;ПОИСКПОЗ($D$7;$A$2:$A;0)-1;1;СЧЁТЕСЛИ($A$2:$A;$D$7);1)
Важно: для корректной работы этого способа, данные в столбце с городом должны быть отсортированы от А до Я, или от Я до А. Подробнее о том, как в данном случае работает функция СМЕЩ читайте выше в примере с Excel.
Заключительным этапом поместим результат функции СМЕЩ
в диапазон выпадающего списка.
Скроем вспомогательные столбцы для удобства.
Работа выпадающих списков в Google таблицах хоть и схожа с Excel, но все же имеет свои отличительные особенности. Добавляем новые данные, сортируем список и пользуемся зависимыми, автоматически обновляемыми выпадающими списками.
Заключение
Теперь Вам известны несколько способов, как создать выпадающие списки в Excel и Google таблицах. Смотрите примеры и создавайте нужные Вам выпадающие списки.
Изучить работу в программе Excel Вы можете на наших курсах: бесплатные онлайн-курсы по Excel
Пройдите бесплатный тест на нашем сайте, чтобы объективно оценить свой уровень владения инструментами и функциями программы Excel: пройти бесплатный тест
У нас Вы можете заказать выполнение задач по MS Excel и Google таблицам
Зависимые выпадающие списки в Excel
Изучим простой способ создания зависимых (также называют связанных) выпадающих списков в Excel.
Для начала поясним, что же такое связанные выпадающие списки.
Это 2 выпадающих списка, при этом список значений одного из выпадающих списков зависит от выбора значения в другом выпадающем списке. Создать по отдельности выпадающие списки не представляет сложностей, но и связать выпадающие списки можно достаточно просто.
Для наглядности рассмотрим следующую ситуацию: у нас есть несколько категорий блюд, например, пицца, суши и паста, а также виды блюд в каждой категории (пицца Пепперони, суши Филадельфия, паста Феттучини и т.д.):
В результате мы хотим получить своеобразный двухуровневый зависимый выпадающий список: на первом уровне (списке) — категории блюд, на втором — блюда из выбранной категории.
Как сделать зависимые выпадающие списки?
В основе создания связанных выпадающих списков лежит применение функции ДВССЫЛ, которая позволяет преобразовывать текст из ячейки в ссылку.
Другими словами, если в ячейку введено текстовое значение «А1», то функция ДВССЫЛ вернет ссылку на ячейку А1.
Теперь зададим имена диапазонам состоящим из всех видов блюд каждой конкретной категории.
Для этого в панели вкладок выбираем Формулы -> Определенные имена -> Присвоить имя:
Выделяем диапазон ячеек A2:A6 и создаем диапазон с именем Пицца, аналогичные действия повторяем и для списков с суши (имя диапазона — Суши) и пастой (имя диапазона — Паста):
Обратите внимание, что при создании имен диапазонов имя не должно включать в себя пробелы.
В том случае если в названии категории все же содержится пробел (например, Японская кухня), то одним из вариантов решения является использование нижнего подчеркивания вместо пробела в имени диапазона (Японская_кухня).
Создадим первый выпадающий список в ячейке A10, состоящий из категорий блюд (Пицца, Суши и Паста). В панели вкладок выбираем Данные -> Работа с данными -> Проверка данных, указываем тип данных Список и в качестве источника выделяем диапазон A1:C1:
Теперь создаем второй выпадающий список, полностью повторяем действия с созданием первого списка, только в поле Источник записываем формулу =ДВССЫЛ(A10):
Имена созданных диапазонов обязательно должны совпадать с элементами первого списка, поэтому если в первом списке есть категории содержащие пробелы, то при обращении к имени диапазона необходимо заменить пробелы на нижние подчеркивания.
Это можно осуществить с помощью функции ПОДСТАВИТЬ, которая позволяет заменить старый текст (пробел) на новый текст (нижнее подчеркивание) в текстовой строке, т.е. в нашем случае формула примет вид =ДВССЫЛ(ПОДСТАВИТЬ(A10;» «;»_»)).
Также минусом данного способа создания списков является невозможность использования динамических именованных диапазонов.
Подробно ознакомиться с примером зависимых выпадающих списков — скачать пример.
Связанный список в MS EXCEL
Создадим выпадающий список, содержимое которого зависит от значений другой ячейки.
Обычный Выпадающий (раскрывающийся) список отображает только один перечень элементов. Связанный список – это такой выпадающий список, который может отображать разные перечни элементов, в зависимости от значения другой ячейки.
Потребность в создании связанных списков (другие названия: связанные диапазоны, динамические списки) появляется при моделировании иерархических структур данных. Например:
- Отдел – Сотрудники отдела. При выборе отдела из списка всех отделов компании, динамически формируется список, содержащий перечень фамилий всех сотрудников этого отдела (двухуровневая иерархия);
- Город – Улица – Номер дома. При заполнении адреса проживания можно из списка выбрать город, затем из списка всех улиц этого города – улицу, затем, из списка всех домов на этой улице – номер дома (трехуровневая иерархия).
В этой статье рассмотрен только двухуровневый связанный список. Многоуровневый связанный список рассмотрен в одноименной статье Многоуровневый связанный список.
Создание иерархических структур данных позволяет избежать неудобств выпадающих списков связанных со слишком большим количеством элементов.
Связанный список можно реализовать в EXCEL, с помощью инструмента Проверка данных ( Данные/ Работа с данными/ Проверка данных ) с условием проверки Список (пример создания приведен в данной статье) или с помощью элемента управления формы Список (см. статью Связанный список на основе элемента управления формы).
Создание Связанного списка на основе Проверки данных рассмотрим на конкретном примере.
Задача: Имеется перечень Регионов, состоящий из названий четырех регионов. Для каждого Региона имеется свой перечень Стран. Пользователь должен иметь возможность, выбрав определенный Регион, в соседней ячейке выбрать из Выпадающего списка нужную ему Страну из этого Региона.
Таблицу, в которую будут заноситься данные с помощью Связанного списка, разместим на листе Таблица. См. файл примера Связанный_список.xlsx
Список регионов и перечни стран разместим на листе Списки.
Обратите внимание, что названия регионов (диапазон А2:А5 на листе Списки) в точности должны совпадать с заголовками столбцов, содержащих названия соответствующих стран (В1:Е1).
Присвоим имена диапазонам, содержащим Регионы и Страны (т.е. создадим Именованные диапазоны). Быстрее всего это сделать так:
- выделитьячейки А1:Е6 на листе Списки(т.е. диапазон, охватывающий все ячейки с названиями Регионов и Стран);
- нажать кнопку «Создать из выделенного фрагмента» (пункт меню Формулы/ Определенные имена/ Создать из выделенного фрагмента );
- Убедиться, что стоит только галочка «В строке выше»;
- Нажать ОК.
Проверить правильность имени можно через Диспетчер Имен ( Формулы/ Определенные имена/ Диспетчер имен ). Должно быть создано 5 имен.
Можно подкорректировать диапазон у имени Регионы (вместо =списки!$A$2:$A$6 установить =списки!$A$2:$A$5 , чтобы не отображалась последняя пустая строка)
На листе Таблица, для ячеек A5:A22 сформируем выпадающий список для выбора Региона.
- выделяем ячейки A5:A22;
- вызываем инструмент Проверка данных;
- устанавливаем тип данных – Список;
- в поле Источник вводим: =Регионы
Теперь сформируем выпадающий список для столбца Страна (это как раз и будет желанный Связанный список).
- выделяем ячейки B5:B22;
- вызываем инструмент Проверка данных;
- устанавливаем тип данных – Список;
- в поле Источник вводим: =ДВССЫЛ(A5)
Важно, чтобы при создании правила Проверки данных активной ячейкой была B5, т.к. мы используем относительную адресацию.
Тестируем. Выбираем с помощью выпадающего списка в ячейке A5 Регион – Америка, вызываем связанный список в ячейке B5 и балдеем – появился список стран для Региона Америка: США, Мексика…
Теперь заполняем следующую строку. Выбираем в ячейке A6 Регион – Азия, вызываем связанный список в ячейке B6 и опять балдеем: Китай, Индия…
Необходимо помнить, что в именах нельзя использовать символ пробела. Поэтому, при создании имен, вышеуказанным способом, он будет автоматически заменен на нижнее подчеркивание «_». Например, если вместо Америка (ячейка В1) ввести «Северная Америка» (соответственно подкорректировав ячейку А2), то после нажатия кнопки Создать из выделенного фрагмента будет создано имя «Северная_Америка». В этом случае формула =ДВССЫЛ(A5) работать не будет, т.к. при выборе региона «Северная Америка» функция ДВССЫЛ() не найдет соответствующего имени. Поэтому формулу можно подкорректировать, чтобы она работала при наличии пробелов в названиях Регионов: =ДВССЫЛ(ПОДСТАВИТЬ(A5;» «;»_»)) .
Теперь о недостатках.
При создании имен с помощью кнопки меню Создать из выделенного фрагмента, все именованные диапазоны для перечней Стран были созданы одинаковой длины (равной максимальной длине списка для региона Европа (5 значений)). Это привело к тому, что связанные списки для других регионов содержали пустые строки.
Конечно, можно вручную откорректировать диапазоны или даже вместо Именованных диапазонов создать Динамические диапазоны. Но, при большом количестве имен делать это будет достаточно трудоемко.
Кроме того, при добавлении новых Регионов придется вручную создавать именованные диапазоны для их Стран.
Чтобы не создавать десятки имен, нужно изменить сам подход при построении Связанного списка. Рассмотрим этот подход в другой статье: Расширяемый Связанный список.
Сводные таблицы Excel
Под связанными списками понимаются несколько (минимум – два) выпадающих списков, когда содержимое последующих зависит от выбора пользователя в предыдущих. Например, в первом списке можно выбрать категорию товара, а во втором – увидеть товары из выбранной категории. Давайте рассмотрим несколько способов создать такие списки.
Способ 1. Функция ДВССЫЛ (INDIRECT)
Этот фокус основан на применении функции ДВССЫЛ (INDIRECT), которая умеет делать одну простую вещь – преобразовывать содержимое любой указанной ячейки в адрес диапазона, который понимает Excel. Т.е. если в ячейке лежит текст «А1», то функция выдаст в результате ссылку на ячейку А1. Если в ячейке лежит слово «Маша», то функция выдаст ссылку на именованный диапазон с именем Маша и т.д.
Возьмем, к примеру, вот такой список моделей автомобилей Toyota, Ford и Nissan:
Список моделей автомобилей
Выделим весь список моделей Toyota (с ячейки А2 и вниз до конца списка) и дадим этому диапазону имя Toyota на вкладке Формулы (Formulas) с помощью Диспетчера имен (Name Manager), кнопка Создать (Create). Затем повторим то же самое со списками моделей Ford и Nissan, задав имена диапазонам Ford и Nissan соответственно.
При задании имен помните о том, что они не должны содержать пробелов, знаков препинания и начинаться обязательно с буквы. Поэтому если бы в одной из марок автомобилей присутствовал бы пробел (например, Land Rover), то его пришлось бы заменить в ячейке и в имени диапазона на нижнее подчеркивание (т.е. Land_Rover).
Теперь создадим первый выпадающий список для выбора марки автомобиля. Выделите пустую ячейку и нажмите кнопку Проверка данных (Data Validation) на вкладке Данные (Data). Затем из выпадающего списка Тип данных (Allow) выберите вариант Список (List) и в поле Источник (Source) выделите ячейки с названиями марок (ячейки A1:C1 в нашем примере). После нажатия на ОК первый выпадающий список готов:
Теперь создадим первый выпадающий список для выбора марки автомобиля
Теперь создадим второй (зависимый) выпадающий список, в котором будут отображаться только модели выбранной в первом списке марки. Так же как в предыдущем случае, откройте окно Проверки данных, но в поле Источник нужно будет ввести вот такую формулу: =ДВССЫЛ(F3) или =INDIRECT(F3) , где F3 – адрес ячейки с первым выпадающим списком (замените на свой).
Все. После нажатия на ОК содержимое второго списка будет выбираться по имени диапазона, выбранного в первом списке.
Минусы такого способа:
- В качестве вторичных (зависимых) диапазонов не могут выступать динамические диапазоны, задаваемые формулами типа СМЕЩ (OFFSET). Для первичного (независимого) списка их использовать можно, а вот вторичный список должен быть определен жестко, без формул. Однако, это ограничение можно обойти, создав отсортированный список соответствий марка-модель (см. Способ 2).
- Имена вторичных диапазонов должны совпадать с элементами первичного выпадающего списка. Т.е. если в нем есть текст с пробелами, то придется их заменять на подчеркивания с помощью функции ПОДСТАВИТЬ (SUBSTITUTE), т.е. формула будет выглядеть как =ДВССЫЛ(ПОДСТАВИТЬ(F3;» «;»_»)) .
- Надо руками создавать много именованных диапазонов (если у нас много марок автомобилей).
Способ 2. Список соответствий и функции СМЕЩ (OFFSET) и ПОИСКПОЗ (MATCH)
Этот способ требует наличия отсортированного списка соответствий марка-модель вот такого вида:
Список соответствий и функции СМЕЩ и ПОИСКПОЗ
Для создания первичного выпадающего списка марок можно воспользоваться обычным способом, описанным выше, т.е.
- дать имя диапазону D1:D3 (например, Марки) с помощью Диспетчера имен (Name Manager) с вкладки Формулы (Formulas).
- выбрать на вкладке Данные (Data) команду Проверка данных (Data Validation).
- выбрать из выпадающего списка вариант проверки Список (List) и указать в качестве Источника (Source) =Марки или просто выделить ячейки D1:D3 (если они на том же листе, где список).
А вот для зависимого списка моделей придется создать именованный диапазон с функцией СМЕЩ (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) знак «равно» и имя нашего диапазона, т.е. =Модели .
Двухуровневый выпадающий список в Excel
Имеется несколько способов создания выпадающего списка. Выбор одного из них зависит от структуры имеющихся у вас данных.
Первый способ создания двухуровнего списка
Первый способ основывается на создание «умной» таблицы, заголовок которой содержит значения первого выпадающего списка (группы), а строки таблицы соответствуют значениям второго выпадающего списка (подгруппы). Значения элементов подгруппы должны располагаться в соответствующем столбце группы, как на рисунке ниже.
Теперь приступим к созданию первого выпадающего списка группы (в моем случае — список стран):
- Выберите ячейку, в которую будете вставлять выпадающий список;
- Переходим на вкладку ленты Данные;
- Выбираем команду Проверка данных;
- В выпадающем списке выбираем значение Список;
- В поле Источник указываем следующую формулу =ДВССЫЛ(«Таблица1[#Заголовки]»).
Осталось создать второй зависимый выпадающий список – список подгрупп.
Смело повторяем 4 первых пункта описанных выше. Источником в окне Проверка данных для второго выпадающего списка будет служить формула =ДВССЫЛ(«Таблица1[«&F2&»]»). Ячейка F2 в данном случае — значение первого выпадающего списка.
Второй способ создания двухуровнего списка
Второй способ удобно применять, когда данные выпадающего списка записаны в два столбца. В первом идет наименование группы, а во втором – подгруппы.
ВАЖНО! Перед созданием зависимого списка по подгруппам необходимо отсортировать исходную таблицу по первому столбцу (столбец с группой) далее будет понятно зачем это делается.
Для создания выпадающего групп нам понадобится дополнительный столбец, содержащий уникальные значения групп из исходной таблицы. Для создания этого списка используйте функцию удаления дубликатов или воспользуйтесь командой Уникальные из надстройки VBA-Excel.
Теперь создадим выпадающий список групп. Для этого выполните 4 первых пункта из первого способа создания двухуровнего списка. В качестве Источника укажите диапазон уникальных значений групп. Тут все стандартно.
Теперь самая сложная часть — указать в Источнике динамическую ссылку на диапазон со значениями второго выпадающего списка (списка подгрупп). Решать ее будем с помощью функции СМЕЩ(ссылка, смещ_по_строкам, смещ_по_столбцам, [высота], [ширина]), которая возвращает ссылку на диапазон, отстоящий от ячейки или диапазона ячеек на заданное число строк и столбцов.
- Ссылка в нашем случае — $A$1 — верхний левый угол исходной таблицы;
- Смещ_по_строкам — ПОИСКПОЗ(F3;$A$1:$A$67;0)-1 — номер строки со значением искомой группы (в моем случае страны ячейка F3) минус единица;
- Cмещ_по_столбцам — 1 — так как нам необходим столбец с подгруппами (городами);
- [Высота] — СЧЁТЕСЛИ($A$1:$A$67;F3) — количество подгрупп в искомой группе (количество городов в стране F3);
- [Ширина] — 1 — так как это ширина нашего столбца с подгруппами.
Связанные выпадающие списки
Связанные выпадающие списки.xls (216,5 KiB, 1 364 скачиваний)
Чтобы понять о чем пойдет речь в статье сначала необходимо понимать что такое выпадающий список и как его создать. Теперь попробуем разобраться что значит выражение «связанный выпадающий список». Я бы еще назвал такой список зависимым. Т.е. когда список значений одного выпадающего списка зависит от значения, выбранного в другом выпадающем списке или просто забитого в ячейку. Представим ситуацию: есть ячейка А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, 16 309 скачиваний)
Статья помогла? Поделись ссылкой с друзьями!
Поиск по меткам
Здравствуйте!
В связанных списках для заголовков одной таблицы использую ДВССЫЛ таким образом =ДВССЫЛ(«Таблица[#Заголовки]»), дабы при добавлении нового столбца или изменении заголовков в динамической таблице автоматом отображались данные изменения и добавления.
Но в некоторых случаях происходит некое зависание, данный список не раскрывается, он будто не видит данных которые необходимо отобразить.
Подскажите в чем может быть причина?
Поделитесь своим мнением
Комментарии, не имеющие отношения к комментируемой статье, могут быть удалены без уведомления и объяснения причин. Если есть вопрос по личной проблеме — добро пожаловать на Форум