# IsNull Функция скрипта и диаграммы

Функция IsNull проверяет, является ли значение выражения NULL. Если да, то функция возвращает -1 (True), в противном случае — 0 (False).

Синтаксис:

IsNull(expr )

Примечание к информацииСтрока с нулевой длиной не считается значением NULL и приведет к возврату значения False функцией IsNull.

Возвращаемые типы данных: Булево

Аргументы

| Аргумент | Описание |
| --- | --- |
| expr | Выражение или поле, содержащее данные для измерения. |

Пример. Выражение диаграммы

| Пример | Результат |
| --- | --- |
| `IsNull(Productname)` | Возвращает `-1` (True), если `ProductName` имеет нулевое значение, иначе `0` (False). |

## Пример. Основы использования функции IsNull

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

#### Выражение диаграммы

Обзор

Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки в новый раздел.

Скрипт загрузки содержит следующее:

* Набор данных, который загружается в таблицу данных под именем `Example`.

* Следующие поля в таблице данных:

  * `ID`

  * `Value`

Скрипт загрузки

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

Результаты

Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:

* `ID`

* `Value`

Создайте следующие вычисляемые измерения:

* `=If(len(trim(Value))= 0 or Value='NULL' or Value='-', Null(), Value )`, чтобы вернуть `NULL`, если поле `Value` не содержит значения, содержит символ тире (-) или значение `NULL`, или в противном случае вернуть значение.

* `=If(IsNull(If(len(trim(Value))= 0 or Value='NULL' or Value='-', Null(), Value )), 'T', 'F')`, чтобы вернуть значение `T` (True) или `F` (False) в зависимости от того, содержит поле `Value` нулевое значение или нет.

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 |

В столбце `Value` показаны данные, введенные в набор данных. Первая мера (столбец 3) возвращает `NULL` для первых трех строк, значение которых удовлетворяет условиям оператора `IF`: `len(trim(Value))= 0 or Value='NULL' or Value='-'`. Последняя строка возвращает введенное значение, `378`.

Вторая мера (столбец 4) принимает значение выражения в столбце 3 и возвращает `T`, если `NULL`, или `F`, если не `NULL`. Результаты показывают, что первые три строки содержат нулевые значения.

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

#### Скрипт загрузки

В этом примере загружена встроенная таблица с четырьмя строками, где первые три строки не содержат ничего, содержат - или значение NULL в столбце `Value`. Мы преобразуем эти значения в представления значения true NULL с предшествующим в середине оператором LOAD с помощью функции Null.

Первый предшествующий оператор LOAD добавляет поле, которое проверяет, является ли значение NULL, с помощью функции IsNull.

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

Ниже приводится результирующая таблица. В столбце `ValueNullConv` значения `NULL` представлены элементом `-`.

Results table

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

## Пример. Сценарий использования функции IsNull

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

#### Выражение диаграммы

Обзор

Набор данных о продажах анализируется с целью идентификации полей, которые имеют нулевые значения.

Откройте редактор загрузки данных и добавьте приведенный ниже скрипт загрузки в новый раздел.

Скрипт загрузки содержит следующее:

* Набор данных, который загружается в таблицу данных под именем `Example`.

* Переменная `NULLINTERPRET`, установленная как `NULL`.

* Следующие поля в таблице данных:

  * `SalesID`

  * `Name`

  * `Age`

  * `Email`

  * `Region`

  * `Status`

Скрипт загрузки

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

Результаты

Загрузите данные и откройте лист. Создайте новую таблицу и добавьте эти поля как измерения:

* `SalesID`

* `Name`

Создайте следующие вычисляемые измерения:

* `=If(IsNull(Age), 'Age unavailable', Age)`, чтобы заполнить поле `Age` значением `Age unavailable`, если оно `NULL`.

* `=If(IsNull(Email), 'Email unavailable', Email)`, чтобы заполнить поле `Email` значением `Email unavailable`, если оно `NULL`.

* `=If(IsNull(Region), 'Region unavailable', Region)`, чтобы заполнить поле `Region` значением `Region unavailable`, если оно `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 |

Результаты выполнения функции `IsNull`, которая проверяет наличие нулевых значений и возвращает true в случае их обнаружения, показывают, что несколько полей в наборе данных содержат нулевые значения. Например, в столбце `Age` для `Charlie Lee` идентифицировано нулевое значение, и возвращен результат `Age unavailable`.