Excel-kaava: Paluu taulukko INDEX-toiminnolla -

Sisällysluettelo

Yleinen kaava

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

Yhteenveto

Jos haluat saada INDEXin palauttamaan joukko kohteita toiselle toiminnolle, voit käyttää hämärää temppua, joka perustuu IF- ja N-funktioihin. Esitetyssä esimerkissä kaava kohdassa E5 on:

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

missä "data" on nimetty alue B5: B10.

Selitys

On yllättävän hankalaa saada INDEX palauttamaan useampi kuin yksi arvo toiselle toiminnolle. Havainnollistamiseksi seuraavaa kaavaa voidaan käyttää palauttamaan nimetyn alueen "data" kolme ensimmäistä kohdetta, kun ne syötetään monisoluisena matriisikaavana.

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

Tulokset voidaan nähdä alueella D10: F10, joka sisältää oikein arvot 10, 15 ja 20.

Jos kuitenkin kääritämme kaavan SUM-funktioon:

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

Lopputulos on 10, kun taas sen pitäisi olla 45, vaikka syötetään taulukon kaavana. Ongelmana on, että INDEX palauttaa vain ryhmän ensimmäisen osan SUM-funktioon. Jos haluat pakottaa INDEXin palauttamaan useita kohteita SUM: iin, voit kääri taulukon vakion N- ja IF-funktioihin seuraavasti:

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

joka palauttaa oikean tuloksen 45. Samoin tämä kaava:

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

palauttaa oikein 60, summan 10, 20 ja 30.

Tätä hämärää tekniikkaa kutsutaan joskus "poikkeamiseksi", koska se estää INDEXia käsittelemästä tuloksia soluviitteinä ja pudottamalla sitten kaikki matriisin ensimmäisen kohteen paitsi. Sen sijaan INDEX toimittaa koko joukon arvoja SUM: lle sisään. Jeff Weirillä on hyvä selitys täällä pinonsiirrossa.

Huomautus lukijoille: En ole varma, miksi tämä toimii. Jos pystyt antamaan selkeän selityksen, päivitän sen.

Mielenkiintoisia artikkeleita...