# if Skript- och diagramfunktion

if-funktionen returnerar ett värde beroende på om villkoret som hör samman med funktionen utvärderas som True eller False.

[If Function](https://play.vidyard.com/qnkaRddq32LnAGUTTDGdLA)

Syntax:

if(condition , then [, else])

Returnerad datatyp: dual

Argument

| Argument | Beskrivning |
| --- | --- |
| condition | Uttryck som tolkas logiskt. |
| then | Uttrycket kan vara av vilken typ som helst. Om condition är True, returnerar funktionen if värdet för uttrycket then. |
| else | Uttrycket kan vara av vilken typ som helst. Om condition är False, returnerar funktionen if värdet för uttrycket else.<br><br>Den här parametern är valfri. Om condition är False returneras NULL om du inte har specificerat else. |

Exempel: diagramuttryck

| Exempel | Resultat |
| --- | --- |
| `if( Amount>=<br>						0, 'OK', 'Alarm' )` | Uttrycket testar om beloppet är ett positivt tal (0 eller större) och returnerar `OK` om det är det. Om beloppet är mindre än 0 returneras `Alarm`. |

Vissa exempel i det här ämnet använder inline-laddningar. [Använda inline-laddningar för att ladda data](https://help.qlik.com/sv-SE/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/inline-loads-qs.htm)

## Exempel – Laddningsskript som använder if

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

#### Laddningsskript

Översikt

If kan användas i laddningsskript med andra metoder och objekt, inklusive variabler. I det här exemplet används variabeln `threshold` och inkluderar ett nytt fält i datamodellen som baseras på detta threshold.

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

Laddningsskriptet innehåller:

* En datauppsättning som läses in i två datatabeller som heter:

  * `Transactions`: Innehåller transaktionsfält

  * `Transaction_Buckets`: Inkluderar ett `transaction_id`-fält och skapar ett nytt fält, `[Compared to Threshold]`, med hjälp av `if`-funktionen för att jämföra fältet `transaction_amount` med variabeln `threshold`.

* En `threshold`-variabelsats som ställs in på `100`.

Laddningsskript

```
Transactions:
Load * Inline [
transaction_id, transaction_date, transaction_amount, transaction_quantity, customer_id, size, color_code
3750, 20180830, 23.56, 2, 2038593, L, Red
3751, 20180907, 556.31, 6, 203521, m, orange
3752, 20180916, 5.75, 1, 5646471, S, blue
3753, 20180922, 125.00, 7, 3036491, l, Black
3754, 20180922, 484.21, 13, 049681, xs, Red
3756, 20180922, 59.18, 2, 2038593, M, Blue
3757, 20180923, 177.42, 21, 203521, XL, Black
];
 
set threshold = 100;
					
/* Create new table called Transaction_Buckets 
Compare transaction_amount field from Transaction table to threshold of 100.
Output results into a new field called Compared to Threshold
 */

Transaction_Buckets:
Load
   transaction_id,
   If(transaction_amount > $(threshold),'Greater than $(threshold)','Less than $(threshold)') as [Compared to Threshold]
Resident Transactions;
```

Resultat

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

* `transaction_id`

* `[Compared to Threshold]`

Resultattabellen visar utdata vid användning av ifif-funktionen i laddningsskriptet.

| transaktions-ID | Jämfört med tröskel |
| --- | --- |
| 3750 | Mindre än 100 |
| 3751 | Större än 100 |
| 3752 | Mindre än 100 |
| 3753 | Större än 100 |
| 3754 | Större än 100 |
| 3756 | Mindre än 100 |
| 3757 | Större än 100 |

## Exempel – Utvärdera produktdata med hjälp av if

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

#### Diagramuttryck

Översikt

En datauppsättning innehåller produktdata. Du vill identifiera och kategorisera produkter beroende på om de är förbrukningsbara eller inte.

Laddningsskript

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

Laddningsskriptet innehåller:

* En datauppsättning som läses in i en datatabell som heter `Example`.

* Följande fält i datatabellen:

  * `ProductID`

  * `ProductName`

  * `ProductCategory`

```
Example:
LOAD * INLINE [
ProductID, ProductName, ProductCategory
1, "Laptop", "Electronics"
2, "Banana", "Fruits"
3, "Shampoo", "Toiletries"
4, "TV", "Electronics"
5, "Apple", "Fruits"
];
```

Resultat

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

* `ProductID`

* `ProductName`

* `ProductCategory`

Skapa följande mått:

* `=If(ProductCategory =  'Toiletries' or ProductCategory =  'Fruits', 'Consumable', 'Other')`, för att returnera de värden som krävs.

Resultattabell

| ProductID | ProductName | ProductCategory | If(ProductCategory = 'Toiletries' or ProductCategory = 'Fruits', 'Consumable', 'Other') |
| --- | --- | --- | --- |
| 1 | Laptop | Electronics | Other |
| 2 | Banana | Fruits | Consumable |
| 3 | Shampoo | Toiletries | Consumable |
| 4 | TV | Electronics | Other |
| 5 | Apple | Fruits | Consumable |

Du kan se i resultatet att `if`-funktionen utvärderar uttrycket och returnerar de värden som krävs. Till exempel klassificeras produkter i kategorin `Fruits` eller `Toiletries` som `Consumable`.

## Exempel – Utvärdera och klassificera kunddata med hjälp av if

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

#### Diagramuttryck

Översikt

En datauppsättning innehåller kunddata. Du vill identifiera och kategorisera de kunder vars region och branschkategori uppfyller dina klassificeringskrav.

Laddningsskript

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

Laddningsskriptet innehåller:

* En datauppsättning som läses in i en datatabell som heter `Example`.

* Följande fält i datatabellen:

  * `ClientID`

  * `ClientName`

  * `Region`

  * `Industry`

```
Example:
LOAD * INLINE [
ClientID, ClientName, Region, Industry
1, "Acme Corp", "North", "Manufacturing"
2, "Beta Ltd", "East", "Technology"
3, "Gamma Inc", "West", "Retail"
4, "Delta LLC", "North", "Technology"
5, "Epsilon GmbH", "South", "Healthcare"
];
```

Resultat

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

* `ClientID`

* `ClientName`

* `Region`

* `Industry`

Skapa följande mått:

* `=If((Region = 'North' or Region = 'East') AND (Industry= 'Technology' or Industry = 'Manufacturing'), 'Target Segment', 'Secondary Segment')`, för att returnera det värde som krävs.

Resultattabell

| ClientID | ClientName | Region | Industry | If((Region = 'North' or Region = 'East') AND (Industry= 'Technology' or Industry = 'Manufacturing'), 'Target Segment', 'Secondary Segment') |
| --- | --- | --- | --- | --- |
| 1 | Acme Corp | North | Manufacturing | Target Segment |
| 2 | Beta Ltd | East | Technology | Target Segment |
| 3 | Gamma Inc | West | Retail | Secondary Segment |
| 4 | Delta LLC | North | Technology | Target Segment |
| 5 | Epsilon GmbH | Sound | Healthcare | Secondary Segment |

Du kan se i resultatet att `if`-funktionen utvärderar uttrycket och returnerar de värden som krävs. Exempelvis klassificeras `Acme Corp` som `Target Segment` eftersom det uppfyller kraven för att ingå i region `North` eller `East` och branschen `Manufacturing` eller `Technology`.

## Exempel – Utvärdera incidentdata med hjälp av if

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

#### Diagramuttryck

Översikt

Använd if-funktionen för att kategorisera en datauppsättning med incidentrapporter.

Laddningsskript

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

Laddningsskriptet innehåller:

* En datauppsättning som läses in i en datatabell som heter Example.

* Följande fält i datatabellen:

  * Date

  * Location

  * Incidents

```
Example:
LOAD * inline [
Date, Location, Incidents
1/3/2016, Beijing, 0
1/3/2016, Boston, 12
1/3/2016, Stockholm, 3
1/3/2016, Toronto, 0
1/4/2016, Beijing, 0
1/4/2016, Boston, 8];
```

Resultat

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

* Datum

* Plats

* Incidenter

Skapa följande beräknade dimensioner:

* =if(Incidents&gt;=10, 'Critical', 'Ok' )

* =if(Incidents&gt;=10, 'Critical', If( Incidents&gt;=1 and Incidents&lt;10, 'Warning', 'Ok'))

Resultattabell

| Date | Location | Incidents | if(Incidents&gt;=10, 'Critical', 'Ok' ) | if(Incidents&gt;=10, 'Critical', If( Incidents&gt;=1 and Incidents&lt;10, 'Warning', 'Ok')) |
| --- | --- | --- | --- | --- |
| 1/3/2016 | Beijing | 0 | Ok | Ok |
| 1/3/2016 | Boston | 12 | Critical | Critical |
| 1/3/2016 | Stockholm | 3 | Ok | Warning |
| 1/3/2016 | Toronto | 0 | Ok | Ok |
| 1/4/2016 | Beijing | 0 | Ok | Ok |
| 1/4/2016 | Boston | 8 | Ok | Warning |

## Exempel – Kategorisera datum med hjälp av if

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

#### Diagramuttryck

Översikt

Använd if-funktionen för att kategorisera datum.

Laddningsskript

Öppna Skriptredigeraren och lägg till laddningsskriptet under ett nytt delavsnitt.

```
SET FirstWeekDay=0;
Load 
Date(MakeDate(2022)+RecNo()-1) as Date
Autogenerate 14;
```

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 beräknade dimensioner:

* WeekDay(Date)

* =If(WeekDay(Date)&gt;=5,'WeekEnd','Normal Day')

Resultattabell

| Date | WeekDay(Date) | If(WeekDay(Date)&gt;=5,'WeekEnd','Normal Day') |
| --- | --- | --- |
| 1/1/2022 | Sat | WeekEnd |
| 1/2/2022 | Sun | WeekEnd |
| 1/3/2022 | Mon | Normal Day |
| 1/4/2022 | Tue | Normal Day |
| 1/5/2022 | Wed | Normal Day |
| 1/6/2022 | Thu | Normal Day |
| 1/7/2022 | Fri | Normal Day |
| 1/8/2022 | Sat | WeekEnd |
| 1/9/2022 | Sun | WeekEnd |
| 1/10/2022 | Mon | Normal Day |
| 1/11/2022 | Tue | Normal Day |
| 1/12/2022 | Wed | Normal Day |
| 1/13/2022 | Thu | Normal Day |
| 1/14/2022 | Fri | Normal Day |