La función Table.FromRecords devuelve una tabla a partir de una lista de registros.
Table.FromRecords(
records as list,
optional columns as any,
optional missingField as nullable number
) as table
- records: lista de registros que van a formar las filas de la tabla
- columns: (opcional) tipos de las columnas
- missingField: (opcional) criterio a seguir cuando se encuentren valores inexistentes
Los nombres de los campos se incluyen sin comillas. Éstos deberán ser los mismos en todos los registros (es el primer registro el que establece los nombres de los campos que deberán aparecer en el resto de registros).
El argumento missingField puede tomar los valores MissingField.Error o MissingField.UseNull (no puede tomar el valor MissingField.Ignore).
En este ejemplo estamos creando una tabla con tres campos: "id", "name" y "age"
Table.FromRecords(
{
[id = 15, name = "John", age = 35],
[id = 21, name = "Alfonso", age = 58],
[id = 33, name = "Marta", age = 22]
}
)
Table
Un clic en el enlace Table nos muestra la tabla creada:
Podemos especificar los tipos de las columnas añadiendo esta información como segundo argumento:
Table.FromRecords(
{
[id = 15, name = "John", age = 35],
[id = 21, name = "Alfonso", age = 58],
[id = 33, name = "Marta", age = 22]
},
type table[
id = Number.Type,
name = Text.Type,
age = Number.Type
]
)
Table
La tabla resultante es la siguiente:
Los nombres de los campos deberán ser los mismos en todos los registros. En el siguiente ejemplo no es así (el segundo registro no incluye el campo "age" e incluye el campo "height"):
Table.FromRecords(
{
[id = 15, name = "John", age = 35],
[id = 21, name = "Alfonso", height = 182],
[id = 33, name = "Marta", age = 22]
}
)
Table
En este caso, los registros cuyos campos no coincidan con los del primer registro aparecen con errores:
Podemos controlar el tratamiento que se va a dar a los valores inexistentes con el argumento missingField. Si éste toma el valor MissingField.Error, la función Table.FromRecords devolverá un error cuando se encuentre uno de estos valores.
En el siguiente ejemplo el segundo registro no incluye el campo "age", por lo que la tabla resultante incluye -al igual que en el ejemplo anterior, errores en los valores de este registro:
Table.FromRecords(
{
[id = 15, name = "John", age = 35],
[id = 21, name = "Alfonso"],
[id = 33, name = "Marta", age = 22]
},
null,
MissingField.Error
)
Table
La tabla resultante es la siguiente:
Éste es el comportamiento por defecto.
Si, por el contrario, añadimos el argumento MissingField.UseNull, los valores inexistentes se sustituirán por valores nulos:
Table.FromRecords(
{
[id = 15, name = "John", age = 35],
[id = 21, name = "Alfonso"],
[id = 33, name = "Marta", age = 22]
},
null,
MissingField.UseNull
)
Table
La tabla resultante en este caso es la siguiente: