[リストへもどる]
一括表示
タイトル相模原市の郵便番号
記事No2217
投稿日: 2006/08/25(Fri) 16:51
投稿者元山@東京
PIPSのプログラムで郵便番号の頭2桁から地域/県を確定する
プログラムがあるのですが、本日、199の相模原市が東京都と
認識されているが神奈川県だという連絡がありました。

「修正できますか?」との問い合わせだったので「できる」とは
答えたものの、なんでかな?

PIPSのバインダーで全国郵便番号の一覧表をつくり、
郵便番号の頭2桁と地域/県名の対比する列があります。
東京都は10から20まで、21から25までが神奈川県と
なっています。
郵政省が出していた昔の全国郵便番号簿をもとに作成した
ものです。
どうも相模原市相模湖町、神奈川県津久井郡が199に
変更になったようです。
これだと頭2桁ではなく3桁で対応する必要がでてきますね。

当社はデータ件数が多いのと、PIPSが固定長ということから
基本は都道府県は除くというルールをとってきました。
これが一番の問題だということはわかるのですが、困ったものだ。

とりあえず応急処置としてプログラム内で郵便番号頭2桁と3桁の
を変数で読んできて、3桁のデータが199だったら「神奈川県」
と、いれさすようにしました。2行のみの追加ですみました。

なんと、強引かつ、柔軟な対応でしょうか???
抜本的な解決方法ではないと自覚していますが、時間稼ぎです。

元山より

タイトルRe: 相模原市の郵便番号
記事No2218
投稿日: 2006/08/25(Fri) 17:00
投稿者元山@東京

例外データの情報の確認をどうしようか?と悩んでいたら

http://yuusuke.info/

で例外データの記述を見つけました。
全国をいちいち調べないとだめかな
と思っていたので、ラッキーです。

元山より

タイトルRe^2: 郵便番号の例外データの多さ
記事No2220
投稿日: 2006/08/28(Mon) 11:09
投稿者元山@千葉県
>
> 例外データの情報の確認をどうしようか?と悩んでいたら
>
> http://yuusuke.info/
>
> で例外データの記述を見つけました。

で、本日例外データの確認をしているところですが、
これがとんでもないことがわかりました。
予想以上に多かったということ。
17都道府県もありました。

このため、まずプログラム内で処理したかったのですが、たぶん
だめでしょう(行が足りないと思われる)
GOSUB で別のプログラムで処理する?
3桁での確認にするか?

郵便番号2けたの指定では正しい集計ができないため、都道府県の
地名の入った列での集計になっているかの確認

あれこれ頭をひねっていたらそばにいた女性からEXCELにもっていって
都道府県ウィザードが正しい都道府県が認識できるのでそれを利用
したら?との提案。

ところがすぐにEXCELの都道府県ウィザードは専用郵便をもつ大口
事業所には対応していないから2度の作業になるか?事業所の専用郵便
で都道府県が特定できるウィザードがあるか?確認しないと
いろいろとどの処理がいいか?

PIPSのデータで都道府県をいれましょうとも提案されたのですが、
住所列は40桁です。40桁いっぱいのデータもありますし、あまり
桁数が都道府県名入力にたりないデータもあります。
例外のルールが多すぎるのも問題がでてきそうです。
そもそものPIPS導入したときから、固定長のため悩みを
抱えていたのです。

ACCESSだとこのような悩みはないのでしょうね。
むずかしいところですね。

たぶん、郵便番号3桁の一覧表をPIPS側で作成すると思いますが...

元山より

タイトルRe^3: 郵便番号の例外データの多さ
記事No2222
投稿日: 2006/08/30(Wed) 00:30
投稿者高橋@千葉県
> > 例外データの情報の確認をどうしようか?と悩んでいたら
> >
> > http://yuusuke.info/
> >
> > で例外データの記述を見つけました。
>
> で、本日例外データの確認をしているところですが、
> これがとんでもないことがわかりました。
> 予想以上に多かったということ。
> 17都道府県もありました

何年も前になりますが、全国の郵便コードを徹底的に調べたことがあり、
やはり、例外件数が無数にあることに驚いたことがありました。

これは、行政単位の決め方と、郵便局管轄の決め方がまったく違うことに
よると思います。

実際、私が今住んでいるのは流山市の端で、柏市との市境がメッタヤタラ
と入り組んでいるのにびっくりしています。これでは、郵便局管轄を行政
単位で決めたら、郵便配達屋さんが参ってしまうだろうと、納得していま
す。

タイトルRe^4: 郵便番号の例外データの多さ
記事No2223
投稿日: 2006/08/30(Wed) 15:40
投稿者元山@東京

> >
> > で、本日例外データの確認をしているところですが、
> > これがとんでもないことがわかりました。
> > 予想以上に多かったということ。
> > 17都道府県もありました
>
> 何年も前になりますが、全国の郵便コードを徹底的に調べたことがあり、
> やはり、例外件数が無数にあることに驚いたことがありました。
>

2桁では論理的に破綻があり(?)3桁なら大丈夫と思ったので
すが、あまかった〜〜。
なんと郵便番号520は京都市左京区と滋賀県大津市と都道府県を
またがったデータの存在を発見。なんと、これは!!
世の中データベースの考えが入ってきているのだから
頭3桁は都道府県をまたがるなあ〜〜と郵政公社に訴えたいですね。

> これは、行政単位の決め方と、郵便局管轄の決め方がまったく
違うことに
> よると思います。
>
頭が痛いことです。

元山より

タイトルRe: 相模原市の郵便番号
記事No2224
投稿日: 2006/08/30(Wed) 20:25
投稿者柏木@東京都
参照先http://www.pips.gr.jp
元山さん

> 当社はデータ件数が多いのと、PIPSが固定長ということから
> 基本は都道府県は除くというルールをとってきました。
> これが一番の問題だということはわかるのですが、困ったものだ。

都道府県のコードだけでも1列追加して持たせられないのでしょうかね。
東京となら 13 とか。コードはこれに拠っています。

http://www.hosei.ac.jp/toukei/shiryou/31cord_list.html

柏木@東京都

タイトルRe^2: 相模原市の郵便番号
記事No2225
投稿日: 2006/08/31(Thu) 15:47
投稿者元山@東京
柏木さん:こんにちわ
>
> 都道府県のコードだけでも1列追加して持たせられないのでしょうかね。
> 東京となら 13 とか。コードはこれに拠っています。
>
> http://www.hosei.ac.jp/toukei/shiryou/31cord_list.html

この考えで郵便番号のバインダーをつくり、プログラムも
作成していました。
PIPSのシステム全般の見直しになりますので、多大な労力がかかり
これは出来ないのです。

だったらDMの郵便集計作業なのでEXCELでやってもらうかですね。
プログラムでうまく処理できるか?
というところが勝負かな?
PIPSで1列追加するくらいなら、EXCELでやってもらったほうが
負担が軽くなりますね。

タイトルINSTRの使い方での質問
記事No2226
投稿日: 2006/08/31(Thu) 16:02
投稿者元山@東京
> プログラムでうまく処理できるか?
> というところが勝負かな?

バインダーのデータをFOR-NEXTでV変数に格納します。
LET V03=MID$(V01,1,3);
LET V04=[X02,X33];

V03に郵便番号の頭3桁が格納されます。
V04には住所のデータが格納されます。

ここでGOSUBで別のプログラムに飛んで
例外データを確認したいのですが
たとえばV04の住所データのなかに
十和田市があるかどうかを確認するには
LET X01=INSTR(1,V04,"十和田市");でX01<>0だったら十和田市が
あるということだと思うのですが
IF V03="185" AND (ここで一気に0以外だったらという記述
が可能でしょうか?)THEN LET [X02,@ダミー]="青森県";
というようにしたいのですが、
1行で治める書き方があるんでしょうか?
どなたかおわかりでしたらアドバイスお願いします。

元山より

タイトルRe: INSTRの使い方での質問
記事No2231
投稿日: 2006/09/02(Sat) 12:10
投稿者柏木@東京都
参照先http://www.pips.gr.jp/
元山さん

> ここでGOSUBで別のプログラムに飛んで
> 例外データを確認したいのですが
> たとえばV04の住所データのなかに
> 十和田市があるかどうかを確認するには
> LET X01=INSTR(1,V04,"十和田市");でX01<>0だったら十和田市が
> あるということだと思うのですが
> IF V03="185" AND (ここで一気に0以外だったらという記述
> が可能でしょうか?)THEN LET [X02,@ダミー]="青森県";
> というようにしたいのですが、
> 1行で治める書き方があるんでしょうか?
> どなたかおわかりでしたらアドバイスお願いします。

IF V04 = "=*十和田市*" THEN .....

ではだめなのかな?
あるいはMPUの定義表とか。

柏木@東京都

タイトルRe: INSTRの使い方での質問
記事No2237
投稿日: 2006/09/03(Sun) 23:13
投稿者高橋@千葉県
元山さん

> IF V03="185" AND (ここで一気に0以外だったらという記述
> が可能でしょうか?)THEN LET [X02,@ダミー]="青森県";
> というようにしたいのですが、
> 1行で治める書き方があるんでしょうか?

どの部分まで一行に納めたいか? ですが、次の記述で成功しましたよ。

IF MID$(V01,1,3)="185" AND [X02,X33]="=*十和田市*" THEN LET [X02,@ダミー ]="青森県";

なお、元山さん独自のデータ入力規則を考えると、元山さんが"青森県"
と書きこみたいデータは、必ず"十和田市"が先頭にあると想像します。
その場合は、"=十和田市*"とした方が、より厳密になると思います。

また、秋田県や岩手県などが前に来ているなら(3文字の県名)、"=???十和田市*" とすればいいと思います。

タイトルRe^2: INSTRの使い方での質問
記事No2238
投稿日: 2006/09/04(Mon) 06:58
投稿者高橋@千葉県
元山さん

> どの部分まで一行に納めたいか? ですが、次の記述で成功しましたよ。
>
> IF MID$(V01,1,3)="185" AND [X02,X33]="=*十和田市*" THEN LET [X02,@ダミー ]="青森県";

さらに、次のようにすることもできます。
IF V03="=185*" AND [X02,X33]="=*十和田市*" THEN LET [X02,@ダミー ]="青森県";

もう一段、次のようにすると、わずらわしい変数管理から逃れることができます。
IF [X02,@郵便番号 ]="=185*" AND [X02,X33]="=*十和田市*" THEN LET [X02,@ダミー ]="青森県";

思い切って、MPUを使えば、FOR-NETXTからも開放されます。
MPU;M;;@郵便番号 ="=185*" AND @住所 ="=*十和田市*";"青森県"=@ダミー ;;E;Y;

タイトルRe^3: 相模原市の郵便番号
記事No2227
投稿日: 2006/09/02(Sat) 08:56
投稿者元山+千葉県
>
> だったらDMの郵便集計作業なのでEXCELでやってもらうかですね。

> PIPSで1列追加するくらいなら、EXCELでやってもらったほうが
> 負担が軽くなりますね。

そうだ、EXCELのウィザードでこの問題がどうなっているのか?
ちゃんと処理でえきているのか?
それとも???

月曜か火曜に試してみましょう

元山より

タイトルRe^3: 相模原市の郵便番号
記事No2230
投稿日: 2006/09/02(Sat) 11:56
投稿者柏木@東京都
参照先http://www.pips.gr.jp/
元山さん

>>都道府県のコードだけでも1列追加して持たせられないのでしょうかね。
>>東京となら 13 とか。コードはこれに拠っています。
>>
>>http://www.hosei.ac.jp/toukei/shiryou/31cord_list.html

> この考えで郵便番号のバインダーをつくり、プログラムも
> 作成していました。
> PIPSのシステム全般の見直しになりますので、多大な労力がかかり
> これは出来ないのです。

でも、お分かりだと思うのですが、イレギュラーケースのルーチンを組
んで対処するというのは根本解決ではありません。都道府県絡みの処理
で新しいプログラムが必要になると、常にイレギュラーケースのルーチ
ンを組み込む必要があります。また、郵便番号の変更を常にチェックし
てイレギュラーケース処理用のマスターのメンテが必要になります。
一時的に多大な労力が必要でも都道府県名をデータベースで持たせてる
ようにすれば、将来のイレギュラーケースの処理の労力からは開放され
ます。
一時の苦労を取って将来の労力から開放されるか、将来の労力を我慢す
るか、の天秤ですね。

柏木@東京都

タイトルRe^4: 相模原市の郵便番号
記事No2247
投稿日: 2006/09/12(Tue) 16:31
投稿者元山@千葉県
高橋さん:柏木さん:ありがとう

本日、MPUの定義表で動作確認してみました。こちらのほうがすっきり
しますね。
例外データの条件をシンプルにしたところ26データありました。
ただ、プログラムでいやらしいことをしていまして、郵便と郵便2の列、
住所と住所2の列、どちらも指定可能なように変数でとっているのですね。

このあとMPUの定義表の項目列指定は変数にしたあと、CUで置換して
MPUの定義表を作成するという「荒技」(?)をかけるのですが、
これは私はすでにノウハウがあるので大丈夫でしょう。

> でも、お分かりだと思うのですが、イレギュラーケースのルーチンを組
> んで対処するというのは根本解決ではありません。都道府県絡みの処理
> で新しいプログラムが必要になると、常にイレギュラーケースのルーチ
> ンを組み込む必要があります。また、郵便番号の変更を常にチェックし
> てイレギュラーケース処理用のマスターのメンテが必要になります。
> 一時的に多大な労力が必要でも都道府県名をデータベースで持たせてる
> ようにすれば、将来のイレギュラーケースの処理の労力からは開放され
> ます。
> 一時の苦労を取って将来の労力から開放されるか、将来の労力を我慢す
> るか、の天秤ですね。

別の見方をしています。
「一時の苦労を取って将来の労力を温存する」ですね。
いいかえるとPIPSで修正する方法です。

PIPSを導入した時点から 「固定長」であるがゆえの弱点として認識して
いたのです。それをなんとかごまかすために市のあるデータは都道府県を
カットするというルールを作りまして、対応していました。

日本語PIPSの時は住所は38桁でした。入力する女性たちが38桁以上
のデータがあると、いちいち「どこを削ればいいのですか?」と聞いて
きます。正直なところこれがわずらわしかった。
こころのなかで自分で判断できないのかと毒づいて、でも顔では
「どれどれ」と見ると、確かにどこを削ればいいのやらと迷うケースが
ありました。
女性たちの気持も納得できました。

スーパーPIPSになって住所を40桁にしました。
これで「入力できません」というクレームは格段に減り、心理的にずい
ぶんと楽になり、スーパーPIPSはありがたいと思ったものです。

根本解決だとやはり[ACCESS」という選択肢がちらちらと頭をかすめて
しまうのです。
でも、PIPSでの複雑な処理のプログラムがあり、「軽率な判断」はした
くありません。納得したものからEXCEL/ACCESSの作業を取り入れています。

元山より