データ ロード エディタでの変数の使用

Qlik Senseの変数は、数値や英数字などの静的な値または計算を格納するコンテナです。アプリで変数を使用する場合、変数の値を変えると、その変数が使用されているすべての箇所に変更が反映されます。 変数は、変数の概要で定義するか、データ ロード エディターを使用してスクリプト内に定義します。データ ロード スクリプトで Let または Set ステートメントを使用して、変数の値を設定します。

ヒント: シートの編集時には、変数の概要にある Qlik Sense 変数を使用して作業することもできます。 数式での変数の使用

概要

変数値の最初の文字が等記号 (=) の場合、Qlik Sense は値を式 (Qlik Sense 式) として評価し、式の実際のテキストではなく結果を表示または返します。

変数を使用すると、変数の代わりにその値が使用されます。変数はドル記号展開用のスクリプトやさまざまな制御ステートメントで使用できます。例えば、パスのように、同じ文字列がスクリプト内に何度も繰り返し出てくる場合に便利です。

一部の特別なシステム変数は、スクリプトの実行開始時に、以前の値とは関係なく Qlik Sense によって設定されます。

変数の定義

変数を定義する場合は、以下の構文を使用します。

set variablename = string

または

let variable = expression

が使用されます。Setコマンドは、変数の等記号の右側にあるテキストを割り当て、Letコマンドは数式を評価します。

変数では、大文字と小文字が区別されます。

注: Qlik Senseでは、変数に項目や関数と同じ名前を付けることは推奨されていません。

Examples:  

set HidePrefix = $ ; // 変数は、文字列「$」を値として取得します。

let vToday = Num(Today()); // は、本日の日付をシリアル番号で返します。

変数の削除

スクリプトから変数を削除してデータをリロードすると、変数はそのままアプリに残ります。アプリから完全に変数を削除するには、変数の概要からも変数を削除する必要があります。

詳細については、「変数の削除」を参照してください。

項目値としての変数値のロード

変数値を LOAD ステートメントで項目値としてロードし、ドル展開の結果が数字や数式ではなくテキストの場合、展開した変数を 1 つの引用に含める必要があります。

Example:  

この例では、スクリプト エラーの一覧を含むシステム変数をテーブルにロードします。If 句での ScriptErrorCount の展開に引用符は不要ですが、ScriptErrorList の展開には引用符が必要になることに注意してください。

IF $(ScriptErrorCount) >= 1 THEN
LOAD '$(ScriptErrorList)' AS Error AutoGenerate 1; END IF

変数の計算

Qlik Sense で計算済みの値を使って変数を使用する方法はいくつかあり、その結果は、これを定義する方法と数式で呼び出す方法によって異なります。

この例では、いくつかのインライン データをロードします。

LOAD * INLINE [ Dim, Sales A, 150 A, 200 B, 240 B, 230 C, 410 C, 330 ];

2 つの変数を定義してみましょう。

Let vSales = 'Sum(Sales)' ;
Let vSales2 = '=Sum(Sales)' ;

2 番目の変数では、数式の前に等号を追加します。これにより、変数が展開される前に計算され、数式が評価されます。

vSales 変数をそのまま使用する場合 (メジャーで使用する場合など)、その結果は文字列Sum(Sales) になります。つまり、計算は行われません。

ドル記号展開を追加して数式で $(vSales) を呼び出すと、変数が展開され、Sales の合計が表示されます。

最後に、$(vSales2) を呼び出すと、変数は展開される前に計算されます。つまり、表示される結果は Sales の合計です。メジャー数式として =$(vSales) を使用した場合と =$(vSales2) を使用した場合に結果がどう違うかを、下記の表に示します。

結果
Dim $(vSales) $(vSales2)
A 350 1560
B 470 1560
C 740 1560

ご覧のように、$(vSales) は軸値の小計になり、$(vSales2) は合計になります。