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

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

セル内のテキスト文字列から最初または最後の単語を削除するにはどうすればよいですか?

Author Xiaoyang Last modified

日常的なExcel作業では、リストや文章を管理することが一般的であり、その中でテキストデータを整理する必要があります。よくあるタスクの一つは、セル内のテキスト文字列から最初または最後の単語を削除することです。例えば、フルネームや詳細な説明が入った列がある場合でも、分析のために先頭または末尾の単語以外を保持したい場合があります。下記のスクリーンショットに示されているように、Excel自体にはこの操作用の直接的な組み込み機能はありません。しかし、数式、Excelの機能、VBAコードなど、いくつかの実用的な方法を使って効率的にこれを達成することができます。本ガイドでは、この問題を解決するための複数のアプローチを紹介し、異なるシナリオに最適なものを選ぶ手助けをします。

a screenshot showing the original text string and the result text string with the first or last word removed

目次:


数式を使用してテキスト文字列から最初または最後の単語を削除する

Excelの数式を使うと、コードを使わずに最初または最後の単語を削除する簡単な方法が得られます。この方法は、元のテキストが変更された場合に自動的に更新される動的なアプローチが必要な場合に適しています。ただし、これらの数式は単語が単一のスペースで区切られ、行頭・行末や連続したスペースがないことを前提としています。これらのソリューションを適用する前に、データの間隔を確認してください。

テキスト文字列から最初の単語を削除する:

1. 結果を表示したい空白セルに次の数式を入力してください(例: セルB2):

=RIGHT(A2,LEN(A2)-FIND(" ",A2))

ここで、A2は元のテキスト文字列を含むセルです。この数式は最初のスペースを見つけ、最初の単語とスペースを削除して、残りのテキストのみを返します。

a screenshot showing how to use formula to remove the first word from a text string

2. 数式を確定後、必要に応じてフィルハンドルをドラッグして列内の他のセルにも適用します。以下の図のように、各テキスト文字列から最初の単語が削除されていることがわかります:

a screenshot showing all text strings with the first word removed

ヒント: テキストの先頭に余分なスペース(行頭スペース)がある場合は、上記の数式を適用する前にTRIM関数を使用してデータを整理することをお勧めします。例えば:

=RIGHT(TRIM(A2),LEN(TRIM(A2))-FIND(" ",TRIM(A2)))

これにより、一部のセルで間隔が不規則であっても数式が正確に動作します。

テキスト文字列から最後の単語を削除する:

セルから最後の単語を削除するには、次の数式を使用します。それをB2などのセルに入力してください:

=LEFT(TRIM(A2),FIND("~",SUBSTITUTE(A2," ","~",LEN(TRIM(A2))-LEN(SUBSTITUTE(TRIM(A2)," ",""))))-1)

この数式は最後のスペースの位置を見つけて、それ以前のすべてのテキストを抽出します。単語間に余分なスペースがないか、前述のようにTRIM関数を使用してください。数式を入力後、必要な行数だけフィルハンドルをドラッグして適用すると、列内のすべての最後の単語が削除されます。

a screenshot showing how to use formula to remove the last word from text strings

エラー注意: セルに単語が1つだけでスペースがない場合、これらの数式はエラーまたは空白値を返します。データにそのようなケースが含まれる可能性がある場合、IFERROR関数で数式をラップしてエラーを回避できます。例えば:

=IFERROR(RIGHT(A2,LEN(A2)-FIND(" ",A2)),"")

「テキストを列に分割」機能(Excelの組み込み機能)を使用して最初または最後の単語を削除する

特に短いまたは静的なデータセットを処理する場合、Excelの組み込み機能である「テキストを列に分割」機能は、直感的かつ視覚的なアプローチで単語を分割するのに役立ちます。この方法は、テキスト文字列からすべての単語を列に素早く分割し、その後再結合して最初または最後の単語を除外する場合に理想的です。ただし、ソースセルが変更されても動的に更新されないため(数式のように動的ではありません)、一度限りのクリーンアップには非常に便利です。

ステップ:

  • 1. 分割したいテキストデータが含まれる列を選択します。
  • 2. [データ]タブに移動し、「テキストを列に分割」をクリックします。
  • 3. ウィザードで「区切り文字」を選択し、[次へ]をクリックします。
  • 4. スペース区切りのみチェックして、[次へ]をクリックします。
  • 5. 分割データの出力先を選択し、[完了]をクリックします。
  • 6. 分割後、各セルからの個々の単語が列に埋め込まれます。最初の単語を削除するには、CONCATENATEまたはTEXTJOIN(利用可能な場合)を使用して最初の列以外を再結合します。同様に、最後の単語を削除するには、最後の列以外をすべて結合します。

以下のような数式を使用できます(分割後のデータがB、C、D列にあると仮定した場合):

=CONCATENATE(C2," ",D2)

多くの列を結合する必要があり、Excel 2016以降を使用している場合、以下を使用します:

=TEXTJOIN(" ",TRUE,C2:E2)

注意:テキストを列に分割」機能は、選択範囲の右側にある既存のデータを上書きする可能性があります。常に隣接する列が空いていることを確認するか、安全のためにデータを空いているエリアにコピーしてください。この方法は迅速な手動処理に適しており、自動更新には適していません。

適用可能なシナリオ分析: 短いリストや結果を視覚的に確認・修正する必要がある場合に適した、手動での迅速な操作に最適です。自動化が必要な大規模で変動するデータセットには適しません。


VBAマクロを使用してテキスト文字列から最初または最後の単語を削除する

より高度で繰り返しの多い大量処理を行う場合、例えば大規模なデータセットのクリーンアップ、自動削除、または複雑なシナリオに対処する際には、VBAマクロが非常に効率的です。VBAを使用すると、選択したセル範囲全体から最初または最後の単語を数回のクリックで削除できます。マクロを実行する前に、データに異常なスペースや特殊な改行スペースがないことを確認してください。これにより分割精度が影響を受ける可能性があります。

このVBAコードを使用する方法:

1. [開発] > [Visual Basic]をクリックして、Microsoft Visual Basic for Applicationsエディターを開きます。新規ウィンドウで[挿入] > [モジュール]をクリックし、次のいずれかのコードをモジュールに貼り付けます。

選択したセルから最初の単語を削除する:

Sub RemoveFirstWord()
    Dim WorkRng As Range
    Dim Rng As Range
    Dim arr As Variant
    On Error Resume Next
    xTitleId = "KutoolsforExcel"
    Set WorkRng = Application.Selection
    Set WorkRng = Application.InputBox("Select range to remove first word", xTitleId, WorkRng.Address, Type:=8)
    For Each Rng In WorkRng
        If InStr(Rng.Value, " ") > 0 Then
            arr = Split(Rng.Value, " ")
            Rng.Value = Mid(Rng.Value, InStr(Rng.Value, " ") + 1)
        End If
    Next
End Sub

2. F5キーを押すか、[実行]をクリックしてコードを実行します。マクロはダイアログボックスをポップアップし、処理したいセルを選択できます。[OK]をクリックすると、選択したセルから最初の単語が削除されて直接更新されます。

選択したセルから最後の単語を削除する:

選択したセルから最後の単語を削除するには、次のVBAコードを適用します。

Sub RemoveLastWord()
    Dim WorkRng As Range
    Dim Rng As Range
    Dim arr As Variant
    On Error Resume Next
    xTitleId = "KutoolsforExcel"
    Set WorkRng = Application.Selection
    Set WorkRng = Application.InputBox("Select range to remove last word", xTitleId, WorkRng.Address, Type:=8)
    For Each Rng In WorkRng
        If InStr(Rng.Value, " ") > 0 Then
            arr = Split(Rng.Value, " ")
            Rng.Value = Left(Rng.Value, Len(Rng.Value) - Len(arr(UBound(arr))) - 1)
        End If
    Next
End Sub

注意: これらのマクロは、選択範囲内の各セルでスペースで区切られた最初または最後の単語のみを削除します。セルに単語が1つしかない場合(スペースがない場合)、そのセルは変更されません。VBAコードを実行する前に、常にデータのコピーを作成するか、ワークブックを保存してください。変更は元に戻せません。

利点: VBAは大量のデータを迅速に処理でき、特に大量の表データを扱う際に反復的なクリーンアップタスクを自動化するのに非常に効果的です。

トラブルシューティング: 「実行時エラー」が発生した場合、選択範囲内のすべての値がテキスト形式であることを確認してください。空白またはエラーのあるセルは、マクロがスキップしたり停止したりする原因になります。


どの方法を選択する場合でも—数式、テキストを列に分割、またはVBA—データの一貫性を確認するために結果を必ずチェックしてください。特に、テキストに余分なスペース、句読点、または予期しない単語の並びが含まれる可能性がある場合です。元のデータをバックアップできる場合、特に一括編集や見慣れないマクロを適用する際には、必ずバックアップしてください。Excelでのテキストのクリーンアップや分割に柔軟性や堅牢性のあるソリューションが必要な場合、Kutools for Excelは、複雑な数式やコードなしで様々なテキスト分割や書式設定の課題に対応する包括的なツールセットを提供します。


特定の区切り文字でセル値を複数の列や行に分割する:

Kutools for Excelの「セルを分割」機能を使用すると、指定したスペース、カンマ、新しい行、またはその他の区切り文字でセル内のテキスト文字列を簡単に複数の列や行に分割できます。

a screenshot showing how to use Kutools for Excel to easily split cells into multiple rows or columns by a certian separator

Kutools for Excel: 300以上の便利なExcelアドインが付属し、30日間無制限で無料試用可能。 今すぐダウンロード&無料トライアル!


関連記事:

Excelでテキストから最初、最後、または特定の文字を削除するにはどうすればよいですか?


最高のオフィス業務効率化ツール

🤖 Kutools AI Aide:データ分析を革新します。主な機能:Intelligent Executionコード生成カスタム数式の作成データの分析とグラフの生成Kutools Functionsの呼び出し……
人気の機能重複の検索・ハイライト・重複をマーキング空白行を削除データを失わずに列またはセルを統合丸める……
スーパーLOOKUP複数条件でのVLookup複数値でのVLookup複数シートの検索ファジーマッチ……
高度なドロップダウンリストドロップダウンリストを素早く作成連動ドロップダウンリスト複数選択ドロップダウンリスト……
列マネージャー指定した数の列を追加列の移動非表示列の表示/非表示の切替範囲&列の比較……
注目の機能グリッドフォーカスデザインビュー強化された数式バーワークブック&ワークシートの管理オートテキスト ライブラリ日付ピッカーデータの統合セルの暗号化/復号化リストで電子メールを送信スーパーフィルター特殊フィルタ(太字/斜体/取り消し線などをフィルター)……
トップ15ツールセット12 種類テキストツールテキストの追加特定の文字を削除など)50種類以上のグラフガントチャートなど)40種類以上の便利な数式誕生日に基づいて年齢を計算するなど)19 種類の挿入ツールQRコードの挿入パスから画像の挿入など)12 種類の変換ツール単語に変換する通貨変換など)7種の統合&分割ツール高度な行のマージセルの分割など)… その他多数
Kutoolsはお好みの言語で利用可能 ― 英語、スペイン語、ドイツ語、フランス語、中国語、その他40以上の言語に対応!

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