Excel で2 番目のスペースまたはコンマの前後にテキストを抽出するには、どうすればよいですか?
Excel でテキストデータを扱う際、複数のスペースやコンマ、その他の区切り文字を含む文字列に頻繁に遭遇します。Excel の文字列を列に分割機能を使えば、選択した区切り文字に基づいてセルの内容を別々の列に簡単に分割できますが、場合によってはさらに具体的な対応が必要になることも。たとえば、セル内の2 番目のスペースまたはコンマの前または後にあるテキストすべてを抽出したいケースなどです。本記事では、こうした課題を解決するための実用的な手法をご紹介します。2 番目のスペース/コンマの前または後のテキストを抽出する数式、大規模データや自動化に最適な VBA マクロによる堅牢なソリューション、そして高度なデータ前処理に役立つ Power Query を活用した柔軟なアプローチまで、シーンに応じて選べる多彩な選択肢をご覧ください。

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キーを押してマクロを実行します。すると、ダイアログが表示され、データ範囲の選択、区切り文字の入力、「前」または「後」の指定、および結果の出力先セルの選択を求められます。マクロは、指定されたセルに抽出結果を出力します。
最高の Office 業務効率化ツール
| 🤖 | KUTOOLS AI アシスタント:次に基づいてデータ分析を革新します:インテリジェント実行 | コード生成| カスタム数式作成 | データ分析とチャート生成| 拡張機能呼び出し… |
| 人気の機能:検索・ハイライト、または重複をマーキング | 空白行を削除する | データを失うことなく列の結合またはセルを | 数式を使用しない四捨五入... | |
| スーパー LOOKUP:複数条件 VLookup | 複数値 VLookup | 複数シート間 VLookup | ファジーマッチ.... | |
| 高度なドロップダウンリスト:ドロップダウンリストをすばやく作成 | 連動型ドロップダウンリスト | 複数選択可能なドロップダウンリスト.... | |
| 列マネージャー:指定した数の列を追加|列の移動|非表示列の表示状態を切り替え|範囲および列の比較... | |
| 注目の機能:グリッドフォーカス | デザインビュー |強化された数式バー | ワークブックとシートマネージャー | リソースライブラリ(オートテキスト)| 日付ピッカー | ワークシートの統合 | 暗号化/セルの復号化 | リストからメール送信 | スーパーフィルター | 特殊フィルタ(太字のフォントを持つセルをフィルタリング/斜体/取り消し線。。。) 。。。 | |
| トップ15 ツールセット:12 テキストツール(テキストの追加、特定の文字を削除、...)| 50+チャートタイプ(ガントチャート、...)| 40+実用的関数(誕生日に基づいて年齢を計算します、...)| 19 挿入ツール(QR コードを挿入、パスから画像を挿入、...)| 12 変換ツール(単語に変換する、為替レートの変換、...)| 7 結合と分割ツール(高度な行のマージ、セルの分割、...)|さらに多数 |
Kutools for Excel でExcel スキルを強化し、これまでにない効率を体験しましょう。Kutools for Excel は、生産性を高め、時間を大幅に節約できる高度な機能を300 以上提供します。最も必要な機能を今すぐ入手するにはこちらをクリック。。。
Office Tab は Office にタブインターフェースをもたらし、作業を大幅に簡単にします
- Word、Excel、PowerPoint でタブを使った編集と閲覧を有効にします。Publisher、Access、Visio、Project でもご利用いただけます。
- 複数のドキュメントを、新しいウィンドウではなく、同じウィンドウ内の新しいタブで開いたり作成したりできます。
- 日々の生産性を50%も向上させ、毎日数百回ものマウスクリックを削減します!
すべてのKutools アドインが、たった1 つのインストーラーで完結。
Kutools for Officeスイートには、Excel ・Word ・Outlook ・PowerPoint 用のアドインと Office Tab Pro が含まれており、複数の Office アプリを横断して作業するチームに最適です。
- オールインワンスイート— Excel、Word、Outlook、PowerPoint 用アドイン+Office Tab Pro
- インストーラー1 つ、ライセンス1 つ— 数分でセットアップ可能(MSI 対応)
- 連携してさらにパワーアップ— Office アプリ全体で生産性が向上
- 30 日間のフル機能トライアル— 登録不要、クレジットカード不要
- 最高のお得感— 個別アドイン購入よりお得