Skip to main content

Table.Combine

Returns a table that is the result of merging a list of tables.

Syntax

Table.Combine(
tables as list,
optional columns as any
) as table

Remarks

Returns a table that is the result of merging a list of tables, tables. The resulting table will have a row type structure defined by columns or by a union of the input types if columns is not specified.

Examples

Example #1

Merge the three tables together.

Table.Combine({
Table.FromRecords({[CustomerID = 1, Name = "Bob", Phone = "123-4567"]}),
Table.FromRecords({[CustomerID = 2, Name = "Jim", Phone = "987-6543"]}),
Table.FromRecords({[CustomerID = 3, Name = "Paul", Phone = "543-7890"]})
})

Result:

Table.FromRecords({
[CustomerID = 1, Name = "Bob", Phone = "123-4567"],
[CustomerID = 2, Name = "Jim", Phone = "987-6543"],
[CustomerID = 3, Name = "Paul", Phone = "543-7890"]
})

Example #2

Merge three tables with different structures.

Table.Combine({
Table.FromRecords({[Name = "Bob", Phone = "123-4567"]}),
Table.FromRecords({[Fax = "987-6543", Phone = "838-7171"]}),
Table.FromRecords({[Cell = "543-7890"]})
})

Result:

Table.FromRecords({
[Name = "Bob", Phone = "123-4567", Fax = null, Cell = null],
[Name = null, Phone = "838-7171", Fax = "987-6543", Cell = null],
[Name = null, Phone = null, Fax = null, Cell = "543-7890"]
})

Example #3

Merge two tables and project onto the given type.

Table.Combine(
{
Table.FromRecords({[Name = "Bob", Phone = "123-4567"]}),
Table.FromRecords({[Fax = "987-6543", Phone = "838-7171"]}),
Table.FromRecords({[Cell = "543-7890"]})
},
{"CustomerID", "Name"}
)

Result:

Table.FromRecords({
[CustomerID = null, Name = "Bob"],
[CustomerID = null, Name = null],
[CustomerID = null, Name = null]
})

Category

Table.Row operations