跳至内容
Excel
数据分析

Excel 中的 CLEAN() 函数:去除不可打印字符的最佳方法

Excel 的 CLEAN() 函数通过去除不可打印字符来清理文本。与 TRIM()、SUBSTITUTE()、REPLACE() 等函数搭配使用,可让表格更加整洁。
Laiba Siddiqui's photo
Laiba Siddiqui
已更新 · 4分钟 阅读

使用 AI 探索

ChatGPTClaudePerplexity

创建您的免费账户

实践并学习路径你的进步。

使用 Google 继续
继续操作即表示您接受我们的《使用条款》和《隐私政策》,并同意您的数据存储在美国。

您是否曾在将数据导入 Excel 后,发现有奇怪的隐藏字符扰乱了您的工作?这些不可打印字符会导致格式问题,甚至破坏计算结果。  

您可以使用 CLEAN() 函数删除这些不需要的字符。本文将带您了解 CLEAN() 函数、其适用场景以及它如何让您的工作更轻松。

快速解答:Excel 的 CLEAN() 函数

以下是使用 CLEAN 函数的方法 

  • 键入 =CLEAN(。

  • 输入要清理的文本或单元格引用。

  • 用 ) 结束函数。

  • 按下 Enter。

=CLEAN(text)

text 可以是您想清理的任意字符串。

=CLEAN(A1)

A1 可以替换为其他单元格引用。

CLEAN() 函数的示例

让我们更详细地了解如何使用 CLEAN() 函数。这次我会配上一些截图。

这里,我在单元格 A2 中有包含一些不需要字符的数据。因此,我在单元格 B2 中输入以下公式以清理文本:

=CLEAN(A2)

在 Excel 中使用 CLEAN() 函数

在单个单元格中使用 CLEAN() 函数。作者供图。

除了清理单个单元格外,我们还可以使用 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))

在 Excel 中将 TRIM() 与 CLEAN() 组合使用以去除字符和多余空格

组合使用 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),""))

在 Excel 中使用 CLEAN() 和 SUBSTITUTE() 函数清理单元格

使用 CLEAN() 与 SUBSTITUTE() 清理单元格。作者供图。

将 CLEAN() 与 REPLACE() 搭配使用

如果我们希望用其他分隔符替换不可打印字符,可以将 CLEAN() 与 REPLACE() 组合使用。Excel 中的 REPLACE() 函数会根据指定的起始位置和长度,将文本的一部分替换为新文本。 

=REPLACE(old_text, start_num, num_chars, new_text)

例如,如果我想将第 -  个位置的减号替换为空格,并移除所有不可打印字符,我会使用以下公式:

=REPLACE(CLEAN(A2), 4, 1, " ")

该公式会先清理原文本,再将位置为 - 4 的字符 替换为一个空格。

在 Excel 中使用 CLEAN() 和 REPLACE() 清理文本

使用 REPLACE() 与 CLEAN() 清理文本。作者供图。

将 CLEAN() 与 REPT() 搭配使用

我们也可以将 REPT() 与 CLEAN() 结合来清理文本。REPT() 函数会按指定次数重复文本。 

=REPT(text, number_of_times)

例如,我对数据集应用以下公式: 

=TRIM(CLEAN(SUBSTITUTE(A2, " ", REPT(" ", 2))))

这里,SUBSTITUTE() 使用 REPT(" ", 2) 将每个单个空格替换为两个空格,使空格更一致。然后 CLEAN() 去除隐藏的不可打印字符,TRIM() 删除多余空格,仅保留单词之间的一个空格。

在 Excel 中使用 REPT() 与 CLEAN() 清理文本

使用 REPT() 与 CLEAN() 清理文本。作者供图。

如您所见,CLEAN() 在许多场景中都能派上用场,并且与多种函数配合良好。

需要注意的几点

虽然 CLEAN() 和 SUBSTITUTE() 在删除不需要字符方面非常有用,但如果不留心,有时也可能误删重要内容。例如: 

  • 意外数据丢失: 避免使用范围过广的公式。如果将所有空格都替换为空,单词会连在一起。而如果删除所有特殊字符,公式可能会把电话号码中的连字符或价格中的小数点也删掉。因此,在应用任何函数之前,请先检查公式是否如预期工作。 
  • 先在小样本测试: 为安全起见,我总是先在一个小数据集上测试公式。不要一次性对成千上万行应用,先在少量数据上试一试并确认效果。如果一切正常,再应用到整个数据集。

结语

CLEAN() 函数可以快速通过删除不可打印字符来清理文本数据。单独使用时,它能确保数据干净、结构清晰;与 TRIM() 搭配时,还能去除不必要的空格,提升可读性。

如果您想学习更多 Excel 技巧,我们有一些优秀课程可供选择。先从 Excel Fundamentals 技能路径打好基础,然后继续学习 Data Analysis in Excel 和 Data Preparation in Excel 课程以进一步提升技能。 


Laiba Siddiqui's photo
Author
Laiba Siddiqui
LinkedIn
Twitter

我是内容策略专家,热衷于将复杂主题化繁为简。我曾帮助 Splunk、Hackernoon 和 Tiiny Host 等公司为其受众打造兼具吸引力与信息量的内容。

常见问题

如何检查文本是否干净,或是否包含不可打印字符?

要检查是否存在不可打印字符,请使用以下公式:

=IF((LEN(C3) - LEN(CLEAN(C3))) > 0, "Non-printable characters", "Clean text")

这将告诉您哪个单元格包含不可打印字符,哪个是干净文本。

我能从数字中去除不可打印字符吗?

可以。请使用以下公式,并将 C3 替换为您需要的单元格引用:

=VALUE(CLEAN(C3))

这会将数据转换回数字。

主题
Excel
数据分析

在 DataCamp 学习 Excel

课程

Excel 入门

4 小时
276.8K
掌握 Excel 基础,学会使用这款电子表格工具开展有影响力的分析。
查看详情开始课程

创建您的免费账户

实践并学习路径你的进步。

使用 Google 继续
继续操作即表示您接受我们的《使用条款》和《隐私政策》,并同意您的数据存储在美国。
查看更多