Table.FromList

La función Table.FromList devuelve una tabla a partir de una lista.

Sintaxis

Table.FromList(
    list as list,
    optional splitter as nullable function,
    optional columns as any,
    optional default as any,
    optional extraValues as nullable number
) as table

Parámetros
  • list: lista a convertir en tabla
  • splitter: (opcional) función a aplicar a cada valor de la lista para su división
  • columns: (opcional) número de columnas, nombres de columnas o tipo de columnas
  • default: (opcional) valor por defecto a usar para sustituir a los valores inexistentes
  • extraValues: (opcional) criterio a seguir cuando el número de columnas creadas sea superior al esperado
Información adicional
Ejemplos

Podemos crear una tabla a partir de la lista {"a", "b", "c"} con la siguiente expresión:

Table.FromList(
    {"a", "b", "c"}
)

Table

Función M Table.FromList

Un clic en el enlace Table nos muestra la tabla generada:

Función M Table.FromList

Comprobamos que se ha aplicado un nombre de columna por defecto.

Si, en el ejemplo anterior, añadimos el tercer argumento indicando el nombre de la columna...

Table.FromList(
    {"a", "b", "c"},
    null,
    {"Product"}
)

Table

Función M Table.FromList

...la tabla resultante incluye dicho nombre:

Función M Table.FromList

En este ejemplo partimos de una lista de registros y utilizamos la función Record.FieldValues para dividir cada registro en una lista de elementos:

Table.FromList(
    {
        [id = 1, Name = "Peter"],
        [id = 2, Name = "Susan"]
    },
    Record.FieldValues,
    {"ID", "Name"}
)

Table

Función M Table.FromList

La tabla devuelta es la siguiente:

Función M Table.FromList

Si incluimos el argumento default, éste se utilizará para sustituir a los valores inexistentes que puedan aparecer en la tabla. En el siguiente ejemplo el segundo registro no incluye el valor del campo "Name", por lo que se sustituirá por el valor "n/a" incluido como cuarto argumento:

Table.FromList(
    {
        [id = 1, Name = "Peter"],
        [id = 2]
    },
    Record.FieldValues,
    {"ID", "Name"},
    "n/a"
)

Table

Función M Table.FromList

La tabla devuelta es la siguiente:

Función M Table.FromList

Para probar el quinto argumento, extraValues, vamos a comenzar con una tabla generada a partir de una lista en la que uno de los registros (el segundo) incluye un campo adicional, "Age":

Table.FromList(
    {
        [id = 1, Name = "Peter"],
        [id = 2, Name = "Susan", Age = 45]
    },
    Record.FieldValues,
    {"ID", "Name"},
    null
)

Table

Función M Table.FromList

Por defecto, esto genera un error en la tabla devuelta por la función:

Función M Table.FromList

Si utilizamos como argumento extraValues la constante ExtraValues.Error, el resultado obtenido es exactamente el mismo que si no incluimos este argumento, pues la generación de un error es el comportamiento por defecto:

Table.FromList(
    {
        [id = 1, Name = "Peter"],
        [id = 2, Name = "Susan", Age = 45]
    },
    Record.FieldValues,
    {"ID", "Name"},
    null,
    ExtraValues.Error
)

Table

Función M Table.FromList

La tabla resultante es, por supuesto, idéntica a la obtenida en el ejemplo anterior:

Función M Table.FromList

Siguiendo con el mismo ejemplo, si incluimos como argumento ExtraValues.Ignore, este valor no esperado se ignora:

Table.FromList(
    {
        [id = 1, Name = "Peter"],
        [id = 2, Name = "Susan", Age = 45]
    },
    Record.FieldValues,
    {"ID", "Name"},
    null,
    ExtraValues.Ignore
)

Table

Función M Table.FromList

La tabla devuelta en este caso es la siguiente:

Función M Table.FromList

Por último, si incluimos el argumento ExtraValues.List, la función devuelve un valor de tipo List conteniendo los posibles campos adicionales. Para probarlo, vamos a partir de una expresión ligeramente distinta a la utilizada en los ejemplos anteriores en la que no vamos a fijar los nombres de los campos. Comencemos viendo la tabla resultante si no hay campos inesperados:

Table.FromList(
    {
        [id = 1, Name = "Peter"],
        [id = 2, Name = "Susan"]
    },
    Record.FieldValues,
    null,
    null,
    ExtraValues.List
)

Table

Función M Table.FromList

La tabla resultante es la siguiente:

Función M Table.FromList

Comprobamos que la tabla incluye un campo adicional de tipo List en el que se agrupan los valores no esperados. En este momento estas listas están vacías. Por ejemplo, si hacemos clic en el enlace List correspondiente a Susan:

Función M Table.FromList

Pero modifiquemos ahora uno de los registros para incluir un campo no esperado:

Table.FromList(
    {
        [id = 1, Name = "Peter"],
        [id = 2, Name = "Susan", Age = 45]
    },
    Record.FieldValues,
    null,
    null,
    ExtraValues.List
)

Table

Función M Table.FromList

La tabla generada es semejante a la anterior:

Función M Table.FromList

...pero ahora estas listas incluyen los valores extra. Si hacemos clic en el enlace List de Susan vemos el valor correspondiente al campo Age:

Función M Table.FromList
Categoría
Funciones de tabla
Submitted by admin on Mon, 08/03/2020 - 07:49