Forum Discussion

basic's avatar
basic
Frequent Visitor
7 years ago
Solved

Remove duplicates selectively based on priority order

Finally gave up looking for examples to learn from, and decided to post my first question to the community.   Hello, i have a table similar to this:   Row#     Col A     Col B 1            A1   ...
  • basic's avatar
    basic
    7 years ago

    Thanks Zubair.  Sorry I didn't specify that B1 in my data could appear on any row -- not necessarily on the first row all the time.  That makes the remove duplicates function not suitable for my requirement.  

    I got help from a colleague and ended up learning a bit of M to get the job done.  My code looks something like this:

     

    let
         Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
         #"B1 rows" = Table.Distinct(Table.SelectRows(Source, each ([Col B] = "B1")), {"Col A"}),
         #"A1 list" = Table.Column(#"B1 rows", "Col A"),
         #"Non B1 Rows" = Table.Distinct(Table.SelectRows(#"Table 1", each not List.Contains(#"A1 list", [DNS])), {"Col A"}),
         #"Appended Query" = Table.Combine({#"B1 rows", #"Non B1 Rows"})
    in
         #"Appended Query"

     

    The exception join (not List.Contains) must not be efficient because my query runs 10 minutes or longer.  But it gets the job done, and that's what i care about.