![](https://cdn.wiki-base.com/7103147/excel_formula_dynamic_calendar_grid__2.png.webp)
souhrn
Mřížku dynamického kalendáře můžete nastavit na listu aplikace Excel s řadou vzorců, jak je vysvětleno v tomto článku. V zobrazeném příkladu je vzorec v B6:
=start-CHOOSE(WEEKDAY(start),0,1,2,3,4,5,6)
kde „start“ je pojmenovaný rozsah K5 a obsahuje datum 1. září 2018.
Vysvětlení
Poznámka: Tento příklad předpokládá, že počáteční datum bude poskytnuto jako první v měsíci. Níže naleznete vzorec, který dynamicky vrátí první den aktuálního měsíce.
S rozložením mřížky, jak je znázorněno, je hlavním problémem výpočet data v první buňce v kalendáři (B6). To se provádí pomocí tohoto vzorce:
=start-CHOOSE(WEEKDAY(start),0,1,2,3,4,5,6)
Tento vzorec spočítá neděli před prvním dnem v měsíci pomocí funkce VÝBĚR k „vrácení“ správného počtu dnů k předchozí neděli. CHOOSE v této situaci funguje perfektně, protože umožňuje libovolné hodnoty pro každý den v týdnu. Tuto funkci používáme k vrácení nula dnů, když je prvním dnem v měsíci neděle. Další podrobnosti o tomto problému jsou uvedeny zde.
Když je první den stanoven v B6, ostatní vzorce v mřížce jednoduše zvýší předchozí datum o jedno, počínaje vzorcem v C6:
=IF(B6"",B6,$H5)+1
Tento vzorec testuje hodnotu buňky okamžitě vlevo. Pokud není nalezena žádná hodnota, vytáhne hodnotu ze sloupce H v řádku výše. Poznámka $ H5 je smíšený odkaz, který zamkne sloupec při kopírování vzorce v mřížce. Stejný vzorec se používá ve všech buňkách kromě B6.
Pravidla podmíněného formátování
Kalendář používá vzorce podmíněného formátování, které mění formátování tak, aby stínily předchozí a budoucí měsíce a zvýrazňovaly aktuální den. Obě pravidla se vztahují na celou mřížku. Pro předchozí a následující měsíce platí vzorec:
=MONTH(B6)MONTH(start)
Pro aktuální den platí vzorec:
=B6=TODAY()
Další informace najdete v části: Podmíněné formátování pomocí vzorců (10 příkladů)
Nadpis kalendáře
Název kalendáře - měsíc a rok - se počítá pomocí tohoto vzorce v buňce B4:
=start
Formátováno s vlastním formátem čísla „mmmm rrrr“. Chcete-li vycentrovat nadpis nad kalendářem, rozsah B4: H4 má vodorovné zarovnání nastaveno na „vycentrovat přes výběr“. Toto je lepší volba než slučování buněk, protože to nezmění strukturu mřížky v listu.
Věčný kalendář s aktuálním datem
Chcete-li vytvořit kalendář, který se automaticky aktualizuje na základě aktuálního data, můžete v K5 použít tento vzorec:
=EOMONTH(TODAY(),-1)+1
Tento vzorec získá aktuální datum pomocí funkce DNES, poté získá první den aktuálního měsíce pomocí funkce EOMONTH. Nahraďte TODAY () libovolným daným datem a vytvořte si kalendář v jiném měsíci. Více podrobností o tom, jak EOMONTH funguje zde.
Kroky k vytvoření
- Skrýt čáry mřížky (volitelně)
- Přidejte ohraničení na B5: H11 (7R x 7C)
- Pojmenujte K5 „start“ a zadejte datum jako „1. září 2018“
- Vzorec v B4 = start
- Formátovat B4 jako „mmmm rrrr“
- Vyberte B4: H4, nastavte zarovnání na „Přes střed výběru“
- V rozsahu B5: H5 zadejte denní zkratky (SMTWTFS)
- Vzorec v B6 = start-VÝBĚR (WEEKDAY (start), 0,1,2,3,4,5,6)
- Vyberte B6: H11, použijte vlastní formát čísla „d“
- Vzorec v C6 = IF (B6 "", B6, $ H5) +1
- Zkopírujte vzorec v C6 do zbývajících buněk v mřížce kalendáře
- Přidat pravidlo předchozího / dalšího podmíněného formátování (viz vzorec výše)
- Přidat aktuální pravidlo podmíněného formátování (viz vzorec výše)
- Změňte datum v K5 na jiné datum „prvního měsíce“, které chcete otestovat
- Pro věčný kalendář vzorec v K5 = EOMONTH (DNES (), - 1) +1