Excelで名前を分割する:姓と名を別の列に分割する

  • これを共有
Michael Brown

Excelで姓と名を数式やテキストから列方向に分割する方法と、様々な形式の名前の列を姓、名、ミドルネーム、敬称、接尾辞に素早く分割する方法を紹介しています。

ワークシートにフルネームの列があり、姓と名を別々の列に分割したい、ということはExcelではよくあることです。 この作業は、テキストを列に変換する機能、数式、名前の分割ツールを使って、いくつかの異なる方法で行うことができます。 以下に、それぞれの手法の詳細について説明します。

    ExcelでText to Columnを使用して名前を分割する方法

    同じパターンの名前、たとえば姓と名だけ、あるいは姓と名とミドルネームの列がある状況で、それらを別々の列に分割する最も簡単な方法は次のとおりです。

    1. 分離したいフルネームの列を選択します。
    2. に向かいます。 データ tab> データツール グループをクリックし テキストをカラムに .
    3. の最初のステップで テキストから列への変換ウィザード を選択します。 区切られた オプションをクリックし 次のページ .
    4. 次のステップで、1つまたは複数を選択します。 区切り記号 をクリックします。 次のページ .

      この場合、名前の異なる部分はスペースで区切られるので、このデリミタを選択します。 データプレビュー セクションを見ると、すべての名前がうまくパースされていることがわかります。

      ヒント: 名前の区切り文字が カンマとスペース のように アンダーソン、ロニー を確認します。 コンマ スペース 下駄箱 デリミタ を選択し 連続したデリミタを1つとして扱う のチェックボックス(通常、デフォルトで選択されています)。

    5. 最後のステップでは データ形式 行き先 をクリックします。 仕上がり .

      デフォルト 一般 形式は、ほとんどの場合、うまく機能します。 目的地 で、結果を出力したい列の一番上のセルを指定します(既存のデータは上書きされますので、必ず空の列を選択してください)。

    完了!姓・名・中がそれぞれ別の列に分かれています。

    エクセルで姓と名を数式で区切る

    今ご覧になったように テキストをカラムに しかし、元の名前に変更を加える予定があり、自動的に更新される動的なソリューションをお探しの場合は、数式で名前を分割した方がよいでしょう。

    フルネームからスペースで姓と名を分割する方法

    これらの式は、姓と名を1つの列の中で シングルスペース文字 .

    ファーストネームを取得するための計算式

    この汎用式で簡単にファーストネームを抽出することができます。

    左側( セル , SEARCH(" ", セル ) - 1)

    SEARCH関数やFIND関数を使って、セル内のスペース文字(" ")の位置を取得し、そこから1を引いてスペース自体を除外します。 この数値が、文字列の左側から順に抽出する文字数としてLEFT関数に与えられます。

    姓を取得するための計算式

    苗字を抽出する一般的な計算式はこうだ。

    RIGHT( セル , LEN( セル ) - search(" ", セル ))

    この式でも、SEARCH関数でスペース文字の位置を求め、その数値をLENが返す文字列の全長から引き、RIGHT関数で文字列の右側からその数だけ文字を取り出しています。

    セルA2にフルネームがある状態で、数式は次のようになります。

    を取得します。 ファーストネーム :

    =left(a2,search(" ",a2)-1)

    を取得します。 ラストネーム :

    =right(a2,len(a2)-search(" ",a2,1)))

    セルB2とC2にそれぞれ数式を入力し、フィルハンドルをドラッグして数式を列の下にコピーします。 結果は次のようになります。

    元の名前の一部に ミドルネーム または ミドルイニシャル のように、姓を抽出するためには、もう少しトリッキーな数式が必要です。

    =right(a2, len(a2) - search("#", substitute(a2," ", "#", len(a2) - len(substitute(a2, ", ""))) ))

    この式のロジックを大まかに説明すると、名前の最後のスペースをハッシュ記号(#)など、どの名前にも登場しない文字に置き換え、その位置を計算します。 その後、文字列の全長から上記の数字を引いて最後の名前の長さを求め、その文字数をRIGHT関数に抽出させるのです。

    そこで、元号にミドルネームが含まれるものがある場合に、エクセルで姓と名を分ける方法を紹介します。

    名前から姓と名をカンマで区切る方法

    に名前の列がある場合、その列は 名字、名前 形式の場合、以下の計算式で列を分割して表示させることができます。

    ファーストネームを抽出するための式

    RIGHT( セル , LEN( セル ) - search(" ", セル ))

    上の例のように、SEARCH関数を使ってスペース文字の位置を特定し、文字列の全長からそれを引いて最初の名前の長さを求めます。 この数値はそのまま num_chars RIGHT 関数の引数で、文字列の末尾から何文字取り出すかを指定する。

    姓を抽出するための式

    左側( セル , SEARCH(" ", セル ) - 2)

    苗字を調べるには、前の例で説明したLEFT SEARCHの組み合わせを使います。ただし、コンマとスペースの2文字分を考慮し、1ではなく2を引きます。

    セルA2にフルネームがある状態で、数式は次のような形になります。

    を取得します。 ファーストネーム :

    =right(a2, len(a2) - search(" ", a2))

    を取得します。 ラストネーム :

    =left(a2, search(" ", a2) - 2)

    下のスクリーンショットはその結果を示しています。

    フルネームをファースト、ラスト、ミドルネームに分割する方法

    ミドルネームやミドルイニシャルを含む名前を分割するには、名前の形式によって若干異なるアプローチが必要です。

    もし、皆さんの名前が ファーストネーム ミドルネーム ラストネーム の形式であれば、以下の計算式でうまくいきます。

    A B C D
    1 フルネーム 氏名 ミドルネーム ラストネーム
    2 FirstName MiddleName LastName =left(a2,search(" ", a2)-1) =mid(a2, search(" ", a2) + 1, search(" ", a2, search(" ", a2)+1) - search(" ", a2)-1) =right(a2,len(a2) - search(" ", a2, search(" ", a2,1)+1)))
    結果 デビッド・マーク・ホワイト デビッド マーク 白色

    を取得するために ファーストネーム の場合、すでにおなじみのLEFT SEARCHの式を使用します。

    を取得するために ラストネーム そこで、ネストした SEARCH 関数で 2 つ目の空白の位置を求め、その位置を文字列の全長から引いて、結果として姓の長さを求めます。 そして、その数値を RIGHT 関数に与えて、その文字数だけ文字列の最後から引っ張ってくるように指示します。

    を抽出する。 ミドルネーム 最初のスペースの位置を決めるには,単純な SEARCH(" ",A2) 関数を使い,次の文字から抽出を始めるために 1 を加えます。 この数値は 開始番号 ミドルネームの長さを計算するには、最初のスペースの位置から2番目のスペースの位置を引き、その結果から1を引いて末尾のスペースを取り除き、この数字をMID関数の num_chars の引数で、何文字取り出せばよいかを指定します。

    そして、以下は、名前を区切るための計算式です。 ラストネーム、ファーストネーム ミドルネーム のタイプになります。

    A B C D
    1 フルネーム 氏名(フリガナ ミドルネーム 苗字
    2 LastName, FirstName MiddleName =mid(a2, search(" ",a2) + 1, search(" ", a2, search(" ", a2) + 1) - search(" ", a2) -1) =right(a2, len(a2) - search(" ", a2, search(" ", a2, 1)+1))) =left(a2, search(" ",a2,1)-2)
    結果 ホワイト、デビッド・マーク デビッド マーク 白色

    同様の手法は、接尾辞を持つ名前を分割する場合にも使用できる。

    A B C D
    1 フルネーム 氏名 ラストネーム サフィックス
    2 FirstName LastName, Suffix =left(a2, search(" ",a2)-1) =mid(a2, search(" ",a2) + 1, search(",",a2) - search(" ",a2)-1)である。 =right(a2, len(a2) - search(" ", a2, search(" ",a2)+1)))
    結果 ロバート・ファーラン・Jr. ロバート ファーラン Jr.

    以上、関数の組み合わせによって、Excelで名前を分割する方法をご紹介しました。 より深く理解し、数式を逆引きするには、Excelで名前を分割するサンプルワークブックをダウンロードしてください。

    補足:Excel 365では、TEXTSPLIT関数を利用して、名前を任意の区切り文字で区切ることができます。

    Excel 2013、2016、2019でFlash Fillで名前を区切る

    Excelのフラッシュフィルは、特定のパターンのデータを素早く埋めることができることは誰もが知っています。 しかし、データを分割することもできることをご存知ですか? ここでは、その方法を説明します。

    1. 元の名前の列の隣に新しい列を追加し、最初のセルに抽出したい名前の部分を入力します(この例では、最初の名前)。
    2. 2つ目のセルに名前を入力し始めると、Excelがパターンを感知して、他のすべてのセルに自動的に名前が入力されます(ほとんどの場合、そうなります)。
    3. あとは、Enterキーを押すだけです :)

    ヒント:通常、フラッシュフィル機能はデフォルトで有効になっています。 もし、お使いのExcelでフラッシュフィルが機能しない場合は フラッシュフィル ボタンをクリックします。 データ tab> データツール それでもうまくいかない場合は、次のようにします。 ファイル > オプション をクリックします。 アドバンスト を確認します。 オートフラッシュフィル の下にあるボックスが選択されています。 編集オプション .

    名前分割ツール - Excelで名前を分割する最速の方法

    プレーン、トリッキー、テキストから列、フラッシュフィル、計算式は、すべての名前が同じタイプである均質なデータセットに対してのみ有効です。 異なる名前のフォーマットを扱う場合、上記の方法は、例えば、名前の一部を間違った列に配置したりエラーを返したりしてワークシートを台無しにします。

    そんなときは、マルチパートネーム、80種類以上の敬称、約30種類の接尾辞を完璧に認識し、Excel 2016からExcel 2007の全バージョンでスムーズに動作する「名前の分割」ツールに作業を委託することができます。

    エクセルにインストールされた究極のスイートでは、様々な形式の名前の列を2つの簡単なステップで分割することができます。

    1. 分離したい名前を含む任意のセルを選択し、そのセルで スプリットネーム のアイコンが表示されます。 エイブルビットのデータ tab> テキスト のグループです。
    2. 目的の名前部分を選択し(ここではすべて)、クリックします。 スプリット .

    これで完了です!名前の異なる部分が複数の列に正確に分散され、列のヘッダーも自動的に追加されるので便利です。 計算式やカンマやスペースをいじる必要はなく、まったく苦痛を感じません。

    名前の分割を実際に試してみたい方は、Ultimate Suite for Excelの評価版をダウンロードしてください。

    ダウンロード可能なもの

    Excel(.xlsxファイル)で名前を分割するための計算式

    Ultimate Suite 14日間フル機能版(.exeファイル)

    Michael Brown は、ソフトウェア ツールを使用して複雑なプロセスを簡素化することに情熱を注ぐ熱心なテクノロジー愛好家です。テクノロジー業界で 10 年以上の経験があり、Microsoft Excel と Outlook、さらに Google Sheets と Docs のスキルを磨いてきました。 Michael のブログは、彼の知識と専門知識を他の人と共有することに特化しており、生産性と効率を向上させるためのわかりやすいヒントとチュートリアルを提供しています。経験豊富なプロフェッショナルであろうと初心者であろうと、Michael のブログでは、これらの重要なソフトウェア ツールを最大限に活用するための貴重な洞察と実践的なアドバイスを提供しています。