如何從文字字串中提取前兩個或最後兩個或第N個單詞?
在Excel中處理大量文本數據時,通常需要從每個儲存格中提取特定的單詞,例如前幾個單詞、最後的單詞或特定位置的單詞。常見的場景包括從包含多詞條目文本的儲存格中提取名稱、地址、關鍵字或唯一識別碼,特別是當數據由空格分隔時。例如,您可能有一個包含句子或產品代碼的儲存格,並且您希望提取前三個單詞,或僅提取最後兩個單詞以進行後續處理。Excel沒有直接內建的功能來實現此目的,但有多種方法可以實現靈活的單詞提取,每種方法都適用於不同的數據大小和需求。本文將介紹公式、實用工具和額外的自動化技術,幫助您有效地從Excel中的文本字串中提取前、後或第N個單詞。
使用公式從文本字串中提取前兩個或前N個單詞
要從儲存格值中提取前幾個單詞,您可以使用以下公式。如果您有一致的單詞分隔符(例如空格),並且希望從儲存格中提取,例如前三個單詞,這尤其有用。這些公式易於應用,對於中等大小的數據集工作良好,並且可以適應提取任何數量的前導單詞。
在空白儲存格(如C2)中輸入以下任一公式,然後拖動填滿手柄向下填充所有相關行的公式。您會看到從每個文本字串中提取出所需的前導單詞,如下面的截圖所示。
解釋與提示:
1. 在上述範例公式中,A2指的是包含原始文本的儲存格,而3是要提取的單詞數量。根據您的數據需要修改這些引用。
2. 如果您希望提取的單詞數量因行而異且指定在B列中,您可以使用以下靈活的公式:
此公式允許您通過引用儲存格(例如B2)來動態指定要提取的單詞數量。確保B2包含有效的整數。
3. 如果您的文本由其他分隔符(如逗號或分號)分隔,則可以通過將空格字符(" ")替換為您的特定分隔符來調整公式。
4. 注意首尾雙空格或多個連續空格,因為它們會影響結果。應用TRIM
有助於刪除多餘的空格。
5. 如果儲存格中的總單詞數少於您試圖提取的數量,該公式將返回完整的文本而不會出錯。
使用公式從文本字串中提取最後兩個或最後N個單詞
要從文本字串中提取最後的單詞(例如最後兩個或最後N個單詞),以下公式將有所幫助。這種方法對於需要一致提取尾隨單詞的數據集非常有效,例如姓氏、文件擴展名或文本儲存格末尾的識別碼。
請將以下公式複製並粘貼到您想要結果的空白儲存格中。輸入公式後,拖動填滿手柄向下應用到其他行。
- A2: 包含文本的源儲存格。
- 3: 您想提取的最後單詞數量。若要獲取最後5個單詞,只需將公式中的3改為5即可。
- 如果儲存格中包含的總單詞數少於您要求的數量,它將簡單地返回該儲存格中所有可用的單詞。
- 如果您的數據由另一個分隔符(逗號、制表符)分隔,請相應地調整公式。
- 數據中的複雜或不一致間距可能會導致結果不準確;在可能的情況下,在應用公式之前清理您的文本。
使用便捷功能從文本字串中提取第一個或第N個單詞
如果您需要僅從文本字串中提取第一個或特定(第N個)單詞,並且更喜歡不需要記憶或編輯複雜公式的解決方案,您可以使用Kutools for Excel。提取儲存格中的第N個單詞功能允許您輕鬆挑選出特定單詞位置,使其適合偶爾使用和重複任務。如果您想要快速、菜單驅動的解決方案,風險最小且無需手動輸入公式,建議使用此方法。
安裝Kutools for Excel後,請按如下操作:
1. 選擇一個顯示提取結果的儲存格。然後轉到Kutools > 公式助手 > 公式助手,如截圖所示:
2. 在公式助手對話框中,執行以下步驟:
- 從公式類型下拉列表中選擇文本。
- 從公式列表框中選擇提取儲存格中的第N個單詞。
- 在儲存格文本框中指定您的源儲存格,並在第N個文本框中輸入所需的單詞位置(例如,第二個單詞輸入2)。
3. 點擊確定以返回結果,然後拖動填滿手柄向下應用相同的邏輯到剩餘的列表。參見插圖:
此方法適合提取要求經常變化的場合,或者當您想要引導界面而不是每次構建自定義公式時。
使用VBA宏提取單詞(第一個、最後一個或第N個單詞)
對於更高級的用例——例如動態提取文本的第一個、最後一個或任何特定的第N個單詞,或者在處理大型或頻繁更新的數據集時——VBA宏提供了比單獨使用公式更多的靈活性和自動化。VBA讓您創建可重複使用的工具,可以快速處理許多儲存格,讓您根據需要自定義要提取哪個單詞或哪組單詞。如果您經常需要以相同方式操縱文本或想避免複雜的嵌套公式,它尤其有用。
典型場景:批量提取導入文本、批量清理或準備標準化報告。
1. 通過點擊開發者 > Visual Basic打開VBA編輯器。在Microsoft Visual Basic for Applications窗口中,選擇插入 > 模塊並將以下代碼粘貼到新模塊中:
Sub ExtractWord()
Dim Rng As Range
Dim Cell As Range
Dim WordPos As Integer
Dim Words() As String
Dim ExtractedWord As String
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set Rng = Application.Selection
Set Rng = Application.InputBox("Select range to extract word from", xTitleId, Rng.Address, Type:=8)
WordPos = Application.InputBox("Enter which word number to extract (1=first,2=second, etc., or -1 for last)", xTitleId, 1, Type:=1)
Application.ScreenUpdating = False
For Each Cell In Rng
Words = Split(Application.Trim(Cell.Value), " ")
If WordPos = -1 Then
If UBound(Words) >= 0 Then
ExtractedWord = Words(UBound(Words))
Else
ExtractedWord = ""
End If
ElseIf WordPos >= 1 And WordPos <= UBound(Words) + 1 Then
ExtractedWord = Words(WordPos - 1)
Else
ExtractedWord = ""
End If
Cell.Offset(0, 1).Value = ExtractedWord
Next Cell
Application.ScreenUpdating = True
MsgBox "Extraction complete! Results placed in the column to the right.", vbInformation, xTitleId
End Sub
2運行宏,點擊 運行按鈕或按下 F5。宏將提示您選擇數據範圍,詢問要提取哪個單詞位置(例如,1表示第一個單詞,-1表示最後一個單詞),然後將提取的單詞放置在右側相鄰列中。確保您的分隔符是空格,或根據需要調整
Split
函數以適應其他分隔符。
這種VBA方法使重複、批量提取變得更加迅速,是當基於公式的解決方案變得繁瑣時的理想選擇。注意:運行宏之前始終保存您的工作簿,並確保在您的安全設置中啟用了宏。
使用Power Query提取單詞(分割並重新組合)
在管理大型表格或重複導入/導出任務時,Power Query提供了一種強大的替代方案,用於從文本字符串中提取和操縱單詞。Power Query位於數據標籤下的“獲取和轉換數據”中,讓您可以視覺上按分隔符(空格、逗號等)拆分文本,提取所需的單詞,然後重新組合或將數據加載回Excel。這個過程高度可重複,適合批量數據清理,特別是在處理成百上千行時。
主要優勢:重複使用的一致性、視覺界面,如果單詞位置需求改變,容易調整。
操作步驟:
- 選擇您的數據範圍並選擇數據 > 從表/範圍以將您的數據加載到Power Query中。如果出現提示,確認/創建您的表。
- 在Power Query編輯器中,選擇包含您文本的列。
- 點擊拆分列 > 按分隔符
- 選擇空格或輸入您的自定義分隔符,然後選擇拆分 - 每次出現分隔符。然後點擊確定。
- 文本中的每個單詞現在都會出現在其自己的列中(例如,Column1、Column2等)。如果您希望提取前兩個單詞,重新組合拆分的單詞。選擇相應的列,右鍵單擊標題,然後從上下文菜單中選擇合併列。
- 選擇您偏好的分隔符(例如,空格或逗號)並點擊確定。
- 最後點擊關閉並加載以將您的結果加載回當前工作簿的新工作表中。
Power Query也使得重用該過程變得毫不費力,因為如果您的底層表發生變化,您可以刷新查詢,確保一致的結果而無需手動重新應用公式或宏。請記住檢查Power Query生成的列數並考慮較短文本字符串中缺失的單詞。
更多相關文章:
- 從儲存格中提取多行
- 如果您有一個由換行符分隔的文本字符串列表(在輸入文本時按下Alt + Enter鍵時會出現),現在,您希望將這些文本行提取到多個儲存格中,如下面的截圖所示。如何在Excel中使用公式解決這個問題?
- 從Excel中的文本字符串提取子字符串
- 在Excel中,您可能需要從文本字符串中提取子字符串,儘管Excel沒有直接的功能來完成這項任務,但借助LEFT、RIGHT、MID和SEARCH函數,您可以根據需要提取各種子字符串。
- 從文本字符串中提取括號內的文字
- 如果文本字符串中有部分文本被括號包圍,現在您需要提取括號內的所有文本字符串,如下面的截圖所示。如何在Excel中快速輕鬆地解決這個問題?
- 在Excel中提取以特定字符開頭的單詞
- 例如,您可能需要提取以特定字符“=”開頭的單詞,如下面的截圖所示,如何在Excel中快速輕鬆地解決這個問題?
- 提取特定字符最後一次出現後的文本
- 如果您有一個包含多個分隔符的複雜文本字符串列表(例如,以下截圖示範的數據,其中包含連字符、逗號、空格),現在,您希望找到最後一次出現連字符的位置,然後提取其後的子字符串。
最佳 Office 辦公效率工具
🤖 | Kutools AI Aide:徹底革新數據分析,基於智能執行|生成程式碼|創建自訂公式|分析數據並生成圖表|調用 Kutools Functions… |
熱門功能:查找、選取項目的背景色或標記重複值 | 刪除空行 | 合併列或單元格且不丟失資料 | 四捨五入... | |
高級 LOOKUP:多條件查找|多值查找|多表查找|模糊查找... | |
高級下拉列表:快速創建下拉列表 | 關聯下拉列表 | 多選下拉列表 ... | |
列管理器: 添加指定數量的列 | 移動列 | 切換隱藏列的可見狀態 | 區域與列比較 ... | |
精選功能:網格聚焦 | 設計檢視 | 增強編輯欄 | 工作簿及工作表管理器 | 資源庫 (自動文本) | 日期提取器 | 合併資料 | 加密/解密儲存格 | 按清單發送電子郵件 | 超級篩選 | 特殊篩選(篩選粗體/傾斜/刪除線 ...)... | |
前15 大工具集:12 款文本工具(添加文本,刪除特定字符,...)|50+ 種圖表 類型(甘特圖,...)|40+ 實用 公式(基於生日計算年齡,...)|19 款插入工具(插入QR码,按路徑插入圖片,...)|12 款轉換工具(金額轉大寫,匯率轉換,...)|7 款合併和分割工具(高級合併行,分割儲存格,...)| ...以及更多 |
利用 Kutools for Excel 大幅提升你的 Excel 技能,感受前所未有的高效體驗。 Kutools for Excel 提供超過300 項高級功能,助你提升效率並保存時間。 點此查看你最需要的功能...
Office Tab 為 Office 帶來標籤式介面,讓你的工作更加輕鬆
- 啟用 Word、Excel、PowerPoint 的標籤式編輯和閱讀功能
- 在同一個視窗的標籤中打開和創建多個文件,而不是在新窗口中分開開啟。
- 可提升你50% 的工作效率,每天為你大量減少滑鼠點擊次數!