データ ロード エディタでの変数の使用
Qlik Senseの変数は、数値や英数字などの静的な値または計算を格納するコンテナです。アプリで変数を使用する場合、変数の値を変えると、その変数が使用されているすべての箇所に変更が反映されます。 変数は、変数の概要で定義するか、データ ロード エディターを使用してスクリプト内に定義します。データ ロード スクリプトで Let または Set ステートメントを使用して、変数の値を設定します。
概要
変数値の最初の文字が等記号 (=) の場合、Qlik Sense は値を式 (Qlik Sense 式) として評価し、式の実際のテキストではなく結果を表示または返します。
変数を使用すると、変数の代わりにその値が使用されます。変数はドル記号展開用のスクリプトやさまざまな制御ステートメントで使用できます。例えば、パスのように、同じ文字列がスクリプト内に何度も繰り返し出てくる場合に便利です。
一部の特別なシステム変数は、スクリプトの実行開始時に、以前の値とは関係なく Qlik Sense によって設定されます。
変数の定義
変数は、静的な値または計算の結果を格納する機能を提供します。変数を定義するときは、次の構文を使用してください。
停止
let variable = expression
Set ステートメントは文字列の割り当てに使用されます。等号の右側のテキストを変数に割り当てます。Let ステートメントは、スクリプトの実行時に等号の右側にある数式を評価し、数式の結果を変数に割り当てます。
変数では、大文字と小文字が区別されます。
set x = 3 + 4; // 変数は、値として文字列「3 + 4」を取得します。
let x = 3 + 4; // は値として 7 を返します。
set x = Today(); // は値として「Today()」を返します。
let x = Today(); // は今日の日付を値として返します (例: 「9/27/2021」)。
変数の名前
ベストプラクティスとして、アプリ内で作成する変数の命名規則を標準化することを検討してください。たとえば、すべての変数名が「v 」で始まるようにします。例: vUserText。これにより、変数が変数としてすぐに認識され、メジャー、項目、関数と区別されるようになります。
変数の削除
スクリプトから変数を削除してデータをリロードすると、変数はそのままアプリに残ります。アプリから完全に変数を削除するには、変数ダイアログからも変数を削除する必要があります。
詳細については、「変数の削除」を参照してください。
項目値としての変数値のロード
変数値を LOAD ステートメントで項目値としてロードし、ドル展開の結果が数字や数式ではなくテキストの場合、展開した変数を 1 つの引用に含める必要があります。
この例では、スクリプト エラーの一覧を含むシステム変数をテーブルにロードします。If 句での ScriptErrorCount の展開に引用符は不要ですが、ScriptErrorList の展開には引用符が必要になることに注意してください。
変数の計算
Qlik Sense で計算済みの値を使って変数を使用する方法はいくつかあり、その結果は、これを定義する方法と数式で呼び出す方法によって異なります。
この例では、いくつかのインライン データをロードします。
2 つの変数を定義してみましょう。
2 番目の変数では、数式の前に等号を追加します。これにより、変数が展開される前に計算され、数式が評価されます。
vSales 変数をそのまま使用する場合 (メジャーで使用する場合など)、その結果は文字列Sum(Sales) になります。つまり、計算は行われません。
ドル記号展開を追加して数式で $(vSales) を呼び出すと、変数が展開され、Sales の合計が表示されます。
最後に、$(vSales2) を呼び出すと、変数は展開される前に計算されます。つまり、表示される結果は Sales の合計です。メジャー数式として =$(vSales) を使用した場合と =$(vSales2) を使用した場合に結果がどう違うかを、下記の表に示します。
Dim | $(vSales) | $(vSales2) |
---|---|---|
A | 350 | 1560 |
B | 470 | 1560 |
C | 740 | 1560 |
ご覧のように、$(vSales) は軸値の小計になり、$(vSales2) は合計になります。
次のスクリプト変数を使用できます。