Forum Discussion

YasserKhalill's avatar
YasserKhalill
New Member
7 years ago
Solved

Reverse strings in extracted column

Hello everyone

I am totally new Power BI Desktop. I have connected PDF to extract table and everything is OK but one of the columns extracted is in Arabic letters and mixed numbers and the Arabic strings appeared reversed. So I am trying to reverse the strings (letters only not the numbers)

 

example: 

10 مسا

should be

اسم 10

so the text would be reversed not the number

 

Please guide me step by step as I am newbie (I want to apply the reverse to the whole column)

  • Hi YasserKhalill ,

     

    Follow steps below to achieve your requirement .

     

    1.Split this column.

     

     

     

     

     

     

    2.Add column to reverse the string .

     

     

     

    3.Merge column to combine the number column and reversed string column.

     

     

    4.Remove the extra column.

     

    The M code works.

    Let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjRQuNl6Y/ON5UqxsQA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [Column1 = _t]),
        #"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type text}}),
        #"Split Column by Delimiter" = Table.SplitColumn(#"Changed Type", "Column1", Splitter.SplitTextByDelimiter(" ", QuoteStyle.Csv), {"Column1.1", "Column1.2"}),
        #"Changed Type1" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"Column1.1", Int64.Type}, {"Column1.2", type text}}),
        #"Added Custom" = Table.AddColumn(#"Changed Type1", "Custom", each Text.Reverse([Column1.2])),
        #"Merged Columns" = Table.CombineColumns(Table.TransformColumnTypes(#"Added Custom", {{"Column1.1", type text}}, "en-US"),{"Custom", "Column1.1"},Combiner.CombineTextByDelimiter("", QuoteStyle.None),"Merged"),
        #"Removed Columns" = Table.RemoveColumns(#"Merged Columns",{"Column1.2"})
    in
        #"Removed Columns"

    You can download my test pbix: https://qiuyunus-my.sharepoint.com/:u:/g/personal/pbipro_qiuyunus_onmicrosoft_com/EYQ6Zofxvn9KtidMbkwXv-kB-si6OPQaWa-D0qiJJ87M1g?e=EvNEvz .

     

    Best Regards,

    Amy

     

    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.

     

2 Replies

  • v-xicai's avatar
    v-xicai
    Community Support

    Hi YasserKhalill ,

     

    Follow steps below to achieve your requirement .

     

    1.Split this column.

     

     

     

     

     

     

    2.Add column to reverse the string .

     

     

     

    3.Merge column to combine the number column and reversed string column.

     

     

    4.Remove the extra column.

     

    The M code works.

    Let
        Source = Table.FromRows(Json.Document(Binary.Decompress(Binary.FromText("i45WMjRQuNl6Y/ON5UqxsQA=", BinaryEncoding.Base64), Compression.Deflate)), let _t = ((type text) meta [Serialized.Text = true]) in type table [Column1 = _t]),
        #"Changed Type" = Table.TransformColumnTypes(Source,{{"Column1", type text}}),
        #"Split Column by Delimiter" = Table.SplitColumn(#"Changed Type", "Column1", Splitter.SplitTextByDelimiter(" ", QuoteStyle.Csv), {"Column1.1", "Column1.2"}),
        #"Changed Type1" = Table.TransformColumnTypes(#"Split Column by Delimiter",{{"Column1.1", Int64.Type}, {"Column1.2", type text}}),
        #"Added Custom" = Table.AddColumn(#"Changed Type1", "Custom", each Text.Reverse([Column1.2])),
        #"Merged Columns" = Table.CombineColumns(Table.TransformColumnTypes(#"Added Custom", {{"Column1.1", type text}}, "en-US"),{"Custom", "Column1.1"},Combiner.CombineTextByDelimiter("", QuoteStyle.None),"Merged"),
        #"Removed Columns" = Table.RemoveColumns(#"Merged Columns",{"Column1.2"})
    in
        #"Removed Columns"

    You can download my test pbix: https://qiuyunus-my.sharepoint.com/:u:/g/personal/pbipro_qiuyunus_onmicrosoft_com/EYQ6Zofxvn9KtidMbkwXv-kB-si6OPQaWa-D0qiJJ87M1g?e=EvNEvz .

     

    Best Regards,

    Amy

     

    If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.