メインコンテンツへスキップ

Excelでテキスト文字列からn番目の単語を抽出する

Author: Xiaoyang Last Modified: 2025-05-23

テキスト文字列や文のリストがあり、そのリストから特定のn番目の単語を下のスクリーンショットのように抽出したいとします。この記事では、Excelでこの作業を解決するためのいくつかの方法を紹介します。

doc-extract-nth-word-1


数式を使用してテキスト文字列からn番目の単語を抽出・取得する

このタスクに対処するために、TRIM、MID、SUBSTITUTE、REPT、LEN関数を組み合わせた数式を使用できます。汎用的な構文は次の通りです:

=TRIM(MID(SUBSTITUTE(文字列," ",REPT(" ",LEN(文字列))), (N-1)*LEN(文字列)+1, LEN(文字列)))
  • 文字列: 単語を抽出したいテキスト文字列またはセルの値です。
  • N: 抽出したい単語の番号です。

1. 次の数式を空白のセルにコピーまたは入力してください:

=TRIM(MID(SUBSTITUTE(A2," ",REPT(" ",LEN(A2))), (B2-1)*LEN(A2)+1, LEN(A2)))

注釈: 上記の数式では、A2は使用したいテキスト文字列が含まれているセルで、B2は抽出したい単語の番号です。これは数字として直接入力することもできます。

2. そして、フィルハンドルを下にドラッグして他のセルにもこの数式を適用すると、以下のスクリーンショットのようにすべての特定のn番目の単語が抽出されます:

doc-extract-nth-word-2


数式の説明:
  • 1. SUBSTITUTE(A2," ",REPT(" ",LEN(A2))):
  • REPT(" ",LEN(A2)): このREPT関数は、特定の回数(セルA2のテキスト長さ)だけスペース文字を繰り返すために使用され、多くのスペース文字が生成されます;
  • SUBSTITUTE(A2," ",REPT(" ",LEN(A2))): SUBSTITUTE関数は、セルA2内の各スペース文字をREPT関数によって生成された多数のスペース文字に置き換え、これにより各単語間に多数のスペースを持つテキスト文字列が生成されます。
  • この部分は、MID関数のtext引数として再編成されています。
  • 2. (B2-1)*LEN(A2)+1: この数式は、セルA2内のテキスト文字列におけるn番目の単語の開始位置を返します。これはMID関数のstart_num引数です。
  • 3. MID(SUBSTITUTE(A2," ",REPT(" ",LEN(A2))), (B2-1)*LEN(A2)+1, LEN(A2)): このMID関数は、上記の数式によって返される引数に基づいて、セルA2内のテキスト文字列からn番目の単語を抽出します。
  • 4. TRIM(): このTRIM関数は、単語間のすべての余分なスペース文字を削除します。

ヒント: 単語間に複数のスペース文字がある場合、上記の数式は正しく動作しません。このような場合、もう一つのTRIM関数をSUBSTITUTE関数内に入れ子にする必要があります。次の数式を使用してください:

=TRIM(MID(SUBSTITUTE(TRIM(A2)," ",REPT(" ",LEN(A2))), (B2-1)*LEN(A2)+1, LEN(A2)))

doc-extract-nth-word-3


ユーザー定義関数を使用してテキスト文字列からn番目の単語を抽出・取得する

上記の数式が少し理解しにくい場合は、ここではユーザー定義関数を紹介します。以下のコードを使用することで、テキスト文字列からn番目の単語を抽出することができます。次のように操作してください:

1. ALT + F11キーを押してMicrosoft Visual Basic for Applicationsウィンドウを開きます。

2. [挿入] > [モジュール]をクリックし、モジュールウィンドウに次のコードをコピーして貼り付けます。

Function FindWord(Source As String, Position As Integer)
'Update by Extendoffice
Dim arr() As String
arr = VBA.Split(Source, " ")
xCount = UBound(arr)
If xCount < 1 Or (Position - 1) > xCount Or Position < 0 Then
    FindWord = ""
Else
    FindWord = arr(Position - 1)
End If
End Function

3. その後、コードモジュールを保存して閉じ、結果を出力したい空白のセルにこの数式: =findword(A2,B2) を入力します:

注釈: この数式では、A2は使用したいテキスト文字列が含まれているセルで、B2は抽出したい単語の番号です。これは数字として直接入力することもできます。

4. そして、必要に応じて数式を他のセルにドラッグして結果を得てください。スクリーンショットをご覧ください:

doc-extract-nth-word-4


強力な機能を使用してテキスト文字列からn番目の単語を抽出・取得する

Kutools for Excelを持っている場合、それはほとんどのExcelユーザー向けに一般的に使用される複数の数式をサポートしています。セルからN番目の単語を抽出するユーティリティを使用すれば、指定したn番目の単語を可能な限り迅速に抽出できます。 無料試用版のKutools for Excelをダウンロードするにはここをクリック!


関連する関数:

  • REPT:
  • REPT関数は、指定された回数だけ文字を繰り返すために使用されます。
  • SUBSTITUTE:
  • SUBSTITUTE関数は、テキスト文字列内のテキストまたは文字を別のテキストまたは文字に置き換えます。
  • TRIM:
  • TRIM関数は、テキスト文字列からすべての余分なスペースを削除し、単語間には1つのスペースのみを残します。
  • MID:
  • MID関数は、テキスト文字列の中間から特定の文字を返します。
  • LEN:
  • LEN関数は、テキスト文字列内の文字数を返します。

その他の記事:

  • 複数行のセルから最後の行のテキストを抽出する
  • 改行で区切られたテキスト文字列から最後の行のテキストを抽出するには、通常、これを解決する直接的な方法はありません。この記事では、Excelでこのタスクを処理するための数式を紹介します。

最高のOffice生産性ツール

Kutools for Excel - あなたを群衆から際立たせるツール

🤖 Kutools AI アシスタント: 次の要素に基づいてデータ分析を革新:インテリジェント実行   |  コード生成  |  カスタム数式の作成  |  データの分析とチャートの生成  |  Kutools 拡張機能の呼び出し
人気の機能重複の検索、ハイライト、または識別  |  空白行の削除  |  データを失うことなく列やセルを結合  |  数式なしで丸める ...
スーパーフィルター複数条件  |  複数値  |  複数シート間  |  ファジーマッチ...
高度なドロップダウンリスト簡単なドロップダウンリスト  |  依存するドロップダウンリスト  |  複数選択可能なドロップダウンリスト...
列マネージャー特定の数の列を追加  |  列の移動  |  非表示列の可視性ステータスの切り替え  列を比較して同じおよび異なるセルを選択 ...
注目機能グリッドフォーカス  |  デザインビュー  |  強化された数式バー  |  ワークブックとシートの管理 | オートテキスト ライブラリ (Auto Text)  |  日付ピッカー  |  データの統合  |  セルの暗号化/復号化  |  リストによるメール送信  |  スーパーフィルター  |  特殊フィルタ(太字/斜体/取り消し線のフィルタリング...) ...
トップ15のツールセット12 のテキストツールテキストの追加特定の文字を削除 ...)  |  50 以上 のグラフタイプガントチャート ...)  |  40 以上の実用的な数式誕生日に基づいて年齢を計算 ...)  |  19 の挿入ツールQRコードの挿入パスからの画像挿入 ...)  |  12 の変換ツール単語に変換する通貨変換 ...)  |  7 つの結合と分割ツール高度な行のマージExcelセルの分割 ...)  |  ... さらに

Kutools for Excelは300以上の機能を誇り、必要なものがワンクリックで手に入ります...


Office Tab - Microsoft Office(Excel含む)でのタブ形式の閲覧と編集を有効にする

  • 数十の開いている文書間を1秒で切り替え!
  • 毎日数百回のマウスクリックを減らし、マウス手にさよならを告げる。
  • 複数の文書を閲覧・編集する際に、生産性が50%向上します。
  • Chrome、Edge、Firefoxのように、Office(Excel含む)に効率的なタブをもたらします。