Forum Discussion
Running Stock Total based on forecasts and delivery's
- 3 years ago
By the way, I see now that your error message is due to the fact that you added the Part column to the table type specification incorrectly. The columns should be in the form: [...Column Name = type...]. You show [...#"Part", type text...] which is adding two columns, one with the name "Part", and the second named "type text". See my code below for proper method.
Below is code that should work to give you a running stock qty per part number.
Here is the table with the Part column added:
Code:
let //Change next line to reflect actual data source Source = Excel.CurrentWorkbook(){[Name="Table16"]}[Content], #"Changed Type" = Table.TransformColumnTypes(Source,{{"Part", type text}, {"Forecast qty RT - MAR", Int64.Type}, {"Stock Total", Int64.Type}, {"On order (Bf required date)", Int64.Type}, {"J24 Quantity", Int64.Type}}), #"Grouped Rows" = Table.Group(#"Changed Type", {"Part"}, { {"Tables", (t)=> let //lists to compute running stock total fq = t[#"Forecast qty RT - MAR"], oo = t[#"On order (Bf required date)"], #"rtList" = List.Generate( ()=>[rt=t[Stock Total]{0} - fq{0} + oo{0}, idx=0], each [idx] < List.Count(fq), each [rt= if oo{[idx]} <> oo{[idx]+1} then [rt] - fq{[idx]+1} + oo{[idx]+1} else [rt] - fq{[idx]+1}, idx=[idx]+1], each [rt]), //combine running total column with original table #"Result" = Table.FromColumns( {t[Part]} & {fq} & {#"rtList"} & {t[Stock Total]} & {oo} & {t[J24 Quantity]}, { "Part", "Forecast qty RT - MAR", "Running Stock", "Stock Total", "On order (Bf required date)", "J24 Quantity"}) in #"Result", type table[ #"Part" = text, #"Forecast qty RT - MAR"=Int64.Type, Running Stock=Int64.Type, Stock Total=Int64.Type, #"On order (Bf required date)"=Int64.Type, J24 Quantity=Int64.Type] }}), #"Expanded Tables" = Table.ExpandTableColumn(#"Grouped Rows", "Tables", {"Forecast qty RT - MAR", "Running Stock", "Stock Total", "On order (Bf required date)", "J24 Quantity"}) in #"Expanded Tables"Results:
By the way, I see now that your error message is due to the fact that you added the Part column to the table type specification incorrectly. The columns should be in the form: [...Column Name = type...]. You show [...#"Part", type text...] which is adding two columns, one with the name "Part", and the second named "type text". See my code below for proper method.
Below is code that should work to give you a running stock qty per part number.
Here is the table with the Part column added:
Code:
let
//Change next line to reflect actual data source
Source = Excel.CurrentWorkbook(){[Name="Table16"]}[Content],
#"Changed Type" = Table.TransformColumnTypes(Source,{{"Part", type text},
{"Forecast qty RT - MAR", Int64.Type}, {"Stock Total", Int64.Type}, {"On order (Bf required date)", Int64.Type},
{"J24 Quantity", Int64.Type}}),
#"Grouped Rows" = Table.Group(#"Changed Type", {"Part"}, {
{"Tables", (t)=>
let
//lists to compute running stock total
fq = t[#"Forecast qty RT - MAR"],
oo = t[#"On order (Bf required date)"],
#"rtList" = List.Generate(
()=>[rt=t[Stock Total]{0} - fq{0} + oo{0}, idx=0],
each [idx] < List.Count(fq),
each [rt= if oo{[idx]} <> oo{[idx]+1}
then [rt] - fq{[idx]+1} + oo{[idx]+1}
else [rt] - fq{[idx]+1},
idx=[idx]+1],
each [rt]),
//combine running total column with original table
#"Result" = Table.FromColumns(
{t[Part]}
& {fq}
& {#"rtList"}
& {t[Stock Total]}
& {oo}
& {t[J24 Quantity]},
{ "Part",
"Forecast qty RT - MAR",
"Running Stock",
"Stock Total",
"On order (Bf required date)",
"J24 Quantity"})
in
#"Result",
type table[
#"Part" = text,
#"Forecast qty RT - MAR"=Int64.Type,
Running Stock=Int64.Type,
Stock Total=Int64.Type,
#"On order (Bf required date)"=Int64.Type,
J24 Quantity=Int64.Type]
}}),
#"Expanded Tables" = Table.ExpandTableColumn(#"Grouped Rows", "Tables",
{"Forecast qty RT - MAR", "Running Stock", "Stock Total", "On order (Bf required date)", "J24 Quantity"})
in #"Expanded Tables"
Results:
Thank you so much for this, I have been putting in countless late nights trying to find a solution, my understanding of coding in Power Query has grown massively over this time thanks to the patience of people like you.