Rank - チャート関数

Rank() は、数式におけるチャートの行を評価し、それぞれの行に対して、数式で評価される軸の値の相対位置を示します。この関数は数式の評価時に、結果を現在の列セグメントに含まれるその他の行の結果と比較して、セグメント内の現在の行の順位付けを返します。

テーブル以外のチャートでは、現在の列セグメントはチャートのストレート テーブルに相当するセグメントに従い定義されます。

Syntax:  

Rank([TOTAL] expr[, mode[, fmt]])

Return data type: dual

Arguments:  

引数 説明
expr メジャーの対象となるデータが含まれている数式または項目。
mode 関数の計算結果の数値表現を指定します。
fmt 関数の計算結果のテキスト表現を指定します。
TOTAL

チャートが 1 軸の場合、または数式の前に TOTAL 修飾子が付加されている場合は、関数は列全体を評価します。 テーブルまたはテーブルに相当するアイテムに複数の縦軸が含まれる場合、現在の列セグメントには、項目ソート順の最後の軸を表示する列を除く、すべての軸列の現在行と同じ値を持つ行のみが含まれます。

集計範囲の定義

ランキングは、dual 値として返されます。行ごとに固有のランキングがある場合、1 から現在の列セグメント内の行数を示す整数になります。

複数の行がランキングを共有する場合は、テキストおよび数値表現を mode および fmt のパラメータで制御できます。

mode

2 番目の引数 mode は、次の値を取ることができます。

説明
0 (デフォルト)

共有グループ内のすべての順位がランキング全体の中間値以下に入る場合、いずれの行も共有グループ内の最低順位を取得します。

共有グループ内のすべての順位が順位付け全体の中間値以上に入る場合は、いずれの行も共有グループ内の最高順位を取得します。

共有グループ内の順位がランキング全体の中間値をまたぐ場合は、いずれの行も列セグメント全体の最高順位と最低順位の平均に相当する値を取得します。

1 すべての行における最低順位。
2 すべての行における平均順位。
3 すべての行における最高順位。
4 最初の行における最低順位、その後は行ごとに 1 ずつ増加。
fmt

3 番目の引数 fmt は、次のいずれかの値になります。

説明
0 (デフォルト) すべての行における低い値 - 高い値 (例: 3 - 4)。
1 すべての行における低い値。
2 最初の行における低い値、その後のグループ内の行は空白。

mode 4 と fmt 2 の行の順序は、チャート軸のソート順で決定されます。

Examples and results:  

Product および Sales から 2 つのビジュアライゼーションを作成し、Product および UnitSales からもうひとつのビジュアライゼーションを作成します。次のテーブルに示すように、メジャーを追加します。

結果

例 1. 軸 Customer および Sales とメジャー Rank(Sales) を持つテーブルを作成する

結果は軸のソート順により異なります。テーブルが Customer でソートされると、テーブルには Astrida、次にBetacab, などについて、Sales のすべての値が表示されます。Rank(Sales) の結果は、 Sales の値 12 に対して 10、Sales の値 13 に対して 9 と順番に、Sales の値 78 に対して rank 値 1 が返されます。次の列セグメントは Betacab で始まり、セグメント内の Sales の最初の値は 12 です。この Rank(Sales) の rank 値は 11 として指定されています。

テーブルが Sales でソートされている場合、列セグメントは Sales の値と対応する Customer の値で構成されます。12 という Sales の値が 2 つ (Astrida および Betacab) あるため、その列セグメントの Rank(Sales) の値は Customer の各値で 1-2 となります。これは、Sales の値が 12 の Customer が 2 つあるためです。値が 4 つあった場合は、すべての行で 1-4 になります。これは、引数 fmt のデフォルト値 (0) の結果がどのようになるかを示しています。

例 2. 軸 Customer を Product に置換し、メジャー Rank(Sales,1,2) を追加する この場合、引数 mode および fmt はそれぞれ 1 と 2 に設定されているため、各列セグメントの最初の行には 1 が返され、その他の行は空白となります。

例 1 の結果、Customer でソートされたテーブル:

Customer Sales Rank(Sales)
Astrida 12 10
Astrida 13 9
Astrida 20 8
Astrida 22 7
Astrida 45 6
Astrida 46 5
Astrida 60 4
Astrida 65 3
Astrida 70 2
Astrida 78 1
Betcab 12 11

例 1 の結果、Sales でソートされたテーブル:

Customer Sales Rank(Sales)
Astrida 12 1-2
Betacab 12 1-2
Astrida 13 1
Betacab 15 1
Astrida 20 1
Astrida 22 1-2
Betacab 22 1-2
Betacab 24 1-2
Canutility 24 1-2

 

例で使用されているデータ:

ProductData:

Load * inline [

Customer|Product|UnitSales|UnitPrice

Astrida|AA|4|16

Astrida|AA|10|15

Astrida|BB|9|9

Betacab|BB|5|10

Betacab|CC|2|20

Betacab|DD|0|25

Canutility|AA|8|15

Canutility|CC|0|19

] (delimiter is '|');

 

Sales2013:

crosstable (Month, Sales) LOAD * inline [

Customer|Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec

Astrida|46|60|70|13|78|20|45|65|78|12|78|22

Betacab|65|56|22|79|12|56|45|24|32|78|55|15

Canutility|77|68|34|91|24|68|57|36|44|90|67|27

Divadip|57|36|44|90|67|27|57|68|47|90|80|94

] (delimiter is '|');