# inyear - skript- och diagramfunktion

Denna funktion returnerar True om timestamp ligger inom det år som innehåller base\_date.

Syntax:

InYear (timestamp, base\_date, period\_no [, first\_month\_of\_year])

Returnerad datatyp: Boolesk

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

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

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

Diagram för `inyear()`inyear()-funktionens intervall ![Diagram som visar det tidsintervall som utvärderas av inyear()-funktionen. Ett booleskt resultat returneras som beror på basdatumets placering.](https://help.qlik.com/sv-SE/sense/November2024/Subsystems/Hub/Content/Resources/Images/scripting-functions-inyear-diagram1.png)

`inyear()`-funktionen returnerar ett booleskt resultat när de valda datumvärdena jämförs med ett år som definieras av `base_date`.

Användning

Funktionen `inyear()` returnerar ett booleskt resultat. Vanligtvis kommer denna typ av funktion att användas som ett villkor i en `if expression`. Detta returnerar en aggregering eller beräkning beroende på om ett utvärderat datum inträffade under året i fråga. `inyear()`-funktionen kan exempelvis användas för att identifiera all försäljning som inträffade under ett definierat år.

Argument

| Argument | Beskrivning |
| --- | --- |
| timestamp | Det datum du vill jämföra mot base\_date. |
| base\_date | Datum som används för att utvärdera året. |
| period\_no | Årets startpunkt kan flyttas med period\_no. period\_no är ett heltal där värdet 0 anger året som innehåller base\_date. Negativa värden i period\_no anger föregående år och positiva värden anger efterföljande år. |
| first\_month\_of\_year | Om du vill arbeta med (budget)år som inte börjar i januari kan du ange ett värde mellan 2 och 12 i first\_month\_of\_year. |

Du kan använda följande värden för att ställa in den första månaden på året i argumentet `first_month_of_year`:

first\_month\_of\_year values

| Månad | Värde |
| --- | --- |
| februari | 2 |
| mars | 3 |
| april | 4 |
| Maj | 5 |
| juni | 6 |
| juli | 7 |
| augusti | 8 |
| september | 9 |
| oktober | 10 |
| november | 11 |
| december | 12 |

## 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 |
| --- | --- |
| `inyear ('01/25/2013', '01/01/2013', 0 )` | Returnerar TRUE |
| `inyear ('01/25/2012', '01/01/2013', 0)` | Returnerar FALSE |
| `inyear ('01/25/2013', '01/01/2013', -1)` | Returnerar FALSE |
| `inyear ('01/25/2012', '01/01/2013', -1 )` | Returnerar TRUE |
| `inyear ('01/25/2013', '01/01/2013', 0, 3)` | Returnerar TRUE<br><br>Värdet för `base_date` och `first_month_of_year` anger att tidsmarkören måste infalla mellan 2012-01-03 och 2013-02-28 |
| `inyear ('03/25/2013', '07/01/2013', 0, 3 )` | Returnerar TRUE |

## Exempel 1 – Grundläggande exempel

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/inyear.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 en uppsättning transaktioner mellan 2020 och 2022 som laddas i en tabell som heter `Transactions`.

* En föregående laddning som innehåller `inyear()`-funktionen som ställs in som `in_year`-fältet och avgör vilka transaktioner som ägde rum under samma år som 26 juli 2021.

Laddningsskript

```
SET DateFormat='MM/DD/YYYY'; 
Transactions: 
    Load 
        *, 
        inyear(date,'07/26/2021', 0) as in_year 
        ; 
Load 
* 
Inline  
[ 
id,date,amount 
8188,'01/13/2020',37.23 
8189,'02/26/2020',17.17
8190,'03/27/2020',88.27 
8191,'04/16/2020',57.42 
8192,'05/21/2020',53.80 
8193,'08/14/2020',82.06 
8194,'10/07/2020',40.39 
8195,'12/05/2020',87.21 
8196,'01/22/2021',95.93 
8197,'02/03/2021',45.89 
8198,'03/17/2021',36.23 
8199,'04/23/2021',25.66 
8200,'05/04/2021',82.77 
8201,'06/30/2021',69.98 
8202,'07/26/2021',76.11 
8203,'12/27/2021',25.12 
8204,'06/06/2022',46.23 
8205,'07/18/2022',84.21 
8206,'11/14/2022',96.24 
8207,'12/12/2022',67.67 
]; 
```

Resultat

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

* `date`
* `in_year`

Resultattabell

| date | in\_year |
| --- | --- |
| 01/13/2020 | 0 |
| 02/26/2020 | 0 |
| 03/27/2020 | 0 |
| 04/16/2020 | 0 |
| 05/21/2020 | 0 |
| 08/14/2020 | 0 |
| 10/07/2020 | 0 |
| 12/05/2020 | 0 |
| 01/22/2021 | -1 |
| 02/03/2021 | -1 |
| 03/17/2021 | -1 |
| 04/23/2021 | -1 |
| 05/04/2021 | -1 |
| 06/30/2021 | -1 |
| 07/26/2021 | -1 |
| 12/27/2021 | -1 |
| 06/06/2022 | 0 |
| 07/18/2022 | 0 |
| 11/14/2022 | 0 |
| 12/12/2022 | 0 |

`in_year`-fältet skapas i föregående LOAD-sats med hjälp av funktionen `inyear()`. Det första argumentet anger vilket fält som utvärderas. Det andra argumentet är ett hårdkodat datum för den 26 juli 2021, vilket är `base_date` som fastställer jämförelseåret. Ett `period_no` på `0` är det sista argumentet, vilket betyder att `inyear()`-funktionen inte jämför åren före eller efter året.

Diagram för `inyear()`-funktionens intervall med 26 juli som basdatum

Diagram för `inyear()`-funktionens intervall med 26 juli som basdatum

Diagram för `inyear()`inyear()-funktionens intervall med 26 juli som basdatum ![Diagram för inyear()-funktionen med 26 juli som basdatum, och tidsintervallet från 1 januari 2021 till 1 januari 2022 framhävt.](https://help.qlik.com/sv-SE/sense/November2024/Subsystems/Hub/Content/Resources/Images/scripting-functions-inyear-examples1_and4-diagram.png)

Alla transaktioner som inträffar under 2021 returnerar det booleska värdet TRUE.

## Exempel 2 – period\_no

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/inyear.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 en uppsättning transaktioner mellan 2020 och 2022 som laddas i en tabell som heter `Transactions`.

* En föregående laddning som innehåller `inyear()`-funktionen som ställs in som `previous_year`-fältet och avgör vilka transaktioner som ägde rum under året före det år som innehåller 26 juli 2021.

Laddningsskript

```
SET DateFormat='MM/DD/YYYY'; 
Transactions: 
    Load 
        *, 
        inyear(date,'07/26/2021', -1) as previous_year 
        ; 
Load 
* 
Inline  
[ 
id,date,amount 
8188,'01/13/2020',37.23 
8189,'02/26/2020',17.17
8190,'03/27/2020',88.27 
8191,'04/16/2020',57.42 
8192,'05/21/2020',53.80 
8193,'08/14/2020',82.06 
8194,'10/07/2020',40.39 
8195,'12/05/2020',87.21 
8196,'01/22/2021',95.93 
8197,'02/03/2021',45.89 
8198,'03/17/2021',36.23 
8199,'04/23/2021',25.66 
8200,'05/04/2021',82.77 
8201,'06/30/2021',69.98 
8202,'07/26/2021',76.11 
8203,'12/27/2021',25.12 
8204,'06/06/2022',46.23 
8205,'07/18/2022',84.21 
8206,'11/14/2022',96.24 
8207,'12/12/2022',67.67 
]; 
```

Resultat

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

* `date`
* `previous_year`

Resultattabell

| date | previous\_year |
| --- | --- |
| 01/13/2020 | -1 |
| 02/26/2020 | -1 |
| 03/27/2020 | -1 |
| 04/16/2020 | -1 |
| 05/21/2020 | -1 |
| 08/14/2020 | -1 |
| 10/07/2020 | -1 |
| 12/05/2020 | -1 |
| 01/22/2021 | 0 |
| 02/03/2021 | 0 |
| 03/17/2021 | 0 |
| 04/23/2021 | 0 |
| 05/04/2021 | 0 |
| 06/30/2021 | 0 |
| 07/26/2021 | 0 |
| 12/27/2021 | 0 |
| 06/06/2022 | 0 |
| 07/18/2022 | 0 |
| 11/14/2022 | 0 |
| 12/12/2022 | 0 |

Genom att använda `-1` som `period_no`-argument i `inyear()`-funktionen skiftar gränserna för jämförelseåret bakåt ett helt år. 2021 identifieras initialt som jämförelseår. `period_no` förskjuter jämförelseåret ett år, så att 2020 blir jämförelseår.

Diagram för `inyear()`-funktionens intervall med argumentet för period\_no inställt till `-1`

Diagram för `inyear()`-funktionens intervall med argumentet för period\_no inställt till `-1`

Diagram för `inyear()`inyear()-funktionens intervall med argumentet för period\_no inställt till `-1`-1 ![Diagram för inyear()-funktionen med 26 juli som basdatum, och argumentet för period_no inställt till minus ett.](https://help.qlik.com/sv-SE/sense/November2024/Subsystems/Hub/Content/Resources/Images/scripting-functions-inyear-example2-diagram.png)

Alla transaktioner som inträffar under 2020 returnerar därför det booleska värdet TRUE.

## Exempel 3 – first\_month\_of\_year

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/inyear.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 en uppsättning transaktioner mellan 2020 och 2022 som laddas i en tabell som heter `Transactions`.

* En föregående laddning som innehåller `inyear()`-funktionen som ställs in som `in_year`-fältet och avgör vilka transaktioner som ägde rum under samma år som 26 juli 2021.

I det här exemplet är dock organisationspolicyn att mars är den första månaden i räkenskapsåret.

Laddningsskript

```
SET DateFormat='MM/DD/YYYY'; 
Transactions: 
    Load 
        *, 
        inyear(date,'07/26/2021', 0, 3) as in_year 
        ; 
Load 
* 
Inline  
[ 
id,date,amount 
8188,'01/13/2020',37.23 
8189,'02/26/2020',17.17
8190,'03/27/2020',88.27 
8191,'04/16/2020',57.42 
8192,'05/21/2020',53.80 
8193,'08/14/2020',82.06 
8194,'10/07/2020',40.39 
8195,'12/05/2020',87.21 
8196,'01/22/2021',95.93 
8197,'02/03/2021',45.89 
8198,'03/17/2021',36.23 
8199,'04/23/2021',25.66 
8200,'05/04/2021',82.77 
8201,'06/30/2021',69.98 
8202,'07/26/2021',76.11 
8203,'12/27/2021',25.12 
8204,'06/06/2022',46.23 
8205,'07/18/2022',84.21 
8206,'11/14/2022',96.24 
8207,'12/12/2022',67.67 
]; 
```

Resultat

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

* `date`
* `in_year`

Resultattabell

| date | in\_year |
| --- | --- |
| 01/13/2020 | 0 |
| 02/26/2020 | 0 |
| 03/27/2020 | 0 |
| 04/16/2020 | 0 |
| 05/21/2020 | 0 |
| 08/14/2020 | 0 |
| 10/07/2020 | 0 |
| 12/05/2020 | 0 |
| 01/22/2021 | 0 |
| 02/03/2021 | 0 |
| 03/17/2021 | -1 |
| 04/23/2021 | -1 |
| 05/04/2021 | -1 |
| 06/30/2021 | -1 |
| 07/26/2021 | -1 |
| 12/27/2021 | -1 |
| 06/06/2022 | 0 |
| 07/18/2022 | 0 |
| 11/14/2022 | 0 |
| 12/12/2022 | 0 |

Genom att använda `3` som `first_month_of_year`-argument i `inyear()`-funktionen börjar året 1 mars och slutar året i slutet av februari.

Diagram för `inyear()`-funktionens intervall med mars inställt som årets första månad.

Diagram för `inyear()`-funktionens intervall med mars inställt som årets första månad.

Diagram för `inyear()`inyear()-funktionens intervall med mars inställt som årets första månad. ![Diagram för inyear()-funktionen med 26 juli som basdatum och mars inställd som årets första månad.](https://help.qlik.com/sv-SE/sense/November2024/Subsystems/Hub/Content/Resources/Images/scripting-functions-inyear-example3-diagram.png)

Därför kommer alla transaktioner som sker mellan 1 mars 2021 och 1 mars 2022 returnera det booleska resultatet TRUE.

## Exampel 4 – Diagramobjektexempel

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/DateAndTimeFunctions/inyear.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 laddats i programmet. Beräkningen som avgör om transaktioner har skett under samma år som 26 juli 2021 skapas som ett mått i ett diagramobjekt i programmet.

Laddningsskript

```
SET DateFormat='MM/DD/YYYY'; 
Transactions: 
Load 
* 
Inline  
[ 
id,date,amount 
8188,'01/13/2020',37.23 
8189,'02/26/2020',17.17
8190,'03/27/2020',88.27 
8191,'04/16/2020',57.42 
8192,'05/21/2020',53.80 
8193,'08/14/2020',82.06 
8194,'10/07/2020',40.39 
8195,'12/05/2020',87.21 
8196,'01/22/2021',95.93 
8197,'02/03/2021',45.89 
8198,'03/17/2021',36.23 
8199,'04/23/2021',25.66 
8200,'05/04/2021',82.77 
8201,'06/30/2021',69.98 
8202,'07/26/2021',76.11 
8203,'12/27/2021',25.12 
8204,'06/06/2022',46.23 
8205,'07/18/2022',84.21 
8206,'11/14/2022',96.24 
8207,'12/12/2022',67.67 
]; 
```

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 beräkna om transaktioner ägde rum under samma år som 26 juli 2021 skapar du följande mått:

* `=inyear(date,'07/26/2021', 0)`

Resultattabell

| date | =inyear(date,'07/26/2021',0) |
| --- | --- |
| 01/13/2020 | 0 |
| 02/26/2020 | 0 |
| 03/27/2020 | 0 |
| 04/16/2020 | 0 |
| 05/21/2020 | 0 |
| 08/14/2020 | 0 |
| 10/07/2020 | 0 |
| 12/05/2020 | 0 |
| 01/22/2021 | -1 |
| 02/03/2021 | -1 |
| 03/17/2021 | -1 |
| 04/23/2021 | -1 |
| 05/04/2021 | -1 |
| 06/30/2021 | -1 |
| 07/26/2021 | -1 |
| 12/27/2021 | -1 |
| 06/06/2022 | 0 |
| 07/18/2022 | 0 |
| 11/14/2022 | 0 |
| 12/12/2022 | 0 |

`in_year`-fältet skapas i diagrammet genom att använda `inyear()`-funktionen. Det första argumentet anger vilket fält som utvärderas. Det andra argumentet är ett hårdkodat datum för den 26 juli 2021, vilket är `base_date` som fastställer jämförelseåret. Ett `period_no` på `0` är det sista argumentet, vilket betyder att `inyear()`-funktionen inte jämför åren före eller efter året.

Diagram för `inyear()`-funktionens intervall med 27 juli som basdatum

Diagram för `inyear()`-funktionens intervall med 27 juli som basdatum

Diagram för `inyear()`inyear()-funktionens intervall med 27 juli som basdatum ![Diagrammet för inyear()-funktionen med 27 juli som basdatum och tidsintervallet från 1 januari 2021 till 1 januari 2022 framhävt.](https://help.qlik.com/sv-SE/sense/November2024/Subsystems/Hub/Content/Resources/Images/scripting-functions-inyear-examples1_and4-diagram.png)

Alla transaktioner som inträffar under 2021 returnerar det booleska värdet TRUE.

## Exempel 5 – Scenario

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

#### Laddningsskript och resultat

Översikt

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

Laddningsskriptet innehåller:

* En datauppsättning laddas i en tabell som heter Products.

* Tabellen innehåller följande fält:

  * produkt-ID

  * produkttyp

  * tillverkningsdatum

  * kostnadspris

Slutanvändaren vill ha ett diagramobjekt som visar kostnaden för produkterna som tillverkades under 2021, per produkttyp.

Laddningsskript

```
Products: 
Load 
* 
Inline  
[ 
product_id,product_type,manufacture_date,cost_price 
8188,product A,'01/13/2020',37.23 
8189,product B,'02/26/2020',17.17 
8190,product B,'03/27/2020',88.27 
8191,product C,'04/16/2020',57.42 
8192,product D,'05/21/2020',53.80 
8193,product D,'08/14/2020',82.06 
8194,product C,'10/07/2020',40.39 
8195,product B,'12/05/2020',87.21
8196,product A,'01/22/2021',95.93 
8197,product B,'02/03/2021',45.89 
8198,product C,'03/17/2021',36.23 
8199,product C,'04/23/2021',25.66
8200,product B,'05/04/2021',82.77 
8201,product D,'06/30/2021',69.98 
8202,product D,'07/26/2021',76.11 
8203,product D,'12/27/2021',25.12 
8204,product C,'06/06/2022',46.23 
8205,product C,'07/18/2022',84.21 
8206,product A,'11/14/2022',96.24 
8207,product B,'12/12/2022',67.67 
]; 
```

Resultat

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

* product\_type

Skapa följande mått för att beräkna summan av varje produkt som tillverkades år 2021:

* =sum(if(InYear(manufacture\_date,makedate(2021,01,01),0),cost\_price,0))

Gör följande:

1. Ange måttens Nummerformatering till Pengar.

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

Resultattabell

| product\_type | =sum(if(InYear(manufacture\_date,makedate(2021,01,01),0),cost\_price,0)) |
| --- | --- |
| produkt A | $95.93 |
| produkt B | $128.66 |
| produkt C | $61.89 |
| produkt D | $171.21 |

Funktionen inyear() returnerar ett booleskt värde vid utvärdering av tillverkningsdatumen för var och en av produkterna. För alla produkter som tillverkats år 2021 returnerar inyear()-funktionen det booleska värdet TRUE och visar summan för cost\_price.