Table.ReplaceMatchingRows Function in Power Query
The Table.ReplaceMatchingRows function in Power Query, replaces specific rows from a table with the new rows.
Syntax
Table.ReplaceMatchingRows(
table as table,
replacements as list,
optional equationCriteria as any
) as table The function has the following parameters:
- table: The original table.
- replacements: A list of lists, where each inner list contains:
- The row to match
- The replacement row
- Example: { { [1, "A"], [1, "X"] } } means replace [1, "A"] with [1, "X"].
- equationCriteria: It is an optional parameter. Tells Power Query how to compare rows (e.g., which columns to match).
Example: Updating Prices. Imagine we have a product table, and we want to replace old prices with new ones.
Power Query M
let
// Source product table created from records (field names -> less error-prone)
Products = Table.FromRecords({
[ProductID = 101, Price = 50],
[ProductID = 102, Price = 75],
[ProductID = 103, Price = 100]
}),
// Replacements: each item is a pair { oldRecord, newRecord }
// Here we match the whole row exactly (ProductID + Price) and replace it.
Replacements = {
{ [ProductID = 101, Price = 50], [ProductID = 101, Price = 55] }, // 101: 50 -> 55
{ [ProductID = 103, Price = 100], [ProductID = 103, Price = 90] } // 103: 100 -> 90
},
// Apply replacements (full-row match)
Updated = Table.ReplaceMatchingRows(Products, Replacements)
in
Updated The output of the above code is shown below:
