如果你在 Excel 中有一组包含不需要字符、数字或符号的文本字符串,可能需要根据字符的位置或类型删除某些内容。无论是从左侧、右侧或中间裁剪字符,还是去除特定字符和数字,Excel 都提供了多种清理数据的方法。本教程将通过公式、自定义函数(UDF)以及内置功能,逐步演示如何轻松删除文本字符串中的不需要字符、单词和数字。
目录:
在 Excel 工作表中,从文本字符串的左侧、右侧或中间删除部分字符是我们经常会遇到的操作。本节将介绍一些快速简便的方法来帮助你完成这一任务。
如果你需要从一组文本字符串中删除前 n 个字符,可以参考以下方法。
通常,要删除文本字符串开头的字符,可以使用 REPLACE 函数,或者结合 RIGHT 和 LEN 函数。
REPLACE 函数删除前 N 个字符:
例如,要从单元格中删除前2 个字符,请使用以下公式,然后拖动填充柄将公式应用到其他单元格,如下图所示:
RIGHT 和 LEN 函数删除前 N 个字符:
要从单元格中删除前2 个字符,请应用以下公式:
你还可以通过创建自定义函数来删除单元格中的前 n 个字符。请按照以下步骤操作:
1. 按下“Alt + F11”组合键,打开“Microsoft Visual Basic for Applications”窗口。
2. 点击“插入”>“模块”,并将以下代码粘贴到模块窗口中。
VBA代码:从文本字符串中删除前 n 个字符
3. 返回工作表,在空白单元格中输入公式“=removefirstx(A4,2)”,然后向下拖动填充柄获取所需结果,如下图所示:
注意:在此公式中,“A4”为要删除字符的单元格;数字“2”表示要从文本字符串开头删除的字符数。
要从文本字符串的右侧删除指定数量的字符,也可以使用公式或自定义函数。
要从文本字符串中删除最后 n 个字符,可以结合 LEFT 和 LEN 函数创建公式。
LEFT 和 LEN 函数删除最后 N 个字符:
要从文本字符串末尾删除3 个字符,请使用此公式,然后拖动填充柄将公式应用到其他单元格,如下图所示:
自定义函数同样可以帮助你从一组单元格中删除最后 n 个字符。操作步骤如下:
1. 按下“Alt + F11”组合键,打开“Microsoft Visual Basic for Applications”窗口。
2. 点击“插入”>“模块”,并将以下代码粘贴到模块窗口中。
VBA代码:从文本字符串中删除最后 n 个字符
3. 返回工作表,在空白单元格中输入公式“=removelastx(A4,3)”,然后向下拖动填充柄获取所需结果,如下图所示:
注意:在此公式中,“A4”为要删除字符的单元格;数字“3”表示要从文本字符串末尾删除的字符数。
如果你觉得记忆各种公式太麻烦,想要从文本字符串的左侧、右侧或指定位置删除字符,Kutools for Excel 提供了强大的“删除某位置字符”功能。借助这个小工具,无需记忆任何公式,只需几步点击即可完成操作。
1.选择需要删除字符的单元格,然后点击“Kutools”>“文本”>“删除某位置字符”,如下图所示:
2. 在“删除某位置字符”对话框中,请按如下操作:
2.1 从单元格中删除前 n 个字符:
2.2 从单元格中删除最后 n 个字符:
2.3 从单元格指定位置删除 n 个字符:
如果你需要从文本字符串的某个特定位置删除指定数量的字符,例如,从字符串的第3 个字符开始删除3 个字符。
当你需要同时删除 Excel 文本字符串两端的部分字符时,可以结合 MID 和 LEN 函数创建公式来实现。
例如,你需要同时删除文本字符串前7 个字符和后5 个字符,请在空白单元格中输入以下公式:
注意:在此公式中,“A4”为要删除字符的单元格;数字“7”为要从左侧删除的字符数;数字“5”为要从右侧删除的字符数。
然后向下拖动填充柄应用此公式,即可得到如下图所示的结果:
当你将数据从其他地方导入 Excel 时,可能会有许多特殊或不需要的字符被粘贴到工作表中。要删除这些不需要的字符(如 #@$%^&、空格、数字、非数字字符、换行符等),本节将提供一些实用方法帮助你解决。
如果文本字符串中包含如 %^&*() 等特殊字符,可以通过以下三种方法删除这些字符。
通常,在 Excel 中可以嵌套多个 SUBSTITUTE 函数,将每个指定字符替换为空,通用语法如下:
现在,请将以下公式复制或输入到空白单元格中:
然后向下拖动填充柄,将公式应用到需要的单元格,所有指定的不需要字符会被一次性删除,如下图所示:
提示:如果需要删除更多字符,只需在公式中继续嵌套更多 SUBSTITUTE 函数即可。
上述嵌套 SUBSTITUTE 函数适用于要删除的特殊字符较少的情况。如果需要删除几十个字符,公式会变得很长且难以维护。此时,可以使用下面的自定义函数快速轻松完成任务。
1. 按下“Alt + F11”组合键,打开“Microsoft Visual Basic for Applications”窗口。
2. 点击“插入”>“模块”,并将以下代码粘贴到模块窗口中。
VBA代码:从文本字符串中删除多个特殊字符
3.关闭代码窗口,返回工作表,在空白单元格中输入公式“=RemoveUnwantedChars(A2, $D$2)”,然后向下拖动填充柄获取所需结果,如下图所示:
注意:在上述公式中,“A2”为要删除字符的单元格,“$D$2”包含你想要删除的特殊字符(可输入任意其他特殊字符)。
如果你已安装 Kutools for Excel,使用其“删除特定字符”功能,可以根据需要批量删除各种字符,如数字字符、字母字符、非打印字符等。
1.选择需要删除特殊字符的单元格区域,然后点击“Kutools”>“文本”>“删除特定字符”,如下图所示:
2. 在“删除特定字符”对话框中:
如果你有一组混合了数字、字母和特殊字符的文本字符串,现在只想删除所有数字并保留其他字符,本节将为你提供几种便捷方法。
在 Excel 中,可以通过嵌套 SUBSTITUTE 函数将所有数字替换为空,因此可以使用以下公式从单元格中删除所有数字:
然后向下拖动填充柄,将公式应用到需要的单元格,所有数字会被从文本字符串中删除,如下图所示:
如果你使用的是 Excel2019、2021 或365,新的 TEXTJOIN 函数同样可以帮助你从文本字符串中删除数字。
请将以下公式复制到空白单元格中,然后同时按下 Ctrl + Shift + Enter 键获取第一个结果:
然后将公式复制到下方其他需要应用的单元格,如下图所示:
注意:TEXTJOIN仅适用于 Excel2019、2021 和 Office365。
除了上述两种公式,还可以通过自定义函数实现,请按以下步骤操作:
1. 按下“Alt + F11”组合键,打开“Microsoft Visual Basic for Applications”窗口。
2. 点击“插入”>“模块”,并将以下代码粘贴到模块窗口中。
VBA代码:从文本字符串中删除数字
3.关闭并退出代码窗口,返回工作表,在空白单元格中输入公式“=RemoveNumbers(A2)”,然后向下拖动填充柄应用到需要的单元格,如下图所示:
如果你觉得公式太复杂,不妨试试 Kutools for Excel 的“删除特定字符”工具。通过这个便捷功能,只需几次点击即可完成操作。
1.选择需要删除数字的单元格区域,然后点击“Kutools”>“文本”>“删除特定字符”。
2. 在“删除特定字符”对话框中,请按如下操作:
如果你想从文本字符串中删除所有非数字字符,仅保留数字,本节将介绍几种在 Excel 中实现的方法。
如果你使用的是 Excel2016 或更早版本,需要应用较为复杂的公式来实现,请将以下公式复制或输入到空白单元格中:
然后将公式复制到下方其他需要应用的单元格,如下图所示:
注意:如果文本字符串中的数字以0 开头,0 会被省略。
上述公式对大多数用户来说可能较难理解。如果你使用的是 Excel2019、2021 或365,可以使用更简洁的公式。
请将以下公式复制或输入到空白单元格中,并同时按下“Ctrl + Shift + Enter”键获取第一个正确结果:
然后向下拖动填充柄应用到需要的单元格,即可得到如下图所示的结果:
注意:使用此公式时,前导0 会被保留,因为返回的是文本格式的数字。
当然,你也可以通过自定义函数实现更简洁的语法,操作如下:
1. 按下“Alt + F11”组合键,打开“Microsoft Visual Basic for Applications”窗口。
2. 点击“插入”>“模块”,并将以下代码粘贴到模块窗口中。
VBA代码:从文本字符串中删除非数字字符
3.关闭并退出代码窗口,返回工作表,在空白单元格中输入公式“=Removenonnumeric(A2)”,然后向下拖动填充柄应用到需要的单元格,仅数字会被提取出来,如下图所示:
要直接批量删除区域内的非数字字符,Kutools for Excel 的“删除特定字符”工具可以让你几步完成。
1.选择需要删除非数字字符的单元格区域,然后点击“Kutools”>“文本”>“删除特定字符”。
2. 在“删除特定字符”对话框中,请按如下操作:
有时你可能希望将文本字符串中的文本和数字分别提取到两个独立的列中,借助以下方法可以快速轻松完成。
使用以下自定义函数,可以一次性提取文本和数字,请按以下步骤操作:
1. 按下“Alt + F11”组合键,打开“Microsoft Visual Basic for Applications”窗口。
2. 点击“插入”>“模块”,并将以下代码粘贴到模块窗口中。
VBA代码:将文本字符串中的文本和数字分列
3.关闭并退出代码窗口,返回工作表,在空白单元格中输入公式“=SplitText(A2,FALSE)”,然后向下拖动填充柄应用到需要的单元格,即可提取所有文本,如下图所示:
4. 然后,在另一个单元格中输入公式“=SplitText(A2,TRUE)”,并向下拖动填充柄应用到需要的单元格,即可提取所有数字,如下图所示:
如果你安装了 Kutools for Excel,其“分割单元格”工具可以根据分隔符、指定宽度或文本与数字将单元格拆分为多列或多行。
1.选择需要拆分的单元格区域,然后点击“Kutools”>“合并与分割”>“分割单元格”,如下图所示:
2. 在“分割单元格”对话框中,在“类型”部分选择“数据分栏”选项,然后在“分隔依据”部分勾选“拆分为文本和数字”,如下图所示:
3. 点击“确定”按钮后,会弹出另一个“分割单元格”对话框,选择一个单元格作为输出文本和数字的位置,然后点击“确定”按钮。现在你可以看到所选单元格中的文本和数字已被一次性分为两列,如下演示所示:
换行符可以让你在 Excel 的同一个单元格中显示多行内容。有时从网站复制数据或手动用“Alt + Enter”分行时,会出现换行符或回车符。某些情况下,你可能希望删除换行符,使单元格内容显示为一行,如下图所示。这里将介绍几种在 Excel 中实现的方法。
在 Excel 中,可以使用“查找和替换”功能删除换行符,操作如下:
1.选择需要删除换行符的数据区域。
2. 点击“开始”>“查找与选择”>“替换”(或按“Ctrl + H”),进入“查找和替换”对话框,如下图所示:
3. 在弹出的“查找和替换”对话框中,请按如下操作:
4. 点击“全部替换”按钮,所选单元格中的所有换行符会被一次性删除或替换为空格。见截图:
你还可以结合 SUBSTITUTE 和 CHAR 函数创建公式,删除文本字符串中的换行符。
请应用以下公式获取结果:
提示:SUBSTITUTE 函数会查找并替换 CHAR(10)(即换行符)为空。如果你想用逗号加空格分隔结果,可以使用以下公式:
如果你熟悉 VBA代码,也可以使用以下代码,请按如下步骤操作:
1. 按下“Alt + F11”组合键,打开“Microsoft Visual Basic for Applications”窗口。
2. 点击“插入”>“模块”,并将以下代码粘贴到模块窗口中。
VBA代码:从文本字符串中删除换行符
3. 按下“F5”键运行代码,会弹出提示框。选择需要删除换行符的区域,如下图所示:
4. 点击“确定”按钮,所选数据区域中的所有换行符会被删除。
这里,Kutools for Excel 的“删除特定字符”功能同样可以轻松删除换行符。
1.选择需要删除换行符的单元格区域,然后点击“Kutools”>“文本”>“删除特定字符”。
2. 在“删除特定字符”对话框中,请按如下操作:
在 Excel 中,使用简单的 TRIM 函数可以删除文本字符串中的前导、尾部和多余空格。该函数会保留单词之间的单个空格,删除其他所有空格。
请在空白单元格中输入以下公式:
然后向下拖动填充柄,将公式复制到其他单元格,现在你可以看到所有前导、尾部和单词间多余空格已被一次性删除,如下图所示:
如果你想删除文本字符串中的所有空格,可以使用 SUBSTITUTE 函数或查找和替换功能。
通过 SUBSTITUTE 函数实现
可以使用 SUBSTITUTE 函数将所有空格替换为空,请在空白单元格中输入以下公式:
然后向下拖动填充柄,将公式复制到需要的单元格,所有空格会被删除,如下图所示:
通过查找和替换功能实现
实际上,Excel 的“查找与替换”功能同样可以帮助你去除所选单元格中的所有空格,请按以下步骤操作:
1.选择需要删除所有空格的数据区域。
2. 点击“开始”>“查找与选择”>“替换”(或按“Ctrl + H”),在弹出的“查找和替换”对话框中,按如下操作:
3. 然后点击“全部替换”按钮,所选单元格中的所有空格会被一次性删除。见截图:
Kutools for Excel 提供了强大的“删除空格”功能,借助此工具,你不仅可以删除前导空格、尾部空格、多余空格,还能一次性删除所选区域的所有空格,大大提升工作效率。
1.选择需要删除空格的数据区域,然后点击“Kutools”>“文本”>“删除空格”。见截图:
2. 在“删除空格”对话框中,从“空格类型”中选择你要删除的空格类型:
3. 然后点击“确定”或“应用”按钮,即可得到所需结果。
本节将介绍如何删除第一个、最后一个或第 N 次出现的特定字符前后内容的操作方法。
如果你想删除第一个特定字符(如空格、逗号)前或后的文本,如下图所示,下面介绍两种方法。
要删除第一个特定字符前的文本,可以结合 RIGHT、LEN 和 FIND 函数创建公式,通用语法如下:
例如,要删除列表字符串中第一个逗号前的所有内容,请在空白单元格中输入以下公式,然后向下拖动应用到需要的单元格,如下图所示:
注意:在上述公式中,“A2”为要删除文本的单元格,“,”为你想要根据其删除文本的特定字符,你可以根据需要更换为其他字符。
要删除第一个特定字符后的所有内容,可以结合 LEFT 和 FIND 函数实现,通用语法如下:
请在空白单元格中输入以下公式,然后向下拖动填充柄应用到需要的单元格,所有第一个逗号后的字符会被一次性删除,如下图所示:
有时,文本字符串中包含多个相同分隔符,你可能希望删除第2、3 或第4 次出现的分隔符前或后的所有内容。可以参考以下方法:
要删除第 N 次出现的特定字符前的文本,可以使用以下公式,通用语法如下:
例如,要删除文本字符串中第二个逗号前的所有内容,请使用以下公式:
注意:在上述公式中,“A2”为要删除文本的单元格,“,”为你想要根据其删除文本的特定字符,你可以根据需要更换为其他字符;“2”表示要删除第几个逗号前的内容。
然后向下拖动填充柄,将公式应用到其他单元格,如下图所示:
要删除第 N 次出现的特定分隔符后的内容,可以结合 LEFT、SUBSTITUTE 和 FIND 函数实现,通用语法如下:
了解基本语法后,请将以下公式复制或输入到空白单元格中:
注意:在上述公式中,“A2”为要删除文本的单元格,“,”为你想要根据其删除文本的特定字符,你可以根据需要更换为其他字符;“2”表示要删除第几个逗号后的内容。
然后向下拖动填充柄,将公式应用到其他单元格,所有第二个逗号后的字符会被一次性删除,如下图所示:
如你所见,通过不同组合的 Excel 原生函数可以解决删除第 N 次出现的字符前后内容的情况。问题在于需要记忆这些复杂公式。此时,可以创建一个自定义函数来覆盖所有场景,操作如下:
1. 按下“Alt + F11”组合键,打开“Microsoft Visual Basic for Applications”窗口。
2. 点击“插入”>“模块”,并将以下代码粘贴到模块窗口中。
VBA代码:删除第 N 次出现的字符前或后的文本
3.关闭并退出代码窗口,返回工作表,使用以下公式:
删除第二个逗号前的文本:
删除第二个逗号后的文本
如果你需要删除最后一个特定字符前或后的所有内容,仅保留其前后的子字符串,本节将提供相应公式解决该问题。
要删除最后一次出现的字符前的所有内容,通用语法如下:
如果你需要删除最后一个逗号前的所有内容,请将以下公式复制或输入到空白单元格中:
注意:在上述公式中,“A2”为要删除文本的单元格,“,”为你想要根据其删除文本的特定字符,你可以根据需要更换为其他字符。
然后向下拖动填充柄,将公式应用到其他单元格,所有最后一个逗号前的字符会被一次性删除,如下图所示:
如果单元格值被不定数量的分隔符分隔,想要删除最后一个分隔符后的所有内容,通用语法如下:
请将以下公式复制或输入到空白单元格中,然后向下拖动填充柄获取其他结果,如下图所示:
“注意”:在上述公式中,“A2”为要删除文本的单元格,“,”为你想要根据其删除文本的特定字符,你可以根据需要更换为其他字符。
如果你有一组文本字符串,其中部分字符被括号括起来,现在你可能希望删除括号内的所有字符(包括括号本身),如下图所示。本节将介绍几种在 Excel 中实现的方法。
在 Excel 中,内置的查找和替换功能可以帮助你查找所有括号内的文本并将其替换为空。操作如下:
1.选择需要删除括号内文本的数据列表。
2. 点击“开始”>“查找与选择”>“替换”(或按“Ctrl + H”),进入查找和替换对话框,在对话框中按如下操作:
3. 点击“全部替换”按钮,所选单元格中所有括号内(包括括号本身)的字符会被一次性删除。见截图:
提示:查找和替换功能同样适用于文本字符串中有两对或更多括号的情况。
除了查找和替换功能外,还可以使用公式解决此问题,通用语法如下:
请将以下公式复制或输入到空白单元格中获取结果:
然后向下拖动填充柄,将公式应用到需要的单元格,所有括号内(包括括号本身)的文本会被一次性删除,如下图所示:
提示:如果单元格值中没有括号,应用上述公式后会显示错误。为忽略错误,请使用以下公式:
上述公式适用于删除一对括号内的文本。如果需要删除文本字符串中多对括号内的内容,公式可能无法正确处理。此时,可以创建一个简单的自定义函数来解决。
1. 按下“Alt + F11”组合键,打开“Microsoft Visual Basic for Applications”窗口。
2. 点击“插入”>“模块”,并将以下代码粘贴到模块窗口中。
VBA代码:删除括号中的文本
3. 返回工作表,在空白单元格中输入公式“=remtxt(A2)”,然后向下拖动填充柄应用公式,所有括号内(包括括号本身)的文本会被删除,如下图所示:
某些情况下,你可能希望从一组单元格中删除部分单词,如第一个或最后一个单词、重复单词等。针对这些需求,本节将介绍几种方法。
要从一组文本字符串中删除第一个或最后一个单词,可以参考以下公式。
要删除一组文本字符串中的第一个单词,可以结合 RIGHT、LEN 和 FIND 函数创建简单公式,通用语法如下:
请将以下公式输入或复制到空白单元格中:
然后向下拖动填充柄,将公式应用到其他单元格,如下图所示:
提示:如果需要删除单元格中的前 N 个单词,请使用以下公式:
例如,要删除单元格中的前两个单词,请将以下公式复制或输入到空白单元格中获取所需结果,如下图所示:
要删除文本字符串中的最后一个单词,也可以使用公式实现,通用语法如下:
请将以下公式输入到空白单元格中,然后向下拖动填充柄应用到其他单元格,如下图所示:
提示:要从一组单元格中删除最后 N 个单词,通用语法如下:
假设要从一组单元格中删除最后3 个单词,请使用以下公式获取结果,如下图所示:
在删除重复值或行时,Excel 提供了多种选项,但对于删除单元格内的重复字符或单词,内置功能并不完善。本节将帮助你通过自定义函数解决这一难题。
如果单元格中有多个相同字符,需要删除重复字符并仅保留首次出现的字符,如下图所示,可以使用以下自定义函数。
1. 按下“Alt + F11”组合键,打开“Microsoft Visual Basic for Applications”窗口。
2. 点击“插入”>“模块”,并将以下代码粘贴到模块窗口中。
VBA代码:删除单元格内重复字符
3.关闭代码窗口,返回工作表,在数据旁边的空白单元格中输入公式“=RemoveDupeschars(A2)”,然后向右拖动填充柄应用到需要的单元格,如下图所示:
注意:“A2”为要删除重复字符的数据单元格。
提示:该函数区分大小写,会将大写和小写字母视为不同字符。
假设你有单元格中出现多次相同单词或文本字符串,想要删除所有重复单词,如下图所示。可以使用以下自定义函数在 Excel 中实现。
1. 按下“Alt + F11”组合键,打开“Microsoft Visual Basic for Applications”窗口。
2. 点击“插入”>“模块”,并将以下代码粘贴到模块窗口中。
VBA代码:删除单元格内重复单词
3.关闭代码窗口,返回工作表,在数据旁边的空白单元格中输入公式“=RemoveDupeswords(A2,", ")”,然后向右拖动填充柄应用到需要的单元格,如下图所示:
注意:“A2”为要删除重复单词的单元格,逗号和空格(",")为分隔符,你可以根据需要更换为其他分隔符。
提示:该函数不区分大小写,大写和小写字母视为相同字符。
如果单元格中有较长的文本字符串,有时你可能只想保留前 n 个单词,裁剪掉其余内容。本节将介绍几种在 Excel 中实现的方法。
要将文本字符串裁剪为 N 个单词,可以结合 LEFT、FIND 和 SUBSTITUTE 函数创建公式,通用语法如下:
请将以下公式复制或输入到空白单元格中:
然后向下拖动填充柄,将公式应用到其他单元格,如下图所示:
除了上述公式外,还可以通过自定义函数实现,操作如下:
1. 按下“Alt + F11”组合键,打开“Microsoft Visual Basic for Applications”窗口。
2. 点击“插入”>“模块”,并将以下代码粘贴到模块窗口中。
VBA代码:将文本字符串裁剪为 N 个单词
3.关闭并退出代码窗口,返回工作表,在空白单元格中输入公式“=GetNWords(A2,B2)”,然后向下拖动填充柄应用到其他单元格,仅保留前指定数量的单词,如下图所示:
Kutools for Office套件包含Excel、Word、Outlook和PowerPoint的插件,以及Office Tab Pro,非常适合跨Office应用团队使用。
请订阅我们的新闻通讯,及时了解我们的最新动态。新闻通讯会为您提供最新的软件更新信息以及软件优惠码。我们不会向您发送垃圾邮件,也不会与其他公司分享您的信息。