Так что вы можете сделать это с формулами, но это немного сложнее. Суть в том, что вот результат, который я придумал:
Раскрывающийся список был создан динамически с использованием динамических c именованных диапазонов и формул
Нам нужно начать с некоторых определений. Это мой тестовый лист и данные:
Формулы будут работать с использованием названных диапазонов, поэтому вы можете указать свою «рабочую область» ( область в рамке (зеленая) почти везде, в том числе на другом (возможно, скрытом) листе.
Вы должны определить четыре динамических c именованных диапазона следующим образом, которые соответствуют цветным областям на изображении выше:
Многие из этих формул массивы , поэтому вы должны быть осторожны, вводя их с помощью CTRL + SHIFT + ENTER .
Как только ваши области данных и имена определены, первая область для заполнения - UniqueClusterList
(диапазон на листе F2:M2
). Мы создаем список уникальных элементов на основе данных в столбце значений кластера. Поэтому вам нужна формула массива , которая идентифицирует все уникальные значения в диапазоне . В каждой ячейке диапазона введите формулу массива CTRL + SHIFT + ENTER для каждого:
Cell F2 =IFERROR(LOOKUP(2,1/(COUNTIF($E$2:E2,ClusterList)=0),ClusterList),"")
Cell G2 =IFERROR(LOOKUP(2,1/(COUNTIF($E$2:F2,ClusterList)=0),ClusterList),"")
Cell H2 =IFERROR(LOOKUP(2,1/(COUNTIF($E$2:G2,ClusterList)=0),ClusterList),"")
Cell I2 =IFERROR(LOOKUP(2,1/(COUNTIF($E$2:H2,ClusterList)=0),ClusterList),"")
... и так далее. Обратите внимание, что меняется только адрес ячейки в середине.
Далее нам нужно составить список идентификаторов для каждого уникального значения кластера. Это также формула массива. Начинается в ячейке F3
с CTRL + SHIFT + ENTER :
=IFERROR(INDEX(IDList, SMALL(IF(F$2=ClusterList, ROW(IDList)-2,""), ROW()-2)),"")
Затем используйте курсор для захвата автозаполнения значок в поле выбора этой ячейки и перетащите его вниз до ячейки F16
. Поскольку теперь выделены ячейки F3:F16
, перехватите значок автозаполнения и перетащите вправо, чтобы заполнить весь диапазон F2:M16
. Все значения должны появиться в соответствии с формулами.
Ваш последний шаг - создать формулу поиска для раскрывающегося списка. Поэтому выберите ячейку C3
, затем на ленте нажмите Данные -> Инструменты данных -> Проверка данных , чтобы открыть диалоговое окно. Теперь выберите Разрешить: Список и в поле Источник: введите следующую формулу:
=OFFSET($F$2,1,MATCH(A3,UniqueClusterList,0)-1,SUMPRODUCT(COUNTIF(IDList,OFFSET($F$2,0,MATCH(A3,UniqueClusterList,0)-1,MAXUNIQUE,1))),1)
Теперь у вас будет раскрывающийся список в ячейке C3
, который соответствует самому первому изображению выше. Перетащите значок выбора автозаполнения до ячейки C20
, и все эти ячейки правильно рассчитают раскрывающийся список на основе доступных кластеров и идентификаторов.