Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
7 years ago
Solved

Need help to transform data

Hello,

I have a CSV file of type:
ID, names, number

For example:
1, Strawberry Mango Banana, 4
2, Kiwi Apple Pear, 3
3, Watermelon Melon Lemon, 3

I want to transform it to get data of type :
1, Banana, 4
1, Strawberry, 4
1, Mango, 4
2, Kiwi, 3
2, Pear, 3

Etc.

How can I transform my table with power BI to get the expected result?

Thank you in advance

  • Anonymous use split feature on transform menu in query editor, here is  M code with split

     

    let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMlTSUVIILilKLE9KLSqqVPBNzEvPV3BKzANCoJSJUqxOtJIRSJF3ZnmmgmNBQU6qQkBqYhFQyBgsaQySDE8sSS3KTc3Jz1PwBZM+qbn5eRA1sQA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [Id = _t, Names = _t, Number = _t]),
        #"Changed Type" = Table.TransformColumnTypes(Source,{{"Id", Int64.Type}, {"Names", type text}, {"Number", Int64.Type}}),
        #"Trimmed Text" = Table.TransformColumns(#"Changed Type",{{"Names", Text.Trim, type text}}),
        #"Split Column by Delimiter" = Table.ExpandListColumn(Table.TransformColumns(#"Trimmed Text", {{"Names", Splitter.SplitTextByDelimiter(" ", QuoteStyle.Csv), let itemType = (type nullable text) meta [Serialized.Text = true] in type {itemType}}}), "Names"),
        #"Changed Type1" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"Names", type text}})
    in
        #"Changed Type1"

3 Replies

  • Anonymous use split feature on transform menu in query editor, here is  M code with split

     

    let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMlTSUVIILilKLE9KLSqqVPBNzEvPV3BKzANCoJSJUqxOtJIRSJF3ZnmmgmNBQU6qQkBqYhFQyBgsaQySDE8sSS3KTc3Jz1PwBZM+qbn5eRA1sQA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [Id = _t, Names = _t, Number = _t]),
        #"Changed Type" = Table.TransformColumnTypes(Source,{{"Id", Int64.Type}, {"Names", type text}, {"Number", Int64.Type}}),
        #"Trimmed Text" = Table.TransformColumns(#"Changed Type",{{"Names", Text.Trim, type text}}),
        #"Split Column by Delimiter" = Table.ExpandListColumn(Table.TransformColumns(#"Trimmed Text", {{"Names", Splitter.SplitTextByDelimiter(" ", QuoteStyle.Csv), let itemType = (type nullable text) meta [Serialized.Text = true] in type {itemType}}}), "Names"),
        #"Changed Type1" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"Names", type text}})
    in
        #"Changed Type1"
    • Anonymous's avatar
      Anonymous
      Not applicable
      parry2k Please could you explain me each line of your M code
      • Ashish_Mathur's avatar
        Ashish_Mathur
        Super User

        Hi,

        In the Query Editor, double click on each step in the Applied steps section.