Calcola il numero di domeniche del mese


8

In Microsoft Excel sto cercando di determinare il numero di domeniche in un determinato mese. Sto mettendo insieme un foglio di calcolo del budget e alcuni account secondari ricevono finanziamenti extra quando sono cinque le domeniche al mese anziché quattro.

L'unica cella a cui devo fare riferimento è il titolo del foglio che si trova nella cella A1 ed è uguale al mese corrente. Per esempio6/1/14

Risposte:


12

Prova questo dove A1è il giorno di inizio del mese:

=SUMPRODUCT(N(TEXT(ROW(INDIRECT(A1&":"&EOMONTH(A1,0))),"ddd")="Sun"))

Puoi anche usarlo per qualsiasi giorno della settimana semplicemente cambiando "Sun"e qualsiasi intervallo di date sostituendo A1con la data di inizio e EOMONTH(A1,0)con la data di fine.


1
Wow. Questo è davvero creativo. Fammi capire Creiamo i valori della data per l'intero mese con le funzioni indiretta e riga? Quindi li convertiamo in testo sotto forma di Sole, Lun, ecc. Valutiamo la condizione del Sole e cambiamo il risultato in uno o uno zero e quindi sommiamo il risultato. È corretto?
wbeard52,

yup esattamente .. :)
Jay-ar

9

Se la data menzionata è sempre il primo del mese, anche questa funzionerà:

=INT((WEEKDAY(A1-1)+EOMONTH(A1,0)-A1)/7)

Semplice. Molto elegante rispetto alla mia formula sopra. Grazie.
wbeard52,

3

Molto simile a una risposta precedente, ma solo un po 'più pulito ...

=SUMPRODUCT(N(WEEKDAY(ROW(INDIRECT(A1&":"&EOMONTH(A1,0))))=1))

3
=DAY(EOMONTH(A1,0))-NETWORKDAYS.INTL(A1,EOMONTH(A1,0),11)

EDIT: funziona in Excel 2016, non sono sicuro quando è stato introdotto NETWORKDAYS.INTL.


Che cos'è Networkdays.Intl non funziona con tutti gli eccellenti
yass

Ah, hai ragione. Non ho visto che si riferiva a Excel 2010. Ho 2016. A differenza di networkdays, Networkdays.intl ti consente di scegliere i fine settimana. In questo caso, ho detto a Excel che il fine settimana è solo domenica, ecco cosa rappresenta l'11. Quindi ti dà il numero di giorni in un periodo senza contare la domenica.
SRCP

NETWORKDAYS.INTLè disponibile da Excel 2010 . Puoi vedere il numero 2010 accanto al suo nome. vedi screenshot di esso funzionante in Excel 2010
phuclv

1

Credo di aver trovato l'ennesimo modo di scuoiare questo gatto (per così dire).

Se si desidera evitare di inserire le date e disporre di un foglio di grandi dimensioni per la proiezione (ad esempio 18 mesi), è possibile invece indicare alla formula quali sono il mese e l'anno e formattarlo di conseguenza. Questo si è unito con un riferimento assoluto a una cella di intestazione che contiene il giorno della settimana in questione e hai una tabella molto più compatta e più pulita (secondo me).

A3 = Jan, B3 = 2017, C2: I2 = 3 Abbreviazione del giorno di char (ovvero SUN)

Inserisci la formula nella cella C3

=SUMPRODUCT(N(TEXT(ROW(INDIRECT(DATEVALUE(TEXT(CONCAT($A3,"/",$B3),"mm/dd/yyyy"))&":"&EOMONTH(DATEVALUE(TEXT(CONCAT($A3,"/",$B3),"mm/dd/yyyy")),0))),"ddd")=C$2))

Buona caccia


1

Una leggera variazione della risposta accettata , in cui non è necessario il primo giorno del mese in A1.

Ciò si ottiene sostituendo A1con:

date(year(today()),month(today()),1)

Questo presuppone che lo desideri per il mese corrente.

=SUMPRODUCT(N(TEXT(ROW(INDIRECT(date(year(today()),month(today()),1)&":"&EOMONTH(date(year(today()),month(today()),1),0))),"ddd")="Sun"))
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.