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

約100個のEXCELファイルのデータをひとつにまとめて、前週のデータと突合して、差分(どれが増えて、どれが減ったか)を最終的にだしたいのですが、すべて違う人間が入力している為に、データの形がバラバラの為、どのようにすればいいのか思いつきません。

例えば
A列---B列--C列---D列--E列----F列
会社CD-会社名-支店CD-支店名-営業所CD-営業所名
というデータの構造になっていますが、
「エービーシー」という会社名が「ABC」、「エー・ビー・シ」と半角全角バラバラだったり、長い会社名が省略したりとかなりバラバラです。会社CDと会社名が間違っていたり、A,B,Cは合っているけれど、Dが微妙に違ったり、A,B,C,D,Eは合っているけどFが違ったりしています。

Accsessで最初は単純に不一致クエリウィザードを使って、言われるがままに操作したのですが、何かが足りないのか、結果が全く違っていました。
複数のフィールドではできないかと思い、"&"でつないで一つのフィールドにして、不一致クエリで今週と前週の差分と、前週と今週の差分を出したのですが、本来出したい差分データの他に単純な間違いデータが多量に出てしまい、そのデータを目で見比べて削除し、残ったデータを差分として出した為、非常に時間と手間がかかってしまいました。。。
残ったデータ(一度つなげてしまったもの)を分割する方法がわからず、一つずつ、ひたすらコピペという非効率的な作業を繰り返してしまいました。。。

頭がこんがらがってしまい、考えるよりひたすら手を動かせ状態に陥ってしまい、何も思いつきません(><)

うまく説明できませんが、よろしくお願いいたします。m(_ _)m

A 回答 (1件)

このクラスの課題になると、1つ2つの関数でやれば正解が出るというものでなく、XXミックスというか、色んな観点からのチェックを組み合わせて入れるしかないと思う。

まあごちゃ混ぜ。
VBAでのプログラムが必要でしょう。それで組んでも90数パーセントの達成になるでしょうが。
(1)ワイルドカードなどの応用を思いつく。
(2)別名ファイルを持ち、指摘するぐらいかな。
誤り・略称・慣用も含めて対応表を持つ。
誤り・不適当例が見つかるごとに、対応表の行数を増やす。
しばらく続ければ、追加はほとんど無くなる。
エイビイシイーABC
エービーシーーABC
株ABC-ABC株(前株跡株問題
先頭部の語で会社名をチェックし、後半の名前で置き換えたり、注意のため印字する。
ーー
この型の問題は、辞書に当たる、インテリジェンス・知識ベースにあたるものを充実して与えないと、実用にはならないと思うし、与えても後追い的にならざるを得ないものなので、100%はない。
しかし十分実用にはなる。
一致語の検索というプログラム面の奥の深い課題があるが。
(Googleなどではどうしているのだろう)
論理だけでは誤り・不適は指摘できるものは少ないと思う。
株)を株式会社に置き換えた経験などあり。得意先宛請求書などの
礼儀のため。
ーー
お勧めはソート法です。
名前データをユニークにし(重複排除し)、名前の順でソートし、紙に印刷して、じっくり見れば、変な会社名の書き方は自ずと浮かび上がります。内容的に同じ会社が、漢字、ひらがな・カタカナ・英字などの区画に分裂(飛び離れる)して出現しますが、そこだけ気をつけてチェックします。
作業時間も1000行ぐらいなら数分で終わります。経験から勧めです。
    • good
    • 0
この回答へのお礼

回答ありがとうございました。

お礼日時:2007/10/02 22:40

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