Excel, Формулы массива, N / A вне диапазона и ROW ()

У меня проблема с ROW () в формуле массива в Excel 2013.

Пример:

Я делаю именованный диапазон, называемый «ввод», скажем, 4 ячейки в ширину и 10 высоко. Затем я делаю формулу массива =ROW(input) одну ячейку шириной, максимум 15 клеток.

Я получаю 10 чисел – первая – первая строка ввода, а остальные подсчитываются от нее, а затем следуют 5 # N / A. Это так и должно быть.

Если вместо =ROW(input) я попробую выполнить одно из следующих действий:

 =IFERROR(ROW(input),"x") 

или

 =IF(ISNA(ROW(input)),"x",ROW(input)) 

чтобы поймать # N / As, тогда я ожидаю увидеть десять чисел, а затем пять x. Вместо этого я все еще вижу десять чисел, а затем пять # N / As.

Может ли кто-нибудь сказать мне, как решить эту проблему? Я хочу получить десять чисел, а затем пять x.

И имеет меньшее значение, но только для любопытства (или, если оно возникает в другом случае), почему это происходит?

Почему я хочу это сделать? Это часть более крупной формулы, которую я упростил для этого вопроса.

(Отредактировано для улучшения краткости и четкости)

Я полагаю, что в таких предложениях Excel дает преимущество искусственному расширению ссылки для соответствия выбранному диапазону рабочих листов (который он всегда будет делать, заполняя # N / As), сначала разрешая предложение IF над массивом.

Итак, в то время как «обычно» (например, в формуле ячейки с одной ячейкой), например:

 =SUM(IF(ISNA(ROW(input)),"YES","NO")) 

эффективно принуждает Excel к расширению одиночных параметров value_if_true и value_if_false функции IF в синтаксически подходящие массивы этих значений, а именно:

 =SUM(IF({FALSE;FALSE;FALSE;FALSE;FALSE},{"YES","YES","YES","YES","YES"},{"NO","NO","NO","NO","NO"})) 

то есть:

 =SUM({"NO";"NO";"NO";"NO";"NO"}) 

с формулами массива с несколькими ячейками, например:

 =IF(ISNA(ROW(input)),"YES","NO") 

введенный в диапазон из 10 ячеек, НЕ сначала разрешен таким образом:

 =IF(ISNA({1;2;3;4;5;#N/A;#N/A;#N/A;#N/A;#N/A}),{"YES";"YES";"YES";"YES";"YES";"YES";"YES";"YES";"YES";"YES"},{"NO";"NO";"NO";"NO";"NO";"NO";"NO";"NO";"NO";"NO"}) 

(В котором параметры value_if_true и value_if_false сначала пересчитываются в соответствии с размером диапазона листа, в который вводится массив).

то есть:

 =IF({FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;TRUE;TRUE;TRUE;TRUE},{"YES";"YES";"YES";"YES";"YES";"YES";"YES";"YES";"YES";"YES"},{"NO";"NO";"NO";"NO";"NO";"NO";"NO";"NO";"NO";"NO"}) 

то есть:

 ={"NO";"NO";"NO";"NO";"NO";"YES";"YES";"YES";"YES";"YES"} 

а скорее:

 =IF(ISNA({1;2;3;4;5;#N/A;#N/A;#N/A;#N/A;#N/A}),{"YES";"YES";"YES";"YES";"YES";#N/A;#N/A;#N/A;#N/A;#N/A},{"NO";"NO";"NO";"NO";"NO";#N/A;#N/A;#N/A;#N/A;#N/A}) 

(Параметры value_if_true и value_if_false сначала изменяются в соответствии с размерами ввода Named Range.)

то есть:

 =IF({FALSE;FALSE;FALSE;FALSE;FALSE;TRUE;TRUE;TRUE;TRUE;TRUE},{"YES";"YES";"YES";"YES";"YES";#N/A;#N/A;#N/A;#N/A;#N/A},{"NO";"NO";"NO";"NO";"NO";#N/A;#N/A;#N/A;#N/A;#N/A}) 

то есть:

 {"NO";"NO";"NO";"NO";"NO";#N/A;#N/A;#N/A;#N/A;#N/A} 

Надеюсь, что это поможет.

С уважением

Interesting Posts

Множественный выбор списка в таблице Excel с использованием проверки данных

Как я могу использовать строку из текстового поля в качестве ссылки для диапазона в excel vba?

Excel 2013 комплексная формула countif

Ошибка времени выполнения «438» при обращении к диаграмме в VBA

Подсчитайте количество листов в файле Excel с помощью win32com.client

Сценарий Python ошибочно стирает созданную диаграмму в файле .xlsx

Ошибка доступа к данным из массива в ruby ​​on rails

Как ускорить автоматизацию столбцов в POI apache?

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

Макрос для активации ячейки, адрес которой указан в другом месте

Обновление поля поиска в списке SharePoint с использованием SOAP в VBA для Excel

Создание листа Excel из datatable

Как разрешить несоответствие файла в этом скрипте vba

Соединение Oledb, предоставляющее значения мусора при чтении из excel

Добавление строки в Excel VBA, изменение толщины и рисование "вверх"

Давайте будем гением компьютера.