Если это только для 1 раскрывающегося списка, а не для нескольких строк раскрывающихся списков, то вы можете использовать вспомогательный столбец с AGGREGATE
и формулу массива.
AGGREGATE(15, 7, Range, k
даст вам k th наименьшее (15
) значение в Range
, которое не является ошибкой или скрытой строкой (7
). Итак, нам нужно определить Range
как массив, который возвращает идентификатор, когда провинция соответствует нашему выбору, или Error (эй, смотри, функция NA()
возвращает ошибку!), Если это не так.
Это кажется достаточно простым: IF(E$1:E$4=$H$2,D$1:D$4,NA())
вернет значение в столбце D, если столбец E соответствует ячейке H2, или ошибку #NA!
, если нет
Что касается k
? Итак, мы хотим начать сверху (k = 1) и двигаться вниз по строкам, поэтому мы можем использовать ROW()-1
для начала в строке 2:
=AGGREGATE(15,7,IF(E$1:E$4=$H$2,D$1:D$4,NA()),ROW()-1)
NB Вам нужно будет нажать Ctrk + Shift + Введите после ввода формулы, чтобы убедиться, что это массив Формула (в окружении {
и }
)
Тогда нам просто нужен столбец контрольной суммы, чтобы указать количество строк данных: =--NOT(ISERROR(I:I))
даст нам 1
для строки, в которой находится город, или 0
для строки ошибки. Мы можем просто SUM
этот столбец использовать в OFFSET
для построения вашего Именованного диапазона для выпадающего списка
![Image showing an example of the formula in use, with the data from the Question Post](https://i.stack.imgur.com/eOrBC.png)