У меня есть четыре подформулы, объединенные в большую формулу:

=(IF(INDIRECT("Lawmakers2017!F"&ROW())=0,(IFERROR(IF(FIND(".",INDIRECT("Lawmakers2017!D"&ROW()))=2,INDIRECT("Lawmakers2017!E"&ROW()),INDIRECT("Lawmakers2017!D"&ROW())),INDIRECT("Lawmakers2017!D"&ROW()))),INDIRECT("Lawmakers2017!F"&ROW()))&" "&INDIRECT("Lawmakers2017!H"&ROW())&" "&INDIRECT("Lawmakers2017!I"&ROW())&" ("&INDIRECT("Lawmakers2017!BH"&ROW())&")")

Формула работает нормально, но когда я нажимаю Ctrl+Shift+Enter для запуска в виде массива, я получаю # #VALUE! ошибка, которую я не могу объяснить.

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

До сих пор я смог отследить ошибку до первой подформулы:

=(IF(INDIRECT("Lawmakers2017!F"&ROW())=0,(IFERROR(IF(FIND(".",INDIRECT("Lawmakers2017!D"&ROW()))=2,INDIRECT("Lawmakers2017!E"&ROW()),INDIRECT("Lawmakers2017!D"&ROW())),INDIRECT("Lawmakers2017!D"&ROW()))),INDIRECT("Lawmakers2017!F"&ROW())))

И [value_if_true] и [value_if_false] можно без проблем превратить в формулы массива, но когда я использую их как условия в операторе IF, я не могу превратить этот оператор IF в массив. Даже если я унесу их и просто использую 1 и 0, я все равно получу # #VALUE! ,

Любые идеи, как это исправить?

1 ответ1

1

У меня была такая же проблема. Формула "Row()" в выражении, кажется, вызывает "#VALUE!"msgstr "ошибка как формула массива в операторе" IF()". После оценки «ROW ()» номер строки автоматически окружается «{}» и переносится в формулу «INDIRECT (...)», которая, похоже, не нравится.

Я нашел способ обойти эту проблему, заменив оператор «ROW ()» в исходной формуле ссылкой на ячейку с нужным мне номером строки. Например, ваша формула может быть обновлена до:

=(IF(INDIRECT("Lawmakers2017!F"&A1)=0,(IFERROR(IF(FIND(".",INDIRECT("Lawmakers2017!D"&A1))=2,INDIRECT("Lawmakers2017!E"&A1),INDIRECT("Lawmakers2017!D"&A1)),INDIRECT("Lawmakers2017!D"&A1))),INDIRECT("Lawmakers2017!F"&A1)))

... где ячейка A1 имеет необходимый номер строки. Вы можете поместить формулу «ROW ()» в соседний столбец в той же строке, что и исходная формула, и ссылаться на нее.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .