How to extract special characters from a string in excel

How to extract special characters from a string in excel

We know that TRIM and CLEAN Excel functions are used to clean up unprintable characters and extra spaces from strings but they don't help much in identifying strings containing any special character like @ or ! etc. In such cases we use UDFs.

So if you want to know if a string contains any special characters, you will not find any Excel formula or function to do so. We can find the special characters that are on the keyboard by manually typing but you can't know if there are symbols in the string or not.

Finding any special characters can be very important for data cleaning purposes. And in some cases, it must be done. So how do we do this in Excel? How can we know if a string contains any special characters? Well, we can use UDF to do so. 

The below formula will return TRUE if any cell contains any characters other than 1 to 0 and A to Z (in both cases). If it does not find any special characters it will return FALSE.

Generic Formula

=ContainsSpecialCharacters(string)

String: The string that you want to check for special characters.

For this formula to work, you will need to put the code below in the module of your workbook.

So open Excel. Press ALT+F11 to open VBE. Insert a module from the Insert menu. Copy the code below and paste it into the module.

Function ContainsSpecialCharacters(str As String) As Boolean
For I = 1 To Len(str)
 ch = Mid(str, I, 1)
 Select Case ch
  Case "0" To "9", "A" To "Z", "a" To "z", " "
   ContainsSpecialCharacters = False
  Case Else
   ContainsSpecialCharacters = True
  Exit For
 End Select
Next
End Function

How to extract special characters from a string in excel

Now the function is ready to be used.
Go to the worksheet in the workbook that contains the strings that you want to check.

How to extract special characters from a string in excel

Write the below formula in cell C2:

=ContainsSpecialCharacters(B13)

How to extract special characters from a string in excel

It returns TRUE for the first string since it contains a special character. When you copy the formula down it shows FALSE for B14 string and so on. 

But strangely it shows TRUE for the last string "Exceltip.com". It is because it contains a dot (.). But why so? Let's examine the code to understand.

How does the function work?

We are iterating through all the characters of the string using the For loop and mid function of VBA. The Mid function extracts one character at a time from string and stores it into ch variable.

For I = 1 To Len(str)
 ch = Mid(str, I, 1)

Now the main part comes. We use the select case statement to check what the ch variable contains.

We tell VBA to check if ch contains any of the defined values. I have defined 0 to 9, A to Z, a to z and " " (space). If c
h contains any of these, we set it's value to False.

Select Case ch
  Case "0" To "9", "A" To "Z", "a" To "z", " "
   ContainsSpecialCharacters = False

You can see that we don't have a dot (.) on the list and this is why we get TRUE for the string that contains dot. You can add any character to the list to be exempt from the formula.

If ch contains any character other than the listed characters, we set the function's result to True and end the loop right there.

Case Else
   ContainsSpecialCharacters = True
Exit For

So yeah this how it works. But if you want to clean special characters, you will need to make some changes in the function.

How to Clean Special Characters From Strings in Excel?

To clean special characters from a string in Excel, I have created another custom function in VBA. The syntax of the function is:

=CleanSpecialCharacters(string)

This function returns a cleaned version of the string passed into it. The new string will not contain any of the special characters. 

The code of this function goes like this:

Function CleanSpecialCharacters(str As String)
  Dim nstr As String
  nstr = str
  For I = 1 To Len(str)
    ch = Mid(str, I, 1)
    Select Case ch
      Case "0" To "9", "A" To "Z", "a" To "z", " "
       'Do nothing
      Case Else
       nstr = Replace(nstr, ch, "")
    End Select
  Next
    CleanSpecialCharacters = nstr
End Function

Copy this in the same module you copied in the above code.

When you use this formula on the strings this is how the results will be:

How to extract special characters from a string in excel

You can see every special character is removed from the string including the dot.

How does it work?

It works the same as the above function. The only difference is this function replaces every special character with a null character. Forms a new string and returns this string.

Select Case ch
      Case "0" To "9", "A" To "Z", "a" To "z", " "
       'ContainsSpecialCharacters = False
      Case Else
       nstr = Replace(nstr, ch, "")
     End Select

If you want to exempt any character from getting cleaned, you can add it to the list in the code. Excel will pardon that special character.

So yeah guys, this is how you can find and replace special characters from a string in Excel. I hope this was explanatory enough and helpful. If it doesn't help you in solving your problem, let us know in the comments section below.

Related Articles:

How to Use TRIM function in Excel: The TRIM function is used to trim strings and clean any trailing or leading spaces from string. This helps us in the cleaning process of data a lot.

How to use the CLEAN function in Excel: Clean function is used to clean up unprintable characters from the string. This function is mostly used with the TRIM function to clean up imported foreign data.

Replace text from end of a string starting from variable position: To replace text from the end of the string, we use the REPLACE function. The REPLACE function uses the position of text in the string to replace it.

How to Check if a string contains one of many texts in Excel: To find check if a string contains any of multiple text, we use this formula. We use the SUM function to sum up all the matches and then perform a logic to check if the string contains any of the multiple strings.

Count Cells that contain specific text: A simple COUNTIF function will do the magic. To count the number of multiple cells that contain a given string we use the wildcard operator with the COUNTIF function.

Excel REPLACE vs SUBSTITUTE function: The REPLACE and SUBSTITUTE functions are the most misunderstood functions. To find and replace a given text we use the SUBSTITUTE function. Where REPLACE is used to replace a number of characters in string…

Popular Articles:

50 Excel Shortcuts to Increase Your Productivity | Get faster at your task. These 50 shortcuts will make you work even faster on Excel.

How to use Excel VLOOKUP Function| This is one of the most used and popular functions of excel that is used to lookup value from different ranges and sheets. 

How to use the Excel COUNTIF Function| Count values with conditions using this amazing function. You don't need to filter your data to count specific values. Countif function is essential to prepare your dashboard.

How to Use SUMIF Function in Excel | This is another dashboard essential function. This helps you sum up values on specific conditions.

How do you find special characters in a string?

Follow the steps below to solve the problem:.
Traverse the string and for each character, check if its ASCII value lies in the ranges [32, 47], [58, 64], [91, 96] or [123, 126]. If found to be true, it is a special character..
Print Yes if all characters lie in one of the aforementioned ranges. Otherwise, print No..