この記事ではエクセルで特定の文字から左側を抽出する方法について解説していきます。
ポイントは、以下の4つです。
・FIND関数とLEFT関数を組み合わせて特定文字より左を抽出する方法
・特定文字自体も含めて抽出する方法
・特定文字より左を抽出するマクロ
・特定文字自体も含めて抽出するマクロ
エクセル操作は1つ1つ追っていけば必ずうまくできるため、ぜひ本記事を参考にスキルアップにつなげてくださいませ♪
エクセルで特定の文字から左を抽出する方法【FIND関数とLEFT関数】
それでは以下のサンプルを用いて関数を使った特定文字より左の抽出方法を確認していきます。
まずA列に元データを入力します。
そしてB2セルに以下の数式を入力します。
=LEFT(A2,FIND(“@”,A2)-1)
FIND関数で”@”の位置を取得し、LEFT関数でその位置より左側の文字列を取り出します。
この例ではFIND(“@”,A2)-1で”@”の位置から1を引いた文字数分、左端から文字列を取り出すことで、”@”より左側を抽出しています。
ENTERで処理を確定させます。
B2セルの右下にカーソルを合わせてドラッグorダブルクリックし、オートフィルでB列全体に数式をコピーします。
これでA列の元データから”@”より左側を抽出した結果がB列に表示されます。
元データを変更すれば、B列の結果も自動的に更新されます。
FIND関数とLEFT関数の組み合わせは、特定の区切り文字より左側を抽出したい場合に応用できる便利なテクニックです。
エクセルで特定の文字自体も含めて左を抽出する方法【FIND関数の結果をそのまま使う】
続いては、関数を使って特定文字自体も含めて左側を抽出する方法を確認していきます。
A列に元データが入力された状態で、B2セルに以下の数式を入力します。
=LEFT(A2,FIND(“@”,A2))
LEFT関数とFIND関数を組み合わせて”@”の位置を取得しますが、FIND関数の結果から1を引かずにそのまま LEFT関数に渡すことで、”@”自体も含めて左側を抽出しています。
ENTERで処理を確定させ、オートフィルでB列全体に数式をコピーします。
これでA列の元データから”@”を含む左側が抽出された結果がB列に表示されます。
特定文字自体が必要な場合は、このようにFIND関数の結果をそのまま使うことがポイントです。
特定文字から左を抽出する方法【マクロで自動化】
関数を使った特定文字より左の抽出をマクロで自動化する方法を見ていきます。
VisualBasicエディタを開き、以下のコードを入力します。
Sub ExtractLeft()
Dim lastRow As Long
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
Range("B2").Formula = "=LEFT(A2,FIND(""@"",A2)-1)"
Range("B2").AutoFill Destination:=Range("B2:B" & lastRow)
End Sub
このマクロは、A列の最終行を自動判定し、B2セルに”@”より左側を抽出する数式を入力後、オートフィルでB列全体に数式をコピーします。
マクロを実行すれば、”@”より左の抽出が一発で完了します。
抽出したい特定文字を変更する場合も、マクロのコードを一部修正するだけで済むため、作業効率が格段に上がります。
特定文字も含めて抽出する方法【マクロで自動化】
最後は関数を使った特定文字を含む左側抽出をマクロで自動化する方法です。VisualBasicエディタを開き、以下のコードを入力します。
Sub ExtractLeftWithChar()
Dim lastRow As Long
lastRow = Cells(Rows.Count, 1).End(xlUp).Row
Range("B2").Formula = "=LEFT(A2,FIND(""@"",A2))"
Range("B2").AutoFill Destination:=Range("B2:B" & lastRow)
End Sub
このマクロは、A列の最終行を自動判定し、B2セルに特定文字”@”を含めて左側を抽出する数式を入力後、オートフィルでB列全体に数式をコピーします。
マクロを実行すれば、”@”を含む左側の抽出が一発で完了します。
特定文字を変更したい場合も、マクロのコードを一部修正するだけで済むため、作業効率が格段に上がります。
まとめ エクセルで特定の文字から左を抽出する方法を関数とマクロで実現する方法
以上、エクセルで特定の文字から左を抽出する方法を関数とマクロで実現する方法を紹介しました。
関数とマクロを状況に応じて使い分けることが大切です。
ぜひ実務のエクセル作業で試してみてください。