image

我们知道`link:/ excel-text-formulas-excel-trim-function [TRIM]`

和`link:/ excel-text-formulas如何在Excel中使用干净的功能[CLEAN]`

Excel函数用于清除字符串中无法打印的字符和多余的空格,但是它们在识别包含任何特殊字符(如@或!)的字符串中并没有太大帮助。等等。在这种情况下,我们使用UDF。

因此,如果您想知道字符串是否包含任何特殊字符,则将找不到任何Excel公式或函数。我们可以通过手动键入找到键盘上的特殊字符,但是您不知道字符串中是否包含符号。

查找任何特殊字符对于数据清理非常重要。在某些情况下,必须这样做。那么我们如何在Excel中做到这一点呢?我们如何知道一个字符串是否包含任何特殊字符?

好吧,我们可以使用UDF做到这一点。如果任何单元格包含从1到0和A到Z的字符(在两种情况下),以下公式将返回TRUE。如果找不到任何特殊字符,它将返回FALSE。

通用公式

=ContainsSpecialCharacters(string)

字符串:要检查特殊字符的字符串。

为了使该公式生效,您需要将以下代码放入工作簿的模块中。

因此,打开Excel。按ALT + F11打开VBE。从“插入”菜单插入模块。复制以下代码并将其粘贴到模块中。

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

image

现在可以使用该功能了。

转到工作簿中包含要检查的字符串的工作表。

image

在单元格C2中编写以下公式:

=ContainsSpecialCharacters(B13)

image

由于第一个字符串包含特殊字符,因此它返回TRUE。当您向下复制公式时,它对B14字符串显示FALSE,依此类推。但是奇怪的是,最后一个字符串“ Exceltip.com”显示为TRUE。这是因为它包含一个点(。)。但是为什么呢?让我们检查一下要理解的代码。

该函数如何工作?

我们使用`link:/ vba-for-loops-with-7-examples [For loop]`

遍历字符串的所有字符。 VBA的中端功能。 Mid函数一次从字符串中提取一个字符并将其存储到ch变量中。

For I = 1 To Len(str)

ch = Mid(str, I, 1)

现在主要部分来了。我们使用select case语句检查ch变量包含的内容。

我们告诉VBA检查ch是否包含任何定义的值。我定义了0到9,A到Z,a到z和“”(空格)。如果c h包含其中任何一个,我们将其值设置为False。

Select Case ch

Case "0" To "9", "A" To "Z", "a" To "z", " "

ContainsSpecialCharacters = False

您会看到列表上没有点(。),这就是为什么对于包含点的字符串获得TRUE的原因。您可以将任何字符添加到列表中以免除公式。

如果ch包含列出的字符以外的任何其他字符,则将函数的结果设置为True,并在此结束循环。

Case Else

ContainsSpecialCharacters = True

Exit For

是的,这是如何运作的。但是,如果要清除特殊字符,则需要在函数中进行一些更改。

如何在Excel中从字符串中清除特殊字符?为了从Excel中的字符串中清除特殊字符,我在VBA中创建了另一个自定义函数。该函数的语法为:

=CleanSpecialCharacters(string)

此函数返回传递给它的字符串的纯净版本。

新字符串将不包含任何特殊字符。该函数的代码如下:

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

将其复制到与以上代码复制的模块相同的模块中。

在字符串上使用此公式时,结果将是:

image

您会看到从字符串中删除了每个特殊字符,包括点。

如何运作?

其功能与上述功能相同。唯一的区别是此函数将所有特殊字符替换为空字符。形成一个新字符串并返回此字符串。

Select Case ch

Case "0" To "9", "A" To "Z", "a" To "z", " "

'ContainsSpecialCharacters = False

Case Else

nstr = Replace(nstr, ch, "")

End Select

如果要免除任何字符的清理,可以将其添加到代码中的列表中。 Excel将原谅该特殊字符。

好的,这是您可以在Excel中从字符串中查找和替换特殊字符的方法。我希望这是足够的解释和帮助。

如果它不能帮助您解决问题,请在下面的评论部分中告诉我们。

相关文章:

如何在Excel中使用TRIM函数:* TRIM函数用于修剪字符串并清除字符串中的尾随或前导空格。这对我们清理数据的过程有很大帮​​助。

如何在Excel中使用CLEAN函数:清理函数用于清理字符串中无法打印的字符。此功能通常与TRIM功能一起使用,以清理导入的外部数据。

[从可变位置开始,从字符串末尾替换文本]:*从结尾处替换文本字符串,我们使用REPLACE函数。

REPLACE函数使用字符串中文本的位置替换它。

link:/ excel-text-formulas-check-a-list-of-texts-in-string [如何检查字符串是否包含Excel中的多个文本之一]:*查找字符串是否包含以下任何内容多个文本,我们使用此公式。我们使用SUM函数汇总所有匹配项,然后执行逻辑检查字符串是否包含多个字符串中的任何一个。

`link:/ counting-count-cells-that-c​​ontain-specific-text [对包含特定文本的单元格进行计数]:*一个简单的COUNTIF函数将起到神奇的作用。为了计算包含给定字符串的多个单元格的数量,我们将通配符运算符与COUNTIF函数一起使用。

Excel REPLACE vs SUBSTITUTE function:** REPLACE和SUBSTITUTE函数是最容易被误解的函数。要查找和替换给定的文本,我们使用SUBSTITUTE函数。其中REPLACE用于替换字符串中的多个字符…

热门文章:

50 Excel快捷方式以提高生产率更快地完成任务。这50个快捷键将使您在Excel上的工作速度更快。

link:/ vlookup-functions / formulas-and-functions-introduction- [如何使用Excel VLOOKUP函数]|这是excel中最常用和最受欢迎的功能之一,用于从不同范围和工作表中查找值。 link:/ tips-countif-in-microsoft-excel [如何使用]

link:/ vlookup函数的公式和函数介绍[Excel]

link:/ tips-countif-in-microsoft-excel [COUNTIF函数]|使用此惊人的功能对条件进行计数。

您无需过滤数据即可计算特定值。 Countif功能对于准备仪表板至关重要。

如何在Excel中使用SUMIF函数这是仪表板的另一个重要功能。这可以帮助您汇总特定条件下的值。