Funzione INDIRETTO di Excel: usi di base ed esempi di formule

  • Condividi Questo
Michael Brown

Questa esercitazione di Excel su INDIRETTO spiega la sintassi della funzione, gli usi di base e fornisce una serie di esempi di formule che dimostrano come utilizzare INDIRETTO in Excel.

In Microsoft Excel esistono moltissime funzioni, alcune di facile comprensione, altre che richiedono una lunga curva di apprendimento e le prime vengono utilizzate più spesso delle seconde. Eppure, Excel INDIRETTO è una di queste. Questa funzione di Excel non esegue alcun calcolo, né valuta alcuna condizione o test logico.

Allora, che cos'è la funzione INDIRETTO in Excel e a che cosa serve? È un'ottima domanda e speriamo che la risposta sia esauriente tra qualche minuto, quando avrete finito di leggere questa guida.

    Funzione INDIRETTO di Excel: sintassi e usi di base

    Come suggerisce il nome, la funzione INDIRETTO di Excel è utilizzata per fare riferimento indiretto a celle, intervalli, altri fogli o cartelle di lavoro. In altre parole, la funzione INDIRETTO consente di creare un riferimento dinamico a celle o intervalli invece di codificarli in modo rigido. Di conseguenza, è possibile modificare un riferimento all'interno di una formula senza modificare la formula stessa. Inoltre, questi riferimenti indiretti non cambiano quando vengono aggiunte nuove righe o colonne.vengono inseriti nel foglio di lavoro o quando si eliminano quelli esistenti.

    Tutto questo può essere più facile da capire con un esempio. Tuttavia, per poter scrivere una formula, anche la più semplice, è necessario conoscere gli argomenti della funzione, giusto? Quindi, diamo prima una rapida occhiata alla sintassi INDIRETTA di Excel.

    Sintassi della funzione INDIRETTO

    La funzione INDIRETTO di Excel restituisce un riferimento di cella da una stringa di testo. Ha due argomenti, il primo obbligatorio e il secondo opzionale:

    INDIRETTO(testo_riferimento, [a1])

    testo di riferimento - è un riferimento a una cella, o un riferimento a una cella sotto forma di stringa di testo, o un intervallo di nomi.

    a1 - è un valore logico che specifica il tipo di riferimento contenuto nell'argomento ref_text:

    • Se VERO o omesso, ref_text viene interpretato come un riferimento di cella in stile A1.
    • Se FALSO, ref_text viene trattato come un riferimento R1C1.

    Anche se il tipo di riferimento R1C1 può essere utile in alcune situazioni, probabilmente la maggior parte delle volte vorrete utilizzare i familiari riferimenti A1. In ogni caso, quasi tutte le formule INDIRECT di questa esercitazione utilizzeranno riferimenti A1, quindi ometteremo il secondo argomento.

    Uso di base della funzione INDIRETTO

    Per entrare nel vivo della funzione, scriviamo una semplice formula che dimostri come si usa INDIRETTO in Excel.

    Supponiamo di avere il numero 3 nella cella A1 e il testo A1 nella cella C1. Ora, inserire la formula =INDIRETTO(C1) in qualsiasi altra cella e vedere cosa succede:

    • La funzione INDIRETTO si riferisce al valore della cella C1, che è A1.
    • La funzione viene indirizzata alla cella A1, dove sceglie il valore da restituire, che è il numero 3.

    Quindi, ciò che la funzione INDIRETTO fa in realtà in questo esempio è conversione di una stringa di testo in un riferimento di cella .

    Se pensate che questo abbia ancora poco senso pratico, abbiate pazienza e vi mostrerò altre formule che rivelano la vera potenza della funzione INDIRETTO di Excel.

    Come usare l'INDIRETTO in Excel - esempi di formule

    Come dimostrato nell'esempio precedente, è possibile utilizzare la funzione INDIRETTO di Excel per inserire l'indirizzo di una cella in un'altra come una normale stringa di testo e ottenere il valore della prima cella facendo riferimento alla seconda. Tuttavia, questo banale esempio non è altro che un accenno alle funzionalità di INDIRETTO.

    Quando si lavora con dati reali, la funzione INDIRETTO può trasformare qualsiasi stringa di testo in un riferimento, comprese stringhe molto complesse costruite utilizzando i valori di altre celle e i risultati restituiti da altre formule di Excel. Ma non mettiamo il carro davanti ai buoi ed esaminiamo diverse formule indirette di Excel, una alla volta.

    Creare riferimenti indiretti dai valori delle celle

    Come ricorderete, la funzione INDIRETTO di Excel consente di utilizzare gli stili di riferimento A1 e R1C1. Di solito, non è possibile utilizzare entrambi gli stili in un singolo foglio alla volta, ma è possibile passare da un tipo di riferimento all'altro solo tramite File> Opzioni> Formule > Casella di controllo R1C1 Questo è il motivo per cui gli utenti di Excel raramente considerano l'uso di R1C1 come approccio alternativo di referenziazione.

    In una formula INDIRETTA è possibile utilizzare entrambi i tipi di riferimento nello stesso foglio. Prima di proseguire, è opportuno conoscere la differenza tra gli stili di riferimento A1 e R1C1.

    Stile A1 è il tipo di riferimento abituale in Excel che si riferisce a una colonna seguita da un numero di riga. Ad esempio, B2 si riferisce alla cella all'intersezione della colonna B e della riga 2.

    Stile R1C1 è il tipo di riferimento opposto: righe seguite da colonne, il che richiede un po' di tempo per abituarsi : ) Ad esempio, R4C1 si riferisce alla cella A4 che si trova nella riga 4, colonna 1 di un foglio. Se non c'è alcun numero dopo la lettera, allora ci si riferisce alla stessa riga o colonna.

    Vediamo ora come la funzione INDIRECT gestisce i riferimenti A1 e R1C1:

    Come si vede nella schermata qui sopra, tre diverse formule indirette restituiscono lo stesso risultato. Avete già capito perché? Scommetto di sì : )

    • Formula nella cella D1: =INDIRETTO(C1)

    Questa è la più semplice: la formula si riferisce alla cella C1, recupera il suo valore - la stringa di testo A2 , lo converte in un riferimento di cella, si dirige verso la cella A2 e ne restituisce il valore, che è 222.

    • Formula nella cella D3: =INDIRETTO(C3,FALSO)

    FALSO nel secondo argomento indica che il valore di riferimento (C3) deve essere trattato come un riferimento alla cella R1C1, cioè un numero di riga seguito da un numero di colonna. Pertanto, la nostra formula INDIRETTO interpreta il valore della cella C3 (R2C1) come un riferimento alla cella che si trova alla congiunzione della riga 2 e della colonna 1, cioè la cella A2.

    Creazione di riferimenti indiretti da valori di celle e testo

    In modo simile a come abbiamo creato i riferimenti dai valori delle celle, è possibile combinare un elemento stringa di testo e un riferimento alla cella all'interno della formula INDIRETTO, legata insieme all'operatore di concatenazione (&).

    Nell'esempio seguente, la formula: =INDIRETTO("B"&C2) restituisce un valore dalla cella B2 in base alla seguente catena logica:

    La funzione INDIRETTO concatena gli elementi nell'argomento ref_text - testo B e il valore nella cella C2 -> il valore nella cella C2 è il numero 2, che fa riferimento alla cella B2 -> la formula va alla cella B2 e restituisce il suo valore, che è il numero 10.

    Utilizzo della funzione INDIRETTO con intervalli denominati

    Oltre a fare riferimenti a valori di celle e di testo, è possibile utilizzare la funzione INDIRETTO di Excel per fare riferimento a intervalli denominati .

    Si supponga che nel foglio siano presenti i seguenti intervalli denominati:

    • Mele - B2:B6
    • Banane - C2:C6
    • Limoni - D2:D6

    Per creare un riferimento dinamico di Excel a uno degli intervalli sopra citati, è sufficiente inserire il suo nome in una cella, ad esempio G1, e fare riferimento a quella cella con una formula indiretta. =INDIRETTO(G1) .

    Ora potete fare un ulteriore passo avanti e inserire questa formula INDIRETTO in altre funzioni di Excel per calcolare la somma e la media dei valori in un determinato intervallo, oppure trovare il valore massimo e minimo all'interno dell'intervallo:

    • =SOMMA(INDIRETTA(G1))
    • =MEDIA(INDIRETTA(G1))
    • =MAX(INDIRETTO(G1))
    • =MIN(INDIRETTO(G1))

    Ora che avete un'idea generale di come utilizzare la funzione INDIRETTO in Excel, possiamo sperimentare formule più potenti.

    Formula INDIRETTA per fare riferimento dinamicamente a un altro foglio di lavoro

    L'utilità della funzione INDIRETTO di Excel non si limita alla creazione di riferimenti di cella "dinamici", ma può essere utilizzata anche per fare riferimento "al volo" a celle di altri fogli di lavoro.

    Supponiamo di avere alcuni dati importanti nel Foglio 1 e di volerli estrarre nel Foglio 2. La seguente schermata mostra come una formula indiretta di Excel può gestire questo compito:

    Scomponiamo la formula che vedete nello screenshot per capire meglio.

    Come sapete, il modo abituale per fare riferimento a un altro foglio in Excel è scrivere il nome del foglio seguito dal punto esclamativo e da un riferimento alla cella o all'intervallo, come ad esempio NomeFoglio!Intervallo Poiché il nome di un foglio contiene spesso uno spazio, è meglio racchiuderlo (il nome, non lo spazio : ) tra virgolette singole per evitare un errore, ad esempio 'Il mio foglio!'$A$1 .

    Ora non resta che inserire il nome del foglio in una cella, l'indirizzo della cella in un'altra, concatenarli in una stringa di testo e inviarla alla funzione INDIRETTO. Ricordate che in una stringa di testo è necessario racchiudere ogni elemento diverso da un indirizzo o da un numero di cella tra doppi apici e collegare tutti gli elementi tra loro con l'operatore di concatenazione (&).

    Considerando quanto sopra, si ottiene il seguente schema:

    INDIRETTO("'" & Nome del foglio & "'!" & Cella da cui estrarre i dati )

    Tornando al nostro esempio, si inserisce il nome del foglio nella cella A1 e si digitano gli indirizzi delle celle nella colonna B, come mostrato nella schermata precedente. Il risultato è la seguente formula:

    INDIRETTO("'" & $A$1 & "'!" & B1)

    Inoltre, prestate attenzione al fatto che se state copiando la formula in più celle, dovete bloccare il riferimento al nome del foglio utilizzando i riferimenti assoluti delle celle, come $A$1.

    Note

    • Se una delle celle che contengono il nome e l'indirizzo della cella del secondo foglio (A1 e B1 nella formula precedente) è vuota, la formula indiretta restituirà un errore. Per evitare che ciò accada, potete avvolgere la funzione INDIRETTO nella funzione IF:

      IF(OR($A$1="",B1=""), "", INDIRECT("'" & $A$1 & "'!" & B1))

    • Affinché la formula INDIRETTO che fa riferimento a un altro foglio funzioni correttamente, il foglio a cui fa riferimento deve essere aperto, altrimenti la formula restituirà un errore #REF. Per evitare l'errore, potete utilizzare la funzione IFERROR, che visualizzerà una stringa vuota, qualunque sia l'errore:

      IFERROR(INDIRECT("'" & $A$1 & "'!" &B1), "")

    Creazione di un riferimento dinamico di Excel a un'altra cartella di lavoro

    La formula indiretta che fa riferimento a un'altra cartella di lavoro di Excel si basa sullo stesso approccio di un riferimento a un altro foglio di lavoro. È sufficiente specificare il nome della cartella di lavoro oltre al nome del foglio e all'indirizzo della cella.

    Per semplificare le cose, cominciamo con il fare un riferimento a un altro libro nel modo consueto (gli apostrofi vengono aggiunti nel caso in cui i nomi dei libri e/o dei fogli contengano spazi):

    '[Nome_libro.xlsx]Nome_foglio'!Intervallo

    Supponendo che il nome del libro sia nella cella A2, il nome del foglio sia in B2 e l'indirizzo della cella sia in C2, si ottiene la seguente formula:

    =INDIRETTO("'[" & $A$2 & "]" & $B$2 & "'!" & C2)

    Poiché non si vuole che le celle contenenti i nomi del libro e del foglio cambino quando si copia la formula in altre celle, le si blocca usando riferimenti assoluti alle celle, rispettivamente $A$2 e $B$2.

    Ora è possibile scrivere facilmente il proprio riferimento dinamico a un'altra cartella di lavoro di Excel utilizzando il seguente schema:

    =INDIRETTO("'[" & Nome del libro & "]" & Nome del foglio & "'!" & Indirizzo del cellulare )

    Nota: la cartella di lavoro a cui fa riferimento la formula deve essere sempre aperta, altrimenti la funzione INDIRETTO produrrà un errore #REF. Come al solito, la funzione IFERROR può aiutarvi a evitarlo:

    =IFERROR(INDIRECT("'[" & A2 & "]" & $A$1 & "'!" & B1), "")

    Utilizzo della funzione INDIRETTO di Excel per bloccare un riferimento di cella

    Normalmente, Microsoft Excel modifica i riferimenti di cella quando si inseriscono nuove righe o colonne o si eliminano quelle esistenti in un foglio. Per evitare che ciò accada, è possibile utilizzare la funzione INDIRETTO per lavorare con riferimenti di cella che dovrebbero rimanere intatti in ogni caso.

    Per illustrare la differenza, procedete come segue:

    1. Inserite un valore qualsiasi in una cella qualsiasi, ad esempio il numero 20 nella cella A1.
    2. Fare riferimento ad A1 da altre due celle in modi diversi: =A1 e =INDIRETTO("A1")
    3. Inserire una nuova riga sopra la riga 1.

    Vedete cosa succede? La cella con il pari a L'operatore logico restituisce ancora 20, perché la sua formula è stata modificata automaticamente in =A2. La cella con la formula INDIRETTO restituisce ora 0, perché la formula non è stata modificata con l'inserimento di una nuova riga e fa ancora riferimento alla cella A1, attualmente vuota:

    Dopo questa dimostrazione, potreste avere l'impressione che la funzione INDIRETTO sia più una seccatura che un aiuto. Bene, proviamo in un altro modo.

    Supponiamo di voler sommare i valori delle celle A2:A5, e possiamo farlo facilmente utilizzando la funzione SOMMA:

    =SOMMA(A2:A5)

    Tuttavia, si desidera che la formula rimanga invariata, indipendentemente dal numero di righe cancellate o inserite. La soluzione più ovvia - l'uso di riferimenti assoluti - non sarà d'aiuto. Per essere sicuri, inserire la formula =SOMMA($A$2:$A$5) in una cella, inserire una nuova riga, ad esempio alla riga 3, e... trovare la formula convertita in =SOMMA($A$2:$A$6) .

    Naturalmente, questo tipo di cortesia di Microsoft Excel funziona bene nella maggior parte dei casi. Tuttavia, ci possono essere scenari in cui non si vuole che la formula venga modificata automaticamente. La soluzione è usare la funzione INDIRETTO, come in questo caso:

    =SOMMA(INDIRETTA("A2:A5"))

    Poiché Excel percepisce "A1:A5" come una semplice stringa di testo e non come un riferimento a un intervallo, non apporterà alcuna modifica quando si inserisce o si elimina una o più righe.

    Utilizzo di INDIRETTO con altre funzioni di Excel

    Oltre alla SOMMA, l'INDIRETTO viene spesso utilizzato con altre funzioni di Excel come ROW, COLUMN, ADDRESS, VLOOKUP, SUMIF, per citarne alcune.

    Esempio 1. Funzioni INDIRECT e ROW

    Molto spesso, la funzione ROW viene utilizzata in Excel per restituire una serie di valori. Ad esempio, è possibile utilizzare la seguente formula di serie (che richiede la pressione di Ctrl + Maiusc + Invio) per restituire la media dei 3 numeri più piccoli nell'intervallo A1:A10:

    =MEDIA(SMALL(A1:A10,RIGA(1:3))

    Tuttavia, se si inserisce una nuova riga nel foglio di lavoro, in un punto qualsiasi tra le righe 1 e 3, l'intervallo della funzione ROW verrà modificato in ROW(1:4) e la formula restituirà la media dei 4 numeri più piccoli anziché 3.

    Per evitare che ciò accada, annidate INDIRETTO nella funzione Riga e la formula dell'array rimarrà sempre corretta, indipendentemente dal numero di righe inserite o eliminate:

    =MEDIA(SMALL(A1:A10,ROW(INDIRECT("1:3"))))

    Ecco un altro paio di esempi di utilizzo di INDIRETTO e RIGHE in combinazione con la funzione GRANDE: Come sommare gli N numeri più grandi di un intervallo.

    Esempio 2. Funzioni INDIRETTO e INDIRIZZO

    È possibile utilizzare l'INDIRETTO di Excel insieme alla funzione INDIRIZZO per ottenere al volo un valore in una determinata cella.

    Come si ricorderà, la funzione INDIRIZZO viene utilizzata in Excel per ottenere l'indirizzo di una cella in base ai numeri di riga e di colonna. Ad esempio, la formula =INDIRIZZO(1,3) restituisce la stringa $C$1, poiché C1 è la cella all'intersezione della prima riga e della terza colonna.

    Per creare un riferimento indiretto alla cella, è sufficiente incorporare la funzione INDIRIZZO in una formula INDIRETTO come questa:

    =INDIRETTO(INDIRIZZO(1,3))

    Naturalmente, questa formula banale serve solo a dimostrare la tecnica. Ecco alcuni esempi che possono rivelarsi davvero utili:

    • Formula INDIRIZZO INDIRETTO - come cambiare riga e colonna.
    • VLOOKUP e INDIRECT: come estrarre dinamicamente i dati da diversi fogli.
    • INDIRETTO con INDEX / MATCH: come portare alla perfezione una formula VLOOKUP sensibile alle maiuscole e minuscole.
    • Excel INDIRETTO e COUNTIF - come utilizzare la funzione COUNTIF su un intervallo non contiguo o su una selezione di celle.

    Utilizzo di INDIRETTO con la convalida dei dati in Excel

    È possibile utilizzare la funzione INDIRETTO di Excel con la convalida dei dati per creare elenchi a discesa a cascata che visualizzano scelte diverse a seconda del valore selezionato dall'utente nel primo elenco a discesa.

    Un semplice elenco a discesa dipendente è davvero facile da realizzare. Tutto ciò che serve sono alcuni intervalli di nomi per memorizzare gli elementi del menu a tendina e un semplice =INDIRETTO(A2) dove A2 è la cella che visualizza il primo elenco a discesa.

    Per creare menu a 3 livelli o menu a tendina più complessi con voci a più parole, è necessaria una formula INDIRETTO un po' più complessa con una funzione SUBSTITUTE annidata.

    Per una guida dettagliata, passo dopo passo, su come utilizzare INDIRETTO con la convalida dei dati di Excel, consultate questa esercitazione: Come creare un elenco a discesa dipendente in Excel.

    Funzione INDIRETTO di Excel - possibili errori e problemi

    Come dimostrato negli esempi precedenti, la funzione INDIRETTO è molto utile quando si tratta di riferimenti a celle e intervalli. Tuttavia, non tutti gli utenti di Excel la accolgono con entusiasmo, soprattutto perché l'uso estensivo di INDIRETTO nelle formule di Excel comporta una mancanza di trasparenza. La funzione INDIRETTO è difficile da controllare perché la cella a cui fa riferimento non è la posizione finale del valore utilizzato nella formula,che è piuttosto confuso, soprattutto quando si lavora con formule complesse.

    Oltre a quanto detto sopra, come qualsiasi altra funzione di Excel, INDIRETTO può generare un errore se si utilizzano in modo errato gli argomenti della funzione. Ecco un elenco degli errori più tipici:

    Errore di Excel INDIRETTO #REF!

    Molto spesso, la funzione INDIRECT restituisce un errore #REF! in tre casi:

    1. ref_text non è un riferimento di cella valido Se il parametro ref_text nella formula Indirect non è un riferimento di cella valido, la formula produrrà il valore di errore #REF! Per evitare possibili problemi, controllare gli argomenti della funzione INDIRECT.
    2. Il limite di portata è superato Se l'argomento ref_text della formula Indirect fa riferimento a un intervallo di celle che supera il limite di riga di 1.048.576 o il limite di colonna di 16.384, si otterrà l'errore #REF anche in Excel 2007, 2010 e Excel 2013. Le versioni precedenti di Excel ignorano il limite superato e restituiscono un valore, anche se spesso non quello atteso.
    3. Il foglio o la cartella di lavoro a cui si fa riferimento è chiuso. Se la formula Indirect fa riferimento a un'altra cartella di lavoro o foglio di lavoro di Excel, quest'ultima deve essere aperta, altrimenti INDIRECT restituisce l'errore #REF!

    Errore di Excel #NOME INDIRETTO?

    Questo è il caso più ovvio, che implica un errore nel nome della funzione, il che ci porta al punto successivo : )

    Utilizzo della funzione INDIRETTO in lingue diverse dall'inglese

    Forse vi interesserà sapere che il nome inglese della funzione INDIRECT è stato tradotto in 14 lingue, tra cui:

    • Danese - INDIREKTE
    • Finlandese - EPÄSUORA
    • Tedesco - INDIREKT
    • Ungherese - INDIREKT
    • Italiano - INDIRETTO
    • Norvegese - INDIREKTE
    • Polacco - ADR.POŚR
    • Spagnolo - INDIRETTO
    • Svedese - INDIREKT
    • Turco - DOLAYLI

    Se siete interessati ad avere l'elenco completo, consultate questa pagina.

    Un problema comune con le localizzazioni non inglesi non è il nome della funzione INDIRECT, ma piuttosto le differenti Impostazioni regionali per il Separatore di elenchi Nella configurazione standard di Windows per l'America del Nord e alcuni altri paesi, l'impostazione predefinita è Separatore di elenchi Mentre nei paesi europei la virgola è riservata come il simbolo di Simbolo decimale e il Separatore di elenchi è impostato sul punto e virgola.

    Di conseguenza, quando si copia una formula tra due diversi ambienti di Excel, è possibile che venga visualizzato il messaggio di errore " Abbiamo riscontrato un problema con questa formula... " perché il Separatore dell'elenco Se si verifica questo errore quando si copia una formula INDIRETTA da questa esercitazione in Excel, è sufficiente sostituire tutte le virgole (,) con punti e virgola (;) per risolvere il problema.

    Per verificare quali sono i separatori di lista e i simboli decimali impostati sul computer, aprire la finestra di dialogo Pannello di controllo e andare a Regione e lingua> Impostazioni aggiuntive .

    Ora che conoscete i suoi punti di forza e i suoi limiti, è giunto il momento di provare e vedere come la funzione INDIRETTO può semplificare le vostre attività in Excel. Grazie per aver letto!

    Michael Brown è un appassionato di tecnologia dedicato con una passione per la semplificazione di processi complessi utilizzando strumenti software. Con oltre un decennio di esperienza nel settore tecnologico, ha affinato le sue competenze in Microsoft Excel e Outlook, nonché in Fogli Google e Documenti. Il blog di Michael è dedicato alla condivisione delle sue conoscenze e competenze con gli altri, fornendo suggerimenti e tutorial facili da seguire per migliorare la produttività e l'efficienza. Che tu sia un professionista esperto o un principiante, il blog di Michael offre spunti preziosi e consigli pratici per ottenere il massimo da questi strumenti software essenziali.