Concatenate [(table)] LOAD ...
Concatenate (append tables) in Power BI
Concatenate appends rows to an existing table. Qlik also does this automatically when field sets match. Power Query's Append queries (Table.Combine) matches columns by name and fills missing ones with null.
Short answer: Use Home > Append queries, or Table.Combine({Sales2025, Sales2026}). For a folder of files, use Combine files.
What it does in Qlik
Concatenate (Facts) LOAD ... adds rows to Facts, even when the fields differ (missing fields are null). If two loads produce exactly the same field names, Qlik concatenates them automatically, unless NoConcatenate is used.
Qlik example
Facts: LOAD OrderID, Amount, 'Actual' AS Type FROM [lib://Data/actuals.qvd] (qvd);
Concatenate (Facts)
LOAD BudgetLine AS OrderID, Budget AS Amount, 'Budget' AS Type FROM [lib://Data/budget.qvd] (qvd);Power BI equivalent
Power Query
let
A = Table.AddColumn(Actuals, "Type", each "Actual", type text),
B = Table.AddColumn(Table.RenameColumns(Budget, {{"BudgetLine", "OrderID"}, {"Budget", "Amount"}}), "Type", each "Budget", type text),
Facts = Table.Combine({A, B})
in
FactsGotchas and behaviour differences
- Column names must match exactly, including case. Otherwise you get two half-empty columns.
- If the same column has different types in the inputs, the combined column can lose its type. Set types after combining.
- Actuals and budget at different grains are often better as two fact tables sharing dimensions than one appended table.
Official documentation
- Concatenate (script prefix) (Qlik Help)
- Append queries (Microsoft Learn)
- Table.Combine (Power Query M) (Microsoft Learn)
Related pages
[Inner|Left|Right|Outer] Join / Keep
Join and Keep
Qlik joins on all fields with the same name, and a plain Join is a full outer join. Power Query merges need explicit key columns and a join kind. Keep filters a table without merging, which maps to a semi-join filter or an inner merge you don't expand.
Partial / different approach
LOAD ... RESIDENT table; DROP TABLE table;
Resident load and intermediate tables
A Resident load reads a table already in memory. The Power Query equivalent is a referenced query, but it re-runs its source instead of reading from memory. Heavy multi-step transformations are better done upstream in a warehouse, dataflow or lakehouse.
Partial / different approach
CrossTable(attribute, data [, n])
CrossTable (unpivot)
CrossTable turns a wide table (for example one column per month) into attribute/value rows. Power Query's Unpivot other columns does the same, but it drops null cells.
Direct equivalent
Spotted an error or a better pattern? QlikToDax is maintained by a working BI consultant; corrections are welcome via the About page. Last reviewed 2026-10-25.