cancel
Showing results for 
Search instead for 
Did you mean: 
Reply
BusinessAnalyst Regular Visitor
Regular Visitor

Can't remove invisible characters

Hi everyone,

 

I received those data from SQL server. They look normal in SQL but when importing to Power BI, some of them contain invisible characters that I can't remove them. I have tried to trim, substitute, remove white space but they couldn't help. 

 

My wish is to extract only number from those strings.

 

 

I appreciate very much if you can solve this problem.

 

Thank you very much!

Regards,

Cindy

Sample

2 ACCEPTED SOLUTIONS

Accepted Solutions
Super User
Super User

Re: Can't remove invisible characters

Based on an export from your report data and some investigation, I noticed that your text contains characters:

8236 - large, ocean-going vessel

8237 - left to right override

 

When removing those, you're fine to proceed. Code from the formula bar, with data in Column1 resulting in an additional column with numeric data:

 

= Table.AddColumn(#"Changed Type", "NumericData", each Number.From(Text.Trim([Column1],{Character.FromNumber(8236),Character.FromNumber(8237)})),Int64.Type)
Specializing in Power Query Formula Language (M)
Super User
Super User

Re: Can't remove invisible characters

To my limited DAX knowledge it is not possible in DAX.

The SUBSTITUE function is close, but there is no function in DAX to convert unicodes to characters and I didn't succeed in copy/paste the special characters into the SUBSTITUTE function.

Again, my DAX knowledge is limited.

Specializing in Power Query Formula Language (M)
10 REPLIES 10
Super User
Super User

Re: Can't remove invisible characters

@BusinessAnalyst Do you have a sample? Have you tried to change the data type of the column to Whole Number, or decimal? This may remove any hidden character, or identify the problem values.

Near SE WI? Join our PUG MSBIWI
blopez11 Established Member
Established Member

Re: Can't remove invisible characters

Did you try "Clean" as well?  Found in query editor, "Format" dropdown in the "Text Column" section

Just select the column, and go to the Transform tab

BusinessAnalyst Regular Visitor
Regular Visitor

Re: Can't remove invisible characters

Hi : Because there are hidden characters, I cannot transform them into either decimal or whole number. My sample is under my name in the first post
Super User
Super User

Re: Can't remove invisible characters

@BusinessAnalyst

 

Can you share the CSV.?




Lima - Peru
Did I answer your question? Mark my post as a solution!

Proud to be a Datanaut!




Super User
Super User

Re: Can't remove invisible characters

Based on an export from your report data and some investigation, I noticed that your text contains characters:

8236 - large, ocean-going vessel

8237 - left to right override

 

When removing those, you're fine to proceed. Code from the formula bar, with data in Column1 resulting in an additional column with numeric data:

 

= Table.AddColumn(#"Changed Type", "NumericData", each Number.From(Text.Trim([Column1],{Character.FromNumber(8236),Character.FromNumber(8237)})),Int64.Type)
Specializing in Power Query Formula Language (M)
BusinessAnalyst Regular Visitor
Regular Visitor

Re: Can't remove invisible characters

Great thanks for your contribution. I'd like to ask is there any way to perform it using DAX expressions?

 

Merry Christmas and happy new year!

 

 

Super User
Super User

Re: Can't remove invisible characters

To my limited DAX knowledge it is not possible in DAX.

The SUBSTITUE function is close, but there is no function in DAX to convert unicodes to characters and I didn't succeed in copy/paste the special characters into the SUBSTITUTE function.

Again, my DAX knowledge is limited.

Specializing in Power Query Formula Language (M)
Community Support Team
Community Support Team

Re: Can't remove invisible characters

Hi @BusinessAnalyst,

 

You can try to use below formula to remove the other characters:

 

Formula:

 

Table.AddColumn(#"Promoted Headers", "Custom", each Text.Combine(List.RemoveNulls(List.Transform(Text.ToList([Text]), each if Value.Is(Value.FromText(_), type number) or _="." then _ else null ))))

 

Capture.PNG

 

 

Full query:

 

let
    Source = Excel.Workbook(File.Contents("C:\Users\xxxxx\Desktop\spilttext.xlsx"), null, true),
    Sheet1_Sheet = Source{[Item="Sheet1",Kind="Sheet"]}[Data],
    #"Changed Type" = Table.TransformColumnTypes(Sheet1_Sheet,{{"Column1", type text}}),
    #"Promoted Headers" = Table.PromoteHeaders(#"Changed Type"),
    #"Added Custom" = Table.AddColumn(#"Promoted Headers", "Custom", each Text.Combine(List.RemoveNulls(List.Transform(Text.ToList([Text]), each if Value.Is(Value.FromText(_), type number) or _="." then _ else null ))))
in
    #"Added Custom"

 

 

 

Notice: Above formula only works on simple string, if your string is too complex, I'd like to suggest you use programming language and "Regular Expression" to replace the specific characters.

 

Regards,

Xiaoxin Sheng

Community Support Team _ Xiaoxin Sheng
If this post helps, then please consider Accept it as the solution to help the other members find it more quickly.



For learning resources/Release notes, please visit: | |
Aaron_Borns Frequent Visitor
Frequent Visitor

Re: Can't remove invisible characters

When "Applying Query Changes" to a DirectQuery, I am experiencing something related to this: an error that says Failed to generate XMLA request. The changes cannot be submitted to the server. Error returned : '", hexadecimal value 0x1F, is an invalid character.'.

 

The 0x1F character is also known as US or Unit Separator. I could not find any US chars when pasting the M-code or datatable into Notepad++. What should I do?