氏名を分けるのも超簡単!新関数!TEXTBEFOREとTEXTAFTER
Excel 2024 Microsoft 365
解説記事内の画像はExcel for Microsoft 365のものです。
スポンサーリンク
「氏名」を「姓」と「名」に分けるとき、Microsoft 365とExcel 2024なら、新しい関数で超簡単にできます!
指定した文字よりも前の文字を取り出すTEXTBEFORE関数。
指定した文字よりも後ろの文字を取り出すTEXTAFTER関数。
従来のExcelではLEFT、FIND、RIGHT、LENの各関数を組み合わせて氏名を姓と名に分けていたので、比べものにならないほどの簡単さです!
Excel 2021含め、それ以前の製品をお使いの方も使う文書なら、従来の方法を使いますが、Microsoft 365やExcel 2024をお使いの方でしか使わない文書なら、このページでご紹介しているTEXTBEFOREとTEXTAFTER関数が簡単です!
スポンサーリンク
TEXTBEFORE関数で「氏名」から「姓」を取り出す

今回はB2番地にある氏名から、スペースより前の「姓」を取り出し、D2番地に表示させてみます。
TEXTBEFORE関数は、指定した文字よりも前の文字を取り出す関数なので、今回の場合は、この数式をD2番地に入力すればOK。
このとき、氏名欄に入力されているスペースが全角なら、[Delimiter]欄にも全角スペースを、氏名欄に入力されているスペースが半角なら、[Delimiter]欄にも半角スペースを入力します。
そして、Excelの数式では、文字の前後を半角ダブルクォーテーションで囲むというのがお作法なので、入力したスペースの前後を半角ダブルクォーテーションで囲みます。

ダイアログボックスで設定する場合はこうなります。
(どのボタンでこのダイアログボックスが表示されるかなど、前提となる操作が不安な方は「合計のSUM関数から始める勝ち組関数デビュー術」をご覧ください。)

表がテーブルになっている場合は、セル番地ではなく見出しを使った表記となるのでこうなります。
(引数[Text]を指定するときに、キーボードでセル番地を入力した場合は、このような名前表記とはなりません。)
TEXTBEFORE関数では、引数名が英語になっていますが心配しなくて大丈夫。
このうち、必須の引数は最初の2つだけで、今回の設定もこの2つだけでOK。
Text | どのセルから文字を取り出すのか |
---|---|
Delimiter | どの文字より前の文字を取り出すのか |

残りの4つの引数(4つ見えない場合はスクロールしてください)は省略可能。
今回の例でも省略してOKです。

スペースよりも前の文字を取り出すことができました!
オートフィルで残りのセルにも数式をコピーしておきます。

表がテーブルになっている場合は、残りのセルにも自動的に数式が入るので、オートフィルは不要です。
スポンサーリンク
TEXTAFTER関数で「氏名」から「名」を取り出す

今回はB2番地にある氏名から、スペースより後ろの「名」を取り出し、E2番地に表示させてみます。
TEXTAFTER関数は、指定した文字よりも前の文字を取り出す関数なので、今回の場合は、この数式をE2番地に入力すればOK。
このとき、氏名欄に入力されているスペースが全角なら、[Delimiter]欄にも全角スペースを、氏名欄に入力されているスペースが半角なら、[Delimiter]欄にも半角スペースを入力します。
そして、Excelの数式では、文字の前後を半角ダブルクォーテーションで囲むというのがお作法なので、入力したスペースの前後を半角ダブルクォーテーションで囲みます。

ダイアログボックスで設定する場合はこうなります。
(どのボタンでこのダイアログボックスが表示されるかなど、前提となる操作が不安な方は「合計のSUM関数から始める勝ち組関数デビュー術」をご覧ください。)

表がテーブルになっている場合は、セル番地ではなく見出しを使った表記となるのでこうなります。
(引数[Text]を指定するときに、キーボードでセル番地を入力した場合は、このような名前表記とはなりません。)
TEXTAFTER関数では、引数名が英語になっていますが心配しなくて大丈夫。
このうち、必須の引数は最初の2つだけで、今回の設定もこの2つだけでOK。
Text | どのセルから文字を取り出すのか |
---|---|
Delimiter | どの文字より後ろの文字を取り出すのか |

残りの4つの引数(4つ見えない場合はスクロールしてください)は省略可能。
今回の例でも省略してOKです。

スペースよりも後ろの文字を取り出すことができました!
オートフィルで残りのセルにも数式をコピーしておきます。

表がテーブルになっている場合は、残りのセルにも自動的に数式が入るので、オートフィルは不要です。
省略可能な引数について

TEXTBEFORE関数も、TEXTAFTER関数も、省略可能な引数は同じです。
今回の例では省略して問題ありませんが、どんな引数なのか気になる方のために、念のため残りの引数の意味も掲載します。
Instance_num | 区切り文字(今回の場合ならスペース)が複数ある場合は何番目の文字を境にするのか |
---|---|
Match_mode | 区切り文字の文字と小文字を区別するかどうか(半角と全角ではない) |
Match_end | 末尾に区切り文字があることにして扱うか |
If_not_found | 指定した区切り文字が無い場合に何を表示するか |
スピルが使える!

TEXTBEFORE関数と、TEXTAFTER関数は、スピルを使えるので、氏名を姓と名に分けるときにもスピルが使えます。

ただしスピルは、テーブルには設定できないので、テーブルになっていない表の場合だけ使えます。

あくまでも数式を設定するのは先頭のセルだけ。
だけど、引数[Text]に、氏名のセル範囲すべてを指定します。
こうすることで、数式を設定した先頭のセルから溢れ出すように、残りのセルにも数式のゴーストが設定されます!
スポンサーリンク
かつて、こんな後悔のご経験はありませんか?
もっと早くからパソコンを触っておけば...
今まさしく、あの時とは比べものにならない大きな進化が、今まで経験したことのない驚異的なスピードで私たちを巻き込んでいます。
そうです、AIです。
あの時の何倍も何十倍も大きな後悔をしないために、本当に必要な情報とテクニックが手に入る場所、それがBe Cool UsersのAI特化メンバーシップです!
Be Cool Users管理人の略歴・得意なことをまとめました!
お仕事のご依頼も「自己紹介・お仕事のご依頼につきまして」からご連絡くださいませ。
「こんなことできる?」もお気軽にご相談ください。