スプレッドシートで候補者名を分割・統合する
採用活動でイベントや媒体から候補者情報をダウンロードするとCSVの形式がバラバラで困る、ということは無いでしょうか。
例えば・・・
-
「山田太郎」と姓名が1つのセルに入っている
-
「山田 太郎」と全角スペースで区切られている
-
「山田」「太郎」のように姓と名が別のセルに入っている
採用管理システムに登録するには、そのシステムの仕様に合わせてデータを修正する必要がりますが、手作業でやっているとキリが無い。
そんな時に便利なのが、スプレッドシートの関数です。
今回はGoogle スプレッドシートやExcelで使える以下の関数を使って、名前の分割と統合をサクッと処理するテクニックを紹介いたします。
よく使う関数まとめ
関数 | 概要 | 主な用途 |
|---|---|---|
SPLIT | 指定した区切り文字でセルを分割 | フルネームを姓・名に分割 |
SUBSTITUTE | 特定の文字を別の文字に置き換え | 全角スペースを半角に変換 |
CONCATENATE / TEXTJOIN | 複数のセルを1つに結合 | 姓名の統合 |
TRIM | 前後の余計なスペースを削除 | 半角・全角スペースの掃除 |
ARRAYFORMULA | 複数行に一括で関数を適用 | 処理を効率化 |
LEFT | 文字列の左側から指定した文字数を抽出 | 姓を取り出す |
RIGHT | 文字列の右側から指定した文字数を抽出 | 名を取り出す |
LEN | 文字数をカウント | 名前の文字数を数える |
シーン1:フルネームを姓名に分割したい
イベント側からもらったCSVでは名前が姓名同一のセルに入っているものの、採用管理ツールには姓名を分けて登録する必要がある、ということがよくあります。
SPLIT関数を利用して「山田 太郎」を「山田」と「太郎」に分割します。
=SPLIT( 分割対象の文字列のセル , 区切り文字 )

区切り文字はダブルクオーテーション(“)で囲むようにしてください。
シーン2:名前が半角スペースと全角スペースで区切られている場合がある
採用担当者がフォームを作成してイベントの参加者にお名前を入力していただく場合があります。参加者が自由な形式で姓名を区切れるようにすると半角スペースで区切られている場合と全角スペースで区切られている場合が出てきてしまいます。これを半角スペース区切りで統一したい場合は「SUBSTITUTE関数」を利用します。
=SUBSTITUTE( 置換対象のセル , 置換対象の文字列 , 置換後の文字列 )

置換対象のセルを指定して、置換対象の文字列に今回は全角スペースを指定しました。その後ろに置換後の文字列を指定します。今回は半角スペースが入れました。
シーン3:姓と名を1つのセルに統合したい
シーン1とは逆で人材会社からは姓と名が分かれて送付されてきたが、姓名を一つのセルに統合したい場合は「CONCATENATE関数」もしくは「TEXTJOIN関数」を利用します。どちらも得られる結果は同じですが、CONCATENATE関数の方がシンプルで直感的、TEXTJOIN関数は空白セルは無視するというちょっと便利な機能が付いてきます。
まずはCONCATENATE関数について紹介します。
=CONCATENATE( 姓 , 姓名の区切り , 名 )

つなげたい文字列の入っているセルや間に入れたい文字列をカンマ区切りで順番に入力していくだけで利用できます。
姓名の区切りが不要な場合は真ん中は無視して**CONCATENATE(姓, 名)**とすることもできます。
続いてTEXTJOIN関数を紹介します。
=TEXTJOIN( 区切り文字 , 空欄を無視するかどうか , 接続する文字列の範囲 )

こちらは最初に区切り文字を指定します。上記の例では姓と名の区切りを半角スペースで指定しましたが、区切り文字が不要な場合は”“と入力すると何も入らなくなります。
空欄を無視するかどうかは「TRUE」「FALSE」で指定します。TRUEにすると空欄を無視し、FALSEにすると無視しなくなります。
例えばミドルネームを扱う場合は以下のような違いが出ます。区切り文字を「・」と指定しました。
空欄を無視した場合は「山田・太郎」となりますが空欄を無視しない場合は「山田・・太郎」となってしまいます。空欄かどうかは気にせずに区切り文字が入力されます。多くの場合はTRUEを選んでおけば良いと思いますが、必要に応じて検討してください。

シーン4:余計なスペースを削除したい
人材会社側から送られてきたデータが十分に整理されていない場合、候補者名の前後に余計なスペースが入っていてデータ登録エラーの原因になることがあります。念のためTRIM関数を使って余計なスペースを削除しましょう。TRIM関数を使うと文字列の最後に入っている半角スペースや、文字列の途中に入っている2つ以上の連続した半角スペースを削除してくれます。
=TRIM( 余計なスペースが入っている文字列 )
下記の例では山田さんの姓名の間に半角スペースが2つ入っています。山田さんの名前をTRIMで囲むことで半角スペースが1つになり、下の鈴木さんと横幅が合いました。

なお、TRIM関数が削除できるのは半角スペースのみです。全角スペースを削除したい場合は先ほど紹介したSUBSTITUTE関数と合わせて使います。
=TRIM( SUBSTITUTE( 置換対象のセル , 置換対象の文字列 , 置換後の文字列 ) )
これにより、まず全角スペースを半角スペースに直し、その後TRIM関数で余計なスペースを削除することが出来ます。
シーン5:大量の行を一括処理したい
イベント参加者が数十人の場合は式をコピーするだけでデータの処理は十分に出来ますが、大規模イベントになると参加者が数百人にも増えることもあります。数百行に数式をコピーすると処理や読込が遅くなってエラーや業務負荷の原因になったりします。
そんな時に便利な数式がARRAYFORMULA関数です。少し難易度の高い関数ですが使いこなせれば一気に上級者です。
通常、数式を100行にコピーすると処理が100回行われますが、ARRAYFORMULA関数を利用すると数式の処理は1回だけになります。そのため複雑な処理を複数行に対して行っても処理が重くなりません。
なおこの関数はExcelでは使ないGoogle スプレッドシート専用の関数なのでご注意ください。
=ARRAYFORMULA( 複数のセルに対して実行したい数式 )
下記の例では、先ほど紹介したSPLIT関数に利用してみました。
SPLIT関数は通常、分割したい文字列の入ったセルを1つだけ指定しますが、ARRAYFORMULA関数でさらに囲むことで、分割したい文字列を範囲指定できるようになります。

このとき勝手に右側の列(今回の例だとB列とC列)にデータが入りますが、そこにすでにデータが入っているとエラーになるので右側の列はきれいにしておいてください。
シーン6:姓名が分かれていない名前を分割したい
元データが「山田太郎」など姓名が分かれていないが、採用管理システムには姓名を分けて入力したいケースもあります。
残念ながらこれはGoogleスプレッドシートやExcelで簡単には処理できないです。妥協案として「最初の2文字を姓」「残りの文字を名」とすることは出来ます。後からチェック、修正が必要になりますが、大体のデータは処理できます。
LEFT関数、RIGHT関数、LEN関数を利用します。
LEFT関数で文字列の先頭から指定した文字数だけデータを抜き出すことができます。RIGHT関数で文字列の末尾から指定した文字数だけデータを抜き出すことが出来ます。LEN関数で文字列の文字数を数えることが出来ます。これらの組み合わせで「最初の2文字」「残りの文字」を抽出します。
姓: = LEFT( 名前の文字列 , 2)
名: = RIGHT( 名前の文字列, LEN(名前の文字列) - 2)

最後の例の「佐々木小次郎」だけ名字が3文字なのでデータがおかしくなってしまいました。ここから先は目視で直していくしか無いですが、時短は実現できています。
APIを利用したりや人名データベースを搭載したシステムを開発すれば解消できる可能性もありますが、上記のやり方が現実的な落とし所になりそうです。
まとめ
多くのチャネルを利用すればするほどデータがばらついて業務負荷も飛躍的に伸びてしまいます。しかし、こういったスプレッドシートの便利な関数を覚えておくとちょっとした手間の削減につながり、中長期的には大きな時短の実現やミスの防止にもつながります。
こういった関数を使いこなせるようになるまでに最初は一苦労だと思いますが、ぜひ練習して身につけてみてください。
採用業務を効率化したいけど「時間もノウハウも足りない・・・😫」という方はお気軽にご相談ください。株式会社ウェザーライトでは実務に即したツール整備や業務改善のサポートを行っています。
