List.MaxN

La función List.MaxN devuelve los mayores N elementos de una lista o los mayores elementos que satisfagan una cierta condición.

Sintaxis

List.MaxN(
    list as list,
    countOrCondition as any,
    optional comparisonCriteria as any,
    optional includeNulls as nullable logical
) as list

Parámetros
  • list: lista de la que extraer los mayores 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
Información adicional

La función comienza ordenando la lista de mayor a menor, 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.

Ejemplos

Podemos extraer los tres mayores valores de la lista {2, 6, 1, 7, -2, 9} con la siguiente expresión:

List.MaxN(
    {2, 6, 1, 7, -2, 9},
    3
)

List

Función M List.MaxN

Un clic en el enlace List nos muestra la lista resultante:

Función M List.MaxN

Comprobamos que, tras ordenar la lista de mayor a menor, 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.MaxN(
    {2, 6, 1, 7, -2, 9},
    99
)

Función M List.MaxN

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 mayores que 4:

List.MaxN(
    {2, 6, 1, 7, -2, 9},
    each _ > 4
)

Función M List.MaxN

Sin embargo, si imponemos como condición que los valores sean menores que 4, al aplicarse esta condición a la lista ordenada (que comienza con el valor 9), ningún valor la cumple, por lo que se devuelve una lista vacía:

List.MaxN(
    {2, 6, 1, 7, -2, 9},
    each _ < 4
)

Función M List.MaxN

Si la lista incluye elementos de diferentes tipos, se considera el orden de precedencia comentado:

List.MaxN(
    {-1, -7, -2, "perro", true},
    3
)

Función M List.MaxN

La lista resultante es la siguiente:

Función M List.MaxN
Categoría
Funciones de lista
Submitted by admin on Tue, 07/28/2020 - 10:18