# FirstSortedValue - 圖表函數

FirstSortedValue() 從運算式中傳回 value 中指定的值，該值對應於排序 sort\_weight 引數的結果，例如，具有最低單價之產品的名稱。可以在 rank 中指定排序順序中的第 n 個值。如果對於指定的 rank，有多個產生的值共用同一 sort\_weight，則該函數會傳回 NULL。

語法：

FirstSortedValue([{SetExpression}] [DISTINCT] [TOTAL [&lt;fld {,fld}&gt;]] value, sort\_weight [,rank])

傳回的資料類型： 雙值

引數：

引數

| 引數 | 描述 |
| --- | --- |
| value | 輸出欄位。 函數找到對應於 sort\_weight 之排序結果的運算式 value 的值。 |
| sort\_weight | 輸入欄位。 包含待排序之資料的運算式。會找到 sort\_weight 的第一個 (最低) 值，從中判定 value 運算式的對應值。如果您在 sort\_weight 前面放置一個負號，則該函數會改為傳回最後一個 (最高) 的已排序值。 |
| rank | 透過指明 rank "n" 大於 1，可取得第 n 個已排序的值。 |
| SetExpression | 依預設，彙總函數將彙總選項所定義的一組可能記錄。集合分析運算式可定義一組替代的記錄。 |
| DISTINCT | 如果 DISTINCT 這個字出現在函數引數之前，會忽略評估函數引數所產生的重複項目。 |
| TOTAL | 如果單字 TOTAL 位於函數引數之前，則會在提供現行選項的所有可能值上進行計算，而不僅僅是關於目前維度值的那些選項，也就是說，它會忽略圖表維度。<br><br>透過使用 TOTAL [&lt;fld {.fld}&gt;] (其中 TOTAL 限定詞後面是做為圖表維度變數子集之一或更多欄位名稱的清單)，您可建立總可能值的子集。<br><br>[定義彙總範圍](https://help.qlik.com/zh-TW/sense/November2024/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm) |

範例與結果：

資料

| 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 | - | 25 |
| Canutility | AA | 8 | 15 |
| Canutility | CC | - | 19 |

範例與結果

| 範例 | 結果 |
| --- | --- |
| `firstsortedvalue (Product, UnitPrice)` | BB，即為 `UnitPrice` 最低的 `Product`(9)。 |
| `firstsortedvalue (Product, UnitPrice, 2)` | BB，即為 `UnitPrice` 第二低的 `Product`(10)。 |
| `firstsortedvalue (Customer, -UnitPrice, 2)` | Betacab，即為擁有第二高 `UnitPrice` 的 `Product` 之 `Customer`(20)。 |
| `firstsortedvalue (Customer, UnitPrice, 3)` | NULL，因為有兩個 `Customer` 值 (Astrida 和 Canutility) 具有相同 rank (第三低) `UnitPrice`(15)。<br><br>使用 distinct 限定詞以確定不會發生非預期的 NULL 結果。 |
| `firstsortedvalue (Customer, -UnitPrice*UnitSales, 2)` | Canutility，即為擁有第二高銷售訂單值 `UnitPrice` 乘以 `UnitSales` 的 `Customer`(120)。 |

範例中使用的資料：

`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||25` `Canutility|AA|8|15` `Canutility|CC||19` `] (delimiter is '|');`

## 瞭解更多資訊

* [集合分析](https://help.qlik.com/zh-TW/sense/November2024/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/SetAnalysis/set-analysis-expressions.htm)
* [定義彙總範圍](https://help.qlik.com/zh-TW/sense/November2024/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm)