Dnes se zaměříme na jednu z nejflexibilnějších dynamických funkcí v Excelu – funkci SEQUENCE
. Na první pohled se může zdát, že jde o jednoduchý nástroj pro tvorbu číselných řad, ale její skutečná síla se ukáže v kombinaci s dalšími funkcemi. Ukážeme si pět praktických triků, které vám usnadní práci a zvýší vaši produktivitu.
Funkce SEQUENCE
je dostupná pro uživatele verze Excel 2021 a pro předplatitele Microsoft 365.
Základy funkce SEQUENCE
Než se pustíme do pokročilejších technik, zopakujme si, jak funkce SEQUENCE
funguje. Její hlavní účel je vygenerovat sekvenci čísel v zadaném rozsahu.
Syntaxe funkce: =SEQUENCE(řádky; [sloupce]; [začátek]; [krok])
- Řádky: Povinný argument. Určuje, kolik řádků má výsledná řada mít.
- [Sloupce]: Nepovinný argument. Určuje počet sloupců. Výchozí hodnota je 1.
- [Začátek]: Nepovinný argument. Číslo, kterým má řada začínat. Výchozí je 1.
- [Krok]: Nepovinný argument. Hodnota, o kterou se bude každé následující číslo v řadě zvyšovat. Výchozí je 1.
Příklad 1: Řada čísel v jednom sloupci Chceme-li vytvořit čísla od 1 do 10 pod sebou, použijeme vzorec: =SEQUENCE(10)
Excel automaticky doplní ostatní nepovinné argumenty na jejich výchozí hodnoty (1 sloupec, začátek 1, krok 1).
Příklad 2: Řada čísel v jednom řádku Pro vytvoření řady čísel od 1 do 10 vedle sebe upravíme argumenty řádky
a sloupce
: =SEQUENCE(1; 10)
Příklad 3: Tabulka čísel Funkce umí vytvořit i tabulku. Například čísla od 1 do 20 ve dvou sloupcích a deseti řádcích: =SEQUENCE(10; 2)
Příklad 4: Vlastní začátek a krok Řada nemusí začínat jedničkou. Pro vytvoření deseti násobků čísla 2 (2, 4, 6, …) použijeme: =SEQUENCE(10; 1; 2; 2)
Trik 1: Dynamické číslování řádků
Představte si tabulku s produkty, která se neustále rozšiřuje. Ruční číslování nových řádků je zdlouhavé a náchylné k chybám. S funkcí SEQUENCE
to můžeme plně zautomatizovat.
Problém: Chceme automaticky očíslovat všechny produkty v seznamu. Číslování se musí samo aktualizovat při přidání nebo odebrání produktu.
Řešení: Zkombinujeme SEQUENCE
s funkcí POČET2
(v anglické verzi COUNTA
), která počítá všechny neprázdné buňky v oblasti.
- Do buňky, kde má číslování začínat (např.
A2
), vložte následující vzorec:=SEQUENCE(POČET2(B2:B100))
- Ve funkci
POČET2
označte sloupec s daty (v našem případěB2:B100
s produkty). Je dobré označit více řádků, než aktuálně máte, aby byl systém připraven na budoucí záznamy. - Funkce
POČET2
spočítá vyplněné produkty a tento počet předá funkciSEQUENCE
jako argumentřádky
.
Výsledek: Kdykoliv přidáte do sloupce B nový produkt, číslování ve sloupci A se automaticky rozšíří. Pokud naopak řádek uprostřed tabulky smažete, číslování se okamžitě přepočítá a zůstane souvislé.
Trik 2: Tvorba dynamických datových řad
Potřebujete rychle vytvořit seznam datumů, například na následujících 10 dní od dneška? I zde je SEQUENCE
skvělým pomocníkem, tentokrát ve spojení s funkcí DNES
.
Řešení:
- Do buňky vložte vzorec:
=SEQUENCE(10; 1; DNES(); 1)
10
říká, že chceme 10 datumů.1
určuje, že je chceme v jednom sloupci.DNES()
nastaví jako počáteční datum aktuální den.1
zajistí, že se posouváme o jeden den.
- Excel vrátí sérii čísel. Nebojte se, jedná se o datumy ve formátu sériového čísla. Stačí označeným buňkám na kartě Domů změnit formát na Krátké datum nebo Dlouhé datum.
Protože jsme použili funkci DNES
, tento seznam se každý den automaticky aktualizuje a bude vždy zobrazovat následujících 10 dní od aktuálního data.
Trik 3: Generování řady pracovních dnů (včetně svátků)
Často potřebujeme pracovat pouze s pracovními dny a vynechat víkendy, případně i státní svátky. Pro tento účel zkombinujeme SEQUENCE
s funkcí WORKDAY
.
Řešení 1: Vynechání víkendů
Pro vygenerování 15 následujících pracovních dnů použijeme SEQUENCE
uvnitř funkce WORKDAY
.
- Do buňky vložte vzorec:
=WORKDAY(DNES(); SEQUENCE(15); 1)
DNES()
je počáteční datum.SEQUENCE(15)
vygeneruje řadu čísel od 1 do 15, která funkciWORKDAY
říká, o kolik pracovních dní se má posunout.1
v argumentuvíkend
specifikuje, že víkend je sobota a neděle (což je pro ČR standard).
- Opět nezapomeňte buňky naformátovat jako datum. Výsledkem je seznam 15 po sobě jdoucích pracovních dnů.
Řešení 2: Vynechání víkendů i státních svátků
Funkce WORKDAY
má i nepovinný argument pro svátky.
- Nejprve si na listu vytvořte seznam datumů státních svátků (např. v oblasti
F2:F5
). - Upravte vzorec a do posledního argumentu přidejte odkaz na tento seznam:
=WORKDAY("15.4.2025"; SEQUENCE(15); 1; F2:F5)
- Zde jsme jako počáteční datum použili pevné datum „15.4.2025“.
F2:F5
je odkaz na buňky obsahující data státních svátků.
Tento vzorec nyní vygeneruje 15 pracovních dnů a přeskočí nejen víkendy, ale i všechny dny uvedené ve vašem seznamu svátků.
Trik 4: Vytvoření dynamického seznamu měsíců
Chcete mít v tabulce dynamický seznam názvů měsíců od ledna do prosince? Jde to elegantně pomocí kombinace čtyř funkcí: HODNOTA.NA.TEXT
, EDATE
, SEQUENCE
a DATUM
.
Řešení: Postup je třeba sestavit krok za krokem.
- Začneme funkcí
DATUM
, abychom vytvořili první den v roce:DATUM(2025; 1; 1)
- Tuto funkci vložíme do funkce
EDATE
, která posouvá datum o daný počet měsíců. Počet měsíců budeme generovat pomocíSEQUENCE
:=EDATE(DATUM(2025; 1; 1); SEQUENCE(12; 1; 0))
SEQUENCE(12; 1; 0)
vytvoří řadu čísel od 0 do 11. To způsobí, žeEDATE
vygeneruje první den každého z 12 měsíců.
- V tuto chvíli máme seznam prvních dnů v každém měsíci (ve formátu čísel). Abychom z nich získali názvy, obalíme celý vzorec funkcí
HODNOTA.NA.TEXT
(v anglické verziTEXT
):=HODNOTA.NA.TEXT(EDATE(DATUM(2025; 1; 1); SEQUENCE(12; 1; 0)); "mmmm")
- Formát
"mmmm"
říká Excelu, aby zobrazil celý název měsíce.
- Formát
Výsledkem je elegantní dynamický seznam názvů všech dvanácti měsíců.
Trik 5: Filtrování dat pro kvartální souhrny
Poslední trik je velmi užitečný pro reporting. Máme tabulku s měsíčními daty a kumulativními součty a chceme z ní vytáhnout pouze řádky s konci kvartálů (březen, červen, září, prosinec).
Řešení: Zde využijeme kombinaci funkcí FILTR
, ZVOLITSLOUPCE
, MOD
a SEQUENCE
.
- Identifikace kvartálních řádků: Základem je funkce
MOD
, která vrací zbytek po dělení. Chceme každý třetí řádek.=MOD(SEQUENCE(POČET(B2:B13)); 3)
SEQUENCE(POČET(B2:B13))
vytvoří sekvenci čísel od 1 do počtu řádků s daty.MOD(..., 3)
vrátí pro každý řádek zbytek po dělení třemi. Pro 3., 6., 9. atd. řádek bude výsledek0
.
- Filtrování tabulky: Tento výsledek použijeme jako logický test ve funkci
FILTR
.=FILTR(A2:C13; MOD(SEQUENCE(POČET(B2:B13)); 3) = 0)
A2:C13
je celá zdrojová tabulka.- Podmínka
... = 0
zajistí, že funkceFILTR
vrátí pouze řádky, kde je zbytek po dělení nulový, tedy konce kvartálů.
- Výběr správných sloupců: Funkce
FILTR
vrátila všechny tři sloupce. My ale chceme jen Měsíc (1. sloupec) a Kumulaci (3. sloupec). Proto celý vzorec obalíme funkcíZVOLITSLOUPCE
(v anglické verziCHOOSECOLS
).=ZVOLITSLOUPCE(FILTR(A2:C13; MOD(SEQUENCE(POČET(B2:B13)); 3) = 0); 1; 3)
1; 3
na konci vzorce říká, že z výsledku filtrování chceme pouze první a třetí sloupec.
Pokud je vaše zdrojová tabulka formátována jako Tabulka Excelu, celý systém bude plně dynamický. Přidáním dalších měsíčních dat se souhrnná kvartální tabulka automaticky aktualizuje.
Časté otázky a odpovědi
Otázka: V jaké verzi Excelu je funkce SEQUENCE
dostupná? Odpověď: Funkce SEQUENCE
a ostatní dynamické funkce jsou dostupné v Excelu pro Microsoft 365 a v jednorázově zakoupené verzi Excel 2021 a novějších.
Otázka: Proč moje funkce vrací čísla místo datumů? Odpověď: Excel ukládá datumy jako sériová čísla. Když funkce SEQUENCE
nebo WORKDAY
vygeneruje výsledek, je třeba buňkám manuálně nastavit správný formát. Označte buňky a na kartě Domů ve skupině Číslo vyberte Datum.
Otázka: Co se stane, když smažu řádek v automaticky číslovaném seznamu? Odpověď: To je hlavní výhoda dynamického číslování. Vzorec s funkcí SEQUENCE
a POČET2
se okamžitě přepočítá a zajistí, že číslování bude opět souvislé a bez mezer.
Otázka: Lze pomocí funkce SEQUENCE
vytvořit i sestupnou číselnou řadu? Odpověď: Ano, stačí použít zápornou hodnotu v argumentu krok
. Například pro čísla od 10 do 1 použijte vzorec =SEQUENCE(10; 1; 10; -1)
.