Dan sta configurando un foglio di lavoro da utilizzare nella sua azienda e ha bisogno di un modo per calcolare il primo giorno lavorativo di un mese calendar. Sa come calcolare il primo giorno di un mese, ma quel giorno potrebbe eventualmente cadere in un fine settimana o in una vacanza.

Esistono diversi modi per calcolare il primo giorno della settimana di un determinato mese. La seguente formula è un buon punto di partenza:

=DATE(YEAR(A1),MONTH(A1),1)+CHOOSE(WEEKDAY(DATE(YEAR(A1),MONTH(A1),1)),1,0,0,0,0,0,2)

Questa formula presuppone che tu voglia il primo giorno della settimana per il mese di qualunque data si trovi nella cella A1. Pertanto, se la data nella cella A1 è il 26 marzo 2011, la formula presume che tu voglia il primo giorno della settimana per marzo 2011.

Se nel sistema è installato Analysis ToolPak, la formula diventa molto più semplice:

=WORKDAY(EOMONTH(A1,-1), 1)

La funzione EOMONTH restituisce l’ultimo giorno del mese precedente alla data nella cella A1, quindi la funzione WORKDAY restituisce il primo giorno della settimana del mese successivo. La funzione è composta in questo modo (usando EOMONTH) perché WORKDAY è un po ‘bizzarro; si presume che il primo parametro sia un giorno lavorativo valido. Ciò significa che non controlla se la data utilizzata nel parametro rientra nella settimana lavorativa dal lunedì al venerdì. Forzando il parametro ad essere un giorno prima del mese in cui si desidera determinare il primo giorno lavorativo e impostando il secondo parametro su 1, la funzione restituisce il primo giorno della settimana effettivo per il mese desiderato.

La funzione GIORNO LAVORATIVO consente inoltre di specificare facoltativamente che le festività devono essere prese in considerazione. Il modo più semplice per farlo è impostare un elenco di date di festività, in un intervallo di celle, quindi assegnare un nome a tale intervallo. (Il modo in cui si denomina un intervallo è discusso in altri numeri di ExcelTips.) Se si assegna all’intervallo un nome come MyHolidays, è possibile utilizzare la seguente versione della formula:

=WORKDAY(EOMONTH(A1,-1), 1, MyHolidays)

Ecco un bel trucco se vuoi calcolare l’inizio della giornata lavorativa per un dato mese in un anno. Si supponga che la cella A1 contenga un anno, ad esempio 2011, e che la cella A2 contenga un numero di mese, compreso tra 1 e 12, che rappresenta il mese per il quale si desidera iniziare la giornata lavorativa. È quindi possibile utilizzare questa formula per ottenere la data desiderata:

=WORKDAY(DATE(A1,1,0), A2, MyHolidays)

Il modo in cui la funzione DATA viene utilizzata in questa formula restituisce l’ultimo giorno dell’anno precedente all’anno specificato nella cella A1. Quindi il valore in A2 viene utilizzato per spostare in avanti quel numero di mesi e MyHolidays (come prima) tiene conto di eventuali festività che possono verificarsi in quel mese.

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

Questo suggerimento (10199) si applica a Microsoft Excel 97, 2000, 2002 e 2003.

Puoi trovare una versione di questo suggerimento per l’interfaccia a barra multifunzione di Excel (Excel 2007 e versioni successive) qui: