Sommario
In questa esercitazione troverete una serie di esempi di formule che dimostrano l'uso più efficiente di INDEX in Excel.
Tra tutte le funzioni di Excel la cui potenza è spesso sottovalutata e sottoutilizzata, INDEX è sicuramente tra le prime 10. Nel frattempo, questa funzione è intelligente, duttile e versatile.
In sostanza, una formula INDEX restituisce un riferimento a una cella all'interno di una determinata matrice o intervallo. In altre parole, si utilizza INDEX quando si conosce (o si può calcolare) la posizione di un elemento in un intervallo e si desidera ottenere il valore effettivo di quell'elemento.
Questo può sembrare un po' banale, ma una volta compreso il reale potenziale della funzione INDICE, potrebbe apportare cambiamenti cruciali al modo in cui calcolate, analizzate e presentate i dati nei vostri fogli di lavoro.
Funzione INDICE di Excel - sintassi e usi di base
In Excel esistono due versioni della funzione INDICE: la forma matrice e la forma riferimento. Entrambe le forme possono essere utilizzate in tutte le versioni di Microsoft Excel 365 - 2003.
Forma dell'array INDEX
Il modulo matrice INDEX restituisce il valore di un determinato elemento di un intervallo o di una matrice in base ai numeri di riga e di colonna specificati.
INDICE(array, riga_num, [colonna_num])- array - è un intervallo di celle, un intervallo di nomi o una tabella.
- numero_riga - è il numero di riga dell'array da cui restituire un valore. Se il numero_di_riga è omesso, è necessario il numero_di_colonna.
- numero_colonna - è il numero della colonna da cui restituire un valore. Se column_num è omesso, è necessario row_num.
Ad esempio, la formula =INDICE(A1:D6, 4, 3)
restituisce il valore all'intersezione della quarta riga e della terza colonna dell'intervallo A1:D6, ovvero il valore della cella C4.
Per avere un'idea di come funziona la formula INDEX su dati reali, date un'occhiata al seguente esempio:
Invece di inserire i numeri di riga e colonna nella formula, è possibile fornire i riferimenti alle celle per ottenere una formula più universale: =INDICE($B$2:$D$6, G2, G1)
Quindi, questa formula INDICE restituisce il numero di articoli esattamente all'intersezione tra il numero di prodotto specificato in G2 (numero_riga) e il numero di settimana inserito nella cella G1 (numero_colonna).
Suggerimento: l'uso di riferimenti assoluti ($B$2:$D$6) anziché relativi (B2:D6) nell'argomento della matrice facilita la copia della formula in altre celle. In alternativa, è possibile convertire un intervallo in una tabella ( Ctrl + T ) e farvi riferimento con il nome della tabella.
Modulo array INDEX: cose da ricordare
- Se l'argomento della matrice è costituito da una sola riga o colonna, è possibile specificare o meno l'argomento corrispondente row_num o column_num.
- Se l'argomento matrice include più di una riga e il numero_di_riga è omesso o impostato a 0, la funzione INDEX restituisce una matrice dell'intera colonna. Analogamente, se la matrice include più di una colonna e l'argomento numero_di_colonna è omesso o impostato a 0, la formula INDEX restituisce l'intera riga. Ecco un esempio di formula che dimostra questo comportamento.
- Gli argomenti riga_num e colonna_num devono riferirsi a una cella della matrice; in caso contrario, la formula INDEX restituirà l'errore #REF!
Modulo di riferimento dell'INDICE
La forma di riferimento della funzione INDICE di Excel restituisce il riferimento alla cella all'intersezione della riga e della colonna specificate.
INDICE(riferimento, numero_riga, [numero_colonna], [numero_area] )- riferimento - è uno o più intervalli.
Se si inserisce più di un intervallo, separare gli intervalli da virgole e racchiudere l'argomento di riferimento tra parentesi, ad esempio (A1:B5, D1:F5).
Se ogni intervallo nel riferimento contiene solo una riga o una colonna, l'argomento corrispondente row_num o column_num è opzionale.
- numero_riga - il numero di riga dell'intervallo da cui restituire un riferimento di cella, è simile alla forma array.
- numero_colonna - il numero di colonna da cui restituire un riferimento di cella, funziona in modo simile alla forma array.
- area_num - un parametro opzionale che specifica quale intervallo utilizzare dall'argomento di riferimento. Se omesso, la formula INDEX restituirà il risultato per il primo intervallo elencato in riferimento.
Ad esempio, la formula =INDICE((A2:D3, A5:D7), 3, 4, 2)
restituisce il valore della cella D7, che si trova all'intersezione della terza riga e della quarta colonna della seconda area (A5:D7).
Modulo di riferimento INDEX - cose da ricordare
- Se l'argomento numero_riga o numero_colonna è impostato a zero (0), una formula INDEX restituisce il riferimento per l'intera colonna o riga, rispettivamente.
- Se sia riga_num che colonna_num sono omessi, la funzione INDEX restituisce l'area specificata nell'argomento area_num.
- Tutti gli argomenti _num (numero_riga, numero_colonna e numero_area) devono riferirsi a una cella all'interno del riferimento; in caso contrario, la formula INDEX restituirà l'errore #REF!
Entrambe le formule INDEX che abbiamo discusso finora sono molto semplici e servono solo a illustrare il concetto. È probabile che le vostre formule reali siano molto più complesse di queste, quindi esploriamo alcuni degli usi più efficienti di INDEX in Excel.
Come utilizzare la funzione INDICE in Excel - esempi di formule
Forse non ci sono molti usi pratici dell'INDICE di Excel da solo, ma in combinazione con altre funzioni come MATCH o COUNTA, può creare formule molto potenti.
Dati sorgente
Per tutte le formule INDEX (tranne l'ultima), utilizzeremo i dati riportati di seguito, organizzati per comodità in una tabella denominata Dati sorgente .
L'uso di tabelle o di intervalli di nomi può rendere le formule un po' più lunghe, ma le rende anche molto più flessibili e leggibili. Per modificare qualsiasi formula INDEX per i vostri fogli di lavoro, è sufficiente modificare un singolo nome e questo compensa completamente la maggiore lunghezza della formula.
Naturalmente, nulla impedisce di utilizzare intervalli usuali, se si vuole. In questo caso, è sufficiente sostituire il nome della tabella Dati sorgente con l'intervallo di riferimento appropriato.
1. Ottenere l'ennesimo elemento dell'elenco
Questo è l'uso di base della funzione INDEX e la formula più semplice da realizzare. Per recuperare un determinato elemento dall'elenco, basta scrivere =INDEX(intervallo, n)
dove gamma è un intervallo di celle o un intervallo denominato e n è la posizione dell'elemento che si vuole ottenere.
Quando si lavora con le tabelle di Excel, è possibile selezionare la colonna con il mouse ed Excel inserirà il nome della colonna insieme al nome della tabella nella formula:
Per ottenere il valore della cella all'intersezione di una determinata riga e colonna, si utilizza lo stesso approccio, con l'unica differenza che si specificano entrambi: il numero di riga e il numero di colonna. In realtà, avete già visto una formula di questo tipo in azione quando abbiamo parlato della forma array INDEX.
Ecco un altro esempio: nella nostra tabella di esempio, per trovare il secondo pianeta più grande del sistema solare, si ordina la tabella secondo il valore Diametro e utilizzare la seguente formula INDICE:
=INDEX(SourceData, 2, 3)
Array
è il nome della tabella o un riferimento all'intervallo, Dati sorgente in questo esempio.Numero_di_fila
è 2 perché si sta cercando il secondo elemento dell'elenco, che si trova nella 2a cartella.Numero_colonna
è 3 perché Diametro è la terza colonna della tabella.
Se si desidera restituire il nome del pianeta anziché il diametro, cambiare column_num con 1. Naturalmente, è possibile utilizzare un riferimento di cella negli argomenti row_num e/o column_num per rendere la formula più versatile, come dimostrato nella schermata seguente:
2. Ottenere tutti i valori in una riga o colonna
Oltre a recuperare una singola cella, la funzione INDEX è in grado di restituire una matrice di valori dal file intera riga o colonna Per ottenere tutti i valori di una determinata colonna, si deve omettere l'argomento row_num o impostarlo a 0. Allo stesso modo, per ottenere l'intera riga, si deve passare un valore vuoto o 0 in column_num.
Queste formule INDEX non possono essere utilizzate da sole, perché Excel non è in grado di inserire la serie di valori restituiti dalla formula in una singola cella e si otterrebbe l'errore #VALORE! Tuttavia, se si utilizza INDEX insieme ad altre funzioni, come SOMMA o MEDIA, si otterranno risultati straordinari.
Ad esempio, si può usare la seguente formula per calcolare la temperatura media dei pianeti del sistema solare:
=AVERAGE(INDEX(SourceData, , 4))
Nella formula sopra riportata, l'argomento column_num è 4 perché Temperatura nella quarta colonna della nostra tabella. Il parametro row_num è omesso.
In modo analogo, è possibile trovare le temperature minime e massime:
=MAX(INDEX(SourceData, , 4))
=MIN(INDEX(SourceData, , 4))
E calcolare la massa totale del pianeta (la massa è la seconda colonna della tabella):
=SOMMA(INDICE(Dati sorgente, , 2))
Dal punto di vista pratico, la funzione INDEX nella formula precedente è superflua. Si può semplicemente scrivere =VALUTA(intervallo)
o =SOMMA(intervallo)
e ottenere gli stessi risultati.
Quando si lavora con dati reali, questa funzione può rivelarsi utile come parte di formule più complesse utilizzate per l'analisi dei dati.
3. Utilizzo dell'INDICE con altre funzioni (SOMMA, MEDIA, MAX, MIN)
Dagli esempi precedenti, si potrebbe avere l'impressione che una formula INDEX restituisca dei valori, ma in realtà restituisce un valore riferimento alla cella contenente il valore. Questo esempio dimostra la vera natura della funzione INDICE di Excel.
Poiché il risultato di una formula INDEX è un riferimento, è possibile utilizzarlo all'interno di altre funzioni per creare un gamma dinamica La formula seguente chiarirà tutto.
Supponiamo di avere una formula =MEDIA(A1:A10)
che restituisce una media dei valori delle celle A1:A10. Invece di scrivere l'intervallo direttamente nella formula, è possibile sostituire A1 o A10, o entrambi, con le funzioni INDEX, in questo modo:
=MEDIA(A1 : INDICE(A1:A20,10))
Entrambe le formule di cui sopra daranno lo stesso risultato perché anche la funzione INDICE restituisce un riferimento alla cella A10 (il numero di riga è impostato su 10, il numero di colonna è omesso). La differenza è che l'intervallo della formula MEDIA / INDICE è dinamico e una volta modificato l'argomento numero di riga in INDICE, l'intervallo elaborato dalla funzione MEDIA cambierà e la formula restituirà un risultato diverso.
Il percorso della formula INDEX sembra apparentemente troppo complicato, ma ha applicazioni pratiche, come dimostrano gli esempi seguenti.
Esempio 1. Calcolo della media dei primi N elementi dell'elenco
Supponiamo di voler conoscere il diametro medio degli N pianeti più grandi del nostro sistema. Quindi, si ordina la tabella per Diametro colonna dal più grande al più piccolo e utilizzare la seguente formula media/indice:
=AVERAGE(C5 : INDEX(SourceData[Diameter], B1))
Esempio 2. Somma gli elementi tra i due elementi specificati
Se si desidera definire gli elementi upper-bound e lower-bound nella formula, è sufficiente utilizzare due funzioni INDEX per restituire il primo e l'ultimo elemento desiderato.
Ad esempio, la formula seguente restituisce la somma dei valori nella cartella Diametro tra i due elementi specificati nelle celle B1 e B2:
=SOMMA(INDICE(Dati sorgente[Diametro],B1) : INDICE(Dati sorgente[Diametro], B2))
4. Formula INDEX per creare intervalli dinamici ed elenchi a discesa.
Come spesso accade, quando si inizia a organizzare i dati in un foglio di lavoro, si può non sapere quante voci si avranno alla fine. Non è il caso della nostra tabella dei pianeti, che sembra essere completa, ma chissà...
In ogni caso, se si ha un numero variabile di elementi in una determinata colonna, ad esempio da A1 ad A n Si potrebbe voler creare un intervallo dinamico con nome che includa tutte le celle con dati e che si adatti automaticamente all'aggiunta di nuovi elementi o all'eliminazione di alcuni di quelli esistenti. Ad esempio, se attualmente sono presenti 10 elementi, l'intervallo con nome è A1:A10. Se si aggiunge una nuova voce, l'intervallo con nome si espande automaticamente a A1:A11, e se si cambia idea e si eliminano i dati appena aggiunti,l'intervallo torna automaticamente a A1:A10.
Il vantaggio principale di questo approccio è che non è necessario aggiornare costantemente tutte le formule della cartella di lavoro per assicurarsi che si riferiscano agli intervalli corretti.
Un modo per definire un intervallo dinamico è utilizzare la funzione OFFSET di Excel:
=OFFSET(Nome_Foglio!$A$1, 0, 0, COUNTA(Nome_Foglio!$A:$A), 1)
Un'altra soluzione possibile è quella di utilizzare Excel INDEX insieme a COUNTA:
=Nome_foglio!$A$1:INDICE(Nome_Foglio!$A:$A, COUNTA(Nome_Foglio!$A:$A))
In entrambe le formule, A1 è la cella contenente il primo elemento dell'elenco e l'intervallo dinamico prodotto da entrambe le formule sarà identico.
La differenza sta negli approcci: mentre la funzione OFFSET si sposta dal punto di partenza di un certo numero di righe e/o colonne, INDEX trova una cella all'intersezione di una particolare riga e colonna. La funzione COUNTA, utilizzata in entrambe le formule, ottiene il numero di celle non vuote nella colonna di interesse.
In questo esempio, ci sono 9 celle non vuote nella colonna A, quindi COUNTA ne restituisce 9. Di conseguenza, INDEX restituisce $A$9, che è l'ultima cella utilizzata nella colonna A (di solito INDEX restituisce un valore, ma in questa formula l'operatore di riferimento (:) lo costringe a restituire un riferimento). E poiché $A$1 è il nostro punto di partenza, il risultato finale della formula è l'intervallo $A$1:$A$9.
La seguente schermata dimostra come sia possibile utilizzare la formula Indice per creare un elenco a discesa dinamico.
Suggerimento: il modo più semplice per creare un elenco a discesa aggiornato dinamicamente è quello di creare un elenco con nome basato su una tabella. In questo caso non sono necessarie formule complesse, poiché le tabelle di Excel sono di per sé intervalli dinamici.
È inoltre possibile utilizzare la funzione INDICE per creare elenchi a discesa dipendenti e la seguente esercitazione spiega i passaggi: Creare un elenco a discesa a cascata in Excel.
5. Potenti Vlookup con INDEX / MATCH
Se avete mai provato a usare la funzione VLOOKUP di Excel, conoscete bene le sue numerose limitazioni, come l'impossibilità di estrarre i valori dalle colonne a sinistra della colonna di ricerca o il limite di 255 caratteri per un valore di ricerca.
Il collegamento INDEX / MATCH è superiore a VLOOKUP sotto molti aspetti:
- Nessun problema con le vlookup di sinistra.
- Nessun limite alla dimensione del valore di ricerca.
- Non è richiesto alcun ordinamento (VLOOKUP con corrispondenza approssimativa richiede l'ordinamento della colonna di ricerca in ordine crescente).
- È possibile inserire e rimuovere colonne in una tabella senza aggiornare tutte le formule associate.
- Infine, INDEX / MATCH non rallentano Excel come fanno più Vlookup.
Si utilizza INDEX / MATCH nel modo seguente:
=INDEX ( per restituire un valore da , (MATCH ( valore di ricerca , colonna da consultare , 0))Ad esempio, se si capovolge la tabella di origine in modo che Nome del pianeta diventa la colonna più a destra, la formula INDEX / MATCH recupera comunque un valore corrispondente dalla colonna di sinistra senza problemi.
Per ulteriori suggerimenti ed esempi di formule, consultare il tutorial Excel INDEX / MATCH.
6. Formula INDICE di Excel per ottenere 1 intervallo da un elenco di intervalli
Un altro uso intelligente e potente della funzione INDICE in Excel è la possibilità di ottenere un intervallo da un elenco di intervalli.
Supponiamo di avere diversi elenchi con un numero diverso di elementi in ciascuno di essi. Che ci crediate o no, potete calcolare la media o la somma dei valori in qualsiasi intervallo selezionato con una sola formula.
Per prima cosa, si crea un intervallo con nome per ogni elenco; che sia PianetiD e LuneD in questo esempio:
Spero che l'immagine qui sopra spieghi il ragionamento che sta dietro ai nomi degli intervalli : ) BTW, l'opzione Lune La tabella è ben lungi dall'essere completa, ci sono 176 lune naturali conosciute nel nostro Sistema Solare, solo Giove ne ha 63 attualmente, e non solo. Per questo esempio, ho scelto a caso 11, beh... forse non proprio a caso - lune con i nomi più belli : )
Scusate la digressione, ma torniamo alla nostra formula INDEX. Assumendo che PianetiD è l'intervallo 1 e LuneD è l'intervallo 2 e la cella B1 è quella in cui è stato inserito il numero dell'intervallo, è possibile utilizzare la seguente formula Indice per calcolare la media dei valori nell'intervallo selezionato:
=AVERAGE(INDEX((PlanetsD, MoonsD), , , B1))
Si noti che ora stiamo utilizzando la forma Reference della funzione INDEX e che il numero nell'ultimo argomento (area_num) indica alla formula quale intervallo scegliere.
Nella schermata sottostante, area_num (cella B1) è impostata a 2, quindi la formula calcola il diametro medio di Lune perché l'intervallo LuneD viene al secondo posto nell'argomento di riferimento.
Se si lavora con più elenchi e non ci si vuole preoccupare di ricordare i numeri associati, si può utilizzare una funzione IF annidata per farlo:
=AVERAGE(INDEX((PianetiD, LuneD), , , IF(B1="pianeti", 1, IF(B1="lune", 2))))
Nella funzione IF, si utilizzano alcuni nomi di elenchi semplici e facili da ricordare che gli utenti devono digitare nella cella B1 al posto dei numeri. Affinché la formula funzioni correttamente, il testo in B1 deve essere esattamente lo stesso (senza distinzione tra maiuscole e minuscole) dei parametri dell'IF, altrimenti la formula dell'indice darà l'errore #VALORE.
Per rendere la formula ancora più facile da usare, si può usare la Convalida dati per creare un elenco a discesa con nomi predefiniti per evitare errori di ortografia e di battitura:
Infine, per rendere la formula INDEX assolutamente perfetta, è possibile racchiuderla nella funzione IFERROR che chiederà all'utente di scegliere un elemento dall'elenco a discesa se non è ancora stata effettuata alcuna selezione:
=IFERROR(MEDIA(INDICE((PianetiD, LuneD), , , IF(B1="pianeta", 1, IF(B1="luna", 2)))), "Selezionare l'elenco!")
Ecco come si usano le formule INDEX in Excel. Spero che questi esempi vi abbiano mostrato un modo per sfruttare il potenziale della funzione INDEX nei vostri fogli di lavoro. Grazie per aver letto!