過去の桐井戸端BBS (桐ver.8)
6301 郵便番号の表引き emure 2000/06/07-10:41
こんにちは.今回は索引定義についてお伺いしたいのですが・・

郵便番号と住所の表引きに,郵便局のホームページからダウンロードしてきたファイルを使っています.
取引先が全国各地にみえるのでかなり大きなファイルになってしまいます.
表引きをする時間がとても長いので索引定義を色々試してみたのですがなかなか早くなりません.
必要でない項目は削除したりしたのですが・・
この定義にすれば早い!!っていうのがあれば教えていただきたいのですが.
よろしくお願いします.
6304 Re:表引きでの索引の使用 悲しげ 2000/06/07-11:55
記事番号6301へのコメント
どもっ、emureさん
索引が生きていれば、表引きはそんなに遅いはずはないと思います。
で、桐のバージョンが判りませんが、V8と仮定してコメントします。
また、この場合の「表引き」とは、関数ではなく表引き条件のそれを
指すのだとしてコメントします。この場合、
 比較項目
 表引き表
 使用索引
 検索項目
 値項目
の5つの指定がありますが、この内、使用索引の設定がされていないか
別な索引を設定しているか、あるいは下部のチェックの不備辺りが
原因ではないかと推察されます。
6305 ありがとうございます. emure 2000/06/07-13:23
記事番号6304へのコメント
悲しげさんこんにちは.早速のレスありがとうございます.
おっしゃるとおり,var.8で関数で無い表引きの設定方法です.
説明不足で済みません.
設定ミスかな・・と思い,もう一度確認してみました.
郵便番号の項目属性で
比較項目:住所
表引き表:郵便番号.tbl
使用索引:地名順(もちろんテーブルのほうに並べ替え順ともに設定してあります)
検索項目:住所
値項目:郵便番号

と設定しています.なにかおかしな所がありますでしょうか?
ちなみにデータは12万件です.
もしかして・・今書きながら気がついたのですが,同じフォルダに入っていないと
遅くなるとかって有りますか?

6306 Re:ありがとうございます. 宮城 2000/06/07-13:48
記事番号6305へのコメント
思うに、「住所」ですね。
ダウンロードデータはいきなり「以下に掲載のない場合」があったり、
「1〜19丁目」「(その他)」があったり、そのまま使えるものではありません。

「1丁目」「1丁目」「一丁目」 たとえばこんなのどうしてます?

とりあえず佐田さんが公開されてますので、参考にされてはいかがですか?

http://www.ne.jp/asahi/m.sada/kiri/NAMECARD/NAMETOP.html

フォルダの場所は関係ないはずです。
6307 Re:でっかい表引き対象表 bonito 2000/06/07-13:51
記事番号6305へのコメント
emureさん、こんにちは。
多分はずしていると思いますが… (^^;

桐が表引きの相手側の表を開くのは、表引きを設定してある
項目が更新状態に入った時、即ち相手の表が必要になった時のようで、
ですから最初に表引きに入った時、相手が大きいと(OPENに時間がかかるので)、
結構待たされるって感じです
よね。

これを回避というか、もどろっこしいから…、という事でしたら、
表引きを設定してある表を開いた時(KEVならメイン部)に
相手の表も開いてしまうというのが常套手段かと思います。

6308 Re:でっかい表引き対象表 emure 2000/06/07-14:27
記事番号6307へのコメント
bonitoさんは No.6307「Re:でっかい表引き対象表」で書きました。

>表引きを設定してある表を開いた時(KEVならメイン部)
>に相手の表も開いてしまうというのが常套手段かと思います。

bonitoさんこんにちは.ありがとうございます.
表は初めから開いているんです・・
なのに,桐そのものが止まってしまったりもするんですよ.
なぜでしょう??以前bbsで12万件くらいなら全然問題無いというのを
見かけたのですが.

6309 Re:ありがとうございます. 宮城 2000/06/07-15:11
記事番号6306へのコメント
ごめんなさい。郵便番号から地名を引くんですね。

であれば、郵便番号順になぜしないんですか?

6310 Re:表引きでの索引の使用 悲しげ 2000/06/07-16:44
記事番号6308へのコメント
emureさんwrote
>表は初めから開いているんです・・

ここが臭いですね。初めから開いている表で使われている索引はどうなっているでしょう?
もしこの時の状態が"地名順"ではないとして、かつ表引きの設定が
「編集表を使用する」にチェックだったら、遅くなるってのはさもありなん。
・先頭一致検索    オン
・編集表を使用する  オフ
・索引を自動使用する オフ
でちょいと試して見て下さい。cf.表編集リファレンスp.95

宮城さんwrote
>ごめんなさい。郵便番号から地名を引くんですね。
>であれば、郵便番号順になぜしないんですか?

この場合は、その逆のようですよ。(^^;)
6311 Re:表引きでの索引の使用 宮城 2000/06/07-17:32
記事番号6310へのコメント
悲しげさん、どうもです。そうすると、6306で書いてることが
有効化するのかな。かなり工夫し加工しないと使えないと思う
んですけど。
6315 Re:でっかい表引き対象表 佐田 守弘 2000/06/07-23:14
記事番号6308へのコメント
emureさん
表引きに時間がかかるとの事ですが、どの程度ですか?
郵便番号データは13万件20MB程ありますから、正しい索引を付けても、
最初の1回目は1秒程度も待たされる場合がありますが、
2回目からはほとんど瞬時にできるはずですが。
もし、郵便番号データの表引きで10秒以上も待たされるとしたら、
データの作り方が悪いか、索引の付け方が悪いのだと思います。

●考えられる事
まず、郵政省の郵便番号データは、そのままでは表引きには適しません。
(これは後で触れますし、私のHPに詳しく書いてあります)
郵政省の郵便番号データでは、郵便番号がハイフォンなしの「nnnnnnn」形式に
なっているはずです。もし入力した郵便番号が「nnn-nnnn」形式だと、表引きはできません。
このあたりは大丈夫ですか?

次は索引ですが、検索値となる郵便番号で索引を作ってありますでしょうか。

後は表引きの設定が正しいかを確認して下さい。

●郵政省発行の郵便番号データの問題
全データとは言いませんが、北海道の札幌の郊外、東京の西新宿のビル街、
京都府の古き地名がある町だけでも、詳細に眺めてみて下さい。
「このままではとてもではないけど、表引きには使えない!」
と気がつくはずです。
例えば、
「"6008164","京都府","京都市下京区","る、六条通烏丸西入、六条通諏訪町西入、六条通諏訪町東入、六条通室町」
の、「る」が何だか分かりますか?これは直前のレコードの
「上柳町(諏訪町通花屋町上る、諏訪町通六条上る、諏訪町通六条下」
の途中で改行されたものなのです。
この様な町名の途中で千切られて、2行に別れて記述されている様なデータや、
複数の町名が羅列されているデータでは、表引きに使えないと思うのですが。
ですから、郵政省発行の郵便番号を元に、表引きに使える形に変換する必要があります。
以下は私のHPの中にある記事などです。

@郵便番号データについて
コンピュータ活用情報室(出版館)→「Windows版桐活用情報:桐ver.7活用ガイドメニュー」
→「桐ver.7関連の活用情報」→「桐ver.7の表引きに活用する郵便番号データ」
桐ver.7対象で書いてますが、桐ver.8でも共通の内容です。

A郵便番号データの表引き様データへの変換
上記メニューの中にある他、同じく出版館の「シェアウエア:名刺管理システム」の中にもあります。
後者の方がバグフィックス済みです。

B変換済みデータ
同じくシェアウエアのページに変換済みのデータ(5MB)を掲載してあります。
変換が面倒だと思われる方は、これをダウンロードして使って下さい。
なお、現在は3月に公開されたデータです。おそらく、そのうちに郵政省のデータも更新されると思います。
更新されたら、掲載する予定でおります。

佐田守弘(KS-00119)

追伸:表引き用に変換したデータを桐のspに入れてもらう用に管理工研に交渉しています。

私の主張:名刺には郵便番号が先に書いてある。
後ろに書いてある電話番号を先に入れるのは不自然だ。
だから郵便番号が自然である。

管理工研の主張:年賀状印刷のソフトは、電話番号入力が主体で、郵便番号入力ではない。

皆様の御意見はどうですか。

6329 Re:表引きの項目について 今村 誠 2000/06/08-17:20
記事番号6315へのコメント
佐田先生、いつも親切なコメントをありがとうございます。
私の地方では宅配で、梨を発送しています。
最近は、ヤマトシステムなどもソフトを出していますが………
発注者は必ず、連絡先の電話番号を書いてくれます。
名刺管理であれば、郵便番号やeメイルアドレスもありますが。
私も、システムを作る上で、なにが必要かを考えると、
発注者に送るDM用の郵便番号、送り先に届けるための住所と
電話番号、郵パックだと郵便番号。
電話やDMでの受注では、郵便番号は皆無です。
また発送時にヤマト運輸を使用する場合は、着店コードを
入れておかないと、運賃計算を着店コードでしているので、
調べ終わるまでずっといらっしゃいます。
ですから着店コードを印刷するために、住所のほかに、市区町村コードか、
県と市だけを別に入力しておかないと、ヤマトの営業所が増えたり、
町や村が合併したときに手直しする必要がでてきます。
これがあると、運賃計算もできますので、商品ごとに重量か
サイズを指定して、運賃テーブルを作成すると事務の省力化に
なると思います。
 私の場合一度電話番号(tbl)から、市や区を表引きして、その市から
郵便番号tblを表引きしています、最初の表引きは計測不能です。
2回目の表引きの索引は住所順に並べていますが、最初が2秒くらい、
2回目からは1秒弱ででます。件数は12万件です。
最後に住所から郵便番号を表引きしますが、1秒弱です。
郵便番号の索引は二つ市や区だけの住所順と大字までの住所順ファイルサイズは26Mです。
佐田先生が着店コード一覧表(ヤマト運輸)をシェアウェアーで出せませんか。
半年毎の訂正は、しんどいです。確認が大変です。
6344 Re:ありがとうございます. emure 2000/06/09-10:19
記事番号6309へのコメント

>ごめんなさい。郵便番号から地名を引くんですね。
>であれば、郵便番号順になぜしないんですか?

宮城さんこんにちは.コメントありがとうございます.
今回は悲しげさんがおっしゃっているように,地名から郵便番号を引き出したいのです.
郵便番号から地名を引き出すのは成功しました.もちろん郵便番号順を設定しました.
その逆ができないという事は,佐田さんがおっしゃるようにデータとなっているテーブルが悪いって事でしょうか?
郵政省のホームページからダウンロードしてきたものを
”旧郵便番号・郵便番号・県・市区・町”だけ残して他は全て削除しました.
それから”県+市区+町”を計算項目とする新しい項目を作ってその項目を使って表引きしているのですが・・
問題はどこなのでしょうか?
よろしくお願いします.

6345 Re:住所/郵便番号表引き 悲しげ 2000/06/09-10:59
記事番号6344へのコメント
どもっ、emureさんと今村さんは同一人物?

さて、最初の質問から、郵便番号から住所を引くのではなく、
住所から郵便番号を引くことは判っていましたが、再度確認させていただくと、
これができないのでどうしたらいいか、
と云うことなんでしょうか?
それとも、できるんだけど超遅いってことなんでしょうか?
話の流れを見ているとどちらのことだか判らなくなりました。
6349 Re:住所/郵便番号表引き emure 2000/06/09-11:21
記事番号6345へのコメント

>どもっ、emureさんと今村さんは同一人物?

こんにちは.悲しげさん.
私は今村さんとは別人です.

私の言葉が足らなくて済みません.
今回の質問定義をもう一度させて頂きます.
1.地名から郵便番号を表引きしたい.
2.できる時はものすごく遅い!(20秒以上)そして,途中で動かなくなってしまう
事もしばしばあります.
3.この表引きがうまくいくような索引定義があれば教えてください.

・・という事なんですが,皆さんのお話を聞かせて頂いているうちに
問題は索引定義ではなく表の作り方に問題があるのでは,と思えてきました.
そして,先ほど表定義を見ていて思った事が1つ.
私は郵政省のサイトからダウンロードしたデータを
”旧郵便番号・郵便番号・県・市区・町”以外全て削除して
さらに”県+市区+町”を計算項目とする項目を新しく作ったのです.
その新しい項目を使って表引きをしているのですが,
計算項目というのは表を開くたびに計算し直しているものなんでしょうか?
だとすれば,遅くなって当然ですよね・・

今,新しく作った項目を一度他の表に読み込んで郵便番号表と併合してみていると
ころです.(時間がかかるので合間に書いているのです)
そうすれば,計算項目じゃなくなりますよね?
もしそれでうまくいったなら.本当に済みません.

6350 Re:住所/郵便番号表引き 悲しげ 2000/06/09-12:44
記事番号6349へのコメント
どもっ、emureさん
お名前を錯乱してしまって失礼しました。(^^;)

さて、計算項目があるからオープンが遅いと云うことはありません。
遅くなるのは、置換/再計算させる時だけです。置換しない限り値は変更されません。
で、計算項目でも索引の項目には指定できますし、表引き対象項目とすることも可能です。
計算項目であることを嫌うなら、置換でもって、[県]+[市区]+[町]の値を入れてしまうと云うこともできます。
併合よりは速いと思います
が、でも今さら云ってももう遅いか。(^^;)
6351 Re:住所/郵便番号表引き emure 2000/06/09-13:17
記事番号6350へのコメント
悲しげさん,ありがとうございます.
なにしろ桐とであってまだ3ヶ月くらいで・・
最近やっと簡単なイベントは組めるようになってきたところです.
これからも超初心者な事をお聞きすると思いますが,よろしくお願いします.

話は本題に戻りますが
という事は表引きできない原因はなんなのでしょうか?
佐田さんのHPも見させて頂きました.
データの管理の仕方は同じデータでも使い道によって変えなければいけないのですね.
私は,地名から郵便番号を引く時もその逆の場合も,地名は県名から町名まで
全て一度に引き出したいのです.1レコードの情報量の多さは表引きの速さを左右するのでしょうか?
6358 住居表記から郵便番号の表引き 佐田 守弘 2000/06/09-22:15
記事番号6351へのコメント
emureさん
今回の質問の主旨は、都道府県名から町名までの住居表示で郵便番号を表引きするという事ですね。

■ 表引きがうまく行かない理由
表引きがうまく行かない理由は、該当する町名のデータが郵便番号表の方にないためと考えます。

● 原因1:郵便番号表が間違っているため
既に私のHPに掲載してあります郵便番号データの問題点を読んで頂いたとの事ですので、
気が付かれていると思いますが、念の為に再度説明すれば、郵政省のデータをそのまま使うと、
一部に○○県△市(緑町、黄色町1〜3丁目)の様な記述があります。
このデータを次の様に作り替えなければなりません。
 ○○県△市緑町
 ○○県△市黄色町1丁目
 ○○県△市黄色町2丁目
 ○○県△市黄色町3丁目
これを行わずに、「○○県△市黄色町」を検索しようとしても、検索できない事は明らかだと思います。

● 原因2:住所の記述が誤っている
住所の入力は意外と誤りやすいものです。一般的な入力ミスの他、住所の表記文字列の
不統一による場合もあります。
例えば、宮城さんが#6306でも書かれている通り、「一丁目」と「1丁目」などの他、
「一番街」と「壱番街」、「元町」と「本町」など数え上げたらきりがない程、住居は様々な記述をします。
その他、「四ツ谷」と「四谷」、「御茶ノ水」と「お茶の水」なども良く誤る例です。
この様な町名の記述を、郵便番号データの通りに入力してないと、
郵便番号表での逆引きができません。

表引き元となる住所のデータをどの様に入力したかですが、もしアンケートなど、本人に書いてもらった住所だと、
ほとんど誤っていると考えた方が良いでしょうね。
実際問題、「丁目」部分を除いて町名までの部分であっても、漢字表記とかな表記の違い、
異字体を含めて本人と言えども郵便番号表に書かれている通りの正確な記述をしているかは、疑問が残ります。
更に、それをキー入力する際の入力ミスを考えると、住所から郵便番号への逆引き入力ができるか、
かなり難しいと思います。

■ 存在しないデータを検索しようとすると、時間がかかる
上記のどちらの場合でも、郵便番号表通りに記述された町名であれば、瞬時に検索が行われるはずです。
しかし、表に存在しない(=索引に存在しない)住所を入力して検索しようとすると、
索引を使った表引きができないために、思わぬ時間が掛ります。
正しい郵便番号を入力すれば、瞬時に検索できるのに、誤った郵便番号を入力した場合には、
とても時間が掛る事は、良く経験します。

■ 対策
郵政省発行の郵便番号CSVデータをそのまま使用しているとの事ですが、
この方法では、1の理由のためにうまく行かないと考えて下さい。
最低限、私が提唱する方法で、表引き様に変換した郵便番号データをお使い下さい。
ただし、私の方法では都道府県名と町域名を分離しておりますので、
これをつなぎ合わせた項目を作って、検索項目にして下さい。

また誤った住居表示のために、2の理由によって郵便番号の逆引きがうまく行かない場合は、
かなりの確率であり得ると思います。
新郵便番号に切り替わった際に、私は自分の名刺データについて、住所表示から新郵便番号への
逆引きをしました。
しかしその時に、かなりのデータが変換不能である事を発見しました。
その理由は
@住所の入力が間違っていた(前述の通りの間違い)
Aデータが古く、現在はその町名が存在しなくなっていた
でした。
そしてその時に分かった事ですが、郵便番号での表引き入力をした住所以外は、
逆引きで郵便番号を探す事はかなり困難である事を痛感した次第です。

■ それでも住所からの逆引きがしたい
私も名刺情報の入力で、郵便番号が正しく記載されていない時、住所からの逆引きを
したいと思う時があります。
私の「桐で作る名刺管理」にはまだこの機能を組み込んでおりませんが、
この先のバージョンでは組み込む必要があるかと思っています。
方法はそれ程難しくありません。表引きではなく、イベントハンドラの中で検索を行う方法ですが、
町域記述で該当する町域がなければ、末尾の1文字を削って検索を繰り返すという方法で
逆引きができるかと考えています。
佐田守弘(KS-00119)
6365 宅配便のコード 佐田 守弘 2000/06/10-12:31
記事番号6329へのコメント
今村 誠さん
もう2年ほども前の話になってしまいますが、宅配便のコード、市区町村コードについては、
NIFTY-Serveで活躍されている北川さんという方が作っておられたのを憶えております。
おそらく、今でも作って掲載されていると思います。

市区町村郵便番号コード(JIPJIS)は、FAPPLIにも掲載されていましたが、
御自身が運営されているクイズのフォーラム「FQUIZ」に最新版を掲載してあり、
できればこちらからダウンロードして欲しいとの話を聞いた事があります。

佐田守弘(KS-00119)

6401 Re:住居表記から郵便番号の表引き emure 2000/06/12-15:17
記事番号6358へのコメント
こんにちは.佐田さん.
丁寧なご説明ありがとうございました.
住所関係のデータをもう一度作りなおそうと思います.
データ作成後に佐田さんのHPに行かせて頂いたので作りなおさなければ・・
と思いながらも,なんとかなるだろう.と,面倒くさがっていたのが良くなかったと思います.
これからは作成前にいろんな計画を立てる事が大切だな,と反省しました.
ありがとうございました.

戻る