Partiendo de una tabla con una columna que contiene registros, la función Table.ExpandRecordColumn expande dicha columna en nuevas columnas con los campos de los registros.
Table.ExpandRecordColumn(
table as table,
column as text,
fieldNames as list,
optional newColumnNames as nullable list
) as table
- table: tabla a evaluar
- column: columna conteniendo los registros a expandir
- fieldNames: nombres de los campos a extraer de los registros
- newColumnNames: (opcional) nombres a asignar a las columnas creadas
El campo conteniendo el registro en la tabla original desaparece cuando se expande, y esto con independencia de que se extraigan todos los campos que contiene o no.
Si se añade el cuarto parámetro, newColumnNames, deberá contener un valor para cada uno de los campos extraídos.
En este ejemplo partimos de la siguiente tabla con dos campos: el primero ("name") conteniendo el nombre de una persona y el segundo, un registro ("location"), conteniendo el país y la ciudad asociados a la persona en cuestión:
let
Source = Table.FromRecords(
{
[name = "Jon", location = [country = "España", city = "San Sebastián"]],
[name = "Cristina", location = [country = "México", city = "México DF"]]
}
)
in
Source
Podemos visualizar el contenido del registro asociado a, por ejemplo, Jon, haciendo clic en el enlace Record que se muestra a la derecha de su etiqueta en la imagen anterior:
Podemos ahora extraer los campos que deseemos contenidos en la columna "location" (en este ejemplo vamos a extraer los dos campos que contiene, "country" y "city") con el siguiente código:
let
Source = Table.FromRecords(
{
[name = "Jon", location = [country = "España", city = "San Sebastián"]],
[name = "Cristina", location = [country = "México", city = "México DF"]]
}
)
in
Table.ExpandRecordColumn(
Source,
"location",
{"country", "city"}
)
Es posible aplicar a las columnas creadas nuevos nombres añadiendo el cuarto parámetro, newColumnNames:
let
Source = Table.FromRecords(
{
[name = "Jon", location = [country = "España", city = "San Sebastián"]],
[name = "Cristina", location = [country = "México", city = "México DF"]]
}
)
in
Table.ExpandRecordColumn(
Source,
"location",
{"country", "city"},
{"país", "ciudad"}
)