Office
 Computer >> コンピューター >  >> ソフトウェア >> Office

【Excel入門】氏名を姓と名に分ける方法|LEFT・RIGHT関数と「区切り位置」機能の使い方

Excelで名簿や顧客リストなどを管理していると、「1つのセルに入力された氏名を、姓と名の別々のセルに分けたい」という場面によく出会います。これはExcelで非常によくある悩みで、ネットを検索すれば他人が作成したマクロが大量に見つかるでしょう。

しかし、この記事では外部ツールに頼らず、数式を自分で組み立てて、仕組みをきちんと理解しながら氏名を分割する方法をご紹介します。Excelを頻繁に使うなら、少し高度な関数を覚えておくことで、データ処理の幅がぐっと広がります。

「数式は苦手」「もっと手軽な方法がいい」という方は、この記事の後半で解説する「区切り位置」機能のセクションまで読み飛ばしてください。また、セル内に3つ以上の項目が含まれている場合(例:1つの列に6つのフィールドが結合されているケースなど)は、数式よりも「区切り位置」機能の方が圧倒的に簡単です。

関数を使って氏名を分割する

まず、Excelの表で氏名がどのように保存されているか確認しましょう。よく見られるパターンは主に2つあります。スペースで区切られた「名 姓」と、カンマで区切られた「姓, 名」です。さらにミドルネーム(イニシャル)が含まれる場合は、「名 ミドルイニシャル 姓」という形式になることがほとんどです。

シンプルな関数をいくつか組み合わせるだけで、姓・名・ミドルイニシャルをそれぞれ別のセルに簡単に抽出できます。まずは氏名の最初の部分(左側)を取り出すところから始めましょう。ここではLEFT関数SEARCH関数の2つを使います。論理的な流れは以下のとおりです。

セル内のテキストからスペースまたはカンマを検索して位置を特定し、その位置より左側の文字をすべて取り出す。

これを実現するシンプルな数式がこちらです。

=LEFT(NN, SEARCH(" ", NN) - 1)

NNには氏名が保存されているセル番地を指定します。「-1」は、文字列の末尾に余計なスペースやカンマが含まれないよう取り除くための指定です。

LEFT関数は「対象の文字列」と「先頭から取り出す文字数」の2つの引数を取ります。1つ目のケースでは、ダブルクォーテーションで囲んだ半角スペースを検索し、2つ目のケースではスペースの代わりにカンマを検索しています。では、先ほど挙げた3つのパターンに対する結果はどうなるでしょうか。

各行から「名」「姓」「名」がそれぞれ正しく取得できました。データの保存形式に応じて、姓か名のどちらか一方を抽出できたことになります。

続いて、残りの部分を取り出します。論理的な流れは次のとおりです。

セル内のテキストからスペースまたはカンマを検索して位置を特定し、文字列全体の長さからその位置を引いた値の分だけ、末尾(右側)から文字を取り出す。

=RIGHT(NN, LEN(NN) - SEARCH(" ", NN))

今度はRIGHT関数を使用します。RIGHT関数もLEFT関数と同様に2つの引数を取りますが、こちらは「末尾から左に向かって取り出す文字数」を指定します。つまり「文字列の長さ − スペース(またはカンマ)の位置」を計算することで、最初の区切り文字より右側のすべての文字を取得できるわけです。

これで氏名の2つ目の部分も取り出せました。最初の2つのパターンであれば、これで作業は完了です。ただし、ミドルイニシャルが含まれるデータでは、結果にミドルイニシャルと姓がセットで残ってしまいます。そこで、ミドルイニシャルを除いて姓だけを取り出すにはどうすればよいでしょうか。答えは簡単、先ほどの数式をもう一度適用するだけです。

今回は、ミドルイニシャルと姓が結合されたセルに対して同じRIGHT関数を適用します。すると、ミドルイニシャルの後ろにあるスペースが検索され、「文字列の長さ − スペースの位置」の文字数分が末尾から取り出されます。

これで完成です。たった数個のシンプルな数式で、Excel上の氏名を姓と名の別々の列に分割できました。もちろん、すべてのデータがこの形式とは限りませんが、数式を少し編集すれば自分のデータに合わせて柔軟に調整できます。

「区切り位置」機能を使う方法

Excelには、結合されたテキストを別々の列に分割するもうひとつの便利な機能があります。それが「区切り位置(Text to Columns)」機能です。この機能は非常に強力で、特に1つの列に3つ以上のデータが含まれている場合に大きな効果を発揮します。

例えば、1行目には4つのデータ、別の行には5つのデータが含まれていて、それらをそれぞれ4列・5列に分割したいケースを考えてみましょう。このような場合、先ほどの数式を組み合わせるのは現実的ではなく、非常に複雑になってしまいます。

手順はとてもシンプルです。まず、分割したい列を選択します。次にリボンの「データ」タブを開き、「区切り位置」をクリックします。

すると「区切り位置ウィザード」が起動します。ステップ1では、データが「区切り文字によって区切られているか」、それとも「一定の幅(固定長)で区切られているか」を選択します。今回は「コンマやタブなどの区切り文字によってフィールドごとに区切られたデータ」を選びましょう。

ステップ2では区切り文字を指定します。タブ、セミコロン、カンマ、スペースの中から選択できるほか、独自の区切り文字を直接入力することも可能です。

最後のステップ3では、各列のデータ形式を設定します。通常は「標準」のままでほとんどの場合問題ありませんが、日付データなど特定の形式が必要な場合は該当する形式を選択してください。

「完了」をクリックすると、データが自動的に列へ分割されます。1行目は5列に、もう片方は4列にきれいに分かれたはずです。「区切り位置」機能はとても便利なので、日々のデータ整理作業にぜひ活用してみてください。

もし上記の形式以外のデータでうまく分割できない場合は、データの内容を添えてお問い合わせいただければ、できる範囲でお手伝いいたします。

  1. Excelでワイルドカードを使う方法(4つの簡単なテクニック)

    この記事では、Excelでワイルドカードを使用する方法について詳しく解説します。 アスタリスク「*」、疑問符「?」、チルダ「~」といったワイルドカード文字を活用すると、Excelでの検索やカウントなどの機能を大幅に拡張できます。ワイルドカードは、AVERAGEIF関数、SUMIF関数、COUNTIF関数、データベース関数など、さまざまな関数と組み合わせて使用できます。 それぞれの記号の役割は以下の通りです。 アスタリスク(*):任意の数の文字を置き換えます。 疑問符(?):任意の1文字を表します。 チルダ(~):文字列内に実際に含まれる「?」や「*」を検索する際に使用します。 これらが具体

  2. Excelで先頭3文字を削除する4つの方法|RIGHT・REPLACE・MID関数とVBA

    構造化されていない生データを扱っていると、必要な情報だけを取り出したい場面がよくあります。たとえば、文字列の先頭から1文字目、2文字目、あるいは3文字目を取り除いて値を取得したいケースです。Excelには、こうした作業を簡単に行える関数がいくつか用意されています。さらに、独自のカスタム関数を作成して文字列から文字を削除することも可能です。この記事では、Excelで先頭3文字を削除する4つの方法を詳しく解説します。 練習用ワークブックのダウンロード 記事を読みながら実際に操作して練習できるよう、練習用ワークブックをダウンロードしてご利用ください。 Excelで先頭3文字を削除する4つの方法