Qlikview-rank-function

提供:Dev Guides
移動先:案内検索

QlikView-ランク関数

QlikViewの* Rank()*関数は、フィールド内の値のランクを表示し、特定のランク値を持つ行を返すために使用されます。 したがって、2つのシナリオで使用されます。 最初のシナリオは、フィールドの値のランクを表示するQlikViewチャートで、2番目のシナリオは、特定のランク値を持つ行のみを表示する集計関数です。

入力データ

ランク関数を説明する例で使用されるデータを以下に示します。 これをシステムのパスに.csvファイルとして保存すると、QlikViewからアクセスできます。

Product_Id,Product_Line,Product_category,Quantity,Value
1,Sporting Goods,Outdoor Recreation,12,5642
2,Food, Beverages & Tobacco,38,2514
3,Apparel & Accessories,Clothing,54,2365
4,Apparel & Accessories,Costumes & Accessories,29,4487
5,Sporting Goods,Athletics,11,812
6,Health & Beauty,Personal Care,21,6912
7,Arts & Entertainment,Hobbies & Creative Arts,58,5201
8,Arts & Entertainment,Paintings,73,8451
9,Arts & Entertainment,Musical Instruments,41,1245
10,Hardware,Tool Accessories,2,456
11,Home & Garden,Bathroom Accessories,36,241
12,Food,Drinks,54,1247
13,Home & Garden,Lawn & Garden,29,5462
14,Office Supplies,Presentation Supplies,22,577
15,Hardware,Blocks,53,548
16,Baby & Toddler,Diapering,19,1247
17,Baby & Toddler,Toys,9,257
18,Home & Garden,Pipes,81,1241
19,Office Supplies,Display Board,29,2177

スクリプトをロード

上記のデータは、スクリプトエディターを使用してQlikViewメモリにロードされます。 [ファイル]メニューからスクリプトエディターを開くか、 Control + E を押します。 [ファイルのデータ]タブから[テーブルファイル]オプションを選択し、上記のデータを含むファイルを参照します。 OK をクリックし、 Control + R を押してQlikViewのメモリにデータをロードします。

rank_laod_script

Rank()関数を使用してグラフを作成する

次に、以下の手順に従ってグラフを作成します。このグラフには、ディメンションProduct_Lineに関して記述されている*値*のランクが表示されます。

グラフの種類を選択します

チャートウィザードをクリックし、チャートタイプとしてオプション straight table を選択します。 [次へ]をクリックします。

rank_chart_type

グラフのディメンションを選択します

  • 最初のディメンション*ドロップダウンリストから、ディメンションとしてProduct_Lineを選択します。 [次へ]をクリックします。

rank_select_diemnsions

チャート式を定義する

カスタム式フィールドで、以下に示すようにランク式を指定します。 ここでは、各製品ラインの下の各カテゴリの売上値を表す Value という名前の数値フィールドを検討しています。 [次へ]をクリックします。

rank_chart_expression

チャートを表示する

上記の手順で[完了]をクリックすると、次のグラフが表示され、各製品ラインの売上値のランクが示されます。

rank_chart_data

ランク付きの集計関数の使用

-max、minなどの集約関数 特定のランク値を満たす行を返すために引数としてランクを取ることができます。 スクリプトエディタには次の式が含まれていると考えられます。これにより、各製品ラインの下で最高の売上高を含む行が得られます。

# Load the records with highest sales value for each product line.
LOAD Product_Line,
     max(Value,1)
FROM
[E:\Qlikview\data\product_sales.csv]
(txt, codepage is 1252, embedded labels, delimiter is ',', msq)
group by Product_Line;

シートオブジェクトの作成

*Table Box* シートオブジェクトを作成して、上記のスクリプトによって生成されたデータを表示しましょう。 メニューの[レイアウト]→[新しいシートオブジェクト]→[テーブルボックス]に移動します。 次のウィンドウが表示されます。このウィンドウで、テーブルのタイトルを指定し、表示する必要なフィールドを選択します。 [OK]をクリックすると、以下に示すように、QlikViewテーブルボックスにCSVファイルのデータが表示されます。

rank_aggr_func