提取特定字符最後一次出現後的文本
如果您有一系列包含多個分隔符的複雜文本字符串(以下方截圖為例,其中包含連字符、逗號和單元格數據中的空格),現在您想找到最後一個連字符出現的位置,然後提取其後的子字符串。本文將介紹一些用於處理此任務的公式。
公式 1:提取特定分隔符最後一次出現後的子字符串
在 Excel 中,結合 LEN、SEARCH 和 SUBSTITUTE 函數使用的 RIGHT 函數可以幫助您創建解決此問題的公式。
1. 要提取最後一個連字符後的子字符串,請在空白單元格中輸入或複製以下公式:
2. 然後,向下拖動填充柄以應用該公式到其他單元格,您將得到如下截圖所示的結果:
公式解釋:
1. LEN(A2)-LEN(SUBSTITUTE(A2,"-","")):這部分用於獲取單元格 A2 中連字符的數量。
- LEN(A2):此 LEN 函數返回單元格 A2 中字符的總數。它將返回:44。
- SUBSTITUTE(A2,"-",""):此 SUBSTITUTE 函數用於將所有連字符替換為空值。您將得到這樣的結果:“InsertDeleterows, sheets, images, formulas”。
- LEN(SUBSTITUTE(A2,"-",""):獲取單元格 A2 中不包含連字符的文本字符串的總長度。
- LEN(A2)-LEN(SUBSTITUTE(A2,"-","")):從總字符串長度中減去不含連字符的文本字符串長度,以獲取連字符的數量,這將得到 2。
2. SUBSTITUTE(A2,"-","#",LEN(A2)-LEN(SUBSTITUTE(A2,"-",""))):此 SUBSTITUTE 函數用於將第一部分公式返回的最後一個連字符替換為 # 字符。您將得到這個結果:“Insert-Delete#rows, sheets, images, formulas”。
3. SEARCH("#",SUBSTITUTE(A2,"-","#",LEN(A2)-LEN(SUBSTITUTE(A2,"-",""))))= SEARCH("#", "Insert-Delete#rows, sheets, images, formulas"):此 SEARCH 函數將返回由 SUBSTUTTE 函數返回的文本字符串中 # 字符的位置。它將得到數字 14。
4. LEN(A2)-SEARCH("#",SUBSTITUTE(A2,"-","#",LEN(A2)-LEN(SUBSTITUTE(A2,"-","")))):這部分公式將獲取最後一個連字符後有多少字符。這將得到數字 30。
5. RIGHT(A2,LEN(A2)-SEARCH("#",SUBSTITUTE(A2,"-","#",LEN(A2)-LEN(SUBSTITUTE(A2,"-","")))))= RIGHT(A2, 30):最後,RIGHT 函數用於從單元格 A2 的文本字符串右側提取由步驟 4 公式返回的 30 個字符。
注意:
1. 如果需要提取其他分隔符最後一次出現後的文本,只需根據需要將連字符替換為另一個分隔符即可。
2. 如果文本字符串中沒有特定的分隔符,上述公式將返回錯誤值,如下截圖所示:
要修復此錯誤,您可以將上述公式嵌套在 IFERROR 函數中,請使用以下公式:
公式 2:提取特定分隔符最後一次出現後的子字符串
這是另一個簡單的公式,由 TRIM、RIGHT、SUBSTITUTE、REPT 和 LEN 函數組成,也可以幫助您在 Excel 中解決此任務。
1. 請將以下公式複製或輸入到您希望獲得結果的空白單元格中:
2. 然後,向下拖動填充柄以應用該公式到其他單元格,所有最後一個連字符後的子字符串都已提取,如下截圖所示:
公式解釋:
1. LEN(A2):此 LEN 函數返回單元格 A2 中字符的總數。這將被識別為 RIGHT 函數中的 num_chars 參數。它將返回:44。
2. SUBSTITUTE(A2,"-",REPT(" ",LEN(A2))):
- REPT(" ",LEN(A2):此 REPT 函數用於根據單元格 A2 的長度獲取一定數量的空格字符串。
- SUBSTITUTE(A2,"-",REPT(" ",LEN(A2))):此 SUBSTITUTE 函數將用 REPT 函數返回的空格字符串替換單元格 A2 中的連字符。
這部分公式將被識別為 RIGHT 函數中的 text 參數。
3. RIGHT(SUBSTITUTE(A2,"-",REPT(" ",LEN(A2))),LEN(A2)):此 RIGHT 函數將從 SUBSTITUTE 函數返回的文本字符串右側獲取文本。
4. TRIM():此 TRIM 函數用於刪除所有額外的空格,並僅在單詞之間保留一個空格。
相關函數:
- RIGHT:
- RIGHT 函數從文本字符串的右側提取指定數量的字符。
- SEARCH:
- SEARCH 函數可幫助您從給定文本中查找特定字符或子字符串的位置。
- LEN:
- LEN 函數返回文本字符串中的字符數。
- SUBSTITUTE:
- Microsoft Excel 的 SUBSTITUTE 函數用另一個文本或字符替換文本字符串中的文本或字符。
- TRIM:
- TRIM 函數刪除文本字符串中的所有額外空格,並僅在單詞之間保留單個空格。
- REPT:
- REPT 函數用於將字符重複指定的次數。
更多文章:
- 從單元格中提取多行文本
- 如果您有一系列由換行符分隔的文本字符串(在輸入文本時按下 Alt + Enter 鍵產生),現在您想將這些文本行提取到多個單元格中,如下截圖所示。如何在 Excel 中使用公式解決這個問題?
- 從文本字符串中提取第 N 個單詞
- 如果您有一系列文本字符串或句子,現在您想從列表中提取特定的第 N 個單詞,如下截圖所示。本文將介紹一些在 Excel 中解決此問題的方法。
- 從文本字符串中提取括號內的文本
- 如果文本字符串中有部分文本被括號包圍,現在您需要提取所有括號內的文本字符串,如下截圖所示。如何在 Excel 中快速輕鬆地解決這個問題?
- 從文本字符串中提取子字符串
- 在 Excel 中,您可能經常需要從文本字符串中提取子字符串,雖然 Excel 沒有直接的函數來完成此操作,但借助 LEFT、RIGHT、MID 和 SEARCH 函數,您可以根據需要提取各種子字符串。
最佳的辦公生產力工具
Kutools for Excel - 幫助您脫穎而出
? | Kutools AI 助手:基於智能執行、生成代碼、創建自訂公式、分析數據並生成圖表、調用 Kutools 函數…來徹底改變數據分析方式。 |
熱門功能:查找、標記或識別重複值 | 刪除空行 | 合併列或單元格而不丟失數據 | 四捨五入無需公式 ... | |
超級 VLookup:多條件 | 多值 | 跨多工作表 | 模糊查找... | |
高級下拉列表:簡易下拉列表 | 依賴下拉列表 | 多選下拉列表... | |
列管理器:添加特定數量的列 | 移動列 | 切換隱藏列的可見狀態 | 比較列以選擇相同和不同的單元格 ... | |
特色功能:網格聚焦 | 設計檢視 | 增強編輯欄 | 工作簿與工作表管理器 | 資源庫(自動文本) | 日期提取器 | 合併資料 | 加密/解密儲存格 | 按清單發送電子郵件 | 超級篩選 | 特殊篩選(篩選粗體/斜體/刪除線...) ... | |
頂級 15 種工具集: 12 個文字工具(添加文本、刪除特定字符 ...) | 50+ 圖表 類型(甘特圖 ...) | 40+ 實用 公式(基於生日計算年齡 ...) | 19 個插入工具(插入QR碼、從路徑插入圖片 ...) | 12 個轉換工具(金額轉大寫、匯率轉換 ...) | 7 個合併與分割工具(高級合併行、分割Excel單元格 ...) | ... 還有更多 |
Kutools for Excel 擁有超過 300 種功能,確保您需要的功能只需點擊一下即可實現...
Office Tab - 啟用 Microsoft Office(包括 Excel)中的分頁閱讀和編輯功能
- 一秒鐘內在數十個打開的文檔之間切換!
- 每天為您減少數百次鼠標點擊,告別滑鼠手。
- 當查看和編輯多個文檔時,您的工作效率提高 50%。
- 為 Office(包括 Excel)帶來高效的分頁功能,就像 Chrome、Edge 和 Firefox 一樣。