# NULL脚本和图表功能

Null 函数返回 null 值。

语法：

Null( )

返回数据类型： NULL

示例：图表表达式

| 示例 | 结果 |
| --- | --- |
| `If(Product = 'A', Null(),Sum(Sales))` | 此表达式返回 `Product A` 的 `NULL`，否则返回产品的销售额总和。 |

## 示例 - Null 基本原理

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

#### 图表表达式

概述

使用一个简单的数据集来演示 `Null` 函数的不同用途。

打开数据加载编辑器，并将下面的加载脚本添加到新部分。

加载脚本包含：

* 加载到名为 `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 )`，如果 `Value` 字段值为以下情况之一：没有值、短横 (-) 字符或值 `NULL` ，则返回 `NULL` ，否则返回值。

* `=If(IsNull(If(len(trim(Value))= 0 or Value='NULL' or Value='-', Null(), Value )), 'T', 'F')`，根据 `Value` 字段是否包含空值，返回值 `T` (true) 或 `F` (false)。

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` 语句条件的那些值返回 `NULL`：`len(trim(Value))= 0 or Value='NULL' or Value='-'`。例如，前 3 行符合要求，并返回 `NULL` 。最后一行返回输入的值，`378`。

第二个度量（第 4 列）取第 3 列中的值，并返回 `T` if `NULL` 或 `F` if not`NULL`。结果显示，前 3 行为空值。

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

#### 加载脚本

在此例中，已加载包含四行的内联表，其中前面三行不包含任何内容，或者包含短横 - 或者 `Value` 列中的文本 NULL。我们将这些值转移为真正的 NULL 值呈现形式。

中间前置 LOAD 使用 `Null` 函数执行转换。

第一个前置 LOAD 用于添加一个字段来检查该值是否为 NULL，在此例中仅供说明。

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

下面是结果表。在 `ValueNullConv` 列中，`NULL` 值用 `-` 表示。

Results table

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

## 示例 - 使用 Null 排除值

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

#### 图表表达式

概述

分析销售数据以确定总销售额和与 `Product A` 不相关的销售额。

打开数据加载编辑器，并将下面的加载脚本添加到新部分。

加载脚本包含：

* 加载到名为 `Example` 的数据表中的数据集。

* 数据表中有以下字段：

  * `Product`

  * `Sales`

加载脚本

```
Example:
LOAD * Inline [
Product, Sales
A, 100
B, 150
C, 200
D, 250
];
```

结果

加载数据并打开工作表。创建新表并将该字段添加为维度：

* `Product`

创建以下度量：

* `=Sum(Sales)`，计算总销售额。

* `=If(Product = 'A', Null(),Sum(Sales))`，计算 `Product` 并非为 `A` 的总销售额。

Results table

| Product | Sum(Sales) | If(Product = 'A', Null(),Sum(Sales)) |
| --- | --- | --- |
| A | 100 | - |
| B | 150 | 150 |
| C | 200 | 200 |
| D | 250 | 250 |

此示例显示了一种计算总销售额的简单方法，然后使用 `Null` 函数将值设置为 `NULL`，排除特定产品的销售额。例如，在第二个度量中，`Product A` 的所有值返回 `NULL` 并被排除在外。