# inlunarweektodate - skript- och diagramfunktion

Denna funktion tar reda på om timestamp ligger inom delen av sjudagarsperioden fram till och inklusive den sista millisekunden av 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:

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

Returnerad datatyp: Boolesk

Anteckning om information

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

Exempeldiagram för funktionen `inlunarweektodate()`

Exempeldiagram för funktionen `inlunarweektodate()`

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

Funktionen `inlunarweektodate()` fungerar som slutpunkt i sjudagarsperioden. `inlunarweek()`-funktionen å andra sidan avgör vilken sjudagarsperiod `base_date` infaller i. Om `base_date` exempelvis är 5 januari skulle alla tidsmarkörer mellan 1 januari och 5 januari returnera det booleska resultatet `TRUE`, medan datumen 6 och 7 januari och senare skulle returnera det booleska resultatet `FALSE`.

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. |

## Användning

Funktionen `inlunarweektodate()` returnerar ett booleskt resultat. Vanligtvis kommer denna typ av funktion att användas som ett villkor i ett IF-uttryck. `inlunarweektodate()`-funktionen används när användaren vill att beräkningen ska returnera en aggregering eller beräkning, beroende på om det beräknade datumet inträffade under ett visst segment av veckan ifråga.

Till exempel kan `inlunarweektodate()`-funktionen användas för att identifiera all utrustning som tillverkats under en viss vecka fram till och med ett visst datum.

Exempel på funktioner

| Exempel | Resultat |
| --- | --- |
| `inlunarweektodate('01/12/2013', '01/13/2013',<br>						0)` | Returnerar `TRUE`, eftersom värdet för `timestamp`, 01/12/2013, infaller under delen av veckan 01/08/2013 till 01/13/2013. |
| `inlunarweektodate('01/12/2013', '01/11/2013',<br>						0)` | Returnerar `FALSE`, eftersom värdet för `timestamp` är senare än värdet `base_date`, trots att båda datumen infaller under samma sjudagarsperiod före 01/12/2012. |
| `inlunarweektodate('01/12/2006', '01/05/2006',<br>						1)` | Returnerar `TRUE`. Att ange värdet 1 för `period_no` flyttar `base_date` framåt en vecka, så att värdet för `timestamp` Infaller under en del av sjudagarsperioden. |

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

Relaterade funktioner

| Funktion | Interaktion |
| --- | --- |
| [lunarweekname - skript- och diagramfunktion](https://help.qlik.com/sv-SE/sense/May2025/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/ÅÅÅÅ. 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.

Standardregionalinställningar i appar baseras på de regionala systeminställningarna för datorn eller servern där Qlik Sense är installerad. Om Qlik Sense-servern du ansluter till är inställd på Sverige så kommer skriptredigeraren använda regionala inställningar för Sverige för datum, tid och valuta. Dessa regionala formatinställningar är inte relaterade till språket som visas i Qlik Sense användargränssnittet. Qlik Sense kommer att visas på samma språk som webbläsaren du använder.

## 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 som innehåller en uppsättning transaktioner för månaden januari som laddas i en tabell som heter `Transactions`. `DateFormat`-standardsystemvariabeln MM/DD/YYYY används.

* Skapa ett fält, `in_lunar_week_to_date`, som avgör huruvida transaktionerna ägde rum under sjudagarsperioden fram till 10 januari.

Laddningsskript

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

Transactions:
    Load
        *,
        inlunarweektodate(date,'01/10/2022', 0) as in_lunar_week_to_date
        ;
Load
*
Inline 
[
id,date,amount
8188,'1/10/2022',37.23
8189,'1/17/2022',17.17
8190,'1/26/2022',88.27
8191,'1/12/2022',57.42
8192,'1/19/2022',53.80
8193,'1/21/2022',82.06
8194,'1/1/2022',40.39
8195,'1/27/2022',87.21
8196,'1/11/2022',95.93
8197,'1/29/2022',45.89
8198,'1/31/2022',36.23
8199,'1/18/2022',25.66
8200,'1/23/2022',82.77
8201,'1/15/2022',69.98
8202,'1/4/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_to_date`

Resultattabell

| datum | in\_lunar\_week\_to\_date |
| --- | --- |
| 1/1/2022 | 0 |
| 1/4/2022 | 0 |
| 1/10/2022 | -1 |
| 1/11/2022 | 0 |
| 1/12/2022 | 0 |
| 1/15/2022 | 0 |
| 1/17/2022 | 0 |
| 1/18/2022 | 0 |
| 1/19/2022 | 0 |
| 1/21/2022 | 0 |
| 1/23/2022 | 0 |
| 1/26/2022 | 0 |
| 1/27/2022 | 0 |
| 1/29/2022 | 0 |
| 1/31/2022 | 0 |

`inlunarweektodate()`-funktionen, inga ytterligare argument

`inlunarweektodate()`-funktionen, inga ytterligare argument

`inlunarweektodate()`inlunarweektodate()-funktionen, inga ytterligare argument![Exempel på användning av inlunarweektodate-funktionen som visar de datumintervall för vilka funktionen returnerar värdet TRUE utifrån den inmatade informationen.](https://help.qlik.com/sv-SE/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-inlunarweektodate-example-no-additional-arguments.png)

Fältet `in_lunar_week_to_date` skapades i den föregående load-satsen genom att använda funktionen `inlunarweektodate()` och skicka `date`-fältet, ett hårdkodat datum för 10 januari som vår `base_date`, och en förskjutning på 0 som funktionens argument.

Eftersom sjudagarsperioderna börjar 1 januari skulle 10 januari infalla under den sjudagarsperiod som börjar 8 januari, och eftersom vi använder `inlunarweektodate()`-funktionen skulle den sjudagarsperioden sluta den 10:e. 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/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/inlunarweektodate.htm)

#### Laddningsskript och resultat

Översikt

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

Laddningsskriptet innehåller samma datauppsättning och scenario som i det första exemplet. Men i det här fallet är uppgiften att skapa ett fält, `2_lunar_weeks_later`, som avgör huruvida transaktionerna ägde rum två veckor efter sjudagarsperioden fram till 1 januari.

Laddningsskript

```
SET DateFormat='MM/DD/YYYY';
Transactions:
    Load
        *,
        inlunarweektodate(date,'01/10/2022', 2) as [2_lunar_weeks_later]
        ;
Load
*
Inline
[
id,date,amount
8188,'1/10/2022',37.23
8189,'1/17/2022',17.17
8190,'1/26/2022',88.27
8191,'1/12/2022',57.42
8192,'1/19/2022',53.80
8193,'1/21/2022',82.06
8194,'1/1/2022',40.39
8195,'1/27/2022',87.21
8196,'1/11/2022',95.93
8197,'1/29/2022',45.89
8198,'1/31/2022',36.23
8199,'1/18/2022',25.66
8200,'1/23/2022',82.77
8201,'1/15/2022',69.98
8202,'1/4/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/1/2022 | 0 |
| 1/4/2022 | 0 |
| 1/10/2022 | 0 |
| 1/11/2022 | 0 |
| 1/12/2022 | 0 |
| 1/15/2022 | 0 |
| 1/17/2022 | 0 |
| 1/18/2022 | 0 |
| 1/19/2022 | 0 |
| 1/21/2022 | 0 |
| 1/23/2022 | -1 |
| 1/26/2022 | 0 |
| 1/27/2022 | 0 |
| 1/29/2022 | 0 |
| 1/31/2022 | 0 |

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

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

Exempel på `inlunarweektodate()`inlunarweektodate()-funktion, period\_no![Exempel på användning av inlunarweektodate-funktionen som visar de datumintervall för vilka funktionen returnerar värdet TRUE utifrån den inmatade informationen.](https://help.qlik.com/sv-SE/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-inlunarweektodate-example-period-no.png)

I det här fallet fastställer `inlunarweektodate()`-funktionen att sjudagarsperioden fram till 10 januari motsvarar tre dagar (8, 9 och 10 januari). Eftersom ett `period_no` på 2 användes som förskjutningsargument, ändras den här sjudagarsperioden med 14 dagar. Därför definieras denna tredagarsvecka så att den innehåller dagarna 22, 23 och 24 januari. Alla transaktioner som äger rum mellan 22 januari och 24 januari returnerar det booleska resultatet `TRUE`.

## Exempel 3 – first\_week\_day

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

#### Laddningsskript 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.

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

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

Laddningsskript

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

Transactions:
    Load
        *,
        inlunarweek(date,'01/10/2022', 0,3) as in_lunar_week_to_date
        ;
Load
*
Inline
[
id,date,amount
8188,'1/10/2022',37.23
8189,'1/17/2022',17.17
8190,'1/26/2022',88.27
8191,'1/12/2022',57.42
8192,'1/19/2022',53.80
8193,'1/21/2022',82.06
8194,'1/1/2022',40.39
8195,'1/27/2022',87.21
8196,'1/11/2022',95.93
8197,'1/29/2022',45.89
8198,'1/31/2022',36.23
8199,'1/18/2022',25.66
8200,'1/23/2022',82.77
8201,'1/15/2022',69.98
8202,'1/4/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_to_date`

Resultattabell

| datum | in\_lunar\_week\_to\_date |
| --- | --- |
| 1/1/2022 | 0 |
| 1/4/2022 | -1 |
| 1/10/2022 | -1 |
| 1/11/2022 | 0 |
| 1/12/2022 | 0 |
| 1/15/2022 | 0 |
| 1/17/2022 | 0 |
| 1/18/2022 | 0 |
| 1/19/2022 | 0 |
| 1/21/2022 | 0 |
| 1/23/2022 | 0 |
| 1/26/2022 | 0 |
| 1/27/2022 | 0 |
| 1/29/2022 | 0 |
| 1/31/2022 | 0 |

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

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

Exempel på `inlunarweektodate()`inlunarweektodate()-funktion, first\_week\_day![Exempel på användning av inlunarweektodate-funktionen som visar de datumintervall för vilka funktionen returnerar värdet TRUE utifrån den inmatade informationen.](https://help.qlik.com/sv-SE/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-inlunarweektodate-example-first-week-date.png)

I det här fallet kommer den första sjudagarsperioden att vara mellan 3 januari och 10 januari, eftersom `the first_week_date`-argumentet 3 används i `inlunarweek()`-funktionen. Eftersom 10 januari även är `base_date` kommer alla transaktioner som infaller mellan de här två datumen att returnera det booleska värdet `TRUE`.

## Exempel 4 – Diagramobjektexempel

#### Laddningsskript och diagramuttryck

Översikt

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

Laddningsskriptet innehåller samma datauppsättning och scenario som i det första exemplet.

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

Laddningsskript

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

Transactions: 
Load
*
Inline
[
id,date,amount
8188,'1/10/2022',37.23
8189,'1/17/2022',17.17
8190,'1/26/2022',88.27
8191,'1/12/2022',57.42
8192,'1/19/2022',53.80
8193,'1/21/2022',82.06
8194,'1/1/2022',40.39
8195,'1/27/2022',87.21
8196,'1/11/2022',95.93
8197,'1/29/2022',45.89
8198,'1/31/2022',36.23
8199,'1/18/2022',25.66
8200,'1/23/2022',82.77
8201,'1/15/2022',69.98
8202,'1/4/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.

Skapa följande mått:

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

Resultattabell

| datum | =inlunarweektodate(date,'01/10/2022', 0) |
| --- | --- |
| 1/1/2022 | 0 |
| 1/4/2022 | 0 |
| 1/10/2022 | -1 |
| 1/11/2022 | 0 |
| 1/12/2022 | 0 |
| 1/15/2022 | 0 |
| 1/17/2022 | 0 |
| 1/18/2022 | 0 |
| 1/19/2022 | 0 |
| 1/21/2022 | 0 |
| 1/23/2022 | 0 |
| 1/26/2022 | 0 |
| 1/27/2022 | 0 |
| 1/29/2022 | 0 |
| 1/31/2022 | 0 |

Exempel på inlunarweektodate()-funktionen, diagramobjekt

Exempel på inlunarweektodate()-funktionen, diagramobjekt

Exempel på inlunarweektodate()inlunarweektodate()-funktionen, diagramobjekt![Exempeldiagram med användning av inlunarweektodate-funktionen med hjälp av ett diagramuttryck som avgör huruvida en transaktion sker under den sjudagarsperiod som innehåller 10:e januari.](https://help.qlik.com/sv-SE/sense/May2025/Subsystems/Hub/Content/Resources/Images/scripting-functions-inlunarweektodate-example-chart-object.png)

Måttet in\_lunar\_week\_to\_date skapades i diagramobjektet genom att använda inlunarweektodate()-funktionen och skicka datumfältet, ett hårdkodat datum för 10 januari som vår base\_date och en förskjutning på 0 som funktionens argument.

Eftersom sjudagarsperioderna börjar 1 januari skulle 10 januari infalla under den sjudagarsperiod som börjar 8 januari. Dessutom skulle den sjudagarsperioden sluta den 10:e, eftersom vi använder inlunarweektodate()-funktionen. 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 5 – Scenario

#### 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 sjudagarsperioden den 12 januari var defekta. Frågan löstes den 13 januari. Slutanvändaren vill ha ett diagramobjekt som visar, efter vecka, status för vilka produkter som tillverkades som var "defekta" eller "felfria", samt kostnaden för de produkter som tillverkades den veckan.

Laddningsskript

```
SET TimestampFormat='M/D/YYYY h:mm:ss[.fff]';

Products:
Load
*
Inline 
[
product_id,manufacture_date,cost_price
8188,'01/02/2022 12:22:06',37.23
8189,'01/05/2022 01:02:30',17.17
8190,'01/06/2022 15:36:20',88.27
8191,'01/08/2022 10:58:35',57.42
8192,'01/09/2022 08:53:32',53.80
8193,'01/10/2022 21:13:01',82.06
8194,'01/11/2022 00:57:13',40.39
8195,'01/12/2022 09:26:02',87.21
8196,'01/13/2022 15:05:09',95.93
8197,'01/14/2022 18:44:57',45.89
8198,'01/15/2022 06:10:46',36.23
8199,'01/16/2022 06:39:27',25.66
8200,'01/17/2022 10:44:16',82.77
8201,'01/18/2022 18:48:17',69.98
8202,'01/26/2022 04:36:03',76.11
8203,'01/27/2022 08:07:49',25.12
8204,'01/28/2022 12:24:29',46.23
8205,'01/30/2022 11:56:56',84.21
8206,'01/30/2022 14:40:19',96.24
8207,'01/31/2022 05:28:21',67.67
];
```

Resultat

Gör följande:

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

2. Skapa en dimension för att visa veckonamnen.

   =weekname(manufacture\_date)

3. Skapa sedan en dimension som använder inlunarweektodate()-funktionen för att identifiera vilka av produkterna som är defekta och vilka som är felfria:

   =if(inlunarweektodate(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.

Resultattabell

| =lunarweekname(manufacture\_date) | =if(InLunarWeekToDate(manufacture\_date,makedate(2022,01,12),0),'Defective','Faultless') | =Sum(cost\_price) |
| --- | --- | --- |
| 2022/01 | Felfri | $142.67 |
| 2022/02 | Defekt | $320.88 |
| 2022/02 | Felfri | $141.82 |
| 2022/03 | Felfri | $214.64 |
| 2022/04 | Felfri | $147.46 |
| 2022/05 | Felfri | $248.12 |

Funktionen inlunarweektodate() returnerar ett booleskt värde vid utvärdering av tillverkningsdatumen för var och en av produkterna. För de som returnerar ett booleskt värde på TRUE, markerar det produkterna som ‘Defective’. För alla produkter som returnerar värdet FALSE, och därför inte har tillverkats under sjudagarsperioden fram till och med den 12 januari, markeras produkterna som ‘Faultless’.