# FirstSortedValue - チャート関数

FirstSortedValue() は、value で指定した数式から値を返します。これは、単価が最も低い製品の名前など、sort\_weight 引数のソート結果に対応します。rank では、ソート順の n 番目の値を指定できます。指定された sort\_weight で複数の値が同じ rank を共有している場合、この関数は NULL を返します。

構文:

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

戻り値データ型： デュアル

引数：

引数

| 引数 | 説明 |
| --- | --- |
| value | アウトプット フィールド。 この関数は数式 value の値を特定します。これは sort\_weight のソート結果に対応します。 |
| sort\_weight | 入力フィールド。 ソート対象となるデータが含まれている数式です。sort\_weight の最初の値 (最小値) が返され、そこから value 数式の対応する値が特定されます。sort\_weight の前にマイナス記号を付けると、最後にソートされた値 (最大値) が返されます。 |
| rank | rank "n" に 1 よりも大きな値を入力するとで、n 番目のソート値を取得できます。 |
| SetExpression | デフォルトでは、集計関数は選択されたレコード セットに対して集計を行います。Set 分析数式でレコード セットを定義することも可能です。 |
| DISTINCT | 関数の引数の前に DISTINCT という用語が付いている場合、関数の引数の評価から生じる重複は無視されます。 |
| TOTAL | 関数の引数の前に TOTAL の文字が配置されている場合、現在の軸の値に関連しているものだけでなく、現在の選択範囲内にあるすべての可能な値に対して計算が実行されます。つまりチャート軸は無視されます。<br><br>TOTAL [&lt;fld {.fld}&gt;] (ここで、TOTAL 修飾子の後には、1 つまたは複数の項目名のリストがチャート軸変数のサブセットとして続く) を使用して、合計絞込値のサブセットを作成できます。<br><br>[集計範囲の定義](https://help.qlik.com/ja-JP/sense/May2025/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`(9) が最も低い `Product`)。 |
| `firstsortedvalue (Product, UnitPrice, 2)` | BB (`UnitPrice`(10) が 2 番目に低い `Product`)。 |
| `firstsortedvalue (Customer, -UnitPrice, 2)` | Betacab (`UnitPrice`(20) が 2 番目に高い `Product` を持つ `Customer`)。 |
| `firstsortedvalue (Customer, UnitPrice, 3)` | NULL (同じ rank (3 番目に低い) `UnitPrice`(15) の `Customer` の値が 2 つ(Astrida と Canutility) であるため)。<br><br>予期しない NULL が返ってこないよう、distinct 修飾子を使用します。 |
| `firstsortedvalue (Customer, -UnitPrice*UnitSales, 2)` | Canutility (`UnitPrice` と `UnitSales` (120) を掛けた販売注文値が 2 番目に高い `Customer`)。 |

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

`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 '|');`

## 詳細を見る

* [set 分析](https://help.qlik.com/ja-JP/sense/May2025/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/SetAnalysis/set-analysis-expressions.htm)
* [集計範囲の定義](https://help.qlik.com/ja-JP/sense/May2025/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm)