# inlunarweek Skript- och diagramfunktion

Denna funktion fastställer om timestamp ligger inom den sjudagarsperiod som innehåller base\_date. Sjudagarsperioder i Qlik Sense definieras genom att räkna 1 januari som den första dagen i veckan. Bortsett från årets sista vecka kommer varje vecka att ha exakt sju dagar.

Syntax:

InLunarWeek (timestamp, base\_date, period\_no[, first\_week\_day])

Returnerad datatyp: Booleansk

Anteckning om information

I Qlik Sense, representeras det booleska sanna värdet av -1, och det falska värdet representeras av 0.

`inlunarweek()`-funktionen avgör vilken sjudagarsperiod `base_date` infaller i. Den returnerar sedan ett booleskt värde när det har avgjort huruvida varje tidsmarkör inträffar under samma sjudagarsperiod som `base_date`.

Diagram för funktionen `inlunarweek()`

Diagram för funktionen `inlunarweek()`

Diagram för funktionen `inlunarweek()`inlunarweek() ![Exempeldiagram över inlunarweek-funktionen som visar de datum som funktionen kommer att returnera TRUE för utifrån den inmatade informationen.](https://help.qlik.com/sv-SE/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inlunarweek-overview.png)

## När ska du använda inlunarweek

Funktionen `inlunarweek()` returnerar ett booleskt resultat. Vanligtvis kommer denna typ av funktion att användas som ett villkor i ett IF-uttryck. Detta returnerar en aggregering eller beräkning beroende på om ett utvärderat datum inträffade under sjudagarsperioden i fråga.

Till exempel kan `inlunarweek()`-funktionen användas för att identifiera all utrustning som tillverkats under en specifik sjudagarsperiod.

Argument

| Argument | Beskrivning |
| --- | --- |
| timestamp | Det datum du vill jämföra mot base\_date. |
| base\_date | Data som används för att utvärdera sjudagarsperioden. |
| period\_no | Sjudagarsperiodens startpunkt kan flyttas med period\_no. period\_no är ett heltal där värdet 0 anger den sjudagarsperiod som innehåller base\_date. Negativa värden i period\_no anger föregående sjudagarsperioder och positiva värden anger efterföljande sjudagarsperioder. |
| first\_week\_day | En förflyttning av startpunkten som kan vara större eller mindre än noll. Detta flyttar början på året med det angivna antalet dagar och/eller delar av en dag. |

Exempel på funktioner

| Exempel | Resultat |
| --- | --- |
| `inlunarweek('01/12/2013', '01/14/2013',<br>0)` | Returnerar `TRUE`, eftersom värdet för `timestamp`, 01/12/2013, infaller under veckan 01/08/2013 till 01/14/2013. |
| `inlunarweek('01/12/2013', '01/07/2013',<br>0)` | Returnerar `FALSE`, eftersom `base_date` 01/07/2013 är i den sjudagarsperiod som definieras som 01/01/2013 till 01/07/2013. |
| `inlunarweek('01/12/2013', '01/14/2013',<br>-1)` | Returnerar `FALSE`. Om värdet period\_no anges till -1 växlar veckan till föregående vecka, 01/01/2013 till 01/07/2013. |
| `inlunarweek('01/07/2013', 01/14/2013',<br>-1)` | Returnerar `TRUE`. Jämfört med föregående exempel är `timestamp` i följande vecka, efter att ha tagit med flytten bakåt i beräkningen. |
| `inlunarweek('01/11/2006', '01/08/2006',<br>0, 3)` | Returnerar `FALSE`. Om värdet 3 anges för `first_week_day` innebär det att startvärdet för året beräknas från 01/04/2013. Därför infaller värdet för `base`\_date under den första veckan, och värdet för `timestamp` inträffar under veckan 01/11/2013 till 01/17/2013. |

`inlunarweek()`-funktionen används ofta i kombination med följande funktioner:

Relaterade funktioner

| Funktion | Interaktion |
| --- | --- |
| [lunarweekname Skript- och diagramfunktion](https://help.qlik.com/sv-SE/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/lunarweekname.htm) | Den här funktionen används för att fastställa sjudagarsperiodens nummer under det år som ett inmatningsdatum inträffar. |

## Lokala inställningar

Om inget annat anges använder exemplen i detta ämne följande datumformat: MM/DD/YYYY. Datumformatet anges i `SET DateFormat`-satsen i datainläsningsskriptet. Förvald datumformatering kan vara annorlunda i ditt system, på grund av dina regionala inställningar och andra faktorer. Du kan ändra formaten i exemplen nedan så att det passar dina krav. Eller så kan du ändra formaten i ditt laddningsskript så att de matchar dessa exempel. Mer information finns i [Ändra regioninställningar för applikationer och skript](https://help.qlik.com/sv-SE/cloud-services/Subsystems/Hub/Content/Sense_Hub/Apps/regional-settings-in-apps.htm).

Standardinställningar för region i applikationer baseras på användarprofilen. Dessa regionala formatinställningar är inte relaterade till språket som visas i Qlik Cloud användargränssnittet. Qlik Cloud kommer att visas på samma språk som webbläsaren du använder.

Om du är en applikationsskapare kan du ange standardregionen för applikationer du skapar. Mer information finns i [Ställa in önskade regioninställningar för att skapa appar och skript i Qlik Cloud-analys](https://help.qlik.com/sv-SE/cloud-services/Subsystems/Hub/Content/Sense_Hub/UserInterface/Languages.htm#Setting).

## Exempel 1 – inga ytterligare argument

#### Laddningsskript och resultat

Översikt

Öppna dataladdningsredigeraren och lägg till laddningsskriptet nedan i ett nytt delavsnitt.

Laddningsskriptet innehåller:

* En datauppsättning med transaktioner för månaden januari som laddas i en tabell som heter `Transactions`.

* Datumfältet har tillhandahållits i formatet (MM/DD/ÅÅÅÅ) i Systemvariabeln `DateFormat`.

Skapa ett fält, `in_lunar_week`, som avgör huruvida transaktionerna ägde rum under samma sjudagarsperiod som 10 januari.

Laddningsskript

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

Transactions:
    Load
        *,
        inlunarweek(date,'01/10/2022', 0) as in_lunar_week
        ;
Load
*
Inline 
[
id,date,amount
8183,'1/5/2022',42.32
8184,'1/6/2022',68.22
8185,'1/7/2022',15.25
8186,'1/8/2022',25.26
8187,'1/9/2022',37.23
8188,'1/10/2022',37.23
8189,'1/11/2022',17.17
8190,'1/12/2022',88.27
8191,'1/13/2022',57.42
8192,'1/14/2022',53.80
8193,'1/15/2022',82.06
8194,'1/16/2022',87.21
8195,'1/17/2022',95.93
8196,'1/18/2022',45.89
8197,'1/19/2022',36.23
8198,'1/20/2022',25.66
8199,'1/21/2022',82.77
8200,'1/22/2022',69.98
8201,'1/23/2022',76.11
];
```

Resultat

Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:

* `date`

* `in_lunar_week`

Resultattabell

| datum | in\_lunar\_week |
| --- | --- |
| 1/5/2022 | 0 |
| 1/6/2022 | 0 |
| 1/7/2022 | 0 |
| 1/8/2022 | -1 |
| 1/9/2022 | -1 |
| 1/10/2022 | -1 |
| 1/11/2022 | -1 |
| 1/12/2022 | -1 |
| 1/13/2022 | -1 |
| 1/14/2022 | -1 |
| 1/15/2022 | 0 |
| 1/16/2022 | 0 |
| 1/17/2022 | 0 |
| 1/18/2022 | 0 |
| 1/19/2022 | 0 |
| 1/20/2022 | 0 |
| 1/21/2022 | 0 |
| 1/22/2022 | 0 |
| 1/23/2022 | 0 |

`inlunarweek()`-funktion, grundläggande exempel

`inlunarweek()`-funktion, grundläggande exempel

`inlunarweek()`inlunarweek()-funktion, grundläggande exempel ![Exempel på användning av inlunarweek-funktionen som visar det datumintervall som funktionen kommer att returnera värdet TRUE för utifrån den inmatade informationen.](https://help.qlik.com/sv-SE/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inlunarweek-basic-example.png)

`in_lunar_week`-fältet skapades i den föregående load-satsen genom att använda `inlunarweek()`-funktionen och sedan skicka det följande som funktionens argument:

* `date`-fältet

* Ett hårdkodat datum för 10 januari som `base_date`

* Ett `period_no` på 0

Eftersom sjudagarsperioderna börjar 1 januari skulle 10 januari infalla under den sjudagarsperiod som börjar 8 januari och slutar 14 januari. Därför skulle alla transaktioner som inträffar mellan dessa datum i januari returnera det booleska värdet `TRUE`. Det här valideras i resultattabellen.

## Exempel 2 – period\_no

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

#### Exempel och resultat:

Översikt

Öppna dataladdningsredigeraren och lägg till laddningsskriptet nedan i ett nytt delavsnitt.

Laddningsskriptet innehåller:

* Samma datauppsättning och scenario som i det första exemplet.

* Datumfältet har tillhandahållits i formatet (MM/DD/ÅÅÅÅ) i Systemvariabeln `DateFormat`.

Men i det här exemplet är uppgiften att skapa ett fält, `2_lunar_weeks_later`, som avgör huruvida transaktionerna ägde rum två sjudagarsperioder efter 10 januari eller inte.

Laddningsskript

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

Transactions:
    Load
        *,
        inlunarweek(date,'01/10/2022', 2) as [2_lunar_weeks_later]
        ;
Load
*
Inline 
[
id,date,amount
8183,'1/5/2022',42.32
8184,'1/6/2022',68.22
8185,'1/7/2022',15.25
8186,'1/8/2022',25.26
8187,'1/9/2022',37.23
8188,'1/10/2022',37.23
8189,'1/11/2022',17.17
8190,'1/12/2022',88.27
8191,'1/13/2022',57.42
8192,'1/14/2022',53.80
8193,'1/15/2022',82.06
8194,'1/16/2022',87.21
8195,'1/17/2022',95.93
8196,'1/18/2022',45.89
8197,'1/19/2022',36.23
8198,'1/20/2022',25.66
8199,'1/21/2022',82.77
8200,'1/22/2022',69.98
8201,'1/23/2022',76.11
];
```

Resultat

Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:

* `date`

* `2_lunar_weeks_later`

Resultattabell

| datum | 2\_lunar\_weeks\_later |
| --- | --- |
| 1/5/2022 | 0 |
| 1/6/2022 | 0 |
| 1/7/2022 | 0 |
| 1/8/2022 | 0 |
| 1/9/2022 | 0 |
| 1/10/2022 | 0 |
| 1/11/2022 | 0 |
| 1/12/2022 | 0 |
| 1/13/2022 | 0 |
| 1/14/2022 | 0 |
| 1/15/2022 | 0 |
| 1/16/2022 | 0 |
| 1/17/2022 | 0 |
| 1/18/2022 | 0 |
| 1/19/2022 | 0 |
| 1/20/2022 | 0 |
| 1/21/2022 | 0 |
| 1/22/2022 | -1 |
| 1/23/2022 | -1 |

Exempel på `inlunarweek()`-funktion, period\_no

Exempel på `inlunarweek()`-funktion, period\_no

Exempel på `inlunarweek()`inlunarweek()-funktion, period\_no ![Exempel på inlunarweek-funktionen, period_no](https://help.qlik.com/sv-SE/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inlunarweek-period-no.png)

I det här fallet definierar funktionen veckan med början 22 januari som den sjudagarsperiod som transaktioner ska valideras mot, eftersom en `period_no` på 2 användes mot förskjutningsargumentet i `inlunarweek()`-funktionen. Därför kommer alla transaktioner som äger rum mellan 22 januari och 28 januari returnera ett booleskt resultat på `TRUE`.

## Exempel 3 – first\_week\_day

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

#### Laddningsskript och resultat

Översikt

Öppna skriptredigeraren och lägg till laddningsskriptet nedan till en ny flik.

Laddningsskriptet använder samma datauppsättning och scenario som i det första exemplet. Men i det här exemplet ställer vi in sjudagarsperioderna till att börja 6 januari.

* Samma datauppsättning och scenario som i det första exemplet.

* `DateFormat`-standardsystemvariabeln MM/DD/YYYY används.

* Ett `first_week_day`-argument på 5. Detta ställer in sjudagarsperioderna till att börja 5 januari.

Laddningsskript

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

Transactions:
    Load
        *,
        inlunarweek(date,'01/10/2022', 0,5) as in_lunar_week
        ;
Load
*
Inline 
[
id,date,amount
8183,'1/5/2022',42.32
8184,'1/6/2022',68.22
8185,'1/7/2022',15.25
8186,'1/8/2022',25.26
8187,'1/9/2022',37.23
8188,'1/10/2022',37.23
8189,'1/11/2022',17.17
8190,'1/12/2022',88.27
8191,'1/13/2022',57.42
8192,'1/14/2022',53.80
8193,'1/15/2022',82.06
8194,'1/16/2022',87.21
8195,'1/17/2022',95.93
8196,'1/18/2022',45.89
8197,'1/19/2022',36.23
8198,'1/20/2022',25.66
8199,'1/21/2022',82.77
8200,'1/22/2022',69.98
8201,'1/23/2022',76.11
];
```

Resultat

Ladda data och öppna ett ark. Skapa en ny tabell och lägg till dessa fält som dimensioner:

* `date`

* `in_lunar_week`

Resultattabell

| datum | in\_lunar\_week |
| --- | --- |
| 1/5/2022 | 0 |
| 1/6/2022 | -1 |
| 1/7/2022 | -1 |
| 1/8/2022 | -1 |
| 1/9/2022 | -1 |
| 1/10/2022 | -1 |
| 1/11/2022 | -1 |
| 1/12/2022 | -1 |
| 1/13/2022 | 0 |
| 1/14/2022 | 0 |
| 1/15/2022 | 0 |
| 1/16/2022 | 0 |
| 1/17/2022 | 0 |
| 1/18/2022 | 0 |
| 1/19/2022 | 0 |
| 1/20/2022 | 0 |
| 1/21/2022 | 0 |
| 1/22/2022 | 0 |
| 1/23/2022 | 0 |

Exempel på `inlunarweek()`-funktion, first\_week\_day

Exempel på `inlunarweek()`-funktion, first\_week\_day

Exempel på `inlunarweek()`inlunarweek()-funktion, first\_week\_day ![Exempel på användning av inlunarweek-funktionen som visar det datumintervall som funktionen kommer att returnera värdet TRUE för utifrån den inmatade informationen.](https://help.qlik.com/sv-SE/cloud-services/Subsystems/Hub/Content/Resources/Images/scripting-functions-inlunarweek-first-week-day.png)

I det här fallet förskjuts början på sjudagarsperiodskalendern till 6 januari eftersom ett `first_week_date`-argument på 5 används i `inlunarweek()`-funktion. Därför infaller 10 januari i den sjudagarsperiod som börjar 6 januari och slutar 12 januari. Alla transaktioner som infaller mellan de här två datumen returnerar det booleska värdet `TRUE`.

## Exempel 4 – Diagramobjekt

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

#### Laddningsskript och diagramuttryck:

Översikt

Öppna dataladdningsredigeraren och lägg till laddningsskriptet nedan i ett nytt delavsnitt.

Laddningsskriptet innehåller:

* Samma datauppsättning och scenario som i det första exemplet.

* Datumfältet har tillhandahållits i formatet (MM/DD/ÅÅÅÅ) i Systemvariabeln DateFormat.

I det här exemplet har dock den oförändrade datauppsättningen laddats till programmet. Beräkningen som avgör om transaktionerna skedde under samma sjudagarsperiod som 10 januari skapas som ett mått i ett diagramobjekt i programmet.

Laddningsskript

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

Transactions:
Load
*
Inline 
[
id,date,amount
8183,'1/5/2022',42.32
8184,'1/6/2022',68.22
8185,'1/7/2022',15.25
8186,'1/8/2022',25.26
8187,'1/9/2022',37.23
8188,'1/10/2022',37.23
8189,'1/11/2022',17.17
8190,'1/12/2022',88.27
8191,'1/13/2022',57.42
8192,'1/14/2022',53.80
8193,'1/15/2022',82.06
8194,'1/16/2022',87.21
8195,'1/17/2022',95.93
8196,'1/18/2022',45.89
8197,'1/19/2022',36.23
8198,'1/20/2022',25.66
8199,'1/21/2022',82.77
8200,'1/22/2022',69.98
8201,'1/23/2022',76.11
];
```

Resultat

Ladda data och öppna ett ark. Skapa en ny tabell och lägg till det här fältet som en dimension: date.

För att räkna ut om en transaktion sker under den sjudagarsperiod som innehåller 10 januari skapar du följande mått:

= inlunarweek(date,'01/10/2022', 0)

Resultattabell

| datum | =inlunarweek(date,'01/10/2022', 0) |
| --- | --- |
| 1/5/2022 | 0 |
| 1/6/2022 | 0 |
| 1/7/2022 | 0 |
| 1/8/2022 | -1 |
| 1/9/2022 | -1 |
| 1/10/2022 | -1 |
| 1/11/2022 | -1 |
| 1/12/2022 | -1 |
| 1/13/2022 | -1 |
| 1/14/2022 | -1 |
| 1/15/2022 | 0 |
| 1/16/2022 | 0 |
| 1/17/2022 | 0 |
| 1/18/2022 | 0 |
| 1/19/2022 | 0 |
| 1/20/2022 | 0 |
| 1/21/2022 | 0 |
| 1/22/2022 | 0 |
| 1/23/2022 | 0 |

## Exempel 5 – Scenario

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

#### Laddningsskript och diagramuttryck:

Översikt

Öppna dataladdningsredigeraren och lägg till laddningsskriptet nedan i ett nytt delavsnitt.

Laddningsskriptet innehåller:

* En datauppsättning läses in i en tabell som heter Products.

* Information bestående av produkt-ID, tillverkningsdatum och självkostnadspris.

I det här exemplet har man identifierat att utrustningsfel var orsaken till att produkter som tillverkades under den sjudagarsperiod där 12 januari ingick var defekta. Slutanvändaren vill ha ett diagramobjekt som visar, efter sjudagarsperiodens namn, status för vilka produkter som tillverkades som var "defekta" eller "felfria", samt kostnaden för de produkter som tillverkades den månaden.

Laddningsskript

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

Transactions:
Load
*
Inline 
[
product_id,manufacture_date,cost_price
8183,'1/5/2022',42.32
8184,'1/6/2022',68.22
8185,'1/7/2022',15.25
8186,'1/8/2022',25.26
8187,'1/9/2022',37.23
8188,'1/10/2022',37.23
8189,'1/11/2022',17.17
8190,'1/12/2022',88.27
8191,'1/13/2022',57.42
8192,'1/14/2022',53.80
8193,'1/15/2022',82.06
8194,'1/16/2022',87.21
8195,'1/17/2022',95.93
8196,'1/18/2022',45.89
8197,'1/19/2022',36.23
8198,'1/20/2022',25.66
8199,'1/21/2022',82.77
8200,'1/22/2022',69.98
8201,'1/23/2022',76.11
];
```

Resultat

Gör följande:

1. Ladda data och öppna ett ark. Skapa en ny tabell.

2. Skapa en dimension för att visa månadsnamnen:

   =lunarweekname(manufacture\_date)

3. Skapa ett mått för att identifiera vilka av produkterna som är defekta och vilka som är felfria med inlunarweek()-funktionen:

   =if(only(inlunarweek(manufacture\_date,makedate(2022,01,12),0)), 'Defective','Faultless')

4. Skapa ett mått för att summera cost\_price av produkterna:

   =sum(cost\_price)

5. Ange måttens Nummerformatering till Pengar.

6. Under Utseende, stänger du av Total.

Resultattabell

| lunarweekname(manufacture\_date) | =if(only(inlunarweek(manufacture\_date,makedate(2022,01,12),0)), 'Defective','Faultless') | =sum(cost\_price) |
| --- | --- | --- |
| 2022/01 | Felfri | $125.79 |
| 2022/02 | Defekt | $316.38 |
| 2022/03 | Felfri | $455.75 |
| 2022/04 | Felfri | $146.09 |

Funktionen inlunarweek() returnerar ett booleskt värde vid utvärdering av tillverkningsdatumen för var och en av produkterna. För alla produkter som tillverkats under den sjudagarsperiod där 10 januari ingår returnerar funktionen inlunarweek() det booleska värdet TRUE och markerar produkterna som "Defekta". För alla produkter som returnerar ett värde på FALSE och därför inte tillverkats under den veckan, markerar den produkterna som "Felfria".