氏名から姓と名を分離するには文字列関数を使います。
しかし、姓や名は人によって文字数がバラバラでどこで区切るか確定しません
ここでのポイントは、氏名に目印があるかどうかです。
サンプルデータでは、姓と名の間にスペースが入っていることが分かります。
これを手掛かりに取り出します。
(ただし、この方法が使えるのは日本名のように氏名が姓と名の2つに分かれている場合です)
文字列の先頭から指定の文字数を取り出すにはLEFT関数を使います。
LEFT(文字列,文字数)
氏名の先頭から姓の文字数を指定すれば、姓を取り出すことができます。
では、姓の文字数はどうすればわかるでしょうか。
上記のように姓と名の間のスペースの位置を調べれば姓の文字数を知ることができます
利用する関数は、FIND関数を使います。
FIND(検索文字列,対象,{開始位置})
このうち、開始位置は省略可能で、省略した時には1となります。
文字列の末端から指定の文字数を取り出すにはRIGHT関数を使います。
RIGHT(文字列, 文字数)
氏名の名前部分を取り出すには、スペースより右の文字数を指定する必要があります。
これは〔氏名の文字数-スペースの位置〕で求められます。
そのため、上記で使ったFIND関数とLEN関数を使います。
代表的な文字列抽出関数には、LEFT,RIGHT,MID がありますが、これらは、文字列から、指定した数の文字を取り出します。 LEFT関数は左から取り出します。RIGHT関数は右端から、MID関数は指定した位置から取り出します。 使い分けは、どこから取り出したほうが簡単かという判断で使います。