Excel - Мы нашли проблему с этой формулой.Попробуйте нажать функцию вставки на вкладках формул - PullRequest
0 голосов
/ 20 января 2019

Когда я использую вкладку проверки данных для вставки списка данных в качестве элемента управления раскрывающегося списка, я получаю следующую ошибку.

На вкладке источника я скопировал и вставил следующую формулу, которая отлично работает, когда я тестировал ячейку, но когда я вставляю ту же формулу в текстовое поле Источник проверки данных, появляется сообщение об ошибке.

enter image description here

Формула:

=OFFSET(Table1[[#Headers],[Stage]], MATCH(Invoice_Plan!$D$6,Table1[Project],0),0,COUNTIF(Table1[Project],Invoice_Plan!$D$6),1)

Когда я нажимаю кнопку F9, чтобы просмотреть результат, он отображаетсписок значений в виде:

={"Mobilization Advance";"Concept Design ";"Schematic Design";"Detailed Design";"Tender Documents"}

Однако я не уверен, почему та же формула не работает в качестве источника на вкладке Проверка данных.был бы признателен за любую помощь.Спасибо

1 Ответ

0 голосов
/ 20 января 2019

Объект проверки принимает список значений или именованный диапазон, содержащий список значений.Он не принимает формулу, динамически определяющую диапазон.

Чтобы обойти проблему, вы можете создать динамический именованный диапазон и использовать имя диапазона в качестве справочного материала для проверки.Я создал именованный диапазон с именем «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.

...