# if Skript- und Diagrammfunktion

Die if-Funktion liefert einen Wert abhängig davon, ob die bereitgestellte Bedingung mit der Funktion True oder False ergibt.

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

Syntax:

if(condition , then [, else])

Rückgabe Datentyp: dual

Argumente

| Argument | Beschreibung |
| --- | --- |
| condition | Formel, die logisch interpretiert wird. |
| then | Der Typ der Formel kann beliebig gewählt werden. Ist condition True, liefert die if-Funktion den Wert von then. |
| else | Der Typ der Formel kann beliebig gewählt werden. Ist condition False, liefert die if-Funktion den Wert von else.<br><br>Dieser Parameter ist optional. Wenn die condition False ist, wird NULL zurückgegeben, wenn Sie nicht else angegeben haben. |

Beispiel: Diagrammformeln

| Beispiel | Ergebnis |
| --- | --- |
| `if( Amount>=<br>						0, 'OK', 'Alarm' )` | Diese Formel überprüft, ob eine positive Zahl (0 oder größer) vorliegt, und gibt `OK` zurück, wenn dies der Fall ist. Ist die Zahl weniger als 0, wird `Alarm` zurückgegeben. |

Einige der Beispiele in diesem Thema verwenden Inline-Ladevorgänge. [Verwenden von Inline-Ladevorgängen zum Laden von Daten](https://help.qlik.com/de-DE/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/inline-loads-qs.htm)

## Beispiel: Ladeskript mit Verwendung von if

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

#### Ladeskript

Übersicht

If kann mit anderen Methoden und Objekten, einschließlich Variablen, in einem Ladeskript verwendet werden. Dieses Beispiel verwendet die Variable `threshold` und nimmt ein neues Feld in das Datenmodell auf, das auf dem Schwellenwert basiert.

Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in einen neuen Abschnitt ein.

Das Ladeskript umfasst:

* Datensatz, der in zwei Datentabellen mit folgenden Namen geladen wird:

  * `Transactions`: Enthält Transaktionsfelder

  * `Transaction_Buckets`: Schließt ein Feld `transaction_id` ein und erstellt ein neues Feld, `[Compared to Threshold]`, indem es die Funktion `if` verwendet, um das Feld `transaction_amount` mit der Variableneinstellung `threshold` zu vergleichen.

* Eine Variable `threshold`, die auf `100` festgelegt ist.

Ladeskript

```
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;
```

Ergebnisse

Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie die folgenden Felder als Dimensionen hinzu:

* `transaction_id`

* `[Compared to Threshold]`

Ergebnistabelle mit der Ausgabe nach Verwendung der ifif-Funktion im Ladeskript.

| transaction\_id | Verglichen mit Schwellenwert |
| --- | --- |
| 3750 | Kleiner als 100 |
| 3751 | Größer als 100 |
| 3752 | Kleiner als 100 |
| 3753 | Größer als 100 |
| 3754 | Größer als 100 |
| 3756 | Kleiner als 100 |
| 3757 | Größer als 100 |

## Beispiel – Produktdaten mit if auswerten

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

#### Diagrammformel

Übersicht

Ein Datensatz enthält Produktdaten. Sie möchten Produkte danach identifizieren und kategorisieren, ob sie verbrauchbar sind oder nicht.

Ladeskript

Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in einen neuen Abschnitt ein.

Das Ladeskript umfasst:

* Datensatz, der in eine Datentabelle namens `Example` geladen wird

* Die folgenden Felder in der Datentabelle:

  * `ProductID`

  * `ProductName`

  * `ProductCategory`

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

Ergebnisse

Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie die folgenden Felder als Dimensionen hinzu:

* `ProductID`

* `ProductName`

* `ProductCategory`

Erstellen Sie die folgende Kennzahl:

* `=If(ProductCategory =  'Toiletries' or ProductCategory =  'Fruits', 'Consumable', 'Other')`, um die gewünschten Werte zurückzugeben.

Ergebnistabelle

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

Anhand der Ergebnisse können Sie sehen, dass die Funktion `if` die Formel auswertet und die gewünschten Werte zurückgibt. Zum Beispiel werden Produkte der Kategorie `Fruits` oder `Toiletries` als `Consumable` klassifiziert.

## Beispiel – Auswerten und Klassifizieren von Kundendaten anhand von if

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

#### Diagrammformel

Übersicht

Ein Datensatz enthält Kundendaten. Sie möchten die Kunden identifizieren und kategorisieren, deren Region und Branchenkategorie Ihren Klassifizierungsanforderungen entsprechen.

Ladeskript

Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in einen neuen Abschnitt ein.

Das Ladeskript umfasst:

* Datensatz, der in eine Datentabelle namens `Example` geladen wird

* Die folgenden Felder in der Datentabelle:

  * `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"
];
```

Ergebnisse

Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie die folgenden Felder als Dimensionen hinzu:

* `ClientID`

* `ClientName`

* `Region`

* `Industry`

Erstellen Sie die folgende Kennzahl:

* `=If((Region = 'North' or Region = 'East') AND (Industry= 'Technology' or Industry = 'Manufacturing'), 'Target Segment', 'Secondary Segment')`, um den erforderlichen Wert zurückzugeben

Ergebnistabelle

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

Anhand der Ergebnisse können Sie sehen, dass die Funktion `if` die Formel auswertet und die gewünschten Werte zurückgibt. Zum Beispiel wird `Acme Corp` als `Target Segment` klassifiziert, weil es die Anforderungen erfüllt, um Teil der Region `North` oder `East` und der Branche `Manufacturing` oder `Technology` zu sein.

## Beispiel – Vorfallsdaten mit if auswerten

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

#### Diagrammformel

Übersicht

Verwenden Sie die Funktion if, um einen Datensatz mit Vorfallsberichten zu kategorisieren.

Ladeskript

Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in einen neuen Abschnitt ein.

Das Ladeskript umfasst:

* Datensatz, der in eine Datentabelle namens Example geladen wird

* Die folgenden Felder in der Datentabelle:

  * 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];
```

Ergebnisse

Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie die folgenden Felder als Dimensionen hinzu:

* Datum

* Speicherort

* Zwischenfälle

Erstellen Sie die folgenden dynamischen Dimensionen:

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

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

Ergebnistabelle

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

## Beispiel – Datum mit if kategorisieren

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

#### Diagrammformel

Übersicht

Verwenden Sie die Funktion if, um Daten zu kategorisieren.

Ladeskript

Öffnen Sie den Dateneditor und fügen Sie das Ladeskript unten in einen neuen Abschnitt ein.

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

Ergebnisse

Laden Sie die Daten und öffnen Sie ein Arbeitsblatt. Erstellen Sie eine neue Tabelle und fügen Sie dieses Feld als Dimension hinzu:

* Date

Erstellen Sie die folgenden dynamischen Dimensionen:

* WeekDay(Date)

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

Ergebnistabelle

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