# Untrimmable Spaces – Excel Formula

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 ***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 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.*

### Download Example Workbook

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.

**What about you? **How do you remove untrimmable spaces? Please share your tips in the comments.

### Leave a Reply

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

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

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,

I just see your PQ way, it is amazing, I think it is the most simple way.

No idea how it did it?

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.

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

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

@Steve

Brute force works just as well, its just slower

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 🙂

Hi....

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

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!

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.

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

You can type this character using the Keys Alt+0160.

Very useful to replace this Character using Find and Select resource.

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

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

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.