Googleスプレッドシートでテキストを任意の区切り文字で分割できる「SPLIT関数」を使って、氏名を苗字と名前に分ける方法をご紹介します。SPLIT関数を使わずにExcelで苗字と名前を抽出する方法についても解説しているので、ぜひ参考にしてみてください。
氏名を苗字と名前に分ける方法
元データを残しつつ氏名を分割できるSPLIT関数と、元データ自体を苗字と名前に分割する方法をご紹介します。なおSPLIT関数は、Googleスプレッドシートでのみ使える関数です。
SPLIT関数で苗字と名前を分ける方法
氏名の間にスペースが入力されている場合は、SPLIT関数で簡単に分割可能です。
SPLIT関数はテキストを指定した「文字列」で分割し、各部分を同じ行の別のセルに表示します。
例えばテキストに氏名、文字列に半角スペース(” “)を指定してみましょう。SPLIT関数は半角スペースの前後でテキストを分割するので、苗字と名前が別々のセルに表示されます。
SPLIT関数の構成要素:(テキスト, 区切り文字, [各文字での分割], [空のテキストを削除])
分割機能で苗字と名前を分ける方法
①分割対象のセル範囲を、すべて選択します。
②「データ」タブから、③「テキストを列に分割」をクリックします。
区切り文字が自動的に検出になっているので、「スペース」を選択します。
選択範囲のテキストが半角スペースの前後で分割され、苗字と名前が別々のセルに表示されました。この方法では選択範囲を操作するので、元データは残りません。
区切り文字が候補にない場合「カスタム」を選択し、任意の文字を入力してください。
苗字または名前のみを抽出する方法
LEFT関数とFIND関数を組み合わせると、氏名から苗字や名前だけを抽出できます。またExcelの場合はSPLUT関数がないので、こちらの方法をご参照ください。
氏名から苗字のみ抽出する方法
ExcelではTEXTSPLIT関数が実装されている最新バージョンを除いて、分割関数が使えません。苗字と名前を分けるには、まず以下の手順で氏名から苗字だけを抽出します。
- FIND関数で指定したテキスト内の、「空白の番号」を取得します。
- LEFT関数でテキストの左から、「空白の番号」分の文字列を抽出します。
コピー用:LEFT(氏名
, FIND(” “, 氏名
))
1.FIND関数は、テキスト内に指定した「文字列」が最初に現れる位置を返します。
まず、FIND(” “, A2)の部分だけを取り出して考えてみましょう。FIND関数はテキスト(氏名)内で文字列(半角スペース)が最初に現れる位置、「3」を返します。
FIND関数の構成要素:(検索対象の文字列, テキスト, [開始位置])
2.LEFT関数はテキストの左から、指定した「文字数」の文字列を返します。
例えばテキストに氏名、文字数にはFIND関数で取得した空白の番号(3)を指定してみましょう。LEFT関数は氏名から空白までの、3文字のみを抽出します。
この2つの関数を組み合わせた結果が、LEFT(氏名
, FIND(” “, 氏名
))です。
LEFT関数の構成要素:(文字列, [文字数])
スペースを取り除いて抽出したい場合、文字数に -1 を追加してください。
氏名から名前のみ抽出する方法
名前のみ抽出する場合、SUBSTITUTE関数でテキスト内の苗字を空白に置換します。
SUBSTITUTE関数はテキスト内の検索文字列を、新しい文字列に置換する関数です。
つまり検索文字列に先ほど抽出した「苗字」を指定し、新しい文字列に「空白」を指定することで氏名から名前のみを抽出できます。
SUBSTITUTE関数の構成要素:(テキスト, 検索文字列, 新しい文字列, [置換対象])
これを1つの式にまとめると SUBSTITUTE(A2,LEFT(A2,FIND(” “,A2,1)),””) です。
苗字のみ抽出する数式を、SUBSTITUTE関数の「検索文字列」に指定しています。先に苗字を取得している場合は、特に1つにまとめる必要はありません。