Excelで2番目のスペースまたはコンマの前後にあるテキストを抽出するにはどうすればよいですか?
Excelでテキストデータを扱う場合、複数のスペース、コンマ、またはその他の区切り文字を含む文字列に頻繁に遭遇することがあります。Excelの「テキストを列に分割」機能は、選択した区切り文字に基づいてセルの内容を個別の列に分割できますが、特定の解決策が必要になることもあります。たとえば、セル内の2番目のスペースまたはコンマの前または後ろにあるすべての情報を抽出したい場合です。この記事では、このような操作を実現するためのいくつかの実用的な方法を紹介します。具体的には、2番目のスペースやコンマの前後のテキストをターゲットにする数式、自動化や大規模なデータセット向けのVBAマクロを使用した堅牢なソリューション、そして高度なデータ前処理のためにPower Queryを使用する柔軟なオプションについて説明します。
数式を使用して2番目のスペースまたはコンマの前のテキストを抽出する
数式を使用して2番目のスペースまたはコンマの後のテキストを抽出する
VBAコードを使用して2番目の区切り文字(スペース/コンマ)の前または後のテキストを抽出する
数式を使用して2番目のスペースまたはコンマの前のテキストを抽出する
セル内の2番目のスペースの前にある部分を分離したい場合は、Excel関数を組み合わせて使用できます。
1. 結果を表示したい空白のセル(例えば、セルC2)に次の数式を入力します:
=IF(ISERROR(FIND(" ",A2,FIND(" ",A2,1)+1)),A2,LEFT(A2,FIND(" ",A2,FIND(" ",A2,1)+1)))
2. Enterキーを押します。その後、数式をドラッグして適用したい行すべてにフィルハンドルを使用してください。結果として、各対応する行の2番目のスペースの前のすべてのテキストが表示されます。スクリーンショットをご覧ください:
ヒント: 2番目のコンマまたは他の区切り文字の前のテキストを抽出したい場合は、数式内のスペース文字(" "
)を目的の区切り文字に置き換えてください。たとえば、コンマの場合:
=IF(ISERROR(FIND(",",A2,FIND(",",A2,1)+1)),A2,LEFT(A2,FIND(",",A2,FIND(",",A2,1)+1)))
このアプローチは、一回限りの抽出や中程度のサイズのデータセットを扱う場合に迅速かつ効率的です。ただし、テキストが非常に不規則であったり、行ごとの区切り文字の数が大きく異なる場合、追加の数式調整が必要になることがあります。また、余分なスペースや空のセルには注意してください。これらが結果に影響を与える可能性があります。重要なデータに適用する際には、出力を常に再確認してください。

Kutools AIでExcelの魔法を解き放つ
- スマート実行: セル操作、データ分析、グラフ作成を簡単なコマンドで行います。
- カスタム数式: ワークフローを合理化するための独自の数式を生成します。
- VBAコーディング: 簡単にVBAコードを作成し実装します。
- 数式の解釈: 複雑な数式を簡単に理解できます。
- テキスト翻訳: スプレッドシート内の言語障壁を取り除きます。
数式を使用して2番目のスペースまたはコンマの後のテキストを抽出する
セル内の2番目のスペース区切り文字の後に表示されるテキストを抽出するには、「MID
」と「FIND
」関数を一緒に使用できます。
1. 対象のセル(例:D2)に次の数式を入力します:
=MID(A2, FIND(" ", A2, FIND(" ", A2)+1)+1,256)
2. Enterキーを押します。抽出したいすべての行にフィルハンドルをドラッグします。これにより、各行の2番目のスペースの後ろにあるすべての情報が表示されます。次のスクリーンショットをご覧ください:
ヒント: 2番目のコンマまたは他の任意の区切り文字の後のテキストを抽出するには、数式内のスペース文字を必要な区切り文字に置き換えてください。コンマの場合、数式は次のようになります:
=MID(A2, FIND(",", A2, FIND(",", A2)+1)+1,256)
VBAコードを使用して2番目の区切り文字(スペース/コンマ)の前または後のテキストを抽出する
大規模なデータセット、繰り返しの抽出、または自動化シナリオでは、VBAマクロを使用するのが効果的な解決策です。VBAを使用すると、2番目のスペース、コンマ、またはその他の区切り文字の前または後のテキストを抽出できます。これにより、さまざまなデータ構造での作業や、繰り返し可能なルーチンが必要な場合に効率が向上します。
1. 「開発」>「Visual Basic」を選択します。表示されたMicrosoft Visual Basic for Applicationsウィンドウで、「挿入」>「モジュール」をクリックし、次のコードをモジュールウィンドウに入力します:
Sub ExtractTextSecondDelimiter()
Dim rng As Range
Dim cell As Range
Dim sep As String
Dim direction As String
Dim arr As Variant
Dim result As String
Dim pos1 As Long
Dim pos2 As Long
Dim xTitleId As String
Dim outputCell As Range
Dim i As Long
On Error Resume Next
xTitleId = "KutoolsforExcel"
Set rng = Application.Selection
Set rng = Application.InputBox("Select text range to extract from", xTitleId, rng.Address, Type:=8)
If rng Is Nothing Then Exit Sub
sep = Application.InputBox("Enter delimiter (e.g. space or comma)", xTitleId, " ", Type:=2)
If sep = "" Then Exit Sub
direction = Application.InputBox("Type 'before' for text before, 'after' for text after the 2nd delimiter", xTitleId, "before", Type:=2)
If direction = "" Then Exit Sub
Set outputCell = Application.InputBox("Select the first cell to output the result", xTitleId, Type:=8)
If outputCell Is Nothing Then Exit Sub
Application.ScreenUpdating = False
i = 0
For Each cell In rng
If Not IsEmpty(cell.Value) Then
pos1 = InStr(1, cell.Value, sep)
If pos1 > 0 Then
pos2 = InStr(pos1 + 1, cell.Value, sep)
If pos2 > 0 Then
If LCase(direction) = "before" Then
result = Left(cell.Value, pos2 - 1)
ElseIf LCase(direction) = "after" Then
result = Mid(cell.Value, pos2 + Len(sep))
Else
result = cell.Value
End If
Else
result = cell.Value
End If
Else
result = cell.Value
End If
outputCell.Offset(i, 0).Value = result
End If
i = i + 1
Next
Application.ScreenUpdating = True
MsgBox "Extraction completed.", vbInformation, xTitleId
End Sub
2コードを貼り付けた後、 実行 ボタンをクリックするか、 F5 キーを押して実行します。ダイアログが表示され、データ範囲を選択し、区切り文字を入力し、2回目の出現箇所の「前」または「後」のテキストを指定し、最後に出力先のセルを選択します。マクロは指定したセルに抽出結果を出力します。
最高のオフィス業務効率化ツール
🤖 | Kutools AI Aide:データ分析を革新します。主な機能:Intelligent Execution|コード生成|カスタム数式の作成|データの分析とグラフの生成|Kutools Functionsの呼び出し…… |
人気の機能:重複の検索・ハイライト・重複をマーキング|空白行を削除|データを失わずに列またはセルを統合|丸める…… | |
スーパーLOOKUP:複数条件でのVLookup|複数値でのVLookup|複数シートの検索|ファジーマッチ…… | |
高度なドロップダウンリスト:ドロップダウンリストを素早く作成|連動ドロップダウンリスト|複数選択ドロップダウンリスト…… | |
列マネージャー:指定した数の列を追加 |列の移動 |非表示列の表示/非表示の切替| 範囲&列の比較…… | |
注目の機能:グリッドフォーカス|デザインビュー|強化された数式バー|ワークブック&ワークシートの管理|オートテキスト ライブラリ|日付ピッカー|データの統合 |セルの暗号化/復号化|リストで電子メールを送信|スーパーフィルター|特殊フィルタ(太字/斜体/取り消し線などをフィルター)…… | |
トップ15ツールセット:12 種類のテキストツール(テキストの追加、特定の文字を削除など)|50種類以上のグラフ(ガントチャートなど)|40種類以上の便利な数式(誕生日に基づいて年齢を計算するなど)|19 種類の挿入ツール(QRコードの挿入、パスから画像の挿入など)|12 種類の変換ツール(単語に変換する、通貨変換など)|7種の統合&分割ツール(高度な行のマージ、セルの分割など)|… その他多数 |
Kutools for ExcelでExcelスキルを強化し、これまでにない効率を体感しましょう。 Kutools for Excelは300以上の高度な機能で生産性向上と保存時間を実現します。最も必要な機能はこちらをクリック...
Office TabでOfficeにタブインターフェースを追加し、作業をもっと簡単に
- Word、Excel、PowerPointでタブによる編集・閲覧を実現。
- 新しいウィンドウを開かず、同じウィンドウの新しいタブで複数のドキュメントを開いたり作成できます。
- 生産性が50%向上し、毎日のマウスクリック数を何百回も削減!
全てのKutoolsアドインを一つのインストーラーで
Kutools for Officeスイートは、Excel、Word、Outlook、PowerPoint用アドインとOffice Tab Proをまとめて提供。Officeアプリを横断して働くチームに最適です。





- オールインワンスイート — Excel、Word、Outlook、PowerPoint用アドインとOffice Tab Proが含まれます
- 1つのインストーラー・1つのライセンス —— 数分でセットアップ完了(MSI対応)
- 一括管理でより効率的 —— Officeアプリ間で快適な生産性を発揮
- 30日間フル機能お試し —— 登録やクレジットカード不要
- コストパフォーマンス最適 —— 個別購入よりお得