Forum Discussion

TommyMossberg's avatar
5 years ago
Solved

New column - If value = null, use value on previous row.

I got data from my source in a csv formated like this.

 

Got thisGot this
4001Value
4002Value
 Value
4003Value
 Value
 Value
 Value
4004Value
 Value
 Value
 Value
 Value
 Value

 

In order to connect it to my other data I need it like this

Got thisWant thisGot this
40014001Value
40024002Value
 4002Value
40034003Value
 4003Value
 4003Value
 4003Value
40044004Value
 4004Value
 4004Value
 4004Value
 4004Value
 4004

Value

 

How do I create the calculated(?) column in the example above?

 

Thanks in advance!

  • Hi TommyMossberg 

    Just use the Fill down feature. Place the following M code in a blank query to see the steps.

    let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjEwMFTSUQpLzClNVYrVAQsYoQgooEsb45HGxwNqNSFTK05eLAA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"Got this" = _t, #"Got this.1" = _t]),
        #"Changed Type" = Table.TransformColumnTypes(Source,{{"Got this", Int64.Type}}),
        #"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each [Got this]),
        #"Filled Down1" = Table.FillDown(#"Added Custom",{"Custom"}),
        #"Reordered Columns" = Table.ReorderColumns(#"Filled Down1",{"Got this", "Custom", "Got this.1"})
    in
        #"Reordered Columns"

     

    Please mark the question solved when done and consider giving a thumbs up if posts are helpful.

    Contact me privately for support with any larger-scale BI needs, tutoring, etc.

    Cheers 

1 Reply

  • AlB's avatar
    AlB
    Community Champion

    Hi TommyMossberg 

    Just use the Fill down feature. Place the following M code in a blank query to see the steps.

    let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjEwMFTSUQpLzClNVYrVAQsYoQgooEsb45HGxwNqNSFTK05eLAA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [#"Got this" = _t, #"Got this.1" = _t]),
        #"Changed Type" = Table.TransformColumnTypes(Source,{{"Got this", Int64.Type}}),
        #"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each [Got this]),
        #"Filled Down1" = Table.FillDown(#"Added Custom",{"Custom"}),
        #"Reordered Columns" = Table.ReorderColumns(#"Filled Down1",{"Got this", "Custom", "Got this.1"})
    in
        #"Reordered Columns"

     

    Please mark the question solved when done and consider giving a thumbs up if posts are helpful.

    Contact me privately for support with any larger-scale BI needs, tutoring, etc.

    Cheers