# 外部の set 数式とドル記号展開

1 つ (または複数) のドル記号展開が大きな数式で使用される場合、すべてのドル記号展開は、結果が数式の残りの部分に挿入される前に個別に評価されます。この評価方法の 1 つの意味は、ドル記号展開式の外側にある set 数式は結果に影響を与えないということです。これにより、数式内の情報が二重に評価されるという効果が生じます。

## 例 - 外部の set 数式とドル記号展開を含む数式の評価方法

次のような式があるとします。

```
{<Year={2024}>} $(=Sum(Sales))
```

上記の式には、2024 の Year 値を選択するための set 数式があります。`{<Year={2024}>}`。サンプル式全体が評価されるとき、この set 数式は適用されません。

代わりに、ドル記号展開 `$(=Sum(Sales))` が最初に評価されます。

この例では、`Sum(Sales)` が 1500311 という結果に評価されるとします。数式 `{<Year={2024}>} $(=Sum(Sales))` を評価するとき、この数値が周囲の数式に挿入されます。この評価順序により、次の部分的に評価された構成が生成されます (これは有用な Qlik Sense 数式ではなく、評価の順序を示すためだけに示されていることに注意してください)。

```
{<Year={2024}>} 1500311
```

次に、`{<Year={2024}>} 1500311` 数式が全体として評価されます。 その右側の数式は単なる数値であり、集約された数式でもないため、set 数式 `{<Year={2024}>}` は何の効果もありません。

したがって、上記の例で示した `Sum(Sales)` 値を使用すると、数式 `{<Year={2024}>} $(=Sum(Sales))` 全体の評価結果は 1500311 になります。

## 部分から数式を構築する

数式でドル記号展開を使用すると、二重評価効果が発生します。部分を使用して数式を構築することで、この二重評価効果を活用できます。

### 例

次のような式があるとします。

```
{<Year={2024}>} $(='Sum(' & 'Sales' & ')')
```

最初の評価ラウンドでは、ドル記号展開 $(='Sum(' & 'Sales' & ')') が評価されます。このステップでは、3 つの文字列が 1 つの文字列 'Sum(Sales)' に結合されます。これは数式ではなく文字列であるため、内部の数式は現時点では評価されません。

評価のこの段階では、数式は Qlik Sense によって次のように解釈されるように設定されます。

{&lt;Year={2024}&gt;} Sum(Sales)

このケースでは、単なる数値ではなく通常の式を生成したため ([最初の例](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/SetAnalysis/outer-set-expression-dollar-sign-expansion.htm#Example1)のケース)、外部の set 分析の数式が Sum 集計に適用されます。引用符文字が最初の評価ラウンドを消費したため、数式は 2 回目の評価ラウンドで保持され (& を使用して連結され) たことに注意してください。

## 変数検索

変数ドル記号展開を使用して変数検索を行う場合、変数の内容は、その内容が評価される前に周囲の数式に挿入されます。

### 例

次のような式があるとします。

{&lt;Year={2024}&gt;} $(Var1)

この例では、変数 Var1 の内容が評価される前に、その内容が周囲の数式に挿入されます。

#### 結果 A - 等号なしの変数定義

Var1 が Sum(Sales) として定義されている場合、展開後は次のようになります (以下の構成は部分的に評価された数式であることに注意してください)。

{&lt;Year={2024}&gt;} Sum(Sales)

変数定義の先頭に等号が配置されていない場合、変数 Var1 の定義と値を表示する変数ダイアログ。

変数定義の先頭に等号が配置されていない場合、変数 Var1 の定義と値を表示する変数ダイアログ。

変数定義の先頭に等号が配置されていない場合、変数 Var1Var1 の定義と値を表示する変数ダイアログ。![変数定義 (Sum Sales) の先頭に等号が配置されていない場合の、変数 Var1 の定義と値を表示する変数ダイアログ。](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Resources/Images/ui_gen_variable-def-no-equal-sign.png)

したがって、この例では、外部の set 数式 {&lt;Year={2024}&gt;} が適用されます。

#### 結果 B - 等号ありの変数定義

一方、Var1 の定義が等号で始まる場合、つまり =Sum(Sales) の場合、外部の set 数式は適用されません。これは、等号によって変数式が事前に個別に計算されるためです。これにより、[最初の例](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/SetAnalysis/outer-set-expression-dollar-sign-expansion.htm#Example1)と同様の結果になります。この例では、数値と一緒に評価される外部の set 数式がありますが、有用な結果は返されません。

変数定義の先頭に等号が配置されている場合、変数 Var1 の定義と値を表示する変数ダイアログ。

変数定義の先頭に等号が配置されている場合、変数 Var1 の定義と値を表示する変数ダイアログ。

変数定義の先頭に等号が配置されている場合、変数 Var1Var1 の定義と値を表示する変数ダイアログ。![変数定義 (Sum Sales) の先頭に等号が配置されている場合の、変数 Var1 の定義と値を表示する変数ダイアログ。](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Resources/Images/ui_gen_variable-def-with-equal-sign.png)

## 詳細を見る

* [内部と外部の set 数式](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/SetAnalysis/set-expressions-inner-and-outer.htm)

* [ドル記号展開](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/Scripting/dollar-sign-expansions.htm)

* [変数の作成](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/Variables/create-variable-using-dialog.htm)

* [変数ダイアログ](https://help.qlik.com/ja-JP/cloud-services/Subsystems/Hub/Content/Sense_Hub/Sheets/variables-dialog.htm)