アプリ版:「スタンプのみでお礼する」機能のリリースについて

エクセル2003を使用しています。
住所一覧を参照して市町村JISコードを返したいのですが可能でしょうか。

A列
大阪府大阪市○○区○○町1-1
高知県高知市○○11-1
愛知県海部郡○○町○○○○61
  ・
  ・
  ・

と住所が並んでいます。

過去の質問やサイトを調べて都道府県を抽出することはできたのですが、
JISコードを参照するには市区町村部分まで引っ張り出さないといけないようです。

何か簡単にできるような計算式等、ありませんでしょうか。

A 回答 (6件)

データは、地域の区分け、それも、都道府県に別けるのは面倒だから、せいぜい以下のような10ブロック別けぐらいで十分だと思います。



(北海道,東北地方,関東地方,中部地方,北陸・甲信越,東海,近畿地方,中国地方,四国地方,九州地方)

今回の使ったデータは、全部で、122,619行で、それを分散させれば、後は、どこを検索するかブロックを最初に決められれば、後はそんなに問題はないと思います。それを分散したら、1シート、1万数千件程度の検索です。そのデータのブック自体は別にし読み取り専用にしておき、そのブックのシートを、データベース関数やExcelのデータベース検索コマンド(フィルタオプション)でできるかと思います。

この場合、元のデータ自体を加工するという考えは、あまりしないほうがよいのではないかと思います。また入力データを切り分けするなら、その元のデータを考慮しないといけないはずです。

なお、JISコードは、集計すると2,520個で、市町村データは、80,813件でした。ただし、それは、「他に掲載がない場合」や「同名」が存在しているなどの理由からで、12万件自体は変わらないはずです。

個人的には、やはり、専用のデータベースの方が、現在のデータのままでは検索の効率はよいと思っています。

今回、私の使用したデータは以下の[ZIPJIS]というK3(桐)ファイルです。
(内容の説明では、2005年6月20日までの変更に対応。)
http://kitagawa.tv/zipjis/zipjis.htm

参考URL:http://kitagawa.tv/zipjis/zipjis.htm
    • good
    • 0
この回答へのお礼

お礼が遅くなり申し訳ございません。
やはり簡単にはいかないようですね・・・
あればよく使われそうな処理なので、簡単な方法があるかと思いましたが・・・
VBAくらい勉強しようと思います。
貼っていただいたURLも、参考にさせていただきます。
ご回答ありがとうございました。

お礼日時:2005/05/20 19:40

>JISコードを参照するには市区町村部分まで引っ張り出さないといけないようです。



住所の完全な分割は #2 の chie65536 さんがコメントされておりますとおり、複雑な例外処理を必要とするため、非常に難しいと思います。

実は以前、住所を分割するVBAユーザー定義関数を作成したことがあります。「市区町村部分の抜き出しさえできれば、JIS コードを参照することができる」ということであれば、アップしてみます。

ただ、長文マクロですし、精度も保証できない、、、というお粗末なものですから、ご希望があれば、、ということにさせて下さい。
    • good
    • 0
この回答へのお礼

お礼が遅くなり申し訳ありません。
きちんとしたものを作るのはかなり複雑なようですね。。
何か簡単な方法があればと思ったのですが・・・
とりあえず、VBAの勉強をしてみようかと思います。
また、宜しくお願い致します。
ご回答、ありがとうございました。

お礼日時:2005/05/20 19:36

1.都道府県


47個しかないので、都道府県(漢字)と2桁コードのエクセルシートテーブルを自分で作るとしても簡単です。
都道府県漢字をエクセルの住所データより抜き出せば
(ただし要スキル)、VLOOKUP関数で都道府県コード化は可能です。これは済んだようですね。
問題は原住所データに都道府県漢字が入っていたり入ってなかったりするとお手上げです。
2.全国市区町村名
これは数が3千6百以上(合併で3000あまりに減少か)あって、自分で電子データを作るとするとまあ不可能の部類でしょう。
具体的な内容はJISコードブックが(規格協会で)市販されていますが、平成の市区町村大合併の最中で改訂版が現状に追いついていない恐れがあります。
電子化されたデータがフリーで公開されているかどうか知りませんが(私は見たことがない)、郵便番号データ(十数万件?)ならあるので、そこから市区町村漢字データを作ることは可能ですが(ただしプログラムをつくれることが必要)、市区町村コードは自分で入れないといけないので不可能の部類でしょう。
3.コード化
もし都道府県漢字+市区町村漢字+市区町村JISコードデータ(5桁)があれば、コード化できるか。
まず第1弾として、エクセルの関数などで市区町村のレベルまでの漢字が抜き出せるかということですが。
関数では難しいでしょう。FIND関数のような、「含む」を検知できるものは、(VLOOKUP関数のようには)対象を変えて実行してくれないので、町字番地部分が邪魔です。
この段階になると「表引き」プログラム(VBA)の作成技量かデータベースへインポートして、SQLを使える環境が必要でしょう。
「MSアクセス」やSQLを使えるデータベース言語の利用です。
その場合「含む」を検知する、LIKE*やINSTR関数などを使うことになるでしょう。
プログラム作成では3000千件、毎回総なめ判別すると、処理時間が相当かかると思われるので、市区町村のテーブル側のデータの「構造化」の技量が必要でしょう。構造化とは毎回(エクセルの毎行)比較判別する回数を劇的に減らす工夫・仕組みのことです。
    • good
    • 0
この回答へのお礼

お礼が遅くなり申し訳ございません。
詳しく検討していただきありがとうございます。
エクセルは関数こそそこそこ使える程度の素人ですので、なかなか難しそうですが・・・
でも勉強してみまようと思います。
ご回答ありがとうございました!

お礼日時:2005/05/20 19:33

一応、Excelで試してみました。



今、公開されている新しいテキストファイルを、mdb 化して、VBAコードを書いてみましたが、結果としては、とても実用にはなりませんでした。

レコードセットを開いて検索しているのですが、約14Mbyte もある中から、Like 検索しJISコードは出ることは出ますが、1つの検索でも、数10秒、しばらく考えているようです。これでは、Excelからの実用化は、今の段階では、ちょっと無理みたいです。

少なくとも、mdbでは、うまくいかないような気がします。テキストファイルも、昔やったことがありますが、実用レベルではありませんでした。他にも似たような方法はありますが、おそらく、同じ発想の中からでは、成功しませんね。他の方法がたぶんあるはずですが、もう、Excelの範疇ではなくなります。

やはり、現状では、Access から開いてAccessのクエリから検索させるのとでは、雲泥の違いがあるようです。
一応、ご報告まで。
    • good
    • 0
この回答へのお礼

わざわざ試していただいてありがとうございました!!
お礼が遅くなり申し訳ございません。
なるほど、Accessを使って検索するんですか。。
Accessはほとんど使ったことがないので、勉強してみようと思います。
ありがとうざいました。

お礼日時:2005/05/17 11:12

No.1さんへ。


質問者さんが聞いているのは「郵便番号」ではなく「JIS市町村コード」の事ですが、ATOKは「JIS市町村コード」をサポートしていません。
※JIS市町村コード=2桁の県コード、3桁の地域コードで構成された5桁コード

質問者さんへ。
残念ながら簡単には行きません。
VBマクロでコードを書いて、一覧から検索する事になります。
しかも、入力された住所の書き方によって、かなりの例外処理を必要とします。
例えば「町」や「村」を省略して「○○町1234番地」と書かずに「○○1234番地」と書かれていたり「○○県○○郡○○町字△△3番」と書くべきを「○○県○○郡○○△△3番」と書いたり。

他にも、単純には行かない事例が山ほどあります。

JIS市町村コード一覧を住所でソートしてみると判りますが、検索の順番を間違うと嘘のコードになってしまう場合もあります。

経験から言えば、ExcelよりAccessで作った方が良さそうです。
    • good
    • 0
この回答へのお礼

お礼が遅くなり申し訳ありません。
やはり簡単にはできませんか・・・(>_<。)
Accessやマクロはほとんど使ったことがないので、
何か関数みたいなものがないかと思ったのですが・・・・
ご回答、ありがとうございました!

お礼日時:2005/05/17 11:04

住所から郵便番号への変換は


「ATOK」環境では出来るようです.ジャストシステムのFAQをご参照下さい。

「AMET」言う機能らしいです。 私は必要ないと思ったのでインストールしていませんけど。所謂逆引きですよね。

マイクロソフトの漢字変換は使っていないので分かりません。 少なからず「お▲●さん」なので(笑)

参考URL:http://faq.justsystem.co.jp/faq/1003/app/jsfaq.j …
    • good
    • 0
この回答へのお礼

早々のご回答ありあがとうございました。
ただ郵便番号ではなく「市区町村JISコード」という5桁のものがありまして、それを参照させたいのです。
データは一覧で取得しているので、市区町村部分まで抜き出しさえできれば可能かと思うのですが・・・
ATOKには便利な機能があるのですね!こちらIME使用です。。(^_^;)

お礼日時:2005/05/13 15:33

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!