Выпадающий зависимый список в excel
Как сделать зависимый выпадающий список в Excel
Здравствуйте, друзья. Когда Вы заполняете таблицы данными, перечень которых определен заранее, было бы удобно не писать их вручную, а выбирать мышью из выпадающего списка. Такой подход экономит время и минимизирует вероятность ошибки.
Приведу пример. Вы занимаетесь учетом расходов офиса, связанных с его хозяйственной деятельностью. Ваша таблица выглядит так:
Сейчас Вы вносите категории и виды расходов вручную. А значит, можете случайно ошибиться в написании. Вроде бы, ничего страшного, но если потом придется оценивать расходы с помощью сводной таблицы, ошибки исказят результат, придется исправлять.
Подробнее о сводных таблицах читайте в этой статье.
Создание раскрывающегося списка
Давайте построим перечни категорий и видов расходов, чтобы на их основании сделать выпадающие списки. Вынесем их в отдельную таблицу.
Теперь воспользуемся инструментом Проверка данных , чтобы сделать выбор из списка. Как это работает, я описывал здесь. Действуем по алгоритму:
- Выделяем ячейки, куда будем вносить категории
- Жмем на ленте Данные – Работа с данными – Проверка данных
- Тип данных указываем «Список», Источник – =$I$4:$I$6. То есть ссылка на наш массив с категориями. Жмем Ок
Теперь Вы сможете выбрать нужные пункты из раскрывающегося списка и не ошибетесь с написанием.
Правда, остались нюансы. Мы не контролируем соответствие выбранной категории и вида расходов. Например, можно выбрать категорию «Канцелярия» и вид – «Кофе». Этого нельзя допускать. Усовершенствуем проверку данных, сделаем списки, зависимые от значения другой ячейки.
Создание зависимого списка в Экселе
Задача: когда мы выбираем категорию – в списке видов расходов должны быть лишь те, которые относятся к этой категории. Решение может показаться сложным, но это не так. Я постараюсь пояснить его максимально просто.
Cтруктурируем нашу таблицу видов расходов:
Теперь виды расходов разбиты по колонкам, соответствующим каждой из категорий. Далее мы будем использовать функцию ДВССЫЛ(текст) . Что она делает? Она пытается преобразовать введенный текст в ссылку на ячейки. Что будет, если записать такую формулу: =СУММ(ДВССЫЛ(«F1:F5»)) . Функция ДВССЫЛ распознает текст «F1:F5», как диапазон ячеек и вернет его. А функция СУММ – просуммирует все значения в этом диапазоне.
То же самое произойдет, если мы диапазону «F1:F5» присвоим имя. Например, «структура». Формула =СУММ(ДВССЫЛ(«структура»)) даст аналогичный результат. Именно этой возможностью мы и воспользуемся.
Чтобы больше узнать об именовании ячеек, прочтите эту статью. Рекомендую это сделать, имена – удобный и практичный инструмент.
Дадим имена всем столбцам с исходными данными. При этом, диапазон с видами должен именоваться точно так же, как и его категория. Например, диапазону J4:J8 дадим имя «Канцелярия». Именуем:
- Выделяем ячейки с категориями I4:I6
- В области имен запишем «Категории», жмем Enter
Выделяем J4:J8 и называем «Канцелярия»
Теперь, если кликнуть Формулы – Определенные имена – Диспетчер имен – можно увидеть все заданные имена. Если Вы где-то ошиблись, или список изменился, в этом окне можно внести исправления.
Еще раз настраиваем проверку данных:
- Выделяем в таблице столбец с категориями
- Жмем на ленте Данные – Работа с данными – Проверка данных
- Тип данных указываем «Список», Источник – =Категории . Программа определит, что это именованный диапазон и выберет из него пункты списка. Жмем Ок
Если все еще не понятен принцип, опишу по пунктам, как теперь будет работать наша таблица:
- С помощью обычного списка, в столбце B выбираем категорию товаров. Например, «Питание»
- Слово «Питание» попадает, как источник данных в столбец C, т.е. в виды расходов
- У нас есть диапазон данных L4:L8, который называется Питание. Функция ДВССЫЛ это определяет и заменяет на слово «Питание» на диапазон L4:L8
- Теперь этот диапазон будет источником для списка вида расходов
Все перечисленное подтверждаю изображением ниже:
Как видите, список видов расходов заполнился не всем перечнем, а только теми пунктами, которые принадлежат выбранной категории «Питание». Именно этого мы и добивались.
Думаю, Вы разобрались, как сделать зависимый список в Excel. Если не разобрались – пишите комментарии. А я статью закончил, продуктивной Вам работы!
Двухуровневый выпадающий список в 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 — так как это ширина нашего столбца с подгруппами.
Как в экселе сделать выпадающий список с выбором нескольких значений? Простые и зависимые списки
Доброго времени на fast-wolker.ru! В процессе рутинной работы с таблицами всегда возникает желание ускорить ввод значений. Особенно это касается наименований позиций. Зачастую мы имеем один и тот же список, с которыми постоянно приходится работать, а новые добавляются постепенно.
Каждый раз заносить в таблицу одно и то же название утомительно; к тому же всегда есть возможность ошибки — поставить лишнюю точку, пробел и так далее. Сегодня расскажу о способах, который позволяет в ряде случаев ускорить работу. В самых простых примерах, может что-то подойдет и Вам. Итак…
Как в экселе создать выпадающий список с выбором нескольких значений
Начну с самого простого способа. Его используют, если в таблице одно и тоже наименование позиции нужно быстро ввести несколько раз. Обязательным условием является наличие заранее составленного списка наименований и непрерывность, отсутствие в нем пустых строк:
Ставим курсор на следующую пустую ячейку под списком кликаем правой кнопкой мыши; из контекстного меню выбираем команду. Или используем сочетание клавиш «Alt+ Стрелка вниз». Такой способ выбора из списка использовать приходиться не слишком часто. Наименования ведь редко повторяются.
Лучше использовать следующий способ — хранение готового списка на другом листе нашей книги. А в нужной ячейке делать ссылку на данные этого листа.
Как в эксель сделать выпадающий список с другого листа?
Я таблицу уже создал . Теперь создадим новый лист в документе и назовем его «база». Лист потом этот можно скрыть, чтобы случайно не сломать документ. В произвольном месте этого нового листа сохраним наш будущий список, в этом примере его можно дополнить пустыми строками и время от времени добавлять в них новые позиции.
Выделяем нужную область и в верхней левом верхнем углу присваиваем ей имя «Список_Кондит». У нас есть теперь первый ИМЕНОВАННЫЙ диапазон в нашей книге эксель. Чтобы потом диапазонами управлять, нужно открыть вкладку «Формулы» и найти там «Диспетчер имен»:
Следующий шаг — идем обратно в наш лист где создана основная таблица. Выделяем в графе нужные строки. Идем во вкладку «Данные»- «Проверка данных». В строке «тип данных» выбираем «Список»….
А в строке «Источник» копируем адрес нашего диапазона из «диспетчера имен»…
Теперь из списка можно выбирать готовые значения. Если список длинный, то прокручиваем вниз. Но нельзя будет менять шрифты, цвета — то есть форматировать содержимое, искать по букве наименование.
Как в экселе сделать выпадающий список в ячейке с выбором нескольких данных
Следующий несложный пример демонстрирует создание связанных списков. Например, вы заполняете товары в разрезе категорий. В документе мы сделаем список категории и список товаров, который формируется после выбора категории .
Сначала сделаем в листе «база» наши будущие списки. У нас будет три категории товара — полуфабрикаты, рыба и хлебобулочные. И мы заполним ими три графы.
Сейчас в них немного позиций; ниже будет описано, как сделать, чтобы при добавлении в «базу» новых позиций они автоматом появлялись в списке при выборе. Первым сделаем выпадающий список категорий в точности так, как это было описано в предыдущем примере. Идем в «Данные -«Проверка данных». Укажем в качестве диапазона только строку с названиями категорий.
Нажимаем клавишу Enter. Убеждаемся, что в нашей таблице на другом листе в нужных выделенных графах появилась возможность выбора наших категорий из списка.
Кстати, получившийся результат можно копировать в нижние ячейки -как обычные формулы. Работаем далее. Сначала займемся доработкой наших трех списков на листе «База». Доработаем сначала графу «Полуфабрикаты». Сделаем это, чтобы позже можно было добавлять в «базу» новые позиции, а они автоматом отображались бы в списках.
Ставим курсор в строку из «Полуфабрикаты, затем открываем вкладку «Главная» и жмем на кнопку «Форматировать как таблицу». Дизайн выбираем любой. Задаем по столбцу нужный вертикальный диапазон, включая только строки с наименованиями; ничего кроме диапазона не меняем.
В процессе этих действий нам стал доступен «конструктор таблиц». Обязательно присваиваем нашей( как бы созданной) таблице имя (в левом верхнем углу) «Полуфабрикаты».
Повторяем действо для граф «Рыба» и «Хлебобулочные».
Завешающий этап. Встаем в нужную строку таблицы, как обычно идем в «Данные»-«Проверка данных», выбираем тип «Список» и в качестве диапазона указываем на соседнюю ячейку , т.е на ранее созданный список, но…
… с использованием в «Источнике» функции ДВССЫЛ. «=ДВССЫЛ($Е$6)». Эта функция возвращает ссылку на наши диапазоны т.е. предыдущие списки, а не содержимое ячейки. Мы работаем с данными, в функцию просто их подставили. Наименование вводится вручную.
Обратите внимание на «источник». Указана абсолютная адресация столбца и ячейки (через знаки «$»). Чтобы распространить в таком виде на остальные строки, нужно будет указывать для каждой строки свой источник данных. Это долго. Можно аккуратно убрать абсолютную адресацию руками из «источника» и после скопировать ячейку на остальные строки ниже. Тогда «формула» распространится корректно.
Попробуйте добавить в базу новые позиции; проверьте — появляются ли они теперь автоматически в списке после указании категорий? Должно получиться.
Делаем выпадающий список в ячейке эксель с выбором по первой букве
Быстро понимаешь, что хорошо бы иметь возможность выбора из списка по первой букве, тогда процесс идет гораздо быстрее. Следующий способ познакомит вас с разработкой в эксель. Сначала Включим в настройках Excel режим конструктора через «Параметры».
В режиме конструктора вставим в наш документ элемент управления Active X «Поле со списком«:
Курсор мыши приобретет форму крестика. Побудем немного программистами — нарисуем этот элемент в нужной ячейке — так и делаются формы и и окошки которые привычны нам уже давно. В свойствах этого элемента делаем настройки — указываем наш именованный диапазон, цвет фона, шрифта, есть и другие настройки.
- ListFillRange — сюда вставляем наш именованный диапазон из «диспетчера имен»;
- LinkedCell — связанная ячейка, куда будет выводиться выбранный из списка элемент — нужно, если данные ее будут использоваться в других таблицах, формулах и т.д;
- ListRows — количество отображаемых строк в списке;
- Font — выбираем шрифт, размер, стиль;
- ForeColor и BackColor — цвет текста и фона;
- ListRow — количество возвращаемых строк в списке;
- PrintObject — определяет — выводить элемент управления на печать или нет (истина или ложь)
Пока активен режим конструктора — вы не сможете работать со списком как пользователь. Но вы можете изменять его размеры , свойства , положение на листе. После окончания настроек нужно выключить режим конструктора.
Попробуйте найти имя по букве, посмотрите что получается. Можно скопировать и разместить на нужных местах созданный нами элемент управления. Такой способ создания списков хорош для серьезных проектов в Excek, может не всем подойти, но у него есть свои плюсы, которых нет в других способах.
Как сделать зависимые выпадающие списки в ячейках 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. Однако использование имен диапазонов в формуле делает ее проще и легко читаемой.
Одна формула, ну не такая уж и простая, но облегчающая работу и защищает от ошибок при вводе данных!
Два варианта использования этого трюка я уже представил. Интересно, как вы его будете использовать?
Сводные таблицы 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) знак «равно» и имя нашего диапазона, т.е. =Модели .