![](https://cdn.wiki-base.com/1654847/excel_formula_date_is_workday__2.png.webp)
Formula generica
=WORKDAY(date-1,1,holidays)=date
Sommario
Per determinare se una data è un giorno lavorativo o meno, è possibile utilizzare una formula basata sulla funzione GIORNO LAVORATIVO. Nell'esempio mostrato, la formula in C5 è:
=WORKDAY(B5-1,1,holidays)=B5
dove "vacanze" è l'intervallo denominato E5: E6.
La formula sopra restituisce VERO, poiché lunedì 21 dicembre 2015 è un giorno lavorativo.
Spiegazione
La funzione GIORNO LAVORATIVO calcola le date future o passate che sono (per definizione) "giorni feriali". In altre parole, GIORNO LAVORATIVO esclude automaticamente i fine settimana e (facoltativamente) i giorni festivi. GIORNO LAVORATIVO accetta 3 argomenti: data_inizio, giorni e festività (facoltativamente).
Poiché vogliamo controllare una singola data e ottenere un risultato VERO o FALSO, dovremmo idealmente utilizzare GIORNO LAVORATIVO con la semplice formula di seguito:
=WORKDAY(date,0)
Tuttavia, questo non funziona, poiché WORKDAY non sembra valutare una data quando non è presente alcun offset.
La soluzione è supply (date-1) per start_date, 1 per giorni e l'intervallo denominato "vacanze" (E5: E6) per festività.
Questo fa sì che GIORNO LAVORATIVO indietreggi di un giorno, quindi aggiungi 1 giorno al risultato, tenendo conto dei fine settimana e delle festività. In effetti, stiamo "ingannando" il GIORNO LAVORATIVO nella valutazione della data_inizio .
Quando la data cade in un fine settimana o in un giorno festivo, WEEKDAY regolerà automaticamente la data in avanti fino al giorno lavorativo successivo.
Infine, confrontiamo la data_inizio originale con il risultato della funzione GIORNO LAVORATIVO. Se le date sono le stesse (cioè il risultato di WORKDAY è uguale a start_date, la formula restituisce TRUE. In caso contrario, la formula restituisce FALSE.
Assicurati che una data calcolata cada in un giorno lavorativo
Per assicurarti che qualsiasi data calcolata arrivi in un giorno lavorativo, puoi utilizzare la seguente formula:
=WORKDAY(calc_date-1,1,holidays)
Nota: se hai bisogno di fine settimana personalizzati, usa la funzione WORKDAY.INTL.