Forum Discussion

Markus_74's avatar
Markus_74
Frequent Visitor
7 years ago
Solved

Get value from prev column

Hi all Stock inventory only updates once a year or when item stock level is changed, hence I get this type of table over a selected period   Item/Week 1 2 3 4 Item 1 3 2 0   Item ...
  • Zubair_Muhammad's avatar
    Zubair_Muhammad
    7 years ago

    Markus_74 

     

    I believe we will have to add missing rows for weeks first.

     

    Then we can use a DAX measure to get last non blank value or we can directly do it in Power Query As well

     

    Please see the attached file and let me know if it helps

     

    let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45W8ixJzVUwVNJRAmFjpVgdqJAxVMgUIQTiGoExXMgIU8gEKmSMqhFkngGq8SBsgqrRBKIqFgA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [Item = _t, Week = _t, StockQty = _t]),
        Custom1 = List.Distinct(Source[Item]),
        Custom2 = List.Distinct(Source[Week]),
        Items=Table.FromColumns({Custom1,List.Repeat({1},List.Count(Custom1))}),
        Weeks=Table.FromColumns({Custom2,List.Repeat({1},List.Count(Custom2))}),
        MergedQueries = Table.NestedJoin(Items,{"Column2"},Weeks,{"Column2"},"mytable",JoinKind.LeftOuter),
        Expandmytable = Table.ExpandTableColumn(MergedQueries, "mytable", {"Column1"}, {"Week"}),
        RemovedColumns = Table.RemoveColumns(Expandmytable,{"Column2"}),
        MergedQueriesAgain = Table.NestedJoin(RemovedColumns,{"Column1", "Week"},Source,{"Item", "Week"},"Table",JoinKind.LeftOuter),
        #"Expanded Table" = Table.ExpandTableColumn(MergedQueriesAgain, "Table", {"StockQty"}, {"StockQty"}),
        #"Sorted Rows" = Table.Sort(#"Expanded Table",{{"Column1", Order.Ascending}}),
        #"Renamed Columns" = Table.RenameColumns(#"Sorted Rows",{{"Column1", "Item"}})
    in
        #"Renamed Columns"