课程
您是否曾在将数据导入 Excel 后,发现有奇怪的隐藏字符扰乱了您的工作?这些不可打印字符会导致格式问题,甚至破坏计算结果。
您可以使用 CLEAN() 函数删除这些不需要的字符。本文将带您了解 CLEAN() 函数、其适用场景以及它如何让您的工作更轻松。
快速解答:Excel 的 CLEAN() 函数
以下是使用 CLEAN 函数的方法
-
键入
=CLEAN(。 -
输入要清理的文本或单元格引用。
-
用
)结束函数。 -
按下 Enter。
=CLEAN(text)
text 可以是您想清理的任意字符串。
=CLEAN(A1)
A1 可以替换为其他单元格引用。
CLEAN() 函数的示例
让我们更详细地了解如何使用 CLEAN() 函数。这次我会配上一些截图。
这里,我在单元格 A2 中有包含一些不需要字符的数据。因此,我在单元格 B2 中输入以下公式以清理文本:
=CLEAN(A2)

在单个单元格中使用 CLEAN() 函数。作者供图。
除了清理单个单元格外,我们还可以使用 CLEAN() 函数同时清理多个单元格。您只需在相应单元格中写好公式后,将单元格角落处的小绿方块拖到最后一行。这样,公式就会应用到整个数据集,几秒钟内您就能得到整洁的数据。

使用 CLEAN() 函数清理多个单元格。作者供图。
我发现 CLEAN() 函数在从数据库或网页等外部来源导入数据后尤其有用。这是因为导入数据时,可能会带入 ASCII 码为 0–31 的不可打印字符。尽管我们看不见它们,但它们会干扰计算或让数据看起来很奇怪。
Excel 的 CLEAN() 函数可以删除这些不需要的字符。它甚至能清理不必要的换行符和其他可能引起格式问题的隐藏字符。因此,即使您没有看到明显的问题,有时使用 CLEAN() 也会有所帮助。
Excel 中的 CLEAN() 与 TRIM()
如果您学习过我们的课程,例如 Excel Fundamentals,您可能也熟悉另一个常见的 Excel 函数,即 TRIM() 函数。
虽然 CLEAN() 和 TRIM() 都用于整理文本,但它们的作用不同。CLEAN() 删除不可打印字符(ASCII 0–31),而 TRIM() 删除单词前后或单词之间多余的空格(ASCII 32)(但会保留单词之间的单个空格)。
换句话说,我们可以用 CLEAN() 来清理具有隐藏格式问题的数据;如果数据的空格不一致,则可以用 TRIM() 来修复。
稍后我会演示如何将 CLEAN() 与 TRIM() 结合使用,同时去除不可打印字符并清除多余空格。
将 CLEAN() 与其他 Excel 函数组合使用
现在您已了解 CLEAN() 函数,来看几个真实场景中的用法:
将 CLEAN() 与 TRIM() 组合
如上例所示,CLEAN() 并没有去除文本之间奇怪的空格。为了解决这个问题,我将它包在 TRIM() 函数中,您可以看到列 B 中的数据已经格式正确:
=TRIM(CLEAN(A2))

组合使用 TRIM() 与 CLEAN()。作者供图。
将 CLEAN() 与 SUBSTITUTE() 搭配使用
除了前 32 个 ASCII 字符外,还有一些不可打印的Unicode 字符,单独使用 CLEAN() 无法处理。但如果将 SUBSTITUTE() 与 CLEAN() 结合,就能轻松去除。让我们通过一个示例来理解:
我在单元格 A2 中有一段随机文本,文本左侧存在空格问题。但当我尝试用 TRIM() 去除时,并未成功。这意味着它看起来像空格,实际上不是——而是一个特殊字符。在这种情况下,先使用以下公式确定其字符代码:
=CODE(LEFT(A2,1))
这会返回字符代码,此处为 160。 您可以用以下公式将其去除:
=SUBSTITUTE(CLEAN(A2),CHAR(160),"")
为了得到更整洁的文本,可将上述公式再包一层 TRIM()。
=TRIM(SUBSTITUTE(CLEAN(A2),CHAR(160),""))

使用 CLEAN() 与 SUBSTITUTE() 清理单元格。作者供图。
将 CLEAN() 与 REPLACE() 搭配使用
如果我们希望用其他分隔符替换不可打印字符,可以将 CLEAN() 与 REPLACE() 组合使用。Excel 中的 REPLACE() 函数会根据指定的起始位置和长度,将文本的一部分替换为新文本。
=REPLACE(old_text, start_num, num_chars, new_text)
例如,如果我想将第 - 个位置的减号替换为空格,并移除所有不可打印字符,我会使用以下公式:
=REPLACE(CLEAN(A2), 4, 1, " ")
该公式会先清理原文本,再将位置为 - 4 的字符 替换为一个空格。

使用 REPLACE() 与 CLEAN() 清理文本。作者供图。
将 CLEAN() 与 REPT() 搭配使用
我们也可以将 REPT() 与 CLEAN() 结合来清理文本。REPT() 函数会按指定次数重复文本。
=REPT(text, number_of_times)
例如,我对数据集应用以下公式:
=TRIM(CLEAN(SUBSTITUTE(A2, " ", REPT(" ", 2))))
这里,SUBSTITUTE() 使用 REPT(" ", 2) 将每个单个空格替换为两个空格,使空格更一致。然后 CLEAN() 去除隐藏的不可打印字符,TRIM() 删除多余空格,仅保留单词之间的一个空格。

使用 REPT() 与 CLEAN() 清理文本。作者供图。
如您所见,CLEAN() 在许多场景中都能派上用场,并且与多种函数配合良好。
需要注意的几点
虽然 CLEAN() 和 SUBSTITUTE() 在删除不需要字符方面非常有用,但如果不留心,有时也可能误删重要内容。例如:
- 意外数据丢失: 避免使用范围过广的公式。如果将所有空格都替换为空,单词会连在一起。而如果删除所有特殊字符,公式可能会把电话号码中的连字符或价格中的小数点也删掉。因此,在应用任何函数之前,请先检查公式是否如预期工作。
- 先在小样本测试: 为安全起见,我总是先在一个小数据集上测试公式。不要一次性对成千上万行应用,先在少量数据上试一试并确认效果。如果一切正常,再应用到整个数据集。
结语
CLEAN() 函数可以快速通过删除不可打印字符来清理文本数据。单独使用时,它能确保数据干净、结构清晰;与 TRIM() 搭配时,还能去除不必要的空格,提升可读性。
如果您想学习更多 Excel 技巧,我们有一些优秀课程可供选择。先从 Excel Fundamentals 技能路径打好基础,然后继续学习 Data Analysis in Excel 和 Data Preparation in Excel 课程以进一步提升技能。
我是内容策略专家,热衷于将复杂主题化繁为简。我曾帮助 Splunk、Hackernoon 和 Tiiny Host 等公司为其受众打造兼具吸引力与信息量的内容。
常见问题
如何检查文本是否干净,或是否包含不可打印字符?
要检查是否存在不可打印字符,请使用以下公式:
=IF((LEN(C3) - LEN(CLEAN(C3))) > 0, "Non-printable characters", "Clean text")
这将告诉您哪个单元格包含不可打印字符,哪个是干净文本。
我能从数字中去除不可打印字符吗?
可以。请使用以下公式,并将 C3 替换为您需要的单元格引用:
=VALUE(CLEAN(C3))
这会将数据转换回数字。
