# networkdays — funkcja skryptu i funkcja wykresu

Funkcja networkdays zwraca liczbę dni roboczych (poniedziałek–piątek) od start\_date do end\_date włącznie z uwzględnieniem opcjonalnych dni wolnych (holiday).

Składnia:

networkdays (start\_date, end\_date [, holiday])

Typ zwracanych danych: liczba całkowita

Diagram kalendarza przedstawiający zakres dat zwracany przez funkcję networkdays

Diagram kalendarza przedstawiający zakres dat zwracany przez funkcję networkdays

Diagram kalendarza przedstawiający zakres dat zwracany przez funkcję networkdays ![DODAĆ TEKST ATRYBUTU ALT.....!!!!!!](https://help.qlik.com/pl-PL/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-networkdays-general-calendar.png)

Funkcja `networkdays` ma następujące ograniczenia:

* Nie ma sposobu na zmodyfikowanie dni roboczych. Innymi słowy, nie da się zmodyfikować funkcji pod kątem regionów lub sytuacji obejmujących cokolwiek innego niż dni robocze od poniedziałku do piątku.

* Parametr `holiday` musi być stałą łańcuchową. Wyrażenia nie są akceptowane.

Argumenty

| Argument | Opis |
| --- | --- |
| start\_date | Data rozpoczęcia do oceny. |
| end\_date | Data zakończenia do oceny. |
| holiday | Okresy wolne od pracy wyłączane z dni roboczych. Dzień wolny jest określany jako data stała w formie ciągu. Można określić większą liczbę dat dni wolnych, rozdzielając je przecinkami.<br><br>Przykład: `  '12/25/2013', '12/26/2013', '12/31/2013', '01/01/2014' ` |

## Kiedy używać

Funkcja `networkdays()` jest używana jako część wyrażenia, gdy użytkownik chce, aby w obliczeniach użyto liczbę dni roboczych między dwiema datami. Można jej użyć na przykład do obliczenia sumy zarobków pracownika zatrudnionego na zasadach PAYE (pay-as-you-earn).

Przykłady funkcji

| Przykład | Wynik |
| --- | --- |
| `networkdays ('12/19/2013', '01/07/2014')` | Zwraca wartość 14 W tym przykładzie okresy wolne od pracy nie są uwzględnione. |
| `networkdays ('12/19/2013', '01/07/2014', '12/25/2013', '12/26/2013')` | Zwraca wartość 12 W tym przykładzie uwzględniony jest okres wolny od pracy od 12/25/2013 do 12/26/2013. |
| `networkdays ('12/19/2013', '01/07/2014', '12/25/2013', '12/26/2013', '12/31/2013', '01/01/2014')` | Zwraca wartość 10 W tym przykładzie uwzględnione są dwa okresy wolne od pracy. |

## Ustawienia regionalne

Jeżeli nie podano inaczej, w przykładach w tym temacie stosowany jest następujący format daty: MM/DD/RRRR. Format daty jest określony w instrukcji `SET DateFormat` w skrypcie ładowania danych. Domyślny format daty w Twoim systemie może być inny ze względu na ustawienia regionalne i inne czynniki. Formaty zastosowane w przykładach można zmienić, aby dostosować je do własnych wymagań. Zamiast tego można też zmienić formaty w skrypcie ładowania, aby pasowały do tych przykładów.

Domyślne ustawienia regionalne w aplikacjach są oparte na regionalnych ustawieniach systemu komputera lub serwera, na którym zainstalowano Qlik Sense. Jeśli serwer Qlik Sense, do którego uzyskujesz dostęp, jest ustawiony na Szwecję, Edytor ładowania danych użyje szwedzkich ustawień regionalnych dla dat, godziny i waluty. Te ustawienia regionalne nie są związane z językiem wyświetlanym w interfejsie użytkownika Qlik Sense. Interfejs Qlik Sense będzie wyświetlany w tym samym języku co używana przeglądarka.

## Przykład 1 — Przykład podstawowy

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/networkdays.htm)

#### Skrypt ładowania i wyniki

Przegląd

Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej sekcji.

Skrypt ładowania zawiera:

* Zestaw danych zawierający identyfikatory projektów oraz ich daty rozpoczęcia i zakończenia. Te informacje są ładowane do tabeli o nazwie `Projects`.

* Pole danych w formacie `DateFormat` zmiennej systemowej (MM/DD/RRRR).

* Utworzenie dodatkowego pola, `net_work_days`, aby obliczyć liczbę dni roboczych objętych przez każdy projekt.

Skrypt ładowania

```
SET DateFormat='MM/DD/YYYY';

Projects:
    Load
        *,
        networkdays(start_date,end_date) as net_work_days
        ;
Load
id,
start_date,
end_date
Inline 
[	
id,start_date,end_date
1,01/01/2022,01/18/2022
2,02/10/2022,02/17/2022
3,05/17/2022,07/05/2022
4,06/01/2022,06/12/2022
5,08/10/2022,08/26/2022
];
```

Wyniki

Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:

* `id`

* `start_date`

* `end_date`

* `net_work_days`

Tabela wynikowa

| id | start\_date | end\_date | net\_work\_days |
| --- | --- | --- | --- |
| 1 | 01/01/2022 | 01/18/2022 | 12 |
| 2 | 02/10/2022 | 02/17/2022 | 6 |
| 3 | 05/17/2022 | 07/05/2022 | 36 |
| 4 | 06/01/2022 | 06/12/2022 | 8 |
| 5 | 08/10/2022 | 08/26/2022 | 13 |

Ponieważ nie ma zaplanowanych dni wolnych (byłyby określone w trzecim argumencie funkcji `networkdays()`), funkcja oblicza liczbę dni roboczych między dwiema datami przez odjęcie `start_date` od `end_date`.

Diagram kalendarza z zaznaczonymi dniami roboczymi dla projektu 5 (brak dni wolnych)

Diagram kalendarza z zaznaczonymi dniami roboczymi dla projektu 5 (brak dni wolnych)

Diagram kalendarza z zaznaczonymi dniami roboczymi dla projektu 5 (brak dni wolnych)![Diagram kalendarza sierpnia przedstawiający dni robocze dla projektu z zestawu danych o identyfikatorze 5. W tym przypadku zaznaczone zostały wszystkie dni tygodnia (poniedziałek-piątek) od 10 do 26 sierpnia 2022 r., z wyłączeniem sobót i niedziel.](https://help.qlik.com/pl-PL/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-networkdays-example-basic.png)

Powyższy kalendarz wizualnie zaznacza projekt o `id` 5. Projekt 5 zaczyna się w środę 10 sierpnia 2022 r. i kończy 26 sierpnia 2022 r. Po odjęciu wszystkich sobót i niedziel między tymi dwiema datami włącznie pozostaje 13 dni roboczych.

## Przykład 2 – jeden dzień wolny

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/networkdays.htm)

#### Skrypt ładowania i wyniki

Przegląd

Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej sekcji.

Skrypt ładowania zawiera:

* Ten sam zestaw danych i zastosowanie co w poprzednim przykładzie.

* Pole danych w formacie zmiennej systemowej `DateFormat` (MM/DD/YYYY).

* Utworzenie dodatkowego pola, `net_work_days`, aby obliczyć liczbę dni roboczych objętych przez każdy projekt.

W tym przykładzie występuje jeden dzień wolny przypadający 19 sierpnia 2022 r.

Skrypt ładowania

```
SET DateFormat='MM/DD/YYYY';

Projects:
    Load
        *,
        networkdays(start_date,end_date,'08/19/2022') as net_work_days
        ;
Load
id,
start_date,
end_date
Inline 
[	
id,start_date,end_date
1,01/01/2022,01/18/2022
2,02/10/2022,02/17/2022
3,05/17/2022,07/05/2022
4,06/01/2022,06/12/2022
5,08/10/2022,08/26/2022
];
```

Wyniki

Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:

* `id`

* `start_date`

* `end_date`

* `net_work_days`

Tabela wynikowa

| id | start\_date | end\_date | net\_work\_days |
| --- | --- | --- | --- |
| 1 | 01/01/2022 | 01/18/2022 | 12 |
| 2 | 02/10/2022 | 02/17/2022 | 6 |
| 3 | 05/17/2022 | 07/05/2022 | 36 |
| 4 | 06/01/2022 | 06/12/2022 | 8 |
| 5 | 08/10/2022 | 08/26/2022 | 12 |

Dzień świąteczny został wprowadzony jako trzeci argument do funkcji `networkdays()`.

Diagram kalendarza z zaznaczonymi dniami roboczymi dla projektu 5 (jeden dzień wolny)

Diagram kalendarza z zaznaczonymi dniami roboczymi dla projektu 5 (jeden dzień wolny)

Diagram kalendarza z zaznaczonymi dniami roboczymi dla projektu 5 (jeden dzień wolny)![Diagram kalendarza sierpnia przedstawiający dni robocze dla projektu z zestawu danych o identyfikatorze 5. W tym przypadku zaznaczone zostały wszystkie dni tygodnia (poniedziałek-piątek) od 10 do 26 sierpnia 2022 r., z wyłączeniem 19 sierpnia 2022 r (święta).](https://help.qlik.com/pl-PL/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-networkdays-example-single-holiday.png)

Powyższy kalendarz wizualnie pokazuje ramy projektu 5, demonstrując korektę uwzględniającą dzień świąteczny. Ten dzień wypada w trakcie trwania projektu 5 w piątek 19 sierpnia 2022 r. W efekcie całkowita wartość `net_work_days` dla projektu 5 zostaje zmniejszona o jeden dzień, czyli z 13 do 12 dni.

## Przykład 3 – kilka dni świątecznych

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/networkdays.htm)

#### Skrypt ładowania i wyniki

Przegląd

Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej sekcji.

Skrypt ładowania zawiera:

* Ten sam zestaw danych i zastosowanie co w pierwszym przykładzie.

* Pole danych w formacie zmiennej systemowej `DateFormat` (MM/DD/YYYY).

* Utworzenie dodatkowego pola, `net_work_days`, aby obliczyć liczbę dni roboczych objętych przez każdy projekt.

Jednak w tym przykładzie są cztery dni robocze zaplanowane między 18 a 21 sierpnia 2022 r.

Skrypt ładowania

```
SET DateFormat='MM/DD/YYYY';

Projects:
    Load
        *,
        networkdays(start_date,end_date,'08/18/2022','08/19/2022','08/20/2022','08/21/2022') as net_work_days
        ;
Load
id,
start_date,
end_date
Inline 
[	
id,start_date,end_date
1,01/01/2022,01/18/2022
2,02/10/2022,02/17/2022
3,05/17/2022,07/05/2022
4,06/01/2022,06/12/2022
5,08/10/2022,08/26/2022
];
```

Wyniki

Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:

* `id`

* `start_date`

* `end_date`

* `net_work_days`

Tabela wynikowa

| id | start\_date | end\_date | net\_work\_days |
| --- | --- | --- | --- |
| 1 | 01/01/2022 | 01/18/2022 | 12 |
| 2 | 02/10/2022 | 02/17/2022 | 6 |
| 3 | 05/17/2022 | 07/05/2022 | 36 |
| 4 | 06/01/2022 | 06/12/2022 | 8 |
| 5 | 08/10/2022 | 08/26/2022 | 11 |

Cztery zaplanowane dni wolne zostały wpisane jako lista elementów rozdzielanych przecinkami, od trzeciego argumentu w funkcji `networkdays()`.

Diagram kalendarza z zaznaczonymi dniami roboczymi dla projektu 5 (kilka dni wolnych)

Diagram kalendarza z zaznaczonymi dniami roboczymi dla projektu 5 (kilka dni wolnych)

Diagram kalendarza z zaznaczonymi dniami roboczymi dla projektu 5 (kilka dni wolnych)![Diagram kalendarza sierpnia przedstawiający dni robocze dla projektu z zestawu danych o identyfikatorze 5. W tym przypadku zaznaczone zostały wszystkie dni tygodnia (poniedziałek-piątek) od 10 do 26 sierpnia 2022 r., z wyłączeniem 18 i 19 sierpnia 2022 r (święta).](https://help.qlik.com/pl-PL/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-networkdays-example-multiple-holidays.png)

Powyższy kalendarz wizualnie pokazuje ramy projektu 5, demonstrując korektę uwzględniającą te dni świąteczne. Okres zaplanowanych dni wolnych przypada w trakcie trwania projektu 5, z czego dwa z tych dni wypadają w czwartek i piątek. W efekcie całkowita wartość `net_work_days` dla projektu 5 zostaje zmniejszona z 13 do 11 dni.

## Przykład 4 – jeden dzień wolny

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/networkdays.htm)

#### Skrypt ładowania i wyrażenie wykresu

Przegląd

Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej sekcji.

Skrypt ładowania zawiera:

* Ten sam zestaw danych i zastosowanie co w pierwszym przykładzie.

* Pole danych w formacie zmiennej systemowej DateFormat (MM/DD/RRRR).

Jest jeden dzień wolny przypadający 19 sierpnia 2022 r.

Jednak w tym przykładzie do aplikacji został załadowany niezmieniony zbiór danych. Pole net\_work\_days jest obliczane jako miara w obiekcie wykresu.

Skrypt ładowania

```
SET DateFormat='MM/DD/YYYY';

Projects:
Load
id,
start_date,
end_date
Inline 
[	
id,start_date,end_date
1,01/01/2022,01/18/2022
2,02/10/2022,02/17/2022
3,05/17/2022,07/05/2022
4,06/01/2022,06/12/2022
5,08/10/2022,08/26/2022
];
```

Wyniki

Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako wymiary:

* id

* start\_date

* end\_date

Utwórz następującą miarę:

= networkdays(start\_date,end\_date,’08/19/2022’)

Tabela wynikowa

| id | start\_date | end\_date | net\_work\_days |
| --- | --- | --- | --- |
| 1 | 01/01/2022 | 01/18/2022 | 12 |
| 2 | 02/10/2022 | 02/17/2022 | 6 |
| 3 | 05/17/2022 | 07/05/2022 | 36 |
| 4 | 06/01/2022 | 06/12/2022 | 8 |
| 5 | 08/10/2022 | 08/26/2022 | 12 |

Dzień świąteczny został wprowadzony jako trzeci argument do funkcji networkdays().

Diagram kalendarza pokazujący dni robocze netto z jednym dniem wolnym (obiekt wykresu)

Diagram kalendarza pokazujący dni robocze netto z jednym dniem wolnym (obiekt wykresu)

Diagram kalendarza pokazujący dni robocze netto z jednym dniem wolnym (obiekt wykresu)![Diagram kalendarza sierpnia przedstawiający dni robocze dla projektu z zestawu danych o identyfikatorze 5. W tym przypadku zaznaczone zostały wszystkie dni tygodnia (poniedziałek-piątek) od 10 do 26 sierpnia 2022 r., z wyłączeniem 19 sierpnia 2022 r (święta).](https://help.qlik.com/pl-PL/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-networkdays-example-chart-single-holiday.png)

Powyższy kalendarz wizualnie pokazuje ramy projektu 5, demonstrując korektę uwzględniającą dzień świąteczny. Ten dzień wypada w trakcie trwania projektu 5 w piątek 19 sierpnia 2022 r. W efekcie całkowita wartość net\_work\_days dla projektu 5 zostaje zmniejszona o jeden dzień, czyli z 13 do 12 dni.