# weekyear - skript- och diagramfunktion

Funktionen returnerar det år som veckonumret hör till enligt miljövariablerna. Veckonummer går från 1 till cirka 52.

Syntax:

weekyear(timestamp [, first\_week\_day [, broken\_weeks [, reference\_day]]])

Returnerad datatyp: heltal

Argument

| Argument | Beskrivning |
| --- | --- |
| timestamp | Det datum eller den tidsmarkör som ska utvärderas. |
| first\_week\_day | Anger dagen då veckan startar. Om utelämnat används värdet för variabeln FirstWeekDay.<br><br>De möjliga värdena first\_week\_day är 0 för måndag, 1 för tisdag, 2 för onsdag, 3 för torsdag, 4 för fredag, 5 för lördag och 6 för söndag.<br><br>Se [FirstWeekDay](https://help.qlik.com/sv-SE/sense/November2024/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/FirstWeekDay.htm) för mer information om systemvariabeln. |
| broken\_weeks | Om du inte anger broken\_weeks används värdet för variabeln BrokenWeeks till att definiera om veckor är brutna eller inte.<br><br>Se [BrokenWeeks](https://help.qlik.com/sv-SE/sense/November2024/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/BrokenWeeks.htm) för mer information om systemvariabeln |
| reference\_day | Om du inte specificerar reference\_day används värdet för variabeln ReferenceDay till att definiera vilken dag i januari som ska ställas in som referensdag för att definiera vecka 1. Qlik Sense-funktioner använder som standard 4 som referensdag. Det betyder att vecka 1 måste innehålla 4 januari, eller med andra ord, vecka 1 måste alltid bestå av minst 4 dagar i januari.<br><br>Se [ReferenceDay](https://help.qlik.com/sv-SE/sense/November2024/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/ReferenceDay.htm) för mer information om systemvariabeln |

`weekyear()`-funktionen bestämmer vilken vecka under året datumet infaller. Den returnerar sedan det år som motsvarar det veckonumret.

Om `BrokenWeeks` är inställt på `0` (false), kommer `weekyear()` att returnera samma som `year()`.

Diagram för `weekyear()`-funktionens intervall

Diagram för `weekyear()`-funktionens intervall

Diagram för `weekyear()`weekyear()-funktionens intervall ![Diagram som visar tidsintervallet som utvärderas av weekyear()-funktionen.](https://help.qlik.com/sv-SE/sense/November2024/Subsystems/Hub/Content/Resources/Images/scripting-functions-weekyear-diagram1.png)

Men om systemvariabeln `BrokenWeeks` sätts till att använda obrutna veckor får vecka 1 bara innehålla ett visst antal dagar i januari baserat på det specificerade värdet i systemvariabeln `ReferenceDay`.

Om exempelvis ett `ReferenceDay`-värde på `4` används måste vecka 1 ha minst fyra dagar i januari. Vecka 1 kan innehålla datum i december föregående år och det sista veckonumret under ett år kan innehålla datum i januari i följande år. I situationer som denna kommer `weekyear()`-funktionen att returnera ett annat värde än `year()`-funktionen.

Diagram för `weekyear()`-funktionens intervall när obrutna veckor används

Diagram för `weekyear()`-funktionens intervall när obrutna veckor används

Diagram för `weekyear()`weekyear()-funktionens intervall när obrutna veckor används ![Diagram som visar hur weekyear()-funktionen fungerar med obrutna veckor.](https://help.qlik.com/sv-SE/sense/November2024/Subsystems/Hub/Content/Resources/Images/scripting-functions-weekyear-diagram2.png)

Användning

Funktionen `weekyear()` är användbar när du vill jämföra sammanställningar per år. Till exempel om du vill se den totala försäljningen av produkter per år. `weekyear()`-funktionen är att föredra framför `year()` när användaren vill ha överensstämmelse med systemvariabeln `BrokenWeeks` i appen.

## 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 på funktioner

| Exempel | Resultat |
| --- | --- |
| `weekyear('12/30/1996',0,0,4)` | Returnerar 1997, eftersom vecka 1 i 1997 börjar 1996-12-30 |
| `weekyear('01/02/1997',0,0,4)` | Returnerar 1997 |
| `weekyear('12/28/1997',0,0,4)` | Returnerar 1997 |
| `weekyear('12/30/1997',0,0,4)` | Returnerar 1998, eftersom vecka 1 i 1998 börjar 1997-12-29 |
| `weekyear('01/02/1999',0,0,4)` | Returnerar 1998, eftersom vecka 53 i 1998 slutar 1999-01-03 |

Relaterade ämnen

| Avsnitt | Interaktion |
| --- | --- |
| [week - skript- och diagramfunktion](https://help.qlik.com/sv-SE/sense/November2024/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/week.htm) | Returnerar ett heltal som motsvarar veckonumret enligt ISO 8601. |
| [year - skript- och diagramfunktion](https://help.qlik.com/sv-SE/sense/November2024/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/year.htm) | Returnerar ett heltal som motsvarar året om uttrycket tolkas som ett datum enligt standardtolkningen av tal. |

## Exempel 1 – brutna veckor

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

#### Laddningsskript och resultat

Översikt

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

Laddningsskriptet innehåller:

* En datauppsättning som innehåller transaktioner för sista veckan år 2020 och den första veckan år 2021 som läses in i en tabell som heter `Transactions`.

* `BrokenWeeks`-variabeln som är inställd till 1.

* En föregående laddning som innehåller följande:

  * `weekyear()`-funktionen, inställd som fältet `week_year`, som returnerar det år när transaktionerna ägde rum.

  * `week()`-funktionen, inställd som fältet `week`, som visar veckonumret för varje transaktionsdatum.

Laddningsskript

```
SET BrokenWeeks=1; 
						
Transactions: 
	Load 
       *, 
       week(date) as week, 
       weekyear(date) as week_year 
       ; 
Load 
* 
Inline  
[ 
id,date,amount 
8176,12/28/2020,19.42 
8177,12/29/2020,23.80 
8178,12/30/2020,82.06 
8179,12/31/2020,40.56 
8180,01/01/2021,37.23 
8181,01/02/2021,17.17 
8182,01/03/2021,88.27 
8183,01/04/2021,57.42
8184,01/05/2021,67.42 
8185,01/06/2021,23.80 
8186,01/07/2021,82.06 
]; 
```

Resultat

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

* `id`
* `date`
* `week`
* `week_year`

Resultattabell

| id | date | vecka | week\_year |
| --- | --- | --- | --- |
| 8176 | 12/28/2020 | 53 | 2020 |
| 8177 | 12/29/2020 | 53 | 2020 |
| 8178 | 12/30/2020 | 53 | 2020 |
| 8179 | 12/31/2020 | 53 | 2020 |
| 8180 | 01/01/2021 | 1 | 2021 |
| 8181 | 01/02/2021 | 1 | 2021 |
| 8182 | 01/03/2021 | 2 | 2021 |
| 8183 | 01/04/2021 | 2 | 2021 |
| 8184 | 01/05/2021 | 2 | 2021 |
| 8185 | 01/06/2021 | 2 | 2021 |
| 8186 | 01/07/2021 | 2 | 2021 |

`week_year`-fältet skapades i den föregående load-satsen genom att använda `weekyear()`-funktionen och skicka datumfältet som funktionens argument.

Systemvariabeln `BrokenWeeks` sätts till `1`, vilket innebär att appen använder brutna veckor. Vecka 1 börjar 1 januari.

Diagram för `weekyear()`-funktionens intervall när brutna veckor används

Diagram för `weekyear()`-funktionens intervall när brutna veckor används

Diagram för `weekyear()`weekyear()-funktionens intervall när brutna veckor används ![Diagram som visar att weekyear()-funktionen identifierar att transaktion 8181 ägde rum under vecka 1 och returnerar året för den veckan, 2021.](https://help.qlik.com/sv-SE/sense/November2024/Subsystems/Hub/Content/Resources/Images/scripting-functions-weekyear-examples1_and3-diagram.png)

Transaktion 8181 äger rum 2 januari, vilket ingår i vecka 1. Därför returneras värdet 2021 för `week_year`-fältet.

## Exempel 2 – obrutna veckor

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

#### Laddningsskript och resultat

Översikt

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

Laddningsskriptet innehåller:

* En datauppsättning som innehåller transaktioner för sista veckan år 2020 och den första veckan år 2021 som läses in i en tabell som heter `Transactions`.

* `BrokenWeeks`-variabeln som är inställd till `0`.

* En föregående laddning som innehåller följande:

  * `weekyear()`-funktionen, inställd som fältet `week_year`, som returnerar det år när transaktionerna ägde rum.

  * `week()`-funktionen, inställd som fältet `week`, som visar veckonumret för varje transaktionsdatum.

Men i det här exemplet är företagspolicyn att använda obrutna veckor.

Laddningsskript

```
SET BrokenWeeks=0; 
						
Transactions: 
	Load 
       *, 
       week(date) as week, 
       weekyear(date) as week_year 
       ; 
Load 
* 
Inline  
[ 
id,date,amount 
8176,12/28/2020,19.42 
8177,12/29/2020,23.80 
8178,12/30/2020,82.06 
8179,12/31/2020,40.56 
8180,01/01/2021,37.23 
8181,01/02/2021,17.17 
8182,01/03/2021,88.27 
8183,01/04/2021,57.42
8184,01/05/2021,67.42 
8185,01/06/2021,23.80 
8186,01/07/2021,82.06 
]; 
```

Resultat

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

* `id`
* `date`
* `week`
* `week_year`

Resultattabell

| id | date | vecka | week\_year |
| --- | --- | --- | --- |
| 8176 | 12/28/2020 | 53 | 2020 |
| 8177 | 12/29/2020 | 53 | 2020 |
| 8178 | 12/30/2020 | 53 | 2020 |
| 8179 | 12/31/2020 | 53 | 2020 |
| 8180 | 01/01/2021 | 53 | 2020 |
| 8181 | 01/02/2021 | 53 | 2020 |
| 8182 | 01/03/2021 | 1 | 2021 |
| 8183 | 01/04/2021 | 1 | 2021 |
| 8184 | 01/05/2021 | 1 | 2021 |
| 8185 | 01/06/2021 | 1 | 2021 |
| 8186 | 01/07/2021 | 1 | 2021 |

Systemvariabeln `BrokenWeeks` sätts till `0`, vilket innebär att programmet använder obrutna veckor. Därför behöver inte vecka 1 börja 1 januari.

Vecka 53 2020 fortsätter till slutet av 2 januari 2021 och vecka 1 2021 börjar söndag 3 januari 2021.

Diagram för `weekyear()`-funktionens intervall när obrutna veckor används

Diagram för `weekyear()`-funktionens intervall när obrutna veckor används

Diagram för `weekyear()`weekyear()-funktionens intervall när obrutna veckor används ![Diagram som visar hur weekyear()-funktionen fungerar med obrutna veckor och att vecka 53 har dagar i 2020 och 2021.](https://help.qlik.com/sv-SE/sense/November2024/Subsystems/Hub/Content/Resources/Images/scripting-functions-weekyear-example2-diagram.png)

Transaktion 8181 äger rum 2 januari, vilket ingår i vecka 1. Därför returneras värdet 2021 för `week_year`-fältet.

## Exampel 3 – Diagramobjektexempel

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

#### Laddningsskript och diagramuttryck

Översikt

Samma datauppsättning och scenario som det första exemplet används.

I det här exemplet är dock datauppsättningen oförändrad och har lästs in i programmet. Beräkningen som returnerar ett veckonummer för det år då transaktionerna ägde rum skapas som ett mått i ett diagram i appen.

Laddningsskript

```
SET BrokenWeeks=1; 
						
Transactions: 
Load 
* 
Inline  
[ 
id,date,amount 
8176,12/28/2020,19.42 
8177,12/29/2020,23.80 
8178,12/30/2020,82.06 
8179,12/31/2020,40.56 
8180,01/01/2021,37.23 
8181,01/02/2021,17.17 
8182,01/03/2021,88.27 
8183,01/04/2021,57.42
8184,01/05/2021,67.42 
8185,01/06/2021,23.80 
8186,01/07/2021,82.06 
]; 
```

Resultat

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

* `id`
* `date`

För att beräkna veckan då en transaktion äger rum skapar du följande mått:

* `=week(date)`

För att beräkna året då en transaktion äger rum baserat på veckonumret skapar du följande mått:

* `=weekyear(date)`

Resultattabell

| id | date | vecka | week\_year |
| --- | --- | --- | --- |
| 8176 | 12/28/2020 | 53 | 2020 |
| 8177 | 12/29/2020 | 53 | 2020 |
| 8178 | 12/30/2020 | 53 | 2020 |
| 8179 | 12/31/2020 | 53 | 2020 |
| 8180 | 01/01/2021 | 1 | 2021 |
| 8181 | 01/02/2021 | 1 | 2021 |
| 8182 | 01/03/2021 | 2 | 2021 |
| 8183 | 01/04/2021 | 2 | 2021 |
| 8184 | 01/05/2021 | 2 | 2021 |
| 8185 | 01/06/2021 | 2 | 2021 |
| 8186 | 01/07/2021 | 2 | 2021 |

`week_year`-fältet skapades i den föregående load-satsen genom att använda `weekyear()`-funktionen och skicka datumfältet som funktionens argument.

Systemvariabeln `BrokenWeeks` sätts till `1`, vilket innebär att appen använder brutna veckor. Vecka 1 börjar 1 januari.

Diagram för `weekyear()`-funktionens intervall när brutna veckor används

Diagram för `weekyear()`-funktionens intervall när brutna veckor används

Diagram för `weekyear()`weekyear()-funktionens intervall när brutna veckor används ![Diagram som visar att weekyear()-funktionen identifierar att transaktion 8181 ägde rum under vecka 1 och returnerar året för den veckan, 2021.](https://help.qlik.com/sv-SE/sense/November2024/Subsystems/Hub/Content/Resources/Images/scripting-functions-weekyear-examples1_and3-diagram.png)

Transaktion 8181 äger rum 2 januari, vilket ingår i vecka 1. Därför returneras värdet 2021 för `week_year`-fältet.

## Exempel 4 – Scenario

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

#### Laddningsskript och resultat

Översikt

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

Laddningsskriptet innehåller:

* En datauppsättning som innehåller transaktioner för sista veckan år 2020 och den första veckan år 2021 som läses in i en tabell som heter `Transactions`.

* `BrokenWeeks`-variabeln som är inställd till `0`. Detta betyder att appen kommer att använda obrutna veckor.

* `ReferenceDay`-variabeln som är inställd till `2`. Detta betyder att året kommer att börja 2 januari och innehålla minst två dagar i januari.

* `FirstWeekDay`-variabeln som är inställd till `1`. Detta innebär att veckans första dag blir en tisdag.

Företagspolicyn är att använda brutna vewckor. Slutanvändaren vill ha ett diagram som visar den totala försäljningen per år. Appen använder obrutna veckor och vecka 1 innehåller minst två dagar i januari.

Laddningsskript

```
SET BrokenWeeks=0; 
SET ReferenceDay=2; 
SET FirstWeekDay=1; 
 
Transactions: 
Load 
* 
Inline  
[ 
id,date,amount 
8176,12/28/2020,19.42 
8177,12/29/2020,23.80 
8178,12/30/2020,82.06 
8179,12/31/2020,40.56 
8180,01/01/2021,37.23 
8181,01/02/2021,17.17 
8182,01/03/2021,88.27 
8183,01/04/2021,57.42 
8184,01/05/2021,67.42 
8185,01/06/2021,23.80 
8186,01/07/2021,82.06 
]; 
```

Resultat

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

För att beräkna året då en transaktion äger rum baserat på veckonumret skapar du följande mått:

* `=weekyear(date)`

För att beräkna total försäljning skapar du följande mått:

* `sum(amount)`

Ange måttens Nummerformatering till Pengar.

Resultattabell

| weekyear(date) | =sum(amount) |
| --- | --- |
| 2020 | 19.42 |
| 2021 | 373.37 |