В этой статье мы продемонстрирует простой подход по настройке выпадающего списка, зависящего от другого выпадающего списка. Например, мы выбираем страну в ячейке F1 и это изменяет список городов, доступных для выбора в ячейке F2, как показано на Рисунке 1.

Рисунок 1. Выбор города в стране
Рисунок 1. Выбор города в стране

Предположим, что мы уже настроили выпадающий список для страны, ссылающийся на диапазон A1:C1, тогда мы можем настроить список городов, используя формулу ниже, где:

  • СМЕЩ возвращает диапазон для зависимого выпадающего списка

  • A2 фиксирует начальную ячейку для функции СМЕЩ

  • 0 говорит функции СМЕЩ, что вертикального смещения нет

  • ПОИСКПОЗ(F1;A1:C1;0)-1 говорит функции СМЕЩ на сколько столбцов нужно сместиться вправо от начальной ячейки A2

  • СУММПРОИЗВ((F1=A1:C1)*(A2:C3<>"")) сообщает функции СМЕЩ количество непустых ячеек (A2:C3<>"") в выбранном столбце (F1=A1:C1)

=СМЕЩ(A2 ;0 ;ПОИСКПОЗ(F1;A1:C1;0)-1 ;СУММПРОИЗВ((F1=A1:C1)*(A2:C3<>"")))

Рисунок 2 демонстрирует зависимый список городов, когда в ячейке для страны выбрана Украина, где:

  • (F1=A1:C1) – это массив {ЛОЖЬ;ИСТИНА;ЛОЖЬ}

  • (A2:C3<>"") – это массив {ЛОЖЬ;ИСТИНА;ИСТИНА:ЛОЖЬ;ЛОЖЬ;ИСТИНА}

  • (F1=A1:C1)*(A2:C3<>"") – это массив {0;1;0:0;0;0}, поскольку произведение ЛОЖЬ*ЛОЖЬ или ЛОЖЬ*ИСТИНА равно 0, тогда как произведение ИСТИНА*ИСТИНА равно 1

  • Функция СУММПРОИЗВ возвращает сумму массива {0;1;0:0;0;0}, равную 1 в нашем случае

Рисунок 2. Выбор города в Украине
Рисунок 2. Выбор города в Украине

Продемонстрированный подход по настройке зависимых выпадающих списков является наиболее простым и наглядным из всех возможных.

Комментарии (2)


  1. Gortim
    01.08.2022 09:55
    +1

    Красиво.
    А разве не ";" должна разделять скобки в СУММПРОИЗВ?
    Мне кажется, можно оставить СУММ и * внутри выражения.


    1. Latyshenko Автор
      01.08.2022 10:30

      Наоборот, СУММПРОИЗВ предполагает прозведение массивов (*). См. тут https://support.microsoft.com/ru-ru/office/суммпроизв-функция-суммпроизв-16753e75-9f68-4874-94ac-4d2145a2fd2e

      СУММ для этих целей не наглядно...Если через СУММ, то выпадающий список можно было бы получить так =СМЕЩ(A2;0;ПОИСКПОЗ(F1;A1:C1;0)-1;СУММ(ИНДЕКС((F1=A1:C1)*(A2:C3<>"");))) . В отличие от СУММПРОИЗВ, функция СУММ не может суммировать массивы без формул массивов, но Проверка данных не принимает формулы массивов)))