• ベストアンサー

エクセルのデータ比較

シート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 どなたかよろしくご教示くださるよう、お願いします。

  • nasir
  • お礼率100% (3/3)

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

  • ベストアンサー
  • 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
質問者

お礼

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

関連するQ&A

  • Excelデータ比較

    エクセルにおいて、sheet2のA列、B列、C列をsheet1のA列、B列、C列と比較して、一致した場合sheet2のD列に書かれている納入先企業名を下記のように自動入力したいのですが、どうやってsheet2のD列に関数を組めばよいのか分からないので教えてください! 【sheet1】 A列 B列 C列 D列 1行 001 AAAA 部品1 A社 2行 002 BBBB 部品2 B社 3行 003 CCCC 部品3 C社 4行 004 DDDD 部品4 D社 5行 005 EEEE 部品5 E社 6行 006 FFFF 部品6 F社 7行 007 GGGG 部品7 G社 【sheet2】 A列 B列 C列 D列←この列に取引先企業が入るようにする 1行 001 AAAA 部品1 A社←sheet1にあるのでA社と入る 2行 008 HHHH 部品8 #N/A←sheet1にないので#N/Aとなる 3行 004 DDDD 部品4 D社 4行 009 IIII 部品9 #N/A 5行 005 EEEE 部品5 E社 6行 002 BBBB 部品2 B社 7行 010 HHHH 部品10 #N/A

  • 指定した数だけデータをコピペする方法

    VBAの参考例を教えてください。 <シート1> A列に1から順に数字が入力されており、B列からE列まで数値のデータが入力されています。F列にはB列からE列にデータが入力されているセルの数をカウントした関数が入力されています。 <シート2> シート1のB~Eに入力されたデータが縦に入れ替えの上A列にコピぺされています。 ここで、シート1のA列の数値をコピーし、シート1F列に示されたデータ数分だけ、シート2のF列に縦に順々にペーストしていく方法をご教示ください。シート1のA列に入力された数値が最後の行にくるまでこれを繰り返します。 シート1 A B C D E F 1  a b c d 4 2  e d f   3 3  d e     2 ・ ・ ・ シート2 A B C D E F a         1 b         1 c         1 d         1 e         2 d         2 f          2 d         3 e         3 当方、VBAは全くの初心者です。急遽仕事で必要になってしまい、質問しました。 どうぞよろしくお願いします。

  • VBAでのデータ転記処理

    下記の処理をVBAで作成したいのですが…。 Book "aaa" の "Sheet1" A |B |C |D |E |F |G |H |I |J |K 1 あ|い|う|え|お|か|き|く|け|こ|さ 2 た|ち|つ|て|と|な|に|ぬ|ね|の|は|ひ|ふ|へ 3 ま|み|む|め|も|や|ゆ|よ これをBook "bbb" の "Sheet1" に A|B|C|D|E 1 あ|い|う|え|お 2 か|き|く 3 け|こ|さ 4 5 た|ち|つ|て|と 6 な|に|ぬ 7 ね|の|は 8 ひ|ふ|へ 9 10 ま|み|む|め|も 11 や|ゆ|よ と言う風にデータを転記したいのです。 Book "aaa" の Sheet "Sheet1"のA~E列までは必ずデータが入っていますが F列以降は、データがある場合と無い場合があり データがなければ、そこのセル(行)は詰める。 さらに、Book "aaa" の1行を1セットとして、Book "bbb" で1セット単位で、空白行を設けたいのです。 上記例のように、1セットの行数は固定ではありません。 Book "aaa" の Sheet "Sheet1"のデータ行数は大量に(1000行以上)あります。 わかりにくいと思いますが、どなたかよろしく御願いします。

  • エクセルでの比較データコピー

    エクセル2010でマクロを組んでデータ処理を簡単に行いたいのですが、 よくわからないので、教えてください! シート2のC列とシート1のD列を比較し、同じ文字列があった場合に シート2のE列をシート1のF列にコピーする。 ただし、シート2のE列に〇が入っている場合は、シート2のG列をシート1のF列にコピーする。 どなたかご教示いただけませんか? よろしくお願いします!

  • 【エクセル】シートが分かれているデータを集める

    あるブックにシートが10シートあるとします。 これらのシートの同じ列を、別のシートにまとめたいです。 列には60行くらいのデータがあり、それぞれのシートの行数は同じです。 まとめるシートは、    A列        B列      C列        D列   シート1のA列、シート2のA列、シート3のA列、シート3のA列・・・ のようにしたいです。 関数などを試してみましたが、列設定ではなかなかうまくいかず、 すっきりと持ってくることができません。 知恵をお貸しいただけないでしょうか。 よろしくお願いいたします。

  • エクセル関数(シートの比較)を教えて下さい

    A列にある部品の型番が入っており、同じ行のB列以降に詳細内容が入っています。 B列以降の数は型番によってバラバラです。 Sheet1,2で同じ型番同士で比較し、B列以降の詳細内容が異なるものを Sheet3に書き出したいのです。 たとえば、 Sheet1の内容が、 A列  B列   C列   D列   E列 5001  A1   B5    F3   Z4 5002  E6   C2    A7 5003  B9   M8 Sheet2の内容が、 5001  A1   B5     5002  E6   C1    A6 5004  B9   M8 結果として、 5001  F3   Z4     5002  C1   A6 5003  B9   M8 5004  B9   M8 このような場合、どうすればいいのでしょうか。 なるべくなら関数がいいのですが、無理ならばVBAでもかまいません。 Excel2000です。 よろしくお願いいたします。

  • エクセル:複数セルからの参照

    お世話になります。 A,B,C列にデータが入っています。 D,E,F列に参照のためのデータがあります。 A,B,C列はそれぞれD,E,F列に対応しています。 A,B,C列と同じ並びのデータが入っている行をD,E,F列から探し、その隣のG列の値をH列に返す。 D,E,F列の並びが重複する行はありません。 A,D列は場所の名前、B,C,E,F列には数字が入っている。 例) A1に事務室 B1に20 C1に3 が入っているとする。 D/E/F列が 事務室/20/3 の並びになっているのが10行目の場合、H1にG10のセルの値を返す。 この場合、H列にはどんな計算式を入れておけばよいのでしょうか? A,B,C列と同じ並びのデータがD,E,F列で見つからない場合は空白をH列に返す。 ちなみにD/E/F列が 事務室/20/3 の並びになっている行は10行目しかないです。 よろしくお願いします。

  • 下記別シートがあり、比較して異なる行を判別する方法を教えてください。

    下記別シートがあり、比較して異なる行を判別する方法を教えてください。 (下記例では後者シートにおいて、3行目と4行目が該当します) ・判別結果表示は、後者シート上に該当する行に地色を付けるなど、フィルタで該当行をまとめられる様にできれば目印は何でも結構です。 ・後者シートは前者と比較して行(レコード)が減ったり、値が無くなることはありません。 前者に足された結果が後者になる A列 B列 C列 D列 1 a A 2 b 4 d D 5 e E A列 B列 C列 D列 1 a A 2 b 3 c C 4 d D F 5 e E

  • 数値比較と並べ替え

    エクセルシート(またはカンマ区切りのCSVテキスト)のA~Dに名前1列と数値3列が入っています。 これとは別にE~Gに比較対象データが3列あります。 3列で1セットで、BとE、CとF、DとGがそれぞれ対応しています。 E~Gの値をB~Dの値とそれぞれ比較して、最も近いセットを探し出し、(A~DとE~Gを)同行に並べ替える必要があります。DとEの間は空いていてもかまいません。 またこれとは別に、E~G列列の比較対象値セットがB~D列のどのセットにも適合しない(しきい値を超えた)場合は一番下の行以下に順に配列する必要があります。 すべての数値は -5000.000~5000.000 (最大)で、しきい値は1にしたいと思っています。 データ数は最大で150行程度です。ただしAからDまでのデータセットと、EからGまでのデータセットが同じ行数とは限りません。 簡単にいえば、B±1かつ、C±1、D±1の範囲にあるデータセットを探して並び替えたいと言うことです。 私が今考えているのは、BとE、CとF、DとGの各値はほとんど一緒なのでまず差分を求めて一番差が少ないセットの組み合わせを求めればこれら機能を実現できそうな気がします。 ただ、これを実現するためのスクリプトが、良くわかりません。 最も簡単に書けそうなのはVBAでしょうか、JAVAでしょうか。そういったマクロを作れそうな参考サイトなど何でもいいので、ご教授いただけると幸いです。

  • エクセルでデータを反映させたい。

    エクセルで下記のことをしたいのですが、どのような方法が ありますか?   A B C D E (列) 1 1  a b c d 2 2  e f g h 3 3  i j k l (行) ・他シートにA1の「1」を入れると、B~E列のデータが反映する。 (A列の数字が個人を指すもので、それを選択すると付随するデータ(B~E)も反映するということなんですが・・・。 説明が下手で申し訳ないのですが、どなたか教えて下さい。

専門家に質問してみよう