Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


4090 / 13644 ツリー ←次へ | 前へ→

【58495】一致検索と比較結果表示 makmak 08/10/28(火) 7:34 質問[未読]
【58496】Re:一致検索と比較結果表示 ひげくま 08/10/28(火) 8:49 回答[未読]

【58495】一致検索と比較結果表示
質問  makmak  - 08/10/28(火) 7:34 -

引用なし
パスワード
   初心者です。どうぞよろしくお願いいたします。
シート2つを比較して、新しいシートに比較結果を表示したいです。

シート1には
A   B   C   D   E  
a1  b1  c1  d1  e1
a2  b2  c2  d2  e2





シート2には
A   B   C   D   E   
a'1  b'1  c'1  d'1  e'1  
a'2  b'2  c'2  d'2  e'2  




<条件>
a1をa'1~a'nまで一致するか検索  bからdも同様
A、B が完全一致 C、D が±20以内の範囲で一致するとき 一致
それ以外 不一致 とします

<表示>
一致したときは横に並べて表示
不一致で相手のない欄は空白セル
K列に一致・不一致を表示

シート3
A   B   C   D   E   F   G   H   I   J   K
a1  b1  c1  d1  e1  a'1  b'1  c'1  d'1  e'1  一致
a2  b2  c2  d2  e2  (空白セル)         不一致
(空白セル)         a'2  b'2  c'2  d'2  e'2  不一致
(空白セル)         a'3  b'3  c'3  d'3  e'3  不一致
a3  b3  c3  d3  e3  a'4  b'4  c'4  d'4  e'4  一致





コードは見当つかず、全く書けていない状態です。

【58496】Re:一致検索と比較結果表示
回答  ひげくま  - 08/10/28(火) 8:49 -

引用なし
パスワード
   こんにちは。

コードの前に、アルゴリズムを考えましょう。

私なら、

----
(1) シート1のA列〜E列を、シート3のA列〜E列にコピー。
(2) シート2のA列〜E列を、シート3のF列〜K列にコピー。

これ以降は、シート3で作業。

(3) A列〜E列を、A列>B列>C列>D列の優先順位でソート。
(4) F列〜K列を、F列>G列>H列>I列の優先順位でソート。

1行目から順に、

(5) A列とF列、B列とG列、C列とH列、E列とJ列、を順に比較し、4つとも一致していたら、K列に「一致」。
  1つでも一致していなかったら、最初に一致しなかったところのデータを比較して、大きいほうに空白セル範囲(1行×5列)を挿入し、K列に「不一致」。

を繰り返し、A列もF列も空白になったら終了。
----

というようなアルゴリズムにします。

4090 / 13644 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free