Forum Discussion

viera00's avatar
viera00
Helper II
10 years ago
Solved

Complex PowerQuery Merge query using substrings

Hello everyone,   I have a questions about a complex merge I need to do in Power Query. Imagine the following tables:   Table1:   Column1 | Column2 1              4441 2              4442 3...
  • ImkeF's avatar
    ImkeF
    10 years ago

    A different way to perform a lookup is to use "Table.SelectRows", although this might be slower - so it is essential that you use the Table.Buffer and for very large table try to partition also. But the basic principle can look as follows:

     

    let
        Table1 = Table.Buffer(#table({"Column1", "Column2"}, {{1, "4441"}, {2, "4442"}, {3, "4443"}, {4, "443"}})),
        Table2 = #table({"Column1", "Column2"}, {{1, "4441098"}, {2, "4441097"}, {3, "4441011"}, {4, "4441122"}, {5, "4443111"}, {6, "4443123"}}),
        Lookup = Table.AddColumn(Table2, "Lookup", (outer) => Table.SelectRows(Table1, each Text.StartsWith(outer[Column2], [Column2]))),
        #"Expanded Lookup" = Table.ExpandTableColumn(Lookup, "Lookup", {"Column2"}, {"Lookup.Column2"})
    in
        #"Expanded Lookup"

     

    Advantage here is that you don't need an exact match, but can use all sorts of conditions, in this case "Text.StartsWith".