# alt Skript- und Diagrammfunktion

Die alt-Funktion liefert als Ergebnis das erste Argument, dem ein numerischer Wert zugeordnet werden kann. Wird kein solches gefunden, wird der letzte Wert ausgegeben. Es kann eine beliebige Anzahl von Argumenten benutzt werden.

Syntax:

alt(expr1[ , expr2 , expr3 , ...] , else)

Rückgabe Datentyp: ganze Zahl

Argumente

| Argument | Beschreibung |
| --- | --- |
| expr1 | Der erste Ausdruck prüft die Darstellung einer gültigen Zahl. |
| expr2 | Der zweite Ausdruck prüft die Darstellung einer gültigen Zahl. |
| expr3 | Der dritte Ausdruck prüft die Darstellung einer gültigen Zahl. |
| else | Der zurückzugebende Wert, wenn keiner der vorstehenden Parameter eine gültige Zahlendarstellung hat. |

Die alt -Funktion wird häufig mit Zahlen- oder Datums-Interpretationsfunktionen verwendet. So kann Qlik Sense verschiedene Datumsformate nach Priorität testen. Sie kann in numerischen Formeln auch zur Handhabung von NULL-Werten verwendet werden.

Beispiel: Diagrammformeln

| Beispiel | Ergebnis |
| --- | --- |
| `alt( date#(<br>						dat , 'YYYY/MM/DD' ),` `date#( dat<br>						, 'MM/DD/YYYY' ),` `date#( dat<br>						, 'MM/DD/YY' ),` `'No valid<br>						date' )` | Diese Formel testet, ob das Feld „date“ ein Datum enthält, das einem der drei angegebenen Datumsformate entspricht. Ist dies der Fall, werden ein dualer Wert mit dem Original-String und die zugehörige Zahl für ein Datum ausgegeben. Anderenfalls wird der Text `No valid date` ausgegeben (ohne gültigen numerischen Wert). |
| `alt(Sales,0) + alt(Margin,0)` | Diese Formel fügt die Felder `Sales` und `Margin` hinzu, wodurch fehlende Werte (NULL) durch `0` ersetzt werden. |

## Beispiel – Grundlegendes zu alt

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

#### Diagrammformel

Übersicht

Ein Datensatz enthält unvollständige Umsatz- und Prognosedaten. Sie möchten fehlende Werte durch gültige alternative Werte ersetzen, um die Lücken zu füllen.

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

  * `ID`

  * `Sales`

  * `Forecast`

Ladeskript

```
Example:
LOAD * INLINE [
ID, Sales, Forecast
1, 500, 450
2, , 300
3, 200, 250
4, , 400
5, 350,
];
```

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:

* `ID`

* `Sales`

* `Forecast`

Erstellen Sie die folgende Kennzahl:

* `=Sum(alt(Sales, Forecast))`, um eine gültige Zahlendarstellung zurückzugeben, indem fehlende Werte durch gültige alternative Werte ersetzt werden.

Ergebnistabelle

| ID | Sales | Forecast | Sum(alt(Sales, Forecast)) |
| --- | --- | --- | --- |
| Totals |  |  | 1750 |
| 1 | 500 | 450 | 500 |
| 2 |  | 300 | 300 |
| 3 | 200 | 250 | 200 |
| 4 |  | 400 | 400 |
| 5 | 350 |  | 350 |

Die Funktion `alt` gibt den `Forecast`-Wert in der Kennzahlenberechnung für die `ID`-Zeilen mit fehlenden `Sales`-Werten zurück. Indem Sie fehlende Werte durch gültige alternative Werte ersetzen, können Sie einen vollständig ausgefüllten Datensatz erstellen.

## Beispiel – Verwenden von alt zum Ersetzen fehlender Werte

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

#### Diagrammformel

Übersicht

Ein Unternehmen erfasst Temperaturdaten von mehreren Sensoren. Sie möchten fehlende Daten von einem Sensor durch die Daten des anderen Sensors ersetzen.

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

  * `Time`

  * `Temp_Sensor1`

  * `Temp_Sensor2`

Ladeskript

```
Example:
LOAD * INLINE [
Time, Temp_Sensor1, Temp_Sensor2
08:00, 23.5, 24.0
09:00, , 23.8
10:00, 24.1,
11:00, , 24.5
12:00, 23.9, 24.1
];
```

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:

* `Time`

* `Temp_Sensor1`

* `Temp_Sensor2`

Erstellen Sie die folgende Kennzahl:

* `=Sum(alt(Temp_Sensor1, Temp_Sensor2))`, um eine gültige Zahlendarstellung zurückzugeben.

Ergebnistabelle

| Time | Temp\_Sensor1 | Temp\_Sensor2 | Sum(alt(Temp\_Sensor1, Temp\_Sensor2)) |
| --- | --- | --- | --- |
| Totals |  |  | 119.8 |
| 08:00 | 23.5 | 24.0 | 23.5 |
| 09:00 |  | 23.8 | 23.8 |
| 10:00 | 24.1 |  | 24.1 |
| 11:00 |  | 24.5 | 24.5 |
| 12:00 | 23.9 | 24.1 | 23.9 |

Wenn Sie sich die Ergebnisse ansehen, hat die Funktion `alt` fehlende Sensordaten durch gültige alternative Ergebnisse des anderen Sensors ersetzt. Damit wird der Datensatz vervollständigt, indem Lücken ausgefüllt werden.

## Beispiel – Szenario für „alt“

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

#### Diagrammformel

Übersicht

Dieses Szenario zeigt verschiedene Möglichkeiten, wie Sie die Funktion `alt` verwenden können, um fehlende oder Null-Werte zu ersetzen.

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

  * `SalesAmount`

  * `ReturnAmount`

  * `Profit`

  * `Discount`

  * `Category`

  * `Year`

  * `Region`

  * `CustomerRating`

Ladeskript

```
Set NullInterpret = '';
Example:
LOAD * INLINE [
ProductID, ProductName, SalesAmount, ReturnAmount, Profit, Discount, Category, Year, Region, CustomerRating
101, "Laptop", 1200, 200, 500, , "Electronics", 2023, "North",
102, "Tablet", 800, , 300, 50, "Electronics", 2023, "South", 4
103, "Smartphone", 1500, , 600, 100, , 2022, "East", 5
104, "Printer", 400, , , 20, "Accessories", 2021, , 3
105, , 1000, 100, , 30, "Electronics", 2023, "West", 4
106, "Monitor", , 150, 250, , "Accessories", 2022, "North", 5
107, "Keyboard", 200, , 80, 5, , 2022, "South", 2
108, "Mouse", , 50, , , "Accessories", , "East",
109, , 600, , , , "Electronics", 2023, , 4
110, "Headphones", 300, 30, 100, , "Accessories", 2021, "West", 3
];
```

Ergebnisse

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

* `ProductID`

Erstellen Sie die folgende berechnete Dimension:

* `=Coalesce( ProductName,  'Unknown Product')`, um die Beschreibung `Unknown Product` für alle Produkte bereitzustellen, die keinen Wert für `ProductName` haben.

Erstellen Sie die folgenden Kennzahlen:

* `=Sum(alt(SalesAmount, ReturnAmount, Profit))`, um eine gültige Zahl zurückzugeben, wenn kein `SalesAmount` gefunden wird.

* `=avg(alt(CustomerRating, 3))`, um eine gültige standardisierte Kundenbewertung zurückzugeben, wenn ursprünglich keine angegeben wurde.

* `=Sum(alt(Discount, SalesAmount * 0.05))`, um einen gültigen Rabatt zurückzugeben.

* `=Sum(alt(Profit, SalesAmount * 0.1))`, um einen gültigen Gewinnwert zurückzugeben.

* `=Sum(alt(SalesAmount, avg(TOTAL SalesAmount)))`, um einen gültigen Umsatzwert zurückzugeben.

* `=Sum(alt(Discount, avg(TOTAL Discount)))`, um einen gültigen Rabattwert zurückzugeben.

Ergebnistabelle

| ProductID | Coalesce( ProductName, 'Unknown Product') | Sum(alt(SalesAmount, ReturnAmount, Profit)) | avg(alt(CustomerRating, 3)) | Sum(alt(Discount, SalesAmount \* 0.05)) | Sum(alt(Profit, SalesAmount \* 0.1)) | Sum(alt(SalesAmount, avg(TOTAL SalesAmount))) | Sum(alt(Discount, avg(TOTAL Discount))) |
| --- | --- | --- | --- | --- | --- | --- | --- |
| Summen |  | 6200 | 3.6 | 310 | 2030 | 7500 | 410 |
| 101 | Laptop | 1200 | 3 | 60 | 500 | 1200 | 41 |
| 102 | Tablet | 800 | 4 | 50 | 300 | 500 | 50 |
| 103 | Smartphone | 1500 | 5 | 100 | 600 | 800 | 100 |
| 104 | Drucker | 400 | 3 | 20 | 40 | 400 | 20 |
| 105 | Unbekanntes Produkt | 1000 | 4 | 30 | 100 | 1000 | 30 |
| 106 | Überwachen | 150 | 5 | 0 | 250 | 750 | 41 |
| 107 | Tastatur | 200 | 2 | 5 | 80 | 200 | 5 |
| 108 | Maus | 50 | 3 | 0 | 0 | 750 | 41 |
| 109 | Unbekanntes Produkt | 600 | 4 | 30 | 60 | 600 | 41 |
| 110 | Kopfhörer | 300 | 3 | 15 | 100 | 300 | 41 |

Die Funktion `alt` sorgt dafür, dass bei fehlenden Werten alternative Werte berechnet und zurückgegeben werden können. Betrachten Sie die folgenden Ergebnisse:

* Spalte 2 verwendet die Funktion `Coalesce`, um den Wert `Unknown Product` für alle Nullwerte zurückzugeben. Die Funktion `Alt` kann nicht verwendet werden, da sie nur für numerische Werte gilt.

* Spalte 3 liefert den Wert für `SalesAmount`. Wenn kein Wert gefunden wird, gibt sie den Wert für `ReturnAmount` zurück. Wenn kein Wert für `ReturnAmount` gefunden wird, gibt sie den Wert für `Profit` zurück. Dies hilft sicherzustellen, dass die Spalte mit einem Wert gefüllt wird, wenn `SalesAmount` keinen Wert hat.

* Spalte 4 gibt die `CustomerRating` zurück. Wenn kein Wert gefunden wird, ist dies standardmäßig der Wert `3`. Zum Beispiel hat das Produkt `Laptop` keine Kundenbewertung, also wird `3` zurückgegeben. Die Kennzahl berechnet dann den Durchschnitt für die Spalte.

* Spalte 5 gibt den Rabattwert an. Wenn kein Wert verfügbar ist, wird er als 5% des Wertes von `SalesAmount` berechnet.

* Spalte 6 gibt den Wert für `Profit` zurück. Wenn kein Wert verfügbar ist, wird 10% von `SalesAmount` zurückgegeben.

* Spalte 7 gibt den `SalesAmount` zurück. Wenn kein Wert angegeben wird, wird der Durchschnitt von `SalesAmount` für den gesamten Datensatz zurückgegeben. Zum Beispiel haben die Produkte `Monitor` und `Mouse` keinen Wert für `SalesAmount`, sodass beide `750` zurückgeben, was der Durchschnitt aller `SalesAmount`-Werte ist.

* Spalte 8 gibt den Wert für `Discount` zurück. Wenn kein Wert gefunden wird, berechnet das System den durchschnittlichen Rabatt für den gesamten Datensatz und gibt ihn zurück.