Объект проверки принимает список значений или именованный диапазон, содержащий список значений.Он не принимает формулу, динамически определяющую диапазон.
Чтобы обойти проблему, вы можете создать динамический именованный диапазон и использовать имя диапазона в качестве справочного материала для проверки.Я создал именованный диапазон с именем «ValidationList», используя формулу ниже, чтобы определить его.
=OFFSET(Formulas!$A$7,0,0,10-COUNTBLANK(Formulas!$A$7:$A$16))
Обратите внимание, что формулы! A7: A16 - это адрес самого именованного диапазона, но больше.Эффект этой формулы заключается в создании списка, если в столбце есть значения, начиная с A7 и ниже.В моем примере список ограничен 10 значениями макс.Вы можете сделать это 50 или 100 - любое число.Важно то, что число (здесь это «10») в 10-COUNTBLANK(Formulas!$A$7:$A$16)
равно количеству ячеек в указанном диапазоне (здесь A7: A16, что означает 10 ячеек).Конечно, имя рабочей таблицы (здесь это «Формулы») должно быть таблицей, существующей в вашей рабочей книге.
Чтобы заполнить значения в диапазоне «ValidationList», вы можете использовать формулу, например =IFERROR(IF(Len(Invoice_Plan!$D$6)),Invoice_Plan!$D$6,""),"")
.Обратите внимание, что вы не можете использовать даже простой = Invoice_Plan! $ D $ 6, потому что формуле, определяющей диапазон 'ValidationList', нужны пустые ячейки, содержащие пустую строку, чтобы избежать их включения в список раскрывающегося списка проверки.
Теперь вы можете установить Источник при проверке данных просто на =ValidationList
.