Calcolare quanti lunedì ci sono in un determinato mese

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.

ABBONATI

(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.

ABBONATI

(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.

 

Tags: , , , , , , , , , , , , , , , , , , ,

Ti è stato utile?