マスターと、別ファイルを比較して条件がNo.29036
hidelunker さん 10/10/11 10:39
 
マスターが200,000件あります。(以下、Aとします)
その中身は、
2    XX○○帳簿  00000001    1    平22  100
2    XX○○帳簿  00000002    1    平22  200
2    XX○○帳簿  00000003    1    平22  200
・・・
2    XX○○帳簿  00200000    1    平22  100
です。

一方、
別データ(以下、Bとします)として、
00000002
00000100
00000777
・・・
00190000
があります。

やりたいことは、
Aの左から3番目の数字と、
Bが一致した、
Aの各行の中身はそのままの、
以下のようなテキストデータを作りたいです。

2    XX○○台帳  00000002    1    平22  200
2    XX○○台帳  00000100    1    平22  100
2    XX○○台帳  00000777    1    平22  200
・・・
2    XX○○台帳  00190000    1    平22  100

Aのレコード長は不定ですが、
比較させる数字までは桁は変わりません。

Bが少ない場合、
目視で確認して
Aを秀丸で開いて、
Aから不要行を削除していたのですが、
Bが10,000件ともなると、
体力的にきつく、正確さに欠けるので・・・。

何か良い方法はないでしょうか。
よろしくお願い致します。



 

[ ]
RE:29036 マスターと、別ファイルを比較しNo.29037
kazmint さん 10/10/11 10:54
 
何かエクセルを使うことができない事情があるのでしょうか。

[ ]
RE:29036 マスターと、別ファイルを比較しNo.29038
秀まるお2 さん 10/10/11 11:16
 
 マクロで出来るとは思います。

 AとBの2つのファイルを開いて、Aのファイル上で、例えば以下のマクロを実
行するとか。

Loop:
    $s = gettext( 17, y, 17 + 8, y );
    if( $s == "" ) {
        endmacro;
    }
    nexthidemaru;
    gofiletop;
    searchdown2 $s, word;
    #hit = result;
    nexthidemaru;
    if( #hit == 0 ) {
        question $s + " ... 見つからないので削除しますか?";
        if( result == yes ) {
            deleteline;
        } else {
            endmacro;
        }
    } else {
        down;
    }
    golinetop2;
    goto Loop;

[ ]
RE:29038 マスターと、別ファイルを比較しNo.29040
hidelunker さん 10/10/11 12:21
 
>kazmint様
Bにより抽出したAを、別システムへ渡すので、
Aのレコードの中身は全く変えたくない、という事情があります。

>秀まるお2様
うまく出来ました!!
とりあえずAを1,000件、Bを5件位でやってみました。

また、quesution〜削除しますか?"";
の文だけ削除すれば、
マクロ実行後放っておけるので、
作業時間の相当な短縮になります。

明日の仕事の段取りが、
かなり楽になりました!

早急なご回答、
本当に有難うございました!!



> マクロで出来るとは思います。
≪全文引用されていたのでコミュニテックス会議室システムが引用部分を省略処理し
ました。≫
>    goto Loop;

[ ]