# 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`」というデータ テーブルにロードされるデータセット。

* データ テーブル内の 1 つの項目は `ExpressionText` と呼ばれます。

* `Evaluate` 関数を使って項目 `ExpressionText` を評価し、2 つの新しい項目 `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 を返しません。すべての行が評価され、例えば 2 行目は `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` 関数の出力は、関数を使用して値を計算する方法を示しています。