Table.MaxN

La función Table.MaxN devuelve las mayores N filas de una tabla o las mayores filas que satisfagan una cierta condición.

Sintaxis

Table.MaxN(
    table as table,
    comparisonCriteria as any,
    countOrCondition as any
) as table

Parámetros
  • table: tabla a evaluar
  • comparisonCriteria: criterio de ordenación de la tabla
  • countOrCondition: número de filas a extraer o condición que deberán satisfacer para ser seleccionadas
Información adicional

La función comienza ordenando la tabla de mayor a menor según el criterio indicado por comparisonCriteria.

Si el argumento countOrCondition es un valor numérico, se extraerá dicho número de elementos del comienzo de la tabla ordenada. Si la tabla no tiene tantas filas como se haya indicado, se devuelve la tabla completa. En el caso de igualdad entre dos o más registros, se selecciona el número que se haya especificado, sin un criterio de selección documentado (véase ejemplo).

Si se trata de una condición, la función extraerá las filas del comienzo de la tabla que la satisfagan hasta que encuentre la primera que no lo haga.

Si se especifica 0 como número de filas a extraer, o si ninguna fila satisface la condición indicada, la función devuelve una tabla vacía.

Según se indica en la documentación, "el algoritmo de ordenación no puede garantizar un resultado ordenado fijo".

Ejemplos

En este primer ejemplo extraemos los dos registros con el valor del campo "age" más elevado:

let
    table = Table.FromRecords(
        {
            [id = 1, name = "John", age = 55],
            [id = 21, name = "Alfonso", age = 18],
            [id = 33, name = "Marta", age = 35],
            [id = 21, name = "Sonia", age = 40],
            [id = 21, name = "Manuel", age = 18]
        }
    )
in
    Table.MaxN(
        table,
        "age",
        2
    )

Función M Table.MaxN

Si se especifica 2 filas, se devolverán 2 filas aun cuando, como en este caso, haya dos candidatos a aparecer en la segunda posición (Sonia y Manuel). No está documentado el criterio de selección que se aplica en estas circunstancias:

let
    table = Table.FromRecords(
        {
            [id = 1, name = "John", age = 55],
            [id = 21, name = "Alfonso", age = 18],
            [id = 33, name = "Marta", age = 35],
            [id = 21, name = "Sonia", age = 40],
            [id = 21, name = "Manuel", age = 40]
        }
    )
in
    Table.MaxN(
        table,
        "age",
        2
    )

Función M Table.MaxN

Obsérvese que el criterio de ordenación de la tabla (impuesto por comparisonCriteria) es independiente del criterio de selección de filas (impuesto por countOrCondition). Por ejemplo, en el siguiente código se ordena la tabla según el campo "age" (lo que supone que los identificadores -campo "id"- quedarán en el orden 11, 17, 33, 5 y 21, correspondientes a los registros en los que el campo "age" toma los valores 55, 40, 35, 23 y 18, respectivamente) y, a continuación, escoge del principio de la tabla ordenada los registros que satisfagan la condición de que el campo "id" sea mayor que 10. Éstos son los identificadores 11, 17 y 33. El siguiente es 5 y no cumple la condición, lo que hace que la función termine la selección:

let
    table = Table.FromRecords(
        {
            [id = 11, name = "John", age = 55],
            [id = 21, name = "Alfonso", age = 18],
            [id = 33, name = "Marta", age = 35],
            [id = 17, name = "Sonia", age = 40],
            [id = 5, name = "Manuel", age = 23]
        }
    )
in
    Table.MaxN(
        table,
        "age",
        each [id] > 10
    )

Función M Table.MaxN
Categoría
Funciones de tabla
Enviado por admin el Vie, 14/08/2020 - 16:02