構造化Excelテク:小難しい関数を使わず、住所を都道府県とそれ以下に分離する方法:Tech TIPS
Excelで住所録などの都道府県名と市区町村以下を分けて、集計したいということがある。このような場合、簡単に都道府県名が分けられそうだが、これが意外と面倒だ。多少手作業は入るがお手軽な方法と、関数を使って一発で都道府県を分ける方法を紹介しよう。
対象:Excel 2016/2019/2021/365
Excelで住所の都道府県と市区町村に分ける方法
Excelで住所録などの都道府県名と市区町村以下を分けて、集計したいということがある。本Tech TIPSでは、多少手作業は入るがお手軽な方法と、関数を使って一発で都道府県を分ける方法を紹介しよう。なお、画面で使用した住所は、「テストデータ・ジェネレータ」で自動生成したものである。
「Microsoft Excel(エクセル)」で住所録やアンケート結果を処理する際、都道府県と市区町村以下を分けて、都道府県別に集計するといったこともあるだろう。また、住所を正規化する場合にも、都道府県を分けると、間違いやヌケなどが把握しやすくなる。
ただ、住所欄から都道府県を切り取って、別のセルに貼り付ける、という作業を1つずつ行うのは面倒だ。都道府県で並べ替えて、都道府県名の入力作業を楽にするという手もあるが、面倒なことには変わりない。
そこで、本Tech TIPSでは、Excelで住所の都道府県と市区町村以下を分ける方法を紹介する。多少手作業は入るがお手軽な方法と、関数を使って一発で都道府県を分ける方法を取り上げよう。
フラッシュフィルを使って手軽に分離
後述する関数を使う方法では一発で都道府県が分けられるものの、IF関数を使う必要があるなど、ついつい使い方を忘れがちだ。どんな数式だったか検索して、入力という段取りを毎回踏むのであれば、多少手作業が入っても「フラッシュフィル」を使う方法が手軽だ。
フラッシュフィルは、Excelが法則性を検知してデータを自動的に入力する機能だ。例えば、A列に姓、B列に名が入った表があった場合、「C2」セルに「A2」セルの姓と「B2」セルの名を結合したデータを入力し、C列に対してフラッシュフィルを実行すると、自動的に法則性を理解し、C列に「姓+名」を入力するというものだ。
文字列の結合なら「=A2&B2」で簡単だが、この場合、オートフィルをした後に、列をコピーして値として貼り付け直す必要がある。この点、フラッシュフィルであれば、文字列として自動入力されるので、列をコピーする手間は不要だ。
フラッシュフィルとは(1)
Excelが法則性を検知してデータを自動的に入力する機能だ。A列に姓、B列に名が入った表があった場合、「C2」セルに「A2」セルの姓と「B2」セルの名を結合したデータを手動で入力する。
この機能を使って、都道府県名を抜き出そう。ただし、「神奈川県」「和歌山県」「鹿児島県」の3県については、後述の通り、手作業が必要になるので注意してほしい(詳細は後述)。
まず、住所欄の先頭行にある住所の都道府県名を「都道府県」列に入力する。この際、先頭行が「神奈川県」「和歌山県」「鹿児島県」の3県であった場合、それ以外の都道府県の住所の行でこの作業を行う。
都道府県を入力したら、そのセルを選択した状態で、[Ctrl]+[E]キーを押すか、[ホーム]タブの[編集]グループにある[フィル]−[フラッシュフィル]を選択すると、「都道府県」列の残りの列に都道府県名が入力されるはずだ。もし、誤って列見出しがフィルされてしまったら、都道府県名を入力する行を変えてみよう。
フラッシュフィルを使って都道府県名を取り出す(2)
都道府県名を入力したセルを選択した状態で、[Ctrl]+[E]キーを押すと、フラッシュフィルが実行され、都道府県名(「住所」列の先頭から3文字)が入力される。よく見ると、「神奈川県」「和歌山県」「鹿児島県」の3県は、最後の「県」が抜けていることが分かる。
ただ、よく見ると「神奈川県」「和歌山県」「鹿児島県」の3県は、「神奈川」「和歌山」「鹿児島」となってしまい、「県」がなくなっていることが分かる。都道府県が分けられたのではなく、先頭の3文字が抜き出されたわけだ。
そのため、先頭行が「神奈川県」「和歌山県」「鹿児島県」だった場合、先頭から4文字が抜き出されてしまうため、それ以外の行で「都道府県名」を入力する必要があったわけである。
ただ、これら3県以外は、全ての都道府県が3文字なので、フラッシュフィルを使えば、ほとんどの都道府県名が入力できる。
「神奈川県」「和歌山県」「鹿児島県」の3県を修正する
フラッシュフィルで正しく入力できなかった「神奈川県」「和歌山県」「鹿児島県」の3県については、別途修正が必要になる。
3県しかないので、「神奈川」を「神奈川県」、「和歌山」を「和歌山県」、「鹿児島」を「鹿児島県」にそれぞれ置換するのが手っ取り早いだろう。[ホーム]タブの[編集]グループにある[検索と選択]−[置換]を選択し、[検索と置換]ダイアログの[置換]タブを開き、「検索する文字列」欄に「神奈川」、「置換後の文字列」欄に「神奈川県」と入力したら、[オプション]ボタンをクリックして、「セルの内容が完全に同一であるものを検索する」にチェックを入れて、[すべて置換]ボタンをクリックする。
置換を使って県を追加する(2)
[検索と置換]ダイアログが表示されるので、「検索する文字列」欄に「和歌山」、「置換後の文字列」欄に「和歌山県」と入力したら、[オプション]ボタンをクリックして、「セルの内容が完全に同一であるものを検索する」にチェックを入れて、[すべて置換]ボタンをクリックする([すべて置換]を実行するのが不安ならば、[置換]ボタンをクリックして、1つずつ確認しながら置換していってもよい)。これで「都道府県」列の「和歌山」が「和歌山県」になるはずだ。同様に「神奈川」と「鹿児島」に対しても置換を行い、「神奈川県」「鹿児島県」にする。
これを「和歌山」「鹿児島」についても行えばよい。「セルの内容が完全に同一であるものを検索する」のチェックを忘れると、「住所」列の住所までも変換され、「神奈川県県……」のようになったり、「鹿児島県市」になったりしてしまうので注意してほしい。
このように手作業は必要になるものの、関数を使わないので手順さえ覚えておけば、簡単に都道府県が分けられる。
関数を使って都道府県名を分ける
住所から都道府県を分ける方法として、関数を使うのが一般的だ。ただ、関数が少し複雑なので、引数などを間違えないようにしよう。
フラッシュフィルでは、先頭から3文字を抜き出すことで都道府県を分けた。基本的には同様の作業を関数で行うのだが、その際に先頭から4文字目が「県」であった場合は先頭から4文字を、「県」でなかった場合は先頭から3文字を抜き出すようにする。これで、一発で都道府県名を分けることができる。
もちろん、〇〇県県市や〇〇県県郡といった地名があった場合は、先頭から4文字目まで抜き出されてしまうが、幸いなことに都道府県名を含む住所の先頭から4文字目が「県」となるような地名はないようだ。
具体的には、MID関数を使って4文字目が「県」かどうかを判定し、それが「真」の場合は先頭から4文字目(左から4文字目)までを、「偽」の場合は先頭から3文字目(左から3文字目)までを、それぞれ抜き出す。
MID(<住所セル>,4,1)="県"
Copyright© Digital Advantage Corp. All Rights Reserved.