# FirstSortedValue

La función FirstSortedValue() devuelve el valor de la expresión especificado en value que se corresponda con el resultado de ordenar el argumento sort\_weight, teniendo en cuenta rank, si se especifica. Si más de un valor obtenido comparte el mismo sort\_weight para el rank especificado, la función devuelve NULL.

Sintaxis:

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

Tipo de datos que devuelve: dual

Argumentos:

* value: Campo de salida. La función halla el valor de la expresión value que corresponde al resultado de ordenar sort\_weight.

* sort\_weight: Campo de entrada. La expresión que contiene los datos que se han de ordenar. Encuentra el primer valor (y el más bajo) de sort\_weight, desde el que se determina el correspondiente valor de la expresión value. Si coloca un signo menos delante de sort\_weight, la función devuelve el último valor (el más alto) en orden.

* rank: Si se establece un rank "n" mayor que 1, devolverá el enésimo valor en orden.

* SetExpression: Por defecto, la función de agregación agregará sobre el conjunto de registros posibles definidos por la selección. Se puede definir un conjunto alternativo de registros mediante una expresión de análisis de conjuntos.

* DISTINCT: Si la palabra DISTINCT aparece antes que los argumentos de la función, se descartarán los duplicados resultantes de evaluar los argumentos de la función.

* TOTAL: Si la palabra TOTAL aparece antes de los argumentos de la función, el cálculo se realiza con todos los valores posibles dadas las selecciones actuales, y no solo con los que pertenecen al valor dimensional actual, es decir, ignora las dimensiones del gráfico. El cualificador TOTAL puede ir seguido de una lista con uno o más nombres de campo entre paréntesis angulares &lt;fld&gt;. Estos nombres de campo deberían ser un subgrupo de las variables de dimensión del gráfico.

  [Definir el ámbito de agregación](https://help.qlik.com/es-ES/qlikview/September2026/Subsystems/Client/Content/QV_QlikView/ChartFunctions/define-aggregation-scope.htm)

Ejemplos:

Ejemplos y resultados

| Ejemplo | Resultado |
| --- | --- |
| `firstsortedvalue (Product, UnitPrice)` | BB, que es el producto `Product` con el precio por unidad `UnitPrice` más bajo (9). |
| `firstsortedvalue (Product, UnitPrice, 2)` | BB, que es el `Product` con el segundo `UnitPrice` más bajo (10). |
| `firstsortedvalue (Customer, -UnitPrice, 2)` | Betacab, que es el `Customer` con el `Product` que tiene el segundo `UnitPrice` (20) más bajo. |
| `firstsortedvalue (Customer, UnitPrice, 3)` | NULL, porque hay dos valores de `Customer` (Astrida y Canutility) con el mismo rank (el tercero más bajo) `UnitPrice` (15).<br><br>Utilice el cualificador distinct para garantizar que no ocurran resultados nulos inesperados. |
| `firstsortedvalue (Customer, -UnitPrice*UnitSales, 2)` | Canutility, que es el `Customer` con el segundo valor más alto del pedido de ventas `UnitPrice` multiplicado por `UnitSales` (120). |

**Datos utilizados en los ejemplos:**

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

Datos de ejemplo en forma de tabla

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

## Más información

* [Análisis de conjuntos y expresiones de conjuntos](https://help.qlik.com/es-ES/qlikview/September2026/Subsystems/Client/Content/QV_QlikView/ChartFunctions/SetAnalysis/set-analysis-expressions.htm)
* [Definir el ámbito de agregación](https://help.qlik.com/es-ES/qlikview/September2026/Subsystems/Client/Content/QV_QlikView/ChartFunctions/define-aggregation-scope.htm)