# FirstSortedValue — funkcja wykresu

Funkcja FirstSortedValue() zwraca wartość z wyrażenia określonego w argumencie value, który odpowiada wynikowi sortowania argumentu sort\_weight, na przykład nazwie produktu o najniższej cenie jednostkowej. N-ta wartość w kolejności sortowania może zostać określona w argumencie rank. W przypadku uzyskania więcej niż jednej wartości o takim samym wyniku sort\_weight dla podanej wartości argumentu rank funkcja zwraca NULL.

Składnia:

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

Typ zwracanych danych: wartość podwójna

Argumenty

| Argument | Opis |
| --- | --- |
| value | Pole danych wyjściowych Funkcja znajduje wartość wyrażenia value odpowiadającą wynikowi sortowania argumentu sort\_weight. |
| sort\_weight | Pole wejściowe Wyrażenie zawierające dane do sortowania. Znajdowana jest pierwsza (najniższa) wartość argumentu sort\_weight, na podstawie której określana jest wartość wyrażenia podanego argumentem value. Jeśli przed argumentem sort\_weight zostanie podany znak minusa, funkcja zwróci ostatnią (najwyższą) wartość z sortowania. |
| rank | Podanie dla parametru rank wartości „n” większej niż 1 spowoduje zwrócenie n-tej wartości w kolejności sortowania. |
| SetExpression | Funkcja agregacji będzie domyślnie dokonywać agregacji na zbiorze możliwych wierszy zdefiniowanym przez selekcję. Alternatywny zestaw wierszy można zdefiniować za pomocą wyrażenia analizy zestawów. |
| DISTINCT | Jeśli przed argumentami funkcji występuje słowo DISTINCT, wówczas duplikaty wynikające z wyników obliczenia argumentów funkcji są pomijane. |
| TOTAL | Jeśli słowo TOTAL występuje przed argumentami funkcji, wówczas obliczenie jest wykonywane względem wszystkich możliwych wartości z uwzględnieniem bieżących selekcji, nie tylko tych należących do bieżącej wartości wymiaru, to znaczy z pominięciem wymiarów wykresu.<br><br>Korzystając z polecenia TOTAL [&lt;fld {.fld}&gt;], gdzie po kwalifikatorze TOTAL podana jest lista nazw pól stanowiących podzbiór zmiennych wymiarów wykresu, można utworzyć podzbiór wszystkich możliwych wartości.<br><br>[Określenie zakresu agregacji](https://help.qlik.com/pl-PL/sense/November2025/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm) |

Przykład: wyrażenia wykresu

| Przykład | Wynik |
| --- | --- |
| `FirstSortedValue (Product, UnitPrice)` | Zwraca `Product` z najniższą wartością `UnitPrice`. |
| `FirstSortedValue (Product, UnitPrice, 2)` | Zwraca `Product` z drugą najniższą wartością `UnitPrice`. |
| `FirstSortedValue (Customer, -UnitPrice, 2)` | Zwraca `Customer` z `Product`, który ma drugą najwyższą wartość `UnitPrice`. |
| `FirstSortedValue (Customer, -UnitPrice*UnitSales, 2)` | Zwraca `Customer` z drugą najwyższą wartością zamówienia sprzedaży, `UnitPrice` pomnożoną przez `UnitSales`. |

## Przykład — podstawy FirstSortedValue

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/BasicAggregationFunctions/firstsortedvalue.htm)

#### Wyrażenie wykresu

Przegląd

Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej sekcji.

Skrypt ładowania zawiera:

* Zestaw danych załadowany do tabeli o nazwie `Example`.

* Tabela zawiera następujące pola:

  * `Customer`

  * `Product`

  * `UnitSales`

  * `UnitPrice`

Skrypt ładowania

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

Wyniki

Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj te pola jako miary:

* `=FirstSortedValue (Product, UnitPrice)` w celu obliczenia produktu o najniższej cenie jednostkowej.

* `=FirstSortedValue (Product, UnitPrice, 2)` w celu obliczenia produktu o drugiej najniższej cenie jednostkowej.

* `=FirstSortedValue (Customer, -UnitPrice, 2)` w celu obliczenia klienta z produktem o drugiej najwyższej cenie jednostkowej.

* `=FirstSortedValue (Customer, UnitPrice, 3)` w celu obliczenia klienta z produktem o trzeciej najwyższej cenie jednostkowej.

* `=FirstSortedValue (Customer, -UnitPrice*UnitSales, 2)` w celu obliczenia klienta z drugą najwyższą wartością zamówienia sprzedaży, `UnitPrice` pomnożoną przez `UnitSales`.

Results table

| FirstSortedValue (Product, UnitPrice) | FirstSortedValue (Product, UnitPrice, 2) | FirstSortedValue (Customer, -UnitPrice, 2) | FirstSortedValue (Customer, UnitPrice, 3) | FirstSortedValue (Customer, -UnitPrice\*UnitSales, 2) |
| --- | --- | --- | --- | --- |
| BB | BB | Betacab | - | Canutility |

Pierwsza kolumna zwraca wartość `BB`, ponieważ jest to produkt o najniższej wartości `UnitPrice` (`9`).

Druga kolumna zwraca wartość `BB`, ponieważ jest to produkt o drugiej najniższej wartości `UnitPrice` (`10`).

Trzecia kolumna zwraca wartość `Betacab`, czyli `Customer` z `Product`, która ma drugą najwyższą wartość `UnitPrice` (`20`).

Czwarta kolumna zwraca `NULL`, ponieważ istnieją dwie wartości `Customer` (`Astrida` i `Canutility`) z tą samą klasyfikacją `UnitPrice` (trzecia od końca, `15`).

Piąta kolumna zwraca `Canutility`, czyli `Customer` z drugą najwyższą wartością zamówienia sprzedaży, `UnitPrice` pomnożoną przez `UnitSales` (`120`).

## Przykład — zastosowanie FirstSortedValue

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/BasicAggregationFunctions/firstsortedvalue.htm)

#### Wyrażenie wykresu

Przegląd

Kontener danych zawiera dane dotyczące sprzedaży za pierwsze trzy miesiące roku. Menedżer regionalny chce zidentyfikować najlepiej i najgorzej sprzedające się produkty, aby zaplanować przyszłe zapasy.

Otwórz Edytor ładowania danych i poniżej dodaj skrypt ładowania do nowej sekcji.

Skrypt ładowania zawiera:

* Zestaw danych załadowany do tabeli o nazwie `Example`.

* Tabela zawiera następujące pola:

  * `Date`

  * `SalesProduct`

  * `Category`

  * `Sales`

Skrypt ładowania

```
Example:
Load * inline [
Date,SalesProduct, Category, Sales
2024-01-01, Apple, Fruit, 100
2024-01-15, Banana, Fruit, 80
2024-01-30, Carrot, Vegetable, 50
2024-02-05, Apple, Fruit, 120
2024-02-20, Banana, Fruit, 90
2024-02-28, Carrot, Vegetable, 60
2024-03-10, Apple, Fruit, 110
2024-03-22, Banana, Fruit, 85
2024-03-31, Carrot, Vegetable, 55
];
```

Wyniki

Załaduj dane i otwórz arkusz. Utwórz nową tabelę i dodaj to pole jako wymiar:

* `Category`

Utwórz następujące miary:

* `=FirstSortedValue(SalesProduct, -Sales)` w celu obliczenia najlepiej sprzedającego się produktu w poszczególnych kategoriach.

* `=FirstSortedValue(TOTAL SalesProduct, -Sales)` w celu obliczenia najlepiej sprzedającego się produktu ogółem.

* `=FirstSortedValue(TOTAL SalesProduct, Sales)` w celu obliczenia najgorzej sprzedającego się produktu ogółem.

Results table

| Category | FirstSortedValue(SalesProduct, -Sales) | FirstSortedValue(TOTAL SalesProduct, -Sales) | FirstSortedValue(TOTAL SalesProduct, Sales) |
| --- | --- | --- | --- |
| Fruit | Apple | Apple | Carrot |
| Vegetable | Carrot | Apple | Carrot |

Wyniki wskazują, że `Apple` i `Carrot` są najlepiej sprzedającymi się produktami w swoich kategoriach, `Fruit` i `Vegetable`. Jednak we wszystkich kategoriach najlepiej sprzedającym się produktem jest `Apple`, a najgorzej sprzedającym się – `Carrot`.

## Dowiedz się więcej

* [Analiza zestawów](https://help.qlik.com/pl-PL/sense/November2025/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/SetAnalysis/set-analysis-expressions.htm)
* [Określenie zakresu agregacji](https://help.qlik.com/pl-PL/sense/November2025/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm)