• 締切済み

データの不一致の出し方について

約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

みんなの回答

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.1

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

sasasa76
質問者

お礼

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

関連するQ&A