
Formula generica
=SEQUENCE(days,1,start_date,step)
Sommario
Per generare una serie di date in base al giorno, è possibile utilizzare la funzione SEQUENZA. Nell'esempio mostrato, la formula in E5 è:
=SEQUENCE(12,1,C4,1)
che genera una serie di 12 date, a partire dal 1 maggio 2019, la data in C4.
Spiegazione
La funzione SEQUENCE è una funzione di matrice dinamica che può generare più risultati. Quando viene utilizzato da solo sul foglio di lavoro, SEQUENCE genera una matrice di risultati che "si riversano" sul foglio di lavoro in un "intervallo di fuoriuscita".
SEQUENCE può generare risultati in righe, colonne o righe e colonne. In questo esempio, chiediamo una sequenza di numeri di 12 righe per 1 colonna, a partire dalla data in C4 e incrementando di 1. Poiché le date in Excel sono solo numeri seriali e la data in C4 è equivalente a 43586, SEQUENCE genera un array come questo:
(43586;43587;43588;43589;43590;43591;43592;43593;43594;43595;43596;43597)
che si riversa nell'intervallo E5: E16. Quando formattati come date, questi valori mostrano 12 date consecutive che iniziano con il 1 maggio 2019 e terminano con il 12 maggio 2019.
Solo giorni feriali
Per utilizzare SEQUENCE per generare una serie di date che sono solo giorni lavorativi, è possibile inserire SEQUENCE nella funzione WORKDAY o WORKDAY.INTL. Nell'esempio mostrato, la formula in G5 è:
(=WORKDAY.INTL(C4-1,SEQUENCE(12)))
Nota: questa è una formula di matrice e deve essere inserita con CTRL + MAIUSC + INVIO. Inoltre, poiché si tratta di una formula di matrice multicella, è necessario selezionare prima tutte le 12 celle per immettere o modificare la formula.
Qui, all'interno della funzione GIORNO LAVORATIVO, sottraiamo prima 1 giorno dalla data di inizio. Facciamo questo per forzare WORKDAY.INTL a valutare la data di inizio e per iniziare la sequenza nella data di inizio.
Successivamente, usiamo SEQUENCE per generare 12 numeri sequenziali:
SEQUENCE(12)
Poiché le colonne, gli argomenti di inizio e di passaggio sono tutti facoltativi, questo restituisce un array come questo:
(1;2;3;4;5;6;7;8;9;10;11;12)
Questi sono i numeri forniti come argomento "giorni" per WORKDAY.INTL. Ad ogni nuova riga, WORKDAY.INTL calcola un giorno lavorativo n giorni nel futuro utilizzando l'array fornito da SEQUENCE. WORKDAY.INTL presuppone automaticamente che sabato e domenica siano "fine settimana" (non giorni feriali), quindi queste date vengono escluse dai risultati. WORKDAY.INTL può anche essere configurato per gestire fine settimana e festività personalizzati, come spiegato qui.