提取特定字元最後一次出現後的內容
若您手中有一份包含多種分隔符號的複雜文字字串清單(如下方截圖所示,儲存格資料中同時含有連字號、逗號與空格),而您希望找出連字號最後一次出現的位置,並提取該位置之後的子字串,本文將為您介紹幾種實用的公式解法。

公式 1:提取特定分隔符號最後一次出現後的子字串
在 Excel 中,結合 RIGHT、LEN、SEARCH 與 SUBSTITUTE 函數,即可建立公式輕鬆完成此任務。
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 函數會傳回 SUBSTITUTE 函數所傳回文字字串中「#」字元的位置,結果為數字 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 函數會將儲存格 A2 中的連字號「——」替換為 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 中運用公式,將這些文字行分別提取至多個儲存格中(如以下截圖所示)?
- 在 Excel 中從文字字串提取第 N 個單字
- 若您手中有一份文字字串或句子清單,並希望從中提取特定的第 N 個單字(如下方截圖所示),本文將為您介紹幾種在 Excel 中輕鬆達成此目標的方法。
- 從文字字串中提取括號內的內容
- 若文字字串中包含括號包圍的部分,您該如何在 Excel 中快速輕鬆地提取所有括號內的文字(如下方截圖所示)?
- 在 Excel 中從文字字串提取子字串
- 從文字字串中提取子字串是常見的任務。雖然 Excel 沒有直接執行此操作的函數,但透過 LEFT、RIGHT、MID 與 SEARCH 函數的搭配,您就能靈活提取所需的各种子字串。
最佳 Office 生產力工具
Kutools for Excel -助您脫穎而出
| 🤖 | KUTOOLS AI 助手:以以下方式革新數據分析:智慧執行 | 產生程式碼| 建立自訂公式 | 分析資料並產生圖表| 呼叫增強函數…… |
| 熱門功能:尋找、標示或標記重複值 | 刪除空白行 | 合併列或儲存格而不遺失資料 | 不使用公式的四捨五入…… | |
| 超級 VLookup:多重條件 | 多重值 | 跨多個工作表 | 模糊查找…… | |
| 進階下拉列表:簡易下拉式清單 | 相依下拉式清單 | 多選下拉式清單…… | |
| 欄位管理員:新增指定數量的欄位 | 移動欄位 | 切換隱藏欄位的可見狀態 |比較欄位以選擇相同/不同單元格…… | |
| 精選功能:網格聚焦 | 設計視圖 | 增強編輯欄 | 工作簿與工作表管理員|資源庫(自動文字)| 日期提取 | 合併工作表 | 加密/解密儲存格 | 依清單傳送電子郵件 | 超級篩選 | 特殊篩選(篩選粗體儲存格/斜體/刪除線……) ...... | |
| 頂尖 15 工具組:12 文字工具(添加文本,刪除特定字符……)| 50+ 圖表 類型(甘特圖……)| 40+ 實用公式(基於生日計算年齡……)| 19 插入工具(插入二維碼,從路徑插入圖片……)| 12 轉換工具(金額轉大寫,匯率轉換……)| 7 合併和拆分工具(高級合併行,拆分 Excel 儲存格……)|……還有更多 |
Kutools for Excel 擁有超過 300 項功能,確保您所需的功能僅需一鍵即可取得……
Office Tab -在 Microsoft Office(包含 Excel)中啟用分頁式閱讀與編輯
- 一秒內在數十份開啟的文件間快速切換!
- 每天為您減少數百次滑鼠點擊,遠離滑鼠手困擾。
- 在檢視與編輯多份文件時,讓您的生產力提升高達 50%。
- 為 Office(包含 Excel)帶來如 Chrome、Edge 與 Firefox 般的高效能分頁體驗。