# lunarweekname funkcja skryptu i funkcja wykresu

Ta funkcja zwraca wartość pokazującą rok i numer tygodnia księżycowego odpowiadający znacznikowi czasu pierwszej milisekundy pierwszego dnia tygodnia księżycowego zawierającego wartość date. Tygodnie księżycowe w Qlik Sense są zdefiniowane przez uznanie 1 stycznia za pierwszy dzień tygodnia i każdy tydzień, z wyjątkiem ostatniego tygodnia roku, będzie zawierał dokładnie siedem dni.

Składnia:

LunarWeekName(date [, period\_no[, first\_week\_day]])

Typ zwracanych danych: wartość podwójna

Przykładowy diagram funkcji `lunarweekname()`

Przykładowy diagram funkcji `lunarweekname()`

Przykładowy diagram funkcji `lunarweekname()`lunarweekname() ![Przykładowy diagram pokazujący, jak funkcja lunarweekname konwertuje datę wejściową na wartość przedstawiającą kombinację roku i numeru tygodnia księżycowego.](https://help.qlik.com/pl-PL/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-lunarweekname-general.png)

Funkcja `lunarweekname()` określa, w którym tygodniu księżycowym wypada ta data, zaczynając liczenie tygodni od 1 stycznia. Następnie zwraca wartość złożoną z `year/weekcount`.

Argumenty

| Argument | Opis |
| --- | --- |
| date | Data lub znacznik czasu do oszacowania. |
| period\_no | Parametr period\_no jest liczbą całkowitą lub wyrażeniem, którego wynikiem jest liczba całkowita, gdzie wartość 0 wskazuje tydzień księżycowy zawierający wartość date. Wartości ujemne parametru period\_no oznaczają poprzednie tygodnie księżycowe, a wartości dodatnie — następne tygodnie księżycowe. |
| first\_week\_day | Przesunięcie może być większe lub mniejsze od zera. Zmienia to początek roku o określoną liczbę dni lub części dnia. |

## Kiedy używać

Funkcja `lunarweekname()` jest przydatna, gdy chcesz porównać agregacje według tygodni księżycowych. Na przykład, za pomocą tej funkcji można obliczyć całkowitą wielkość sprzedaży produktów według tygodnia księżycowego. Tygodnie księżycowe są przydatne, gdy chcemy mieć pewność, że wszystkie wartości znajdujące się w pierwszym tygodniu roku obejmują tylko wartości nie wcześniejsze niż z 1 stycznia.

Te wymiary można utworzyć w skrypcie ładowania za pomocą funkcji tworzenia pola w tabeli kalendarza głównego. Tej funkcji można także użyć bezpośrednio na wykresie jako wymiaru wyliczanego.

Przykłady funkcji

| Przykład | Wynik |
| --- | --- |
| `lunarweekname('01/12/2013')` | Zwraca wartość 2006/02. |
| `lunarweekname('01/12/2013', -1)` | Zwraca wartość 2006/01. |
| `lunarweekname('01/12/2013', 0, 1)` | Zwraca wartość 2006/02. |

## Ustawienia regionalne

Jeżeli nie podano inaczej, w przykładach w tym temacie stosowany jest następujący format daty: MM/DD/YYYY. 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. Qlik Sense będzie wyświetlane w tym samym języku co używana przez Ciebie przeglądarka.

## Przykład 1 — data bez dodatkowych argumentów

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/lunarweekname.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 zestaw transakcji za rok 2022, który jest ładowany do tabeli o nazwie „`Transactions`”.

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

* Utworzenie pola , `  lunar_week_name `, które zwraca rok i numer tygodnia dla tygodnia księżycowego, w którym zawarto transakcję.

Skrypt ładowania

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

Transactions:
    Load
        *,
        lunarweekname(date) as lunar_week_name
        ;
Load
*
Inline 
[
id,date,amount
8188,1/7/2022,17.17
8189,1/19/2022,37.23
8190,2/28/2022,88.27
8191,2/5/2022,57.42
8192,3/16/2022,53.80
8193,4/1/2022,82.06
8194,5/7/2022,40.39
8195,5/16/2022,87.21
8196,6/15/2022,95.93
8197,6/26/2022,45.89
8198,7/9/2022,36.23
8199,7/22/2022,25.66
8200,7/23/2022,82.77
8201,7/27/2022,69.98
8202,8/2/2022,76.11
8203,8/8/2022,25.12
8204,8/19/2022,46.23
8205,9/26/2022,84.21
8206,10/14/2022,96.24
8207,10/29/2022,67.67
];
```

Wyniki

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

* `date`

* `lunar_week_name`

Tabela wynikowa

| date | lunar\_week\_name |
| --- | --- |
| 1/7/2022 | 2022/01 |
| 1/19/2022 | 2022/03 |
| 2/5/2022 | 2022/06 |
| 2/28/2022 | 2022/09 |
| 3/16/2022 | 2022/11 |
| 4/1/2022 | 2022/13 |
| 5/7/2022 | 2022/19 |
| 5/16/2022 | 2022/20 |
| 6/15/2022 | 2022/24 |
| 6/26/2022 | 2022/26 |
| 7/9/2022 | 2022/28 |
| 7/22/2022 | 2022/29 |
| 7/23/2022 | 2022/30 |
| 7/27/2022 | 2022/30 |
| 8/2/2022 | 2022/31 |
| 8/8/2022 | 2022/32 |
| 8/19/2022 | 2022/33 |
| 9/26/2022 | 2022/39 |
| 10/14/2022 | 2022/41 |
| 10/29/2022 | 2022/44 |

Pole `lunar_week_name` jest tworzone w instrukcji ładowania poprzedzającego przez użycie funkcji `lunarweekname()` i przekazanie pola `date` jako argumentu funkcji.

Funkcja `lunarweekname()` sprawdza, w którym tygodniu księżycowym wypada wartość daty oraz zwraca rok i numer tygodnia obejmujące tę datę.

Diagram funkcji `lunarweekname()`, przykład bez dodatkowych argumentów

Diagram funkcji `lunarweekname()`, przykład bez dodatkowych argumentów

Diagram funkcji `lunarweekname()`lunarweekname(), przykład bez dodatkowych argumentów ![Diagram pokazujący, jak funkcja lunarweekname konwertuje datę wejściową na wartość przedstawiającą kombinację roku i numeru tygodnia księżycowego.](https://help.qlik.com/pl-PL/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-lunarweekname-examples-no-add-arg.png)

Transakcja 8189 miała miejsce 19 stycznia. Funkcja `lunarweekname()` oblicza, że ta data wypada w tygodniu księżycowym zaczynającym się 15 stycznia, czyli trzecim tygodniu księżycowym roku. W efekcie dla tej transakcji zostaje zwrócona wartość `lunar_week_name` 2022/03.

## Przykład 2 – data z argumentem period\_no

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/lunarweekname.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.

* Utworzenie pola, `previous_lunar_week_name`, które zwraca rok i numer tygodnia dla tygodnia księżycowego, w którym zawarto transakcję.

Skrypt ładowania

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

Transactions:
    Load
        *,
        lunarweekname(date,-1) as previous_lunar_week_name
        ;
Load
*
Inline 
[
id,date,amount
8188,1/7/2022,17.17
8189,1/19/2022,37.23
8190,2/28/2022,88.27
8191,2/5/2022,57.42
8192,3/16/2022,53.80
8193,4/1/2022,82.06
8194,5/7/2022,40.39
8195,5/16/2022,87.21
8196,6/15/2022,95.93
8197,6/26/2022,45.89
8198,7/9/2022,36.23
8199,7/22/2022,25.66
8200,7/23/2022,82.77
8201,7/27/2022,69.98
8202,8/2/2022,76.11
8203,8/8/2022,25.12
8204,8/19/2022,46.23
8205,9/26/2022,84.21
8206,10/14/2022,96.24
8207,10/29/2022,67.67
];
```

Wyniki

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

* `date`

* `previous_lunar_week_name`

Tabela wynikowa

| date | previous\_lunar\_week\_name |
| --- | --- |
| 1/7/2022 | 2021/52 |
| 1/19/2022 | 2022/02 |
| 2/5/2022 | 2022/05 |
| 2/28/2022 | 2022/08 |
| 3/16/2022 | 2022/10 |
| 4/1/2022 | 2022/12 |
| 5/7/2022 | 2022/18 |
| 5/16/2022 | 2022/19 |
| 6/15/2022 | 2022/23 |
| 6/26/2022 | 2022/25 |
| 7/9/2022 | 2022/27 |
| 7/22/2022 | 2022/28 |
| 7/23/2022 | 2022/29 |
| 7/27/2022 | 2022/29 |
| 8/2/2022 | 2022/30 |
| 8/8/2022 | 2022/31 |
| 8/19/2022 | 2022/32 |
| 9/26/2022 | 2022/38 |
| 10/14/2022 | 2022/40 |
| 10/29/2022 | 2022/43 |

W tym przypadku, ponieważ wartości `period_no` -1 użyto jako argumentu przesunięcia w funkcji `lunarweekname()`, funkcja najpierw identyfikuje tydzień księżycowy, w którym zawarto transakcje. Następnie zwraca rok i numer poprzedniego tygodnia.

Diagram funkcji `lunarweekname()`, przykład z argumentem period\_no

Diagram funkcji `lunarweekname()`, przykład z argumentem period\_no

Diagram funkcji `lunarweekname()`lunarweekname(), przykład z argumentem period\_no ![Diagram pokazujący, jak funkcja lunarweekname konwertuje datę wejściową transakcji na wartość połączoną przedstawiającą rok i numer tygodnia księżycowego, w którym ta transakcja została zawarta.](https://help.qlik.com/pl-PL/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-lunarweekname-examples-period-no.png)

Transakcja 8189 miała miejsce 19 stycznia. Funkcja `lunarweekname()` oblicza, że ta transakcja została zawarta w trzecim tygodniu księżycowym roku, więc zwraca rok i wartość dla tygodnia wcześniejszego o jeden, 02.2022, dla pola `previous_lunar_week_name`.

## Example 3 – data z argumentem first\_week\_day

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

#### Skrypt ładowania i wyniki

Przegląd

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

Skrypt ładowania zawiera ten sam zestaw danych i scenariusz co w pierwszym przykładzie. W tym przykładzie ustawiamy początek tygodni księżycowych na 5 stycznia.

Skrypt ładowania

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

Transactions:
    Load
        *,
        lunarweekname(date,0,4) as lunar_week_name
        ;
Load
*
Inline 
[
id,date,amount
8188,1/7/2022,17.17
8189,1/19/2022,37.23
8190,2/28/2022,88.27
8191,2/5/2022,57.42
8192,3/16/2022,53.80
8193,4/1/2022,82.06
8194,5/7/2022,40.39
8195,5/16/2022,87.21
8196,6/15/2022,95.93
8197,6/26/2022,45.89
8198,7/9/2022,36.23
8199,7/22/2022,25.66
8200,7/23/2022,82.77
8201,7/27/2022,69.98
8202,8/2/2022,76.11
8203,8/8/2022,25.12
8204,8/19/2022,46.23
8205,9/26/2022,84.21
8206,10/14/2022,96.24
8207,10/29/2022,67.67
];
```

Wyniki

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

* `date`

* `lunar_week_name`

Tabela wynikowa

| date | lunar\_week\_name |
| --- | --- |
| 1/7/2022 | 2022/01 |
| 1/19/2022 | 2022/03 |
| 2/5/2022 | 2022/05 |
| 2/28/2022 | 2022/08 |
| 3/16/2022 | 2022/11 |
| 4/1/2022 | 2022/13 |
| 5/7/2022 | 2022/18 |
| 5/16/2022 | 2022/19 |
| 6/15/2022 | 2022/24 |
| 6/26/2022 | 2022/25 |
| 7/9/2022 | 2022/27 |
| 7/22/2022 | 2022/29 |
| 7/23/2022 | 2022/29 |
| 7/27/2022 | 2022/30 |
| 8/2/2022 | 2022/30 |
| 8/8/2022 | 2022/31 |
| 8/19/2022 | 2022/33 |
| 9/26/2022 | 2022/38 |
| 10/14/2022 | 2022/41 |
| 10/29/2022 | 2022/43 |

Diagram funkcji `lunarweekname()`, przykład z argumentem first\_week\_day

Diagram funkcji `lunarweekname()`, przykład z argumentem first\_week\_day

Diagram funkcji `lunarweekname()`lunarweekname(), przykład z argumentem first\_week\_day ![Diagram pokazujący, jak funkcja lunarweekname konwertuje datę wejściową każdej transakcji na wartość połączoną przedstawiającą rok i numer tygodnia księżycowego.](https://help.qlik.com/pl-PL/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-lunarweekname-examples-first-week-day.png)

W tym przypadku przekazano wartość 4 jako argument `first_week_date` funkcji `lunarweekname()`, w wyniku czego początek tygodni księżycowych został przesunięty z 1 stycznia na 5 stycznia.

Transakcja 8188 została zawarta 7 stycznia. Ponieważ tygodnie księżycowe zaczynają się 5 stycznia, funkcja `lunarweekname()` oblicza, że tydzień księżycowy obejmujący 7 stycznia jest pierwszym tygodniem księżycowym roku. W efekcie dla tej transakcji zostaje zwrócona wartość `lunar_week_name` 2022/01.

## Przykład 4 — przykład z obiektem wykresu

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

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

Przegląd

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

Skrypt ładowania zawiera ten sam zestaw danych i scenariusz co w pierwszym przykładzie.

Jednak w tym przykładzie do aplikacji został załadowany niezmieniony zbiór danych. Obliczenia zwracające numer tygodnia księżycowego i rok, w którym zostały zawarte transakcje, są tworzone jako miara na obiekcie wykresu aplikacji.

Skrypt ładowania

```
Transactions:
Load
*
Inline 
[
id,date,amount
8188,1/7/2022,17.17
8189,1/19/2022,37.23
8190,2/28/2022,88.27
8191,2/5/2022,57.42
8192,3/16/2022,53.80
8193,4/1/2022,82.06
8194,5/7/2022,40.39
8195,5/16/2022,87.21
8196,6/15/2022,95.93
8197,6/26/2022,45.89
8198,7/9/2022,36.23
8199,7/22/2022,25.66
8200,7/23/2022,82.77
8201,7/27/2022,69.98
8202,8/2/2022,76.11
8203,8/8/2022,25.12
8204,8/19/2022,46.23
8205,9/26/2022,84.21
8206,10/14/2022,96.24
8207,10/29/2022,67.67
];
```

Wyniki

Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj to pole jako wymiar: date.

Aby obliczyć datę początkową tygodnia księżycowego, kiedy ma miejsce transakcja, utwórz następującą miarę:

=lunarweekname(date)

Tabela wynikowa

| date | =lunarweekname(date) |
| --- | --- |
| 1/7/2022 | 2022/01 |
| 1/19/2022 | 2022/03 |
| 2/5/2022 | 2022/06 |
| 2/28/2022 | 2022/09 |
| 3/16/2022 | 2022/11 |
| 4/1/2022 | 2022/13 |
| 5/7/2022 | 2022/19 |
| 5/16/2022 | 2022/20 |
| 6/15/2022 | 2022/24 |
| 6/26/2022 | 2022/26 |
| 7/9/2022 | 2022/28 |
| 7/22/2022 | 2022/29 |
| 7/23/2022 | 2022/30 |
| 7/27/2022 | 2022/30 |
| 8/2/2022 | 2022/31 |
| 8/8/2022 | 2022/32 |
| 8/19/2022 | 2022/33 |
| 9/26/2022 | 2022/39 |
| 10/14/2022 | 2022/41 |
| 10/29/2022 | 2022/44 |

Miarę „lunar\_week\_name” tworzy się w obiekcie wykresu, używając funkcji lunarweekname() i przekazując pole daty date jako jej argument.

Funkcja lunarweekname() sprawdza, w którym tygodniu księżycowym wypada wartość daty oraz zwraca rok i numer tygodnia obejmujące tę datę.

Diagram funkcji lunarweekname(), przykład obiektu wykresu

Diagram funkcji lunarweekname(), przykład obiektu wykresu

Diagram funkcji lunarweekname()lunarweekname(), przykład obiektu wykresu ![Diagram pokazujący, jak funkcja lunarweekname konwertuje datę wejściową na wartość przedstawiającą kombinację roku i numeru tygodnia księżycowego.](https://help.qlik.com/pl-PL/sense/May2026/Subsystems/Hub/Content/Resources/Images/scripting-functions-lunarweekname-examples-chart-object.png)

Transakcja 8189 miała miejsce 19 stycznia. Funkcja lunarweekname() oblicza, że ta data wypada w tygodniu księżycowym zaczynającym się 15 stycznia, czyli trzecim tygodniu księżycowym roku. W efekcie wartość lunar\_week\_name dla tej transakcji to 2022/03.

## Przykład 5 — zastosowanie

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/lunarweekname.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:

* Zestaw danych zawierający zestaw transakcji za rok 2022, który jest ładowany do tabeli o nazwie „Transactions”.

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

Użytkownik końcowy chciałby otrzymać obiekt wykresu przedstawiający łączną sprzedaż w ujęciu tygodniowym dla bieżącego roku. Tydzień 1, o długości siedmiu dni, powinien zaczynać się 1 stycznia. Można to osiągnąć nawet, jeśli ten wymiar jest nieodstępny w modelu danych przy użyciu funkcji lunarweekname() jako wymiaru wyliczanego na wykresie.

Skrypt ładowania

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

Transactions:
Load
*
Inline 
[
id,date,amount
8188,1/7/2022,17.17
8189,1/19/2022,37.23
8190,2/28/2022,88.27
8191,2/5/2022,57.42
8192,3/16/2022,53.80
8193,4/1/2022,82.06
8194,5/7/2022,40.39
8195,5/16/2022,87.21
8196,6/15/2022,95.93
8197,6/26/2022,45.89
8198,7/9/2022,36.23
8199,7/22/2022,25.66
8200,7/23/2022,82.77
8201,7/27/2022,69.98
8202,8/2/2022,76.11
8203,8/8/2022,25.12
8204,8/19/2022,46.23
8205,9/26/2022,84.21
8206,10/14/2022,96.24
8207,10/29/2022,67.67
];
```

Wyniki

Wykonaj następujące czynności:

1. Załaduj dane i otwórz arkusz. Utwórz nową tabelę.

2. Utwórz wymiar wyliczany, używając następującego wyrażenia:

   =lunarweekname(date)

3. Aby obliczyć łączną sprzedaż, utwórz następującą miarę agregacji:

   =sum(amount)

4. Ustaw Formatowanie liczb miary na Waluta.

Tabela wynikowa

| =lunarweekname(date) | =sum(amount) |
| --- | --- |
| 2022/01 | $17.17 |
| 2022/03 | $37.23 |
| 2022/06 | $57.42 |
| 2022/09 | $88.27 |
| 2022/11 | $53.80 |
| 2022/13 | $82.06 |
| 2022/19 | $40.39 |
| 2022/20 | $87.21 |
| 2022/24 | $95.93 |
| 2022/26 | $45.89 |
| 2022/28 | $36.23 |
| 2022/29 | $25.66 |
| 2022/30 | $152.75 |
| 2022/31 | $76.11 |
| 2022/32 | $25.12 |
| 2022/33 | $46.23 |
| 2022/39 | $84.21 |
| 2022/41 | $96.24 |
| 2022/44 | $67.67 |