• 締切済み

条件が多数のエクセルデータマッチング

似たような質問探したのですが、不明のため質問します。 エクセルVBAで下記のマクロの作成したいのです。 ファイル1:aaa.XLS ・・・集計するデータ ファイル2:bbb.XLS ・・・マッチング判定のリスト 二つ用意します。 ファイル1にあるB列のデータ(文字)、ファイル2にA列にあるデータ(文字)が一致した場合、一致した行にあるファイル2のB列にある文字を一致したファイル1のS列に表示させるマクロの作成を考えてます。 ただそのファイル2のマッチング判定が100個あり、100個それぞれとのマッチングを考えてます。 つまりファイル2の001~100の通りのマッチングをするマクロ(プログラム)です。

みんなの回答

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

色々質問に書いているが、ファイル1とファイル2が 1対1 1対多 多対1 多対多 のどれか、が重要で、マッチングは (1)ファイル1のB列、ファイル2のA列をソートしておく。 (2)マッチングのロジックを使う。そこで、本件は1対多らしい。 >001~100の通りのマッチングをするマクロ これは何か勘違いがあると思う。マッチングのロジックという、 情報処理試験にも、アルゴリズムとフローチャートの健ででていた 処理の流れをご存知かな。 http://dospara.okwave.jp/qa3419667.html に私のものの他の例が載っている。 ーー 文章化すると スイッチ1をON=>両方ファイル読む設定 (1)ファイル1を1行読む スイッチ1ONか、ONのとき(2)へ、OFFの時(3)へ (2)ファイル2を1行読む スイッチ1OFF (3)両キーを比較=>(4)(5)(6)の3通りあり (4)等しい場合 メイン処理(文字列の連結?) 繰り返しのための行き先に3通りあり Aスイッチ1ONに「して(1)へ BスイッチオOFFにして(1)へ CスイッチIFFにして(2)へ 処理によって異なる。1対多はCが多い。 (5)ファイル1Key<ファイル2Key     (1)へ行く(キーの小さいほうを採りに行くということ) (6)ファイル1Key>ファイル2Key     (2)へ行く(キーの小さいほうを採りに行くということ) ーーー 初めての方には難しいかも知れないが、100回ずつ比較を繰り返さないことを考えるなら、上記のようなのが能率が良い。

bbbccd
質問者

お礼

さっそくの回答ありがとうございました。 考え方が大分理解できてきました。 ちょっと説明難しいのですが、 具体的に言うと多対多になります。 ファイル2に    A  B 1  01 Aグループ 2  02 Bグループ 3  03 Cグループ ・・・ 100  となってまして、 ファイル1B列に ファイル2A列とマッチングさせ それぞれマッチングしたら ファイル2のB列のデータをファイル1のS列へ書き込みとしたいです。    B    S 1  03  Cグループ 2  01  Aグループ 3  02  Bグループ としたいのです。 再度ご教授頂けたら幸いです。

関連するQ&A