Uwaga: Ten przykład zakłada, że Data rozpoczęcia zostanie podana jako pierwszy dnia miesiąca. Poniżej znajduje się formuła, która dynamicznie zwróci pierwszy dzień bieżącego miesiąca.
przy pokazanym układzie siatki głównym problemem jest obliczenie daty w pierwszej komórce w kalendarzu (B6). Odbywa się to za pomocą tego wzoru:
=start-CHOOSE(WEEKDAY(start),0,1,2,3,4,5,6)formuła ta określa niedzielę przed pierwszym dniem miesiąca, używając funkcji Wybierz, aby” cofnąć ” odpowiednią liczbę dni do poprzedniej niedzieli. Wybierz działa doskonale w tej sytuacji, ponieważ pozwala na dowolne wartości dla każdego dnia tygodnia. Używamy tej funkcji, aby cofnąć zero dni, gdy pierwszym dniem miesiąca jest niedziela. Więcej szczegółów na temat tego problemu znajdziesz tutaj.
przy pierwszym dniu ustalonym w B6, Pozostałe formuły w siatce po prostu zwiększają poprzednią datę o jeden, zaczynając od formuły w C6:
=IF(B6<>"",B6,$H5)+1ta formuła testuje komórkę bezpośrednio po lewej stronie dla wartości. Jeśli nie zostanie znaleziona żadna wartość, wyciągnie ona wartość z kolumny H w wierszu powyżej. Uwaga $h5 jest mieszanym odniesieniem, aby zablokować kolumnę, gdy formuła jest kopiowana po całej siatce. Ten sam wzór stosuje się we wszystkich komórkach z wyjątkiem B6.
Zasady formatowania warunkowego
kalendarz wykorzystuje formuły formatowania warunkowego, które zmieniają formatowanie, aby przyciemnić poprzednie i przyszłe miesiące oraz wyróżnić bieżący dzień. Obie reguły są stosowane do całej siatki. Dla poprzednich i następnych miesięcy wzór jest:
=MONTH(B6)<>MONTH(start)dla dnia bieżącego wzór jest:
=B6=TODAY()
![]()
aby uzyskać więcej informacji, zobacz: formatowanie warunkowe za pomocą formuł (10 przykładów)
nagłówek kalendarza
tytuł kalendarza-miesiąc i rok-są obliczane za pomocą tej formuły w komórce B4:
=startsformatowane w niestandardowym formacie liczbowym „mmmm yyyy”. Aby wyśrodkować tytuł nad kalendarzem, zakres B4: H4 ma wyrównanie poziome ustawione na „wyśrodkuj zaznaczenia”. Jest to lepsza opcja niż scalanie komórek, ponieważ nie zmienia struktury siatki w arkuszu roboczym.
wieczysty kalendarz z bieżącą datą
aby utworzyć kalendarz, który aktualizuje się automatycznie na podstawie bieżącej daty, Możesz użyć formuły takiej w K5:
=EOMONTH(TODAY(),-1)+1ta formuła pobiera bieżącą datę z funkcją TODAY, a następnie pobiera pierwszy dzień bieżącego miesiąca za pomocą funkcji EOMONTH. Zastąp TODAY() dowolną datą, aby zbudować kalendarz w innym miesiącu. Więcej szczegółów na temat EOMONTH działa tutaj.
kroki, aby utworzyć
- Ukryj linie siatki (opcjonalnie)
- Dodaj ramkę do B5:H11 (7R x 7C)
- Nazwa K5 „start” i wprowadź datę jak „wrzesień 1, 2018”
- Formula in B4 = start
- Format B4 jako „mmmm yyyy”
- Wybierz B4: H4, Ustaw wyrównanie do „Center across selection”
- w zakresie B5: h5, wprowadź skróty dnia (SMTWTFS)
- formuła w B6 = start-wybierz (dzień tygodnia(początek),0,1,2,3,4,5,6)
- Wybierz B6:H11, zastosuj niestandardowy format liczb „d”
- formuła w C6 =IF(B6″”,B6,$H5)+1
- skopiuj formułę w C6 do pozostałych komórek w siatce kalendarza
- Dodaj poprzednią/następną regułę formatowania warunkowego (patrz formuła powyżej)
- Dodaj bieżącą regułę formatowania warunkowego (patrz formuła powyżej)
- Zmień datę w K5 na inną datę „pierwszego miesiąca”, aby przetestować
- dla kalendarza wieczystego, wzór w K5 =EOMONTH(dziś(),-1)+1