# Evaluate 指令碼函數

Evaluate() 會尋找輸入文字字串是否能夠評估為有效的 Qlik Sense 運算式，如果可以，則以字串形式傳回運算式的值。如果輸入字串不是有效的運算式，則會傳回 NULL。

語法：

Evaluate(expression\_text)

傳回的資料類型： 雙值

引數

| 引數 | 描述 |
| --- | --- |
| text | 要評估的字串。 |

資訊備註此字串函數不可用於圖表運算式。

函數範例和結果

| 函數範例 | 結果 |
| --- | --- |
| `Evaluate( 5 * 8 )` | 傳回 `40` |

## 範例 - Evaluate 基礎事項

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

#### 載入指令碼

概述

開啟資料載入編輯器並將下面的載入指令碼新增至新的區段。

載入指令碼包含：

* 載入到稱為 `Example` 之資料表格的資料集。

* 資料表格中稱為 `ExpressionText` 的一個欄位。

* 前置載入使用 `Evaluate` 函數來評估欄位 `ExpressionText` 並傳回兩個新的欄位：`Evaluated` 和 `Evaluatedx4`。

載入指令碼

```
Example:
Load
ExpressionText
, Evaluate(ExpressionText) as Evaluated
, Evaluate(ExpressionText)*4 as Evaluatedx4
;
Load * Inline
[ExpressionText
4
5+3
100/5
123*2
329-9
0123456789012345678
1234567890123456789
0123456.5512
0123456.5512479994578952364859346469
Today()
Bob
];
```

結果

會在資料表格中載入下列欄位：

* `ExpressionText`

* `Evaluated`

* `Evaluatedx4`

Results table

| ExpressionText | Evaluated | Evaluatedx4 |
| --- | --- | --- |
| 4 | 4 | 16 |
| 5+3 | 8 | 32 |
| 100/5 | 20 | 80 |
| 123\*2 | 246 | 984 |
| 329-9 | 320 | 1280 |
| 0123456789012345678 | 0123456789012345678 | 4.9382715604938e+17 |
| 1234567890123456789 | 1234567890123456789 | 4.9382715604938e+18 |
| 0123456.5512 | 0123456.5512 | 493826.2048 |
| 0123456.5512479994578952364859346469 | 0123456.5512479994578952364859346469 | 493826.204992 |
| Today() | 11/5/2024 | 182404 |
| Bob | - | - |

`Evaluate` 函數的輸出傳回所有 `ExpressionText` 字串的值，最後一列除外。無法評估字串 `Bob`，因此該函數不會傳回任何值 - NULL。已評估所有列，例如第二列新增 `5` 和 `3` 以傳回 `8`。某些 `ExpressionText` 字串按原樣傳回字串，因為該字串已評估為數字。例如，字串 `0123456789012345678` 評估為相同的數字。

雖然 Qlik Sense 對數值有 14 位數精確度限制，但 `Evaluate` 函數可將 18 位數字串評估為數字並在指令碼中套用乘法。這對於處理指令碼中的大量數字非常實用。

## 範例 - Evaluate 使用情境

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

#### 載入指令碼

概述

銷售資料的資料集包含產品、價格和折扣。此範例衍生出產品的折扣價格。

開啟資料載入編輯器並將下面的載入指令碼新增至新的區段。

載入指令碼包含：

* 載入到稱為 `Example` 之資料表格的資料集。

* 資料表格中的欄位如下：

  * `Product`

  * `Price`

  * `Discount %`

* 前置載入採用 `Price` 和 `Discount %` 值並計算出名為 `DiscountedPrice` 的附加欄位。這個新欄位使用 `Evaluate` 函數計算價格減去折扣。

載入指令碼

```
Example:
LOAD
Product,
Price,
[Discount (%)],
Price * (1 - ​​Evaluate([Discount (%)] / 100)) AS DiscountedPrice
INLINE [
Product, Price, Discount (%)
Laptop, 1000, 15
Smartphone, 800, 10
Tablet, 600, 20
Headphones, 200, 5
];
```

結果

載入資料並開啟工作表。建立新的表格並將這些欄位新增為維度：

* `Product`

* `Price`

* `Discount %`

* `DiscountedPrice`

Results table

| Product | Price | Discount % | DiscountedPrice |
| --- | --- | --- | --- |
| Headphones | 200 | 5 | 190 |
| Tablet | 600 | 20 | 480 |
| Smartphone | 800 | 10 | 720 |
| Laptop | 1000 | 15 | 850 |

`Evaluate` 函數的輸出示範如何使用該函數運算值。