文字列を検索して抽出する
特定の文字列の左または右を抽出します。
FIND関数やSEARCH関数を利用すれば、文字数の揃っていないリストでも抽出できます。
文字列を検索する関数
今回使う関数は、FIND関数またはSEARCH関数です。
どう違うの?
検索する文字列の大文字と小文字を区別したい場合はFIND関数、区別しない場合はSEARCH関数で、それ以外は全く同じ扱いになります。
検索の関数は単体で使うことはほとんどなく、他の関数との組み合わせで使っていきます。
FIND関数
文字や記号を検索し、最初に現れる位置が何文字目か求める関数です。大文字と小文字を区別します。
例:【A1】から「う」の文字を検索します。
=FIND(“う”,A1)
※最初の位置から数えるため「開始位置」は省略しています。
「う」は左から3文字目なので、結果は「3」となります。
SEARCH関数
文字や記号を検索し、最初に現れる位置が何文字目か求める関数です。大文字と小文字は区別しません。
例:【A1】から「う」の文字を検索します。
=SEARCH(“う”,A1)
※最初の位置から数えるため「開始位置」は省略しています。
「う」は左から3文字目なので、結果は「3」となります。
検索した文字まで抽出/LEFT・FIND
C列にB列(住所)の区を抜き出して表示します。
「区」までの位置はセルによって違うので単に左から3文字…のような抽出はできません。
FIND関数(SEARCH関数)とLEFT関数を組み合わせることで揃っていないリストでも抽出できます。
【C2】に入力する関数です。
【B2】の左から文字列を抽出します。
=LEFT(B2,?)
抽出する文字数の部分「?」に入れたいのは区までの文字数です。
ここではFIND関数を組み合わせます(SEARCH関数でも可)。
=LEFT(B2,FIND(“区”,B2))
下までコピーしましょう。
LEFT関数について詳しくはこちらの記事をご覧ください。
検索した文字を含めず抽出/LEFT・FIND・-
上記と同様に検索して左側を抽出します。
A列の氏名から、半角スペースの左側の姓の部分を抽出します。
FIND関数(SEARCH関数)とLEFT関数を組み合わせます。
【D2】に入力する関数です。
【A2】の左から文字列を抽出します。
=LEFT(A2,?)
抽出する文字数の部分「?」に入れたいのは半角スペースまでの文字数です。
ここではFIND関数を組み合わせます(SEARCH関数でも可)。
“”(ダブルクォーテーション)の間に半角スペースを入力します。
=LEFT(A2,FIND(” “,A2))
この式では半角スペースも抽出されるよ!
今回は検索した半角スペースは不要なので、半角スペースの位置から一つ前までを抽出します。
検索した半角スペースの位置から1を引きます。
=LEFT(A2,FIND(” “,A2)-1)
下までコピーしましょう。
検索した文字から右を抽出/RIGHT・FIND・LEN
A列の氏名から、半角スペースの右側の名前の部分を抽出します。
FIND関数(SEARCH関数)とRIGHT関数を組み合わせてみます。
【E2】に入力する関数です。
【A2】の右から文字列を抽出します。
=RIGHT(A2,?)
抽出する文字数の部分「?」に入れたいのは半角スペースから右の文字数です。
FIND関数で半角スペースの位置は分かりますが右側が何文字かは分かりません。
右側の数はどうすれば分かるの?
セルの中すべての文字数が分かると右側の文字数が分かります。
全体の文字数を調べるにはLEN関数を使います。
LEN関数
文字列の長さ(文字数)を求める関数です。全角半角関係なく1文字は1と数えます。
※長さの「length」からきています。
例:【A1】の文字を数えます。
=LEN(A1)
結果は「5」となります。
では、先程の式に入れてみます。
【A2】の右から文字列を抽出します。
抽出するのは、全体の文字数からスペースの位置までを引いた数です。
=RIGHT(A2,LEN(A2)–FIND(” “,A2))
下までコピーしましょう。
RIGHT関数について詳しくはこちらの記事をご覧ください。