Forum Discussion

smore's avatar
smore
Advocate I
4 years ago
Solved

Add rows to a table based on cell value

MajorGroup MinorGroup Sample 1 6 3 1 5 2 Above is an example of my data table to which I am trying to add the # of samples for each MajorGroup/MinorGroup as rows counting down to 1...
  • AlexisOlson's avatar
    4 years ago

    You can transform the Sample column (or add a new column) that creates a list {1,2,..,N} and then expand that list column to new rows.

     

     

    Here's the full query I used:

    let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMlTSUTIDYmOlWB0IzxSIjZRiYwE=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [MajorGroup = _t, MinorGroup = _t, Sample = _t]),
        #"Changed Type" = Table.TransformColumnTypes(Source,{{"MajorGroup", Int64.Type}, {"MinorGroup", Int64.Type}, {"Sample", Int64.Type}}),
        #"Number to list" = Table.TransformColumns(#"Changed Type", {{"Sample", each List.Reverse({1.._}), type list}}),
        #"Expanded Sample" = Table.ExpandListColumn(#"Number to list", "Sample")
    in
        #"Expanded Sample"