Excel で特定の文字列を抽出する方法

2022年4月26日

Excel で特定の文字列を抽出する方法

抽出したい文字数が決まっている場合

特定の 2 文字または他の文字番号を抽出する場合は、取得する位置に応じて 3 つの関数を使用します。

文字列の先頭から抽出する場合のLEAF関数

LEFT 関数を使用して、左から文字列を取得します。

この関数は “=LEFT(文字列,[文字数]) をクリックし、文字列の先頭から指定した文字数を返します。[文字数]省略してもかまいませんが、その場合は文字列の最初の文字が出力されます。

B2 セルに入力され、C2 セルに表示される文字列 “ABCDEFG" から最初の 2 文字が取得された場合は、C2 セルに「=LEFT(B2,2)」と入力します。

左関数出力

文字列の先頭から 2 文字の “AB" が C2 セルに抽出されました。

文字列の末尾から抽出するときのRIGHT関数

右側から文字列を取得する場合は、RIGHT 関数を使用します。

この関数は “=RIGHT(文字列、[文字数]) をクリックし、文字列の末尾から指定した文字数を返します。[文字数]省略することができ、その場合は文字列の末尾から 1 文字が出力されます。

RIGHT関数を入力する

B2セルに入力した文字列「ABCDEFG」の末尾から2文字を抽出してC2セルに表示したい場合は、C2セルに「=RIGHT(B2,2)」と入力します。

RIGHT関数の出力

文字列の末尾から “FG" の 2 文字が C2 セルに抽出されました。

文字列の途中から抽出するときの MID 関数

文字列の途中から文字列を取得する場合は、MID 関数を使用します。

この関数は “=MID (文字列、開始位置、文字数)" で構成され、文字列の指定された位置から指定された文字数を返します。

MID 関数を入力します。

B2 セルに入力した文字列 “ABCDEFG" の先頭から 3 番目以降の文字を抽出し、C2 セルに表示する場合は、C2 セルに =MID (B2, 3, 2) と入力します。

ミッドファンクション出力

文字列 “CD" の 3 番目から 2 番目の文字は、C2 セルに抽出されました。

このページを閲覧している方におすすめの商品

抽出する文字数が異なる場合

上記では、抽出する文字数を固定していましたが、条件に合致する文字列を抽出する場合、必ずしも文字数が固定されているとは限りません。今回は、ダミーメールアドレスを使って抽出した文字数が異なる場合を例に説明します。

抽出する文字列に共通する文字 (電子メール アドレス、電話番号、住所など) がある場合は、FIND 関数を使用します。一般的な文字は、電子メール アドレスの場合は “@(アットマーク)"、電話番号の場合は -(ハイフン) です。まず、FIND関数の使い方を見てみましょう。

サンプルメールアドレス

上記のメールアドレスデータを例にFIND機能の使い方を説明しましょう。

検索機能を入力

FIND 関数は “=FIND (検索文字列、ターゲット、[開始位置]) を使用して、他の文字列で指定した文字列を検索するには、文字列が左端から出現する最初の位置をカウントし、数値を返します。

[開始位置]省略することができ、その場合、それは1であるとみなされる。

上記の例では、B2セル文字列の「@」の位置が出力されています。C2 セルに「=FIND(“@", B2)」と入力します。

関数出力の検索

@の左端からの位置である「5」をC2セルに出力した。

FIND 関数の出力を自動入力する

オートフィルを使用して、C2 セルの右下をプルダウンして、他の行を計算します。各行の@位置を出力することができました。

上記のLEFT関数、RIGHT関数、MID関数、FIND関数を組み合わせて文字数が違っても抽出する方法を説明しましょう。

左からテキストを抽出して検索する

LEFT 関数と FIND 関数の組み合わせを入力します。

上の図の例は、文字列の先頭から「@」まで文字列を抽出したい場合です。この場合、LEFT関数 “=LEFT(B2,?)"だけでは文字数を計算することができません。

このような場合、検索文字「@」の位置からLEFT関数で指定した文字数に1を引くことで文字数を計算できます。

C2 セルに「=LEFT(B2,FIND(“@", B2)-1).

LEFT関数とFIND関数を組み合わせた出力結果

左端から@までの文字列 “hoge"がC2セルに出力されました。

LEFT関数とFIND関数を組み合わせたオートフィル出力結果

オートフィルを使用してC2セルの右下をプルダウンすることで、他の行から文字列を抽出することができました。

右から検索文字までのテキストを抽出する

RIGHT 関数と FIND 関数の組み合わせを入力します。

上の図の例は、文字列の末尾から「@」まで文字列を抽出したい場合です。この場合、RIGHT関数 “=RIGHT(B2,?)"だけで文字数を計算することはできません。

このような場合は、すべての文字から @ に位置を減算することで、RIGHT 関数で指定された文字数を計算できます。

合計文字数を調べるには、文字列内の文字数を返す関数である LEN 関数を使用します。find 関数は、@ までの位置を計算し、すべての文字から減算して @ の後の文字数を計算します。

C2 セルに「=RIGHT(B2,LEN(B2)-FIND (“@", B2)」と入力します。

RIGHT関数とFIND関数を組み合わせた出力結果

右端から@までの文字列 “example.com" が C2 セルに出力されました。

RIGHT関数とFIND関数を組み合わせた出力結果を自動入力する

オートフィルを使用して、C2セルの右下をプルダウンすることで、他の行の@以降の文字列を抽出することができました。

特定の範囲の文字列を抽出する

MID 関数と FIND 関数の組み合わせを入力する

上の図の例は、文字列の “@" 以降を示しています。com」までの文字列を抽出したい場合です。この場合、文字数はMID関数"=MID(B2,?,?)だけでは計算できません。」。

このような場合は、開始位置と文字数をFIND関数に置き換えることで計算できます。

開始位置は FIND 関数によって取得され、1 を加算します。文字数は FIND 関数の “"." で、1 を減算します。また、位置を@に減算することで文字数を計算できます。

セル C2 に、=MID(B2,FIND(@", B2)+1, FIND(“.,B2)-1-FIND(“@", B2)" と入力します。

MID関数とFIND関数を組み合わせた出力結果

C2セルの “@"以降、 “com"までの文字列 “example"が印刷されました。

MID 関数と FIND 関数を組み合わせたオートフィル出力結果

オートフィルを使用してC2セルの右下をプルダウンすることで、他の行から文字列を抽出することができました。

Excel 文字列に関する情報の概要

Excelで文字列を組み合わせる方法( “&"または関数を持つ3つの方法)

Excel で文字列を分割するさまざまな方法

Excelセルの余分なスペースを削除する方法

Excel が同じ文字を処理する方法

Excel で指定された文字列が関数に含まれているかどうかを判断する方法

Excel で空白セルを一括削除する方法