Funkcje Excela WORKDAY i NETWORKDAYS do obliczania dni roboczych

  • Udostępnij To
Michael Brown

Ten krótki samouczek wyjaśnia użycie funkcji Excel NETWORKDAYS i WORKDAY do obliczania dni roboczych z niestandardowymi parametrami weekendów i świąt.

Microsoft Excel udostępnia dwie funkcje specjalnie zaprojektowane do obliczania dni tygodnia - DZIEŃ ROBOCZY i DZIEŃ SIECIOWY.

Na stronie DZIEŃ ROBOCZY Funkcja zwraca datę N dni roboczych w przyszłości lub w przeszłości i można jej użyć do dodania lub odjęcia dni roboczych do danej daty.

Używanie NETWORKDAYS Funkcja pozwala obliczyć liczbę dni roboczych pomiędzy dwoma podanymi przez użytkownika datami.

W Excelu 2010 i wyższych dostępne są bardziej rozbudowane modyfikacje wyżej wymienionych funkcji, WORKDAY.INTL i NETWORKDAYS.INTL, które pozwalają określić, które i ile dni są dniami weekendowymi.

A teraz przyjrzyjmy się bliżej każdej funkcji i zobaczmy, jak można jej użyć do obliczenia dni roboczych w arkuszach Excela.

    Funkcja WORKDAY w programie Excel

    Funkcja WORKDAY programu Excel zwraca datę, która jest określoną liczbą dni roboczych przed lub przed datą początkową. Wyklucza ona weekendy oraz wszelkie święta określone przez użytkownika.

    Funkcja WORKDAY służy do obliczania dni roboczych, kamieni milowych i terminów w oparciu o standardowy kalendarz roboczy, w którym sobota i niedziela są dniami weekendowymi.

    WORKDAY jest funkcją wbudowaną w Excelu 2007 - 365. We wcześniejszych wersjach należy włączyć Analysis ToolPak.

    Używając WORKDAY w Excelu, musisz wprowadzić następujące argumenty:

    WORKDAY(start_data, dni, [święta])

    Pierwsze 2 argumenty są wymagane, a ostatni jest opcjonalny:

    • Początek_daty - data, od której należy rozpocząć liczenie dni tygodnia.
    • Dni - liczba dni roboczych, które należy dodać do / odjąć od start_date. Liczba dodatnia zwraca datę przyszłą, liczba ujemna zwraca datę przeszłą.
    • Wakacje - opcjonalna lista dat, które nie powinny być liczone jako dni robocze. Może to być zarówno zakres komórek zawierających daty, które chcemy wykluczyć z obliczeń, jak i stała tablicowa numerów seryjnych reprezentujących te daty.

    Teraz, gdy znasz już podstawy, zobaczmy, jak możesz wykorzystać funkcję WORKDAY w swoich arkuszach Excela.

    Jak użyć WORKDAY, aby dodać / odjąć dni robocze do daty

    Aby obliczyć dni robocze w Excelu, postępuj zgodnie z tymi prostymi zasadami:

    • Do dodać dni robocze, należy wprowadzić liczbę dodatnią jako dni argument formuły WORKDAY.
    • Do odjąć dni robocze, należy użyć liczby ujemnej w dni argument.

    Załóżmy, że masz datę początkową w komórce A2, listę świąt w komórkach B2:B5 i chcesz poznać daty 30 dni roboczych w przyszłości i w przeszłości. Możesz to zrobić za pomocą następujących formuł:

    Aby dodać 30 dni roboczych do daty rozpoczęcia, z wyłączeniem świąt w B2:B5:

    =WORKDAY(A2, 30, B2:B5)

    Aby odjąć 30 dni roboczych od daty rozpoczęcia, z wyłączeniem dni wolnych od pracy w B2:B5:

    =WORKDAY(A2, -30, B2:B5)

    Aby obliczyć dni tygodnia na podstawie aktualna data , jako daty początkowej użyj funkcji TODAY():

    Aby dodać 30 dni roboczych do dzisiejszej daty:

    =WORKDAY(TODAY(), 30)

    Aby odjąć 30 dni roboczych od dzisiejszej daty:

    =WORKDAY(TODAY(), -30)

    Aby dostarczyć datę początkową bezpośrednio do formuły, należy użyć funkcji DATE:

    =WORKDAY(DATE(2015,5,6), 30)

    Poniższy zrzut ekranu demonstruje wyniki wszystkich tych i kilku innych formuł WORKDAY:

    I oczywiście możesz wpisać w jakiejś komórce liczbę dni roboczych, które mają być dodane do / odjęte od daty rozpoczęcia, a następnie odwołać się do tej komórki w swojej formule. Na przykład:

    = DZIEŃ ROBOCZY(A2, C2)

    Gdzie A2 jest datą początkową, a C2 jest liczbą dni nieweekendowych za (liczby ujemne) lub przed (liczby dodatnie) datą początkową, bez świąt do wykluczenia.

    Porada W programie Excel 365 i 2021 można użyć WORKDAY w połączeniu z SEQUENCE, aby wygenerować serię dni roboczych.

    Funkcja WORKDAY.INTL w programie Excel

    WORKDAY.INTL jest bardziej zaawansowaną modyfikacją funkcji WORKDAY, która pracuje z niestandardowe parametry weekendowe Podobnie jak WORKDAY, zwraca datę, która jest określoną liczbą dni roboczych w przyszłości lub w przeszłości, ale pozwala określić, które dni tygodnia powinny być uważane za dni weekendowe.

    Funkcja WORKDAY.INTL została wprowadzona w Excelu 2010, a więc nie jest dostępna we wcześniejszych wersjach Excela.

    Składnia funkcji WORKDAY.INTL w Excelu jest następująca:

    WORKDAY.INTL(start_data, dni, [weekend], [święta])

    Pierwsze dwa argumenty są wymagane i są podobne do WORKDAY:

    Początek_daty - data początkowa.

    Dni - liczba dni roboczych przed (wartość ujemna) lub po (wartość dodatnia) dacie początkowej.Jeśli dni argument jest podany jako liczba dziesiętna, jest on obcinany do liczby całkowitej.

    Dwa ostatnie argumenty są opcjonalne:

    Weekend - Określa, które dni tygodnia powinny być liczone jako dni weekendowe. Może to być zarówno liczba, jak i ciąg znaków, jak pokazano poniżej.

    Numer Dni weekendowe
    1 lub pominięty Sobota, niedziela
    2 Niedziela, poniedziałek
    3 Poniedziałek, wtorek
    4 Wtorek, środa
    5 Środa, czwartek
    6 Czwartek, piątek
    7 Piątek, sobota
    11 Tylko w niedzielę
    12 Tylko w poniedziałek
    13 Tylko we wtorek
    14 Tylko w środę
    15 Tylko w czwartek
    16 Tylko w piątek
    17 Tylko w sobotę

    Weekendowy ciąg - seria siedmiu 0 i 1, które reprezentują siedem dni tygodnia, począwszy od poniedziałku. 1 oznacza dzień wolny od pracy, a 0 oznacza dzień roboczy. Na przykład:

    • "0000011" - sobota i niedziela są weekendami.
    • "1000001" - poniedziałek i niedziela to weekendy.

    Na pierwszy rzut oka ciągi weekendowe mogą wydawać się zbędne, ale osobiście bardziej lubię tę metodę, ponieważ możesz zrobić ciąg weekendowy w locie, bez konieczności pamiętania jakichkolwiek liczb.

    Wakacje - opcjonalna lista dat, które chcesz wykluczyć z kalendarza dni roboczych. Może to być zakres komórek zawierających daty lub stała tablicowa wartości seryjnych reprezentujących te daty.

    Używanie WORKDAY.INTL w Excelu - przykłady formuł

    Cóż, całkiem spora część teorii, którą właśnie omówiliśmy, może wydawać się dość skomplikowana i zagmatwana, ale spróbowanie swoich sił w formułach naprawdę ułatwi sprawę.

    Na naszym zbiorze danych, z datą rozpoczęcia w komórce A2 i listą świąt w A5:A8, obliczmy dni robocze z niestandardowymi weekendami.

    Do dodać 30 dni roboczych do daty rozpoczęcia, piątek i sobota liczone jako weekendy i święta w A5:A8 wyłączone:

    =WORKDAY.INTL(A2, 30, 7, A5:A8)

    lub

    =WORKDAY.INTL(A2, 30, "0000110", A5:A8)

    Do odjąć 30 dni roboczych od daty rozpoczęcia, niedziela i poniedziałek liczone jako weekendy i święta w A5:A8 wyłączone:

    =WORKDAY.INTL(A2, -30, 2, A5:A8)

    lub

    =WORKDAY.INTL(A2, -30, "1000001", A5:A8)

    Aby dodać 10 dni roboczych do aktualna data , niedziela jako jedyny dzień weekendowy, bez świąt:

    =WORKDAY.INTL(TODAY(), 10, 11)

    lub

    =WORKDAY.INTL(A2, 10, "0000001")

    W Twoim arkuszu Excel formuły mogą wyglądać podobnie do tego:

    Uwaga. Obie funkcje Excela WORKDAY i WORKDAY.INTL zwracają liczby porządkowe reprezentujące daty. Aby uzyskać te liczby wyświetlane jako daty, należy zaznaczyć komórki z liczbami i nacisnąć Ctrl+1, aby otworzyć okno dialogowe Formatuj komórki dialog. na Numer zakładka, wybierz Data w Kategoria listę i wybierz żądany format daty. Szczegółowe kroki znajdziesz w rozdziale Jak zmienić format daty w programie Excel.

    Błędy programu Excel WORKDAY i WORKDAY.INTL

    Jeśli Twoja formuła WORKDAY lub WORKDAY.INTL w Excelu zwraca błąd, przyczyną jest prawdopodobnie jedna z poniższych:

    #NUM! błąd występuje, jeśli:

    • połączenie początek_daty oraz dni w wyniku czego otrzymujemy niepoprawną datę, lub
    • weekend argument w funkcji WORKDAY.INTL jest nieprawidłowy.

    #VALUE! błąd występuje, jeśli:

    • początek_daty lub dowolną wartość w święta nie jest ważną datą, lub
    • dni argument jest nie-numeryczny.

    Funkcja Excel NETWORKDAYS

    Funkcja NETWORKDAYS w Excelu zwraca liczbę dni roboczych między dwiema datami, z wyłączeniem weekendów i, opcjonalnie, określonych przez użytkownika świąt.

    Składnia programu Excel NETWORKDAYS jest intuicyjna i łatwa do zapamiętania:

    NETWORKDAYS(begin_date, end_date, [holidays])

    Pierwsze dwa argumenty są obowiązkowe, a trzeci jest opcjonalny:

    • Początek_daty - data początkowa, od której należy zacząć liczyć dni robocze.
    • Koniec_daty - koniec okresu, za który liczone są dni robocze.

    Zarówno data początkowa jak i końcowa są wliczane do zwracanej liczby dni roboczych.

    • Wakacje - opcjonalna lista świąt, które nie powinny być liczone jako dni robocze.

    Jak używać NETWORKDAYS w Excelu - przykład formuły

    Powiedzmy, że masz listę świąt w komórkach A2:A5, daty rozpoczęcia w kolumnie B, daty zakończenia w kolumnie C i chcesz wiedzieć, ile dni roboczych jest pomiędzy tymi datami. Odpowiednia formuła NETWORKDAYS jest łatwa do rozgryzienia:

    =NETWORKDAYS(B2, C2, $A$2:$A$5)

    Zauważ, że funkcja Excel NETWORKDAYS zwraca wartość dodatnią, gdy data początkowa jest mniejsza niż data końcowa, a wartość ujemną, gdy data końcowa jest bardziej aktualna niż data początkowa (jak w wierszu 5):

    Funkcja Excel NETWORKDAYS.INTL

    Podobnie jak NETWORKDAYS, funkcja NETWORKDAYS.INTL programu Excel oblicza liczbę dni tygodnia między dwiema datami, ale pozwala określić, które dni powinny być liczone jako dni weekendowe.

    Składnia funkcji NETWORKDAYS.INTL jest bardzo podobna do NETWORKDAYS', z tym że posiada dodatkowy parametr [weekend], który wskazuje, które dni tygodnia powinny być liczone jako weekendy.

    NETWORKDAYS.INTL( start_data, end_data, [weekend], [święta] )

    Na stronie weekend argument może przyjąć liczbę lub łańcuch. Liczby i łańcuchy weekendowe są dokładnie takie same jak w weekend parametr funkcji WORKDAY.INTL.

    Funkcja NETWORKDAYS.INTL jest dostępna w programie Excel 365 - 2010.

    Użycie NETWORKDAYS.INTL w Excelu - przykład formuły

    Korzystając z listy dat z poprzedniego przykładu, obliczmy liczbę dni roboczych pomiędzy dwiema datami, w których jedynym dniem roboczym jest niedziela. W tym celu w polu wyszukiwania wpiszemy liczbę 11. weekend argumentu formuły NETWORKDAYS.INTL lub zrobić ciąg sześciu 0 i jednej 1 ("0000001"):

    =NETWORKDAYS.INTL(B2, C2, 11, $A$2:$A$5)

    Albo

    =NETWORKDAYS.INTL(B2, C2, "0000001", $A$2:$A$5)

    Poniższy zrzut ekranu dowodzi, że obie formuły zwracają absolutnie identyczne wyniki.

    Jak wyróżnić dni robocze w programie Excel

    Za pomocą funkcji WORKDAY i WORKDAY.INTL można nie tylko obliczać dni robocze w arkuszach Excela, ale także wyróżniać je zgodnie z logiką biznesową. W tym celu tworzy się regułę formatowania warunkowego z formułą WORKDAY lub WORKDAY.INTL.

    Na przykład na liście dat w kolumnie B zaznaczmy tylko przyszłe daty, które są w ciągu 15 dni roboczych od dzisiejszej daty, z wyłączeniem dwóch świąt w komórkach A2:A3. Najbardziej oczywista formuła, która przychodzi do głowy, jest następująca:

    =AND($B2>TODAY(), $B2<=WORKDAY(TODAY(), 15, $A$2:$A$3))

    W pierwszej części testu logicznego odcinasz daty przeszłe, czyli sprawdzasz, czy data jest równa lub większa od dzisiejszej: $B2>TODAY(). Natomiast w drugiej części sprawdzasz, czy data jest nie dalej niż 15 dni roboczych w przyszłości, z wyłączeniem dni weekendowych i określonych świąt: $B2<=WORKDAY(TODAY(), 15, $A$2:$A$3)

    Formuła wygląda poprawnie, ale gdy stworzysz na jej podstawie regułę, zorientujesz się, że podkreśla ona błędne daty:

    Spróbujmy zastanowić się, dlaczego tak się dzieje. Problem nie leży po stronie funkcji WORKDAY, jak ktoś może wywnioskować. Funkcja jest poprawna, ale... co właściwie robi? Zwraca datę 15 dni roboczych od teraz, z wyłączeniem dni weekendowych (sobota i niedziela) oraz świąt w komórkach A2:A3.

    No dobrze, a co robi reguła oparta na tej formule? Podświetla WSZYSTKIE daty, które są równe lub większe od dzisiejszej i mniejsze od daty zwróconej przez funkcję PRACA. Widzisz, wszystkie daty! Jeśli nie chcesz kolorować weekendów i świąt, to musisz wyraźnie powiedzieć Excelowi, żeby tego nie robił. Dodajemy więc do naszej formuły jeszcze dwa warunki:

    • Funkcja WEEKDAY do wykluczenia weekendów: WEEKDAY($B2, 2)<6
    • Funkcja COUNTIF do wykluczenia świąt: COUNTIF($A$2:$A$3, $B2)=0

    Jak pokazano na poniższym zrzucie ekranu, poprawiona formuła działa doskonale:

    =AND($B2>TODAY(), $B2<=WORKDAY(TODAY(), 15, $A$2:$A$3), COUNTIF($A$2:$A$3, $B2)=0, WEEKDAY($B2, 2)<6)

    Jak widzisz, funkcje WORKDAY i WORKDAY.INTL sprawiają, że obliczanie dni roboczych w Excelu jest szybkie i łatwe. Oczywiście, twoje rzeczywiste formuły prawdopodobnie będą bardziej wyrafinowane, ale znajomość podstaw pomaga ogromnie, ponieważ możesz zapamiętać tylko mały zestaw istotnych rzeczy i wyprowadzić resztę. Dziękuję za przeczytanie i mam nadzieję, że zobaczymy się na naszym blogu w przyszłym tygodniu!

    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.