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

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

著者Xiaoyang変更日

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

doc-extract-nth-word-1


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

このタスクを処理するには、TRIM 関数、MID 関数、SUBSTITUTE 関数、REPT 関数、および LEN 関数を組み合わせた数式が活用できます。一般的な構文は次のとおりです。

=TRIM(MID(SUBSTITUTE(string,「 」,REPT(「 」,LEN(string))), (N-1)*LEN(string)+1, LEN(string)))
  • string:単語を抽出したいテキスト文字列またはセルの値。
  • 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 関数は、単語間の余分なスペースをすべて削除します。

ヒント:単語間にスペースが複数含まれている場合、上記の数式は正しく動作しません。その場合は、SUBSTITUTE 関数の中に TRIM 関数をネストしてください。以下の数式をご利用ください。

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

doc-extract-nth-word-3


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

上記の数式が少し分かりにくいと感じられる場合は、ユーザー定義関数をご紹介します。以下のコードを使えば、テキスト文字列から n 番目の単語を簡単に抽出できます。手順は次のとおりです。

1ALT + 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をお持ちなら、セルから N 番目の単語を抽出するユーティリティを使えば、Excel ユーザーが日常的に使うさまざまな定番数式をサポートし、指定した n 番目の単語を瞬時に抽出できます。Kutools for Excel の無料トライアル版をダウンロード!


関連する関数:

  • REPT:
  • REPT 関数は、指定した回数だけ文字を繰り返す際にご活用いただけます。
  • SUBSTITUTE:
  • SUBSTITUTE 関数は、テキスト文字列内の指定した文字や語句を、別の文字や語句に置き換えます。
  • TRIM:
  • TRIM 関数は、テキスト文字列から不要なスペースをすべて取り除き、単語の間にはスペースを1 つだけ残します。
  • MID:
  • MID 関数は、テキスト文字列の中央から特定の文字を返します。
  • LEN:
  • LEN 関数は、テキスト文字列内の文字数を返します。

関連記事:


最高の Office 生産性ツール

Kutools for Excel - あなたを群衆の中から際立たせます

🤖KUTOOLS AI アシスト:次に基づいてデータ分析を革新します:インテリジェント実行     コード生成  カスタム数式作成    データ分析とチャート生成  拡張機能呼び出し
人気機能検索・ハイライト・重複をマーキング    空白行を削除する    データを失うことなく列の結合またはセルを    数式を使用しない四捨五入...
スーパー VLookup複数条件    複数値    複数シート間    ファジーマッチ...
高度なドロップダウンリスト簡単なドロップダウンリスト    連動型ドロップダウンリスト    複数選択可能なドロップダウンリスト...
列マネージャー指定した数の列を追加    列の移動   非表示列の表示状態を切り替え  列を比較して同じ/異なるセルを選択...
注目の機能グリッドフォーカス    デザインビュー    強化された数式バー    ワークブックとシートマネージャーリソースライブラリ(オートテキスト)  日付ピッカー    ワークシートの統合    暗号化/セルの復号化   リストからメール送信    スーパーフィルター    特殊フィルタ(太字のフォントを持つセルをフィルタリング/イタリック/取り消し線。。。) 。。。
トップ15 ツールセット12 テキストツールテキストの追加特定の文字を削除...)  50+チャートタイプガントチャート...)  40+実用的な数式誕生日に基づいて年齢を計算します...)  19 挿入ツールQR コードを挿入パスから画像を挿入...)  12 変換ツール単語に変換する為替レートの変換...)  7 結合と分割ツール高度な行のマージExcel セルを分割...)。。。他にも多数
Kutools を好みの言語でお使いいただけます。英語、スペイン語、ドイツ語、フランス語、中国語、および40+言語以上をサポートしています!

Kutools for Excel は300 以上の機能を備えており、必要な機能が常にワンクリックで利用できます…


Office Tab - Microsoft Office(Excel を含む)でタブを使った閲覧・編集を可能にします

  • 数十もの開いているドキュメントを1 秒で切り替えられます!
  • 毎日何百回ものマウスクリックを削減して、マウス手の悩みともさよならしましょう。
  • 複数のドキュメントを閲覧・編集する際の生産性が50%も向上します。
  • Office(Excel を含む)に、Chrome、Edge、Firefox のような効率的なタブ機能をもたらします。