跳到主要內容

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 for Applications 窗口。

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 for Applications 窗口。

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個字符或某個位置的字符

記住各種公式,從文本字符串的左、右或特定位置刪除字符可能會讓您痛苦, Excel的Kutools 支持一個強大的功能—— 按位置刪除. 使用這個小工具,您只需點擊幾下即可處理這些任務,而無需記住任何公式。

安裝後 Excel的Kutools,請這樣做:

1. 選擇要刪除字符的單元格,然後單擊 庫工具 > 文本 > 按位置刪除,請參見屏幕截圖:

2。 在 按位置刪除 對話框,請執行以下操作:

2.1 從單元格中刪除前 n 個字符:

  • In 民數記 文本框中,鍵入要從字符串中刪除的字符數。 在這個例子中,我將刪除前 2 個字符。
  • 選擇 從左起 選項 位置 部分。
  • 然後,單擊 Ok or 登記 按鈕以獲得如下圖所示的結果。

2.2 從單元格中刪除最後 n 個字符:

  • In 民數記 文本框中,鍵入要從字符串中刪除的字符數。 在這個例子中,我將刪除最後 3 個字符。
  • 選擇 從右邊 選項 位置 部分。
  • 然後,單擊 Ok or 登記 按鈕以獲得如下圖所示的結果。

2.3 去除單元格特定位置的n個字符:

如果您需要從文本字符串的某個位置刪除特定數量的字符,例如從字符串的第三個字符開始刪除 3 個字符。

  • In 民數記 文本框中,鍵入要從字符串中刪除的字符數。 在這個例子中,我將從某個位置刪除 3 個字符。
  • 選擇 指定 選項,然後在文本框中鍵入要從其開始刪除字符的數字 位置 部分。 在這裡,我將從第三個字符中刪除字符。
  • 然後,單擊 Ok or 登記 按鈕以獲得如下圖所示的結果。

立即下載並免費試用Excel的Kutools!


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, "#", ""), "&", ""), "*", ""), "%", "")

然後,將填充手柄向下拖動到要應用此公式的單元格,您指定的所有不需要的字符將立即刪除,請參見屏幕截圖:

保養竅門: 如果要刪除的字符較多,則只需在公式中嵌套更多 SUBSTITUTE 函數即可。


 使用用戶定義函數從文本字符串中刪除多個特殊字符

如果要刪除的特殊字符很少,上面嵌套的 SUBSTITUTE 函數效果很好,但是如果要刪除的字符有幾十個,則公式會變得太長且難以管理。 在這種情況下,以下用戶定義函數可以幫助您快速輕鬆地完成此任務。

1。 按住 Alt + F11鍵 鍵打開 Microsoft Visual Basic for Applications 窗口。

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 包含您要刪除的特殊字符(您可以鍵入您需要的任何其他特殊字符)。


 從具有驚人功能的文本字符串中刪除多個特殊字符

如果你已經安裝 Excel的Kutools,其 刪除字符 功能,您可以根據需要從單元格列表中刪除各種字符,例如數字字符、字母字符、非打印字符……。

安裝後 Excel的Kutools,請這樣做:

1. 選擇要從中刪除特殊字符的單元格範圍,然後單擊 庫工具 > 文本 > 刪除字符,請參見屏幕截圖:

2。 在 刪除字符 對話框:

  • 格紋 習俗 選項下 刪除字符 部分。
  • 然後在要刪除的文本框中輸入特殊字符。
  • 然後,單擊 Ok or 登記 按鈕一次刪除您指定的字符。 看截圖:

立即下載並免費試用Excel的Kutools!


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 for Applications 窗口。

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) 進入一個空白單元格,然後將填充手柄向下拖動到要應用此公式的單元格,請參見屏幕截圖:


 使用方便的選項從文本字符串中刪除數字

如果你厭倦了複雜的公式,現在,讓我向你展示一個簡單的工具—— Excel的Kutools刪除字符. 使用這個方便的功能,您只需點擊幾下即可完成此任務。

安裝後 Excel的Kutools,請這樣做:

1. 選擇要刪除數字的單元格範圍,然後單擊 庫工具 > 文本 > 刪除字符.

2。 在 刪除字符 對話框,請執行以下操作:

  • 格紋 數字 選項下 刪除字符 部分。
  • 然後,單擊 Ok or 登記 按鈕立即刪除數字。 看截圖:

立即下載並免費試用Excel的Kutools!


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 for Applications 窗口。

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) 進入一個空白單元格,然後將填充手柄向下拖動到要應用此公式的單元格,只有數字將被提取,如下圖所示:


 使用簡單的功能從文本字符串中刪除非數字字符

要直接刪除一系列單元格中的非數字字符, Excel的Kutools刪除字符 實用程序只需點擊幾下即可完成。

安裝後 Excel的Kutools,請這樣做:

1. 選擇要從中刪除非數字字符的單元格範圍,然後單擊 庫工具 > 文本 > 刪除字符.

2。 在 刪除字符 對話框中,請設置以下操作:

  • 格紋 非數值 選項下 刪除字符 部分。
  • 然後,單擊 Ok or 登記 按鈕立即刪除所有非數字字符。 看截圖:

立即下載並免費試用Excel的Kutools!


2.4 將一個單元格中的文本和數字分成兩列

有時,您可能希望將文本字符串中的文本和數字提取到兩個單獨的列中,借助以下方法,您可以快速輕鬆地完成此任務。

 使用用戶定義函數將一個單元格中的文本和數字分成兩列

通過使用以下用戶定義函數,您可以一次提取文本和數字,請執行以下步驟:

1。 按住 Alt + F11鍵 鍵打開 Microsoft Visual Basic for Applications 窗口。

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) 到另一個單元格中,然後將填充手柄向下拖動到要填充此公式以獲取數字的單元格,請參見屏幕截圖:


 使用簡單的功能將一個單元格中的文本和數字分成兩列

如果你有 Excel的Kutools,其 分裂細胞 實用程序可以幫助您根據任何分隔符、指定的寬度或文本和數字將單元格拆分為多列或多行。

安裝後 Excel的Kutools,請這樣做:

1. 選擇要拆分的單元格範圍,然後單擊 庫工具 > 合併與拆分 > 分裂細胞,請參見屏幕截圖:

2。 在 分裂細胞 對話框中選擇 拆分為列 選項下 類別 部分,然後檢查 文字和數字 來自 分割為 部分,請參見屏幕截圖:

3。 然後,點擊 Ok 按鈕,另一個 分裂細胞 彈出對話框,選擇一個單元格輸出分隔的文本和數字,然後點擊 OK 按鈕。 現在,您可以看到所選單元格中的文本和數字一次分為兩列,如下圖所示:

立即下載並免費試用Excel的Kutools!


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

換行符允許您在 Excel 的同一單元格中有多行。 有時,當您從網站複製數據或將單元格內容與 Alt + Enter鍵 手動鍵,您將獲得換行符或回車符。 在某些情況下,您可能希望刪除換行符以使單元格內容成為一行,如下圖所示。 在這裡,我將介紹一些在 Excel 中解決此任務的方法。

 使用查找和替換功能從文本字符串中刪除換行符

在Excel中,您可以使用 查找和替換 刪除換行符的功能,請執行以下操作:

1. 選擇要從中刪除換行符的數據范圍。

2。 然後,點擊 首頁 > 查找和選擇 > 更換 (或按 Ctrl + H 鍵)去 查找和替換 對話框,請參見屏幕截圖:

3。 在彈出 查找和替換 對話框,請執行以下操作:

  • 將光標放在 查找內容 場和新聞 Ctrl + J 在鍵盤上,您可能看不到任何內容,但已插入換行符。
  • 更換 字段,將此字段留空以刪除換行符或按 太空霸r 一次用空格替換換行符。

4。 然後,點擊 “全部替換” 按鈕,所選單元格中的所有換行符將立即被刪除或替換為空格。 看截圖:


 使用 SUBSTITUTE 函數從文本字符串中刪除換行符

您還可以基於 SUBSTITUTE 和 CHAR 函數創建一個公式,以從文本字符串中刪除換行符。

請應用以下公式得到結果:

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

保養竅門:SUBSTITUTE 函數查找並替換錶示換行符的 CHAR(10) 字符。 如果您希望結果由逗號和空格分隔,您可以使用以下公式:

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


 使用 VBA 代碼從文本字符串中刪除換行符

如果您習慣使用 VBA 代碼,這裡還為您提供了代碼,請按照以下步驟操作:

1。 按住 Alt + F11鍵 鍵打開 Microsoft Visual Basic for Applications 窗口。

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 按鈕,所有換行符將從所選數據范圍中刪除。


 使用智能選項從文本字符串中刪除換行符

在這裡, Excel的Kutools刪除字符 功能還可以幫助您輕鬆刪除換行符。

安裝後 Excel的Kutools,請這樣做:

1. 選擇要刪除換行符的單元格範圍,然後單擊 庫工具 > 文本 > 刪除字符.

2。 在 刪除字符 對話框中,請設置以下操作:

  • 格紋 非印刷 選項下 刪除字符 部分。
  • 然後,單擊 Ok or 登記 按鈕從選定的數據范圍中刪除所有換行符。 看截圖:

立即下載並免費試用Excel的Kutools!


2.6 從文本字符串中刪除空格(前導、尾隨、額外或所有空格)

將文本從外部來源複製並粘貼到 Excel 工作表通常會帶來一些煩人的剩餘空格,手動刪除前導、尾隨或其他額外空格會很乏味。 幸運的是,Excel 提供了一些簡單的技巧來處理這個任務。

 使用 TRIM 函數從文本字符串中刪除多餘的空格(前導、尾隨、多餘)

在 Excel 中,要刪除文本字符串中的前導、尾隨和多餘空格,簡單的 TRIM 函數可以幫助您。 此函數刪除除單詞之間的單個空格之外的所有空格。

請在空白單元格中輸入以下公式:

=TRIM(A2)

然後向下拖動填充柄以復制其他單元格的公式,現在,您可以看到從屏幕截圖中立即刪除了單詞之間的所有前導、尾隨空格和多餘空格:


 從文本字符串中刪除所有空格

如果您想從文本字符串中刪除所有空格,以下 SUBSTITUTE 函數和查找和替換功能可以幫到您。

通過使用 SUBSTITUTE 函數

您可以使用 SUBSTITUTE 函數將所有空格替換為空,請將以下公式應用於空白單元格:

=SUBSTITUTE(A2," ","")

然後,向下拖動填充手柄以將此公式複製到您需要的其他單元格,所有空格將被刪除,如下圖所示:


通過使用查找和替換功能

事實上, 查找和替換 Excel 中的功能也可以幫助刪除選定單元格中的所有空格,請執行以下步驟:

1. 選擇要從中刪除所有空格的數據范圍。

2。 然後,點擊 首頁 > 查找和選擇 > 更換 (或按 Ctrl + H 鍵)轉到 查找和替換 對話框,在打開的 查找和替換 對話框,請執行以下操作:

  • 媒體推薦 空格鍵 ,在 查找內容 領域;
  • 更換 字段,將此字段留空。

3。 然後,單擊 “全部替換” 按鈕,將立即刪除所選單元格中的所有空格。 看截圖:


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

Excel的Kutools 有一個強大的功能—— 刪除空間, 使用此實用程序,您不僅可以在一個對話框中刪除前導空格、尾隨空格、多餘空格,還可以刪除選定範圍內的所有空格,這將提高您的工作效率。

安裝後 Excel的Kutools,請這樣做:

1. 選擇要從中刪除空格的數據范圍,然後單擊 庫工具 > 文本 > 刪除空間。 看截圖:

2。 在 刪除空間 對話框中,選擇一種要從 空間類型:

  • 去除前導空格,請選擇 前導空間 選項;
  • 刪除尾隨空格,請選擇 尾隨空格 選項;
  • 一次刪除前導空格和尾隨空格,請選擇 前導和尾隨空格 選項;
  • 刪除所有多餘的空格,請選擇 所有多餘的空間 選項;
  • 刪除所有空格,請選擇 所有空間 選項。

3。 然後,點擊 Ok or 登記 按鈕,您將獲得所需的結果。

立即下載並免費試用Excel的Kutools!


刪除特定字符之前或之後的字符/文本

在本節中,我將介紹一些用於刪除特定字符第一次、最後一次或第 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 for Applications 窗口。

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。 然後,點擊 “全部替換” 按鈕,選中單元格中括號內的所有字符(包括括號)將被一次性刪除。 看截圖:

保養竅門:“ 查找和替換 功能也適用於文本字符串中的兩對或多對括號。


 用公式刪除括號之間的文本

除了查找和替換功能外,您還可以在 Excel 中使用公式來解決此任務,通用語法為:

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

現在,請將以下公式複製或輸入到要獲得結果的空白單元格中:

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

然後,將填充手柄向下拖動到要應用此公式的單元格,包括括號在內的括號內的所有文本將立即刪除,請參見屏幕截圖:

保養竅門: 如果單元格值中沒有括號,應用上述公式後會顯示錯誤,若要忽略錯誤,請使用以下公式:

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


 使用用戶定義函數刪除括號之間的文本

上述公式適用於從一對括號中刪除文本,如果您需要從文本字符串中的多對括號中刪除文本,該公式將無法正常工作。 在這裡,我將創建一個簡單的用戶定義函數來解決此任務。

1。 按住 Alt + F11鍵 鍵打開 Microsoft Visual Basic for Applications 窗口。

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))

然後,向下拖動填充手柄以將公式應用於其他單元格,請參見屏幕截圖:

保養竅門:如果您需要從單元格中刪除前 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)

保養竅門:要從單元格列表中刪除最後 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 for Applications 窗口。

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 是要從中刪除重複字符的數據單元格。

尖端: 該函數區分大小寫,因此將小寫和大寫字母視為不同的字符。


 使用用戶定義函數刪除單元格中的重複單詞

假設您在一個單元格中有相同的單詞或文本字符串,並且想要從單元格中刪除所有相同的單詞,如下圖所示。 您可以使用以下用戶定義函數在 Excel 中解決此任務。

1。 按住 Alt + F11鍵 鍵打開 Microsoft Visual Basic for Applications 窗口。

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 是要從中刪除重複單詞的單元格,以及逗號和空格 (, ) 是分隔文本字符串的分隔符,您可以根據需要將它們更改為任何其他分隔符。

尖端: 該函數不區分大小寫,小寫和大寫字母被視為相同的字符。


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 for Applications 窗口。

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