Obsah
Pokud hledáte funkci Excelu pro získání dne v týdnu z data, přistáli jste na správné stránce. Tento návod vás naučí, jak pomocí vzorce WEEKDAY v Excelu převést datum na název dne v týdnu, filtrovat, zvýrazňovat a počítat víkendy nebo pracovní dny a další.
V Excelu existuje celá řada funkcí pro práci s daty. Funkce Den v týdnu (WEEKDAY) je užitečná zejména při plánování a rozvrhování, například pro určení časového rámce projektu a automatické odstranění víkendů z celkového součtu. Pojďme si tedy postupně projít příklady a podívat se, jak vám mohou pomoci zvládnout různé úlohy související s daty v Excelu.
WEEKDAY - funkce aplikace Excel pro den v týdnu
Funkce WEEKDAY aplikace Excel slouží k vrácení dne v týdnu od zadaného data.
Výsledkem je celé číslo, ve výchozím nastavení od 1 (neděle) do 7 (sobota). Pokud vaše obchodní logika vyžaduje jiný výčet, můžete vzorec nakonfigurovat tak, aby počítání začínalo s jakýmkoli jiným dnem v týdnu.
Funkce WEEKDAY je k dispozici ve všech verzích aplikace Excel 365 až 2000.
Syntaxe funkce WEEKDAY je následující:
WEEKDAY(serial_number, [return_type])Kde:
Serial_number (povinné) - datum, které chcete převést na číslo dne v týdnu. Lze jej zadat jako pořadové číslo představující datum, jako textový řetězec ve formátu, kterému Excel rozumí, jako odkaz na buňku obsahující datum nebo pomocí funkce DATE.
Return_type (nepovinné) - určuje, který den v týdnu se má použít jako první den. Pokud je vynecháno, je výchozí hodnota týden od ne do so.
Zde je seznam všech podporovaných return_type hodnoty:
Return_type | Vrácený počet |
---|---|
1 nebo vynecháno | Od 1. (neděle) do 7. (sobota) |
2 | Od 1. (pondělí) do 7. (neděle) |
3 | Od 0 (pondělí) do 6 (neděle) |
11 | Od 1. (pondělí) do 7. (neděle) |
12 | Od 1. (úterý) do 7. (pondělí) |
13 | Od 1. (středa) do 7. (úterý) |
14 | Od 1. hodiny (čtvrtek) do 7. hodiny (středa) |
15 | Od 1. (pátek) do 7. (čtvrtek) |
16 | Od 1. hodiny (sobota) do 7. hodiny (pátek) |
17 | Od 1. (neděle) do 7. (sobota) |
Poznámka. return_type Hodnoty 11 až 17 byly zavedeny v aplikaci Excel 2010, a proto je nelze použít v dřívějších verzích.
Základní vzorec WEEKDAY v aplikaci Excel
Pro začátek se podívejme, jak použít vzorec WEEKDAY v jeho nejjednodušší podobě pro získání čísla dne z data.
Například pro získání dne v týdnu z data v C4 s výchozím týdnem neděle - sobota je vzorec následující:
=WEEKDAY(C4)
Pokud máte k dispozici pořadové číslo představující datum (např. přenesené funkcí DATEVALUE), můžete toto číslo zadat přímo do vzorce:
=TÝDEN(45658)
Datum můžete také zadat jako textový řetězec uzavřený v uvozovkách přímo do vzorce. Jen nezapomeňte použít formát data, který Excel očekává a dokáže interpretovat:
=TÝDEN("1/1/2025")
Nebo zadejte zdrojové datum 100% spolehlivým způsobem pomocí funkce DATE:
=TÝDEN(DATE(2025, 1,1))
Chcete-li použít jiné mapování dnů než výchozí Ne-So, zadejte do druhého argumentu příslušné číslo. Chcete-li například začít počítat dny od pondělí, vzorec je následující:
=TÝDEN(C4, 2)
Na obrázku níže všechny vzorce vracejí den v týdnu odpovídající 1. lednu 2025, který je v aplikaci Excel interně uložen jako číslo 45658. V závislosti na hodnotě nastavené ve druhém argumentu dávají vzorce různé výsledky.
Na první pohled se může zdát, že čísla vrácená funkcí WEEKDAY mají jen velmi malý praktický smysl. Podívejme se na ni však z jiného úhlu a proberme některé vzorce, které řeší úlohy z reálného života.
Jak převést datum aplikace Excel na název dne v týdnu
Funkce WEEKDAY aplikace Excel vrací den v týdnu jako číslo. Chcete-li číslo dne v týdnu změnit na název dne, použijte funkci TEXT.
Chcete-li získat celodenní názvy , použijte kód formátu "dddd":
TEXT(WEEKDAY( datum ), "dddd")Vrátit se zkrácené názvy dnů , kód formátu je "ddd":
TEXT(WEEKDAY( datum ), "ddd")Například pro převod data v A3 na název dne v týdnu se použije vzorec:
=TEXT(WEEKDAY(A3), "dddd")
Nebo
=TEXT(WEEKDAY(A3), "ddd")
Dalším možným řešením je použití funkce WEEKDAY společně s funkcí CHOOSE.
Chcete-li například získat zkrácený název dne v týdnu z data ve formátu A3, použijete následující vzorec:
=CHOOSE(WEEKDAY(A3), "Sun", "Mon", "Tus", "Wed", "Thu", "Fri", "Sat")
Zde WEEKDAY vrací pořadové číslo od 1 (ne) do 7 (so) a CHOOSE vybere odpovídající hodnotu ze seznamu. Protože datum v A3 (středa) odpovídá 4, CHOOSE vypíše "st", což je 4. hodnota v seznamu.
Ačkoli je konfigurace vzorce CHOOSE o něco složitější, poskytuje větší flexibilitu a umožňuje vypisovat názvy dnů v libovolném formátu. Ve výše uvedeném příkladu uvádíme zkrácené názvy dnů. Místo toho můžete vypisovat plné názvy, vlastní zkratky nebo dokonce názvy dnů v jiném jazyce.
Tip: Dalším snadným způsobem, jak převést datum na název dne v týdnu, je použití vlastního formátu data. Například kód ve formátu "dddd, mmmm d, rrrr" zobrazí datum jako " Pátek, 3. ledna 2025 ", zatímco "dddd" zobrazí pouze " Pátek ".
Vzorec aplikace Excel WEEKDAY pro vyhledávání a filtrování pracovních dnů a víkendů
Při práci s dlouhým seznamem termínů můžete chtít vědět, které z nich jsou pracovní dny a které víkendy.
Na identifikovat víkendy a všední dny v aplikaci Excel vytvořte příkaz IF s vnořenou funkcí WEEKDAY. Například:
=IF(WEEKDAY(A3, 2)<6, "Pracovní den", "Víkend")
Tento vzorec se vloží do buňky A3 a zkopíruje se dolů do tolika buněk, kolik je potřeba.
Ve vzorci WEEKDAY nastavíte return_type na 2, což odpovídá týdnu od pondělí do neděle, kde pondělí je den 1. Pokud je tedy číslo dne v týdnu menší než 6 (pondělí až pátek), vzorec vrátí "Pracovní den", v opačném případě "Víkend".
Na filtrování víkendů nebo pracovních dnů , použijte na soubor dat filtr aplikace Excel ( Data karta> Filtr ) a vyberte možnost "Víkend" nebo "Pracovní den".
Na obrázku níže jsou odfiltrovány všední dny, takže jsou vidět pouze víkendy:
Pokud některá regionální pobočka vaší organizace pracuje podle jiného rozvrhu, kde jsou dny pracovního klidu jiné než sobota a neděle, můžete vzorec WEEKDAY snadno přizpůsobit svým potřebám zadáním jiného čísla. return_type .
Například k léčbě Sobota a Pondělí jako víkendy, nastavte return_type až 12, takže získáte typ týdne "úterý (1) až pondělí (7)":
=IF(WEEKDAY(A2, 12)<6, "Pracovní den", "Víkend")
Jak zvýraznit víkendy a pracovní dny v aplikaci Excel
Chcete-li víkendy a pracovní dny v pracovním listu rozpoznat na první pohled, můžete je automaticky odstínovat různými barvami. K tomu použijte vzorec pro dny v týdnu/víkendy, o kterém jsme hovořili v předchozím příkladu, s podmíněným formátováním aplikace Excel. Protože podmínka je implicitní, potřebujeme pouze základní funkci WEEKDAY bez obalu IF.
Na zvýraznění víkendů (sobota a neděle):
=WEEKDAY($A2, 2)<6
Na zvýraznění pracovních dnů (pondělí - pátek):
=WEEKDAY($A2, 2)>5
Kde A2 je levá horní buňka vybraného rozsahu.
Postup nastavení pravidla podmíněného formátování je následující:
- Vyberte seznam dat (v našem případě A2:A15).
- Na Home na kartě Styly klikněte na tlačítko Podmíněné formátování > Nové pravidlo .
- V Nové pravidlo formátování dialogového okna vyberte možnost Pomocí vzorce určete, které buňky se mají formátovat .
- V Formátování hodnot, kde tento vzorec je pole true, zadejte výše uvedený vzorec pro víkendy nebo pracovní dny.
- Klikněte na Formát a vyberte požadovaný formát.
- Klikněte na OK dvakrát uložit změny a zavřít dialogová okna.
Podrobné informace o jednotlivých krocích naleznete v části Jak nastavit podmíněné formátování pomocí vzorce.
Výsledek vypadá pěkně, že?
Jak počítat dny v týdnu a víkendy v aplikaci Excel
Chcete-li získat počet dnů v týdnu nebo víkendů v seznamu dat, můžete použít funkci WEEKDAY v kombinaci s funkcí SUM. Například:
Na počítání víkendů , vzorec v D3 je:
=SUM(--(WEEKDAY(A3:A20, 2)>5))
Na počítat všední dny , vzorec v D4 má tento tvar:
=SUM(--(WEEKDAY(A3:A20, 2)<6))
V aplikacích Excel 365 a Excel 2021, které nativně pracují s poli, funguje tento vzorec jako běžný vzorec, jak je znázorněno na obrázku níže. V aplikacích Excel 2019 a starších stiskněte klávesy Ctrl + Shift + Enter, aby se vzorec stal polem.
Jak tyto vzorce fungují:
Funkce WEEKDAY s return_type nastavený na hodnotu 2 vrátí číslo dne od 1 (Po) do 7 (Ne) pro každé datum v rozsahu A3:A20. Logický výraz kontroluje, zda jsou vrácená čísla větší než 5 (pro víkendy) nebo menší než 6 (pro pracovní dny). Výsledkem této operace je pole hodnot TRUE a FALSE.
Dvojitá negace (--) mění logické hodnoty na 1 a 0. A funkce SUM je sečte. Vzhledem k tomu, že 1 (TRUE) představuje dny, které se mají počítat, a 0 (FALSE) dny, které se mají ignorovat, získáte požadovaný výsledek.
Tip. Výpočet pracovní dny mezi dvěma daty , použijte funkci NETWORKDAYS nebo NETWORKDAYS.INTL.
Pokud ve všední den, pak v sobotu nebo v neděli.
Nakonec probereme trochu konkrétnější případ, který ukazuje, jak určit den v týdnu, a pokud je to sobota nebo neděle, pak něco udělat, pokud je to všední den, pak něco jiného.
IF(WEEKDAY( buňka , 2)>5, if_weekend_then , if_weekday_then )Předpokládejme, že vypočítáváte platby pro zaměstnance, kteří ve dnech volna odvedli nějakou práci navíc, takže potřebujete použít různé sazby plateb pro pracovní dny a víkendy. To lze provést pomocí následujícího příkazu IF:
- V logical_test vnořit funkci WEEKDAY, která kontroluje, zda je daný den pracovní den nebo víkend.
- V value_if_true vynásobte počet pracovních hodin sazbou za víkend (G4).
- V value_if_false vynásobte počet pracovních hodin sazbou za pracovní den (G3).
Úplný vzorec v D3 má tento tvar:
=IF(WEEKDAY(B3, 2)>5, C3*$G$4, C3*$G$3)
Aby se vzorec správně zkopíroval do níže uvedených buněk, nezapomeňte uzamknout adresy buněk sazby pomocí znaku $ (například $G$4).
Nefunguje funkce WEEKDAY
Obecně existují dvě běžné chyby, které může vzorec WEEKDAY vrátit:
#VALUE! chyba nastane, pokud:
- Serial_number nebo return_type je nečíselný.
- Serial_number je mimo podporovaný rozsah dat (1900 až 9999).
#NUM! chyba nastane, když return_type je mimo povolený rozsah (1-3 nebo 11-17).
Takto se v Excelu používá funkce WEEKDAY pro manipulaci se dny v týdnu. V příštím článku se budeme zabývat funkcemi Excelu pro práci s většími časovými jednotkami, jako jsou týdny, měsíce a roky. Zůstaňte prosím naladěni a děkujeme za přečtení!
Cvičebnice ke stažení
Vzorec WEEKDAY v aplikaci Excel - příklady (.xlsx soubor)