顧客の住所に関して、都道府県を抽出する場合があります。
その際に、都道府県と、市区町村の間に、スペースを入れます。
しかし、そのスペースが半角、全角で、バラバラの時があります。
そんな時は、今回の記事が役立つはずです。
目次
都道府県と市区町村を分割する究極の方法
こんにちは。伊川(@naonaoke)です。
最近は、他部署からの引継にかんして、記載しています。
引継の中には、顧客の住所が良く含まれています。
その際に、都道府県と市区町村の間にスペースがあります。
私も、Excel、ACCESSを知らないときは、なぜ、スペースがあるのがわかりませんでした。
しかし、そのスペースを目印に、分割するということがわかりました。
しかし、そのスペースも、半角なのか、全角なのかで、都道府県を上手く、抽出できないときがありました。
その時は、本当にイライラしていました。
所詮、人間がすることです。
その時に、半角なのか、全角なのかで、都度、注意喚起するのも、どうかな?と
なので、半角であれ、全角であれ、または、スペースがなくても、都道府県と市区町村を分割する方法を紹介します。
このブログはこんな人にお勧め
- Excel、ACCESSで、都道府県を関数で抽出している人
- 半角、全角が統一されていなくて、朝、引継を見たときにイライラしている人
- Functionを勉強している人
このブログを、読み終わるころには・・・・
Functionを利用するのですが、それほど難しくありません。
むしろ、Instr関数が活躍します。
都道府県と市区町村を分割する究極の方法
都道府県と、市区町村を分割する方法としては、
Find関数
Split関数
Instr関数
大体、この3つでしょうか?
ただ、ACCESSには、Find関数はないので、Split関数か、Instr関数になります。
今回は、Instr関数で実行したいと思います。
何回も言いましたが、Functionで、ユーザー定義関数を作成する場合は、汎用性を持たせるために、ボヤーっと関数を作成します。
都道府県と市区町村を分割する究極の方法 作業手順 その1 データベース確認
このデータベースで、都道府県と市区町村を分割します。
スペースの無いデータ、スペースのあるデータと、様々です。
ユーザー定義関数を作成すれば、カンタンです。
都道府県と市区町村を分割する究極の方法 作業手順 その2 ユーザー定義関数を作成
strが、Nullなら、長さを0(= “”)
strの3番目に、都道府県のいずれかの文字が有ったら、左から3文字を抽出
strの4番目に、県があったら、左から4番目を、抽出
strに、都道府県の文字かなかったら、長さを0(= “”)
これだけのコードです。
場所を指定していないので、汎用性がありますね。
都道府県と市区町村を分割する究極の方法 作業手順 その3 市区町村を抽出
Nz([住所],””)の意味は、strの中に、都道府県がなければ、エラーになるため、エラー回避のためです。
市区町村を含む場合には、都道府県の値を長さ0(= “”)に変換するとことで、市区町村を表示させます。
都道府県と市区町村を分割する究極の方法 作業手順 その4 Trim関数を利用して、再度整形
元データに、スペースがあるので、左端にも、スペースがあります。
このスペースにが、気になる人もいるでしょう。
せっかくなので、Trim関数で、そのスペースを除去します。
これで完成です。
今回は、ACCESSで都道府県を分割しました。
もちろん、Excelでもできますが、大量データを扱えるACCESSのほうが便利ですね。
私が扱うデータは、必ず3,000件以上なので、また、Excelよりも、私は、ACCESS派です。
どっちにしても、今後は、スペースがあっても、無くても、都道府県と、市区町村の分割は可能です。
まとめ
消費税や、合否判定ではなくても、Functionは使えます。
このことを、世間の皆様へ、知っていただきたいですね。
今回も最後まで読んでいただきありがとうございました。
今回のサンプルファイルは、No264です。
わからない事を延々と考えるのは、無駄です。
- なんで作動かないの?
- もうやだ!VBAなんか嫌い!
- ネットで調べても情報がない!
必ず作動するコードが、ここにあります。