住所録のようなデータベースで、住所が1つのフィールドにまとまっているときに、FIND関数とLEFT関数を使って住所から県名だけを取得する方法をご紹介しました。
この方法では、「東京都」「北海道」「京都府」「大阪府」を取り出すことはできないので、どうすればいいのかとご質問をいただきました。
47都道府県で神奈川・和歌山・鹿児島だけが特殊
いろいろな考え方がありますが、47都道府県の中でほとんどが頭3文字を取り出せば都道府県名となることに気づくとシンプルな数式で都道府県名だけを取得できます。
47都道府県の中で
神奈川県
和歌山県
鹿児島県
の三県だけが頭4文字を取得したときに県名になります。
他の都道府県は頭3文字で都道府県名になります。
都道府県名だけを取得する数式
このことに気づくと、シンプルな数式で住所から都道府県名だけを取得できます。※A1に都道府県を含む住所が入力されているときにB1に都道府県名を表示する例
B1セルに、
「=IF(MID(A1, 4, 1)="県", LEFT(A1, 4), LEFT(A1, 3))」
という数式を入力する
IF関数の第1引数「MID(A1, 4, 1)="県"」で、先頭から4文字目が「県」という字かどうかを判断しています。
MID関数は、
第1引数に指定された文字列の中から
第2引数に指定された位置を開始位置として
第3引数に指定された文字数の
文字列を取得する関数です。
MID関数を使って住所の4文字目を取得して、それが「県」という文字かどうかを調べているのが「MID(A1, 4, 1)="県"」の意味です。
4文字目が「県」という字ならば、「神奈川県」「和歌山県」「鹿児島県」のいずれかということですから、IF関数の第2引数「LEFT(A1, 4)」で、先頭から4文字を取得しています。
4文字目が「県」という字でないならば、「神奈川県」「和歌山県」「鹿児島県」以外の都道府県ですから、IF関数の第3引数「LEFT(A1, 3)」で、先頭から3文字を取得しています。
こういう課題は実務でよく遭遇します。
慣れないと、「県」を取得するのと同様の方法で「都」「道」「府」を探して、その左側を取得するという考えを、ついしてしまいがちでしょうが、できるだけ単純なロジックにするのがポイントです。
また、住所に都道府県名が入っていないデータも混在しているということも実務では出てくるでしょうが、そんなデータはまずキレイにすることから考えましょう。
- Newer:『インストラクターのネタ帳』の裏側
- Older:フィルタをクエリとして保存する
Home » Excel(エクセル)の関数・数式の使い方 » 文字列 » 住所から都道府県名を抽出する-IF・MID・LEFT関数