• ベストアンサー

EXCELエクセルで、複数の文字列で連続した検索をする方法

データの比較、検索に関する質問です。 どうぞよろしく願い致します。 2種類のデータがあり、 列Aはメールを送信する顧客のメールアドレスのリスト、 列Bはメールを送信してはいけないメールアドレスのリストです。 列Aに列Bの各データで検索をかけ、 列Aの中に列Bのデータが含まれていないか(=送ってはいけないアドレスが含まれていないか) を調べたいのです。 つまり、 列Bの1行目の文字列で列Aを検索 ↓ 列Bの2行目の文字列で列Aを検索 ↓ 列Bの3行目の文字列で列Aを検索 ・ ・ ・ このようなことを自動化したいのですが、 方法はないでしょうか? WEB上を検索したのですが、欲しい情報は見つかりませんでした。 初歩的なマクロは理解できます。 どなかたご教授頂ければ幸いです。

質問者が選んだベストアンサー

  • ベストアンサー
noname#210617
noname#210617
回答No.1

列Aと列Bをそれぞれソートしておいて 列Cの1行目に =IF(B1=VLOOKUP(B1,A:A,1,TRUE),"重複発見","") とか =MATCH(B1,A:A,1) なら何行目にあるかとか =COUNTIF(A:A,B1) ならいくつあるかとか 入れて下へフィルする。 後は考えて。

javathehatt
質問者

お礼

=IF(B1=VLOOKUP(B1,A:A,1,TRUE),"重複発見","") で試してみたところ、上手くいきました。 ありがとうございました。

その他の回答 (1)

  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.2

この質問は検索が逆ではありませんか A列の値でB列を検索して、合致するものがあればNG(削除対象)になるのではないでしょうか 1行目からデータがあるならC1に =IF(ISNA(MATCH(A1,$B$1:$B$100,0)),"OK","NG") と入力して、C1を下にA列の行数分コピー。 C列がNGとなるA列のデータが「送ってはいけないアドレス」です

javathehatt
質問者

お礼

逆ですかね? 確かにメールを送るというプロセスを考えると、 「送信するメールアドレス」で 「送ってはいけないアドレス」のリストを検索する という形が正しい気がします。 御指南頂いた =IF(ISNA(MATCH(A1,$B$1:$B$100,0)),"OK","NG") で問題は解決しました。 ありがとうございました。