• ベストアンサー

エクセルのデータ比較

シート1のA行のデータとB行のデータをすべて比較して、同じデータがあれば C列にそのデータを書き出したいのですが、どうすればよろしいのでしょうか。 行数(比較するデータの数)はそれぞれ数千行あります。 例(a~hはデータです) シート1     A列 B列 a c b d  c f d h の場合、比較した結果をC列に次のように表示させます。 A列 B列  C列 a c c b   d d c f d h どなたかよろしくご教示くださるよう、お願いします。

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

  • ベストアンサー
  • ya_kar
  • ベストアンサー率46% (6/13)
回答No.1

C列に以下の関数をコピーしてみてください (*は各行の番号になるように) =IF(ISNA(VLOOKUP(B*,A:A,1,FALSE)),"",VLOOKUP(B*,A:A,1,FALSE)) VLOOKUP:B*と同じ数値をA:Aの中から探し、値を入れる関数(値がない場合は#N/Aを返す) ISNA:#N/Aを判定する関数

nasir
質問者

お礼

すばやいご回答、ありがとうございました! バッチリ稼動を確認しました。 とても助かりました。本当にありがとうございます。

その他の回答 (2)

  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

A列には、重複するようなデータは存在しない(B列の値が複数見つかることはない)と考えて良いのでしょうか? もし、重複していても見つかったB列の値を表示すればいいのでしょうか? もしそうなら、 C列に次のような感じで式を入れてコピーすればいいと思います C1 =IF(COUNTIF($A$1:$A$4,B1)>0,B1,"")

nasir
質問者

お礼

言葉が足りず、申しわけありません。 A列には、重複するデータはありません。 仮にあった、としてもB列の値を表示したいので、 教えていただいた式で大丈夫です。 ありがとうございました!

  • cucsna
  • ベストアンサー率23% (12/51)
回答No.2

多分この方法でもできると思います。 C1のセルに、 「=IF(COUNTIF(A:A,B1)>0,B1,"")」 と入力して、 C2以下のセルに数式をコピーする。 式の意味は、 A行(A:A)にB1と同じ値が何件あるかを、COUNTIFで確認して、 0件より大きい(存在する)場合は、B1の値を表示。 存在しない場合はブランクとする。 ということになると思います。

nasir
質問者

お礼

ありがとうございます。この式でも可能でした。 色々な方法があるのですね。勉強になります。