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  
  • dufoq3's avatar
    2 years ago

    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