# FirstSortedValue - función de gráfico

FirstSortedValue() devuelve el valor de la expresión especificada en value que corresponde al resultado de ordenar el argumento sort\_weight, por ejemplo, el nombre del producto con el precio unitario más bajo. El enésimo valor según el criterio de ordenación, se puede especificar en rank. Si más de un valor resultante comparten 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:

Argumentos

| Argumento | Descripción |
| --- | --- |
| value | Campo de salida. La función encuentra el valor de la expresión value que corresponde al resultado de la ordenación sort\_weight. |
| sort\_weight | Campo de entrada. La expresión que contiene los datos que se han de ordenar. Se encuentra el primer valor (el más bajo) de sort\_weight, a partir del cual se determina el valor correspondiente de la expresión value. Si coloca un signo menos delante de sort\_weight, la función devuelve el último valor ordenado (el más alto) en su lugar. |
| rank | Al indicar un rank "n" mayor que 1, se obtiene el enésimo valor ordenado. |
| SetExpression | De forma predeterminada, 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 de los argumentos de la función, los duplicados resultantes de evaluar los argumentos de la función se descartan. |
| TOTAL | Si la palabra TOTAL aparece antes de los argumentos de la función, el cálculo se realiza sobre todos los valores posibles dadas las selecciones actuales y no solo aquellas que pertenecen al valor dimensional actual, es decir, no tiene en cuenta las dimensiones del gráfico.<br><br>Usar TOTAL [&lt;fld {.fld}&gt;], donde al cualificador TOTAL le sigue una lista de uno o más nombres de campo como un subconjunto de las variables de dimensión del gráfico, crea un subconjunto de los valores totales posibles.<br><br>[Definir el ámbito de agregación](https://help.qlik.com/es-ES/sense/May2025/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm) |

Ejemplos y resultados:

Datos

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

Ejemplos y resultados

| Ejemplo | Resultado |
| --- | --- |
| `firstsortedvalue (Product, UnitPrice)` | BB, que es el `Product` con el `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` más alto (20). |
| `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 calificador distinct para asegurarse de que no se producen resultados nulos inesperados. |
| `firstsortedvalue (Customer, -UnitPrice*UnitSales, 2)` | Canutility, que es el `Customer` con el segundo valor de pedido más alto `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 '|');`

## Más información

* [Análisis de conjuntos](https://help.qlik.com/es-ES/sense/May2025/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/SetAnalysis/set-analysis-expressions.htm)
* [Definir el ámbito de agregación](https://help.qlik.com/es-ES/sense/May2025/Subsystems/Hub/Content/Sense_Hub/ChartFunctions/define-aggregation-scope.htm)