Skip to content

Instantly share code, notes, and snippets.

@bjulius
Created December 30, 2022 05:09
Show Gist options
  • Save bjulius/89181f97294f1e29602d386605f868df to your computer and use it in GitHub Desktop.
Save bjulius/89181f97294f1e29602d386605f868df to your computer and use it in GitHub Desktop.
Excel BI Excel PQ Challenge 98 - Brian Julius Solution
let
Source = Table.RemoveColumns( Excel.CurrentWorkbook(){[Name="Table1"]}[Content], "Column1"),
Crossjoin = Table.SelectRows( Table.RemoveColumns( Table.ExpandListColumn(Table.AddColumn(Source, "Crossjoin", each Source[Numbers]), "Crossjoin"), "Sum"), each [Numbers] <> [Crossjoin] ),
CrossjoinSum = Table.SelectRows( Table.ExpandListColumn( Table.AddColumn(Crossjoin, "CrossjoinSum", each Source[Sum]), "CrossjoinSum"), each [CrossjoinSum] <> null),
FIlterSums = Table.RemoveColumns( Table.SelectRows( Table.AddColumn(CrossjoinSum, "Custom", each if [Numbers] + [Crossjoin] = [CrossjoinSum] then true else false), each [Custom] = true), "Custom"),
Concat = Table.AddColumn(FIlterSums, "Concat", each [
a = List.Min( {[Numbers], [Crossjoin]} ),
b = List.Max( {[Numbers], [Crossjoin]} ),
c = Text.From(a) & "+" & Text.From(b)
][c]),
DeDupe = Table.Distinct(Concat, {"Concat"}),
Group = Table.Group(DeDupe, {"CrossjoinSum"}, {{"All", each _, type table [Numbers=number, Crossjoin=number, CrossjoinSum=number, Concat=text]}}),
Combine = Table.RemoveColumns( Table.AddColumn(Group, "Combine", each Text.Combine( [All][Concat], ", ")), "All"),
Join = Table.RenameColumns( Table.RemoveColumns( Table.Join( Source, "Sum", Combine, "CrossjoinSum", JoinKind.LeftOuter), "CrossjoinSum"), {"Combine", "Answer"})
in
Join
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment