# NULL指令碼與圖表函數

Null 函數會傳回 null 值。

語法：

Null( )

傳回的資料類型： NULL

範例：圖表運算式

| 範例 | 結果 |
| --- | --- |
| `If(Product = 'A', Null(),Sum(Sales))` | 此運算式對 `Product A` 傳回 `NULL`，否則傳回該產品的銷售總和。 |

## 範例 - Null 基礎事項

[](https://help.qlik.com/en-US/cloud-services/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` 欄位是否包含 Null 值，傳回值 `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 欄) 對於滿足 `IF` 陳述式：`len(trim(Value))= 0 or Value='NULL' or Value='-'` 之條件的值，使用 `Null` 函數傳回 `NULL`。例如，前 3 列符合要求，傳回 `NULL`。最後一列傳回輸入的值 `378`。

第二個量值 (第 4 欄) 採用第 3 欄中的值，並傳回 `T` (如果是 `NULL`) 或 `F` (如果不是 `NULL`)。結果顯示，前 3 列都是 Null 值。

[](https://help.qlik.com/en-US/cloud-services/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/cloud-services/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` 並且遭到排除。