Функция СТРОКА() ведет себя по-разному внутри функций СУММ() и СУММПРОИЗВ()

Постановка задачи:

Введите любое число в ячейку А1. Теперь попробуйте следующие формулы в любом месте первой строки.

=SUM(INDIRECT("A"&ROW()))

и

=SUMPRODUCT(INDIRECT("A"&ROW()))

Первая формула вычисляет, вторая дает ошибку #ЗНАЧ. Это вызвано тем, что функция ROW()ведет себя по-разному внутри SUMPRODUCT().

В первой формуле ROW()возвращает 1. Во второй формуле строка возвращает {1}(массив одной длины), хотя формула не была введена как формула СПП.

Почему это происходит?

Исходная информация

Мне нужно вычислить формулу типа

=SUMPRODUCT(INDIRECT(*range formed by concatenation and using ROW()*)>1)

Это работает с ошибкой.В качестве временного решения этой проблемы я теперь вычисляю ROW()в другой ячейке (очевидно, в той же строке) и объединяю ее внутри моего INDIRECT(). С другой стороны, я также пытался инкапсулировать его в функцию суммирования, например SUM(ROW()), и это тоже работает.

Я был бы признателен, если бы кто-нибудь объяснил (или указал мне на ресурс, который может объяснить), почему ROW()возвращает массив внутри SUMPRODUCT()без ввода CSE .

8
задан playercharlie 20 June 2012 в 16:40
поделиться