Exceli valem: tagastab massiivi funktsiooniga INDEX -

Lang L: none (table-of-contents)

Üldine valem

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

Kokkuvõte

Kui soovite, et INDEX tagastaks üksuste massiivi teisele funktsioonile, võite kasutada funktsiooni IF ja N põhjal varjatud trikki. Näidatud näites on valem E5-s järgmine:

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

kus "andmed" on nimega vahemik B5: B10.

Selgitus

Üllatavalt keeruline on panna INDEX tagastama rohkem kui üks väärtus teisele funktsioonile. Illustreerimiseks saab järgmise valemi abil nimetada vahemikku "andmed" esimesed kolm üksust, kui need sisestatakse mitme lahtriga massiivi valemina.

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

Tulemusi võib näha vahemikus D10: F10, mis sisaldab õigesti 10, 15 ja 20.

Kui aga pakume valemi funktsiooni SUM:

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

Lõpptulemus on 10, samas kui see peaks olema 45, isegi kui see sisestatakse massiivivalemina. Probleem on selles, et INDEX tagastab massiivi esimese funktsiooni ainult funktsioonile SUM. Kui soovite sundida INDEX-i tagastama mitu üksust summale SUM, saate massiivi konstandi funktsioone N ja IF mähkida järgmiselt:

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

mis tagastab õige tulemuse 45. Sarnaselt on see valem:

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

tagastab õigesti 60, summa 10, 20 ja 30.

Seda ebaselget tehnikat nimetatakse mõnikord "hülgamiseks", kuna see takistab INDEXil tulemuste käsitlemist lahtriviidetena ja seejärel massiivi kõigi elementide, välja arvatud esimese, kukutamist. Selle asemel esitab INDEX SUM-ile täieliku väärtuste massiivi. Jeff Weiril on virnavoolul hea seletus.

Märkus lugejatele: ma pole kindel, miks see täpselt töötab. Kui saate anda selge selgituse, värskendan selle kaasamiseks.

Huvitavad Artiklid...