【Excel】エクセルでアルファベットのみを抽出する方法【文字列から】 | モアイライフ(more E life)
EXCELのYouTube始めました!

EXCEL初心者に向けたYouTubeチャンネルを開始しました(^^)/
ぜひチャンネル登録よろしくお願いします!

効率よくエクセルを学ぶ!

【Excel】エクセルでアルファベットのみを抽出する方法【文字列から】

Excelのスキルアップ
本サイトでは記事内に広告が含まれています

エクセルはデータ解析・管理を行うツールとして非常に機能が高く、上手く使いこなせると業務を大幅に効率化できるため、その扱いに慣れておくといいです。

ただ機能が充実しているあまり初心者にとっては処理方法がよくわからないことも多いといえます。

例えばエクセルで文字列からアルファベット(英字)のみを抽出する方法を理解していますか。

ここではエクセルで文字列からアルファベットのみを抽出する方法について解説していきます。

スポンサーリンク

エクセルで文字列からアルファベットのみを抽出する方法1【英字】

文字列からアルファベット(英字)のみを抽出する方法として、複数の関数を組み合わせた複雑(難解)な計算式がネット上でもいくつか紹介されていますが、いずれも利用場面は限定的で、実務で使うには一長一短があります。

下記は計算式(関数)を使ってアルファベット(英字)のみを抽出する方法の一例です。

A列の文字列から、B列にアルファベット(英字)のみを抽出します。

B1セルに下記の計算式を入力しB2セルにコピーします。

=IF(OR(AND(CODE(A1)>=65,CODE(A1)<=90),AND(CODE(A1)>=97,CODE(A1)<=122),AND(CODE(A1)>=9057,CODE(A1)<=9082),AND(CODE(A1)>=9025,CODE(A1)<=9050)),LEFT(A1,LENB(JIS(A1))-LENB(A1)),RIGHT(A1,LENB(JIS(A1))-LENB(A1)))

上記の式では

①A1セルの文字列の先頭がアルファベットかアルファベットでないかを判定

②A1セルの文字列の先頭がアルファベットならば、アルファベットの文字数分先頭から取り出す。

③A1セルの文字列の先頭がアルファベットでないならば、アルファベットの文字数分後尾から取り出す。

という処理を行って、エクセルにて文字列からアルファベット(英字)のみを抽出できるのです。

 

なおこの式ではアルファベット文字の全角/半角、大文字/小文字の違いには対応していますが、「Excelエクセルwindows」や「エクセルExcel表計算」といったアルファベットとその他の文字種が交互に入り混じったケースでは使えません

その都度式を修正すれば事足りるとも言えますが、計算式はますます複雑化し処理できないケースも多いため、以下のVBA(マクロ)を使い文字列からアルファベットのみを抽出する方法も理解しておくといいです。

 

エクセルで文字列からアルファベット(英字)のみを抽出する方法2(ユーザー定義関数)

ユーザー定義関数を使って、アルファベット(英字)のみを抽出する方法について説明します。

ユーザー定義関数とは、実行したい計算や処理手順をユーザーが自ら定義する関数のことで、ワークシート上の計算式で、エクセルに標準で用意されている関数と同じ要領で使うことができます。

 

①メニューの【開発】>【Visual Basic】で「Microsoft Visual Basic for Applications」のウインドウを表示。

 

②【ツール】>【参照設定】を選択

 

③「Microsoft VBScript Regular Expressions 5.5」にチェックを付けます。

*Microsoft VBScript Regular Expressionsはエクセルで「正規表現」を利用するためのアドイン(拡張機能)です。「正規表現」を使うと複雑な文字列をパターンとして認識できるようになり、柔軟な文字列の検索が可能になります。

つまり今回の文字列からアルファベットのみを抽出することに対応しやすくなるのです。

 

④【挿入】>【標準モジュール】を選択

 

⑤「標準モジュール」Module1が挿入されたら、ユーザー定義関数のコードを記述します。

 

⑥ ⑤の図で「ここにコードを記述」と図示したところに下記のテキストを張り付けてください。

Function RegE(MyString As String, SP) As String
With CreateObject(“VBScript.RegExp”)
.Global = True
.Pattern = SP
RegE = .Replace(MyString, “”)
End With
End Function

以上で、以上でユーザー定義関数の設定は完了です(僅か7行のコードです)。

「Microsoft Visual Basic for Applications」のウインドウを閉じて、エクセルの画面に戻って下さい。

 

ここで作成したユーザー定義関数の書き方(書式)は下記の通りです。

RegE(対象文字列、除外する文字パターン)

対象文字列から除外する文字パターンに該当する文字を削除した結果が得られます。

(除外する文字パターンは「正規表現」のルールに沿って書きますが、ここでは省略いたします)

 

実際にアルファベット(英字)のみを抽出してみます。

B1セルに「=RegE(A1,”[^A-Za-zA-Za-z]”)」を入力しB2セルにコピーします。

検索除外パターンに[^A-Za-zA-Za-z]を指定することで大文字/小文字、半角/全角のアルファベット以外の文字を削除しています。

 

上記のような対象文字列でも機能します。

なお今回定義した関数は「除外する文字パターン」を変更するだけで、文字列からアルファベットのみを抽出するだけでなく下記の様なケースでも幅広く利用可能です。

ユーザー定義関数を定義したエクセルを保存する場合は、「名前を付けて保存」で「Excelマクロ有効ブック(*.xlsm)」形式で保存して下さい。

 

まとめ エクセルでアルファベットのみを抽出する方法【文字列】

ここでは、エクセルで文字列からアルファベット(英字)のみを抽出する方法につて確認しました。

上述のような複雑な関数を組み合わせて使用するか、マクロ(VBA)を上手く利用するといいです。

エクセルでのさまざまな処理に慣れ、日々の業務を効率化していきましょう。

コメント

スポンサーリンク
タイトルとURLをコピーしました