fbpx

Różnica dni pomiędzy dwoma datami – funkcje DNI.ROBOCZE oraz DNI.ROBOCZE.NIESTAND

Aby obliczyć różnicę dni pomiędzy dwoma datami wystarczy oczywiście odjąć od siebie te daty. Daty przechowywane są w postaci liczb więc Excel nie będzie miał problemów z ich odjęciem. Czasami może zdarzyć się sytuacja, że w wyniku odejmowania dwóch dat otrzymamy trzecią datę – w takim przypadku wystarczy zmienić format liczby, z daty na ogólny.

W przypadku gdy z określonego zakresu dat chcemy wykluczyć określone dni, np. weekendy, lub święta należy użyć funkcji DNI.ROBOCZE lub DNI.ROBOCZE.NIESTAND MWSnap010. Obie obliczają różnice pomiędzy dwoma datami, pomijając różne dni, które uznawane są za wolne od pracy.

Funkcja DNI.ROBOCZE zwraca jako wynik liczbę dni pomiędzy dwoma datami pomijając weekendy (soboty i niedziele) oraz dni oznaczone jako święta (daty świąt wprowadzamy ręcznie). Składnia funkcji DNI.ROBOCZE:

DNI.ROBOCZE(data_początkowa; data_końcowa; [święta])

gdzie:

  • data_początkowa – data oznaczająca początek zakresu, z którego maja zostać zliczone dni,
  • data_końcowa – data będąca końcem zakresu, z którego będziemy zliczać dni,
  • święta – argument opcjonalny; wpisujemy w jego miejsce datę lub kilka dat (w postaci tablicowej), które również maja być pomijane podczas zliczania dni w danym zakresie; w przypadku pominięcia tego argumentu z przeszukiwanego zakresu zostaną usunięte tylko weekendy.

Wpisując daty, dla dwóch pierwszych argumentów należy posłużyć się dowołaniem do komórki z datą lub funkcją DATA zawierająca odpowiednie argumenty. Wpisując datę ręcznie, Excel będzie miał w tym przypadku problemy z jej prawidłowym zinterpretowaniem mimo, ze zapiszemy ją w sposób zgodny z formatem programu. Trzeci argument może zostać wpisany ręcznie (każdą datę wpisaną w trzeci argument należy ująć w cudzysłów; jeżeli jest ich kilka trzeba ująć je w nawias klamrowy oraz rozdzielić średnikami).

Funkcja DNI.ROBOCZE posiada nieco ograniczone możliwości, ponieważ dni oznaczone jako weekendy są w niej z góry narzucone (soboty i niedziele). W przypadku gdy chcemy oznaczyć inne dni wolne w ciągu tygodnia jako weekend, musimy użyć funkcji DNI.ROBOCZE.NIESTAND. Jej składnia wygląda następująco:

DNI.ROBOCZE.NIESTAND(data_początkowa; data_końcowa; [weekend]; [święta])

gdzie:

  • data_początkowa – data oznaczająca początek zakresu, z którego maja zostać zliczone dni,
  • data_końcowa – data będąca końce zakresu, z którego będziemy zliczać dni,
  • weekend – argument opcjonalny za pomocą którego oznaczamy, które dni w każdym z tygodni mają zostać uznane za wolne; argument określamy za pomocą specjalnych oznaczeń; w przypadku pominięcia argumentu weekendem jest sobota i niedziela,
  • święta – argument opcjonalny; zasada działania identyczna jak w przypadku funkcji DNI.ROBOCZE, tzn. wpisujemy konkretną datę lub daty, jakie mają zostać usunięte z zakresu; w przypadku pominięcia argumentu zostaną zliczone wszystkie dni poza weekendami.

Oznaczenia dni dla argumentu weekend:

  • 1 – Sobota, niedziela
  • 2 – Niedziela, poniedziałek
  • 3 – Poniedziałek, wtorek
  • 4 – Wtorek, środa
  • 5 – Środa, czwartek
  • 6 – Czwartek, piątek7 – Piątek, sobota
  • 11 – Tylko niedziela
  • 12 – Tylko poniedziałek
  • 13 – Tylko wtorek
  • 14 – Tylko środa
  • 15 – Tylko czwartek
  • 16 – Tylko piątek
  • 17 – Tylko sobota

Oczywiście nie ma potrzeby uczyć się oznaczeń na pamięć ponieważ, podczas tworzenia funkcji wyświetlana jest lista argumentów odpowiadających za poszczególne dni.

Innym sposobem oznaczenia dni wolnych i pracujących podczas tygodnia jest zastosowanie ciągu siedmiu znaków zer oraz jedynek, gdzie każda jedynka to dzień wolny, każde zero to dzień pracujący. W przypadku takiego zapisu kod zawsze musi składać się z 7 znaków oraz musi zostać ujęty w cudzysłów, np. ”0101010” oznacza, że wtorek, czwartek oraz sobota są dniami wolnymi.

Gratulacje!
Wniosek został wysłany prawidłowo.
Dziękujemy za przesłanie zapytania. Skontaktujemy się z Tobą najszybciej jak to możliwe.