Indirettamente Riferimento a una cella di un foglio di lavoro diverso

Michael ha un foglio di lavoro che ha i nomi dei mesi (gennaio, febbraio, etc.) nella colonna A. Nella colonna B vuole tirare un valore da cella B11 di qualsiasi foglio di lavoro nella colonna A. Quindi, se la colonna A contiene il mese " marzo "nella cella immediatamente a destra marzo (colonna B) vuole estrarre il valore a marzo! B11. Michael è convinto che la funzione indiretto dovrebbe aiutare con questo, ma non può farlo funzionare.

La buona notizia è che Michael è corretto, è possibile utilizzare la funzione indiretto per fare questo. L'utilizzo di base della funzione è simile al seguente:

= INDIRETTO (A1 & "! B11")

È possibile creare una versione più "robusta" della formula racchiudendo all'interno di una funzione che controlla gli errori. Se c'è un errore, allora la frase "No Data" viene visualizzato nella cella:

= IFERROR (INDIRECT (A1 & "! B11"), "No Data")

Questi approcci utilizzano tutto ciò che è nella cella A1 direttamente, che funziona a condizione che il valore in A1 è un testo e una sola parola. Se ci potrebbe essere una seconda parola in A1 (come "Production Luglio"), allora avete bisogno di modificare la formula un po 'in modo che comprenda apostrofi intorno tutto ciò che è in cella A11:

= IFERROR (INDIRECT ("'" & A1 & "'! B11"), "No Data")

Poiché gli apostrofi sono usati per racchiudere un nome del foglio di lavoro, non si può avere qualsiasi testo in A1 cella che include apostrofi. Quindi, "Produzione luglio" nella cella A1 funzionerà bene (a patto di avere un foglio di lavoro denominato "Production luglio"), ma "La produzione di luglio" non funziona a causa del apostrofo.

Inoltre, se tutto ciò che è nella cella A1 può avere sia spazi iniziali o finali su di esso, allora avrete bisogno di liberarsi di quegli spazi. Il modo più semplice per compensare è quello di utilizzare la funzione TRIM:

= IFERROR (INDIRECT ("'" & TRIM (A1) e "'! B11"), "No Data")

Tutte le variazioni presentate finora funzionano bene se il valore in A1 è una stringa effettiva. Essi non funzionano se il valore in A1 è una data effettiva, formattata per assomigliare ad un nome di un mese. Le date vengono memorizzate internamente come numeri, e con una delle formule discusse finora cercherà di aggiungere il numero di serie data il riferimento di cella, che genera un errore. Invece, è necessario utilizzare la funzione TESTO per convertire la data in A1 a nome di un mese:

= IFERROR (INDIRETTO (TEXT (A1, "mmmm") & "! B11"), "No Data")

Se vi aspettate altre persone ad entrare nomi dei mesi nella cella A1, allora si farebbe bene a fare quella voce così infallibile come possibile. Il modo migliore per farlo è quello di utilizzare la convalida dei dati per limitare ciò che può essere immesso nella cella A1. (Come si utilizzano dati di convalida è stato coperto in altre questioni di ExcelTips.)

ExcelTips è la vostra fonte per la formazione Microsoft Excel conveniente. Questo suggerimento (12701) si applica a Microsoft Excel 2007, 2010, e 2013.