Funkcje Excel WORKDAY i NETWORKDAYS do obliczania dni roboczych (2023)

W tym krótkim samouczku wyjaśniono użycie funkcji programu Excel NETWORKDAYS i WORKDAY do obliczania dni roboczych z niestandardowymi parametrami weekendowymi i dniami wolnymi od pracy.

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

TheDZIEŃ ROBOCZYfunkcja zwraca datę N dni roboczych w przyszłości lub w przeszłości i można jej użyć do dodawania lub odejmowania dni roboczych do podanej daty.

UżywającDNI ROBOCZEfunkcji, możesz obliczyć liczbę dni roboczych między dwiema określonymi datami.

W Excelu 2010 i nowszych dostępne są bardziej rozbudowane modyfikacje powyższych funkcji, DZIEŃ.ROBOCZY.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 obliczania dni roboczych w arkuszach programu Excel.

Funkcja Excel DZIEŃ ROBOCZY

Funkcja Excel WORKDAY zwraca datę, która jest określoną liczbą dni roboczych przed lub przed datą rozpoczęcia. Nie obejmuje to weekendów ani żadnych świąt, które określisz.

Funkcja WORKDAY służy do obliczania dni roboczych, kamieni milowych i terminów na podstawie standardowego kalendarza roboczego, przy czym sobota i niedziela to dni weekendowe.

DZIEŃ ROBOCZY to funkcja wbudowana w programie Excel 2007 — 365. We wcześniejszych wersjach należy włączyćPakiet narzędzi analitycznych.

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

DZIEŃ ROBOCZY(data_początkowa; dni; [święta])

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

  • Data rozpoczęcia- datę, od której należy rozpocząć liczenie dni tygodnia.
  • Dni- ilość dni roboczych do dodania/odjęcia od daty_początkowej. Liczba dodatnia zwraca datę przyszłą, liczba ujemna zwraca datę przeszłą.
  • Wakacje- opcjonalne zestawienie dat, które nie powinny być liczone jako dni robocze. Może to być albo zakres komórek zawierających daty, które chcesz wykluczyć z obliczeń, albo stała tablicowa liczb kolejnych reprezentujących daty.

Teraz, gdy znasz podstawy, zobaczmy, jak możesz użyć funkcji DZIEŃ ROBOCZY w arkuszach programu Excel.

Jak używać WORKDAY do dodawania/odejmowania dni roboczych do tej pory

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

  • Dododaćdni roboczych, wprowadź liczbę dodatnią jakodniargument formuły DZIEŃ ROBOCZY.
  • Doodejmowaćdni roboczych, użyj liczby ujemnej wdniargument.

Załóżmy, że masz datę początkową w komórce A2, listę świąt w komórkach B2:B5 i chcesz znaleźć daty za 30 dni roboczych w przyszłości iw 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:

=DZIEŃ ROBOCZY(A2; 30; B2:B5)

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

=DZIEŃ ROBOCZY(A2; -30; B2:B5)

Aby obliczyć dni tygodnia na podstawiebieżąca data, użyj funkcji DZIŚ() jako daty rozpoczęcia:

Aby dodać 30 dni roboczych do dzisiejszej daty:

=DZIEŃ ROBOCZY(DZISIAJ(); 30)

Aby odjąć 30 dni roboczych od dzisiejszej daty:

=DZIEŃ ROBOCZY(DZISIAJ(); -30)

Aby podać datę początkową bezpośrednio w formule, użyj funkcji DATA:

=DZIEŃ ROBOCZY(DATA(2015;5;6); 30)

Poniższy zrzut ekranu przedstawia wyniki wszystkich tych i kilku innych formuł WORKDAY:
Funkcje Excel WORKDAY i NETWORKDAYS do obliczania dni roboczych (1)

I oczywiście możesz wprowadzić liczbę dni roboczych, które chcesz dodać/odjąć od daty początkowej w jakiejś komórce, a następnie odwołać się do tej komórki w formule. Na przykład:

=DZIEŃ ROBOCZY(A2; C2)

Gdzie A2 to data początkowa, a C2 to liczba dni niebędących weekendami za (liczby ujemne) lub przed (liczby dodatnie) datą początkową, bez dni wolnych do wykluczenia.
Funkcje Excel WORKDAY i NETWORKDAYS do obliczania dni roboczych (2)

Wskazówka.W programach Excel 365 i 2021 możesz używać DZIEŃ ROBOCZY w połączeniu zSEKWENCJAwygenerowaćciąg dni roboczych.

Funkcja Excel DZIEŃ ROBOCZY.INTL

DZIEŃ.ROBOCZY.INTL to potężniejsza modyfikacja funkcji DZIEŃ.ROBOCZY, z którą współpracujeniestandardowe parametry weekendu. Oprócz 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 należy uznać za dni weekendowe.

Funkcja DZIEŃ.ROBOCZY.INTL została wprowadzona w programie Excel 2010 i dlatego nie jest dostępna we wcześniejszych wersjach programu Excel.

Składnia funkcji Excel DZIEŃ.ROBOCZY.INTL jest następująca:

DZIEŃ.ROBOCZY.INTL(data_początkowa; dni; [weekend]; [święta])

Pierwsze dwa argumenty są wymagane i są podobne do argumentów WORKDAY:

Data rozpoczęcia- datę początkową.

Dni- ilość dni roboczych przed (wartość ujemna) lub po (wartość dodatnia) daty rozpoczęcia. jeślidniargument jest podany jako liczba dziesiętna, jest on obcinany do liczby całkowitej.

Ostatnie dwa argumenty są opcjonalne:

Weekend- określa, które dni tygodnia mają być liczone jako dni weekendowe. Może to być liczba lub ciąg znaków, jak pokazano poniżej.

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

Ciąg weekendowy- seria siedmiu zer i jedynek reprezentujących 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 to weekendy.
  • „1000001” - poniedziałek i niedziela to weekendy.

Na pierwszy rzut oka ciągi weekendowe mogą wydawać się zbędne, ale osobiście bardziej podoba mi się ta metoda, ponieważ można zrobić ciąg weekendowy w locie, bez konieczności zapamiętywania 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.

Korzystanie z WORKDAY.INTL w Excelu - przykłady formuł

Cóż, dość duża 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 sprawi, że wszystko będzie naprawdę łatwe.

W naszym zbiorze danych z datą początkową w komórce A2 i listą świąt w komórce A5:A8 obliczmy dni robocze z niestandardowymi weekendami.

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

=DZIEŃ.ROBOCZY.INTL(A2; 30; 7; A5:A8)

Lub

=DZIEŃ.ROBOCZY.INTL(A2; 30; "0000110", A5:A8)

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

=DZIEŃ.ROBOCZY.INTL(A2; -30; 2; A5:A8)

Lub

=DZIEŃ.ROBOCZY.INTL(A2; -30; "1000001", A5:A8)

Aby dodać 10 dni roboczych dobieżąca data, niedziela jest jedynym dniem weekendu, bez świąt:

=DZIEŃ ROBOCZY.INTL(DZISIAJ(); 10; 11)

Lub

=DZIEŃ.ROBOCZY.INTL(A2; 10; "0000001")

W arkuszu programu Excel formuły mogą wyglądać podobnie do tego:
Funkcje Excel WORKDAY i NETWORKDAYS do obliczania dni roboczych (3)

Notatka.Obie funkcje Excel WORKDAY i WORKDAY.INTL zwracają liczby kolejne reprezentujące daty. Aby wyświetlić te liczby jako daty, zaznacz komórki z liczbami i naciśnijCtrl+1aby otworzyćSformatuj komórkidialog. NaNumerzakładka, wybierzDatawKategorialistę i wybierz żądany format daty. Aby zapoznać się ze szczegółowymi krokami, zobaczJak zmienić format daty w programie Excel.

Błędy programu Excel WORKDAY i WORKDAY.INTL

Jeśli formuła programu Excel DZIEŃ.ROBOCZY lub DZIEŃ.ROBOCZY.INTL zwraca błąd, przyczyną może być jedna z następujących przyczyn:

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

  • kombinacjaData rozpoczęciaIdniargumenty dają nieprawidłową datę lub
  • weekendargument w funkcji DZIEŃ.ROBOCZY.INTL jest nieprawidłowy.

#WARTOŚĆ!błąd występuje, jeśli:

  • Data rozpoczęcialub dowolna wartość wwakacjenie jest prawidłową datą lub
  • dniargument nie jest liczbą.

Funkcja Excel DNI ROBOCZE

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

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

NETWORKDAYS(data_początkowa; data_końcowa; [święta])

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

  • Data rozpoczęcia- początkowa data, od której należy rozpocząć liczenie dni roboczych.
  • Data końcowa- koniec okresu, za który liczysz dni robocze.

Zarówno data rozpoczęcia, jak i data zakończenia są wliczane do zwracanej liczby dni roboczych.

  • Wakacje- opcjonalna lista świąt, które nie powinny być wliczane do dni roboczych.

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

Załóżmy, ż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 między tymi datami. Odpowiedni wzór na NETWORKDAYS jest łatwy do obliczenia:

=ROBOCZE(B2;C2;$A$2:$A$5)

Zwróć uwagę, że funkcja Excel NETWORKDAYS zwraca wartość dodatnią, gdy data początkowa jest mniejsza niż data końcowa, oraz wartość ujemną, jeśli data końcowa jest późniejsza niż data początkowa (jak w wierszu 5):
Funkcje Excel WORKDAY i NETWORKDAYS do obliczania dni roboczych (4)

DNI.ROBOCZE.INTL programu Excel

Tak jakDNI ROBOCZE, funkcja DNI.ROBOCZE.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 funkcji NETWORKDAYS, z wyjątkiem tego, że ma dodatkowy parametr [weekend], który wskazuje, które dni tygodnia powinny być liczone jako weekendy.

NETWORKDAYS.INTL(data_początkowa, data_końcowa, [weekend], [święta] )

Theweekendargument może przyjąć liczbę lub ciąg znaków. Liczby i łańcuchy weekendowe są dokładnie takie same jak w plikuweekendparametrDZIEŃ ROBOCZY.INTL funkcja.

Funkcja DNI.ROBOCZE.INTL jest dostępna w programie Excel 365 — 2010.

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

Korzystając z listy dat z poprzedniego przykładu, obliczmy liczbę dni roboczych między dwiema datami, przy czym niedziela jest jedynym dniem weekendu. W tym celu wpisujesz liczbę 11 w poluweekendargument swojej formuły NETWORKDAYS.INTL lub utwórz ciąg sześciu zer i jednej 1 („0000001”):

=ROBOCZE.INTL(B2; C2; 11; $A$2:$A$5)

Lub

=ROBOCZE.INTL(B2;C2;"0000001"$A$2:$A$5)

Poniższy zrzut ekranu pokazuje, że obie formuły zwracają absolutnie identyczne wyniki.
Funkcje Excel WORKDAY i NETWORKDAYS do obliczania dni roboczych (5)

Jak wyróżnić dni robocze w programie Excel

Korzystając z funkcji WORKDAY i WORKDAY.INTL, możesz nie tylko obliczać dni robocze w arkuszach programu Excel, ale także wyróżniać je zgodnie z wymaganiami logiki biznesowej. W tym celu tworzyszreguła formatowania warunkowegoz formułą WORKDAY lub WORKDAY.INTL.

Na przykład na liście dat w kolumnie B wyróżnijmy tylko przyszłe daty przypadające w ciągu 15 dni roboczych od dzisiejszej daty, z wyłączeniem dwóch dni wolnych w komórkach A2:A3. Najbardziej oczywista formuła, która przychodzi na myśl, jest następująca:

=AND($B2>DZISIAJ(), $B2<=DZIEŃ ROBOCZY(DZISIAJ(), 15,$A$2:$A$3))

Pierwsza część testu logicznego odcina przeszłe daty, tzn. sprawdzasz, czy data jest równa lub większa niż dzisiejsza: $B2>TODAY(). W drugiej części sprawdzasz, czy data przypada nie dalej niż za 15 dni roboczych, z wyłączeniem dni weekendowych i określonych świąt:$B2<=DZIEŃ ROBOCZY(DZISIAJ(), 15, $A$2:$A$3)

Formuła wygląda poprawnie, ale gdy stworzysz na jej podstawie regułę, zdasz sobie sprawę, że wyróżnia ona błędne daty:
Funkcje Excel WORKDAY i NETWORKDAYS do obliczania dni roboczych (6)

Spróbujmy dowiedzieć się, dlaczego tak się dzieje. Problem nie dotyczy funkcji WORKDAY, jak ktoś może dojść do wniosku. Funkcja jest słuszna, ale... co właściwie robi? Zwraca datę za 15 dni roboczych od teraz, z wyłączeniem dni weekendowych (sobota i niedziela) oraz świąt w komórkach A2:A3.

No dobra, a co robi reguła oparta na tym wzorze? Podświetla WSZYSTKIE daty, które są równe lub większe niż dzisiaj i mniejsze niż data zwrócona przez funkcję WORKDAY. Zobaczysz? Wszystkie daty! Jeśli nie chcesz kolorować weekendów i świąt, musisz wyraźnie powiedzieć programowi Excel, aby tego nie robił. Dodajemy więc dwa dodatkowe warunki do naszej formuły:

  • TheFunkcja DZIEŃaby wykluczyć weekendy: WEEKDAY($B2, 2)<6
  • TheLICZ.JEŻELIaby wykluczyć święta: LICZ.JEŻELI($A$2:$A$3,$B2)=0

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

=AND($B2>DZISIAJ(), $B2<=DZIEŃ ROBOCZY(DZISIAJ(), 15, $A$2:$A$3), LICZ.JEŻELI($A$2:$A$3, $B2)=0, DZIEŃ.TYGODNIA($ B2, 2)<6)
Funkcje Excel WORKDAY i NETWORKDAYS do obliczania dni roboczych (7)

Jak widać, funkcje WORKDAY i WORKDAY.INTL sprawiają, że obliczanie dni roboczych w Excelu jest szybkie i łatwe. Oczywiście twoje prawdziwe formuły mogą być bardziej wyrafinowane, ale znajomość podstaw jest niezwykle pomocna, ponieważ możesz zapamiętać tylko niewielki zestaw podstawowych rzeczy i wyprowadzić resztę. Dziękuję za przeczytanie i mam nadzieję do zobaczenia na naszym blogu w przyszłym tygodniu!

Możesz być zainteresowanym także tym

  • Korzystanie z funkcji MIESIĄC i EOMIESIĄC w programie Excel
  • Dodaj lub odejmij miesiące do/od daty za pomocą funkcji EDATE do
  • Obliczanie numerów tygodni za pomocą funkcji Excel NUMER TYGODNIA
  • Odejmowanie dat, dodawanie dni, tygodni, miesięcy i lat do daty
Top Articles
Latest Posts
Article information

Author: Ms. Lucile Johns

Last Updated: 05/15/2023

Views: 5267

Rating: 4 / 5 (61 voted)

Reviews: 84% of readers found this page helpful

Author information

Name: Ms. Lucile Johns

Birthday: 1999-11-16

Address: Suite 237 56046 Walsh Coves, West Enid, VT 46557

Phone: +59115435987187

Job: Education Supervisor

Hobby: Genealogy, Stone skipping, Skydiving, Nordic skating, Couponing, Coloring, Gardening

Introduction: My name is Ms. Lucile Johns, I am a successful, friendly, friendly, homely, adventurous, handsome, delightful person who loves writing and wants to share my knowledge and understanding with you.