Michael ha un foglio di lavoro con i nomi dei mesi (gennaio, febbraio, ecc.)

nella colonna A. Nella colonna B vuole estrarre un valore dalla cella B11 di qualunque foglio di lavoro sia specificato nella colonna A. Pertanto, se la colonna A contiene il mese “marzo”, nella cella appena a destra di marzo (nella colonna B )

vuole aumentare il valore a marzo! B11. Michael crede che la funzione INDIRETTO dovrebbe aiutare in questo, ma non riesce a farlo funzionare.

La buona notizia è che Michael ha ragione: puoi usare la funzione INDIRETTO per farlo. L’utilizzo di base della funzione è simile a questo:

=INDIRECT(A1&"!B11")

È possibile creare una versione più “robusta” della formula racchiudendola in una funzione che verifica la presenza di errori. In caso di errore, nella cella viene visualizzata la frase “Nessun dato”:

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

Questi approcci utilizzano direttamente tutto ciò che si trova nella cella A1, il che funziona a condizione che il valore in A1 sia testo e una singola parola. Se potrebbe esserci una seconda parola in A1 (come “Produzione di luglio”), è necessario modificare un po ‘la formula in modo che includa apostrofi intorno a tutto ciò che è nella cella A11:

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

Poiché gli apostrofi vengono utilizzati per racchiudere un nome di foglio di lavoro, non è possibile avere testo nella cella A1 che include apostrofi. Quindi, “Produzione di luglio” nella cella A1 funzionerà correttamente (a condizione che si disponga di un foglio di lavoro denominato “Produzione di luglio”), ma “Produzione di luglio” non funzionerà a causa dell’apostrofo.

Inoltre, se qualunque cosa si trovi nella cella A1 può contenere spazi iniziali o finali, dovrai sbarazzarti di quegli spazi. Il modo più semplice per compensare è usare la funzione TRIM:

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

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

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

Se ti aspetti che altre persone inseriscano i nomi dei mesi nella cella A1, ti consigliamo di rendere tale voce il più infallibile possibile. Il modo migliore per farlo è utilizzare la convalida dei dati per limitare ciò che può essere inserito nella cella A1. (Il modo in cui utilizzi la convalida dei dati è stato trattato in altri numeri di ExcelTips.)

ExcelTips è la tua fonte di formazione economica su Microsoft Excel.

Questo suggerimento (12701) si applica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 e Excel in Office 365.