Formuła WEEKDAY w Excelu, aby uzyskać dzień tygodnia, weekendy i dni robocze

  • Udostępnij To
Michael Brown

Jeśli szukasz funkcji programu Excel, aby uzyskać dzień tygodnia z daty, wylądowałeś na właściwej stronie. Ten samouczek nauczy Cię, jak używać formuły WEEKDAY w programie Excel, aby przekonwertować datę na nazwę dnia tygodnia, filtrować, podświetlać i liczyć weekendy lub dni robocze, i więcej.

Istnieje wiele funkcji do pracy z datami w Excelu. Funkcja dnia tygodnia (WEEKDAY) jest szczególnie przydatna w planowaniu i harmonogramie, na przykład do określania ram czasowych projektu i automatycznego usuwania weekendów z całości. Przebiegnijmy więc przez przykłady po kolei i zobaczmy, jak mogą one pomóc w radzeniu sobie z różnymi zadaniami związanymi z datami w Excelu.

    WEEKDAY - funkcja Excela określająca dzień tygodnia

    Funkcja WEEKDAY w Excelu służy do zwracania dnia tygodnia z podanej daty.

    Wynik jest liczbą całkowitą, domyślnie od 1 (niedziela) do 7 (sobota). Jeśli twoja logika biznesowa wymaga innego wyliczenia, możesz skonfigurować formułę, aby rozpocząć liczenie od dowolnego innego dnia tygodnia.

    Funkcja WEEKDAY jest dostępna we wszystkich wersjach programu Excel 365 do 2000.

    Składnia funkcji WEEKDAY jest następująca:

    WEEKDAY(serial_number, [return_type])

    Gdzie:

    Numer seryjny (wymagane) - data, którą chcemy przekonwertować na liczbę dni tygodnia. Może być dostarczona jako liczba porządkowa reprezentująca datę, jako ciąg tekstowy w formacie zrozumiałym dla Excela, jako odwołanie do komórki zawierającej datę lub poprzez użycie funkcji DATA.

    Return_type (opcjonalne) - określa, jaki dzień tygodnia ma być użyty jako pierwszy dzień. Jeżeli pominięty, domyślnie ustawiony jest tydzień Słońce-Sobota.

    Oto lista wszystkich obsługiwanych typ wartości:

    Return_type Liczba zwróconych
    1 lub pominięty Od 1 (niedziela) do 7 (sobota)
    2 Od 1 (poniedziałek) do 7 (niedziela)
    3 Od 0 (poniedziałek) do 6 (niedziela)
    11 Od 1 (poniedziałek) do 7 (niedziela)
    12 Od 1 (wtorek) do 7 (poniedziałek)
    13 Od 1 (środa) do 7 (wtorek)
    14 Od 1 (czwartek) do 7 (środa)
    15 Od 1 (piątek) do 7 (czwartek)
    16 Od 1 (sobota) do 7 (piątek)
    17 Od 1 (niedziela) do 7 (sobota)

    Uwaga. typ wartości od 11 do 17 zostały wprowadzone w Excelu 2010, dlatego nie można ich używać we wcześniejszych wersjach.

    Podstawowa formuła WEEKDAY w Excelu

    Na początek zobaczmy, jak wykorzystać formułę WEEKDAY w jej najprostszej postaci, aby uzyskać numer dnia z daty.

    Na przykład, aby uzyskać dzień tygodnia z daty w C4 z domyślnym tygodniem niedziela - sobota, formuła to:

    =WEEKDAY(C4)

    Jeśli posiadasz numer seryjny reprezentujący datę (np. przyniesiony przez funkcję DATEVALUE), możesz wprowadzić ten numer bezpośrednio do formuły:

    =WEEKDAY(45658)

    Można też wpisać datę jako ciąg tekstowy ujęty w cudzysłów bezpośrednio w formule. Należy tylko pamiętać, aby użyć formatu daty, którego Excel oczekuje i potrafi zinterpretować:

    =WEEKDAY("1/1/2025")

    Lub dostarcz datę źródłową w 100% niezawodny sposób za pomocą funkcji DATE:

    =WEEKDAY(DATE(2025, 1,1))

    Aby użyć odwzorowania dni innego niż domyślne Sun-Sat, w drugim argumencie należy wpisać odpowiednią liczbę. Na przykład, aby rozpocząć liczenie dni od poniedziałku, formuła to:

    =WEEKDAY(C4, 2)

    Na poniższym rysunku wszystkie formuły zwracają dzień tygodnia odpowiadający 1 stycznia 2025 r., który w Excelu jest przechowywany wewnętrznie jako liczba 45658. W zależności od wartości ustawionej w drugim argumencie formuły dają różne wyniki.

    Na pierwszy rzut oka może się wydawać, że liczby zwracane przez funkcję WEEKDAY mają bardzo mały sens praktyczny. Spójrzmy jednak na to z innej strony i omówmy kilka formuł, które rozwiązują zadania z prawdziwego zdarzenia.

    Jak przekonwertować datę programu Excel na nazwę dnia tygodnia

    Z założenia funkcja WEEKDAY programu Excel zwraca dzień tygodnia w postaci liczby. Aby przekształcić numer dnia tygodnia w nazwę dnia, należy użyć funkcji TEXT.

    Aby uzyskać nazwiska z całego dnia , użyj kodu formatu "dddd":

    TEXT(WEEKDAY( data ), "dddd")

    Aby powrócić skrócone nazwy dni , kod formatu to "ddd":

    TEXT(WEEKDAY( data ), "ddd")

    Na przykład, aby przekonwertować datę w A3 na nazwę dnia tygodnia, formuła brzmi:

    =TEXT(WEEKDAY(A3), "dddd")

    Albo

    =TEXT(WEEKDAY(A3), "ddd")

    Innym możliwym rozwiązaniem jest użycie WEEKDAY wraz z funkcją CHOOSE.

    Na przykład, aby uzyskać skróconą nazwę dnia tygodnia z daty w A3, formuła przebiega następująco:

    =CHOOSE(WEEKDAY(A3), "Sun", "Mon", "Tus", "Wed", "Thu", "Fri", "Sat")

    Tutaj, WEEKDAY zwraca numer seryjny od 1 (Sun) do 7 (Sat), a CHOOSE wybiera odpowiednią wartość z listy. Ponieważ data w A3 (Wednesday) odpowiada 4, CHOOSE wyprowadza "Wed", czyli 4. wartość z listy.

    Chociaż formuła CHOOSE jest nieco bardziej kłopotliwa w konfiguracji, zapewnia większą elastyczność pozwalając na wyprowadzenie nazw dni w dowolnym formacie. W powyższym przykładzie pokazujemy skrócone nazwy dni. Zamiast tego można dostarczyć pełne nazwy, niestandardowe skróty lub nawet nazwy dni w innym języku.

    Wskazówka. Innym łatwym sposobem konwersji daty na nazwę dnia tygodnia jest zastosowanie niestandardowego formatu daty. Na przykład, format kodu "dddd, mmmm d, yyyy" spowoduje wyświetlenie daty jako ". Piątek, 3 stycznia 2025 r. ", natomiast "dddd" pokaże tylko " Piątek ".

    Formuła WEEKDAY programu Excel do wyszukiwania i filtrowania dni roboczych i weekendów

    Mając do czynienia z długą listą dat, możesz chcieć wiedzieć, które z nich to dni robocze, a które to weekendy.

    Do określić weekendy i dni powszednie w Excelu zbudować instrukcję JEŻELI z zagnieżdżoną funkcją TYGODNIA.Na przykład:

    =IF(WEEKDAY(A3, 2)<6, "Workday", "Weekend")

    Ta formuła trafia do komórki A3 i jest kopiowana w dół przez tyle komórek, ile potrzeba.

    W formule WEEKDAY ustawiasz typ do 2, co odpowiada tygodniowi Mon-Sun, w którym poniedziałek jest dniem 1. Zatem jeśli numer dnia tygodnia jest mniejszy niż 6 (od poniedziałku do piątku), formuła zwraca "Dzień roboczy", w przeciwnym razie - "Weekend".

    Do filtrowanie weekendów lub dni roboczych , zastosuj filtr Excela do swojego zbioru danych ( Dane tab> Filtr ) i wybrać "Weekend" lub "Dzień roboczy".

    Na poniższym zrzucie ekranu mamy odfiltrowane dni tygodnia, więc widoczne są tylko weekendy:

    Jeśli jakieś biuro regionalne w Twojej organizacji pracuje według innego harmonogramu, w którym dni odpoczynku są inne niż sobota i niedziela, możesz łatwo dostosować formułę WEEKDAY do swoich potrzeb, określając inny typ .

    Na przykład, aby leczyć Sobota oraz Poniedziałek jako weekendy, ustawić typ do 12, więc otrzymasz typ tygodnia "wtorek (1) do poniedziałek (7)":

    =IF(WEEKDAY(A2, 12)<6, "Dzień roboczy", "Weekend")

    Jak wyróżnić weekendy dni robocze i w Excelu

    Aby szybko zauważyć weekendy i dni robocze w arkuszu, można je automatycznie cieniować w różnych kolorach. W tym celu należy użyć formuły dzień tygodnia/weekend omówionej w poprzednim przykładzie z formatowaniem warunkowym Excela. Ponieważ warunek jest domniemany, potrzebujemy tylko podstawowej funkcji WEEKDAY bez opakowania IF.

    Do najważniejsze weekendy (sobota i niedziela):

    =WEEKDAY($A2, 2)<6

    Do podkreślić dni robocze (poniedziałek - piątek):

    =WEEKDAY($A2, 2)>5

    Gdzie A2 to lewa górna komórka wybranego zakresu.

    Aby ustawić regułę formatowania warunkowego, należy wykonać następujące kroki:

    1. Wybierz listę dat (w naszym przypadku A2:A15).
    2. Na Strona główna zakładka, w Style grupa, kliknij Formatowanie warunkowe > Nowa zasada .
    3. W Nowa zasada formatowania okno dialogowe, wybierz Użyj formuły, aby określić, które komórki mają być sformatowane .
    4. W Formatuj wartości, w których ten wzór jest polem true, wprowadź wyżej wymieniony wzór dla weekendów lub dni tygodnia.
    5. Kliknij przycisk Format i wybrać żądany format.
    6. Kliknij OK dwukrotnie, aby zapisać zmiany i zamknąć okna dialogowe.

    Szczegółowe informacje na temat każdego kroku znajdziesz w rozdziale Jak ustawić formatowanie warunkowe za pomocą formuły.

    Efekt wygląda całkiem ładnie, prawda?

    Jak liczyć dni powszednie i weekendy w Excelu

    Aby uzyskać liczbę dni tygodnia lub weekendów na liście dat, można użyć funkcji WEEKDAY w połączeniu z SUMĄ. Na przykład:

    Do liczyć weekendy , wzór w D3 to:

    =SUM(--(WEEKDAY(A3:A20, 2)>5))

    Do liczyć dni tygodnia , wzór w D4 przyjmuje taką postać:

    =SUM(--(WEEKDAY(A3:A20, 2)<6))

    W programie Excel 365 i Excel 2021, które obsługują tablice natywnie, działa to jako zwykła formuła, jak pokazano na poniższym zrzucie ekranu. W programie Excel 2019 i wcześniejszych naciśnij Ctrl + Shift + Enter, aby uczynić go formułą tablicową.

    Jak działają te formuły:

    Funkcja WEEKDAY z typ ustawione na 2 zwraca numer dnia od 1 (poniedziałek) do 7 (niedziela) dla każdej daty z zakresu A3:A20. Wyrażenie logiczne sprawdza, czy zwrócone liczby są większe niż 5 (dla weekendów) lub mniejsze niż 6 (dla dni powszednich). Wynikiem operacji jest tablica wartości TRUE i FALSE.

    Podwójna negacja (--) zamienia wartości logiczne na 1 i 0, a funkcja SUM je sumuje. Biorąc pod uwagę, że 1 (TRUE) reprezentuje dni, które mają być liczone, a 0 (FALSE) dni, które mają być ignorowane, otrzymujemy pożądany wynik.

    Wskazówka. Aby obliczyć dni tygodnia pomiędzy dwoma datami , użyj funkcji NETWORKDAYS lub NETWORKDAYS.INTL.

    Jeśli dzień powszedni to, jeśli sobota lub niedziela to

    Na koniec omówmy nieco bardziej konkretny przypadek, który pokazuje jak określić dzień tygodnia i jeśli jest to sobota lub niedziela to coś zrobić, jeśli dzień powszedni to zrobić coś innego.

    JEŻELI(DZIEŃ TYGODNIA( komórka , 2)>5, if_weekend_then , if_weekday_then )

    Przypuśćmy, że obliczasz płatności dla pracowników, którzy wykonali dodatkową pracę w dni wolne, więc musisz zastosować różne stawki płatności dla dni roboczych i weekendów. Można to zrobić za pomocą następującego polecenia IF:

    • W logiczny_test argument, zagnieżdża funkcję WEEKDAY, która sprawdza, czy dany dzień jest dniem roboczym czy weekendem.
    • W wartość_jeśli_true argument, pomnożyć liczbę godzin pracy przez stawkę weekendową (G4).
    • W wartość_jeśli_false argument, pomnożyć liczbę godzin pracy przez stawkę za dzień pracy (G3).

    Pełna formuła w D3 przyjmuje taką postać:

    =IF(WEEKDAY(B3, 2)>5, C3*$G$4, C3*$G$3)

    Aby formuła poprawnie skopiowała się do poniższych komórek, pamiętaj o zablokowaniu adresów komórek rate znakiem $ (jak $G$4).

    Funkcja WEEKDAY nie działa

    Ogólnie rzecz biorąc, istnieją dwa powszechne błędy, które może zwrócić formuła WEEKDAY:

    Błąd #VALUE! Występuje, jeśli albo:

    • Numer seryjny lub typ jest nienumeryczna.
    • Numer seryjny jest poza zakresem obsługiwanych dat (1900 do 9999).

    Błąd #NUM! występuje, gdy typ jest poza dopuszczalnym zakresem (1-3 lub 11-17).

    Oto jak wykorzystać funkcję WEEKDAY w Excelu do manipulowania dniami tygodnia. W następnym artykule poznamy funkcje Excela pozwalające operować na większych jednostkach czasu, takich jak tygodnie, miesiące i lata. Prosimy o wytrwałość i dziękujemy za lekturę!

    Zeszyt ćwiczeń do pobrania

    Formuła WEEKDAY w Excelu - przykłady (plik .xlsx)

    Michael Brown jest oddanym entuzjastą technologii z pasją do upraszczania złożonych procesów za pomocą narzędzi programowych. Dzięki ponad dziesięcioletniemu doświadczeniu w branży technologicznej doskonalił swoje umiejętności w programach Microsoft Excel i Outlook, a także w Arkuszach i Dokumentach Google. Blog Michaela jest poświęcony dzieleniu się swoją wiedzą i doświadczeniem z innymi, dostarczając łatwych do zastosowania wskazówek i samouczków w celu poprawy produktywności i wydajności. Niezależnie od tego, czy jesteś doświadczonym profesjonalistą, czy początkującym, blog Michaela oferuje cenne spostrzeżenia i praktyczne porady dotyczące maksymalnego wykorzystania tych niezbędnych narzędzi programowych.