Мое решение заключается в создании списка с использованием метода INDEX MATCH или INDEX SMALL для извлечения нескольких результатов из данных, которые можно использовать для раскрывающегося списка.
![Example](https://i.stack.imgur.com/UOIJ2.png)
Я добавил пару дополнительных столбцов, чтобы подсчитать, сколько раз был выставлен счет-фактуру, а затем еще Да / Нет, чтобы упростить соблюдение формулы индекса. Вы увидите, что в моем примере можно выбрать только 2 значения, так как другие были полностью выписаны.
Страшная формула в Q1
=IFERROR(INDEX($A$2:$H$1000,SMALL(IF(($H$2:$H$1000="Yes"),ROW($A$2:$H$1000)-1),ROW(1:1)),1),"")
Это формула массива, поэтому вы должны использовать SHIFT CTRL ENTER вместо просто ENTER в строке формул. {} будут добавлены бэкеты, если вы все сделаете правильно.
Чтобы разбить его, INDEX($A$2:$H$1000
выбирает данные вашего предложения и еще несколько строк ниже (1000). SMALL(IF(($H$2:$H$1000="Yes")
смотрит на мой дополнительный столбец Да / Нет для "Да". ROW($A$2:$H$1000)-1)
возвращает номер строки минус 1, чтобы учесть тот факт, что наш диапазон начинается с A 2 . ROW(1:1)
говорит, что мы хотим найти первое совпадение в списке, а ),1)
возвращает значение в первом столбце диапазона $ A $ 2: $ H $ 1000.
Поскольку ROW(1:1)
возвращает первый результат, вам нужно будет выполнить автоматическое заполнение, чтобы получить больше результатов. При этом формула будет копироваться как 1: 1, 2: 2, 3: 3 ... и т. Д. Я заполнил строку 50, чтобы получить приличное количество результатов.
Вы можете установить диапазон проверки на Q1:Q50
, но тогда у вас будет много пустого пространства в раскрывающемся списке, поэтому посмотрите на ячейку R1.
="Q1:Q" & COUNTA(Q1:Q50)-COUNTBLANK(Q1:Q50)
Эта формула создает диапазон на основе результатов в столбце Q. Вы можете использовать это значение в диапазоне проверки данных, введя.
=INDIRECT($R$1)
Таким образом создается необходимый вам динамический диапазон.
Вам не нужно использовать дополнительные столбцы, которые я добавил, но формулы:
=COUNTIF(M2:M1000,A2)
для подсчета счета-фактуры
=IF(AND(F2="Yes",G2<E2),"Yes","No")
, чтобы проверить, можно ли по-прежнему выставлять счет.
если вы хотите использовать их, я бы порекомендовал отформатировать данные в виде таблицы, чтобы формулы автоматически копировались в новые строки.
Также Я бы посоветовал поместить список индексов на другой лист, чтобы строки не удалялись и т. Д.