<Excel問い合わせ>文字列抽出の関数 使い方について
Excelでの文字列抽出(抜き出し)の方法について問い合わせを頂きました。
Excelの文字列抽出に関連する関数について備忘録かねてまとめておきたいと思います。
本記事を読むことで、
①Excelでの文字列抽出に使用する代表的な関数を知ることができます。
②Excelでの文字列抽出に使用する代表的な関数を使えるようになります。
③Excel関数の組み合わせ使用例を学ぶことができます。
頂いたお問い合わせは以下のような内容でした。
エクセルで、40文字の文字データが入っているセルの右横セルに20文字だけをピックアップしたいのですがどの様にすれば出来ますか?
- 「40文字の文字データ」がそもそも全角なのか半角なのか、それとも混在なのか?
- 「40文字の文字データ」は常にピッタリ40文字なのか?
- 「40文字の文字データ」はそもそも何のデーターで、20文字ピックアップした後はどのように使いたいのか?
最終的に何がしたいのか(どのような情報が欲しいのか)? - 「20文字」ピックアップとは、頭から20文字? 後ろから20文字? 途中を20文字?
など、いくつか必要な質問はあるものの、エクセルでの文字列抽出の関数の紹介と使い方をとりあえず回答として用意してみます。
文字列抽出に関連する関数
関連する関数の種類と使い方の理解
エクセルの文字列抽出とは、参照する元セルの情報が多すぎる場合に必要な情報のみを切り出したり、元セルの情報を分解したりすることです。エクセル上で文字列抽出を行ってくれるのが「文字列抽出の関数」となります。
文字列抽出に関連するエクセル関数の種類
文字列抽出に関連する代表的なエクセル関数は以下です。
他にも類似関数はありますが、初めのステップとして下の代表的な3つを覚えましょう。
- 文字列の先頭(左側)から抽出する【LEFT関数】
- 文字列の途中から抽出する【MID関数】
- 文字列の最後(右側)から抽出する【RIGHT関数】
類似関数として、【LEFTB関数】【RIGHTB関数】【MIDB関数】があり、全角と半角文字を区別したうえで抽出することができます。少し複雑になるので、ここでの詳細説明は省きますが、半角は1バイト・全角は2バイトを理解していれば考え方は同じです。
文字列抽出に関連するエクセル関数の使い方
それぞれの関数について、関数のはたらき・構文・使用方法の例について説明していきます。
まずは「LEFT」関数からです。
文字列の先頭から抽出する【LEFT関数】
関数の説明
LEFT 関数は、文字列の先頭(左)から指定された数の文字を返します。
構文
抽出した文字列を表示したいセルへ以下の記述をします。
=LEFT(文字列, [文字数])
・引数 文字列:
入力必須。
抽出元の文字列、セル番号もしくは「""」で括った文字列を指定する。
・引数 文字数:
抽出する文字数を0以上の数で指定する。
入力省略可能で省略した場合は"1"となる。
使用方法の例
以下のような表を例に説明していきます。
元々の「日付」と「顧客数(人)」のデータの右側に「日付」データから抽出した「年」「月」「日」の数字部分のみを表示したいものとします。
まずは、LEFT関数で新しく作った「年」の列(D列)を埋めていきます。
①「年」の列の一番上のセル「D3」に「=LEFT(B3,4)」と全て半角英数で入力します。
ここで、「LEFT」は関数名、「B3」は抽出元の文字列セル番号、「4」は抽出する文字数を意味しています。
②キーボードの「ENTER」を押します。
セル「D3」に「2022」が表示されます。これは①で入力した、セル「B3」の文字列の左側から「4」文字抜き出してくださいという関数設定の結果として表示されているものです。
③結果の表示されたセル「D3」(赤枠部)を選択した状態で、枠の右下角の小さな「■」をつまんで下方向のセル「D7」までドラッグしてコピーします。セル「D3」を「D4」から「D7」までへコピペしても同様です。
これで、セル「D3」へ入力した関数設定が「D4」から「D7」までコピーされ抽出結果が表示されています。
LEFT関数を使用して「日付」の元データからD列へ「年」の数値部分のみを抽出することが出来ました。
以上が「LEFT関数」の基本的な使い方です。
次に「MID」関数です。
文字列の途中から抽出する【MID関数】
関数の説明
MID 関数は、文字列途中の指定された位置から指定された数の文字を返します。
構文
抽出した文字列を表示したいセルへ以下の記述をします。
=MID(文字列, 開始位置,文字数)
・引数 文字列:
入力必須。
抽出元の文字列、セル番号もしくは「""」で括った文字列を指定する。
・引数 開始位置
入力必須。
抽出したい先頭の位置を1以上の数字で指定する。
抽出元文字列の何番目から抽出をするのかを指定する引数。
・引数 文字数:
入力必須。
抽出する文字数を指定する。
使用方法の例
以下のような表を例に説明していきます。
元々の「日付」と「顧客数(人)」のデータの右側に「日付」データから抽出した「年」「月」「日」の数字部分のみを表示したいものとします。
LEFT関数説明で作成した以下の表を使い、新しく作った「月」の列(E列)を埋めていきます。
①「月」の列の一番上のセル「E3」に「=MID(B3,6,2)」と全て半角英数で入力します。
ここで、「MID」は関数名、「B3」は抽出元の文字列セル番号、「6」は抽出元文字列の左から6番目の文字から開始、「2」は抽出する文字数を意味しています。
②キーボードの「ENTER」を押します。
セル「E3」に「09」が表示されます。これは①で入力した、セル「B3」の文字列の左側「6」番目の文字から開始して「2」文字抜き出してくださいという関数設定の結果として表示されているものです。
③結果の表示されたセル「E3」(赤枠部)を選択した状態で、枠の右下角の小さな「■」をつまんで下方向のセル「E7」までドラッグしてコピーします。セル「E3」を「E4」から「E7」までへコピペしても同様です。
これで、セル「E3」へ入力した関数設定が「E4」から「E7」までコピーされ抽出結果が表示されています。
これで、MID関数を使用して「日付」の元データからE列へ「月」の数値部分のみを抽出することが出来ました。
以上が「MID関数」の基本的な使い方です。
最後に「RIGHT」関数の説明になります。
文字列の最後から抽出する【RIGHT関数】
関数の説明
RIGHT 関数は、文字列の最後(右)から指定された数の文字を返します。
構文
抽出した文字列を表示したいセルへ以下の記述をします。
=RIGHT(文字列, [文字数])
・引数 文字列:
入力必須。
抽出元の文字列、セル番号もしくは「""」で括った文字列を指定する。
・引数 文字数:
抽出する文字数を0以上の数で指定する。
入力省略可能で省略した場合は"1"となる。
使用方法の例
以下のような表を例に説明していきます。
元々の「日付」と「顧客数(人)」のデータの右側に「日付」データから抽出した「年」「月」「日」の数字部分のみを表示したいものとします。
MID関数説明で作成した以下の表を使い、新しく作った「日」の列(F列)を埋めていきます。
①「日」の列の一番上のセル「F3」に「=RIGHT(B3,3)」と全て半角英数で入力します。
ここで、「RIGHT」は関数名、「B3」は抽出元の文字列セル番号、「3」は抽出する文字数を意味しています。
②キーボードの「ENTER」を押します。
セル「F3」に「01日」が表示されます。これは①で入力した、セル「B3」の文字列の右側から「3」文字抜き出してくださいという関数設定の結果として表示されているものです。
「01日」と数字以外の"日"という文字が入ってますが、設定した関数の結果としては正しいものになります。「01」のみにするにはどうすればいいのか知りたいですよね。これについては、次の『関数の組み合わせでの使用例』を参照してください。
③結果の表示されたセル「F3」(赤枠部)を選択した状態で、枠の右下角の小さな「■」をつまんで下方向のセル「F7」までドラッグしてコピーします。セル「F3」を「F4」から「F7」までへコピペしても同様です。
これで、セル「F3」へ入力した関数設定が「F4」から「F7」までコピーされ抽出結果が表示されています。
以上で、RIGHT関数を使用して「日付」の元データからF列へ「日」の部分のみを抽出することが出来ました。
これが「RIGHT関数」の基本的な使い方です。
しかし、このやり方だけでは「01日」と数字以外の"日"という文字も抽出されてしまってますね。当初の計画では数値部分のみを抜き出す予定でしたので、これではダメなので少し工夫が必要です。この工夫について、少し難しくなりますが次の『関数の組み合わせでの使用例』で説明します。
文字列抽出に関連するエクセル関数、「LEFT」「MID」「RIGHT」の使い方を説明してきました。一度理解してしまえば難しくはないと思いますので、後は実践で使ってみれ慣れるのが一番です。
関数の組み合わせでの使用例
エクセル関数を使う上で知っておくと便利な技
少し難易度が上がりますが、補足で『関数の組み合わせでの使用例』の説明を加えておきます。
関数の組み合わせでの使用例
「LEFT関数」「MID関数」「RIGHT関数」の説明をしましたが、結果を見るとわかりますが「LEFT関数」「MID関数」「RIGHT関数」で得られる結果は「文字列」になっています。
また、もう一度「LEFT関数」「MID関数」「RIGHT関数」の構文説明を見てみると、関数名の後の「"("」の次に来る引数は抽出元の「文字列」になっていますよね。
と言うことは、「LEFT関数」「MID関数」「RIGHT関数」の結果を、そのまま「LEFT関数」「MID関数」「RIGHT関数」の最初の引数にすることが出来るということになりませんか?
はい。出来ます。「LEFT関数」「MID関数」「RIGHT関数」の結果を、そのまま「LEFT関数」「MID関数」「RIGHT関数」の最初の引数にすることが出来ますので、例で説明していきます。
使用方法の例
「LEFT関数」「MID関数」「RIGHT関数」の一連の説明で作成した以下の表を使って「日」の列(F列)に手を加えていきます。
下の表がRIGHT関数を使用して「日付」の元データからF列へ「日」の部分のみを抽出したものでした。残念なことに、数字以外の"日"という文字が入ってしまっている状態です。(赤枠は特別意味はありません)
ここに手を加えて"日"を除いた数値情報だけにしていきたいと思います。
①「日」の列の一番上のセル「F3」(細い赤枠部)に「=LEFT(RIGHT(B3,3),2)」と全て半角英数で入力します。
ここで、「LEFT」は関数名、「RIGHT(B3,3)」は抽出元の文字列(この例では"01日"という文字列になる)、「2」は抽出する文字数を意味しています。
②キーボードの「ENTER」を押します。
セル「F3」に「01」が表示されます。これは①で入力した、関数「RIGHT(B3,3)」で得た文字列「01日」の左側から「2」文字抜き出してくださいという関数設定の結果として表示されているものです。
③結果の表示されたセル「F3」を選択した状態で、枠の右下角の小さな「■」をつまんで下方向のセル「F7」までドラッグします。セル「F3」を「F4」から「F7」までへコピペしても同様です。
これで、セル「F3」へ入力した関数設定が「F4」から「F7」までコピーされ抽出結果が表示されています。
以上で、RIGHT関数とLEFT関数の組み合わせを使用して「日付」の元データからF列へ「日」の数値部分のみを抽出することが出来ました。
少し難しかったかもしれませんが、読み直したり自分でやって見るなりして身につけてください。文字列抽出の関数に関わらず、関数の組み合わせはエクセルを使用する上で覚えておいて損はない使い方です。これを機会に理解に努めてください。
まとめ
本記事ではエクセルの文字列から自分の欲しい文字数をピックアップする方法についてまとめてみました。
エクセルでの文字列抽出に関する代表的な関数は以下の3つ。
- 文字列の先頭から抽出する【LEFT関数】
- 文字列の途中から抽出する【MID関数】
- 文字列の最後から抽出する【RIGHT関数】
※類似関数として、【LEFTB関数】【RIGHTB関数】【MIDB関数】があるが、文字数単位ではなくバイト単位での抽出を行うもので基本的な使い方はほぼ同じである。
3つの関数の使用方法、および関数の組み合わせでの使用例についての詳細は本文参照のこと。
以上