Как сделать зависимые выпадающие списки в Excel: 3 рабочих метода

При попытке выбрать значение из второго выпадающего списка в Excel, который должен зависеть от выбора в первом, пользователи часто сталкиваются с ошибкой #ЗНАЧ! или пустым полем. Проблема возникает из-за неправильной настройки именованных диапазонов или отсутствия связи между списками через функцию ДВССЫЛ. В 90% случаев решение требует корректировки формулы в параметрах проверки данных — именно этот шаг чаще всего пропускают в стандартных инструкциях.

Зависимые списки (каскадные или динамические) позволяют сузить выбор в втором выпадающем меню на основе значения, выбранного в первом. Например, при выборе региона в первом списке во втором появятся только города этого региона. В Excel 2019–2026 и Microsoft 365 для этого используют комбинацию инструментов: проверка данных, именованные диапазоны и функция ДВССЫЛ. Ошибки на этом этапе приводят к тому, что второй список остаётся пустым или отображает все значения без фильтрации.

Если ваш зависимый список не работает, сначала проверьте: 1) Правильно ли созданы именованные диапазоны для каждого варианта первого списка? 2) Используется ли в формуле проверки данных функция ДВССЫЛ с корректным синтаксисом? 3) Нет ли в данных пробелов или непечатаемых символов (например, после копирования из веб-страниц)?

═════════════════════════════════════════════════════════════

1. Подготовка данных: структура таблицы для зависимых списков

Перед настройкой зависимых списков данные нужно организовать в иерархическую структуру. Классический пример: в первом столбце перечисляются категории (например, Регионы), а в соседних столбцах — подкатегории (например, Города), относящиеся к каждой категории. Важно, чтобы:

  • 📌 Категории первого уровня были уникальными (без повторений).
  • 📌 Подкатегории группировались строго по столбцам — каждый столбец соответствует одной категории.
  • 📌 Заголовки столбцов совпадали с значениями из первого выпадающего списка (например, если в списке регионов есть "Центральный", то и столбец с городами должен называться "Центральный").

Пример правильной структуры:

РегионЦентральныйЮжныйСеверо-Западный
ЦентральныйМоскваРостов-на-ДонуСанкт-Петербург
ЦентральныйТулаКраснодарМурманск
ЦентральныйЯрославльСимферопольАрхангельск

⚠️ Внимание: Если в вашей таблице есть пустые ячейки между данными, Excel воспримет их как конец диапазона. Удалите все пробелы или заполните ячейки значением N/A, если данные отсутствуют временно.

2. Создание именованных диапазонов для подкатегорий

Именованные диапазоны — основа зависимых списков. Они связывают название категории (например, "Центральный") с диапазоном ячеек, содержащих её подкатегории (города). Чтобы создать их:

  1. Выделите диапазон с городами для первой категории (например, B2:B4 для "Центрального").
  2. Перейдите на вкладку ФормулыПрисвоить имя.
  3. В поле Имя введите название категории без пробелов (например, Центральный).
  4. Повторите для всех категорий.

🔹 Критическая ошибка: Если в имени диапазона есть пробелы (например, "Центральный регион"), Excel не сможет корректно обработать его в формуле ДВССЫЛ. Используйте подчёркивание (Центральный_регион) или удаляйте пробелы.

Проверьте созданные диапазоны:

  1. На вкладке Формулы нажмите Диспетчер имен.
  2. Убедитесь, что в столбце Диапазон указаны правильные адреса ячеек.
  3. Если адреса сбились (например, после добавления строк), обновите их вручную.
Как автоматизировать создание именованных диапазонов

Используйте VBA-макрос:

Sub CreateNamedRanges()

Dim ws As Worksheet

Dim rng As Range, cell As Range

Dim lastRow As Long, lastCol As Long

Set ws = ActiveSheet

lastRow = ws.Cells(ws.Rows.Count, 1).End(xlUp).Row

lastCol = ws.Cells(1, ws.Columns.Count).End(xlToLeft).Column

For i = 2 To lastCol

Set rng = ws.Cells(1, i)

ws.Names.Add Name:=rng.Value, RefersTo:=ws.Range(ws.Cells(2, i), ws.Cells(lastRow, i))

Next i

End Sub

Макрос создаст именованные диапазоны для всех столбцов, кроме первого.

3. Настройка первого выпадающего списка

Первый список — это стандартный выпадающий список Excel, который служит триггером для зависимого списка. Чтобы его создать:

  1. Выделите ячейку, где должен находиться первый список (например, A1).
  2. Перейдите на вкладку ДанныеПроверка данных.
  3. В разделе Тип данных выберите Список.
  4. В поле Источник укажите диапазон с категориями (например, =$A$2:$A$4 для регионов).

⚠️ Внимание: Если в источнике списка указаны не только ячейки с данными, но и пустые строки, они отобразятся в выпадающем меню как пустые варианты выбора. Чтобы этого избежать, используйте динамический диапазон с функцией СМЕЩ:

=СМЕЩ(Лист1!$A$2;0;0;СЧЁТЗ(Лист1!$A:$A)-1;1)

Эта формула автоматически подстроится под количество заполненных ячеек в столбце A.

📊 Какой метод создания зависимых списков вы используете чаще?
Именованные диапазоны и ДВССЫЛ
Таблицы Excel и структурированные ссылки
VBA-макросы
Функция ФИЛЬТР (в Excel 365)
Ещё не пробовал

4. Связывание зависимого списка через функцию ДВССЫЛ

Функция ДВССЫЛ (или INDIRECT в английской версии) — ключевой элемент зависимых списков. Она преобразует текстовое значение (название категории) в ссылку на именованный диапазон. Чтобы настроить зависимый список:

  1. Выделите ячейку для зависимого списка (например, B1).
  2. Перейдите в Проверка данныхСписок.
  3. В поле Источник введите формулу:
    =ДВССЫЛ(A1)

    где A1 — адрес ячейки с первым списком.

🔹 Распространённая ошибка: Если в ячейке A1 нет выбранного значения (она пустая), функция ДВССЫЛ вернёт ошибку #ССЫЛКА!. Чтобы этого избежать, модифицируйте формулу:

=ЕСЛИ(A1="";"";ДВССЫЛ(A1))

Эта формула вернёт пустую строку, если в A1 ничего не выбрано.

Именованные диапазоны созданы для всех категорий|Первый список содержит только уникальные значения|Формула в зависимом списке использует ДВССЫЛ с правильной ссылкой|В данных нет скрытых символов (пробелов, переносов)|-->

5. Альтернативные методы: таблицы Excel и функция ФИЛЬТР

В Excel 365 и Excel 2021 зависимые списки можно создать без именованных диапазонов, используя структурированные ссылки на таблицы или функцию ФИЛЬТР.

Метод 1: Структурированные ссылки

Если ваши данные оформлены как таблица Excel (Ctrl+T):

  1. Создайте первый список с уникальными значениями из столбца категорий.
  2. Для зависимого списка используйте формулу:
    =ФИЛЬТР(Таблица1[Города];(Таблица1[Регион]=A1))

    где Таблица1 — имя таблицы, Регион и Города — названия столбцов.

Метод 2: Функция ФИЛЬТР (только Excel 365)

Функция ФИЛЬТР позволяет динамически отфильтровывать данные без создания именованных диапазонов:

=ФИЛЬТР(B2:D4;B1:D1=A1;"Нет данных")

Где:

  • B2:D4 — диапазон с подкатегориями,
  • B1:D1 — заголовки столбцов (категории),
  • A1 — ячейка с первым списком.

6. Ошибки и их устранение

Если зависимый список не работает, проверьте следующие моменты:

СимптомВозможная причинаРешение
Второй список пустойНе выбрано значение в первом спискеДобавьте проверку ЕСЛИ в формулу (см. раздел 4)
Ошибка #ИМЯ?Опечатка в имени диапазонаПроверьте имена в Диспетчере имен
Отображаются все значенияФормула не связана с первым спискомУбедитесь, что в ДВССЫЛ указана правильная ячейка
Ошибка #ССЫЛКА!Удалены ячейки из именованного диапазонаОбновите диапазон в Диспетчере имен

⚠️ Внимание: Если вы копируете зависимые списки в другие ячейки, абсолютные ссылки в формулах ($A$1) превратятся в относительные (A2, A3 и т.д.). Чтобы этого избежать, используйте именованные ячейки вместо адресов. Например:

=ДВССЫЛ(Выбор_региона)

где Выбор_региона — имя, присвоенное ячейке A1.

7. Динамические зависимые списки без VBA

Для создания полностью динамических списков, которые автоматически обновляются при добавлении новых данных, используйте комбинацию функций СМЕЩ, ПОИСКПОЗ и ДВССЫЛ.

Пример для списка городов, который обновляется при добавлении новых строк:

  1. Создайте именованный диапазон Города_динамический с формулой:
    =СМЕЩ(Лист1!$B$2;0;0;СЧЁТЗ(Лист1!$B:$B)-1;1)
  2. В зависимом списке используйте:
    =ДВССЫЛ(A1 & "_динамический")

🔹 Преимущество: При добавлении нового города в столбец B он автоматически появится в зависимом списке без ручного обновления именованных диапазонов.

8. Продвинутые техники: зависимые списки с несколькими уровнями

Для создания многоуровневых зависимых списков (например, Регион → Город → Район) используйте цепочку функций ДВССЫЛ:

  1. Первый список — регионы (как в базовом методе).
  2. Второй список (города) настраивается по формуле =ДВССЫЛ(A1).
  3. Третий список (районы) использует комбинацию:
    =ДВССЫЛ(A1 & "_" & B1)

    где A1 — регион, B1 — город, а именованные диапазоны имеют формат Регион_Город (например, Центральный_Москва).

⚠️ Внимание: При таком подходе количество именованных диапазонов растёт экспоненциально. Для больших наборов данных (более 100 комбинаций) лучше использовать Power Query или VBA.

FAQ: Частые вопросы по зависимым спискам в Excel

Можно ли сделать зависимые списки без функции ДВССЫЛ?

Да, в Excel 365 для этого подходит функция ФИЛЬТР. В старых версиях альтернативой служат структурированные ссылки на таблицы или VBA-макросы. Однако ДВССЫЛ остаётся самым универсальным методом для Excel 2010–2019.

Почему зависимый список показывает ошибку #ЗНАЧ! при выборе категории?

Ошибка #ЗНАЧ! возникает, если:

  • Имя диапазона содержит пробелы или специальные символы.
  • В ячейке первого списка есть скрытые символы (например, пробел после текста).
  • Именованный диапазон удалён или его адрес изменился.

Проверьте имена в Диспетчере имен и очистите данные от лишних символов функцией СЖПРОБЕЛЫ.

Как сделать зависимый список с поиском (как в Google)?

В Excel 365 для этого подходит комбинация ФИЛЬТР + ПОИСК:

=ФИЛЬТР(B2:B10;ЕНД(ПОИСК(A1;B2:B10)))

где A1 — ячейка с текстом для поиска, B2:B10 — диапазон с данными.


Для старых версий Excel потребуется VBA-решение.

Можно ли зависимые списки сделать в Google Таблицах?

Да, в Google Sheets зависимые списки настраиваются через Проверку данных с использованием функции INDIRECT (аналог ДВССЫЛ). Главное отличие — именованные диапазоны создаются через меню Данные → Именованные диапазоны.

Как скопировать зависимые списки на другой лист?

При копировании зависимых списков на другой лист:

  1. Скопируйте все именованные диапазоны (они имеют область действия "Книга" по умолчанию).
  2. Обновите ссылки в формулах проверки данных, если адреса ячеек изменились.
  3. Проверьте, что на целевом листе нет конфликтов имён (например, диапазон с именем "Центральный" уже существует).