# パラメータを使用したドル記号展開

ドル記号展開ではパラメータを使用できます。これにより、変数の動的評価が可能になります。

拡張で使用するために作成された変数には、仮パラメータが含まれている必要があります。正式なパラメータは、評価への入力のプレースホルダーであり、ドル記号で記述されます: `$1`、`$2`、`$3`。番号はパラメータ番号を示します。

変数を使用する場合、実際のパラメータはコンマ区切りのリストに記載する必要があります。

## 例: ドル記号展開のパラメータ

2 つの数値間の乗算を定義する場合は、次のように記述できます。

```
Set MUL= $1*$2 ;
```

これは、`$1` と `$2` を互いに乗算する必要があることを定義します。この変数を使用する場合は、数式に `$1` と `$2` の値を挿入してドル展開する必要があります。

```
Set X= $( MUL(3,7) ) ;
```

値 (`3` と `7`）は、展開で `$1` と `$2` を置き換える実際のパラメータです。展開は、set ステートメントが解析および実行される前に行われます。つまり、スクリプト パーサーは次のことを認識します。

```
Set X= 3*7 ;
```

その結果、変数 `X` には文字列値: `3*7` が割り当てられます。

`Set` ステートメントの代わりに `Let` を使用する場合:

```
Let X= $( MUL(3,7) ) ;
```

パーサーには次のように表示されます。

```
Let X= 3*7 ;
```

ここで評価が行われ、X には数値 21 が割り当てられます。

## パラメータの数

仮パラメータの数が実パラメータの数より多い場合は、実パラメータに対応する仮パラメータだけが展開されます。実パラメータの数が仮パラメータの数より多い場合は、余分な実パラメータが無視されます。

### 例: 仮パラメータと実パラメータ

```
Set MUL= '$1*$2' ;
```

```
Set X= $(MUL) ;         // returns $1*$2 in X
```

```
Set X= $(MUL(10)) ;     // returns 10*$2 in X
```

```
Let X= $(MUL(5,7,8)) ;  // returns 35 in X
```

## $0 パラメータ

パラメータ $0 は、呼び出しで実際に渡されるパラメータの数を返します。

### 例: エラー処理を導入する方法

```
Set MUL= If($0=2, $1*$2, 'Error') ;
```

## 詳細を見る

* [Let](https://help.qlik.com/ja-JP/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Let.htm)

* [Set](https://help.qlik.com/ja-JP/sense/May2025/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Set.htm)