Excel

【Excel】エクセルで特定の文字から右を抽出(前も含む場合、指定文字より左を削除、以降を削除)する方法

当サイトでは記事内に広告を含みます
技術ブログ特化メルマガはこちら

この記事ではエクセルで特定の文字から右側を抽出する方法について解説していきます。

ポイントは、以下の4つです。

・RIGHT関数とFIND関数を組み合わせて特定文字より右を抽出する方法

・特定文字自体も含めて抽出する方法

・特定文字より右を抽出するマクロ

・特定文字自体も含めて抽出するマクロ

エクセルで特定の文字から右を抽出する方法【FIND関数とRIGHT関数】

それでは以下のサンプルを用いて関数を使った特定文字より右の抽出方法を確認していきます。

A列に元データを入力後、B2セルに以下の数式を入力します。

=RIGHT(A2,LEN(A2)-FIND(“@”,A2))

FIND関数で”@”の位置を取得し、RIGHT関数で右側の文字列を取り出します。

ENTERで処理を確定させます。

オートフィルでB列全体に数式をコピーすると、A列全体の”@”より右側が抽出されます。

元データを変更すれば、B列の結果も自動的に更新されます。

FIND関数とLEFT関数の組み合わせは、特定の区切り文字より右側を抽出したい場合に応用できる便利なテクニックです。

エクセルで特定の文字自体も含めて右を抽出する方法【FIND関数の結果から1を引く】

続いては、関数を使って特定文字自体も含めて右側を抽出する方法を確認していきます。

A列に元データを入力後、B2セルに以下の数式を入力します。

=RIGHT(A2,LEN(A2)-FIND(“@”,A2)+1)

FIND関数の結果から1を引くことで、”@”自体も含めて右側を抽出しています。

ENTERで処理を確定させ、オートフィルでB列全体に数式をコピーすると、A列の”@”を含む右側が抽出されます。

これでA列の元データから”@”を含む右側が抽出された結果がB列に表示されます。

特定文字自体が必要な場合は、このようにFIND関数の結果をそのまま使うことがポイントです。

特定文字から右を抽出する方法【マクロで自動化】

関数を使った特定文字より右の抽出を、マクロで自動化する方法を見ていきます。

VisualBasicエディタを開き、以下のコードを入力します。


Sub ExtractRight()
Dim lastRow As Long

lastRow = Cells(Rows.Count, 1).End(xlUp).Row  

Range("B2").Formula = "=RIGHT(A2,LEN(A2)-FIND(""@"",A2))" 
Range("B2").AutoFill Destination:=Range("B2:B" & lastRow)
End Sub

A列の最終行を自動判定し、B2セルに”@”より右側を抽出する数式を入力後、オートフィルでB列全体に数式をコピーします。

マクロを実行すれば、”@”より右の抽出が一発で完了します。

特定文字を変更したい場合も、マクロのコードを一部修正するだけで済むため、作業効率が格段に上がります。

特定文字も含めて右を抽出する方法【マクロで自動化】

VisualBasicエディタを開き、以下のコードを入力します。


Sub ExtractRightWithChar()
Dim lastRow As Long

lastRow = Cells(Rows.Count, 1).End(xlUp).Row

Range("B2").Formula = "=RIGHT(A2,LEN(A2)-FIND(""@"",A2)+1)"
Range("B2").AutoFill Destination:=Range("B2:B" & lastRow) 
End Sub

A列の最終行を自動判定し、B2セルに”@”を含めて右側を抽出する数式を入力後、オートフィルでB列全体に数式をコピーします。

マクロを実行すれば、”@”を含む右側の抽出が一発で完了します。

特定文字を変更したい場合も、マクロのコードを一部修正するだけで済むため、作業効率が格段に上がります。

まとめ エクセルで特定の文字から右を抽出する方法を関数とマクロで実現する方法

以上、エクセルで特定の文字から右を抽出する方法を関数とマクロで実現する方法を紹介しました。

状況に応じて使い分けることが大切です。ぜひ実務のエクセル作業で試してみてください。