Rank - 圖表函數

Rank()會評估運算式中圖表的列,然後針對各個列,顯示運算式中所評估的維度值的相對位置。評估運算式時,該函數會比較該結果與包含目前資料行區段的其他列所產生的結果,並傳回區段內目前列的排名。

針對圖表而非表格,目前的資料行區段會在其出現於圖表的連續表同等表格時加以定義。

語法:  

Rank([TOTAL [<fld {, fld}>]] expr[, mode[, fmt]])

傳回資料類型: 雙值

引數:  

引數 描述
expr 包含待測量資料的運算式或欄位。
mode 指定函數結果的數字表示法。
fmt 指定函數結果的文字表示法。
TOTAL

如果圖表為單一維度或運算式前面加上 TOTAL限定詞,則會針對整個資料行評估該函數。 如果表格或同等表格有多個垂直維度,則目前資料行區段僅會包含在所有維度資料行中與目前列有相同值的列 (顯示欄位間排序順序之最後一個維度的資料行除外)。

TOTAL限定詞後面可以加上以角括弧<fld> 括住的一或多個欄位名稱。這些欄位名稱應該是圖表維度變數的子集。

請參閱: 定義彙總範圍

傳回的排名都是雙值,在這種情況下,各個列都會有唯一的排名,這是介於 1 與目前資料行區段中的列數兩者之間的整數。

多個列有相同的排名時,可以使用 modefmt 參數控制文字和數字表示法。

mode

第二個引數 mode可控制下列值:

Value 描述
0 (預設)

如果共用群組中所有的排名都落在整個排名中間值下半部,所有列將得到共用群組的最低排名。

如果共用群組中所有的排名都落在整個排名中間值上半部,所有列將得到共用群組的最高排名。

如果共用群組中的排名落在整個排名的中間值,所有列的值將相當於整個資料行區段中最高與最低排名兩者的平均。

1 所有列的最低排名。
2 所有列的平均排名。
3 所有列的最高排名。
4 第一列的最低排名,然後每列遞增 1。
fmt

第三個引數 fmt可使用下列值:

Value 描述
0 (預設) 低值 - 所有列的高值 (例如 3 - 4)。
1 所有列的低值。
2 第一列的低值,在後續列上則空白。

mode4 與 fmt 2 的列順序取決於圖表維度的排序順序。

範例與結果:  

從維度 ProductSales 建立兩個圖表,再從 ProductUnitSales 建立另一個圖表。如下表所示新增量值。

範例 結果

建立一個具有維度 CustomerSales 及量值 Rank(Sales) 的表格

結果取決於維度的排序順序。如果表格針對 Customer排序,該表格會列出 Astrida 的所有 Sales 值,然後列出Betacab,以此類推。Rank(Sales)的結果會顯示 Sales 值 12 為 10、Sales 值 13 為 9,以此類推,而針對 Sales 值 78 傳回的排名值為 1。下一個資料行區段是從 Betacab 開始,而區段中的第一個Sales 值是 12。其 Rank(Sales)排名值指定為 11。

如果表格針對 Sales排序,資料行區段會包含 Sales 值和對應的Customer。因為有兩個 Sales值都是 12 (AstridaBetacab),針對該資料行區段,Customer 每個值的Rank(Sales) 值是 1-2。這是因為 Sales值 12 有兩個Customer 值。若有 4 個值,所有列的結果就會是 1-4。這顯示了引數 fmt預設值 (0) 結果的外觀。

以維度 [Customer] 取代 [Product],並新增量值 Rank(Sales,1,2) 這樣系統會針對每個資料行區段的第一列傳回 1,並讓所有其他列保留空白,因為引數 modefmt 分別設為 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 '|');

 

另請參閱: