Dì niente.
La sintassi di INDIRECT() è semplice. Non credo ci sia altro da dire oltre a quanto riportato nel manuale di Microsoft Excel.
A INDIRECT() passi il riferimento a una cella che deve contenere a sua volta il riferimento a un'altra cella dalla quale leggere e mostrare il contenuto. Indirettamente, riferendoti alla prima cella, leggi il contenuto della seconda cella.
Questo è il funzionamento di base della funzione.
E' interessante invece la questione che hai mostrato sull'argomento della funzione, così come impostato da te. E' un gioco di parentesi, stringhe e concatenazione di valori. Un po' complicato da spiegare con il tuo esempio, considerando che in entrambi i fogli hai fatto riferimento alle stesse colonne D, A e alla stessa cella D4. Non faccio altro che ripetere D1, A4 e D4, anche se appartengono a fogli diversi.
Hai passato solo l'argomento obbligatorio, pertanto il riferimento a una cella deve essere di tipo A1, cioè una lettera e un numero (o un qualsiasi altro nome assegnato alla cella tramite la
casella nome).
Nel tuo caso stai passando il contenuto delle celle D1 e A4, combinandoli: "D4". Legge indirettamente il valore "D4" e restituisce il contenuto della cella D4. Lasciamo stare per il momento i fogli di riferimento.
Se passassi direttamente D4 troveresti un #RIF! perché in D4 non c'è il riferimento a nessun'altra cella. Se passassi invece "D4" otterresti 33 perché hai passato la stringa "D4" non D4, cioè il contenuto della cella D4. Se passassi A10 e in A10 hai B5, allora la funzione mostrerebbe il contenuto di B5. E' necessario creare il passaggio indiretto: leggere una stringa dalla prima cella o passare direttamente una stringa per mostrare il contenuto della seconda cella richiamata.
Vediamo come hai creato questi riferimenti, ricordando che la formula è scritta nello sheet1, pertanto i risultati saranno mostrati solo in esso. Inoltre i riferimenti puntano allo sheet1, salvo diversa dichiarazione esplicita.
Nel primo caso hai scritto:
- Codice: Seleziona tutto
Sheet2!D1&A4
Cosa significa? Concatena il contenuto di D1 dello sheet2 al contenuto di A4 dello sheet1. Hai formato "D4". Quale D4? Quello dello sheet1. La funzione mostrerà il valore 33.
Nel secondo caso hai scritto
- Codice: Seleziona tutto
"Sheet2"&"!"&D1&A4
Questo è diverso dal primo caso. Il risultato intermedio è
- Codice: Seleziona tutto
"Sheet2!D4"
D4 lo hai scritto con i dati di D1 e A4 dello sheet1 e il risultato finale (intermedio) è "Sheet2!D4", cioè la cella D4 dello sheet2. La funzione mostrerà nello sheet1 il valore 44.
Il contenuto della cella A4 dello sheet2 è irrilevante nel tuo caso perché non è letto da nessuna delle due funzioni.
Spero di non aver fatto confusione visto che ho elaborato i dati con il computer biologico
Ci saranno sicuramente altre possibilità. Qui mi sono limitato al tuo esempio.