# alt Script- en diagramfunctie

De functie alt retourneert de eerste parameter waaraan een geldige numerieke waarde kan worden toegewezen. Als deze niet wordt gevonden, wordt de laatste parameter geretourneerd. U kunt een willekeurig aantal parameters gebruiken.

Syntaxis:

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

Retourgegevenstypen: geheel getal

Argumenten

| Argument | Beschrijving |
| --- | --- |
| expr1 | De eerste uitdrukking voor controle op een geldige getalsnotatie. |
| expr2 | De tweede uitdrukking voor controle op een geldige getalsnotatie. |
| expr3 | De derde uitdrukking voor controle op een geldige getalsnotatie. |
| else | Waarde die moet worden geretourneerd als geen van de voorafgaande parameters een geldige getalsnotatie heeft. |

De alt -functie wordt vaak gebruikt met interpretatiefuncties voor getallen of datums. Op die manier kan Qlik Sense verschillende datumnotaties in een voorkeursvolgorde testen. De functie kan tevens worden gebruikt voor het afhandelen van NULL-waarden in numerieke uitdrukkingen.

Voorbeeld: diagramuitdrukkingen

| Voorbeeld | Resultaat |
| --- | --- |
| `alt( date#(<br>						dat , 'YYYY/MM/DD' ),` `date#( dat<br>						, 'MM/DD/YYYY' ),` `date#( dat<br>						, 'MM/DD/YY' ),` `'No valid<br>						date' )` | Deze uitdrukking test of het veld Datum een datum bevat volgens een van de drie opgegeven datumnotaties. Als dit het geval is, wordt een dubbele waarde met de oorspronkelijke tekenreeks en een geldige numerieke representatie van een datum weergegeven. Als geen geldige datum wordt gevonden, wordt de tekst `No valid date` geretourneerd (zonder geldige numerieke representatie). |
| `alt(Sales,0) + alt(Margin,0)` | Deze uitdrukking voegt de velden `Sales` en `Margin` toe, waarbij eventuele ontbrekende waarden (NULL) worden vervangen door een `0`. |

## Voorbeeld - Basisprincipes voor alt

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

#### Diagramuitdrukking

Overzicht

Een gegevensverzameling bevat onvolledige verkoop- en prognosegegevens. U wilt ontbrekende waarden vervangen door geldige alternatieve waarden om de gaten op te vullen.

Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuwe sectie.

Het load-script bevat:

* Een gegevensverzameling die wordt geladen in een tabel met de naam `Example`.

* De volgende velden in de gegevenstabel:

  * `ID`

  * `Sales`

  * `Forecast`

Load-script

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

Resultaten

Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:

* `ID`

* `Sales`

* `Forecast`

Maak de volgende meting:

* `=Sum(alt(Sales, Forecast))` om een geldige getalweergave te retourneren door ontbrekende waarden te vervangen door geldige alternatieve waarden.

Resultatentabel

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

De functie `alt` retourneert de waarde `Forecast` in de metingberekening voor de rijen `ID` met ontbrekende waarden van `Sales`. Door ontbrekende waarden te vervangen door geldige alternatieve waarden kunt u een volledig gevulde gegevensverzameling genereren.

## Voorbeeld - alt gebruiken om ontbrekende waarden te vervangen

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

#### Diagramuitdrukking

Overzicht

Een bedrijf verzamelt temperatuurgegevens van meerdere sensoren. U wilt ontbrekende gegevens van de ene sensor vervangen door de gegevens van de andere sensor.

Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuwe sectie.

Het load-script bevat:

* Een gegevensverzameling die wordt geladen in een tabel met de naam `Example`.

* De volgende velden in de gegevenstabel:

  * `Time`

  * `Temp_Sensor1`

  * `Temp_Sensor2`

Load-script

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

Resultaten

Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg deze velden toe als dimensies:

* `Time`

* `Temp_Sensor1`

* `Temp_Sensor2`

Maak de volgende meting:

* `=Sum(alt(Temp_Sensor1, Temp_Sensor2))` om een geldige getalrepresentatie terug te geven.

Resultatentabel

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

Als u naar de resultaten kijkt, heeft de functie `alt` ontbrekende sensorgegevens vervangen door geldige alternatieve resultaten van de andere sensor. Dit vult de gegevensverzameling aan door gaten op te vullen.

## Voorbeeld 5 – Scenario met alt

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

#### Diagramuitdrukking

Overzicht

Dit scenario toont verschillende manieren waarop u de functie `alt` kunt gebruiken om ontbrekende of null-waarden te vervangen.

Open de editor voor laden van gegevens en voeg het onderstaande load-script toe aan een nieuwe sectie.

Het load-script bevat:

* Een gegevensverzameling die wordt geladen in een tabel met de naam `Example`.

* De volgende velden in de gegevenstabel:

  * `ProductID`

  * `ProductName`

  * `SalesAmount`

  * `ReturnAmount`

  * `Profit`

  * `Discount`

  * `Category`

  * `Year`

  * `Region`

  * `CustomerRating`

Load-script

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

Resultaten

Laad de gegevens en open een werkblad. Maak een nieuwe tabel en voeg dit veld toe als dimensie:

* `ProductID`

Maak een nieuwe tabel en voeg de volgende berekende dimensie toe:

* `=Coalesce( ProductName,  'Unknown Product')`, om de beschrijving `Unknown Product` te geven voor alle producten die geen waarde hebben voor `ProductName`.

Maak de volgende metingen:

* `=Sum(alt(SalesAmount, ReturnAmount, Profit))`, om een geldig getal te retourneren als er geen `SalesAmount` wordt gevonden.

* `=avg(alt(CustomerRating, 3))`, om een geldige gestandaardiseerde klantwaardering te retourneren als er oorspronkelijk geen was opgegeven.

* `=Sum(alt(Discount, SalesAmount * 0.05))`, om een geldige korting te retourneren.

* `=Sum(alt(Profit, SalesAmount * 0.1))`, om een geldige winstwaarde te retourneren.

* `=Sum(alt(SalesAmount, avg(TOTAL SalesAmount)))`, om een geldige verkoopwaarde te retourneren.

* `=Sum(alt(Discount, avg(TOTAL Discount)))`, om een geldige kortingswaarde te retourneren.

Resultatentabel

| 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))) |
| --- | --- | --- | --- | --- | --- | --- | --- |
| Totalen |  | 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 | Printer | 400 | 3 | 20 | 40 | 400 | 20 |
| 105 | Onbekend product | 1000 | 4 | 30 | 100 | 1000 | 30 |
| 106 | Bewaken | 150 | 5 | 0 | 250 | 750 | 41 |
| 107 | Toetsenbord | 200 | 2 | 5 | 80 | 200 | 5 |
| 108 | Muis | 50 | 3 | 0 | 0 | 750 | 41 |
| 109 | Onbekend product | 600 | 4 | 30 | 60 | 600 | 41 |
| 110 | Hoofdtelefoon | 300 | 3 | 15 | 100 | 300 | 41 |

De functie `alt` zorgt ervoor dat wanneer waarden ontbreken, alternatieve waarden kunnen worden berekend en geretourneerd. Bekijk de volgende resultaten:

* Kolom 2 gebruikt de functie `Coalesce` om de waarde `Unknown Product` te retourneren voor alle null-waarden. De functie `Alt` kan niet worden gebruikt omdat deze alleen van toepassing is op numerieke waarden.

* Kolom 3 retourneert de waarde voor `SalesAmount`. Als er geen waarde wordt gevonden, wordt de waarde `ReturnAmount` geretourneerd. Als er geen waarde voor `ReturnAmount` wordt gevonden, wordt de waarde `Profit` geretourneerd. Dit helpt ervoor te zorgen dat de kolom wordt gevuld met een waarde als `SalesAmount` geen waarde heeft.

* Kolom 4 retourneert de `CustomerRating`. Als er geen waarde wordt gevonden, wordt standaard `3` gebruikt. Het product `Laptop` heeft bijvoorbeeld geen klantbeoordeling, dus wordt `3` geretourneerd. De meting berekent vervolgens het gemiddelde voor de kolom.

* Kolom 5 retourneert de kortingswaarde. Als er geen waarde beschikbaar is, wordt deze berekend als 5% van de waarde voor `SalesAmount`.

* Kolom 6 retourneert de waarde voor `Profit`. Als er geen waarde beschikbaar is, wordt 10% van de `SalesAmount` geretourneerd.

* Kolom 7 retourneert de `SalesAmount`. Als er geen waarde wordt opgegeven, wordt de gemiddelde `SalesAmount` van de gehele gegevensverzameling geretourneerd. De producten `Monitor` en `Mouse` hebben bijvoorbeeld geen waarde voor `SalesAmount`, dus beide retourneren `750`, wat het gemiddelde is van alle waarden voor `SalesAmount`.

* Kolom 8 retourneert de waarde voor `Discount`. Als er geen waarde wordt gevonden, berekent het systeem de gemiddelde korting van de hele gegevensverzameling en retourneert deze.