Vi siete mai chiesti quanti di un particolare giorno 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 determinato mese 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+NUM((GIORNO.SETTIMANA(DATA(ANNO($A$1);MESE($A$1);1)))+ (GIORNO(DATA(ANNO($A$1);MESE($A$1)+1;0))-28)>(7*(( GIORNO.SETTIMANA(DATA(ANNO($A$1);MESE($A$1);1)))>(1+RIF.RIGA()- RIF.RIGA($A$2)))+(1+RIF.RIGA()-RIF.RIGA($A$2))))
La formula si basa su una data in A1. Questa data dovrebbe essere inclusa nel mese che vuoi “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 che contiene la formula come parte della formula. Ciò significa che la formula deve essere posizionata da qualche parte a partire dalla seconda riga.
Un altro inconveniente è che la formula è piuttosto lunga e complessa. Un’alternativa più breve può essere la seguente:
=4+(MESE(DATA(ANNO(A$1);MESE(A$1);1)+35-GIORNO.SETTIMANA( DATA(ANNO(A$1);MESE(A$1);1)-RIF.RIGA(A1)))=MESE(A$1))
Si noti che questa formula può essere inserita in qualsiasi punto del foglio e copiata di 6 righe a condizione che si aggiusti il riferimento A$1 ad eccezione di RIF.RIGA(A1) che può essere qualsiasi riferimento alla riga 1 come RIF.RIGA(H1).
Un’altra soluzione è quella di passare a una formula di matrice. Una comoda 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:
=SOMMA(SE(GIORNO.SETTIMANA(DATA(C2; D2; RIF.RIGA(INDIRETTO("1:" & GIORNO(DATA(C2; D2+1; 0))))))=E2; 1; 0))
Ricorda che questa è una formula di matrice, il che significa che devi inserirla premendo Ctrl+Maiusc+Invio. Inoltre, il valore del giorno della settimana immesso nella cella E2 deve essere compreso nell’intervallo da 1 a 7, dove 1 è domenica, 2 è lunedì e così via.
Un’altra grande formula che puoi usare è la seguente:
=GIORNI.LAVORATIVI.TOT.INTL(DATA(ANNO(A1);MESE(A1);1);FINE.MESE(A1;0); RIPETI("1";B1-1) & "0" & RIPETI("1";7-B1))
Questa formula generalizzata richiede solo due valori per funzionare correttamente. Il primo è una data che rientra nel mese che si vuole analizzare; questo va nella cella A1. Nella cella B1 dovresti inserire un indicatore del giorno della settimana che vuoi contare. Questo valore è diverso rispetto alla formula precedente, mentre deve essere ancora compreso nell’intervallo da 1 a 7, 1 è lunedì, 2 è martedì e così via.
Se la progettazione del foglio di lavoro non consente di inserire l’anno, il mese e il giorno della settimana in celle diverse, una soluzione pulita consiste nel creare una funzione definita dall’utente per restituire il conteggio. La seguente macro è un esempio di questo tipo di funzione:
Questo contenuto è riservato agli abbonati
Solo gli utenti con Abbonamento VBA Coder oppure Ultimate possono visionarlo.
Se sei già abbonato Accedi per sbloccare il contenuto!
In caso contrario abbonati qui! L'abbonamento è conveniente.
E puoi interromperlo in ogni momento e in completa autonomia.
(puoi renderti conto di quanti siano i contenuti riservati
raggiungendo questa pagina)
Una versione più breve della funzione evita di usare il Loop. Tutto quello che deve fare è verificare se una quinta istanza di un determinato giorno è ancora nello stesso mese. In tal caso la risposta è 5 altrimenti è 4:
Questo contenuto è riservato agli abbonati
Solo gli utenti con Abbonamento VBA Coder oppure Ultimate possono visionarlo.
Se sei già abbonato Accedi per sbloccare il contenuto!
In caso contrario abbonati qui! L'abbonamento è conveniente.
E puoi interromperlo in ogni momento e in completa autonomia.
(puoi renderti conto di quanti siano i contenuti riservati
raggiungendo questa pagina)
Le funzioni qua sopra si utilizzano inserendo quanto segue in una cella:
=MonthWeekDays(A1;4)
In questo utilizzo, il primo argomento (cella A1) contiene una data nel mese che vuoi valutare. Il secondo argomento è un valore numerico che rappresenta il giorno della settimana che si desidera contare. Questo valore deve essere compreso tra 1 e 7, dove 1 è domenica, 2 è lunedì e così via.