# HRank- 圖表函數

HRank() 評估運算式，並將結果與包含樞紐分析表之目前列區段的其他資料行結果進行比較。然後，該函數傳回區段內目前資料行的排名。

語法：

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

傳回的資料類型： 雙值

資訊備註此函數僅適用於樞紐分析表。在所有其他圖表類型中，則會傳回 NULL。

引數：

引數

| 引數 | 描述 |
| --- | --- |
| expr | 包含待測量之資料的運算式或欄位。 |
| mode | 指定函數結果的數字表示法。 |
| fmt | 指定函數結果的文字表示法。 |
| TOTAL | 如果圖表為單一維度或運算式前面加上 TOTAL 限定詞，則沿著整個資料行計算該函數。 如果表格或同等表格有多個垂直維度，則目前資料行區段僅會包含在所有維度資料行中與目前列有相同值的列 (顯示欄位間排序順序之最後一個維度的資料行除外)。<br><br>[定義彙總範圍](https://help.qlik.com/zh-TW/cloud-services/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm) |

如果樞紐分析表單一維度或運算式前面加上 total 限定詞，則目前列區段一律等於整個列。如果樞紐分析表有多個水平維度，則目前列區段僅會包括在所有維度列中與目前資料行有相同值的資料行 (顯示欄位間排序順序之最後一個水平維度的列除外)。

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

多個資料行有相同的排名時，可以使用 mode 和 format 引數控制文字和數字表示法。

第二個引數 mode 會指定函數結果的數字表示法：

modemode 範例

| 值 | 描述 |
| --- | --- |
| 0 (預設) | 如果共用群組中所有的排名都落在整個排名中間值下半部，所有資料行將得到共用群組的最低排名。<br><br>如果共用群組中所有的排名都落在整個排名中間值上半部，所有資料行將得到共用群組的最高排名。<br><br>如果共用群組中的排名落在整個排名的中間值，所有列的值將相當於整個資料行區段中最高與最低排名兩者的平均。 |
| 1 | 群組中所有資料行的最低排名。 |
| 2 | 群組中所有資料行的平均排名。 |
| 3 | 群組中所有資料行的最高排名。 |
| 4 | 第一個資料行的最低排名，然後群組中每一資料行遞增 1。 |

第三個引數 format 會指定函數結果的文字表示法：

formatformat 範例

| 值 | 描述 |
| --- | --- |
| 0 (預設) | 群組中所有資料行的低值 &' - '& 高值 (例如 3 - 4)。 |
| 1 | 群組中所有資料行的低值。 |
| 2 | 第一個資料行的低值，在群組的後續資料行上則空白。 |

mode 4 與 format 2 的資料行順序取決於圖表維度的排序順序。

範例：

`HRank( sum( 
 Sales ))` `HRank( sum( 
 Sales ), 2 )` `HRank( sum( 
 Sales ), 0, 1 )`