Forum Discussion

nirrobi's avatar
nirrobi
Icon for Helper V rankHelper V
7 years ago
Solved

Power Query - split row to multiple row base on number from other column

Hi,

 

I have table as below:

 

WordQuantity

AAA3
BBB2
EEE

4

 

I need to convert it to the below (repeat every line base on the number on the quntity column)

AAA3
AAA3
AAA3
BBB2
BBB2
EEE4
EEE4
EEE4
EEE4

 

 

Thanks!

 

Nir.

  • nirrobi

     

    You can add a Custom Column and then expand it to new rows

     

    ={1..[Quantity]}

    The delete this custom column

     

    Final code/ File attached as well

     

    let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WcnR0VNJRMlaK1YlWcnJyArKNwGxXV1cg20QpNhYA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [Word = _t, Quantity = _t]),
        #"Changed Type" = Table.TransformColumnTypes(Source,{{"Word", type text}, {"Quantity", Int64.Type}}),
        #"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each {1..[Quantity]}),
        #"Expanded Custom" = Table.ExpandListColumn(#"Added Custom", "Custom"),
        #"Removed Columns" = Table.RemoveColumns(#"Expanded Custom",{"Custom"})
    in
        #"Removed Columns"

2 Replies

    • Zubair_Muhammad's avatar
      Zubair_Muhammad
      Icon for Community Champion rankCommunity Champion

      nirrobi

       

      You can add a Custom Column and then expand it to new rows

       

      ={1..[Quantity]}

      The delete this custom column

       

      Final code/ File attached as well

       

      let
          Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WcnR0VNJRMlaK1YlWcnJyArKNwGxXV1cg20QpNhYA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [Word = _t, Quantity = _t]),
          #"Changed Type" = Table.TransformColumnTypes(Source,{{"Word", type text}, {"Quantity", Int64.Type}}),
          #"Added Custom" = Table.AddColumn(#"Changed Type", "Custom", each {1..[Quantity]}),
          #"Expanded Custom" = Table.ExpandListColumn(#"Added Custom", "Custom"),
          #"Removed Columns" = Table.RemoveColumns(#"Expanded Custom",{"Custom"})
      in
          #"Removed Columns"