La función Table.Combine devuelve el resultado de unir verticalmente varias tablas.
Table.Combine(
tables as list,
optional columns as any
) as table
- tables: lista de tablas a unir
- columns: (opcional) nombres de las columnas a incluir en la tabla devuelta
Si los nombres de las columnas no coinciden, la tabla resultante incluye todas las columnas de todas las tablas, añadiendo valores nulos donde no haya datos.
En este ejemplo partimos de tres tablas con los mismos campos y las unimos verticalmente en una sola:
let
// Primera tabla
table1 = Table.FromRecords(
{
[id = 1, name = "John", age = 35],
[id = 2, name = "Alfonso", age = 58]
}
),
// Segunda tabla
table2 = Table.FromRecords(
{
[id = 3, name = "Marta", age = 22]
}
),
// Tercera tabla
table3 = Table.FromRecords(
{
[id = 4, name = "Juan Carlos", age = 17],
[id = 5, name = "Carmen", age = 40]
}
)
in
Table.Combine(
{table1, table2, table3}
)
En este ejemplo las tablas a unir no tienen todas las mismas columnas (table1 incluye el campo "country" y table2 incluye el campo "city"). En este caso la tabla devuelta por la función Table.Combine incluye todas las columnas de las tablas:
let
// Primera tabla
table1 = Table.FromRecords(
{
[id = 1, name = "John", age = 35, country = "Portugal"],
[id = 2, name = "Alfonso", age = 58, country = "Brasil"]
}
),
// Segunda tabla
table2 = Table.FromRecords(
{
[id = 3, name = "Marta", age = 22, city = "Berlin"]
}
),
// Tercera tabla
table3 = Table.FromRecords(
{
[id = 4, name = "Juan Carlos", age = 17],
[id = 5, name = "Carmen", age = 40]
}
)
in
Table.Combine(
{table1, table2, table3}
)
Si se especifica el parámetro columns, la tabla resultante solo incluirá dichas columnas. Así, siguiendo con el ejemplo anterior, si especificamos como columnas a extraer "name" y "country", la tabla resultante solo incluye éstas:
let
// Primera tabla
table1 = Table.FromRecords(
{
[id = 1, name = "John", age = 35, country = "Portugal"],
[id = 2, name = "Alfonso", age = 58, country = "Brasil"]
}
),
// Segunda tabla
table2 = Table.FromRecords(
{
[id = 3, name = "Marta", age = 22, city = "Berlin"]
}
),
// Tercera tabla
table3 = Table.FromRecords(
{
[id = 4, name = "Juan Carlos", age = 17],
[id = 5, name = "Carmen", age = 40]
}
)
in
Table.Combine(
{table1, table2, table3},
{"name", "country"}
)