Formula di Excel: incrementa il riferimento di cella con INDIRETTO -

Formula generica

=INDIRECT(sheet&"!"&CELL("address",A1))

Sommario

Per incrementare un riferimento creato come testo all'interno della funzione INDIRETTO, è possibile utilizzare la funzione CELLA. Nell'esempio mostrato, la formula in D5 è:

=INDIRECT($B$5&"!"&CELL("address",A1))

Che aumenta man mano che la formula viene copiata.

Spiegazione

Considera un semplice riferimento dinamico a Sheet2 utilizzando INDIRETTO in una formula come questa:

=INDIRECT($B$5&"!"&"A1"))

Se cambiamo il nome del foglio in B5 con un altro nome (valido), INDIRETTO restituirà un riferimento ad A1 nel nuovo foglio.

Tuttavia, se copiamo questa formula nella colonna, il riferimento ad A1 non cambierà, perché "A1" è codificato come testo.

Per risolvere questo problema, utilizziamo la funzione CELL per generare un riferimento di testo da un normale riferimento di cella:

CELL("address",A1)

Con "address" come primo argomento e A1 come secondo argomento, la funzione CELL restituisce una stringa come "$ A $ 1". Poiché A1 è un riferimento di cella normale, aumenterà normalmente man mano che la formula viene copiata nella colonna. Il risultato in D5: D9 è una serie di formule come questa:

=INDIRECT("Sheet2!$A$1") =INDIRECT("Sheet2!$A$2") =INDIRECT("Sheet2!$A$3") =INDIRECT("Sheet2!$A$4") =INDIRECT("Sheet2!$A$5")

In ogni caso, INDIRETTO risolve ogni stringa di testo in un riferimento ed Excel restituisce il valore nella cella specificata in Sheet2.

Nota: sia INDIRETTO che CELLA sono funzioni volatili e vengono ricalcolate ad ogni modifica del foglio di lavoro. Ciò può causare problemi di prestazioni in fogli di lavoro più complessi.

Articoli interessanti...