Restituire una matrice utilizzando in Excel utilizzando la funzione INDICE

Anonim

Per qualsiasi motivo, se vuoi fare qualche operazione su un intervallo con indici particolari, penserai di usare la funzione INDEX per ottenere array di valori su indici specifici. Come questo.

Capiamolo con un esempio.

Qui, ho una colonna Tariffa. Voglio sommare i valori alla posizione 1,3 e 5. Scrivo questa formula in C2.

=SOMMA(INDICE(A2:A11,{1,3,5}))

Sorprendentemente, la funzione INDICE non restituisce un array di valori quando forniamo un array come indici. Otteniamo solo il primo valore. E la funzione SUM restituisce la somma di un solo valore.

Quindi, come otteniamo che la funzione INDEX restituisca quell'array. Bene, ho trovato questa soluzione su internet e non capisco davvero come funziona, ma funziona.

La formula generica per ottenere un array di indici

=SOMMA(INDICE(intervallo,N(SE(1,{numeri})))

Gamma: È l'intervallo in cui si desidera cercare i numeri di indice dati
Numero: questi sono i numeri indice.
Ora applichiamo la formula sopra al nostro esempio.

Scrivi questa formula in C2.

=SOMMA(INDICE(A2:A11,N(SE(1,{1,3,5})))

E questo restituisce la risposta corretta come 90.

Come funziona.

Bene, come ho detto non so perché funziona e restituisce l'array di numeri ma ecco cosa succede.

IF(1,{1,3,5}): questa parte restituisce l'array {1,3, 5} come previsto

N(IF(1,{1,3,5})) questo si traduce in N({1,3,5}) che di nuovo ci dà {1,3,5}

NOTA: la funzione N restituisce il numero equivalente di qualsiasi valore. Se un valore non è convertibile in numero, restituisce 0 (come il testo). E per gli errori restituisce errore.

INDEX((A2:A11,N(IF(1,{1,3,5}))): questa parte si traduce in INDEX((A2:A11,{1,3,5}) e in qualche modo restituisce l'array { 10,30,50}.Come hai visto in precedenza quando scrivi INDEX((A2:A11,{1,3,5}) direttamente nella formula restituisce solo 10. Ma quando usiamo la funzione N e IF restituisce l'intero Se lo capisci, fammelo sapere nella sezione commenti qui sotto.

Come utilizzare i riferimenti di cella per i valori di indice per ottenere un array
Nell'esempio sopra, abbiamo codificato gli indici in funzione. Ma cosa succede se voglio averlo da una gamma che potrebbe cambiare. Sostituiamo {1,3,5} con range? Proviamolo.

Qui abbiamo questa formula nella cella D2:

=SOMMA(INDICE(A2:A11,N(SE(1,A2:A5)))

Questo restituisce 10. Il primo valore dell'indice dato. Anche se lo inseriamo come formula di matrice usando CTRL+MAIUSC+INVIO, dà lo stesso risultato.

Per farlo funzionare, aggiungi l'operatore + o -- (doppio unario) prima dell'intervallo e inseriscilo come formula di matrice.

{=SOMMA(INDICE(A2:A11,N(SE(1,+A2:A5)))}

Questo funziona. Non chiedermi come? Funziona e basta. Se puoi dirmi come includerò il tuo nome e la tua spiegazione qui.
Quindi abbiamo imparato come ottenere un array dalla funzione INDICE. Ci sono alcune cose pazze in corso qui in Excel. Se puoi spiegare come funziona qui nella sezione commenti qui sotto, lo includerò nella mia spiegazione con il tuo nome.
Download file:

Restituire una matrice utilizzando in Excel utilizzando la funzione INDICE

Articoli Correlati:

Matrici nella formula di Excel

Usa INDEX e MATCH per cercare il valore

Come utilizzare la funzione CERCA in Excel

Valore di ricerca con criteri multipli

Articoli popolari:

La funzione CERCA.VERT in Excel

CONTA.SE in Excel 2016

Come utilizzare la funzione SOMMA.SE in Excel