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:
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.
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ślidni
argument 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.
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 niedziela |
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ę |
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:
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:
- kombinacja
Data rozpoczęcia
Idni
argumenty dają nieprawidłową datę lub weekend
argument w funkcji DZIEŃ.ROBOCZY.INTL jest nieprawidłowy.
#WARTOŚĆ!błąd występuje, jeśli:
Data rozpoczęcia
lub dowolna wartość wwakacje
nie jest prawidłową datą lubdni
argument 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):
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] )
Theweekend
argument może przyjąć liczbę lub ciąg znaków. Liczby i łańcuchy weekendowe są dokładnie takie same jak w plikuweekend
parametrDZIEŃ 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 poluweekend
argument 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.
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:
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)
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