# FirstSortedValue - fonction de graphique

FirstSortedValue() renvoie la valeur de l'expression spécifiée dans value qui correspond au résultat du tri de l'argument sort\_weight, par exemple, le nom du produit ayant le prix unitaire le plus bas. Il est possible de spécifier la nième valeur dans l'ordre de tri dans l'argument rank. Si plusieurs valeurs résultantes partagent le même champ sort\_weight pour la fonction rank spécifiée, la fonction renvoie la valeur NULL.

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

double

Arguments

| Argument | Description |
| --- | --- |
| value | Champ de sortie. La fonction détermine la valeur de l'expression value correspondant au résultat du tri du champ sort\_weight. |
| sort\_weight | Champ de saisie. Expression contenant les données à trier. La première valeur (la plus faible) de sort\_weight est identifiée, ce qui permet de déterminer la valeur correspondante de l'expression value. Si vous placez un signe moins devant sort\_weight, la fonction renvoie alors la dernière valeur triée (la plus élevée). |
| rank | Si vous spécifiez une valeur rank "n" supérieure à 1, vous obtenez la nième valeur triée. |
| SetExpression | Par défaut, la fonction d'agrégation couvre l'ensemble des enregistrements possibles définis par la sélection. Il est possible de définir un ensemble d'enregistrements alternatif à l'aide d'une expression d'analyse d'ensembles. |
| DISTINCT | Si le terme DISTINCT précède les arguments de la fonction, les doublons résultant de l'évaluation des arguments de la fonction sont ignorés. |
| TOTAL | Si le terme TOTAL précède les arguments de la fonction, le calcul est effectué à partir de toutes les valeurs possibles au vu des sélections actives, et pas seulement à partir de celles qui sont associées à la valeur dimensionnelle active. Autrement dit, les dimensions du graphique ne sont pas prises en compte.<br><br>En utilisant TOTAL [&lt;fld {.fld}&gt;], où le qualificateur TOTAL est suivi d'un ou de plusieurs noms constituant un sous-ensemble des variables de dimension du graphique, vous créez un sous-ensemble du nombre total de valeurs possibles.<br><br>[Définition de l'étendue d'une agrégation](https://help.qlik.com/fr-FR/sense/November2024/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm) |

Données

| 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 |

Exemples et résultats

| Exemple | Résultat |
| --- | --- |
| `firstsortedvalue (Product, UnitPrice)` | BB, qui correspond au produit `Product` doté du prix unitaire `UnitPrice` le plus bas (9). |
| `firstsortedvalue (Product, UnitPrice, 2)` | BB, qui correspond au produit `Product` doté du deuxième prix unitaire `UnitPrice` le plus bas (10). |
| `firstsortedvalue (Customer, -UnitPrice, 2)` | Betacab, qui correspond au client `Customer` disposant du produit `Product` doté du deuxième prix unitaire `UnitPrice` le plus élevé (20). |
| `firstsortedvalue (Customer, UnitPrice, 3)` | NULL, car il y a deux valeurs `Customer` (Astrida et Canutility) dotées du même rang rank (troisième prix unitaire) `UnitPrice` le plus bas (15).<br><br>Le qualificateur distinct permet de garantir l'absence de résultats NULL inattendus. |
| `firstsortedvalue (Customer, -UnitPrice*UnitSales, 2)` | Canutility, qui correspond au client `Customer` disposant de la deuxième valeur de commande la plus élevée `UnitPrice` multipliée par `UnitSales` (120). |

Données utilisées dans les exemples :

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

## En savoir plus

* [Analyse d'ensembles](https://help.qlik.com/fr-FR/sense/November2024/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/SetAnalysis/set-analysis-expressions.htm)
* [Définition de l'étendue d'une agrégation](https://help.qlik.com/fr-FR/sense/November2024/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm)