Excelで文字列抽出
LEFT関数FIND関数の使い方 エクセルの関数技4回 文字列関数
文字列抽出するLEFT関数と位置を知らせるFIND関数
『氏名』から『姓』だけをとりだすには、エクセル関数の中から文字列を取り出す関数を使います。 文字列を取り出す関数には、LEFT,RIGHT,MID があり、住所から『県名』だけをとりだしたり、住所から都道府県名を取り出したりすることができます。
名簿の『氏名』から『姓』だけをとりだす
今回は、顧客リストや会員リストのような名簿の氏名から姓だけを取り出してみましょう。
代表的な文字列抽出関数には、LEFT,RIGHT,MID がありますが、これらは、文字列から、指定した数の文字を取り出します。
LEFT関数は左から取り出します。RIGHT関数は右端から、MID関数は指定した位置から取り出します。
使い分けは、どこから取り出したほうが簡単かという判断で使います。
(サンプルファイルは、こちらから 関数技4回サンプルデータ)
LEFT関数で左から姓を取り出す
LEFT関数の書式
=LEFT(文字列,文字数)
=LEFT(文字列,文字数)
B2セルにLEFT関数の書式 =LEFT(文字列,文字数)にあてはめて式を入力します。
2文字の姓を取り出す場合は、=LEFT(A2,2) です。
2文字の姓を取り出す場合は、=LEFT(A2,2) です。
入力した式は上図のようになります。
でも、B6セルの場合では、姓が3文字あるので、取り出せていません。
取り出す文字列の数が2で固定されている場合、当然ですが、2文字以外しか取り出せません。なんとか取り出す文字数が変化するようにしたいものです。
ポイント スペースに注目
姓と名の間に必ずあるのが、スペース。
そこで、FIND関数を使います。
取り出す文字列の数が2で固定されている場合、当然ですが、2文字以外しか取り出せません。なんとか取り出す文字数が変化するようにしたいものです。
ポイント スペースに注目
姓と名の間に必ずあるのが、スペース。
そこで、FIND関数を使います。
FIND関数は、指定した文字の位置を知らせる
FIND関数は、文字列が開始位置から何番目にあるか調べてその数値を返します。
姓と名の間にある「スペース」の位置を調べさせて、その位置より前の部分を取り出すようにすれば、姓の文字数に関係なく、氏名から姓を取り出すことができます。
=FIND(検索文字列,対象,開始位置)
姓と名の間にある「スペース」の位置を調べさせて、その位置より前の部分を取り出すようにすれば、姓の文字数に関係なく、氏名から姓を取り出すことができます。
=FIND(検索文字列,対象,開始位置)
いったん、スペースが何文字目に来るかの式を入れてましょう。
「山本山 淳」の場合は、スペースは4番目
「張 茉莉」の場合は、スペースは2番目にあります。
では、LEFT関数と組合わせてみましょう。この式をLEFT関数の中に入れ子として使います。
「張 茉莉」の場合は、スペースは2番目にあります。
では、LEFT関数と組合わせてみましょう。この式をLEFT関数の中に入れ子として使います。
LEFT関数の中に、FIND関数を入れ子にしました。
「山本山 淳」の場合は、=LEFT(A6,FIND(" ",A6,1) という式になっています。
この場合は、スペースも一緒に取り出しているので、気になる場合は、
1文字分マイナスしてください。
その場合の式は、
=LEFT(A6,FIND(" ",A6,1)-1)
=LEFT(A7,FIND(" ",A7,1)-1)
というような感じです。
1文字分マイナスしてください。
その場合の式は、
=LEFT(A6,FIND(" ",A6,1)-1)
=LEFT(A7,FIND(" ",A7,1)-1)
というような感じです。