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

Kutools for Office — 1つのスイート、5つのツールで、もっと多くのことを成し遂げましょう。

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

Author Xiaoyang Last modified

テキスト文字列や文のリストがあり、そのリストから特定の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でこのタスクを処理するための数式を紹介します。

最高のオフィス生産性ツール

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

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

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


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

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