# coalesceSkript- und Diagrammfunktion

Die Funktion coalesce liefert als Ergebnis den ersten der Parameter, die eine gültige non-NULL-Darstellung aufweisen. Es kann eine beliebige Anzahl von Argumenten benutzt werden.

Syntax:

coalesce(expr1[ , expr2 , expr3 , ...])

Rückgabe Datentyp: dual

Argumente

| Argument | Beschreibung |
| --- | --- |
| expr1 | Der erste Ausdruck prüft das Vorliegen einer gültigen Nicht-NULL-Darstellung. |
| expr2 | Der zweite Ausdruck prüft das Vorliegen einer gültigen Nicht-NULL-Darstellung. |
| expr3 | Der dritte Ausdruck prüft das Vorliegen einer gültigen Nicht-NULL-Darstellung. |

Beispiele: Diagrammformeln

| Beispiel | Ergebnis |
| --- | --- |
| `Coalesce(ProductDescription, ProductName, ProductCode, 'no description available')` | Diese Formel wählt zwischen drei verschiedenen Produktbeschreibungsfeldern für den Fall, dass einige Felder keine Werte für das Produkt enthalten. Der in der Funktion aufgeführten Reihenfolge folgend, wird das erste Feld mit einem Nicht-Null-Wert zurückgegeben. Wenn keines der Felder einen Wert enthält, ist das Ergebnis `no description available`. |
| `Coalesce(TextBetween(FileName, '"', '"'), FileName)` | Diese Formel entfernt etwaige umschließende Anführungszeichen aus dem Feld `FileName`. Wenn der angegebene `FileName` von Anführungszeichen umschlossen ist, werden diese entfernt, und der umschlossene `FileName` wird ohne Anführungszeichen zurückgegeben. Wenn die Funktion `TextBetween` keine Trennzeichen findet, gibt sie null zurück, was von Coalesce abgelehnt wird. Stattdessen wird der unformatierte `FileName` zurückgegeben. |

## Beispiel – Grundlegendes zu Coalesce

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

#### Diagrammformel

Übersicht

Es wird eine Datentabelle geladen, die Produkt- und Preisdaten enthält. Sie möchten sicherstellen, dass alle Nullwerte durch einen alternativen Wert ersetzt werden.

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

  * `Price`

* Ein `NullInterpret`-Variablenbefehl, der sicherstellt, dass alle fehlenden Werte als NULL behandelt werden.

Ladeskript

```
Set NullInterpret = '';
Example:
LOAD * INLINE [
ProductID, ProductName, Price
1, Laptop, 1000
2, , 800
3, Desktop, 1200
4, , 500
5, Tablet, 600
];
```

Ergebnisse

1. 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`

2. Erstellen Sie die folgende berechnete Dimension:

   * `=Coalesce(ProductName, 'Unknown Product')`

3. Erstellen Sie die folgende Kennzahl:

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

4. Erstellen Sie eine neue Tabelle und fügen Sie die folgende Formell als berechnete Dimension hinzu:

   * `=Coalesce(ProductName, 'Unknown Product')`

5. Erstellen Sie die folgende Kennzahl:

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

Die Ergebnisse in den folgenden Tabellen zeigen, wie die Funktion `Coalesce` die Nullwerte im Originaldatensatz durch den alternativen Wert `Unknown Product` ersetzen kann.

Ergebnistabelle 1

| ProductID | ProductName | Coalesce(ProductName, 'Unknown Product') | Sum(Price) |  |
| --- | --- | --- | --- | --- |
| Totals |  |  | 4100 |  |
| 1 | Laptop | Laptop | 1000 |  |
| 2 | - | Unknown Product | 800 |  |
| 3 | Desktop | Desktop | 1200 |  |
| 4 | - | Unknown Product | 500 |  |
| 5 | Tablet | Tablet | 600 |  |

Ergebnistabelle 2

| Coalesce(ProductName, 'Unknown Product') | Sum(Price) |
| --- | --- |
| Totals | 5 |
| Desktop | 600 |
| Laptop | 1000 |
| Tablet | 600 |
| Unknown Product | 1300 |

## Beispiel – Ersetzen von Nullwerten durch einen priorisierten alternativen Wert

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

#### Diagrammformel

Übersicht

In diesem Beispiel wird die Funktion `Coalesce` verwendet, um fehlende Standortdaten durch einen alternativen Wert gemäß der angegebenen Prioritätslogik 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:

  * `LocationID`

  * `Country`

  * `State`

  * `City`

* Ein `NullInterpret`-Variablenbefehl, der sicherstellt, dass alle fehlenden Werte als NULL behandelt werden.

Ladeskript

```
Set NullInterpret = '';
Example:
LOAD * INLINE [
LocationID, Country, State, City
L001, USA, California, Los Angeles
L002, USA, ,
L003, Canada, Ontario,
L004, , New South Wales, Sydney
L005, UK, , London
L006, , , London
];
```

Ergebnisse

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

   * `LocationID`

   * `Country`

   * `State`

   * `City`

2. Erstellen Sie die folgende berechnete Dimension:

   * `=Coalesce(Country, State, City)`, um alle Nullwerte mit Alternativen zu füllen.

Ergebnistabelle

| LocationID | Country | State | City | Coalesce(Country, State, City) |
| --- | --- | --- | --- | --- |
| L001 | USA | California | Los Angeles | USA |
| L002 | USA | - | - | USA |
| L003 | Canada | Ontario | - | Canada |
| L004 | - | New South Wales | Sydney | New South Wales |
| L005 | UK | - | London | UK |
| L006 | - | - | London | London |

Die Ergebnisse zeigen, dass es zwar fehlende Werte gibt, Sie aber die Funktion `Coalesce` verwenden können, um eine Logik zu bereitzustellen, mit der diese Instanzen mit einem alternativen Wert aufgefüllt werden können, um den Datensatz zu vervollständigen. Bei `L004` fehlt zum Beispiel ein `Country`-Wert. Die Funktion `Coalesce` gibt `New South Wales` zurück, da `State` das zweite Feld ist, das in der Prioritätslogik aufgeführt ist, die verwendet wird, wenn der Wert für `Country` fehlt.