La función List.MinN devuelve los menores N elementos de una lista o los menores elementos que satisfagan una cierta condición.
List.MinN(
list as list,
countOrCondition as any,
optional comparisonCriteria as any,
optional includeNulls as nullable logical
) as list
- list: lista de la que extraer los menores elementos
- countOrCondition: número de elementos a extraer o condición que deberán satisfacer para ser seleccionados
- comparisonCriteria: (opcional) criterio de comparación de los elementos de la lista
- includeNulls: (opcional) parámetro no documentado
La función comienza ordenando la lista de menor a mayor, aplicándose los filtros a esta lista ordenada.
Si el argumento countOrCondition es un valor numérico, se extraerá dicho número de elementos del comienzo de la lista ordenada. Si la lista no tiene tantos elementos como se haya indicado, se devuelve la lista completa.
Si se trata de una condición, la función extraerá los elementos del comienzo de la lista que la satisfagan hasta que encuentre el primero que no lo haga.
Si se especifica 0 como número de elementos a extraer, o si ningún elemento satisface la condición indicada, la función devuelve una lista vacía.
En el caso de que existan en la lista elementos de varios tipos el orden de precedencia es el siguiente:
- Fechas
- Números
- Textos (según su codificación unicode: "A" < "a", "aA" < "aa")
Los booleanos son tratados como números (False = 0, True = 1).
La función conserva el tipo de los valores devueltos.
Podemos extraer los tres menores valores de la lista {2, 6, 1, 7, -2, 9} con la siguiente expresión:
List.MinN(
{2, 6, 1, 7, -2, 9},
3
)
Un clic en el enlace List nos muestra la lista resultante:
Comprobamos que, tras ordenar la lista de menor a mayor, se han extraído los tres primeros elementos.
Si la lista no tiene tantos elementos como se haya especificado, se devuelve la lista completa:
List.MinN(
{2, 6, 1, 7, -2, 9},
99
)
Vemos en la imagen anterior la lista ordenada.
Si el argumento countOrCondition es una condición, se extraerán los mayores valores que cumplan dicha condición del principio de la lista ordenada. En el siguiente ejemplo se extraen todos los valores del comienzo de la lista que sean menores que 4:
List.MinN(
{2, 6, 1, 7, -2, 9},
each _ < 4
)
Sin embargo, si imponemos como condición que los valores sean mayores que 4, al aplicarse esta condición a la lista ordenada (que comienza con el valor -2), ningún valor la cumple, por lo que se devuelve una lista vacía:
List.MinN(
{2, 6, 1, 7, -2, 9},
each _ > 4
)