• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:エクセル 2枚のシートの違いを抽出したい)

エクセルの2枚のシートの違いを抽出する方法

このQ&Aのポイント
  • エクセルのsheet1とsheet2に各2000行ほどの表があります。それぞれのシートのデータの違いを抽出する方法を教えてください。
  • sheet1とsheet2には同じ商品の情報がありますが、特価の値が異なります。特価の値が異なる行のみ抽出して新しいシートにまとめたいです。
  • 表の内容を比較して特価の値が異なる行のみを抽出する方法を教えてください。

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

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

 今仮に、Sheet4のA列とB列を作業列として使用するものとします。  まず、Sheet4のA2セルに次の関数を入力して下さい。 =IF(INDEX(Sheet1!$A:$A,ROW())="","",IF(COUNTIFS(Sheet2!$A:$A,INDEX(Sheet1!$A:$A,ROW()),Sheet2!$B:$B,INDEX(Sheet1!$B:$B,ROW()),Sheet2!$C:$C,INDEX(Sheet1!$C:$C,ROW()),Sheet2!$D:$D,"<>"&INDEX(Sheet1!$D:$D,ROW()),Sheet2!$E:$E,INDEX(Sheet1!$E:$E,ROW())),10000000+ROW(),""))  次に、Sheet4のB2セルに次の関数を入力して下さい。 =IF(INDEX(Sheet2!$A:$A,ROW())="","",IF(COUNTIFS(Sheet1!$A:$A,INDEX(Sheet2!$A:$A,ROW()),Sheet1!$B:$B,INDEX(Sheet2!$B:$B,ROW()),Sheet1!$C:$C,INDEX(Sheet2!$C:$C,ROW()),Sheet1!$D:$D,"<>"&INDEX(Sheet2!$D:$D,ROW()),Sheet1!$E:$E,INDEX(Sheet2!$E:$E,ROW())),20000000+ROW(),""))  次に、Sheet4のA2~B2の範囲をコピーして、同じ列の3行目以下に貼り付けて下さい。  次に、Sheet3のA2セルに次の関数を入力して下さい。 =IF(ROWS($2:2)>COUNT(Sheet4!$A:$B),"",INDEX(CHOOSE(INT(SMALL(Sheet4!$A:$B,ROWS($2:2))/10000000),Sheet1!$A:$E,Sheet2!$A:$E),MOD(SMALL(Sheet4!$A:$B,ROWS($2:2)),10000000),COLUMNS($A:A)))  次に、Sheet3のA2セルをコピーして、Sheet3のB2~E2の範囲に貼り付けて下さい。  次に、Sheet3のA2~E2の範囲をコピーして、同じ列の3行目以下に貼り付けて下さい。  これで、<D列のみ違いがある>データのみが、Sheet3に抽出されます。

noname#230945
質問者

お礼

丁寧な回答ありがとうございました。 sheet1~4までも回答に載せていただき、非常に助かりました。 仕事時間の短縮にもつながりそうです。 本当にお世話になりました。

その他の回答 (3)

回答No.4

Sheet2のデータをSheet1にマッチングして、 マッチングした結果を別シートに表示することですね。 アドインを使って、Excelでデータのマッチングができます。 データ1、データ2を選択して、マッチング条件でA,B、C、D列を選択すれば 一括でできます。

noname#230945
質問者

お礼

回答ありがとうございました。 色々な方法があるのですね。勉強になりました。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

No1の回答の補足です。 No1の回答はすべての列が一致するデータも抽出してしまいますので、D列だけ一致しないデータを抽出したいなら以下のような関数が簡単です(Excel2007以降のバージョン)。 Sheet1のF列(F2セル)に以下の式を入力してオートフィルコピーしてください。 この列で「1」が返る行が該当データですので、オートフィルタでこの行データを絞り込んで、新規シートにコピー貼り付けしてください。 =COUNTIFS(Sheet2!A:A,A2,Sheet2!B:B,B2,Sheet2!C:C,C2,Sheet2!D:D,"<>"&D2,Sheet2!E:E,E2)

noname#230945
質問者

お礼

No.1~2と丁寧な回答、ありがとうございました。 補足も、とてもわかりやすかったです。 お世話になりました。

  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.1

Excelなら以下のような一般機能を利用した操作でご希望のデータを抽出することができます。 リストのD列とE列を入れ替え(列範囲を選択してShiftキーを押しながらドラッグ)、A,B,C,E,Dれ鵜の順に並べ替えます。 次に項目を含めたSheet1のA~D列のデータ範囲を選択して、データタブの「詳細設定」をクリックして、この範囲がリスト範囲に登録されていることを確認して、検索条件範囲にSheet2のA~D列のデータ範囲を選択し「OK」すれば、必要なデータだけが抽出されていますので、その範囲を選択して別シートにコピーします。 最後にD列とE列を入れ替えれば完成です。 #Excelなら関数(配列数式)を使えば、ご希望のデータを表示することができますが、表示データ数が多くなるとシートの動きが重くなるのであまりお勧めできません。

noname#230945
質問者

お礼

No.1~2と丁寧な回答、ありがとうございました。 補足も、とてもわかりやすかったです。 お世話になりました。

関連するQ&A