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: