KutoolsforOffice— 1 つのソリューション、5 つの強力なツール。少ない労力で大きな成果。

Excel でキーワードをもとにテキスト文字列をカテゴリ分けするには、どうすればよいですか?

著者Xiaoyang変更日

Excel で大量のデータセットを扱う際、特定のキーワードに基づいてテキストエントリを整理し、レポート作成や分析プロセスを効率化したい場面はよくあります。たとえば、列 A にさまざまなテキスト文字列が並んでおり、列 D に記載されたキーワードに基づいて各エントリをカテゴリ分けするとします。「Kutools」を含むセルはすべて「Extendoffice」に分類し、「football」または「basketball」を含む文字列は「Sport」カテゴリに割り当てる、といった具合です。以下のスクリーンショットはそのようなシナリオを示しています。データセットが大きくなるにつれて、この作業を手動で行うのは時間もかかり、ミスも起こりやすくなります。本記事では、こうしたテキスト文字列を自動的にカテゴリ分けするための実用的かつ効率的な方法を紹介し、Excel でのデータ整理とワークフロー品質の向上をサポートします。

キーワードに基づいてテキスト文字列を分類

配列数式を使用してキーワードに基づいてテキスト文字列のリストをカテゴリ分けする

VBA コードを使用してキーワードに基づいてテキスト文字列をカテゴリ分けする


配列数式を使用してキーワードに基づいてテキスト文字列のリストをカテゴリ分けする

配列数式を使えば、キーワードとの一致に基づいてテキスト文字列に自動的にカテゴリを割り当てることが可能です。この機能は、手動での分類が現実的でない大規模なデータセットにおいて特に効果を発揮します。Excel の配列数式は強力なパターンマッチング機能を提供し、データとキーワードグループの間に動的なリンクを構築できます。たとえば、顧客からのフィードバックを自動ラベリングしたり、在庫をスマートに整理したり、メールの内容に基づいて自動分類したりする場面で活用できます。

1。通常、カテゴリ分け対象のテキストは列 A に、キーワードは列 D に、対応するカテゴリは列 E に入力します。サンプルデータセットのレイアウトは、以下のスクリーンショットをご参照ください。

サンプルデータ

2。元のデータの隣にある空白セル(たとえば、文字列が A2:A10 にある場合は B2 から開始)をクリックして、次の配列数式を入力します。

=INDEX($E$2:$E$8,MATCH(TRUE,ISNUMBER(SEARCH($D$2:$D$8,A2)),0))
  • ヒント:この数式では、
  • $E$2:$E$8:各テキスト文字列に割り当てるカテゴリ名が含まれる範囲です。
  • $D$2:$D$8:テキスト文字列内で一致させるキーワードを含む列です。
  • A2:分析・カテゴリ分けの対象となるテキスト文字列が含まれるセルです。

最良の結果を得るには、キーワードリストと対応するカテゴリが行ごとに正確に整列しており、検索範囲内に空白セルが含まれていないことを確認してください。また、キーワードにタイプミスや余分なスペースがないかをチェックして、不一致を防ぎましょう。

3Ctrl + Shift + Enterを押して数式を確定してください(Enter キーは使用しないでください)。これにより、Excel がその数式を波括弧で囲み、配列数式であることを示します。その結果、最初の文字列に対して適切なカテゴリが自動生成されます。その後、フィルハンドルを使って数式を下方向にドラッグすれば、リスト内のすべてのエントリが自動的にカテゴリ分けされます。スクリーンショットをご参照ください。

配列数式を使用して、キーワードに基づいてテキスト文字列のリストを分類

配列数式を使用する際は、正しいキーの組み合わせを必ずご使用ください。また、数式をコピーする際には、配列構造が崩れないよう十分ご注意ください。データ範囲を拡張する場合は、正確なカテゴリ分けのために数式内の範囲を適切に更新してください。

kutools for excel AI のスクリーンショット

KUTOOLS AI でExcel の魔法を解き放ちましょう

  • スマート実行:セル操作、データ分析、チャート作成をすべてシンプルなコマンドで実現します。
  • カスタム数式:ワークフローの効率化に役立つ、あなただけのカスタマイズ数式を生成します。
  • VBA コーディング:VBA コードを簡単に記述・実装できます。
  • 数式の解釈:複雑な数式が簡単に理解できます。
  • テキスト翻訳:スプレッドシート内で言語の壁を乗り越えましょう!
AI 搭載のツールでExcel の機能をさらに強化しましょう。今すぐダウンロードして、これまでにない効率を体験してください!

VBA コードを使用してキーワードに基づいてテキスト文字列をカテゴリ分けする

大量のテキスト文字列を定期的にカテゴリ分けする必要があり、柔軟で自動化されたソリューションをお探しの場合は、VBA を使ってキーワード一致に基づき動的に処理し、カテゴリを割り当てる方法があります。このアプローチは、カテゴリ分けルールをカスタマイズしたい方や、他の自動化ワークフローとの統合を検討している上級ユーザーに最適です。VBA マクロを活用すれば、手動作業を大幅に削減でき、カスタムのキーワードとカテゴリのペアに対して堅牢なエラー処理も実現できます。

1。Excel で VBA エディターを開くには、開発者ツールVisual Basicをクリックします。表示されたウィンドウで、挿入標準モジュールをクリックして、新しいモジュールを作成してください。その後、次の 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 より大きい場合は「High」、60 より大きく90 未満の場合は「Medium」、60 未満の場合は「Low」と分類するとします。このようなタスクをExcel ではどのように処理すればよいでしょうか?
  • 数値範囲に基づいて値またはカテゴリを割り当てる
  • この記事では、Excel で数値の範囲に応じて特定の値やカテゴリを自動的に割り当てる方法をご紹介します。たとえば、数値が0~100 の範囲なら5 を、101~500 なら10 を、501~1000 なら15 を割り当てるといった処理も、ここで紹介する方法を使えば簡単に実現できます。
  • Excel で成績(アルファベット評価)を計算または割り当てる
  • 学生の得点に基づいてアルファベット評価(A~F)を割り当てるのは、教師にとってごく一般的な作業です。たとえば、次のような評価基準が定義されているとします:0~59 点=F、60~69 点=D、70~79 点=C、80~89 点=B、90~100 点=A(下記スクリーンショット参照)。Excel では、数値スコアからアルファベット評価を素早く簡単に算出するにはどうすればよいでしょうか?
  • 重複値または一意の値に連番を割り当てる
  • 重複を含む値のリストがある場合、重複値または一意の値に連番を付けることは可能でしょうか?つまり、重複する値や一意の値それぞれに対して、連続した順序番号を割り振ることです。この記事では、Excel でこのタスクを簡単に解決できる数式をいくつかご紹介します。

  • スーパー数式バー(複数行のテキストや数式を簡単に編集可能);リーディングレイアウト(多数のセルを簡単に読み書き可能);フィルタリング範囲に貼り付け
  • 結合セル/行/列とデータ保持;セルの分割コンテンツ;重複行を結合して合計/平均を計算…重複の入力を防止セル;範囲を比較
  • 重複または一意の行を選択空白行を選択(すべてのセルが空);スーパー検索とあいまい検索多数のワークブック内で実行;ランダム選択…
  • 正確にコピー複数セルを数式参照を変更せずに移動;複数シートへの参照を自動作成箇条書きの挿入、チェックボックスなど…
  • お気に入りの数式を保存して素早く挿入、範囲、チャート、画像;セルの暗号化パスワード付きで保護;メーリングリストの作成メール送信など…
  • テキストの抽出、テキストの追加、特定の位置の文字を削除、スペースを削除;データページ統計を作成・印刷;セルの内容とコメントを相互変換
  • スーパーフィルター(フィルタースキームを保存し、他のシートに適用可能);高度なソート月/週/日、頻度などでグループ化;特殊フィルタ太字、イタリック体などで強調表示…
  • ワークブックとワークシートを統合;テーブルのマージをキーカラムに基づいてマージ;データの分割を複数のシートに分割xls、xlsx、PDF を一括変換
  • PivotTable を以下でグループ化:週番号、曜日など…ロック解除済みセルと選択範囲をロックを異なる色で表示;数式/名前を持つセルをハイライト表示
kte タブ 201905
  • Word、Excel、PowerPoint でタブを使った編集と閲覧を有効化。Publisher、Access、Visio、Project でもご利用いただけます。
  • 複数のドキュメントを、新しいウィンドウではなく、同じウィンドウ内の新しいタブで開いたり作成したりできます。
  • 生産性が50%向上し、毎日数百回のマウスクリックを削減できます!
OfficeTab 下部