Funkcja ROW () zachowuje się inaczej w SUM () i SUMPRODUCT ()

Definicja problemu:

Wprowadź dowolną liczbę w komórceA1. Teraz spróbuj następujących formuł w dowolnym pierwszym rzędzie.

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

i

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

Pierwsza formuła się sprawdza, druga daje błąd #WARTOŚĆ. Jest to spowodowane przezROW() funkcja zachowuje się inaczej w środkuSUMPRODUCT().

W pierwszej formuleROW() zwraca1. W drugiej formule wiersz powraca{1} (tablica o jednej długości), mimo że formuła nie została wprowadzona jako formuła CSE.

Dlaczego to się dzieje?

tło

Muszę ocenić formułę tego typu

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

To powoduje błąd. Jako obejście tego problemu teraz obliczamROW() w innej komórce (oczywiście w tym samym rzędzie) i połącz to w moimINDIRECT(). Alternatywnie, próbowałem także enkapsulować go wewnątrz funkcji sumy, jakSUM(ROW())i to również działa.

Byłbym wdzięczny, gdyby ktoś mógł wyjaśnić (lub wskazać mi źródło, które może wyjaśnić) dlaczegoROW() zwraca tablicę wewnątrzSUMPRODUCT() bez wpisania CSE.