Dynamická oblast v Excelu

Dynamická oblast v Excelu je taková oblast buněk (alespoň teď pro představu), u níž se její chování (vizuálně vzhled, fakticky rozsah) automaticky mění v závislosti na vyplněných buňkách.

Dynamicky formátovaná oblast

Vezměme si klasický případ kalendáře. V sešitu, kde bude kalendář použit (běžně 12 listů s měsíci), doporučuji vyhradit list nastavení s uvedením roku (buňka pojmenovaná jako RokNastaveni) a tabulkou souvisejících svátků. V dalším roce pak nebudete mít nejmenší problém přenastavit sešit.

Dynamicky formátovaná oblast - kalendář
Dynamicky formátovaná oblast – kalendář

 

Na listech jednotlivých měsíců přitom definujeme první datum v měsíci s pomocí funkce DATUM, např. pro únor B2: =DATUM(RokNastaveni; 2; 1). A jak na další dny? Pochopitelně musíme řešit poslední den v měsíci (28, 29, 30, 31). To je možné s funkcí EOMONTH nebo trikem (ve funkci DATUM navýšíme měsíc o jedničku a na místě dne je nula). Nicméně poradíme si jinak a nějaké testování nenasadíme až po 28. dni v měsíci, ale rovnou od 2. dne, abychom mohli vzorec rozkopírovat níže do dalších 30 buněk za vyplňovací úchyt. Vzorec pro rozkopírování může vypadat i takto:

B3: =KDYŽ(MĚSÍC($B$2+ŘÁDEK()-ŘÁDEK($B$2))=MĚSÍC($B$2);$B$2+ŘÁDEK()-ŘÁDEK($B$2);““)

Dynamicky formátovaná oblast - kalendář
Dynamicky formátovaná oblast – kalendář

Přírůstky jsou zde řešeny s pomocí funkce ŘÁDEK (slouží jako čítač), a zkrátka testujeme, zda-li nově vzniklé datum spadá do stejného měsíce. Pokud ano, je vepsáno do buňky, pokud ne, vracíme prázdný řetězec.

Ohraničení neprázdných buněk, resp. další formátování už pořešíme na všech vyhrazených 31 buňkách podmíněným formátem. Pravidlo může být nastaveno následovně:

=$B2<>““

Dynamicky formátovaná oblast - kalendář
Dynamicky formátovaná oblast – kalendář

Má to ovšem jeden háček. Ať už vzorec v buňce vrátí prázdný řetězec (nebo obsah v buňce skryjeme podmíněným formátem ;;;), pro Excel to není důvod, aby změnil (zmenšil) tiskovou oblast. A to je zkrátka na houby. Předpřipravené vzorce často mít musíme a ne vždy budeme moci sáhnout po Tabulce. Poohlédneme se prostě ještě jinde.

Dynamicky definovaná oblast

Dynamicky definovaná oblast se primárně uplatňuje v seznamech (Data / Ověření dat), v nichž předpokládáme přidávání položek a nechceme výchozí rozsah definovat s rezervou. Know-how přitom spočívá v kombinaci funkcí POSUN a POČET (resp. POČET2). Co už ovšem málokdo zkusil, je upravit vzorcem definovaný název pro tiskovou oblast (Oblast_tisku, viz například karta Rozložení stránky).

Pokud je oblast zleva a zprava vymezena sloupci B až I (8 sloupců) a končí řádkem s poslední vyplněnou buňkou ve sloupci B, pak můžeme název Oblast_tisku uvést takto:

=POSUN(List1!$B$1;0;0;POČET2(List1!$B:$B);8)

Chcete tisknout celé stránky? Víte, že na stránku připadá 50 řádků a vyplněno je 120 řádků? Pak namísto funkce POČET (POČET2) použijte funkci ZAOKR.NAHORU (vzorec =ZAOKR.NAHORU(120;50) = 150, tj. 3 stránky).

Ke stažení
dynamicka_oblast.zip