Oblicz liczbę niedziel w miesiącu

8

W programie Microsoft Excel chcę określić liczbę niedziel w danym miesiącu. Przygotowuję arkusz kalkulacyjny budżetu, a niektóre z kont podrzędnych otrzymują dodatkowe fundusze, gdy w niedziele przypada pięć niedziel w miesiącu zamiast czterech.

Jedyną komórką, do której muszę się odwoływać, jest tytuł arkusza znajdującego się w komórce A1 i równy bieżącemu miesiącowi. Na przykład6/1/14

wbeard52
źródło

Odpowiedzi:

12

Spróbuj tego, gdzie A1jest początkowy dzień miesiąca:

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

Możesz również użyć tego dla dowolnego dnia tygodnia, po prostu zmień "Sun"i dowolny zakres dat, zastępując A1datę początkową i EOMONTH(A1,0)końcową.

Jay-ar
źródło
1
Łał. To jest naprawdę kreatywne. Pozwól mi zrozumieć Tworzymy wartości dat dla całego miesiąca za pomocą funkcji pośrednich i wierszy? Następnie przekształcamy je w tekst w postaci Słońca, Pon itd. Oceniamy stan Słońca i zmieniamy wynik na jeden lub zero, a następnie sumujemy wynik. Czy to jest poprawne?
wbeard52
tak dokładnie .. :)
Jay-ar
9

Jeśli wspomniana data jest zawsze pierwszym dniem miesiąca, ta również będzie działać:

=INT((WEEKDAY(A1-1)+EOMONTH(A1,0)-A1)/7)
teylyn
źródło
Prosty. Bardzo elegancki w porównaniu do mojej powyższej formuły. Dzięki.
wbeard52
3

Bardzo podobny do poprzedniej odpowiedzi, ale tylko trochę czystszy ...

=SUMPRODUCT(N(WEEKDAY(ROW(INDIRECT(A1&":"&EOMONTH(A1,0))))=1))
user743733
źródło
3
=DAY(EOMONTH(A1,0))-NETWORKDAYS.INTL(A1,EOMONTH(A1,0),11)

EDYCJA: Działa to w programie Excel 2016, nie jestem pewien, kiedy wprowadzono NETWORKDAYS.INTL.

SRCP
źródło
Co to jest Networkday.Intl nie działa z wszystkimi excel
yass
Ach, masz rację. Nie widziałem, żeby miał na myśli Excel 2010. Mam 2016. W przeciwieństwie do dni sieciowych, Networkdays.intl pozwala wybrać weekendy. W tym przypadku powiedziałem Excelowi, że weekend jest tylko w niedzielę, to właśnie oznacza 11. Podaje liczbę dni w okresie, który nie liczy się w niedziele.
SRCP
NETWORKDAYS.INTLjest dostępny od Excela 2010 . Możesz zobaczyć liczbę 2010 obok jej nazwy. zobacz zrzut ekranu z programu Excel 2010
phuclv
1

Wierzę, że znalazłem jeszcze inny sposób na skórowanie tego kota (że tak powiem).

Jeśli chcesz uniknąć wprowadzania dat i mieć duży arkusz do projekcji (na przykład za 18 miesięcy), możesz po prostu powiedzieć formule, jaki jest twój miesiąc i rok, i odpowiednio ją sformatować. Połączyło się to z absolutnym odniesieniem do komórek nagłówka, które zawierają dzień tygodnia, o którym mowa, i masz znacznie bardziej zwarty i czystszy stół (moim zdaniem).

A3 = Jan, B3 = 2017, C2: I2 = 3 Char Day Abbreviation (tj. SUN)

Wprowadź formułę do komórki 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))

Udanych łowów

Jeremy Cast
źródło
1

Niewielka odmiana zaakceptowanej odpowiedzi , w przypadku której nie potrzebujesz pierwszego dnia miesiącaA1 .

Osiąga się to poprzez zastąpienie A1:

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

Zakłada się, że chcesz go na bieżący miesiąc.

=SUMPRODUCT(N(TEXT(ROW(INDIRECT(date(year(today()),month(today()),1)&":"&EOMONTH(date(year(today()),month(today()),1),0))),"ddd")="Sun"))
CalvT
źródło