Forum Discussion

Typhoon74's avatar
Typhoon74
Icon for Helper I rankHelper I
3 years ago
Solved

How to extend a table and updateing the date?

I do have the following data table and I am looking for a solution to turn this into a multi-row table that has the No of rows per PROJECTQUOTEID as per the PERIOD value. Example on PROJECTQUO...
  • MFelix's avatar
    3 years ago

    Hi Typhoon74 

     

    Do the following steps:

    • Add a custom column with a list of values starting in 1 and ending on the number of months:
    {1..[Period]}
    • Expand that column

    • Add a new column with the following code:
    Date.AddMonths([StartMonth] ,[AdittionalPeriod]-1)

    Final result:

     

    Now you can delete the columns StartMonth and AdditionalPeriod and rename the final column

     

    complete code here:

    let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("Vc5RCgAhCATQu/gd7Kxl1lmi+1+jhm2FBGHgMeIY0ookUWh+8O7ENQAy0za7rNM5H9bAzEREND2wHHT7rYfxPr2qHWthfn0zFw==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [ProjId = _t, StartMonth = _t, Period = _t, AverageCost = _t]),
        #"Changed Type" = Table.TransformColumnTypes(Source,{{"ProjId", Int64.Type}, {"StartMonth", type date}, {"Period", Int64.Type}, {"AverageCost", Int64.Type}}),
        #"Added Custom" = Table.AddColumn(#"Changed Type", "AdittionalPeriod", each {1..[Period]}),
        #"Expanded AdittionalPeriod" = Table.ExpandListColumn(#"Added Custom", "AdittionalPeriod"),
        #"Added Custom1" = Table.AddColumn(#"Expanded AdittionalPeriod", "StartMonth_1", each Date.AddMonths([StartMonth] ,[AdittionalPeriod]-1)),
        #"Removed Columns" = Table.RemoveColumns(#"Added Custom1",{"StartMonth", "AdittionalPeriod"})
    in
        #"Removed Columns"