La risposta di Rey Juna spiega come farlo con una tabella di ricerca. Ecco un approccio alternativo per derivare gli indirizzi di riferimento senza una tabella di ricerca. La struttura generale della formula è simile. Gran parte di ciò è dettato dalla traduzione delle posizioni delle formule in riferimenti di cella (nota che le traduzioni delle posizioni nelle mie formule ora possono essere leggermente diverse da quelle di Rey perché la descrizione nella domanda è cambiata un po ').
- Desideri che la riga della formula 5 faccia riferimento a gennaio (mese 1), quindi dobbiamo sottrarre 4 dalla riga della formula.
- Si desidera estrarre i dati colonna per colonna, iniziando dalla colonna E, ma sempre dalla riga 4 del foglio di destinazione.
La descrizione nella domanda è cambiata, quindi userò un metodo leggermente diverso con INDIRECT. INDIRECT ha una funzione che consente di fare riferimento alle celle con il cosiddetto formato R1C1, utile per questo tipo di requisiti. È possibile specificare facilmente i numeri di riga e colonna e eseguire l'indirizzamento relativo.
INDIRECT ha un ultimo parametro facoltativo utilizzato per indicare lo stile dei riferimenti di cella. Se è FALSE o 0, indica l'indirizzamento di stile R1C1. All'interno della stringa INDIRETTA, si R4C[0]riferisce alla riga 4 e alla stessa colonna della formula (zero offset).
Altrimenti, la differenza principale qui è come derivare i nomi dei fogli tramite una formula anziché una ricerca.
La chiave di ciò è questa formula:
TEXT((ROW()-4)*28,"mmm")
La riga meno 4 è stata spiegata sopra, traducendo la posizione della formula in numero del mese. Dobbiamo trasformare il numero del mese in una data che rientri in quel mese (che può essere in qualsiasi anno, abbiamo solo bisogno di un giorno dell'anno). Moltiplicare per 28 lo fa. Tutti i mesi tranne febbraio durante un anno non bisestile hanno più di 28 giorni, ma questo è abbastanza buono da garantire che il numero del giorno risultante sia nel mese giusto.
(Nota che questo trucco funziona per tradurre 1-12 in gennaio-dicembre, ma dovrebbe essere modificato se il tuo mese iniziale è diverso da gennaio o se hai più anni consecutivi; non puoi semplicemente regolare l'offset di riga. Vedi l'addendum qui sotto.)
La funzione TEXT formatta il risultato come l'abbreviazione di tre lettere al mese.
Mettendo insieme, la formula effettiva è:
=IF(INDIRECT(TEXT((ROW()-4)*28,"mmm")&"!R4C[0]",0)>0,INDIRECT(TEXT((ROW()-4)*28,"mmm")&"!R4C[0]",0),"")
Puoi copiare e incollare questa formula nella cella E5, quindi semplicemente copiare e incollare o trascinare per riempire la matrice. Non è necessario modificare la formula a meno che il layout del foglio di lavoro non cambi.
Addendum: se i tuoi mesi hanno qualcosa di diverso da gennaio-dicembre (come gli anni fiscali) e / o hai più anni consecutivi, ecco un altro trucco per utilizzare la conversione mostrata sopra dell'abbreviazione da numero a mese.
- Apporta la prima correzione di riga per tradurre il numero di riga nel numero del mese iniziale. Supponi che la tua prima riga della formula sia 5 e che il mese iniziale sia ottobre, quindi utilizzeresti ROW () + 5.
- Avvolgere che con la funzione MOD di lasciare il resto dopo dividendo per 12 (Dicembre uscirà zero, ma che funziona ancora):
MOD(ROW()+5,12). Il risultato è che ogni riga punta al numero del mese giusto.
- Utilizzare che nella funzione TESTO:
TEXT(MOD(ROW()+5,12)*28,"mmm").