2014年2月4日火曜日

QlikView Tips


多分この世の中にqlikviewを使って不親切なヘルプに困ってる人がいると思うので、以前tumblrに載せたtipsを親切心、兼私の備忘録として載せます。

以下tips


QlikView TIPS

条件分岐
if(条件式,Trueの時の処理,Falseの時の処理)
ネストもできる。
if(条件式1つ目,条件式1がTrueの時,if(条件式2,条件式2がTrueの時の処理,条件式2がFalseの時の処理)
ifは割りとどこでも使えるので、便利だが(見難いですけど)
処理が遅いので下記SET分析の利用をおすすめします。
Dual関数
Dual(表示される文字,内部で保持される値)
実際に表示される文字と内部で保持される値を個別に設定できる
QlikView自体、日付と数値はこのDual関数によって作成された値で保持されている
なので日付と日付の引き算等を行えるらしい
ソートの時につかえる ロードスクリプト内で設定しておいて、
その項目を軸にするなどの使い方が便利。
ロードスクリプト内でのサンプル
EX:
LOAD * inline [
2013年度
dual(201304,1)
~
dual(201303,12)
];
*上記のLOAD*inlineの書き方は、予め読み込んだ
DB内のテーブル以外に新しく軸を作成したいときなどに良い。
既存のテーブルと結びつける事も可能。
EX2:
LOAD * inline [
既存の年度軸,2013年度
既存の値2013,dual(201304,1)
~
既存の値2013,dual(201303,12)
];
以上の書き方で既存の年度軸項目との紐付けがされる。
*並列ステート
並列ステートは複数の選択状態を定義する機能。
例えば同じリストボックスA1とA2に対して、A1の絞り込みのみを反映させるチャート、
A2の絞り込みのみを反映させるチャート等を作成できる。
ステートの設定は、設定>ドキュメントプロパティ>並列ステートよりステートの作成を行い、
チャート等のプロパティ>基本設定内でステートを選択できる。
*SET分析
SET分析は数式の中で選択条件を制御する。
前年度のデータで絞込を行っても今年度のものしか表示させないオブジェクト等。
=sum({式<項目名>={値}}出したい項目)
式は1だとすべてのデータ、$だと現在の選択状態。1-$なら選択した値以外。
sum({1<項目名>={値}}出したい項目)ならば、項目名が=値のものだけで、他の条件も無効とします。
sum({<項目名>={値}}出したい項目)ならば、項目名が=値のものかつ、他の条件も有効となります。
=Sum({<項目名=>数量)なら、すべての項目の合計が有効
つまり項目名は無視される。
IFでもできるが、ifだと全部の判定してるから、SETのほうが効率は良い(絞り込んでるだけ)
SET分析の中で数式を書くためには数式を<項目名>={$(=数式)}のように記述する事に
より対応可能。
SET分析などの絞込では、選択している状態ではない。(絞り込んでいるだけ)
選択はリストなどを押下している状態を言うので注意(緑色になっているのが選択)
*TOTAL修飾子
チャート内で軸を無視したいときに使える。
絞りこまれた項目/全体の項目 で割合を出すなどしたいときに便利。
sum(項目)/Sum(TOTAL項目名)
*Count関数
Count(DISTINCT 項目名)
DISTINCTは重複を無視。項目名を数える
*チャート
チャート内で作成した数式は他の数式で使える
上から順にColum(1)、(2)、、、(n)
若しくはラベル名を使用できる。
数式しかできないので、軸のラベル名を使うなどはできない
たとえば数式1つ目で人数を求めたら、
数式の二つ目でその人数をもとに割合を出すなどしたいとき便利。
*システム関数
GetFeildSelections(分類名1)
現在選択している値を表示
GetSelectedCount(分類名1)
項目の現在の選択値の数を返します。
GetPossibleCount(分類名1)
その項目の値が存在するならその数を返す。ない場合は0を返す。
などなどたくさんあるのでこれはヘルプでシステム関数の項目を読んだほうが早いです。
*文字列関数
これもヘルプを読んでみて下さい
left(項目名,num)、right(項目名,num)、mid(項目名,num)などはよく使います。