Forum Discussion

anshpalash's avatar
anshpalash
Helper II
4 years ago
Solved

Data Cleaning

Hi all,

 

I have a dataset similar to format:

Run Timenullnull2:24:21                            60%null
Run Timenull3:41:08         32%nullnull
Run Timenullnull1:23:12          12%null
Run Timenullnullnull3:23:39                                   19%

 

The position of the data is not same across each row. I need to convert this table to format:

Run Time2:24:21
Run Time3:41:08
Run Time1:23:12
Run Time3:23:39

 

Can someone please advise how to dynamically solve this problem? Thank you!

  • You should be able to select your first column, right click and choose unpivot other columns.  You can then remove the Attribute column, and filter out values <1 (the % values), to get close to your result.

     

    Pat

  • let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WCirNUwjJzE1V0lECIgMjKyMTKyNDINPMQBUkFquDosbA2MrE0MrAAsg0NlKFaEJXA1JmaGVkbGVoBGQaGmEzB6rMGKTM2BKkzFJVKTYWAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Column1 = _t, Column2 = _t, Column3 = _t, Column4 = _t, Column5 = _t]),
        Custom1 = Table.CombineColumns(Source, List.Skip(Table.ColumnNames(Source)), each List.Select(_, each Text.Contains(_, ":")){0}, "Duration")
    in
        Custom1

4 Replies

  • mahoneypat's avatar
    mahoneypat
    Microsoft Employee

    You should be able to select your first column, right click and choose unpivot other columns.  You can then remove the Attribute column, and filter out values <1 (the % values), to get close to your result.

     

    Pat

  • CNENFRNL's avatar
    CNENFRNL
    Community Champion
    let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WCirNUwjJzE1V0lECIgMjKyMTKyNDINPMQBUkFquDosbA2MrE0MrAAsg0NlKFaEJXA1JmaGVkbGVoBGQaGmEzB6rMGKTM2BKkzFJVKTYWAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Column1 = _t, Column2 = _t, Column3 = _t, Column4 = _t, Column5 = _t]),
        Custom1 = Table.CombineColumns(Source, List.Skip(Table.ColumnNames(Source)), each List.Select(_, each Text.Contains(_, ":")){0}, "Duration")
    in
        Custom1