Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
1 year ago
Solved

Delimiter issue

I have a table like this: Name  Date Type  A 7-Jan-25 10-Jan-25 25-Jan-25 25-Jan-25 bus B   car C   ship D   car   And expected output is:,how to do this in power qu...
  • dufoq3's avatar
    1 year ago

    Hi Anonymous, check this:

     

    Output

     

    let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WclTSUTLX9UrM0zUyjckzNIAzjUwxmUC1SaXFSrE60UpOQDYQJScWgbnOEG5xRmYBmO+CJB0LAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Name = _t, Date = _t, Type = _t]),
        ColumnsToList = Table.TransformColumns(Source, {}, each List.Select(Text.Split(_, "#(lf)"), (x)=> not List.Contains({"null", ""}, x)) ),
        ColNames = Table.ColumnNames(ColumnsToList),
        Records = List.Buffer(Table.ToRecords(ColumnsToList)),
        Lg = List.Generate(
            ()=> [ x = 0, rec = List.Transform(ColNames, (w)=> Record.FieldOrDefault(Records{x}, w){0}?) ],
            each [x] < List.Count(Records),
            each [ x = [x]+1, rec = List.Transform(ColNames, (w)=> Record.FieldOrDefault(Records{x}, w){0}? ?? Record.FieldOrDefault(Records{0}, w){x}? ) ],
            each [rec]
    ),
        ToTable = Table.FromRows(Lg, ColNames)
    in
        ToTable

     

  • Ahmedx's avatar
    1 year ago

    pls try this

    let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WclTSUTLX9UrM0zUyjckzNIAzjUwxmUC1SaXFSrE60UpOQDYQJScWgbnOEG5xRmYBmO+CJB0LAA==", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Name = _t, Date = _t, Type = _t]),
        Replace = Table.ReplaceValue(Source, (x)=>x,(x)=>x, (x,y,z)=>Text.Split(Source[Date]{0}, "#(lf)")  ,{"Date"}),
        Index = Table.AddIndexColumn(Replace, "Index", 0, 1, Int64.Type),
        AddColumn = Table.AddColumn(Index, "tmp", each [Date]{[Index]}),
       RemoveCol= Table.RemoveColumns(AddColumn,{"Date", "Index"})
    in
        RemoveCol