Microsoft Excelで管理している顧客名簿などで、「名前」欄を「姓」と「名」に分けたいということはないだろうか。このような場合、「長宗我部 元親」のように「姓」と「名」の間にスペースがあると簡単に分離可能だが、スペースがなく「長宗我部元親」となっていると簡単にはいかない。そこで本Tech TIPSでは、手作業なしに「名前」を「姓」と「名」に分ける方法を紹介する。
対象:Excel 2016/2019/2021/365
「Microsoft Excel(エクセル)」で顧客名簿などを管理していることも多いと思う。その名簿の1つのセルに入力されている氏名を「姓」と「名」に分けなければならないといった場合、どのように処理しているだろうか。
氏名を見ながら、コピー&ペーストで分離するのは、少ない件数でも結構面倒な作業だ。
そこで、本Tech TIPSでは、1つのセルに入力されている「名前」を「姓」と「名」に分ける方法を紹介しよう。
「長宗我部 元親」のように「姓」と「名」の間にスペースがあって、1つのセルの中で「姓」と「名」が明らかに分かれているような場合は、[区切り位置指定]ウィザードで簡単にセルに分けられる。関数を使って分離することも可能だが、[区切り位置指定]ウィザードの方が間違いなく簡単だ。
まず、「名前」が入力されている列の右側の列を全選択して、列番号の表示部分を右クリックして、[挿入]を選択して、「名前」列の右側に空白の列を挿入しておく。
次に、「名前」列を全選択して、[データ]タブの[データツール]グループにある[区切り位置]をクリックする。すると、[区切り位置指定]ウィザードが起動するので、「データのファイル形式を選択してください」欄で「コンマやタブなどの区切り文字によってフィールドごとに区切られたデータ」を選択し、[次へ]ボタンをクリックする。
フィールドの区切り文字の指定画面が表示されるので、「区切り文字」欄で区切り文字となっている「スペース」や「コンマ」にチェックを入れる。この際、「スペース」の場合は、「連続した区切り文字は1文字として扱う」にチェックを入れておくと、間違って「スペース」が2文字分入力されているような場合でも「姓」と「名」に正しく分割できる。結果は、「データプレビュー」欄で確認するとよい。
[次へ]ボタンをクリックすると、区切り後の列のデータ形式が指定できるので、氏名を分割する場合は、「文字列」を選択しておき、[完了]ボタンをクリックする。
これで、「名前」が入力されていた列が「姓」のみとなり、右隣の列に「名」が入力される。
「長宗我部元親」のように「姓」と「名」の間にスペースがない場合、「姓」と「名」の区切り位置が明確でないため、[区切り位置指定]ウィザードでは分離できない。日本人の「姓」は「佐藤」や「鈴木」のように2文字が多いものの、「南」や「長宗我部」などの「姓」もある。そのため、単純に文字数で区切ることもできない。
この場合、手作業で分割するのも容易ではないので、WEBSERVICE関数を使って「ExcelAPI」が提供する氏名を分割するサービスを利用するとよい。ただし、インターネットを経由して、ExcelAPIに対してデータとなる「名前」が逐次送信され、「姓」と「名」のそれぞれを取り出すことになるので、組織の個人情報保護などのルールを守って利用してほしい。
なおExcelAPIは、1日1万件までは無料で利用可能だが、個人情報の即時削除機能を有効にするには有償のSTANDARDプラン(月額4400円)以上の申し込みが必要になる点に注意してほしい(ExcelAPIの「価格表」)。
また、「姓」と「名」の分離は、人間が見ても分かりにくいものもあるので、完璧ではない点にも注意が必要だ。必ず分離後の「姓」と「名」を確認しよう。
呼び出し方は簡単で、「姓」と「名」を入力したいセルに以下の数式を入力すればよい。数式の「type=last」は「姓」を、「type=first」は「名」を取り出す指定で、「fullname="&ENCODEURL(<氏名が入力されたセル>)」で元の「名前」を指定する。
■姓
=WEBSERVICE("https://api.excelapi.org/person/name-separate?type=last&fullname="&ENCODEURL(<氏名が入力されたセル>))
■名
=WEBSERVICE("https://api.excelapi.org/person/name-separate?type=first&fullname="&ENCODEURL(<氏名が入力されたセル>))
「名前」が入力されている先頭の行で、この数式を試してみて、「姓」と「名」に分離できたら、オートフィルを使って全ての行にコピーすればよい。
生成AI(人工知能)を使っても「名前」から「姓」と「名」の分離が可能だ。この場合も、生成AIの利用に関する組織のルールを守る必要がある点に注意してほしい。
ChatGPTの場合、入力したデータを学習に利用されないように、ChatGPTの[設定]ダイアログにある[データコントロール]で「すべての人のためにモデルを改善する」の項目を「オフ」にして、学習に利用されないようにしよう。
また、企業向けの有償プラン「ChatGPT Enterprise」を契約するなどしてセキュリティを確保しておくとよい。
なお、Windows 10/11で標準の「Copilot in Windows」、Webブラウザで利用可能な「Microsoft Copilot」の場合、サインインした状態では「このファイルはブロックされています」と表示されて「姓」「名」の分離が実行できなかった。ただしサインアウトすれば、ChatGPTと同様、「姓」と「名」の分離が可能だ。
以下、ChatGPTを例に、生成AIを使った「姓」と「名」を分離する手順を紹介しよう。
Webブラウザで「ChatGPT」ページを開き、ログインしておく。「ChatGPTにメッセージを送信する」の入力ボックスに「以下の氏名を姓と名に分離してCSV形式で出力してください」と入力後、[Shift]+[Enter]キーを2回押し、改行を2つ入力する。Excelの「名前」列をコピーして、ChatGPTの入力ボックスに[Shift]+[Ctrl]+[V]キーで貼り付け、[Enter]キーを押す(単に[Ctrl]+[V]キーで貼り付けると、画像として貼り付けられることがあるため)。
するとCSVファイルが作成され、そのダウンロードリンクが表示されるので、リンクをクリックしてCSVファイルをダウンロードする。ダウンロードしたら、Excelの[ファイル]−[開く]を選択して、CSVファイルを選択して読み込むと、[テキストファイル]ウィザード([区切り位置指定]ウィザードと同じ)が起動する。ここで「区切り文字」欄で区切り文字となっている「コンマ」を指定すると、「姓」と「名」が分離されたデータが入力された新しいブックが開く。
CSVファイルのリンクが作成されずに、「姓,名」という形式でデータが出力されることもある。この場合は、右上の[コピー]アイコンをクリックして、データをコピーする。これをExcelの新しいシートやブックに貼り付ける。
1つの列に「姓,名」が貼り付けられるので、この列を選択した状態で[データ]タブの[データツール]グループにある[区切り位置]をクリックして[区リ位置]ウィザードを起動して、「姓」と「名」の間にスペースがある場合と同じ手順で、「区切り文字」欄で区切り文字となっている「コンマ」を指定する。
これで「姓」と「名」が分離されるので、「姓」列と「名」列をそれぞれオリジナルのシートにコピーすればよい。
生成AIの場合も、WEBSERVICE関数を使う場合と同様、完璧ではないので、必ず出力された「姓」と「名」を確認すること。
Copyright© Digital Advantage Corp. All Rights Reserved.