Связанные (зависимые) выпадающие списки
Способ 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
- Выбор фото из выпадающего списка
- Выпадающий список с автоматическим удалением уже использованных элементов
- Динамическая выборка данных для выпадающего списка функциями ИНДЕКС и ПОИСКПОЗ
Содержание
- 0.1 Как настроить отображение зависимостей?
- 0.2 Как активировать отображение стрелок зависимостей для влияющих ячеек?
- 0.3 Как активировать отображение стрелок зависимостей для зависимых ячеек?
- 1 Инструмент Проверка наличия ошибок
- 2 Инструмент Влияющие ячейки
- 3 Инструмент Зависимые ячейки
Зависимости используются, чтобы просматривать на табличном поле связи между ячейками с формулами и ячейками со значениями, которые были задействованы в данных формулах. Это помогает выявить ошибки при создании формул. Зависимости могут быть отображены только в пределах одной открытой книги.
При создании зависимости используются понятия влияющие ячейки и зависимые ячейки.
Влияющая ячейка – это ячейка, которая ссылается на формулу в другой ячейке. Например, если в ячейке А1
находится формула =B1+C1
, то ячейки B1
и С1
является влияющими на ячейку А1
.
Зависимая ячейка – это ячейка, которая содержит формулу. Например, если в ячейке А
1 находится формула =B1+C1
, то ячейка А1
является зависимой от ячеек B1
и C1
.
Все стрелки зависимости исчезнут в случае изменения формулы, на которую указывают стрелки, а также при вставке или удалении столбцов или строк, при удалении или перемещении ячеек.
Для их восстановления после сделанных изменений необходимо снова использовать на этом листе команды отображения соответствующих стрелок.
Как настроить отображение зависимостей?
- В верхнем левом углу окна программы щелкните по кнопке «Office».
- В меню типичных задач выберите пункт «Параметры Excel».
- В окне «Параметры Excel» на вкладке «Дополнительно» в группе «Показать параметры для следующей книги» раскройте список книг и выберите нужную книгу для настройки.
- В графе «Для объектов показывать» активируйте пункты:
- «Все» – для отображения стрелок зависимостей;
- «Скрыть объекты» – для скрытия стрелок зависимостей.
- Закройте окно кнопкой «ОК».
Как активировать отображение стрелок зависимостей для влияющих ячеек?
- В окне открытого листа выделите ячейку с формулой и перейдите к вкладке «Формулы».
- В группе «Зависимости формул» щелкните по кнопке «Влияющие ячейки» (рис. 4.14).
- Синие стрелки – влияющие ячейки не вызывают ошибок.
- Красные стрелки – влияющие ячейки вызывают ошибки.
- Черные стрелки – влияющие ячейки находятся на другом листе или в другой книге.
При этом другая книга должна быть обязательно открыта до того, как Excel начнет отслеживать соответствующие зависимости.
Рис. 4.14. Вкладка «Формулы». Кнопка «Влияющие ячейки»
Как активировать отображение стрелок зависимостей для зависимых ячеек?
- В окне открытого листа выделите ячейку, для которой следует найти зависимые ячейки, и перейдите к вкладке «Формулы».
- В группе «Зависимости формул» щелкните по кнопке «Зависимые ячейки» (рис. 4.15).
Цвет стрелок зависимостей аналогичен цвету стрелок влияющих ячеек.
Рис. 4.15. Вкладка «Формулы». Кнопка «Зависимые ячейки
Современное направление высоких технологий умный дом под ключ для ваших потребностей.
Узнайте, как на листах Excel быстро изменять цвет целой строки в зависимости от значения одной ячейки. Посмотрите приёмы и примеры формул для числовых и текстовых значений.
В одной из предыдущих статей мы обсуждали, как изменять цвет ячейки в зависимости от её значения. На этот раз мы расскажем о том, как в Excel 2010 и 2013 выделять цветом строку целиком в зависимости от значения одной ячейки, а также раскроем несколько хитростей и покажем примеры формул для работы с числовыми и текстовыми значениями.
- Изменяем цвет строки на основании числового значения одной из ячеек
- Создаём несколько правил форматирования и для каждого определяем приоритет
- Изменяем цвет строки на основании текстового значения одной из ячеек
- Изменяем цвет ячейки на основании значения другой ячейки
- Изменяем цвет строки по нескольким условиям
Как изменить цвет строки на основании числового значения одной из ячеек
Предположим, у нас есть вот такая таблица заказов компании:
Мы хотим раскрасить различными цветами строки в зависимости от заказанного количества товара (значение в столбце Qty.), чтобы выделить самые важные заказы. Справиться с этой задачей нам поможет инструмент Excel – «Условное форматирование».
- Первым делом, выделим все ячейки, цвет заливки которых мы хотим изменить.
- Чтобы создать новое правило форматирования, нажимаем Главная > Условное форматирование > Создать правило (Home > Conditional Formatting > New rule).
- В появившемся диалоговом окне Создание правила форматирования (New Formatting Rule) выбираем вариант Использовать формулу для определения форматируемых ячеек (Use a formula to determine which cells to format), и ниже, в поле Форматировать значения, для которых следующая формула является истинной (Format values where this formula is true), вводим такое выражение:
=$C2>4
Вместо C2 Вы можете ввести ссылку на другую ячейку Вашей таблицы, значение которой нужно использовать для проверки условия, а вместо можете указать любое нужное число. Разумеется, в зависимости от поставленной задачи, Вы можете использовать операторы сравнения меньше ( Управление правилами (Manage Rules)
- В выпадающем списке Показать правила форматирования для (Show formatting rules for) выберите Этот лист (This worksheet). Если нужно изменить параметры только для правил на выделенном фрагменте, выберите вариант Текущий фрагмент (Current Selection).
- Выберите правило форматирования, которое должно быть применено первым, и при помощи стрелок переместите его вверх списка. Должно получиться вот так:Нажмите ОК, и строки в указанном фрагменте тут же изменят цвет, в соответствии с формулами в обоих правилах.
Как изменить цвет строки на основании текстового значения одной из ячеек
Чтобы упростить контроль выполнения заказа, мы можем выделить в нашей таблице различными цветами строки заказов с разным статусом доставки, информация о котором содержится в столбце Delivery:
- Если срок доставки заказа находится в будущем (значение Due in X Days), то заливка таких ячеек должна быть оранжевой;
- Если заказ доставлен (значение Delivered), то заливка таких ячеек должна быть зелёной;
- Если срок доставки заказа находится в прошлом (значение Past Due), то заливка таких ячеек должна быть красной.
И, конечно же, цвет заливки ячеек должен изменяться, если изменяется статус заказа.
С формулой для значений Delivered и Past Due всё понятно, она будет аналогичной формуле из нашего первого примера:
=$E2="Delivered"
=$E2="Past Due"
Сложнее звучит задача для заказов, которые должны быть доставлены через Х дней (значение Due in X Days). Мы видим, что срок доставки для различных заказов составляет 1, 3, 5 или более дней, а это значит, что приведённая выше формула здесь не применима, так как она нацелена на точное значение.
В данном случае удобно использовать функцию ПОИСК (SEARCH) и для нахождения частичного совпадения записать вот такую формулу:
=ПОИСК("Due in";$E2)>0
=SEARCH("Due in",$E2)>0
В данной формуле E2 – это адрес ячейки, на основании значения которой мы применим правило условного форматирования; знак доллара $ нужен для того, чтобы применить формулу к целой строке; условие «>0» означает, что правило форматирования будет применено, если заданный текст (в нашем случае это «Due in») будет найден.
Подсказка: Если в формуле используется условие «>0«, то строка будет выделена цветом в каждом случае, когда в ключевой ячейке будет найден заданный текст, вне зависимости от того, где именно в ячейке он находится. В примере таблицы на рисунке ниже столбец Delivery (столбец F) может содержать текст «Urgent, Due in 6 Hours» (что в переводе означает – Срочно, доставить в течение 6 часов), и эта строка также будет окрашена.
Для того, чтобы выделить цветом те строки, в которых содержимое ключевой ячейки начинается с заданного текста или символов, формулу нужно записать в таком виде:
=ПОИСК("Due in";$E2)=1
=SEARCH("Due in",$E2)=1
Нужно быть очень внимательным при использовании такой формулы и проверить, нет ли в ячейках ключевого столбца данных, начинающихся с пробела. Иначе можно долго ломать голову, пытаясь понять, почему же формула не работает.
Итак, выполнив те же шаги, что и в первом примере, мы создали три правила форматирования, и наша таблица стала выглядеть вот так:
Как изменить цвет ячейки на основании значения другой ячейки
На самом деле, это частный случай задачи об изменении цвета строки. Вместо целой таблицы выделяем столбец или диапазон, в котором нужно изменить цвет ячеек, и используем формулы, описанные выше.
Например, мы можем настроить три наших правила таким образом, чтобы выделять цветом только ячейки, содержащие номер заказа (столбец Order number) на основании значения другой ячейки этой строки (используем значения из столбца Delivery).
Как задать несколько условий для изменения цвета строки
Если нужно выделить строки одним и тем же цветом при появлении одного из нескольких различных значений, то вместо создания нескольких правил форматирования можно использовать функции И (AND), ИЛИ (OR) и объединить таким образом нескольких условий в одном правиле.
Например, мы можем отметить заказы, ожидаемые в течение 1 и 3 дней, розовым цветом, а те, которые будут выполнены в течение 5 и 7 дней, жёлтым цветом. Формулы будут выглядеть так:
=ИЛИ($F2="Due in 1 Days";$F2="Due in 3 Days")
=OR($F2="Due in 1 Days",$F2="Due in 3 Days")
=ИЛИ($F2="Due in 5 Days";$F2="Due in 7 Days")
=OR($F2="Due in 5 Days",$F2="Due in 7 Days")
Для того, чтобы выделить заказы с количеством товара не менее 5, но не более 10 (значение в столбце Qty.), запишем формулу с функцией И (AND):
=И($D2>=5;$D2=5,$D2
Excel оснащен инструментами для прослеживания зависимости формул между собой. Они расположены на закладке «Формулы» в разделе «Зависимости формул». Рассмотрим детально все действия этих инструментов.
Инструмент Проверка наличия ошибок
Данным инструментом можно выяснить причину ошибочных значений в ячейках после вычисления формул.
Чтобы оценить эффективность инструмента «Проверка наличия ошибок» в действии, смоделируем следующую ситуацию. Допустим у нас на листе находится формула, которая не находит нужного значения в диапазоне ячеек и отображает в результате вычисления ошибку #Н/Д.
Выполните следующие действия:
- Выберите: «Формулы»-«Зависимости формул»-«Проверка наличия ошибок». Excel сразу переместит курсор на первую ячейку содержащую ошибку.
- В появившемся окне «Контроль ошибок» выберите действие, которое вы хотели бы выполнить с данной ошибкой. Например, кнопка «Пропустить ошибку» автоматически выполнит поиск следующего ошибочного значения.
Инструмент Влияющие ячейки
Приготовьте лист с формулами, так как показано ниже на рисунке:
Проверьте, в каких ячейках используются данные для вычисления результата формулой в F2.
- Выберите: «Формулы»-«Зависимости формул»-«Влияющие ячейки» и вы увидите источники данных для F2.
- Чтобы проследить полную цепочку зависимости и узнать, откуда берутся данные ячейках C2 и D2, повторно выберите: «Влияющие ячейки».
- Удалите отображаемые стрелки схемы источников значений, используя инструмент: «Убрать стрелки».
Примечание. Такие же стрелки схем отображаются при выборе опции «Источники ошибок» из развернутого списка меню.
Инструмент Зависимые ячейки
На этом же листе проверьте, какие формулы используют содержимое D2.
- Перейдите на ячейку D2.
- Выберите: «Зависимые ячейки».
- Повторно нажмите на этот же инструмент для продолжения схемы цепочки.
Отображаемые стрелки снова удалите инструментом «Убрать стрелки».
Условное форматирование в новых версиях Excel мы рассматривали в видео уроке. Стандартные приемы очень удобны и наглядны. Но иногда требуется применять формат ячеек, в зависимости от каких-нибудь условий в соседних ячейках.
К нам поступил вопрос:
Здравствуйте, а как сделать условное форматирование одного столбца относительно другого? при этом тот который задает форматирование имеет 3 текстовых признака, то есть главный столбец с кодами должен окрашиваться в соответствии с требуемым текстовым признаком?
Давайте и рассмотрим на этом примере условное форматирование с помощью формул. Оно так и называется, потому, что без формул тут не обойтись.
Представим себе следующий пример. У нас есть таблицам с ФИО, по каждому сотруднику есть результат в процентах и информация о наличии льгот. Нам необходимо выделить с помощью условного форматирования только тех сотрудников, которые имеют результат выше 75 и имеют льготы.
При соблюдении данных условий, нам необходимо закрасить ячейку в желтый цвет. Для начала нам необходимо выделить все фамилии, далее выбрать пункт «Условное форматирование», «Создать правило», из типа правил выбрать «Использовать формулу для определения форматируемых ячеек» и нажать «Ок».
В открывшемся диалоговом окне настраиваем правило. Необходимо прописать формулу, которая при возвращении истины будет закрашивать наши ячейки.
Важно! Формула прописывается к первой ячейке (строке). Формула обязательно должна быть с относительными ссылками (без долларов), если мы хотим, чтобы она распространилась на все последующие строки.
Мы прописываем формулу:
=И(B2>75;C2="Да")
И — это означает, что мы проверяем два условия и они должны обе выполняться. Если бы нужно было, чтобы выполнялось одно из условий (либо результат больше 75 либо сотрудник — льготник), то нужно было бы использовать функцию ИЛИ, еще проще если условие одно.
В примере от нашей читательницы нужно использовать просто формулу C2=»Да», но вместо «Да» там будет свой текст. Если таких признака три, то условное форматирование делается отдельно по всем признакам. То есть необходимо проделать эту процедуру три раза, просто меняя признак и соответствующий ему формат ячейки.
Вот так будет выглядеть формулу в нашем примере.
Не забудьте выбрать формат, в который необходимо закрашивать наши ячейки. Нажимаем «Ок» и проверяем.
Были закрашены Петров и Михайлов, у обоих результат выше 75 и они являются льготниками, что нам и требуется.
Надеюсь, что ответили на ваш вопрос по условному форматирования. Ставьте лайки и подписывайтесь на нашу группу в ВК.
Связанные выпадающие списки в Excel.
Смотрите такжеIf Not Intersect(Target, обычный список именованным Если этого не наличие функции поиска проверке данных через меньше элементов. реализации этого столбец от содержимого ячеек). первой части задачиНужен макрос длянажмите ОК.France(Проверка данных), аD
Но бывает название Легко и быстроВыпадающие списки в Excel Range(«C2:C5»)) Is Nothing
диапазоном (с помощью сделать, Excel не и зависимости. макрос так:2) Возможно перенос В с номерами Всё работает. сначала пытался делать получения выпадающего спискаИмя Сотрудники ссылается на Динамический, в связанном списке затем в выпадающем, диапазона (столбца) состоит
сделать так.бывают разные. Есть And Target.Cells.Count = «Диспетчера имен»). Помним, позволит нам вводитьПуть: меню «Данные» -Range(«A1»).Validation.Add xlValidateList, xlValidAlertStop, классов реализован не
для формирования спискаОсталось несколько «шероховатостей»,
стандартным способом (создавая
с данными, расположенными диапазон в столбце у нас будут меню выберитеF из нескольких слов.Как присвоить имя диапазону простой 1 Then что имя не
новые значения. инструмент «Проверка данных» xlBetween, Join(massiv,»,»)где massiv самым оптимальным способом скрывается. Может, ввиду которые хотелось бы именованный диапазон из в несмежных ячейках
B города только изData Validationи Например, «Зимние пальто». враскрывающийся список Excel вApplication.EnableEvents = False может содержать пробелов
Вызываем редактор Visual Basic. — вкладка «Параметры». — это собственноikki имеющейся фиксированной нумерации устранить: несмежных ячеек). Но другого листа. В, расположенный на листе
Франции.(Проверка данных).H А в имениExcel. ячейкеnewVal = Target
и знаков препинания. Для этого щелкаем Тип данных –
одномерный массив нужных: Вы знаете, как предметов можно упростить1) При выборе при попытке сделать зависимости от выбранного Список и определяемыйИз этой статьи ВыОткроется диалоговое окно. Так, например, рядом диапазона нельзя ставитьВыделяем диапазон ячеек. ЕстьApplication.Undo
Создадим первый выпадающий список, правой кнопкой мыши «Список». строк. это делать через создание первого выпадающего нового предмета в выпадающий список через значения формируется другой формулой =СМЕЩ(Cписок!$B$2;;;СЧЁТЕСЛИ(Cписок!$B$2:$B$15;»*»)) узнали, как можноData Validation
с пробел. Имя диапазона всех списков сразумногоуровневые зависимые выпадающие списки
oldval = Target куда войдут названия по названию листаВвести значения, из которыха уж по макрос? списка? соседней ячейке справа проверку данных выдаётся выпадающий список.Этот диапазон формируется с
сделать простейшие связанные(Проверка вводимых значений).France напишем так «Зимние_пальто».
вместе с шапкой в ExcelIf Len(oldval) <> диапазонов. и переходим по будет складываться выпадающий
какому событию это
Вот и яСпасибо. остаётся прежний класс, сообщение об ошибке.Суть проблемы: помощью формулы массива выпадающие списки вМы хотим дать пользователюстоит индекс Но формула ДВССЫЛ таблицы списков –
. Это, когда, в 0 And oldvalКогда поставили курсор в вкладке «Исходный текст». список, можно разными делать, или по не знаюikki даже если такого Эту проблему я
1) Имеется Лист1,=ИНДЕКС(СотрудникиИсх;НАИМЕНЬШИЙ( Microsoft Excel. Вы на выбор список2 не найдет этот
у нас это зависимости от выбранных <> newVal Then поле «Источник», переходим Либо одновременно нажимаем способами: кнопке, или одноразовоjurij271: посмотрите вариант. класса в данном частично решил через на котором вЕСЛИ(СЧЁТЕСЛИ(Ведомость;СотрудникиИсх);»»;СТРОКА(СотрудникиИсх)-СТРОКА($A$1)); можете взять этот
вариантов, поэтому в, который соответствует списку диапазон. Тогда формулу диапазон А1:D4. На данных в первом
Target = Target на лист и клавиши Alt +Вручную через «точку-с-запятой» в — смотрите сами: Нет. В силуизменения коснулись формулы предмете не существует.
промежуточный лист, на ячейках А2, А5,СТРОКА(ДВССЫЛ(«A1:A»&ЧСТРОК(СотрудникиИсх))))) простой пример и
поле городов нужно написать так. закладке «Формулы» в столбце выпадающего списка, & «,» & выделяем попеременно нужные
excel-office.ru
Создаем связанные выпадающие списки в Excel – самый простой способ!
F11. Копируем код поле «Источник».Юрий М ничтожно малого опыта для имени «Классы» Логичным была бы котором формируется нужный А8 … находятсяПеречень элементов так называемого использовать его дляAllow2 =ДВССЫЛ(ПОДСТАВИТЬ(A2;» «;»_»)) разделе «Определенные имена» меняется выпадающий список newVal ячейки. (только вставьте своиВвести значения заранее. А
: Я делаю так: работы с VBA и макроса очистка ячейки с список из данных данные для выпадющего Динамического выпадающего списка решения реальных задач.(Тип данных) выберите. Позже Вы увидите,Если список на нажимаем функцию «Создать в ячейках второгоElseТеперь создадим второй раскрывающийся
параметры).Private Sub Worksheet_Change(ByVal в качестве источника[A1].Validation.Add Type:=xlValidateList, Formula1:=Join(arr, реализовать выпадающие спискип.3 я, честно классом при выборе с Листа1, располагаемых списка №1. Выпадающий не является статичным,Урок подготовлен для ВасList как этот индекс другом листе, то из выделенного фрагмента». столбца, третьего, т.д.Target = newVal список. В нем Target As Range) указать диапазон ячеек «,»)Arr — одномерный через макрос я говоря, не понял. нового предмета. Решение в соседних ячейках. список №1 должен он динамически изменяется командой сайта office-guru.ru(Список). Это активирует будет использован. в формуле указываем
В появившемся диалоговомЗдесь разберёмEnd If должны отражаться те Dim lReply As со списком. массив не могу. Предполагаю,jurij271 аналогичной проблемы рассматривалось Но в данном появляться при выделении в зависимости от
Источник: http://www.excel-user.com/2011/02/cascading-validation-lists.html полеЕсли Вы работаете в название этого листа. окне оставляем галочкудвухуровневый зависимый выпадающий списокIf Len(newVal) = слова, которые соответствуют Long If Target.Cells.CountНазначить имя для диапазонаjurij271 что это возможно,: Уважаемый, ikki, большое на страничке с случае в выпадающем ячейки В3, В4,.. введенных в диапазонПеревел: Антон Андронов
Source Excel 2010, то Напишем так. =ДВССЫЛ(»Размеры!А2:А4») только у строки в Excel 0 Then Target.ClearContents выбранному в первом
> 1 Then значений и в: Уважаемые старожилы форума хотя я (опять Вам спасибо за созданием связанных списков списке появляются пусты В9 на Листе2. Ведомость значений.Автор: Антон Андронов(Источник), где необходимо
можете создать лист-источник
Нажимаем «ОК». Теперь «В строке выше»..Application.EnableEvents = True
списке названию. Если Exit Sub If поле источник вписать
Максим Зеленский иЮрий же, по причине решение имевшейся проблемы. и Николай Павлов строки, если не Причём, если данные1. Введите в ячейкуРазрешим ввод в столбец указать имя диапазона в отдельной рабочей во втором столбцеНажимаем «ОК». Всё, именаНапример, в первомEnd If «Деревья», то «граб», Target.Address = «$C$2″ это имя.
М, спасибо за малого опыта) могуИмеется небольшой нюанс,
предложил для её все ячейки с в какой-либо изА13 только неповторяющихся значений со странами. Введите книге. Если же установлены выпадающие списки, присвоены. На закладке столбце из выпадающегоEnd Sub «дуб» и т.д. Then If IsEmpty(Target)Любой из вариантов даст подсказку с выпадающим ошибаться — ведь который был замечен решения следующий макрос: исходными данными с ячеек А2, А5,на листе Ведомость с использованием специального в этом поле у Вас версия которые меняются, в «Формулы» нажимаем функцию списка выбрали «Пальто».Не забываем менять диапазоны Вводим в поле Then Exit Sub такой результат. списком. Попробовал адаптировать даже у Вас в ходе тестированияPrivate Sub Worksheet_Change(ByVal Листа1 заполнены. (этот А8 … отсутствуют, любое значение из Выпадающего списка. Для «=Country» и жмите Excel 2003 года, зависимости от того, «Диспетчер имен». Во втором столбце на «свои». Списки «Источник» функцию вида If WorksheetFunction.CountIf(Range(«Деревья»), Target) к своему проекту эта задача вызывает файла с решением: Target As Excel.Range) способ — в то она присутствовать Выпадающего списка (например,
этого необходимо динамически
ОК
и Вы планируете что написано вЗдесь перечислены все наши появился выпадающий список создаем классическим способом. =ДВССЫЛ(E3). E3 – = 0 ThenНеобходимо сделать раскрывающийся список — получилось. Выпадающий затруднение. Но вПри расположении классовIf Target.Address(False, False)
файле Пример1) в выпадающем списке Сидоров)
модифицировать Выпадающий список,. Теперь нам нужно использовать именованный диапазон, ячейках первого столбца. диапазоны списков. Проверили размеров этого пальто. А всю остальную ячейка с именем lReply = MsgBox(«Добавить со значениями из
список предметов работает. любом случае уже не подряд, в = «C4» ThenПотому пришёл к №1 не должна2. Попробуйте ввести в последовательно исключая из сделать второй раскрывающийся
то значения должны Получилось так.
всё. Можно подкорректировать
А, если в
работу будут делать
office-guru.ru
Создание списка неповторяющихся значений с использованием Динамического выпадающего списка в MS EXCEL
первого диапазона. введенное имя « динамического диапазона. Если В этой части предложенное Вами решение выпадающем списке классов Range(«D4»).ClearContents выводу, что без (т.е., чтобы в
ячейку него только что список, чтобы пользователи находиться в тойКопируем формулу вниз по
Задача
размер диапазона. Мы первом столбце этой макросы.Бывает, когда из раскрывающегося & _ Target вносятся изменения в есть следующая проблема можно использовать в могут присутствовать пустыеEnd Sub
Решение
макроса в этой этом списке неА14 введенные значения. могли выбрать город.
же книге, можно столбцу. Мы создали уменьшили размер диапазона же ячейки изНа вкладке «Разработчик» находим списка необходимо выбрать & » в
имеющийся диапазон (добавляются — выпадающий список аналогичных задачах. строки, либо отсутствоватьДля одной пары
задаче не обойтись. было пустых строк)снова фамилию Сидоров.Статья является продолжением идей Мы поместим этот на другом листе. двухуровневый выпадающий список «Юбка», чтобы в
выпадающего списка выбрали инструмент «Вставить» – сразу несколько элементов. выпадающий список?», vbYesNo или удаляются данные), не обновляется. ПервымЧестно говоря, когда
- классы (пример такой ячеек макрос работает, Так как опыт
- 2) На Листе1 Это сделать невозможно, высказанных в статье
- раскрывающийся список вМы будем использовать именованные
- в Excel. выпадающем списке не
- «Брюки», то во
«ActiveX». Здесь нам Рассмотрим пути реализации + vbQuestion) If они автоматически отражаются запуском макрос нормально начинал поиск решения
ситуации — в если скопиравать его
написания программ на
имеются данные для
т.к. она отсутствует
Создание списка неповторяющихся ячейку диапазоны и сделаемДругой способ сделать было пустой строки. втором столбце будет нужна кнопка «Поле
Тестируем
задачи. lReply = vbYes в раскрывающемся списке. отрабатывается, а при проблемы со связанными приложенном файле). Понимаю,
для другой пары VBA у меня выпадающего списка №2 в списке. значений с использованиемB2 так, чтобы эти
связанный выпадающий списокТеперь устанавливаем выпадающий список с со списком» (ориентируемсяСоздаем стандартный список с Then Range(«Деревья»).Cells(Range(«Деревья»).Rows.Count +Выделяем диапазон для выпадающего следующем обращении к выпадающими списками, то что появляется эта ячеек (например, расположенных невелик (делаю свой в ячейках В2,С2,D2…;Однако, Проверка данных не
excel2.ru
Значение или выпадающий список в зависимости от значения другой ячейки
ранее определенного списка.. А теперь внимание
связанные выпадающие списки в Excel, смотритепервый выпадающий список в размерами брюк. на всплывающие подсказки). помощью инструмента «Проверка 1, 1) = списка. В главном нему выдаётся ошибка. полагал, что эта проблема из-за принципа снизу, естественно, с первый проект) и В5,С5,D5…; В8,С8,D8 …. позволяет гарантировано запретитьСоздадим список сотрудников, которые – фокус! Нам работали во всех в статье «Как ячейки столбца А
Итак, сделаем две
Щелкаем по значку – данных». Добавляем в Target End If меню находим инструмент
Причина — уже задача уже решена формирования списка классов указанием их имён), в синтаксисе данного
CyberForum.ru
Создание выпадающего списка с данными из несмежных ячеек + связанные с ними списки
Выпадающий список №2 ввод повторов: если должны получить премию. нужно проверить содержимое версиях Excel. Следующий сделать связанные выпадающие.
таблицы. Саму таблицу становится активным «Режим исходный код листа End If End «Форматировать как таблицу». имеющийся выпадающий список (задача казалась мне (подсчитывается количество непустых
то класс при
языка я не должен появляться при выделить ячейку Список должен содержать ячейки с названием шаг – создать списки в ExcelУ нас, в сделаем на странице конструктора». Рисуем курсором готовый макрос. Как If End SubОткроются стили. Выбираем любой. в ячейке. (если достаточно распространённой). Оказалось, ячеек и тем выборе нового предмета силён, то при выделении ячейки С3,А14
неповторяющиеся фамилии (иначе страны (ячейка B1), именованные диапазоны для легко». примере, мы выделяем книги «Таблица». А (он становится «крестиком») это делать, описаноСохраняем, установив тип файла Для решения нашей его удалить, макрос что нет. В самым определяется количество не удаляется. Даже необходимости написания программы С4, С5 …
и нажать сочетание кто-то получит 2
чтобы получить индекс наших списков. На
ПРЕДСТАВЬТЕ СИТУАЦИЮ: диапазон A2:A3. И, списки сделаем на небольшой прямоугольник – выше. С его «с поддержкой макросов».
задачи дизайн не опять срабатывает). Пробовал любом случае, пусть строк, которые нужно если данный способ запускаю макрорекордер и на Листе2. Причём,
клавиш или 3 премии!) соответствующий базе данных вкладкеМы хотим создать
через «Проверки данных» странице «Размеры». У место будущего списка.
помощью справа отПереходим на лист со
имеет значения. Наличие перед формирующимся выпадающим найденное решение поможет выводить в списке) заработает, то решение пытаюсь разобраться в данные для списка
CTRL+D и все сотрудники с городами. ЕслиFormulas в Excel небольшую на закладке «Данные», нас есть такаяЖмем «Свойства» – открывается выпадающего списка будут списком. Вкладка «Разработчик» заголовка (шапки) важно. списком выполнять его тем, кто столкнётся и решить её этой задачи, конечно, полученном коде. Так №2 должны браться, то в ячейку должны быть из пользователь выберет(Формулы) есть команда табличку, где можно устанавливаем выпадающие списки. таблица. перечень настроек. добавляться выбранные значения.Private — «Код» - В нашем примере удаление (макросом, записанным с аналогичной проблемой. можно таком же будет некрасивое (48
вот в коде из соответствующей строки будет скопировано вышерасположенное компании (иначе премиюPortugalName Manager выбрать страну и Тип данных –И мы сделали такиеВписываем диапазон в строку Sub Worksheet_Change(ByVal Target «Макросы». Сочетание клавиш это ячейка А1 через макрорекордер). ВЕщё раз выражаю способом, что и однотипных макросов!). Полагаю, выпадающего списка нужно в зависимости от значение. Добавим Условное получат чужие!)., то мы должны
(Диспетчер имён). Нажав соответствующий ей город. выбираем «Список». А списки. ListFillRange (руками). Ячейку, As Range) On для быстрого вызова со словом «Деревья». этом случае выпадающий Вам свою благодарность способ формирования списка что логичным было вместо непрерывного диапазона значения выбранного в
форматирование для отображенияСначала создадим на листе обратиться к базе
на нее, откроется
При этом с в строке «Источник»Внимание! куда будет выводиться Error Resume Next – Alt + То есть нужно список даже не за помощь. с предметами (осуществлять бы решение через
=$A$2:$A$23 указать несмежные
ячейке слева. введенных в этом Список в диапазоне с индексом диалоговое окно помощью выпадающих списков, указываем имя диапазона.В списках названия выбранное значение – If Not Intersect(Target, F8. Выбираем нужное
выбрать стиль таблицы формируется. Восстанавливается работоспособностьikki
нумерацию ячеек, содержащих массив — при ячейки с данымиКонкретный пример находится случае повторов.А2:А153Name Manager необходимо ограничить доступные Например, «=Наименование_товара». столбцов (В, С, в строку LinkedCell. Range(«Е2:Е9»)) Is Nothing имя. Нажимаем «Выполнить». со строкой заголовка. удалением списка «вручную».: я тоже.
классы и «вытаскивать» изменении элемента, соответствующего
из Листа1. в прилагаемом файле.svvgm
перечень сотрудников компании
, в которой хранятся(Диспетчер имён). пользователям варианты странПодробнее, как установить D) должны полностью Для изменения шрифта And Target.Cells.Count =Когда мы введем в Получаем следующий видТак что вно «в лоб» их в список предмету, удалять содержимоеSub Макрос2() Range(«B4».SelectВерсия Excel -: Здравствуйте! (см. файле примера). названия городов Португалии.Нажмите кнопку и городов, из выпадающий список, смотрите совпадать с названием и размера –
1 Then Application.EnableEvents пустую ячейку выпадающего диапазона: этой части задачи не получилось. по наличию возле ячейки справа. Хотя, With Selection.Validation .Delete 2003!Помогите пожалуйста вСоздадим Динамический диапазон СотрудникиИсх Мы воспользуемся функциейNew которых они могут в статье «Выпадающий в первом столбце Font. = False If списка новое наименование,Ставим курсор в ячейку, стоит проблема с»в лоб» - них номера). Но может есть решение .Add Type:=xlValidateList, AlertStyle:=xlValidAlertStop,Буду очень признателен вопросе: есть выпадающий
с формулой =СМЕЩ(Cписок!$A$2;;;СЧЁТЗ(Cписок!$A$2:$A$15)).ВПР(Создать), чтобы добавить выбирать. В первой список в Excel». (у нас –Скачать пример выпадающего списка Len(Target.Offset(0, 1)) = появится сообщение: «Добавить где будет находиться обновлением списка. это написать пользовательскую не лучше ли более простое? Operator:= _ xlBetween, за помощь в
список в ячейке
Наличие Динамического диапазона(VLOOKUP) для поиска
новый именованный диапазон. ячейке мы сделаемУстанавливаем
это наименование товараПри вводе первых букв
0 Then Target.Offset(0, введенное имя баобаб выпадающий список. ОткрываемПри формировании второго
функцию, которая возвращала было бы решение2) Выпадающий список Formula1:=»=$A$2:$A$23″ .IgnoreBlank =
написании данного макроса, А2 (ремонт, на позволит добавлять/ удалять значения из ячейки Откроется диалоговое окно выбор страны, азависимые выпадающие списки в – ячейки А2:А4 с клавиатуры высвечиваются 1) = Target в выпадающий список?». параметры инструмента «Проверка выпадающего списка (зависимого) бы массив. через макрос? Ведь с классами содержал True .InCellDropdown = либо за информацию линии, хранение), хочу фамилии в перечнеB1New Name во второй будут столбце В должны совпадать с подходящие элементы. И Else Target.End(xlToRight).Offset(0, 1)Нажмем «Да» и добавиться данных» (выше описан решил реализовать идеюпочему-то этот массив формирование обоих списков в том числе True .InputTitle = с решениями похожих сделать так чтобы сотрудников без редактированияв таблице с(Создание имени). доступны только принадлежащие. ячейками В1:D1). это далеко не = Target End еще одна строка путь). В поле предложенную ikki, (с «не цепляется» у
однотипное и, внеся и пустые ячейки, «» .ErrorTitle = задач. значение в ячейке других формул. названиями стран. ПослеВ поле выбранной стране города.Это второй уровень
Если наименований много, все приятные моменты If Target.ClearContents Application.EnableEvents со значением «баобаб». «Источник» прописываем такую
функцией пользователя, поскольку меня к проверке список в массив,
в которых классов «» .InputMessage =ikki В2 менялось в
Ведомость для начисления премии того как индекс
Name Думаю, это понятно? выпадающих списков. то столбец можно данного инструмента. Здесь = True EndКогда значения для выпадающего функцию: количество массивов для данных. обращаться к его не было. Для «» .ErrorMessage =: и в чём зависимости от значения разместим на листе будет известен, мы(Имя) введите имяИтак, давайте начнём наш
Внимание! транспонировать в строку. можно настраивать визуальное If End Sub списка расположены наПротестируем. Вот наша таблица зависимых списков будутт.к. списки короткие элементам и осуществлять списка, в котором «» .ShowInput = именно Вам требуется в А2, т.е
Ведомость в диапазоне выберем список, которыйCountry
простой пример сПеред тем, как
Как это сделать, представление информации, указывать
Чтобы выбранные значения показывались другом листе или со списком на расти в геометрической
— можно пробовать выборку по определённым для предметов отведено True .ShowError =
«помощь»? я в чтобы при значенииА11:А24
станет источником данныхдля нашего первого того, как можно устанавливать выпадающие списки смотрите в статье в качестве источника
снизу, вставляем другой в другой книге,
одном листе: прогрессии по мере иначе. признакам было бы 5 ячеек этот
True End With Вашем файле даже А2=»ремонт», В2 менялся
. для нашего второго именованного диапазона, а
создать связанный (или в столбце В, «Как поменять местами сразу два столбца. код обработчика.Private Sub стандартный способ неДобавим в таблицу новое роста уровней вложенностипри активации ячейки
проще чем через недостаток несущественнен. В End Sub заготовки макроса не на «неисправен», при
Создадим Динамический диапазон Ведомость выпадающего списка. Для в поле зависимый) выпадающий список выберите в первой
столбцы и строкиAdam19
Worksheet_Change(ByVal Target As работает. Решить задачу значение «елка».
списков). Конечно, «реализовать проверять принадлежность нужному встроенные функции? Кроме реализуемом же проектеikki нашёл. «На линии» менялся с формулой =СМЕЩ(Ведомость!$A$11;;;СЧЁТЗ(Ведомость!$A$11:$A$24)). этого напишем такуюRefers to в Excel? В верхней ячейке столбца в Excel» тут.: Здравствуйте, подскажите как Range) On Error можно с помощьюТеперь удалим значение «береза». идею» это громко диапазону и создавать того, так, наверное, на классы отводится: один доп.столбец, одинили под этим на «исправен» А Наличие Динамического диапазона формулу:(Диапазон) выберите тот, ячейке А любое значение.Как настроить Excel,
сделать так что Resume Next If функции ДВССЫЛ: онаОсуществить задуманное нам помогла
сказано, так как для текущей ячейки проще будет реализовать 10 ячеек и доп.диапазон, два имени словом Вы подразумеваете ПРИ «хранение» была позволит добавлять/ удалять=CHOOSE(VLOOKUP(B1,Sheet3!$A$3:$B$5,2,FALSE),England,France,Portugal) в котором хранитсяB1 Главное, чтобы эта чтобы при добавлении бы если в Not Intersect(Target, Range(«Н2:К2»)) сформирует правильную ссылку «умная таблица», которая составлял эту функцию
список в виде при необходимости и
planetaexcel.ru
Выпадающий список в Excel с помощью инструментов или макросов
выпадающий список ужебез макросов «напишите возможность выбора «исправен» фамилии в ведомости=ВЫБОР(ВПР(B1;Sheet3!$A$3:$B$5;2;ЛОЖЬ);England;France;Portugal) список стран:
мы будем выбирать ячейка не была ячеек в список ячейки А1-10 значение Is Nothing And на внешний источник легка «расширяется», меняется. впервые. Понимаю, что константы. вложенные списки следующих
Создание раскрывающегося списка
некрасив (много пустыхjurij271вместо или «неисправен» т.е для начисления премии
Что же делает эта=Sheet3!$A$3:$A$5 страну, а в пустой. У нас
- столбца A, автоматически ФРУКТ то в
- Target.Cells.Count = 1 информации.Теперь сделаем так, чтобы в функции есть
- но пока не уровней (т.е. решение строк) и неудобен: ikki, большое Вам
меня»? чтобы появлялся выпадающий
без редактирования других
Выпадающий список в Excel с подстановкой данных
формула? Она ищетНажмите ячейке – это ячейка писалось название нового ячейках B1-10 значения Then Application.EnableEvents =Делаем активной ячейку, куда
- можно было вводить ошибка. Нужна корректировка хочется. будет универсальным, да
- (появляется полоса прокрутки, спасибо за помощь.Евгений Кириллов список. формул. значение из ячейкиОКB2 А2. столбца, смотрите в выпадающего списка были False If Len(Target.Offset(1, хотим поместить раскрывающийся
- новые значения прямо профессионала …jurij271 и макрос уже случается что список Буду «пристраивать» Ваше: jurij271, — сортировкаЗаранее благодарю!
Фамилии сотрудников, которым полагаетсяB1, чтобы сохранить и
– принадлежащий ейВыделяем диапазон в
статье «Как добавить
равны колонке С, 0)) = 0 список.
в ячейку сФайл с макросом: Что ж, будем задействован при очистке пуст, так как решение к моему формулой;
- AlexM премия, будем вводитьв списке стран закрыть диалоговое окно. город, как на
- столбце В (у столбец в Excel и соответственно если Then Target.Offset(1, 0)Открываем параметры проверки данных.
- этим списком. И и функцией прилагаю. надеяться, что у ячеек предметы располагаются в проекту. Можно ли- зависимы выпадающие
- : Думаю без макроса с помощью Выпадающего и возвращает соответствующийИмена диапазонам, содержащим города, примере: нас – это автоматически». если ОВОЩ то = Target Else В поле «Источник» данные автоматически добавлялисьПод выпадающим списком понимается Вас появится желание. его верхней (невидимой) ещё Вас побеспокоить списки это единственный вариант (раскрывающегося) списка. Чтобы индекс, который затем можно присвоить точноДля начала нужно создать В2:В3). Снова черезКак сделать в Excel выпадающий список со Target.End(xlDown).Offset(1, 0) = вводим формулу: =ДВССЫЛ(“[Список1.xlsx]Лист1!$A$1:$A$9”). в диапазон. содержание в одной реализовать имеющиеся идеиПроблему с пустыми части). Возможно ли своими вопросами, если
- jurij271 решения.
- создать Выпадающий список использует функция таким же образом. базу данных. На функцию «Проверка данных» динамический диапазон значениями столбца D Target End If
Имя файла, из которогоСформируем именованный диапазон. Путь: ячейке нескольких значений.Юрий М строками я решил модернизировать формулу для
возникнут некоторые «подводные:Формула в источнике
Выпадающий список в Excel с данными с другого листа/файла
с фамилиями сотрудниковCHOOSEТеперь мы можем создать втором листе я выбираем «Тип данных»- чтобы размерPelena Target.ClearContents Application.EnableEvents = берется информация для «Формулы» — «Диспетчер Когда пользователь щелкает
- : Может массив не принудительным переносом классов второго списка, с
- камни» в процессеЕвгений для В2 Код
необходимо сделать следующее:(ВЫБОР), чтобы выбрать выпадающие списки в занес список стран, – список. А диапазонов списков при: Так подойдёт? True End If списка, заключено в имен» — «Создать».
Как сделать зависимые выпадающие списки
по стрелочке справа,
тот? )) в начало списка. тем, чтобы пустые «пристройки»?, спасибо за информацию. =ИНДЕКС(состояние;ПОИСКПОЗ(A2;статус;)-1) Переставил значениявыделите диапазон 1-й, 2-й или
- тех ячейках, где которые хочу дать в строке «Источник»
- добавлении или убавленииAdam19 End Sub квадратные скобки. Этот Вводим уникальное название
- появляется определенный перечень.Максим Зеленский Хотя это, конечно, строки в нёмЕщё раз спасибо. Возможно это то, в табличке состоянияА11:А24 3-й именованный диапазон. планировали выбирать данные. пользователям на выбор пишем такую формулу ячеек менялся автоматически,
Выбор нескольких значений из выпадающего списка Excel
: Да но надоЧтобы выбираемые значения отображались файл должен быть диапазона – ОК. Можно выбрать конкретное.
- : недавно кто-то такое «половинчатое» решение, т.е. отсутствовали?jurij271 что мне нужно. и статуса.на листе Ведомость;Вот так будет выглядеть Выделите ячейку в первом раскрывающемся =ДВССЫЛ(А2) смотрите в статье как то сделать в одной ячейке, открыт. Если книгаСоздаем раскрывающийся список вОчень удобный инструмент Excel решение показывал пользователю не будет3) И ещё: ikki, «пристроил» Ваше Буду разбираться.jurij271вызовите инструмент Проверка данных наш второй раскрывающийсяB1
- списке, а вЭтой формулой мы говорим «Чтобы размер таблицы это в автоматическом разделенные любым знаком с нужными значениями любой ячейке. Как для проверки введенныхесли уже есть предоставлено возможности произвольного один момент, который решение к своемуikki: Здравствуйте. После долгих (Данные/ Работа с список:(в ней мы соседнем столбце указал Excel, что список
- Excel менялся автоматически». по порядке, т.к препинания, применим такой находится в другой это сделать, уже
данных. Повысить комфорт массив, содержащий именно
размещения элементов списка в общем-то несущественнен,
проекту. Поскольку в, спасибо за внимание безуспешных попыток по данными/ Проверка данных);
В результате мы получим
будем выбирать страну),
числовой индекс, который
нужно показывать, в
Теперь нужно присвоить список у мекня модуль.
папке, нужно указывать известно. Источник – работы с данными
нужный перечень строк
в заданном диапазоне.
но возможно упростит
качестве образца прикладывал к поставленной мной
поиску информации для
на вкладке Параметры выберите
два связанных (или
откройте вкладку соответствует одному из зависимости от значения имена всем этим состоит из 500+Private Sub Worksheet_Change(ByVal
Выпадающий список с поиском
- путь полностью. имя диапазона: =деревья. позволяют возможности выпадающих с названиями классовPS: 1) Массив решение задачи: На
- примерный файл, то задаче. Извиняюсь за решения имеющейся проблемы тип данных Список; зависимых) выпадающих списка.Data
- списков городов. Списки в ячейке столбца
- спискам. У нас строк Target As Range)Возьмем три именованных диапазона:Снимаем галочки на вкладках списков: подстановка данных, или предметов, то взят из проекта,
листе «Предмет-Классы» у
в процессе пристройки отсутствие конкретных проблемных решил обратиться нав поле Формула введите: Если мы выбираем(Данные), нажмите городов располагаются правее А. в списках четыреPelena
exceltable.com
Выпадающий список в зависимости от ячейки (Формулы/Formulas)
On Error ResumeЭто обязательное условие. Выше «Сообщение для ввода», отображение данных другого его (если правильно для данного примера каждого класса уже пришлось немного изменить вопросов — попробую форум. =Сотрудники странуData Validation
в столбцахЗдесь все просто.
диапазона (четыре столбца).: Увеличить диапазон. Нет? Next описано, как сделать «Сообщение об ошибке». листа или файла, помню) можно присвоить можно использовать и
предполагается номер. Для условие (в зависимости
excelworld.ru
их конкретизировать. Решение
Зависимые выпадающие списки в Excel
Изучим простой способ создания зависимых (также называют связанных) выпадающих списков в Excel.
Для начала поясним, что же такое связанные выпадающие списки.
Это 2 выпадающих списка, при этом список значений одного из выпадающих списков зависит от выбора значения в другом выпадающем списке. Создать по отдельности выпадающие списки не представляет сложностей, но и связать выпадающие списки можно достаточно просто.
Для наглядности рассмотрим следующую ситуацию: у нас есть несколько категорий блюд, например, пицца, суши и паста, а также виды блюд в каждой категории (пицца Пепперони, суши Филадельфия, паста Феттучини и т.д.):
В результате мы хотим получить своеобразный двухуровневый зависимый выпадающий список: на первом уровне (списке) — категории блюд, на втором — блюда из выбранной категории.
Как сделать зависимые выпадающие списки?
В основе создания связанных выпадающих списков лежит применение функции ДВССЫЛ, которая позволяет преобразовывать текст из ячейки в ссылку.
Другими словами, если в ячейку введено текстовое значение «А1», то функция ДВССЫЛ вернет ссылку на ячейку А1.
Теперь зададим имена диапазонам состоящим из всех видов блюд каждой конкретной категории.
Для этого в панели вкладок выбираем Формулы -> Определенные имена -> Присвоить имя:
Выделяем диапазон ячеек A2:A6 и создаем диапазон с именем Пицца, аналогичные действия повторяем и для списков с суши (имя диапазона — Суши) и пастой (имя диапазона — Паста):
Обратите внимание, что при создании имен диапазонов имя не должно включать в себя пробелы.
В том случае если в названии категории все же содержится пробел (например, Японская кухня), то одним из вариантов решения является использование нижнего подчеркивания вместо пробела в имени диапазона (Японская_кухня).
Создадим первый выпадающий список в ячейке A10, состоящий из категорий блюд (Пицца, Суши и Паста). В панели вкладок выбираем Данные -> Работа с данными -> Проверка данных, указываем тип данных Список и в качестве источника выделяем диапазон A1:C1:
Теперь создаем второй выпадающий список, полностью повторяем действия с созданием первого списка, только в поле Источник записываем формулу =ДВССЫЛ(A10):
Имена созданных диапазонов обязательно должны совпадать с элементами первого списка, поэтому если в первом списке есть категории содержащие пробелы, то при обращении к имени диапазона необходимо заменить пробелы на нижние подчеркивания.
Это можно осуществить с помощью функции ПОДСТАВИТЬ, которая позволяет заменить старый текст (пробел) на новый текст (нижнее подчеркивание) в текстовой строке, т.е. в нашем случае формула примет вид =ДВССЫЛ(ПОДСТАВИТЬ(A10;» «;»_»)).
Также минусом данного способа создания списков является невозможность использования динамических именованных диапазонов.
Подробно ознакомиться с примером зависимых выпадающих списков — скачать пример.
Двухуровневый выпадающий список в 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 — так как это ширина нашего столбца с подгруппами.
Связанный список в 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
Зависимый выпадающий список позволяет сделать трюк, который очень часто хвалят пользователи шаблонов Excel. Трюк, который делает работу проще и быстрее. Трюк, благодаря которому ваши формы будут удобны и приятны.
Пример создания зависимого выпадающего списка в ячейке Excel
Пример использования зависимого выпадающего списка для создания удобной формы заполнения документов, с помощью которых продавцы заказывали товары. Из всего ассортимента они должны были выбрать те продукты, которые они собирались продать.
Каждый продавец сначала определял товарную группу, а затем конкретный товар из этой группы. Форма должна включать полное имя группы и определенный индекс товара. Поскольку набирать это вручную было бы слишком трудоемким (и раздражающим) занятием, я предложил очень быстрое и простое решение — 2 зависимых выпадающих списка.
Первым был список всех категорий продуктов, второй — список всех продуктов, находящихся в выбранной категории. Поэтому я создал выпадающий список, зависимый от выбора, сделанного в предыдущем списке (здесь вы найдете материал о том, как создать два зависимых раскрывающихся списка).
Тот же самый результат хочет получить пользователь шаблона домашнего бюджета где нужна категория и подкатегория расходов. Пример данных находится на рисунке ниже:
Так, например, если мы выберем категорию Развлечения, то в списке подкатегорий должно быть: Кинотеатр, Театр, Бассейн. Очень быстрое решение, если в своем домашнем бюджете вы хотите проанализировать более подробную информацию.
Список категорий и подкатегорий в зависимом выпадающем списке Excel
Признаюсь, что в предложенном мной варианте домашнего бюджета я ограничиваюсь только категорией, поскольку для меня такого разделения расходов вполне достаточно (название расходов / доходов рассматривается как подкатегория). Однако, если вам нужно разделить их на подкатегории, то метод, который я описываю ниже, будет идеальным. Смело используйте!
А конечный результат выглядит следующим образом:
Зависимый выпадающий список подкатегорий
Для того чтобы этого достичь, необходимо сделать немного другую таблицу данных, чем если бы мы создавали один раскрывающийся список. Таблица должна выглядеть так (диапазон G2:H15):
Рабочая исходная таблица Excel
В эту таблицу необходимо ввести категорию и рядом с ней ее подкатегории. Имя категории должно повторяться столько раз, сколько есть подкатегорий. Очень важно, чтобы данные были отсортированы по столбцу Категория. Это будет чрезвычайно важно, когда позже будем писать формулу.
Можно было бы также использовать таблицы с первого изображения. Разумеется, формулы были бы разными. Однажды даже я нашел в сети такое решение, но оно мне не понравилось, потому что там была фиксированная длина списка: а значит, иногда список содержал пустые поля, а иногда и не отображал все элементы. Конечно, я могу избежать этого ограничения, но признаюсь, что мне больше нравится мое решение, поэтому к тому решению я больше не возвращался.
Ну хорошо. Теперь, по очереди я опишу шаги создания зависимого выпадающего списка.
1. Имена диапазонов ячеек
Это необязательный шаг, без него мы сможем без проблем справиться с этим. Однако мне нравится использовать имена, потому что они значительно облегчают как написание, так и чтение формулы.
Присвоим имена двум диапазонам. Список всех категорий и рабочий список категорий. Это будут диапазоны A3:A5 (список категорий в зеленой таблице на первом изображении) и G3:G15 (список повторяющихся категорий в фиолетовой рабочей таблице).
Для того чтобы назвать список категорий:
- Выберите диапазон A3:A5.
- В поле имени (поле слева от строки формулы) введите название «Категория».
- Подтвердите с помощью клавиши Enter.
Такое же действие совершите для диапазона рабочего списка категорий G3:G15, который вы можете вызвать «Рабочий_Список». Этот диапазон мы будем использовать в формуле.
2. Создание раскрывающегося списка для категории
Это будет просто:
- Выберите ячейку, в которую вы хотите поместить список. В моем случае это A12.
- В меню «ДАННЫЕ» выберите инструмент «Проверка данных». Появится окно «Проверка вводимых значений».
- В качестве типа данных выберите «Список».
- В качестве источника введите: =Категория (рисунок ниже).
- Подтвердите с помощью OK.
Проверка вводимых значений – Категория.
Раскрывающийся список для категории.
3. Создание зависимого выпадающего списка для подкатегории
Сейчас будет весело. Создавать списки мы умеем — только что это сделали для категории. Только единственный вопрос: «Как сказать Excelю выбрать только те значения, которые предназначены для конкретной категории?» Как вы, наверное, догадываетесь, я буду использовать здесь рабочую таблицу и, конечно же, формулы.
Начнем с того, что мы уже умеем, то есть с создания раскрывающегося списка в ячейке B12. Поэтому выберите эту ячейку и нажмите «Данные» / «Проверка данных», а в качестве типа данных — «Список».
В источник списка введите следующую формулу:
Вид окна «Проверка вводимых значений»:
Проверка вводимых значений для подкатегории в зависимом выпадающем списке
Как видите, весь трюк зависимого списка состоит в использовании функции СМЕЩ. Ну хорошо, почти весь. Помогают ей функции ПОИСКПОЗ и СЧЕТЕСЛИ. Функция СМЕЩ позволяет динамически определять диапазоны. Вначале мы определяем ячейку, от которой должен начинаться сдвиг диапазона, а в последующих аргументах определяем его размеры.
В нашем примере диапазон будет перемещаться по столбцу Подкатегория в рабочей таблице (G2:H15). Перемещение начнем от ячейки H2, которая также является первым аргументом нашей функции. В формуле ячейку H2 записали как абсолютную ссылку, потому что предполагаю, что мы будем использовать раскрывающийся список во многих ячейках.
Поскольку рабочая таблица отсортирована по Категории, то диапазон, который должен быть источником для раскрывающегося списка, будет начинаться там, где впервые встречается выбранная категория. Например, для категории Питание мы хотим отобразить диапазон H6:H11, для Транспорта — диапазон H12: H15 и т. д. Обратите внимание, что все время мы перемещаемся по столбцу H, а единственное, что изменяется, это начало диапазона и его высота (то есть количество элементов в списке).
Начало диапазона будет перемещено относительно ячейки H2 на такое количество ячеек вниз (по числу), сколько составляет номер позиции первой встречающейся категории в столбце Категория. Проще будет понять на примере: диапазон для категории Питание перемещен на 4 ячейки вниз относительно ячейки H2 (начинается с 4 ячейки от H2). В 4-ой ячейке столбца Подкатегория (не включая заголовок, так как речь идет о диапазоне с именем Рабочий_Список), есть слово Питание (его первое появление). Мы используем этот факт собственно для определения начала диапазона. Послужит нам для этого функция ПОИСКПОЗ (введенная в качестве второго аргумента функции СМЕЩ):
Высоту диапазона определяет функция СЧЕТЕСЛИ. Она считает все встречающиеся повторения в категории, то есть слово Питание. Сколько раз встречается это слово, сколько и будет позиций в нашем диапазоне. Количество позиций в диапазоне — это его высота. Вот функция:
Конечно же, обе функции уже включены в функцию СМЕЩ, которая описана выше. Кроме того, обратите внимание, что как в функции ПОИСКПОЗ, так и в СЧЕТЕСЛИ, есть ссылка на диапазон названный Рабочий_Список. Как я уже упоминал ранее, не обязательно использовать имена диапазонов, можно просто ввести $H3: $H15. Однако использование имен диапазонов в формуле делает ее проще и легко читаемой.
Одна формула, ну не такая уж и простая, но облегчающая работу и защищает от ошибок при вводе данных!
Два варианта использования этого трюка я уже представил. Интересно, как вы его будете использовать?
Связанные выпадающие списки
Связанные выпадающие списки.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 скачиваний)
Статья помогла? Поделись ссылкой с друзьями!
Поиск по меткам
Здравствуйте!
В связанных списках для заголовков одной таблицы использую ДВССЫЛ таким образом =ДВССЫЛ(«Таблица[#Заголовки]»), дабы при добавлении нового столбца или изменении заголовков в динамической таблице автоматом отображались данные изменения и добавления.
Но в некоторых случаях происходит некое зависание, данный список не раскрывается, он будто не видит данных которые необходимо отобразить.
Подскажите в чем может быть причина?
Поделитесь своим мнением
Комментарии, не имеющие отношения к комментируемой статье, могут быть удалены без уведомления и объяснения причин. Если есть вопрос по личной проблеме — добро пожаловать на Форум
Создадим выпадающий список, содержимое которого зависит от значений другой ячейки.
Обычный
Выпадающий (раскрывающийся) список
отображает только один перечень элементов.
Связанный список
– это такой
выпадающий список
, который может отображать разные перечни элементов, в зависимости от значения другой ячейки. Потребность в создании
связанных списков
(другие названия:
связанные диапазоны
,
динамические списки
) появляется при моделировании иерархических структур данных. Например:
Отдел
–
Сотрудники отдела
. При выборе отдела из списка всех отделов компании, динамически формируется список, содержащий перечень фамилий всех сотрудников этого отдела (двухуровневая иерархия);
Город – Улица – Номер дома
. При заполнении адреса проживания можно из списка выбрать
город
, затем из списка всех улиц этого города –
улицу
, затем, из списка всех домов на этой улице –
номер дома
(трехуровневая иерархия).
В этой статье рассмотрен только двухуровневый
связанный список
. Многоуровневый связанный список рассмотрен в одноименной статье
Многоуровневый связанный список
. Создание иерархических структур данных позволяет избежать неудобств
выпадающих списков
связанных со слишком большим количеством элементов.
Связанный список
можно реализовать в EXCEL, с помощью инструмента
Проверка данных
(
) с условием проверки
Список
(пример создания приведен в данной статье) или с помощью
элемента управления формы
Список
(см. статью
Связанный список на основе элемента управления формы
).
Создание
Связанного списка
на основе
Проверки данных
рассмотрим на конкретном примере.
Задача
: Имеется перечень
Регионов
, состоящий из названий четырех регионов. Для каждого
Региона
имеется свой перечень
Стран
. Пользователь должен иметь возможность, выбрав определенный
Регион
, в соседней ячейке выбрать из
Выпадающего списка
нужную ему
Страну
из этого
Региона
.
Таблицу, в которую будут заноситься данные с помощью
Связанного списка
, разместим на листе
Таблица
. См.
файл примера
Связанный_список.xlsx
Список регионов и перечни стран разместим на листе
Списки
.
Обратите внимание, что названия регионов (диапазон
А2:А5
на листе
Списки
) в точности должны совпадать с заголовками столбцов, содержащих названия соответствующих стран (
В1:Е1
).
Присвоим
имена
диапазонам, содержащим
Регионы
и
Страны
(т.е. создадим
Именованные диапазоны
). Быстрее всего это сделать так:
-
выделитьячейки
А1:Е6
на листе
Списки
(т.е. диапазон, охватывающий все ячейки с названиями
Регионов
и
Стран
); -
нажать кнопку «Создать из выделенного фрагмента» (пункт меню
);
- Убедиться, что стоит только галочка «В строке выше»;
- Нажать ОК.
Проверить правильность имени можно через
Диспетчер Имен
(
). Должно быть создано 5 имен.
Можно подкорректировать диапазон у имени
Регионы
(вместо
=списки!$A$2:$A$6
установить
=списки!$A$2:$A$5
, чтобы не отображалась последняя пустая строка)
На листе
Таблица
, для ячеек
A
5:
A
22
сформируем
выпадающий список
для выбора
Региона
.
-
выделяем ячейки
A
5:
A
22
; -
вызываем инструмент
Проверка данных
;
-
устанавливаем тип данных –
Список
; -
в поле
Источник
вводим:
=Регионы
Теперь сформируем
выпадающий список
для столбца
Страна
(это как раз и будет желанный
Связанный список
).
-
выделяем ячейки
B
5:
B
22
; -
вызываем инструмент
Проверка данных;
-
устанавливаем тип данных –
Список
; -
в поле
Источник
вводим:
=ДВССЫЛ(A5)
Важно, чтобы при создании правила
Проверки данных
активной ячейкой была
B5
, т.к. мы используем
относительную адресацию
.
Тестируем. Выбираем с помощью
выпадающего списка
в ячейке
A
5
Регион
–
Америка
, вызываем
связанный список
в ячейке
B
5
и балдеем – появился список стран для
Региона
Америка
:
США, Мексика
…
Теперь заполняем следующую строку. Выбираем в ячейке
A
6
Регион
–
Азия
, вызываем
связанный список
в ячейке
B
6
и опять балдеем:
Китай, Индия
…
Необходимо помнить, что в именах нельзя использовать символ пробела. Поэтому, при создании имен, вышеуказанным способом, он будет автоматически заменен на нижнее подчеркивание «_». Например, если вместо
Америка
(ячейка
В1
) ввести «
Северная Америка
» (соответственно подкорректировав ячейку
А2
), то после нажатия кнопки
Создать из выделенного фрагмента
будет создано имя «Северная_Америка». В этом случае формула
=ДВССЫЛ(A5)
работать не будет, т.к. при выборе региона «
Северная Америка
» функция
ДВССЫЛ()
не найдет соответствующего имени. Поэтому формулу можно подкорректировать, чтобы она работала при наличии пробелов в названиях
Регионов
:
=ДВССЫЛ(ПОДСТАВИТЬ(A5;» «;»_»))
.
Теперь о
недостатках
. При создании имен с помощью кнопки меню
Создать из выделенного фрагмента,
все
именованные диапазоны
для перечней
Стран
были созданы одинаковой длины (равной максимальной длине списка для региона Европа (5 значений)). Это привело к тому, что
связанные списки
для других регионов содержали пустые строки.
Конечно, можно вручную откорректировать диапазоны или даже вместо
Именованных диапазонов
создать
Динамические диапазоны
. Но, при большом количестве имен делать это будет достаточно трудоемко. Кроме того, при добавлении новых
Регионов
придется вручную создавать
именованные диапазоны
для их
Стран
.
Чтобы не создавать десятки имен, нужно изменить сам подход при построении
Связанного списка
. Рассмотрим этот подход в другой статье:
Расширяемый Связанный список
.