• 締切済み

excelで2つのシートを比較し、新しいシートへ

kagakusukiの回答

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.4

 同じシート内に重複するデータが存在している場合は、取り敢えずの話として、Sheet (1)のデータに関しては、Sheet (2)に重複するデータが存在していない場合にのみSheet (3)に表示し、Sheet (1)内に重複するデータが存在していてSheet (2)に重複するデータが存在していない場合には、重複していても構わずに全てSheet (3)に表示するものとし、Sheet (2)のデータに関しては、Sheet (1)、Sheet (2)の何れのシート内に重複するデータが存在していても、構わずに全てSheet (3)に表示するものとします。  又、Sheet (4)のA~D列を作業列として使用するものとします。  まず、Sheet (4)のA1セルに次の関数を入力して下さい。 =IF(AND(ISNUMBER(INDEX(Sheet (1)!$B:$B,ROW())),COUNTIFS(Sheet (2)!$A:$A,INDEX(Sheet (1)!$A:$A,ROW()),Sheet (2)!$B:$B,INDEX(Sheet (1)!$B:$B,ROW()))=0),INDEX(Sheet (1)!$B:$B,ROW())&"■"&INDEX(Sheet (1)!$A:$A,ROW()),"")  次に、Sheet (4)のB1セルに次の関数を入力して下さい。 =IF(ISNUMBER(INDEX(Sheet (2)!$B:$B,ROW())),INDEX(Sheet (2)!$B:$B,ROW())&"■"&INDEX(Sheet (2)!$A:$A,ROW()),"")  次に、Sheet (4)のC1セルに次の関数を入力して下さい。 =IF($A1="","",COUNTIF(A:B,"<"&$A1)+COUNTIF($A$1:$A1,$A1))  次に、Sheet (4)のD1セルに次の関数を入力して下さい。 =IF($B1="","",COUNTIF(A:B,"<"&$B1)+COUNTIF($A:$A,$B1)+COUNTIF($B$1:$B1,$B1))  次に、Sheet (4)のA1~D1の範囲をコピーして、同じ列の2行目以下に貼り付けて下さい。  次に、Sheet (3)のA2セルに次の関数を入力して下さい。 =IF(ROWS($2:2)>COUNT(Sheet (4)!$C:$D),"",IF(COUNTIF(Sheet (4)!$C:$C,ROWS($2:2)),INDEX(Sheet (1)!A:A,MATCH(ROWS($2:2),Sheet (4)!$C:$C,0)),INDEX(Sheet (2)!A:A,MATCH(ROWS($2:2),Sheet (4)!$D:$D,0))))  次に、Sheet (3)のA2セルをコピーして、Sheet (3)の表内の2行目以下の全てのセル範囲に貼り付けて下さい。  以上です。

icecream1979
質問者

補足

丁寧な語説明ありがとうございます。 シート1でBが重複している場合は、Aが重複している可能性はありません。 型番が重複していても同じシート内であれば地域が違う。というようになっています。 シート1でBが重複していて、Aが重複していないデータがあった場合で(○、Xとします)、シート2でシート1の○重複していた場合には、シート3にはシート1のXとシート2の○がシート3に表示されてほしいです。 いくつか回答をいただいており、現在一つずつトライさせていただいております。 見慣れない関数もあり、一つずつ分解して何をしようとしているのかを調べながらのため、回答をいただいた後にさらに質問。という形になることもあると思いますが、どうぞよろしくお願いいたします。

関連するQ&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です。 よろしくお願いいたします。

  • エクセルでシート間の比較をしたいのですが。。。

    Excel2000を使用しています。 2つのシート間で同一データの有無の比較がしたいのです。 仮に比較したいものをシートA・Bとします。 それぞれ項目として、大字・小字・地番があり、それが同じ時に同一データと判断します。 件数にすると4000~5000件ぐらいあり、関数でやってみたのですが、うまくいきません。 比較で結果としては、下記の3パターンがあります。 1)AとBに有る。 2)Aに有って、Bに無い。 3)Bに有って、Aに無い。 希望としては、新たなシートに 2)と 3)のデータのみ抽出して、そのデータが 2)なのか 3)なのかわかるようにしたいのです。宜しくお願いします。

  • エクセルのシートの比較

    ご教示ください。 以下のAとBのシート(別ファイルでも可)の各行を比較して、AとBのシートのD列に結果を表示させるにはどのような関数を使えばよいでしょうか? (”|”はセルの区切りです。D列の表示はシートの何行目かが分かれば良く、例示のものでなくとも構いません) シートA |犬|いぬ|dog| |猫|ねこ|cat| |鳥|とり|bird| シートB |猿|さる|monkey| |鳥|とり|bird| |猫|ねこ|kat| ↓比較後 シートA |犬|いぬ|dog|シートBなし| |猫|ねこ|cat|シートBなし| |鳥|とり|bird|シートBライン2| シートB |猿|さる|monkey|シートAなし| |鳥|とり|bird|シートAライン3| |猫|ねこ|kat|シートAなし| 以上よろしくお願いいたします。

  • エクセルの2つのシートを比較

    エクセルで2つのシートのA列に値が入っています。 それぞれのA列を比較して同じ値であればシート1のB列をコピーしてシート2のB列に貼付。 ということはVBAで可能でしょうか? ※行番地はばらばらです。 ※A列の値がダブルことはありません。 例) シート1       シート2 A列   B列     A列   B列 111   あああ    111 222   いいい    333 333   ううう    555 444   えええ    444 555   おおお    666 結果 シート1        シート2 A列   B列      A列   B列 111   あああ    111   あああ 222   いいい    333   ううう 333   ううう    555   おおお 444   えええ    444   えええ 555   おおお    666 よろしくお願いします。

  • エクセルのデータ比較

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

  • EXCEL ワークシート間のデータ比較

    EXCELのワークシート間のデータ比較について教えて下さい。  A.XLSとBワークシート(新)とCワークシート(旧)の特定の列のデータを比較したいと思っています。  Bワークシート(新)とCワークシート(旧)の比較に関して Bワークシート(新)には、Cワークシート(旧)のデータと比較すると 一致するもの、追加されたもの、削除されたものが含まれています。  Bワークシート(新)の値をCワークシート(旧)の値を全て比較すると頭では分かっているのですが、関数のみの機能で対応できませんか?

  • エクセルで異なるシートのデータを比較したり、コピーしたりしたい

    お世話になっております。 エクセルとはほとんど初対面といった状態で、四苦八苦している状況です。 今やりたいことは、下記のようなことです。 実現方法やアドバイスなど、何でもいいので教えてください。 宜しくお願いします。 シートA,シートBがある。 シートAは今回取込んだデータ。 シートBはこれまで取込んだ累計データ。 2つのシートの項目は同じで、複数列ある。 その中にキーとなる列がある。 (例:項目番号,項目名称,説明,etc 項目番号がキー) (1)まず、シートAのデータを一旦消去し、CSVファイルを読み込む。 (2)次に、シートBの既存のデータとシートAのデータを比較する。  シートAにあってシートBにないデータは追加する。  シートAにあってシートBにもあるデータは上書きする。 (2)の方法が分りません。 シートAにあるデータがシートBにあるのかどうかと言うところはAdvancedFilterと言う関数を使って出来たのですが、追加/上書きと言うところが出来ません。 AdvancedFilter以外にもっと使いやすい関数があるのでしょうか? それとも根本的にもっと違ったやり方があるのでしょうか? ちなみに、別のデータベースを使うとかは不可です。 エクセルでやらないといけない仕様なのです。 宜しくお願いします。

  • エクセルでシートの(結合)マージ

    はじめて質問をさせていただきます。 エクセルのシートを(結合)マージをしたいと思います。 たとえばシート1とシート2共にあるデータ、シート1のみのデータ、シート2のみのデータを区別したいのですが、そしてなおかつできればその結果をシート3に表示する。ということができればと思います。 たとえば、シート1・2(A列に比較項目 B列以降は他の項目)とし シート1           シート2 A123,12345,2345       A123,12345,2345 A234,23456,3456      A345,34567,4567 A345,34567,4567       A456,45678,5678 これをシート3に A123,12345,2345,A123,12345,2345 (両方) A234,23456,3456, , , (シート1のみ) A345,34567,4567,A345,34567,4567 (両方) , , ,A456,45678,5678 (シート2のみ) のようにしたいと思います。皆様のお知恵をお借りしたいと思います。 よろしくお願いいたします。

  • EXCEL マクロ シート 比較

    EXCEL マクロ でシート間のデーターをシート2を基本に比較してシート3へ結果を出す 新規・削除と表示する。 シート1       シート2            シート3 氏名  コード    氏名   コード      氏名   コード A列   B列      A     B        A     B    C 山川   1001    山川   1001      1002   谷    削除 谷    1002    空     1003      1005   海    新規   空    1003    海     1005 田    1006    田     1006 まことにお忙しいところよろしくお願いいたします。

  • EXCEL(2枚のSheetの比較・抽出)

    iwao32と申します。 EXCELについてまた教えてください。(まだまだど素人で、基本的な質問で申し訳ありません。) 以下の例で示します。 Sheet1                        Sheet2 A列     B列     C列           A列 1       10      a            2 2       20      b            4 3       30      c            5 4       40      d 5       50      e という2枚のSheetがあるとき、Sheet1のA列とSheet2のA列を比較して、Sheet1の中で、Sheet2のA列にあるものだけ、Sheet3に、 Sheet3 A列     B列     C列 2       20      b 4       40      d 5       50      e というものを作りたいのですが、やり方をお教えください。 よろしくお願いいたします。