Giorni feriali in un mese (Microsoft Excel)
Ti sei mai chiesto quanti giorni della settimana si verificano in un dato mese? Per alcune persone è importante sapere quanti martedì ci sono in un mese. E chi non vuole sapere se un mese in particolare avrà quattro o cinque sabati?
Excel non include una funzione intrinseca che è possibile utilizzare per determinare il numero di volte in cui si verifica un determinato giorno della settimana in un determinato mese. È tuttavia possibile creare le proprie formule e funzioni per eseguire l’attività.
Innanzitutto, considera la seguente formula.
=4+N((WEEKDAY(DATE(YEAR($A$1),MONTH($A$1),1))) (DAY(DATE(YEAR($A$1),MONTH($A$1)+1,0))-28)>(7*(( WEEKDAY(DATE(YEAR($A$1),MONTH($A$1),1)))>(1+ROW()- ROW($A$2)))+(1+ROW()-ROW($A$2))))
La formula si basa su una data in A1. Questa data dovrebbe essere quella del mese che desideri “testare”. La formula deve essere copiata in una cella nella riga 2 e quindi copiata nelle sei celle direttamente sotto di essa. Ad esempio, puoi copiare questa formula nell’intervallo di celle B2: B8. La prima risposta (B2) è il numero di domeniche del mese, la seconda (B3) è il numero di lunedì e così via.
Lo svantaggio di questa formula è che utilizza la posizione della cella contenente la formula come parte della formula. Ciò significa che la formula deve essere posizionata da qualche parte a partire dalla seconda riga.
Un altro svantaggio è che la formula è piuttosto lunga e complessa. Se desideri una formula più breve, devi passare a una formula di matrice. Una pratica formula che puoi utilizzare presuppone che tu fornisca tre argomenti: l’anno (cella C2), il mese (cella D2) e un giorno della settimana (cella E2). Con questi tre elementi, la seguente formula funziona alla grande:
=SUM(IF(WEEKDAY(DATE(C2, D2, ROW(INDIRECT("1:" & DAY(DATE(C2, D2+1, 0))))))=E2, 1, 0))
Ricorda che questa è una formula di matrice, il che significa che devi inserirla premendo Maiusc + Ctrl + Invio. Inoltre, il valore del giorno della settimana immesso nella cella E2 deve essere compreso tra 1 e 7, dove 1 è domenica, 2 è lunedì, ecc.
Un’altra ottima formula che puoi usare è la seguente:
=NETWORKDAYS.INTL(DATE(YEAR(A1),MONTH(A1),1),EOMONTH(A1,0), REPT("1",B1-1) & "0" & REPT("1",7-B1))
Questa formula generalizzata richiede solo due valori per funzionare correttamente. La prima è una data che rientra nel mese che vuoi analizzare; questo va nella cella A1. Nella cella B1 dovresti posizionare un indicatore del giorno della settimana che vuoi contare. Questo valore è diverso da quello della formula precedente: anche se deve essere compreso tra 1 e 7, 1 è lunedì, 2 è martedì, ecc.
Se il design del foglio di lavoro non consente di inserire l’anno, il mese e il giorno della settimana in celle diverse, una soluzione pulita è creare una funzione definita dall’utente per restituire il conteggio. La seguente macro è un esempio di questo tipo di funzione.
Function MonthWeekDays(dDate As Date, iWeekDay As Integer) Dim dLoop As Date If iWeekDay < 1 Or iWeekDay > 7 Then MonthWeekDays = CVErr(xlErrNum) Exit Function End If MonthWeekDays = 0 dLoop = DateSerial(Year(dDate), Month(dDate), 1) Do While Month(dLoop) = Month(dDate) If WeekDay(dLoop) = iWeekDay Then _ MonthWeekDays = MonthWeekDays + 1 dLoop = dLoop + 1 Loop End Function
Si utilizza la funzione inserendo quanto segue in una cella:
=MonthWeekDays(A1,4)
In questo utilizzo, il primo argomento (cella A1) contiene una data nel mese da valutare. Il secondo argomento è un valore numerico che rappresenta il giorno della settimana che vuoi contare. Questo valore deve essere compreso tra 1 e 7, dove 1 è domenica, 2 è lunedì e così via.
_Nota: _
Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti ExcelTips), ho preparato una pagina speciale che include informazioni utili.
ExcelTips è la tua fonte di formazione economica su Microsoft Excel.
Questo suggerimento (5684) si applica a Microsoft Excel 2007, 2010, 2013, 2016, 2019 ed Excel in Office 365. Puoi trovare una versione di questo suggerimento per la vecchia interfaccia del menu di Excel qui: