如何在 Excel 中根據關鍵字對文字字串進行分類?
當您在 Excel 中處理大量資料時,經常需要根據特定關鍵字對文字項目進行分類,以簡化報表製作與分析流程。舉例來說,假設 A 欄包含一系列不同的文字字串,而您希望依據 D 欄所列的關鍵字為每個項目自動分類——例如,將包含「Kutools」的儲存格歸類為「Extendoffice」,或將提及「football」或「basketball」的文字統一標記為「Sport」類別。下圖即呈現此類應用情境。隨著資料規模不斷擴大,手動執行此類任務不僅耗時,還容易出錯。本文將介紹實用且高效的方法,協助您自動完成文字分類,快速整理資料並全面提升 Excel 工作效率與品質。

使用陣列公式根據關鍵字對文字字串清單進行分類
您可以運用陣列公式,根據關鍵字比對自動為文字字串指派分類,在資料量龐大、手動排序不可行時尤其實用。陣列公式能賦予 Excel 強大的模式比對能力,讓您在資料與關鍵字群組之間建立動態連結,適用於多種情境,例如自動標記客戶意見回饋、整理庫存,或根據內容對電子郵件進行分類。
1. 請根據需求排列您的資料:通常將待分類的文字字串置於 A 欄,關鍵字放在 D 欄,對應的分類則置於 E 欄。詳情請參閱下方範例截圖,了解資料集的典型配置!

2. 請在原始資料旁側的空白儲存格(例如,若文字位於 A2:A10,則從 B2 開始)輸入下列陣列公式:
- 提示:在此公式中:
- $E$2:$E$8:是要對每個文字字串進行指派至的分類名稱範圍;
- $D$2:$D$8:是包含您希望在文字字串中比對關鍵字的欄位;
- A2:為待分析與分類的文字字串所在儲存格。
為確保最佳比對效果,請務必將關鍵字清單與對應分類按列對齊,並確認查閱範圍內不含空白儲存格。同時,請仔細檢查關鍵字是否含有拼字錯誤或多餘空格,以免導致比對失敗。
3. 輸入公式後,請按下 Ctrl + Shift + Enter(而非僅按 Enter),Excel 將自動以大括號包住公式,表示其為陣列公式。此操作會為第一個文字字串產生對應分類;接著,只要使用填滿控點向下拖曳公式,即可讓清單中的所有項目自動完成分類!請參見截圖:

使用陣列公式時,務必搭配正確的按鍵組合;複製公式時,也請確保不破壞其陣列結構。若您的資料範圍擴充,請同步調整公式中的引用區域,以維持分類的準確性。

透過 KUTOOLS AI 解鎖 Excel 的神奇功能
- 智慧執行:透過簡易指令,輕鬆執行儲存格操作、分析資料,並建立圖表!
- 自訂公式:打造專屬公式,讓您的工作流程更順暢!
- VBA 編碼:輕鬆撰寫並套用 VBA 程式碼,立即提升工作效率!
- 公式解析:輕鬆掌握複雜公式!
- 文字翻譯:輕鬆打破試算表中的語言隔閡!
使用 VBA 程式碼根據關鍵字對文字字串進行分類
若您經常需要對大量文字字串進行分類,並希望擁有一套彈性且自動化的解決方案,VBA 能提供根據關鍵字比對來動態處理並指派分類的方式。此方法專為進階使用者設計,可依需求自訂分類規則,或無縫整合至其他自動化工作流程中。透過 VBA 巨集,不僅能大幅減輕手動作業負擔,還能為自訂關鍵字與分類配對提供穩健的錯誤處理機制。
1. 請點選開發人員工具 > Visual Basic,開啟 Excel 中的 VBA 編輯器。在快顯視窗中,依序點選插入 > 模組,建立新模組,並將下列 VBA 程式碼複製貼上至該模組中:
Sub CategorizeByKeywords()
Dim cell As Range
Dim keywordRng As Range
Dim categoryRng As Range
Dim i As Integer
Dim lastRowA As Long
Dim lastRowD As Long
Dim matchFound As Boolean
On Error Resume Next
xTitleId = "KutoolsforExcel"
lastRowA = Cells(Rows.Count, "A").End(xlUp).Row
lastRowD = Cells(Rows.Count, "D").End(xlUp).Row
Set keywordRng = Range("D2:D" & lastRowD)
Set categoryRng = Range("E2:E" & lastRowD)
For Each cell In Range("A2:A" & lastRowA)
matchFound = False
For i = 1 To keywordRng.Rows.Count
If InStr(1, cell.Value, keywordRng.Cells(i, 1).Value, vbTextCompare) > 0 Then
cell.Offset(0, 1).Value = categoryRng.Cells(i, 1).Value
matchFound = True
Exit For
End If
Next i
If Not matchFound Then
cell.Offset(0, 1).Value = "" ' Assign blank if no keyword matched
End If
Next cell
End Sub 2. 若要執行巨集,請點選
「執行」按鈕,或在 VBA 視窗中按下 F5. 巨集將從第 2 列開始處理 A 欄中的所有項目,搜尋 D 欄所列關鍵字,並將 E 欄對應的分類寫入 B 欄。
若您的清單超出範例所示範圍,請務必調整關鍵字/分類的範圍。如有需要,可進一步自訂巨集,以處理關鍵字重疊或多關鍵字比對的情況,或為未成功比對的項目設定預設分類。執行新程式碼前,請務必備份資料,並以巨集啟用格式(.xlsm)儲存活頁簿,方便日後重複使用。
下載範例檔案
更多相關文字分類文章:
- 在 Excel 中基於值分類資料
- 假設您需要根據數值對一筆資料清單進行分類,例如:若資料大於 90,歸類為「高」;若介於 60 到 90 之間,歸類為「中」;若小於 60,則歸類為「低」。在 Excel 中該如何完成這項任務?
- 根據數值範圍指派數值或分類
- 本文介紹如何在 Excel 中根據指定範圍自動指派對應的數值或分類。例如,若數值介於 0 至 100 之間,則指派 5;若介於 101 至 500 之間,則指派 10;若介於 501 至 1000 之間,則指派 15. 本文所提供的方法,能讓您輕鬆達成此目標。
- 在 Excel 中計算或指派字母等級
- 根據學生的分數指派字母等級,是教師常見的任務之一。例如,我已設定評分標準如下:0–59 分為 F、60–69 分為 D、70–79 分為 C、80–89 分為 B,90–100 分則為 A。在 Excel 中,如何快速又輕鬆地根據數值分數自動計算出對應的字母等級?
- 為重複值或唯一值指派序號
- 如果您有一份包含部分重複值的清單,是否能為這些重複值或唯一值分別指派連續序號?換句話說,就是為重複項目或唯一項目各自給予連續編號。本文將介紹幾個簡單的公式,協助您在 Excel 中輕鬆完成這項任務。
- 超強編輯欄(輕鬆編輯多行文字與公式);閱讀版面(輕鬆閱讀與編輯大量儲存格);貼上至篩選範圍……
- 合併儲存格/列/欄並保留資料;分割儲存格內容;合併重複行並加總/平均……防止重複項儲存格;比較範圍……
- 選取重複或唯一列;選取空白列(所有儲存格皆為空);超級查找與模糊搜尋多個活頁簿;隨機選取……
- 精確公式複製多個儲存格而不變更公式參照;自動建立參照至多個工作表;插入項目符號、複選框及更多……
- 收藏並快速插入公式、範圍、圖表與圖片;加密儲存格並設定密碼;建立郵件清單並寄送電子郵件……
- 提取文本、添加文本、刪除某位置字元、移除空格;建立並列印數據分頁統計;在儲存格內容與註解之間轉換……
- 超級篩選(儲存並套用篩選方案至其他工作表);高級排序依月份/週/日、頻率等;特殊篩選依粗體、斜體……
- 合併活頁簿與工作表;合併表格依據關鍵列;分割數據至多個工作表;批次轉換 xls、xlsx 與 PDF……
- 資料透視表依週數、星期幾等分組……顯示未鎖定、選區鎖定以不同顏色標示;突顯包含公式/名稱的儲存格……

- 在 Word、Excel、PowerPoint、Publisher、Access、Visio 與 Project 中啟用分頁式編輯與閱讀,提升工作效率!
- 在同一視窗的新分頁中開啟並建立多份文件,而非另開新視窗。
- 每天為您提升 50% 的工作效率,省下數百次滑鼠點擊!
