# IsNull Skript- och diagramfunktion

Funktionen IsNull testar om värdet på ett uttryck är NULL och om det är så, returnerar -1 (True), annars 0 (False).

Syntax:

IsNull(expr )

Anteckning om informationEn sträng med längden noll inte räknas som NULL och gör att IsNull returnerar False.

Returnerad datatyp: Booleansk

Argument

| Argument | Beskrivning |
| --- | --- |
| expr | Det uttryck eller fält som innehåller de data som ska mätas. |

Exempel: diagramuttryck

| Exempel | Resultat |
| --- | --- |
| `IsNull(Productname)` | Returnerar `-1` (True) om `ProductName` är ett null-värde, annars `0` (False). |

## Exempel – grunderna i IsNull

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

#### Diagramuttryck

Översikt

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

  * `ID`

  * `Value`

Laddningsskript

```
Example:
LOAD * Inline
[ID, Value
0,
1,NULL
2,-
3,378];
```

Resultat

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

* `ID`

* `Value`

Skapa följande beräknade dimensioner:

* `=If(len(trim(Value))= 0 or Value='NULL' or Value='-', Null(), Value )`, för att returnera `NULL` om fältet `Value` inte har något värde, ett streck (-) eller värdet `NULL`, annars returneras värdet.

* `=If(IsNull(If(len(trim(Value))= 0 or Value='NULL' or Value='-', Null(), Value )), 'T', 'F')`, för att returnera värdet `T` (True) eller `F` (False) beroende på om fältet `Value` innehåller ett null-värde eller inte.

Results table

| ID | Value | If(len(trim(Value))= 0 or Value='NULL' or Value='-', Null(), Value ) | If(IsNull(If(len(trim(Value))= 0 or Value='NULL' or Value='-', Null(), Value )), 'T', 'F') |
| --- | --- | --- | --- |
| 0 |  | - | T |
| 1 | NULL | - | T |
| 2 | - | - | T |
| 3 | 378 | 378 | F |

Kolumnen `Value` visar de data som har matats in i datauppsättningen. Den första åtgärden (kolumn 3) returnerar `NULL` för de första 3 raderna vars värde uppfyllde villkoren i `IF`-satsen: `len(trim(Value))= 0 or Value='NULL' or Value='-'`. Den sista raden visar det värde som angetts, `378`.

Den andra åtgärden (kolumn 4) tar värdet av uttrycket i kolumn 3 och returnerar `T` om `NULL` eller `F` om inte `NULL`. Resultatet visar att de första 3 raderna är nollvärden.

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

#### Laddningsskript

I detta exempel laddas en inline-tabell med fyra rader, där de tre första raderna innehåller antingen ingenting, ett streck - eller texten NULL i kolumnen `Value`. Vi omvandlar dessa värden till sanna NULL-värdesåtergivningar med den mellersta som föregår LOAD med hjälp av Null-funktionen.

Första föregående LOAD lägger till ett fält som kontrollerar om värdet är NULL med hjälp av IsNull-funktionen.

```
NullsDetectedAndConverted:
LOAD *,
If(IsNull(ValueNullConv), 'T', 'F') as IsItNull;

LOAD *,
If(len(trim(Value))= 0 or Value='NULL' or Value='-', Null(), Value ) as ValueNullConv;

LOAD * Inline
[ID, Value
0,
1,NULL
2,-
3, 378];
```

Nedan visas den resulterande tabellen. I kolumnen `ValueNullConv` representeras `NULL`-värdena av `-`.

Results table

| ID | Value | ValueNullConv | IsItNull |
| --- | --- | --- | --- |
| 0 |  | - | T |
| 1 | NULL | - | T |
| 2 | - | - | T |
| 3 | 378 | 378 | F |

## Exempel – IsNull-scenario

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

#### Diagramuttryck

Översikt

En datauppsättning med försäljningsdata analyseras för att se vilka fält som har nollvärden.

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

* En `NULLINTERPRET`-variabel som ställs in på `NULL`.

* Följande fält i datatabellen:

  * `SalesID`

  * `Name`

  * `Age`

  * `Email`

  * `Region`

  * `Status`

Laddningsskript

```
Set NULLINTERPRET = NULL;
Example:
LOAD * Inline [
SalesID, Name, Age, Email, Region, Status
1, John Smith, 30, john@email.com, North, Active
2, Jane Doe, NULL, jane@email.com, South, Active
3, Bob Johnson, 45, NULL, East, Inactive
4, Alice Brown, 28, alice@email.com, West, Active
5, Charlie Lee, NULL, charlie@email.com, NULL, Active
6, Eva Green, 35, eva@email.com, North, NULL
7, David White, 50, NULL, South, Inactive
8, Fiona Black, 42, fiona@email.com, East, Active
];
```

Resultat

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

* `SalesID`

* `Name`

Skapa följande beräknade dimensioner:

* `=If(IsNull(Age), 'Age unavailable', Age)`, för att fylla i fältet `Age` med värdet `Age unavailable` om det är `NULL`.

* `=If(IsNull(Email), 'Email unavailable', Email)`, för att fylla i fältet `Email` med värdet `Email unavailable` om det är `NULL`.

* `=If(IsNull(Region), 'Region unavailable', Region)`, för att fylla i fältet `Region` med värdet `Region unavailable` om det är `NULL`.

Results table

| SalesID | Name | If(IsNull(Age), 'Age unavailable', Age | If(IsNull(Email), 'Email unavailable', Email) | If(IsNull(Region), 'Region unavailable', Region) |
| --- | --- | --- | --- | --- |
| 1 | John Smith | 30 | john@email.com | North |
| 2 | Jane Doe | Age unavailable | jane@email.com | South |
| 3 | Bob Johnson | 45 | Email unavailable | East |
| 4 | Alice Brown | 28 | alice@email.com | West |
| 5 | Charlie Lee | Age unavailable | charlie@email.com | Region unavailable |
| 6 | Eva Green | 35 | eva@email.com | North |
| 7 | David White | 50 | Email unavailable | South |
| 8 | Fiona Black | 42 | fiona@email.com | East |

Resultatet av funktionen `IsNull`, som söker efter och returnerar true om nollvärden hittas, visar att flera fält i datauppsättningen innehåller nollvärden. Till exempel identifierades ett nollvärde i kolumnen `Age` för `Charlie Lee`, och utdata `Age unavailable` returnerades.