Forum Discussion

Rich_P's avatar
Rich_P
Helper II
6 years ago
Solved

FillDown with a Calculation

I'm not quite sure the Subject is descriptive enough, so I'll try to explain with images. I have a data feed that displays Subtotals on the first record of a group of records and I need to display t...
  • Anonymous's avatar
    Anonymous
    6 years ago

    This code will handle the task in one query. It shows how you can join from one step into another.

     

    let
        Source = Excel.CurrentWorkbook(){[Name="Table1"]}[Content],
        #"Changed Type" = Table.TransformColumnTypes(Source,{{"MaterialCode", type text}, {"ProdSequence", type text}, {"Operation", type text}, {"Material", type any}, {"Qty", type number}}),
        #"Added Index" = Table.AddIndexColumn(#"Changed Type", "Index", 0, 1),
        #"Added Custom" = Table.AddColumn(#"Added Index", "Header", each if [Qty] = null then null else [Index]),
        #"Filled Down" = Table.FillDown(#"Added Custom",{"Header"}),
        #"Grouped Rows" = Table.Group(#"Filled Down", {"Header"}, {{"Count", each Table.RowCount(_), type number}}),
        #"Merged Queries" = Table.NestedJoin(#"Filled Down",{"Header"},#"Grouped Rows",{"Header"},"Grouped Rows",JoinKind.LeftOuter),
        AddQtyAdjust = Table.AddColumn(#"Merged Queries", "QtyAdjust", each [Qty]/[Grouped Rows][Count]{0}),
        #"Filled Down1" = Table.FillDown(AddQtyAdjust,{"Material", "QtyAdjust"}),
        #"Removed Other Columns" = Table.SelectColumns(#"Filled Down1",{"MaterialCode", "ProdSequence", "Operation", "Material", "QtyAdjust"})
    in
        #"Removed Other Columns"