Excel小技(姓名をスペースで分割)

2005/04/07

仕事してたら仲良しの助手さんから内線が入り、こんな質問を受けました。

「スペースで区切られた姓と名を別々のセルに分けたいんやけど、やり方知らない?」

↓こういうことですな。
Ex)    A       B     C
1|小泉 純一郎| 小泉 | 純一郎 |

正直、今の職場ではExcelって文書作成以外に使うことがないんだが、たまにはためになるネタ提供ということで。
普段からExcelで作業されてる方、若しくは「Excelってなに?」までいかんくても「関数ってなに?」という方にはどうしようもないエントリなので以下続く。


考え方としては、基準になる文字(列)を決め(ここでは全角スペース)、それの前後で分割するということになりますので、姓名の間に共通の文字(列)が入っていないとこのやり方は使えません。

★姓だけ取り出す
=LEFT(A1,FIND(“ ",A1)-1)

LEFT関数で左からいくつめまでの文字を拾うか指定します。
姓がみんな2文字の人ばっかりやったら「=LEFT(A1,2)」
でもOKやねんけど、そうはイカのふんどし、これだと
「伊集院」なんてヤツがいると「伊集」になってまう。
というわけで、登場しますのがFIND関数。指定した文字(列)
が対象文字列のいくつめにあるかを教えてくれます。
全角スペースを指定しているので、例では「3」つめですね。
「=LEFT(A1,FIND(“ ",A1))」
これで左から「3」つめまでの文字を取り出すことになります。
がしかし、「3」つめまで取ると全角スペースが余計です。
よって、「-1」をつける。「小泉」よっしゃできた。

★名だけ取り出す
=RIGHT(A1,LEN(A1)-FIND(“ ",A1))

RIGHT関数で右からいくつめまでの文字を拾うか指定します。
LENは指定したセルに入ってる文字数を教えてくれる関数なので、
例だと「小泉 純一郎」で「6」ですね。
引くことの全角スペースまでの文字数「3」で「3」を返します。
右から「3」つめまでの文字を取るってことで「純一郎」ですね。
はいでけました。

最後に、列Aはいらないんであれば、BとCの列を選択し、「コピー」→「形式を選択して貼り付け」→「値」で値だけを残し、列Aとの相関関係を解消してから削除して下さい。これをしないで列Aを消すとエラーになってしまうのでご注意。

サンプル:name.lzh