Ritorna un array usando in Excel Utilizzando INDICE funzione
Per qualsiasi motivo, se vuoi fare qualche operazione su un intervallo con indici particolari, penserai di usare la funzione INDICE per ottenere array di valori su indici specifici. Come questo.
Comprendiamolo con un esempio.
Qui ho una colonna Tasso. Voglio sommare i valori alla posizione 1,3 e 5.
Scrivo questa formula in C2.
=SUM(INDEX(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 SOMMA restituisce la somma di un solo valore.
Quindi come facciamo a ottenere che la funzione INDICE restituisca quell’array. Ebbene ho trovato questa soluzione su Internet e non capisco davvero come funzioni, ma funziona.
La formula generica per ottenere un array di indici
=SUM(INDEX(range,N(IF(1,{numbers})))
Intervallo: è l’intervallo in cui si desidera cercare un dato numero di indice. Numero: questi sono i numeri di indice.
Ora applichiamo la formula precedente al nostro esempio.
Scrivi questa formula in C2.
=SUM(INDEX(A2:A11,N(IF(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.
link: / tips-if-condition-in-excel [IF]
(1, \ {1,3,5}):
Questa parte restituisce l’array \ {1,3, 5} come previsto N (link: / tips-if-condition-in-excel [IF]
(1, \ {1,3,5}))
questo si traduce in N (\ {1,3,5}) che di nuovo ci fornisce \ {1,3,5} NOTA: la funzione N restituisce l’equivalente numerico di qualsiasi valore. Se un valore non è convertibile in numeri, restituisce 0 (come il testo). E per gli errori restituisce error.
link: / lookup-formas-excel-index-function [INDICE]
A2: A11, N (link: / tips-if-condition-in-excel [IF]
(1, \ {1,3 , 5}):
questa parte si traduce in link: / lookup-formas-excel-index-function [INDEX]
((A2: A11, \ {1,3,5})
e in qualche modo questo restituisce l’array \ {10,30,50}. Come hai visto prima scrivendo link: / lookup-formulas-excel-index-function [INDEX]
((A2: A11, \ { 1,3,5})
direttamente nella formula restituisce solo 10. Ma quando usiamo la funzione N e IF restituisce l’intero array. Se lo capisci fammelo sapere nella sezione commenti sotto.
Come usare 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 un intervallo che può cambiare. Sostituiamo \ {1,3,5} con intervallo? Proviamolo.
Qui abbiamo questa formula nella cella D2:
=SUM(INDEX(A2:A11,N(IF(1,A2:A5)))
Questo restituisce 10. Il primo valore dell’indice dato. Anche se e inseriscilo come una formula di matrice usando CTRL + MAIUSC + INVIO, fornisce lo stesso risultato.
Per farlo funzionare aggiungi l’operatore + o – (doppio unario) prima dell’intervallo e inseriscilo come formula di matrice.
{=SUM(INDEX(A2:A11,N(IF(1,+A2:A5)))}
Funziona. Non chiedermi come? Funziona e basta. Se puoi dirmi come includerò il tuo nome e la spiegazione qui.
Quindi abbiamo imparato come ottenere un array dalla funzione INDICE. Ci sono cose pazze che succedono qui in Excel. Se puoi spiegare come funziona qui nella sezione commenti qui sotto, lo includerò nella mia spiegazione con il tuo nome.