跳到主要内容

Excel 从文本字符串中删除字符、单词、数字

假设您有一长串包含字符、数字或其他特定符号的文本字符串。 在某些情况下,您可能需要根据位置删除一些字符,例如从文本字符串中的右侧、左侧或中间位置,或者从字符串列表中删除一些不需要的字符、数字。 一一寻找解决方案会让你头疼,本教程收集了Excel中去除字符、单词或数字的各种方法。

目录:

1. 去除文本串左边、右边或中间的字符

2.从文本字符串中删除不需要的/特殊字符

3.删除特定字符之前或之后的字符/文本

4.从文本字符串中删除单词


从文本字符串的左侧、右侧或中间删除字符

对于我们大多数人来说,从 Excel 工作表中的文本字符串的左侧、右侧或中间删除一些字符可能是一项常见的工作。 本节将介绍一些解决此任务的快速简便的技巧。

1.1 去除文本字符串的前n个字符

如果您需要从文本字符串列表中删除前 n 个字符,以下方法可能会对您有所帮助。

 通过使用公式

通常,要删除文本字符串开头的字符,可以使用 REPLACE 函数或 RIGHT 和 LEN 函数的组合。

REPLACE 函数删除前 N 个字符:

=REPLACE(string, 1, num_chars, "")
  • 绳子: 要从中删除字符的文本字符串;
  • 数字字符: 要删除的字符数。

例如,要从单元格中删除前 2 个字符,请使用以下公式,然后拖动填充手柄将公式复制到其他单元格,请参见屏幕截图:

=REPLACE(A4, 1, 2, "")

RIGHT 和 LEN 函数删除前 N 个字符:

=RIGHT(string, LEN(string) - num_chars)
  • 绳子: 要从中删除字符的文本字符串;
  • 数字字符: 要删除的字符数。

要从单元格中删除前 2 个字符,请应用以下公式:

=RIGHT(A4,LEN(A4)-2)


 通过使用用户定义函数

要从单元格中删除前 n 个字符,您还可以创建一个用户定义的函数来解决此任务。 请按照以下步骤操作:

1。 按住 Alt + F11键 键打开 Microsoft Visual Basic应用程序 窗口。

2。 点击 插页 > 模块,然后将以下代码粘贴到“模块窗口”中。

VBA 代码:从文本字符串中删除前 n 个字符

Function removeFirstx(rng As String, cnt As Long)
'Updateby Extendoffice
removeFirstx = Right(rng, Len(rng) - cnt)
End Function

3。 然后回到工作表,然后输入以下公式: = removefirstx(A4,2) 放入空白单元格,然后向下拖动填充手柄以根据需要获取结果,请参见屏幕截图:

备注:在此公式中: A4 是要从中删除字符的单元格; 号码 2 表示您要从文本字符串开头删除的字符数。


1.2 从文本字符串中删除最后 n 个字符

要从文本字符串的右侧删除特定数量的字符,您还可以使用公式或用户定义函数。

 通过使用公式

要从文本字符串中删除最后 n 个字符,您可以使用基于 LEFT 和 LEN 函数的公式。

LEFT 和 LEN 函数删除最后 N 个字符:

=LEFT(string, LEN(string) - num_chars)
  • 绳子: 要从中删除字符的文本字符串;
  • 数字字符: 要删除的字符数。

要删除文本字符串末尾的 3 个字符,请使用此公式,然后拖动填充手柄将公式复制到其他单元格,请参见截图:

=LEFT(A4, LEN(A4) - 3)


 通过使用用户定义函数

在这里,用户定义的函数也可以帮助您从单元格列表中删除最后 n 个字符,请执行以下操作:

1。 按住 Alt + F11键 键打开 Microsoft Visual Basic应用程序 窗口。

2。 点击 插页 > 模块,然后将以下代码粘贴到“模块窗口”中。

VBA 代码:从文本字符串中删除最后 n 个字符

Function removeLastx(rng As String, cnt As Long)
'Updateby Extendoffice
removeLastx = Left(rng, Len(rng) - cnt)
End Function

3. 然后返回到工作表,并输入以下公式: = removelastx(A4,3) 放入空白单元格,然后向下拖动填充手柄以根据需要获取结果,请参见屏幕截图:

备注:在此公式中: A4 是要从中删除字符的单元格; 号码 3 表示您要从文本字符串末尾删除的字符数。


1.3 使用强大的功能去除首尾n个字符或某个位置的字符

记住各种公式,从文本字符串的左、右或特定位置删除字符可能会让您痛苦, Kutools for Excel 支持一个强大的功能—— 按位置删除. 使用这个小工具,您只需点击几下即可处理这些任务,而无需记住任何公式。

安装后 Kutools for Excel,请这样做:

1. 选择要删除字符的单元格,然后单击 库工具 > 文本 > 按位置删除,请参见屏幕截图:

2。 在 按位置删除 对话框,请执行以下操作:

2.1 从单元格中删除前 n 个字符:

  • In 数值 文本框中,键入要从字符串中删除的字符数。 在这个例子中,我将删除前 2 个字符。
  • 选择 从左边 选项 职务 部分。
  • 然后,单击 Ok or 使用 按钮以获得如下图所示的结果。

2.2 从单元格中删除最后 n 个字符:

  • In 数值 文本框中,键入要从字符串中删除的字符数。 在这个例子中,我将删除最后 3 个字符。
  • 选择 从右边 选项 职务 部分。
  • 然后,单击 Ok or 使用 按钮以获得如下图所示的结果。

2.3 去除单元格特定位置的n个字符:

如果您需要从文本字符串的某个位置删除特定数量的字符,例如从字符串的第三个字符开始删除 3 个字符。

  • In 数值 文本框中,键入要从字符串中删除的字符数。 在这个例子中,我将从某个位置删除 3 个字符。
  • 选择 指定 选项,然后在文本框中键入要从其开始删除字符的数字 职务 部分。 在这里,我将从第三个字符中删除字符。
  • 然后,单击 Ok or 使用 按钮以获得如下图所示的结果。

立即下载并免费试用 Kutools for Excel!


1.4 用公式去除文本字符串的前n个和后n个字符

当你需要在Excel中去除文本字符串两边的一些字符时,你可以结合MID和LEN函数来创建一个公式来处理这个任务。

=MID(string, left_chars + 1, LEN(string) - (left_chars + right_chars)
  • 绳子: 要从中删除字符的文本字符串;
  • 左字符: 从左边移除的字符数;
  • 右字符: 从右边删除的字符数。

例如,您需要同时去除文本字符串的前 7 个字符和后 5 个字符,请在空白单元格中输入以下公式:

=MID(A4, 7+1, LEN(A4) - (7+5))

备注:在此公式中: A4 是要从中删除字符的单元格; 号码 7 是要从左侧删除的字符数; 号码 5 是要从右侧删除的字符数。

然后,将填充手柄向下拖动到要应用此公式的位置,您将获得如下屏幕截图所示的结果:


从文本字符串中删除不需要的/特殊字符

将数据从其他地方导入 Excel 时,可能会将许多特殊或不需要的字符粘贴到您的工作表中。 为了去除这些不需要的字符,如#@$%^&、空格、数字、非数字数字、换行符等,本节将提供一些有用的方法来帮助您。

2.1 去除文本字符串中的一些特殊字符

如果文本字符串中有%^&*() 等特殊字符,要去除此类字符,可以应用以下三个技巧。

 使用 SUBSTITUTE 函数从文本字符串中删除几个特殊字符

通常,在 Excel 中,您可以嵌套多个 SUBSTITUTE 函数来将每个特定字符替换为空,通用语法为:

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(string_cell, char1, ""), char2, ""), char3, "")
  • 字符串单元格:单元格包含要从中删除特殊字符的文本字符串;
  • 字符 1、字符 2、字符 3:要删除的不需要的字符。

现在,请将以下公式复制或输入到空白单元格中:

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2, "#", ""), "&", ""), "*", ""), "%", "")

然后,将填充手柄向下拖动到要应用此公式的单元格,您指定的所有不需要的字符将立即删除,请参见屏幕截图:

Tips: 如果要删除的字符较多,只需在公式中嵌套更多的 SUBSTITUTE 函数即可。


 使用用户定义函数从文本字符串中删除多个特殊字符

如果要删除的特殊字符很少,上面嵌套的 SUBSTITUTE 函数效果很好,但是如果要删除的字符有几十个,则公式会变得太长且难以管理。 在这种情况下,以下用户定义函数可以帮助您快速轻松地完成此任务。

1。 按住 Alt + F11键 键打开 Microsoft Visual Basic应用程序 窗口。

2。 点击 插页 > 模块,并将以下代码粘贴到模块窗口中。

VBA 代码:从文本字符串中删除多个特殊字符

Function RemoveUnwantedChars(Str As String, xchars As String)
'Updateby Extendoffice
    For Index = 1 To Len(xchars)
        Str = Replace(Str, Mid(xchars, Index, 1), "")
    Next
    RemoveUnwantedChars = Str
End Function

3. 然后,关闭代码窗口并返回工作表,输入此公式 =删除不需要的字符(A2,$D$2) 到一个空白单元格中输出结果,然后向下拖动填充手柄以根据需要获取结果,请参见屏幕截图:

备注:在上式中: A2 是要从中删除字符的单元格; $ d $ 2 包含您要删除的特殊字符(您可以键入您需要的任何其他特殊字符)。


 从具有惊人功能的文本字符串中删除多个特殊字符

如果你已经安装 Kutools for Excel,其 删除字符 功能,您可以根据需要从单元格列表中删除各种字符,例如数字字符、字母字符、非打印字符……。

安装后 Kutools for Excel,请这样做:

1. 选择要从中删除特殊字符的单元格范围,然后单击 库工具 > 文本 > 删除字符,请参见屏幕截图:

2。 在 删除字符 对话框:

  • 单向阀 定制版 选项下 删除字符 部分。
  • 然后在要删除的文本框中输入特殊字符。
  • 然后,单击 Ok or 使用 按钮一次删除您指定的字符。 看截图:

立即下载并免费试用 Kutools for Excel!


2.2 从文本字符串中删除所有数字

如果您有一个包含数字、字母和特殊字符的文本字符串列表,现在您只想删除所有数字并保留其他字符。 本节将提供一些方便的方法来帮助您。

 使用 SUBSTITUTE 函数从文本字符串中删除数字

在 Excel 中,嵌套的 SUBSTITUTE 函数可以帮助将所有数字替换为空,因此,您可以使用以下公式从单元格中删除所有数字:

=SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A2,1,""),2,""),3,""),4,""),5,""),6,""),7,""),8,""),9,""),0,"")

然后将填充手柄向下拖动到要应用此公式的单元格,所有数字将从文本字符串列表中删除,请参见屏幕截图:


 使用 TEXTJOIN 函数从文本字符串中删除数字

如果您有 Excel 2019、2021 或 365,新的 TEXTJOIN 函数还可以帮助从文本字符串中删除数字。

请将以下公式复制到一个空白单元格中,然后同时按下 Ctrl + Shift + Enter 键以获得第一个结果:

=TEXTJOIN("", TRUE, IF(ISERR(MID(A2, ROW(INDIRECT( "1:"&LEN(A2) )), 1) *1), MID(A2, ROW(INDIRECT("1:"&LEN(A2))), 1), ""))

然后将公式复制到下面要应用此公式的其他单元格中,请参见屏幕截图:

备注:此 TEXTJOIN 仅适用于 Excel 2019、2021 和 Office 365。


 使用用户定义函数从文本字符串中删除数字

除了以上两个公式,用户自定义函数也可以帮到你,请按照以下步骤操作:

1。 按住 Alt + F11键 键打开 Microsoft Visual Basic应用程序 窗口。

2。 点击 插页 > 模块,并将以下代码粘贴到模块窗口中。

VBA 代码:从文本字符串中删除数字

Function RemoveNumbers(Txt As String) As String
'Updateby Extendoffice
With CreateObject("VBScript.RegExp")
.Global = True
.Pattern = "[0-9]"
RemoveNumbers = .Replace(Txt, "")
End With
End Function

3. 然后,关闭并退出代码窗口,返回工作表,输入以下公式: =删除号码(A2) 进入一个空白单元格,然后将填充手柄向下拖动到要应用此公式的单元格,请参见屏幕截图:


 使用方便的选项从文本字符串中删除数字

如果你厌倦了复杂的公式,现在,让我向你展示一个简单的工具—— Kutools for Excel删除字符. 使用这个方便的功能,您只需点击几下即可完成此任务。

安装后 Kutools for Excel,请这样做:

1. 选择要删除数字的单元格范围,然后单击 库工具 > 文本 > 删除字符.

2。 在 删除字符 对话框,请执行以下操作:

  • 单向阀 数字 选项下 删除字符 部分。
  • 然后,单击 Ok or 使用 按钮立即删除数字。 看截图:

立即下载并免费试用 Kutools for Excel!


2.3 去除文本字符串中的非数字字符

对于去除所有非数字字符并仅保留文本字符串中的数字,本节将讨论在 Excel 中解决此任务的一些方法。

 在 Excel 2016 及更早版本中使用公式从文本字符串中删除非数字字符

如果您使用的是 Excel 2016 或更早版本,您应该应用一个复杂的公式来完成这项工作,请将以下公式复制或输入到空白单元格中:

=SUMPRODUCT(MID(0&A2, LARGE(INDEX(ISNUMBER(--MID(A2, ROW(INDIRECT("1:"&LEN(A2))), 1)) * ROW(INDIRECT("1:"&LEN(A2))), 0), ROW(INDIRECT("1:"&LEN(A2))))+1, 1) * 10^ROW(INDIRECT("1:"&LEN(A2)))/10)

然后将公式复制到下面要应用此公式的其他单元格中,请参见屏幕截图:

备注: 如果文本字符串中的数字以 0 开头,则 0 将丢失。


 使用 Excel 2019、2021、365 中的 TEXTJOIN 函数从文本字符串中删除非数字字符

上面的公式对我们大多数人来说可能太难理解了。 如果您有 Excel 2019、2021 或 365,有一个简洁的公式可以帮助您。

请将以下公式复制或输入到空白单元格中,然后按 Ctrl + Shift + Enter 键一起得到第一个正确结果:

=TEXTJOIN("",TRUE,IFERROR(MID(A2,ROW(INDIRECT("1:100")),1)+0,""))

然后,将填充手柄向下拖动到您将应用此公式的单元格,您将获得如下屏幕截图所示的结果:

备注:使用此公式,您可以看到由于数字以文本形式返回,因此将保留前导 0。


 使用用户定义函数从文本字符串中删除非数字字符

当然,您也可以使用更简单的语法创建自己的用户定义函数,请这样做:

1。 按住 Alt + F11键 键打开 Microsoft Visual Basic应用程序 窗口。

2。 点击 插页 > 模块,并将以下代码粘贴到模块窗口中。

VBA 代码:从文本字符串中删除非数字字符

Function Removenonnumeric(str As String) As String
'Updateby Extendoffice
    With CreateObject("VBScript.RegExp")
        .Global = True
        .Pattern = "[^0-9]"
        Removenonnumeric = .Replace(str, "")
    End With
End Function

3. 然后,关闭并退出代码窗口,返回工作表,输入以下公式: =移除非数字(A2) 进入一个空白单元格,然后将填充手柄向下拖动到要应用此公式的单元格,只有数字将被提取,如下图所示:


 使用简单的功能从文本字符串中删除非数字字符

要直接删除一系列单元格中的非数字字符, Kutools for Excel删除字符 实用程序只需点击几下即可完成。

安装后 Kutools for Excel,请这样做:

1. 选择要从中删除非数字字符的单元格范围,然后单击 库工具 > 文本 > 删除字符.

2。 在 删除字符 对话框中,请设置以下操作:

  • 单向阀 非数值 选项下 删除字符 部分。
  • 然后,单击 Ok or 使用 按钮立即删除所有非数字字符。 看截图:

立即下载并免费试用 Kutools for Excel!


2.4 将一个单元格中的文本和数字分成两列

有时,您可能希望将文本字符串中的文本和数字提取到两个单独的列中,借助以下方法,您可以快速轻松地完成此任务。

 使用用户定义函数将一个单元格中的文本和数字分成两列

通过使用以下用户定义函数,您可以一次提取文本和数字,请执行以下步骤:

1。 按住 Alt + F11键 键打开 Microsoft Visual Basic应用程序 窗口。

2。 点击 插页 > 模块,并将以下代码粘贴到模块窗口中。

VBA代码:将文本字符串中的文本和数字分成两列

Function SplitText(pWorkRng As Range, pIsNumber As Boolean) As String
'Updateby Extendoffice
Dim xLen As Long
Dim xStr As String
xLen = VBA.Len(pWorkRng.Value)
For i = 1 To xLen
    xStr = VBA.Mid(pWorkRng.Value, i, 1)
    If ((VBA.IsNumeric(xStr) And pIsNumber) Or (Not (VBA.IsNumeric(xStr)) And Not (pIsNumber))) Then
        SplitText = SplitText + xStr
    End If
Next
End Function

3. 然后,关闭并退出代码窗口,返回工作表,输入以下公式: = SplitText(A2,FALSE) 进入一个空白单元格,然后将填充手柄向下拖动到要填充此公式的单元格以获取所有文本,请参见屏幕截图:

4. 然后,继续输入这个公式: = SplitText(A2,TRUE) 到另一个单元格中,然后将填充手柄向下拖动到要填充此公式以获取数字的单元格,请参见屏幕截图:


 使用简单的功能将一个单元格中的文本和数字分成两列

如果你有 Kutools for Excel,它的 分裂细胞 实用程序可以帮助您根据任何分隔符、指定的宽度或文本和数字将单元格拆分为多列或多行。

安装后 Kutools for Excel,请这样做:

1. 选择要拆分的单元格范围,然后单击 库工具 > 合并与拆分 > 分裂细胞,请参见屏幕截图:

2。 在 分裂细胞 对话框中选择 拆分为列 选项下 Type 部分,然后检查 文字和数字 来自 分割为 部分,请参见屏幕截图:

3。 然后,点击 Ok 按钮,另一个 分裂细胞 弹出对话框,选择一个单元格输出分隔的文本和数字,然后点击 OK 按钮。 现在,您可以看到所选单元格中的文本和数字一次分为两列,如下图所示:

立即下载并免费试用 Kutools for Excel!


2.5 去除文本字符串中的换行符

换行符允许您在 Excel 的同一单元格中有多行。 有时,当您从网站复制数据或将单元格内容与 Alt + Enter键 手动键,您将获得换行符或回车符。 在某些情况下,您可能希望删除换行符以使单元格内容成为一行,如下图所示。 在这里,我将介绍一些在 Excel 中解决此任务的方法。

 使用查找和替换功能从文本字符串中删除换行符

在Excel中,您可以使用 查找和替换 删除换行符的功能,请执行以下操作:

1. 选择要从中删除换行符的数据范围。

2。 然后,点击 主页 > 查找和选择 > 更换 (或按 Ctrl + H 键)去 查找和替换 对话框,请参见屏幕截图:

3。 在弹出 查找和替换 对话框,请执行以下操作:

  • 将光标放在 查找内容 场和新闻 Ctrl + J 在键盘上,您可能看不到任何内容,但已插入换行符。
  • 更换 字段,将此字段留空以删除换行符或按 太空霸r 一次用空格替换换行符。

4。 然后,点击 “全部替换” 按钮,所选单元格中的所有换行符将立即被删除或替换为空格。 看截图:


 使用 SUBSTITUTE 函数从文本字符串中删除换行符

您还可以基于 SUBSTITUTE 和 CHAR 函数创建一个公式,以从文本字符串中删除换行符。

请应用以下公式得到结果:

=SUBSTITUTE(A2,CHAR(10),"")

Tips:SUBSTITUTE 函数查找并替换表示换行符的 CHAR(10) 字符。 如果您希望结果由逗号和空格分隔,您可以使用以下公式:

=SUBSTITUTE(A2,CHAR(10),", ")


 使用 VBA 代码从文本字符串中删除换行符

如果您习惯使用 VBA 代码,这里还为您提供了代码,请按照以下步骤操作:

1。 按住 Alt + F11键 键打开 Microsoft Visual Basic应用程序 窗口。

2。 点击 插页 > 模块,并将以下代码粘贴到模块窗口中。

VBA 代码:从文本字符串中删除换行符

Sub RemoveCarriage()
'Updateby Extendoffice
Dim Rng As Range
Dim WorkRng As Range
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
For Each Rng In WorkRng
    Rng.Value = Replace(Rng.Value, Chr(10), "")
Next
End Sub

3。 然后按 F5 键运行这段代码,会出现一个提示框,选择要去掉换行符的范围,看截图:

4。 然后,单击 OK 按钮,所有换行符将从所选数据范围中删除。


 使用智能选项从文本字符串中删除换行符

在这里, Kutools for Excel删除字符 功能还可以帮助您轻松删除换行符。

安装后 Kutools for Excel,请这样做:

1. 选择要删除换行符的单元格范围,然后单击 库工具 > 文本 > 删除字符.

2。 在 删除字符 对话框中,请设置以下操作:

  • 单向阀 非印刷 选项下 删除字符 部分。
  • 然后,单击 Ok or 使用 按钮从选定的数据范围中删除所有换行符。 看截图:

立即下载并免费试用 Kutools for Excel!


2.6 从文本字符串中删除空格(前导、尾随、额外或所有空格)

将文本从外部来源复制并粘贴到 Excel 工作表通常会带来一些烦人的剩余空格,手动删除前导、尾随或其他额外空格会很乏味。 幸运的是,Excel 提供了一些简单的技巧来处理这个任务。

 使用 TRIM 函数从文本字符串中删除多余的空格(前导、尾随、多余)

在 Excel 中,要删除文本字符串中的前导、尾随和多余空格,简单的 TRIM 函数可以帮助您。 此函数删除除单词之间的单个空格之外的所有空格。

请在空白单元格中输入以下公式:

=TRIM(A2)

然后向下拖动填充手柄以复制其他单元格的公式,现在,您可以从屏幕截图中看到单词之间的所有前导、尾随空格和多余空格被立即删除:


 从文本字符串中删除所有空格

如果您想从文本字符串中删除所有空格,以下 SUBSTITUTE 函数和查找和替换功能可以帮到您。

通过使用 SUBSTITUTE 函数

您可以使用 SUBSTITUTE 函数将所有空格替换为空,请将以下公式应用于空白单元格:

=SUBSTITUTE(A2," ","")

然后,向下拖动填充手柄以将此公式复制到您需要的其他单元格,所有空格将被删除,如下图所示:


通过使用查找和替换功能

事实上,在 查找和替换 Excel 中的功能也可以帮助删除选定单元格中的所有空格,请执行以下步骤:

1. 选择要从中删除所有空格的数据范围。

2。 然后,点击 主页 > 查找和选择 > 更换 (或按 Ctrl + H 键)转到 查找和替换 对话框,在打开的 查找和替换 对话框,请执行以下操作:

  • 媒体 空格键 ,在 查找内容 领域;
  • 更换 字段,将此字段留空。

3。 然后,单击 “全部替换” 按钮,将立即删除所选单元格中的所有空格。 看截图:


 用强大的功能去除文本字符串中的各种空格

Kutools for Excel 有一个强大的功能—— 删除空间, 使用此实用程序,您不仅可以在一个对话框中删除前导空格、尾随空格、多余空格,还可以删除选定范围内的所有空格,这将提高您的工作效率。

安装后 Kutools for Excel,请这样做:

1. 选择要从中删除空格的数据范围,然后单击 库工具 > 文本 > 删除空间。 看截图:

2。 在 删除空间 对话框中,选择一种要从 空间类型:

  • 去除前导空格,请选择 前导空间 选项;
  • 删除尾随空格,请选择 尾随空格 选项;
  • 一次删除前导空格和尾随空格,请选择 前导和尾随空格 选项;
  • 删除所有多余的空格,请选择 所有多余的空间 选项;
  • 删除所有空格,请选择 所有空间 选项。

3。 然后,点击 Ok or 使用 按钮,您将获得所需的结果。

立即下载并免费试用 Kutools for Excel!


删除特定字符之前或之后的字符/文本

在本节中,我将介绍一些用于删除特定字符第一次、最后一次或第 n 次出现之前或之后的文本或字符的操作。

3.1 删除第一个特定字符之前或之后的文本

如果您想从如下屏幕截图所示的文本字符串列表中删除第一个特定字符之前或之后的文本,例如空格、逗号,这里我将为您发布两种方法。

 使用公式删除第一个特定字符之前的文本

要删除第一个特定字符之前的文本或字符,您可以基于 RIGHT、LEN 和 FIND 函数创建一个公式,通用语法为:

=RIGHT(cell, LEN(cell)-FIND("char", cell))
  • 单元格:要从中删除文本的单元格引用或文本字符串;
  • 坦克:您要基于其删除文本的特定分隔符。

例如,要从列表字符串中删除第一个逗号之前的所有内容,您应该将以下公式应用于空白单元格,然后将其向下拖动到您需要的单元格,请参见屏幕截图:

=RIGHT(A2,LEN(A2)-FIND(",",A2))

备注:在上面的公式中: A2 是要从中删除文本的单元格; , 是您要根据其删除文本的特定字符,您可以根据需要将其更改为任何其他字符。


 使用公式删除第一个特定字符后的文本

要删除第一个特定字符之后的所有内容,您可以使用 LEFT 和 FIND 函数来获取结果,通用语法是:

=LEFT(cell,FIND("char",cell)-1)
  • 单元格:要从中删除文本的单元格引用或文本字符串;
  • 坦克:您要基于其删除文本的特定分隔符。

现在,请在空白单元格中输入以下公式,然后将填充手柄向下拖动到要应用此公式的其他单元格,第一个逗号之后的所有字符将立即删除,请参见截图:

=LEFT(A2,FIND(",",A2)-1)


3.2 删除第 N 次出现之前或之后的文本

有时,文本字符串包含特定分隔符的多个实例,您可能希望删除特定实例之前或之后的所有字符,例如根据需要删除第二个、第三个或第四个。 要处理这种类型的删除,您可以使用以下技巧:

 使用公式删除第 N 个字符之前的文本

要删除特定字符第 N 次出现之前的文本,以下公式可以帮助您,通用语法是:

=RIGHT(cell,LEN(cell)-FIND("#",SUBSTITUTE(cell,"char","#",N)))
  • 单元格:要从中删除文本的单元格引用或文本字符串;
  • 坦克:您要根据其删除文本的特定分隔符;
  • N: 要删除文本之前的字符出现。

例如,要从文本字符串中删除第二个逗号之前的所有内容,您应该应用以下公式:

=RIGHT(A2,LEN(A2)-FIND("#",SUBSTITUTE(A2,",","#",2)))

备注:在上面的公式中: A2 是要从中删除文本的单元格; , 是您要根据其删除文本的特定字符,您可以根据需要将其更改为任何其他字符; 2 表示要删除其前的第 n 个逗号。

然后,拖动填充柄将公式复制到其他单元格,请参见屏幕截图:


 使用公式删除第 N 次出现的字符后的文本

要删除特定分隔符出现第 N 次后的文本,LEFT、SUBSTITUTE 和 FIND 函数可以帮到您。 通用语法是:

=LEFT(cell, FIND("#", SUBSTITUTE(cell, "char", "#", N)) -1)
  • 单元格:要从中删除文本的单元格引用或文本字符串;
  • 坦克:您要根据其删除文本的特定分隔符;
  • N: 要删除文本的字符出现位置。

了解基本语法后,请将以下公式复制或输入到空白单元格中:

=LEFT(A2, FIND("#", SUBSTITUTE(A2, ",", "#", 2)) -1)

备注:在上面的公式中: A2 是要从中删除文本的单元格; , 是您要根据其删除文本的特定字符,您可以根据需要将其更改为任何其他字符; 2 表示要删除文本后的第 n 个逗号。

然后,拖动填充柄将公式复制到其他单元格,第二个逗号之后的所有字符将立即删除,请参见截图:


 使用用户定义函数删除第 N 次出现之前或之后的文本

如您所见,您可以通过使用 Excel 的本机函数以不同的组合来解决在第 N 次出现之前或之后删除文本的情况。 问题是你需要记住这些棘手的公式。 在这种情况下,我将创建一个用户定义的函数来覆盖所有场景,请执行以下操作:

1。 按住 Alt + F11键 键打开 Microsoft Visual Basic应用程序 窗口。

2。 点击 插页 > 模块,并将以下代码粘贴到模块窗口中。

VBA 代码:删除第 N 次出现字符之前或之后的文本

Function RemoveTextOccurrence(Str As String, Delimiter As String, Occurrence As Integer, IsAfter As Boolean)
Dim xStr As String
Dim xStrLen, xF, xIntStart As Integer
xStr = Str
xStrLen = Len(xStr)
xIntStart = 1
For xF = 1 To Occurrence
xIntStart = InStr(xIntStart + 1, xStr, Delimiter, vbTextCompare)
If (xIntStart = 0) Or (xIntStart < 0) Then
    If IsAfter Then
    RemoveTextOccurrence = xStr
    Else
    RemoveTextOccurrence = ""
    End If
    Exit Function
End If
Next
If IsAfter Then
    RemoveTextOccurrence = Mid(Str, 1, xIntStart - 1)
Else
    RemoveTextOccurrence = Mid(Str, xIntStart + 1)
End If
End Function

3. 然后,关闭并退出代码窗口,返回工作表,使用以下公式:

在第二次出现逗号之前删除文本:

=RemoveTextOccurrence(A2, ", ", 2, FALSE)

在第二次出现逗号后删除文本

=RemoveTextOccurrence(A2, ", ", 2, TRUE)


3.3 删除最后一次出现之前或之后的文本

如果您需要删除最后一个特定字符之前或之后的所有文本,并且只保留最后一个特定字符之后或之前的子字符串,如下图所示,本节将讨论解决此问题的一些公式。

 使用公式删除最后一次出现字符之前的文本

要删除字符最后一次出现之前的所有字符,通用语法是:

=RIGHT(cell,LEN(cell)-SEARCH("#",SUBSTITUTE(cell,"char","#",LEN(cell)-LEN(SUBSTITUTE(cell,"char","")))))
  • 单元格:要从中删除文本的单元格引用或文本字符串;
  • 坦克:您要根据其删除文本的特定分隔符;

现在,如果您需要删除最后一次出现逗号之前的文本,请将以下公式复制或输入到空白单元格中:

=RIGHT(A2,LEN(A2)-SEARCH("#",SUBSTITUTE(A2,",","#",LEN(A2)-LEN(SUBSTITUTE(A2,",","")))))

备注:在上面的公式中: A2 是要从中删除文本的单元格; , 是您要根据其删除文本的特定字符,您可以根据需要将其更改为任何其他字符。

然后,拖动填充柄将公式复制到其他单元格,最后一个逗号之前的所有字符将被删除,如下图所示:


 在最后一次出现带有公式的字符后删除文本

如果单元格值用可变数量的分隔符分隔,现在,您想删除该分隔符的最后一个实例之后的所有内容,通用语法是:

=LEFT(cell,FIND("#",SUBSTITUTE(cell,"char","#",LEN(cell)-LEN(SUBSTITUTE(cell,"char",""))))-1)
  • 单元格:要从中删除文本的单元格引用或文本字符串;
  • 坦克:您要根据其删除文本的特定分隔符;

请将以下公式复制或输入到空白单元格中,然后向下拖动填充手柄以获得您需要的其他结果,请参见屏幕截图:

=LEFT(A2,FIND("#",SUBSTITUTE(A2,",","#",LEN(A2)-LEN(SUBSTITUTE(A2,",",""))))-1)

备注:在上面的公式中: A2 是要从中删除文本的单元格; , 是您要根据其删除文本的特定字符,您可以根据需要将其更改为任何其他字符。


3.4 去掉括号之间的文字

如果您有一个文本字符串列表,其中部分字符括在括号中,现在,您可能希望删除括号内的所有字符,包括括号本身,如下图所示。 本节将讨论在 Excel 中解决此任务的一些技巧。

 使用查找和替换功能删除括号之间的文本

在 Excel 中,内置的查找和替换功能可以帮助您查找括号内的所有文本,然后将它们替换为空。 请这样做:

1. 选择要删除括号之间文本的数据列表。

2。 然后,点击 主页 > 查找和选择 > 更换 (或按 Ctrl + H 键)转到查找和替换对话框,在 查找和替换 对话框中,进行以下操作:

  • 查找内容 字段中,键入 (*) 进入文本框;
  • 更换 字段,将此字段留空。

3。 然后,点击 “全部替换” 按钮,选中单元格中括号内的所有字符(包括括号)将被一次性删除。 看截图:

Tips:本 查找和替换 功能也适用于文本字符串中的两对或多对括号。


 用公式删除括号之间的文本

除了查找和替换功能外,您还可以在 Excel 中使用公式来解决此任务,通用语法为:

=SUBSTITUTE(text,MID(LEFT(text,FIND(")",text)),FIND("(",text),LEN(text)),"")
  • 文本:要从中删除字符的文本字符串或单元格引用。

现在,请将以下公式复制或输入到要获得结果的空白单元格中:

=SUBSTITUTE(A2,MID(LEFT(A2,FIND(")",A2)),FIND("(",A2),LEN(A2)),"")

然后,将填充手柄向下拖动到要应用此公式的单元格,包括括号在内的括号内的所有文本将立即删除,请参见屏幕截图:

Tips: 如果单元格值中没有括号,应用上述公式后会显示错误,若要忽略错误,请使用以下公式:

=IFERROR(SUBSTITUTE(A2,MID(LEFT(A2,FIND(")",A2)),FIND("(",A2),LEN(A2)),""),A2)


 使用用户定义函数删除括号之间的文本

上述公式适用于从一对括号中删除文本,如果您需要从文本字符串中的多对括号中删除文本,该公式将无法正常工作。 在这里,我将创建一个简单的用户定义函数来解决此任务。

1。 按住 Alt + F11键 键打开 Microsoft Visual Basic应用程序 窗口。

2。 点击 插页 > 模块,并将以下代码粘贴到模块窗口中。

VBA 代码:删除括号之间的文本

Function remtxt(ByVal str As String) As String
'Updateby Extendoffice
  While InStr(str, "(") > 0 And InStr(str, ")") > InStr(str, "(")
    str = Left(str, InStr(str, "(") - 1) & Mid(str, InStr(str, ")") + 1)
  Wend
  remtxt = Trim(str)
End Function

3. 然后,返回到工作表,并在空白单元格中输入此公式: = remtxt(A2),然后将填充手柄向下拖动到要应用此公式的单元格,所有括号内的所有文本(包括括号)都将被删除,如下图所示:


从文本字符串中删除单词

在某些情况下,您可能希望从单元格列表中删除一些单词,例如第一个或最后一个单词、单元格中的重复单词。 为了解决这些类型的删除,本节将为您介绍一些方法。

4.1 从文本字符串中删除第一个或最后一个单词

要从文本字符串列表中删除第一个或最后一个单词,以下公式可能对您有所帮助。

 使用公式从文本字符串中删除第一个单词

从文本字符串列表中删除第一个单词,您可以基于 RIGHT、LEN 和 FIND 函数创建一个简单的公式,通用语法为:

=RIGHT(text,LEN(text)-FIND(" ",text))
  • 文本:要从中删除第一个单词的文本字符串或单元格引用。

现在,请输入以下公式或将其复制到空白单元格中:

=RIGHT(A2,LEN(A2)-FIND(" ",A2))

然后,向下拖动填充手柄以将公式应用于其他单元格,请参见屏幕截图:

Tips:如果您需要从单元格中删除前 N 个单词,请使用以下公式:

=MID(TRIM(text),1+FIND("~",SUBSTITUTE(TRIM(text)," ","~",N)),255)
  • 文本:要从中删除前 n 个单词的文本字符串或单元格引用;
  • N: 表示要从文本字符串的开头删除多少个单词。

例如,要从单元格中删除前两个单词,请将以下公式复制或输入到空白单元格中以根据需要获得结果,请参见屏幕截图:

=MID(TRIM(A2),1+FIND("~",SUBSTITUTE(TRIM(A2)," ","~",2)),255)


 使用公式从文本字符串中删除最后一个单词

要从文本字符串中删除最后一个单词,您还可以使用公式来解决此任务,通用语法为:

=LEFT(TRIM(text),FIND("~",SUBSTITUTE(text," ","~",LEN(TRIM(text))-LEN(SUBSTITUTE(TRIM(text)," ",""))))-1)
  • 文本:要从中删除最后一个单词的文本字符串或单元格引用;

请在空白单元格中使用以下公式,然后向下拖动填充手柄以将公式应用于其他单元格,请参见屏幕截图:

=LEFT(TRIM(A2),FIND("~",SUBSTITUTE(A2," ","~",LEN(TRIM(A2))-LEN(SUBSTITUTE(TRIM(A2)," ",""))))-1)

Tips:要从单元格列表中删除最后 N 个单词,通用语法是:

=LEFT(text,FIND("~",SUBSTITUTE(text," ","~",LEN(text)-LEN(SUBSTITUTE(text," ",""))-(N-1))))
  • 文本: 要从中删除最后 n 个单词的文本字符串或单元格引用;
  • N:表示要从文本字符串末尾删除的单词数。

假设要从单元格列表中删除最后 3 个单词,请使用以下公式返回结果,请参见屏幕截图:

=LEFT(A2,FIND("~",SUBSTITUTE(A2," ","~",LEN(A2)-LEN(SUBSTITUTE(A2," ",""))-(3-1))))


4.2 去除单元格内重复的字符或单词

在删除重复的值或行时,Excel 提供了一些不同的选项,但是,在删除给定单元格中的某些重复字符或单词时,可能没有任何好的内置功能来解决它​​。 在这种情况下,本节将帮助创建一些用户定义的函数来解决这个难题。

 使用用户定义函数删除单元格中的重复字符

如果您在一个单元格中多次出现相同的字符,要删除单元格中的重复字符并只保留第一个出现的字符,如下图所示,您可以使用以下用户定义函数。

1。 按住 Alt + F11键 键打开 Microsoft Visual Basic应用程序 窗口。

2。 点击 插页 > 模块,并将以下代码粘贴到模块窗口中。

VBA 代码:删除单元格中的重复字符

Function RemoveDupeschars(pWorkRng As Range) As String
'Updateby Extendoffice
Dim xValue As String
Dim xChar As String
Dim xOutValue As String
Set xDic = CreateObject("Scripting.Dictionary")
xValue = pWorkRng.Value
For i = 1 To VBA.Len(xValue)
    xChar = VBA.Mid(xValue, i, 1)
    If xDic.Exists(xChar) Then
    Else
        xDic(xChar) = ""
        xOutValue = xOutValue & xChar
    End If
Next
RemoveDupeschars = xOutValue
End Function

3. 然后关闭代码窗口,回到工作表,输入这个公式 =删除Dupeschars(A2) 到您的数据旁边的空白单元格中,然后将填充手柄拖到要应用此公式的单元格上,请参阅屏幕截图:

备注A2 是要从中删除重复字符的数据单元格。

Tips:: 该函数区分大小写,因此将小写和大写字母视为不同的字符。


 使用用户定义函数删除单元格中的重复单词

假设您在一个单元格中有相同的单词或文本字符串,并希望从单元格中删除所有相同的单词,如下图所示。 您可以使用以下用户定义函数在 Excel 中解决此任务。

1。 按住 Alt + F11键 键打开 Microsoft Visual Basic应用程序 窗口。

2。 点击 插页 > 模块,并将以下代码粘贴到模块窗口中。

VBA 代码:删除单元格中的重复单词

Function RemoveDupeswords(txt As String, Optional delim As String = " ") As String
'Updateby Extendoffice
    Dim x
    With CreateObject("Scripting.Dictionary")
        .CompareMode = vbTextCompare
        For Each x In Split(txt, delim)
            If Trim(x) <> "" And Not .exists(Trim(x)) Then .Add Trim(x), Nothing
        Next
        If .Count > 0 Then RemoveDupeswords = Join(.keys, delim)
    End With
End Function

3. 然后关闭代码窗口,返回工作表,输入这个公式 =RemoveDupeswords(A2,",") 到您的数据旁边的空白单元格中,然后将填充手柄拖到要应用此公式的单元格上,请参阅屏幕截图:

备注: A2 是要从中删除重复单词的单元格,以及逗号和空格 (, ) 是分隔文本字符串的分隔符,您可以根据需要将它们更改为任何其他分隔符。

Tips:: 该函数不区分大小写,小写和大写字母被视为相同的字符。


4.3 将文本字符串修剪为 N 个单词

如果单元格中有很长的文本字符串,有时您可能希望将文本字符串修剪为一定数量的单词,这意味着只保留前 n 个单词并剪切其余单词。 本节将讨论帮助您在 Excel 中完成这项工作的一些技巧。

 使用公式将文本字符串修剪为 N 个单词

要将文本字符串修剪为 N 个单词,您可以基于 LEFT、FIND 和 SUBSTITUTE 函数创建一个公式,通用语法为:

=LEFT(text,FIND("~",SUBSTITUTE(text," ","~",N))-1)
  • 文本:要修剪的文本字符串或单元格引用;
  • N:要从给定文本字符串的左侧保留的单词数。

要处理这项工作,请将以下公式复制或输入到空白单元格中:

=LEFT(A2,FIND("~",SUBSTITUTE(A2," ","~",B2))-1)

然后,向下拖动填充手柄以将此公式应用于其他单元格,请参见屏幕截图:


 使用用户定义的函数将文本字符串修剪为 N 个单词

除了上面的公式,你还可以创建一个用户定义的函数来解决这个任务,请这样做:

1。 按住 Alt + F11键 键打开 Microsoft Visual Basic应用程序 窗口。

2。 点击 插页 > 模块,并将以下代码粘贴到模块窗口中。

VBA 代码:将文本字符串修剪为 N 个单词

Function GetNWords(StrWords As String, Num_of_Words As Integer) As String
'Updateby Extendoffice
Dim xArr
Dim xRes As String
Dim xF As Integer
xStr = StrWords
If (Num_of_Words < 1) Then
    GetNWords = ""
    Exit Function
End If
xArr = Split(xStr, " ")
xRes = ""
On Error Resume Next
For xF = 0 To UBound(xArr)
    If Trim(xArr(xF)) <> "" Then
    Num_of_Words = Num_of_Words - 1
        If xRes = "" Then
            xRes = Trim(xArr(xF))
        Else
            xRes = xRes & " " & Trim(xArr(xF))
        End If
    End If
    If Num_of_Words = 0 Then Exit For
Next
If Num_of_Words = 0 Then
    GetNWords = xRes & "..."
Else
    GetNWords = xRes & "..."
End If
End Function

3. 然后关闭并退出代码窗口,回到工作表,输入这个公式: =GetNWords(A2,B2) 进入一个空白单元格,然后向下拖动填充手柄以将此公式应用于其他单元格,仅保留第一个特定数量的单词,如下图所示:


  • 超级公式栏 (轻松编辑多行文本和公式); 阅读视图 (轻松读取和编辑大量单元格); 粘贴到过滤范围...
  • 合并单元格/行/列 和保存数据; 拆分单元格内容; 合并重复的行和总和/平均值...防止细胞重复; 比较范围...
  • 选择重复或唯一 行; 选择空白行 (所有单元格都是空的); 超级查找和模糊查找 在许多工作簿中; 随机选择...
  • 确切的副本 多个单元格,无需更改公式参考; 自动创建参考 到多张纸; 插入项目符号,复选框等...
  • 收藏并快速插入公式,范围,图表和图片; 加密单元 带密码 创建邮件列表 并发送电子邮件...
  • 提取文字,添加文本,按位置删除, 删除空间; 创建和打印分页小计; 在单元格内容和注释之间转换...
  • 超级筛选 (将过滤方案保存并应用于其他工作表); 高级排序 按月/周/日,频率及更多; 特殊过滤器 用粗体,斜体...
  • 结合工作簿和工作表; 根据关键列合并表; 将数据分割成多个工作表; 批量转换xls,xlsx和PDF...
  • 数据透视表分组依据 周号,周几等 显示未锁定的单元格 用不同的颜色 突出显示具有公式/名称的单元格...
kte选项卡201905
  • 在Word,Excel,PowerPoint中启用选项卡式编辑和阅读,发布者,Access,Visio和Project。
  • 在同一窗口的新选项卡中而不是在新窗口中打开并创建多个文档。
  • 每天将您的工作效率提高50%,并减少数百次鼠标单击!
officetab底部
Comments (0)
No ratings yet. Be the first to rate!
There are no comments posted here yet
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations