
Excelを使ってテキストデータから頻出単語を自動抽出したいと思っていませんか?
アンケート結果、顧客レビュー、SNS投稿などの大量のテキストを分析する際、頻出単語を抽出することでトレンドや顧客の声を見える化できます。この記事では、Excelの関数、Power Query、VBAマクロ、Word連携など、初心者から上級者まで対応した複数方法をステップバイステップで解説。競合記事を超える詳細さと実践例を盛り込み、無料でできる方法を中心に紹介します。
テキストマイニングとは? Excelで頻出単語抽出のメリット
テキストマイニングは、大量のテキストデータから有用な情報を抽出・分析する手法です。特に、頻出単語の自動抽出は、単語の出現回数をカウントしてワードクラウドを作成したり、顧客の関心を把握したりするのに役立ちます。
メリット
- 効率化: 手作業でカウントする手間を省き、自動化可能。
- 視覚化: ワードクラウドで一目で頻出単語を理解。
- 活用シーン: アンケート分析、口コミ解析、検索キーワード分類、市場トレンド予測など。
- 無料で可能: Excel標準機能や無料ツールで実現。
注意: Excel単体では形態素解析(文章を単語に分解)が限定的なので、表記ゆれ(例: 「Excel」と「エクセル」)の修正を忘れずに。
方法1: Excel関数のみで頻出単語を抽出(初心者向け)
ExcelのCOUNTIF関数などを使って、シンプルに頻出単語を自動抽出する方法です。データ量が少ない場合に最適。
ステップバイステップガイド
- データ準備: A列にテキストデータを入力(例: A1に「Excelは便利です。Excelで分析しましょう。」)。
- 単語分解: 手動で分かち書き(単語をスペースで区切る)。B列に
=SUBSTITUTE(A1, " ", "")などで余計なスペースを除去。表記ゆれ修正のため、UPPER関数で大文字統一(例:=UPPER(B1))。 - ユニーク単語抽出: C列に
=UNIQUE(B:B)(Excel 2021以降)で重複なしの単語リストを作成。 - 出現回数カウント: D列に
=COUNTIF(B:B, C1)を入力し、下にドラッグ。頻出数を自動計算。 - 並べ替え: D列を選択し、データタブから「ZA並べ替え」で降順表示。
使用関数一覧
| 関数 | 用途 | 例 |
|---|---|---|
| COUNTIF | 特定単語の出現回数をカウント | =COUNTIF(A:A, "Excel") |
| UNIQUE | 重複なしの単語リスト抽出 | =UNIQUE(A:A) |
| SUBSTITUTE | 表記ゆれ修正(記号除去) | =SUBSTITUTE(A1, ".", "") |
| UPPER/LOWER | 大/小文字統一 | =UPPER(A1) |
例データ
- 入力: 「Excel VBA 自動化 Excel 関数」
- 出力: Excel (2回), VBA (1回), 自動化 (1回), 関数 (1回)
Tips: データが大量の場合、ピボットテーブルで集計を視覚化。
方法2: Power Queryで頻出単語を自動抽出(中級者向け)
Power Query(Excel 2016以降標準搭載)は、データ変換が強み。テキストを自動分割して頻出単語を抽出できます。
ステップバイステップガイド
- データインポート: データタブ > 「データ取得」 > 「テキスト/CSVから」 でテキストファイルを読み込み。
- クエリ編集: Power Queryエディタで列を選択 > 「列の分割」 > 「区切り記号で分割」(スペースで単語分割)。
- ピボット解除: 分割列を選択 > 「列のピボット解除」 で単語を縦に展開。
- グループ化: 「グループ化」 > 単語列を選択 > 集計を「カウント」に設定。
- 並べ替え: カウント列で降順並べ替え > 「閉じて読み込む」。
メリット
- 自動化度高く、大規模データ対応。
- 表記ゆれ修正: 「変換」 > 「大文字に変換」など。
例: 顧客レビューから「満足」「不満」などの頻出単語を抽出。
方法3: VBAマクロで頻出単語を自動抽出(上級者向け)
VBAを使えば、Word文書やExcel内のテキストから単語を抽出・集計を全自動化。リサーチに基づくサンプルコードを提供。
ステップバイステップガイド
- VBAエディタ起動: Alt + F11 で開く。
- モジュール挿入: 挿入 > モジュール。
- コード貼り付け: 以下をコピー(Wordから抽出例、調整可能)。
Sub ExtractFrequentWords()
Dim dict As Object
Set dict = CreateObject("Scripting.Dictionary")
Dim cell As Range
For Each cell In Range("A1:A100") ' 対象範囲
Dim words() As String
words = Split(cell.Value, " ") ' スペースで分割
Dim word As Variant
For Each word In words
word = Trim(word)
If dict.Exists(word) Then
dict(word) = dict(word) + 1
Else
dict.Add word, 1
End If
Next word
Next cell
' 出力
Dim i As Integer: i = 1
For Each word In dict.Keys
Cells(i, "B").Value = word
Cells(i, "C").Value = dict(word)
i = i + 1
Next word
' 降順ソート
Range("B1:C" & i - 1).Sort Key1:=Range("C1"), Order1:=xlDescending
End Sub- 実行: F5 でマクロ実行。B列に単語、C列に頻度が出力。
注意点
- 大文字/小文字区別: コードで
LCase(word)追加で統一。 - 全角/半角:
StrConv(word, vbNarrow)で半角統一。
方法4: WordとExcelを連携して頻出単語抽出
WordのテキストをExcelで分析する方法。アンケート文書などに便利。
ステップバイステップガイド
- Wordにテキストコピー: 分析対象をWordに貼り付け、マクロ有効形式(.docm)で保存。
- VBAコード実行: WordのVBAエディタで以下コードを実行(単語をExcelに転記)。
Sub WordSeparation()
Dim ExcelApp As Object: Set ExcelApp = CreateObject("Excel.Application")
Dim ExcelBook As Object
With ExcelApp
.Visible = True
Set ExcelBook = .Workbooks.Add
End With
Dim i As Long: For i = 1 To ActiveDocument.Words.Count
ExcelBook.Worksheets(1).Cells(i, 1).Value = ActiveDocument.Words(i).Text
Next
ExcelBook.SaveAs ThisDocument.Path & "\結果.xlsx"
ExcelApp.Quit
End Sub- Excelで集計: 生成ファイルでUNIQUEとCOUNTIF使用(方法1参照)。
ワードクラウドの作成方法
頻出単語を視覚化。Excelアドインや無料ツールで簡単。
手順
- 頻出単語リストを作成(上記方法)。
- 無料ツール「ユーザーローカル」(https://textmining.userlocal.jp/)にアップロード。
- 生成: 頻度が高い単語が大きく表示。
Excel内: アドイン「Pro Word Cloud」をインストール(Microsoft Storeから無料) > データ選択 > 挿入。
注意点とTips
- 表記ゆれ対策: SUBSTITUTEやPHONETIC関数で統一。
- データ量の限界: 数万行超は専用ツール(例: MeCab)推奨。
- セキュリティ: VBAはマクロ有効に注意。
- Tips: ピボットテーブルでグラフ化。Google Analytics連携で検索キーワード分析。
FAQ
- Q1: Excelで形態素解析は可能?
- A: 標準では不可。無料ツールMeCabと連携推奨。
- Q2: 無料ツールのおすすめは?
- A: ユーザーローカルやAIテキストマイニング。
- Q3: VBAが動かない場合?
- A: マクロ設定を「すべてのマクロを有効にする」に変更。
まとめ
このガイドで、Excelで頻出単語を自動抽出する方法をマスターできたはずです。関数からVBAまで、状況に合わせて選んでください。実務で活用し、業務効率化を実現しましょう。












コメント