Excel formula: Vrni matriko s funkcijo INDEX -

Kazalo

Splošna formula

=SUM(INDEX(range,N(IF(1,(1,2,3)))))

Povzetek

Če želite, da INDEX vrne niz elementov drugi funkciji, lahko uporabite nejasen trik, ki temelji na funkcijah IF in N. V prikazanem primeru je formula v E5:

=SUM(INDEX(data,N(IF(1,(1,2,3)))))

kjer je "podatki" imenovano območje B5: B10.

Pojasnilo

Presenetljivo zapleteno je, če INDEX vrne več kot eno vrednost drugi funkciji. Za ponazoritev lahko z naslednjo formulo vrnemo prve tri postavke v imenovanem obsegu "podatki", če jih vnesemo kot formulo matrike z več celicami.

(=INDEX(data,(1,2,3)))

Rezultati so vidni v območju D10: F10, ki pravilno vsebuje 10, 15 in 20.

Če pa formulo zavijemo v funkcijo SUM:

=SUM(INDEX(data,(1,2,3)))

Končni rezultat je 10, medtem ko bi moral biti 45, tudi če je vnesen kot matrična formula. Težava je v tem, da funkcija INDEX vrne samo prvi element v matriki funkciji SUM. Če želite prisiliti INDEX, da vrne več elementov v SUM, lahko konstanto matrike zavijete v funkcije N in IF, kot je ta:

=SUM(INDEX(data,N(IF(1,(1,2,3)))))

ki vrne pravilen rezultat 45. Podobno je ta formula:

=SUM(INDEX(data,N(IF(1,(1,3,5)))))

pravilno vrne 60, vsoto 10, 20 in 30.

Ta nejasna tehnika se včasih imenuje "razporejanje referenc", ker preprečuje, da bi INDEX obdeloval rezultate kot sklice na celice in nato spuščal vse elemente, razen prvega v matriki. Namesto tega INDEX dostavi celotno paleto vrednosti za SUM in. Jeff Weir ima dobro razlago tukaj o stackoverflow.

Opomba bralcem: Nisem natančno prepričan, zakaj to deluje. Če lahko navedete jasno razlago, bom dopolnil, da bo vključen.

Zanimive Članki...