スクリプト変数

QlikView の変数は、数値や英数字などの静的な値または計算を格納するコンテナです。ドキュメントで変数を使用する場合、変数の値を変えると、その変数が使用されているすべての箇所に変更が反映されます。 変数は、スクリプト エディタを使用してスクリプトで定義されています。ロード スクリプトでは、変数は値を LetSet などの制御ステートメントから取得します。

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

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

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

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

set variablename = string

または

let variable = expression

が使用されます。Set コマンドは等号の右辺にあるテキストを変数に代入し、Let コマンドは数式を評価します。

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

Examples:  

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

let vToday = Num(Today()); // は、本日の日付通し番号を返します。

変数の計算

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

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

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) は合計になります。