Forum Discussion

Anonymous's avatar
Anonymous
Not applicable
2 years ago
Solved

How to convert text to Title Case/Proper Case/CamelCase

For example, how to convert following column values:

 

Column1

PP FABRICS - PP Fabrics

PP/HDCE FABRICS 

CONTAINER 

 

into:

 

Column1

PP Fabrics

PP/HDCE Fabrics

Container

 

Thanks

 

  • Hi, this will work with sample data, but I'm affraid that it won't solve your issue whit other texts

     

    Result

     

    Add this as custom column. Replace Source with your previous_step reference and [Column1] with your column with such text

    = Table.AddColumn(Source, "Transformed", each 
            [ a = List.RemoveMatchingItems(Text.SplitAny([Column1], " -"), {" ", ""}),
              b = List.Distinct(List.Transform(a, (x)=> if Text.Contains(x, "/") or Text.Length(x) < 3 then x else Text.Proper(x))),
              c = Text.Combine(b, " ")
            ][c], type text)

     

    Whole Code

    let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WCghQcHN0CvJ0DlbQVQBxEpOKMpOLlWJ1QHL6Hi7OrnAFYEFnf78QR08/1yAgNxYA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Column1 = _t]),
        Ad_Transformed = Table.AddColumn(Source, "Transformed", each 
            [ a = List.RemoveMatchingItems(Text.SplitAny([Column1], " -"), {" ", ""}),
              b = List.Distinct(List.Transform(a, (x)=> if Text.Contains(x, "/") or Text.Length(x) < 3 then x else Text.Proper(x))),
              c = Text.Combine(b, " ")
            ][c], type text)
    in
        Ad_Transformed

     

1 Reply

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

    Hi, this will work with sample data, but I'm affraid that it won't solve your issue whit other texts

     

    Result

     

    Add this as custom column. Replace Source with your previous_step reference and [Column1] with your column with such text

    = Table.AddColumn(Source, "Transformed", each 
            [ a = List.RemoveMatchingItems(Text.SplitAny([Column1], " -"), {" ", ""}),
              b = List.Distinct(List.Transform(a, (x)=> if Text.Contains(x, "/") or Text.Length(x) < 3 then x else Text.Proper(x))),
              c = Text.Combine(b, " ")
            ][c], type text)

     

    Whole Code

    let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WCghQcHN0CvJ0DlbQVQBxEpOKMpOLlWJ1QHL6Hi7OrnAFYEFnf78QR08/1yAgNxYA", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type nullable text) meta [Serialized.Text = true]) in type table [Column1 = _t]),
        Ad_Transformed = Table.AddColumn(Source, "Transformed", each 
            [ a = List.RemoveMatchingItems(Text.SplitAny([Column1], " -"), {" ", ""}),
              b = List.Distinct(List.Transform(a, (x)=> if Text.Contains(x, "/") or Text.Length(x) < 3 then x else Text.Proper(x))),
              c = Text.Combine(b, " ")
            ][c], type text)
    in
        Ad_Transformed