# HRank- 圖表函數

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

語法：

HRank([ total ] expression [ , mode [, format ] ])

傳回的資料類型： 雙值

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

引數：

* expression： 包含待測量資料的運算式或欄位。

* mode：指定函數結果的數字表示法。

* format：指定函數結果的文字表示法。

* TOTAL： 如果 TOTAL 這個字出現在函數引數之前，會計算已指定目前選項的所有可能值，而不僅是與目前維度值相關的值，也就是說，會忽略圖表維度。 TOTAL 限定詞後面可以加上以角括弧 &lt;fld&gt; 括住的一或多個欄位名稱。這些欄位名稱應該是圖表維度變數的子集。

  [定義彙總範圍](https://help.qlik.com/zh-TW/qlikview/September2026/Subsystems/Client/Content/QV_QlikView/ChartFunctions/define-aggregation-scope.htm)

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

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

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

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

第二引數值

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

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

第三引數值

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

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

範例：

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