# Untrimmable Spaces – Excel Formula

Posted on January 12th, 2017 in Excel Howtos , Learn Excel - 15 comments

So how was your Christmas / New Year break? We had a quiet Christmas. Then we hiked a few mountains and camped in bush for few days. New Year was quiet too (as most of the family & friends are in India, while we are in NZ). As usual, we cooked and ate delicious food, had a few drinks and spent time playing cards, building stuff with Lego and drawing silly portraits of each other. I even squeezed in a bit of cycling.

Let’s talk about the untrimmable spaces.

We all know that TRIM() removes extra spaces from the beginning, ending and middle of a text.

So for example, if A1 has ” something and    one   more    ”

TRIM(A1)

will give “something and one more”

We can use CLEAN() function to remove non-printable characters (like the ASCII codes 0 to 31).  Of course, SPACE is technically a printable character, so CLEAN() won’t remove spaces.

### The untrimmable spaces…?

The other day Sreekanth emailed me a sample of data and asked, “how do I remove the spaces in this list and convert them to numbers?”

Naturally I tried to TRIM().

But the data won’t budge. See below.

Hmm, let’s investigate why.

By using CODE(LEFT(B4,1)), we can check the code for the very first character in the value ”  4,124,500.00 ”

It is 160.

Hmm, 160, where have I met you before?

Poking in the Insert > Symbol tells us that 160 is the no break space. What an appropriate name that is.

In fact no break space is HTML character &nbsp; ie spaces printed on a web page. (Just to be clear not every space on a web page is char 160, but sometimes you have &nbsp; instead of SPACE.)

### So how to remove the no break spaces?

Simple, we use SUBSTITUTE().

The formula =SUBSTITUTE(B4,CHAR(160),””) removes all the CHAR(160)s from B4.

But we want the number…

We can add one extra step to the above SUBSTITUTE() formula to convert text in B4 to number.

The below formula does the trick.

=SUBSTITUTE(SUBSTITUTE(B4,CHAR(160),””),”-“,””)+0

It replaces all CHAR(160)s and -s with blanks and then adds 0 to the resulting text thus forcing Excel to convert text to number. Bingo.

So there you go. For every byte of dirty data that sneaks in to Excel, there are eight ways to fight it out, at least.

If all this space business sounds like rocket science, then check out the example workbook to understand the formulas better.

### How do you remove untrimmable spaces?

If it is a one time job, I usually rely on Find Replace to get rid of any symbols, characters or phrases. But if I have lots of data or changing data, I use SUBSTITUTE, TRIM, CLEAN.

 Formula Forensics 042: Reverse Text – A Formulaic Solution Check for two out of three conditions (Homework)
 Written by Chandoo Tags: cleanup data, downloads, Learn Excel, Microsoft Excel Formulas, text processing, trim Home: Chandoo.org Main Page ? Doubt: Ask an Excel Question

### 15 Responses to “Untrimmable Spaces – Excel Formula”

1. MF says:

Hi Chandoo,
First of all, HAPPY NEW YEAR!!! Wish you and your family another fruitful year ahead.

To answer your question: Power Query is the best way to trim. 🙂

Btw, if Power Query is not available, then formula would absolutely do... but did you forget to mention also Char 32?

One more question: Is the trailing minus meant to be a negative number? Maybe only the sender knows... 🙂

Cheers,

• Marco says:

I just see your PQ way, it is amazing, I think it is the most simple way.
No idea how it did it?

2. Duncan Williamson says:

I know these spaces can be a real pain but these days I advise Excel users to learn and use Flash Fill and that will learn what to do pretty quickly.

3. David Hager says:

Highlight range to be cleaned. Then, in Replace, hold down the Alt key and type 0160. Replace with nothing.

4. Steve Jones says:

I accomplished this by writing a macro to go through all the possible unprintable characters. Looped through the range.

• Hui... says:

@Steve

Brute force works just as well, its just slower

5. Ramnath D says:

I use a different method here. First, I will copy the data from Excel and paste it in a notepad. In Notepad, I will do a Find Blanks (Space " ") and Replace (Empty) with nothing.

Then you can copy the data from Notepad and paste it back to Excel which will be a perfect number as you desire.

But Thanks for the formula. Its probably the 2nd out of 8 tricks as Chandoo mentioned. Waiting for the rest among 8 from other users 🙂

• Brigitte Calahate says:

Hi....

You don't always need notepad for that. I use the Find/Replace is Excel works just fine.

6. Andrew says:

I don't understand the x's. Why weren't they removed in the formula? Or are they part of some sort of numeric formatting that I'm not familiar with? I saw how you handled the non-breaking spaces and the dashes, but am confused about what role the x's played in all this.

Thanks!

• NARAYAN says:

Hi Andrew ,

The xs have been used solely to demarcate the actual data text ; thus , without the x in place at the end of text , as in :

x 4,124,500.00 x

it would be impossible to know that there are unwanted trailing characters , in this case , after the last 0.

These xs are not part of the original data text , nor are they used in the formulae ; they are put in only so that readers can visualize the individual items of data as they are in practice. Think of them as imaginary delimiters.

• Andrew Patceg says:

Oh, that makes sense! Thank you for the explanation. I had a feeling it was something along those lines.

7. Mucio says:

You can type this character using the Keys Alt+0160.
Very useful to replace this Character using Find and Select resource.

8. Neva says:

For many years, my jobs have included ETL tasks and I built this macro to help long, long ago. I tweak it every now and again. Many co-workers, past and present, have it wired to a button on their toolbar.

Sub Clean_and_Trim()
'CAUTION: Strips leading zeroes -- do not use on zipcodes, etc.

If Application.Calculation = xlCalculationAutomatic Then
Application.Calculation = xlCalculationManual
Revert = 1
ElseIf Application.Calculation = xlCalculationManual Then
Revert = 0
End If

For Each Cell In Selection
For x = Len(Cell.Value) To 1 Step -1
If Asc(Mid(Cell.Value, x, 1)) = 160 Then
Cell.Replace What:=Chr(160), Replacement:=" ", LookAt:=xlPart, MatchCase:=True
End If
If Asc(Mid(Cell.Value, x, 1)) = 32 Then
Cell.Replace What:=Chr(32), Replacement:=" ", LookAt:=xlPart, MatchCase:=True
End If
Next x
If Cell.Value "" Then
Cell.Value = Application.Clean(Application.Trim(Cell.Value))
End If
Next

If Revert = 1 Then
Application.Calculation = xlCalculationAutomatic
ElseIf Revert = 0 Then
Application.Calculation = xlCalculationManual
End If

End Sub

9. Brigitte Calahate says:

This is awesome! What if you have several characters you need to have removed? What would be the easiest way as I can imagine there are several ways.?

# - 35
\$ - 36
- 62
/ - 47
, - 44
. - 46
" - 34
: - 58

10. Roby says:

This is typical case of a Fitbit data export to Csv file. Each number has CHAR160 as thousand separator.. how smart Fitbit, thank you 😉

By the way, i prefer to copy the character, and use find and replace.

 Formula Forensics 042: Reverse Text – A Formulaic Solution Check for two out of three conditions (Homework)