• ベストアンサー

Excel「シートの内容比較」方法を教えて下さい!

Excelのシート1とシート3の内容を比較したいです。 シート1は現状、シート3は昨年度の内容。 Aの列に「no.」があり、そのナンバー毎の行の内容を比較するのですが、 ナンバーが多数です・・・。 過去から現状に変わったところを知りたいのですが、 私のチェックでは「漏れ」が有りそうなので、ぜひ、Excelの能力を借りたいです。 方法をご存知の方、教えてください。どうぞよろしくお願いします。

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

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

 ナンバーの中で、前年までは使われていたが、今年からは使われなくなったものがある場合などには、Sheet1とSheet3でナンバーが入力されている行がずれてしまう事が考えられます。  以下の方法は、ナンバーの並んでいる順番がSheet1とSheet3で全く異なっている場合でも有効な方法です。 【方法その1】  条件付き書式を使用して、Sheet1とSheet3の間で、「同じナンバーでありながらデータが異なっている箇所」と「片方のシートにしか存在していないナンバーの行」のセルの色を変える方法です。  今仮に、Sheet1やSheet3のA列~D列にデータが入力されていて、2行目には「No.」等の項目名が入力されていて、実際のデータは3行目以下に入力されているものとします。  その場合、以下の様な操作を行って、Sheet1及びSheet3のA列~D列の3行目以下に条件付き書式を設定して下さい。 Sheet1のA3セルを選択   ↓ Excelウィンドウの[ホーム]タブをクリック   ↓ 現れた「スタイル」グループの中にある[条件付き書式]ボタンをクリック   ↓ 現れた選択肢の中にある[ルールの管理]をクリック   ↓ 現れた「条件付き書式ルールの管理」ダイアログボックスの中にある[新規ルール]ボタンをクリック   ↓ 現れた「新しい書式ルール」ダイアログボックスの「ルールの種類を選択して下さい」欄の中にある[数式を使用して、書式設定するセルを決定]をクリック   ↓ 現れた「次の数式を満たす場合に値を書式設定」欄の中に =AND(A3<>"",ISERROR(1/(A3=VLOOKUP(INDEX($A:$A,ROW()),Sheet3!$A:A,COLUMNS($A:A),FALSE)))) と入力   ↓ 「新しい書式ルール」ダイアログボックスの[書式]ボタンをクリック   ↓ 現れた「セルの書式設定」ダイアログボックスの[塗りつぶし]タブをクリック   ↓ 現れた背景色のサンプルの中にある赤色の四角形をクリック   ↓ 「セルの書式設定」ダイアログボックスの[OK]ボタンをクリック   ↓ 「新しい書式ルール」ダイアログボックスの[OK]ボタンをクリック   ↓ 「条件付き書式ルールの管理」ダイアログボックスの「適用先」欄をクリック   ↓ Sheet1のA列~D列の3行目以下のセル範囲(表のデータ入力欄の全て)をまとめて範囲選択   ↓ 「条件付き書式ルールの管理」ダイアログボックスの[適用]ボタンをクリック   ↓ 「条件付き書式ルールの管理」ダイアログボックスの[OK]ボタンをクリック   ↓ Sheet3のA3セルを選択   ↓ 「スタイル」グループの中にある[条件付き書式]ボタンをクリック   ↓ 現れた選択肢の中にある[ルールの管理]をクリック   ↓ 現れた「条件付き書式ルールの管理」ダイアログボックスの中にある[新規ルール]ボタンをクリック   ↓ 現れた「新しい書式ルール」ダイアログボックスの「ルールの種類を選択して下さい」欄の中にある[数式を使用して、書式設定するセルを決定]をクリック   ↓ 現れた「次の数式を満たす場合に値を書式設定」欄の中に =AND(A3<>"",ISERROR(1/(A3=VLOOKUP(INDEX($A:$A,ROW()),Sheet1!$A:A,COLUMNS($A:A),FALSE)))) と入力   ↓ 「新しい書式ルール」ダイアログボックスの[書式]ボタンをクリック   ↓ 現れた「セルの書式設定」ダイアログボックスの[塗りつぶし]タブをクリック   ↓ 現れた背景色のサンプルの中にある赤色の四角形をクリック   ↓ 「セルの書式設定」ダイアログボックスの[OK]ボタンをクリック   ↓ 「新しい書式ルール」ダイアログボックスの[OK]ボタンをクリック   ↓ 「条件付き書式ルールの管理」ダイアログボックスの「適用先」欄をクリック   ↓ Sheet3のA列~D列の3行目以下のセル範囲(表のデータ入力欄の全て)をまとめて範囲選択   ↓ 「条件付き書式ルールの管理」ダイアログボックスの[適用]ボタンをクリック   ↓ 「条件付き書式ルールの管理」ダイアログボックスの[OK]ボタンをクリック  方法その1は以上です。

その他の回答 (3)

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

【方法その2】  Sheet1とSheet3の間で、「同じナンバーでありながらデータが異なっている箇所」と「片方のシートにしか存在していないナンバーの行」のデータのみを抽出して、Sheet4上に表示させる方法です。  今仮に、Sheet1やSheet3のA列~D列にデータが入力されていて、2行目には「No.」等の項目名が入力されていて、実際のデータは3行目以下に入力されているものとします。  又、Sheet4のB1セルには「Sheet1」、B2セルには「Sheet3」という具合に比較する2枚のシートのシート名をそれぞれ入力するものとします。  又、Sheet4のH列とI列を作業列として使用するものとします。  まず、Sheet4のH3セルに次の関数を入力して下さい。 =IF(ISERROR(ROW(INDIRECT("'"&$B$2&"'!A1"))/(INDIRECT("'"&$B$1&"'!A"&ROW())<>"")),"",IF(COUNTIF(INDIRECT("'"&$B$1&"'!A1:A"&ROW()),INDIRECT("'"&$B$1&"'!A"&ROW()))-1,"",IF(SUMPRODUCT(ISERROR(1/(VLOOKUP(INDIRECT("'"&$B$1&"'!A"&ROW()),INDIRECT("'"&$B$2&"'!A:D"),{1,2,3,4},FALSE)=VLOOKUP(INDIRECT("'"&$B$1&"'!A"&ROW()),INDIRECT("'"&$B$1&"'!A:D"),{1,2,3,4},FALSE)))*1),COUNTIF(INDIRECT("'"&$B$2&"'!A:A"),"<"&INDIRECT("'"&$B$1&"'!A"&ROW()))+COUNTIF(INDIRECT("'"&$B$1&"'!A:A"),"<"&INDIRECT("'"&$B$1&"'!A"&ROW())),"")))  次に、Sheet4のI3セルに次の関数を入力して下さい。 =IF(ISERROR(ROW(INDIRECT("'"&$B$1&"'!A1"))/(INDIRECT("'"&$B$2&"'!A"&ROW())<>"")),"",IF(COUNTIF(INDIRECT("'"&$B$1&"'!A:A"),INDIRECT("'"&$B$2&"'!A"&ROW()))+COUNTIF(INDIRECT("'"&$B$2&"'!A1:A"&ROW()),INDIRECT("'"&$B$2&"'!A"&ROW()))-1,"",IF(SUMPRODUCT(ISERROR(1/(VLOOKUP(INDIRECT("'"&$B$2&"'!A"&ROW()),INDIRECT("'"&$B$1&"'!A:D"),{1,2,3,4},FALSE)=VLOOKUP(INDIRECT("'"&$B$2&"'!A"&ROW()),INDIRECT("'"&$B$2&"'!A:D"),{1,2,3,4},FALSE)))*1),COUNTIF(INDIRECT("'"&$B$1&"'!A:A"),"<"&INDIRECT("'"&$B$2&"'!A"&ROW()))+COUNTIF(INDIRECT("'"&$B$2&"'!A:A"),"<"&INDIRECT("'"&$B$2&"'!A"&ROW())),"")))  次に、Sheet4のH3~I3の範囲をまとめてコピーして、同じ列の4行目以下に貼り付けて下さい。  次に、Sheet4のA5セルに次の関数を入力して下さい。 =IF(INT(ROWS($4:5)/2)>COUNT($H:$I),"",IFERROR(INDEX(INDIRECT("'"&$B$1&"'!A:A"),MATCH(SMALL($H:$I,INT(ROWS($4:5)/2)),$H:$H,0)),"")&IFERROR(INDEX(INDIRECT("'"&$B$2&"'!A:A"),MATCH(SMALL($H:$I,INT(ROWS($4:5)/2)),$I:$I,0)),""))  次に、Sheet4のB5セルに次の関数を入力して下さい。 =IF(OFFSET($A5,-MOD(ROWS($5:5)-1,2),,)="","",INDEX($B$1:$B$2,MOD(ROWS($5:5)-1,2)+1)&"")  次に、Sheet4のC5セルに次の関数を入力して下さい。 =IF($B5="","",IF(OR(ISERROR(1/(VLOOKUP(OFFSET($A5,-MOD(ROWS($5:5)-1,2),,),INDIRECT("'"&$B5&"'!A:D"),COLUMNS($C:C),FALSE)<>"")),IFERROR(VLOOKUP(OFFSET($A5,-MOD(ROWS($5:5)-1,2),,),INDIRECT("'"&$B5&"'!A:D"),COLUMNS($C:C),FALSE),"")=IFERROR(VLOOKUP(OFFSET($A5,-MOD(ROWS($5:5)-1,2),,),INDIRECT("'"&INDEX($B$1:$B$2,MOD(ROWS($5:5),2)+1)&"'!A:D"),COLUMNS($C:C),FALSE),"")),"",VLOOKUP(OFFSET($A5,-MOD(ROWS($5:5)-1,2),,),INDIRECT("'"&$B5&"'!A:D"),COLUMNS($C:C),FALSE)))  次に、Sheet4のA5セルとA6セルを結合して下さい。  次に、Sheet4のB5セルをコピーして、Sheet4のB6セルに貼り付けて下さい。  次に、Sheet4のC5セルをコピーして、Sheet4のC5~F6の範囲に貼り付けて下さい。  次に、Sheet4のA5~F6の範囲をまとめてコピーして、同じ列の7行目以下に貼り付けて下さい。  以上です。

noname#252332
noname#252332
回答No.1

 私だったら、ですが、簡単に それぞれシート番号を入れる列を追加し、1、3と入れておく。 シート1とシート3を別のシートに混ぜてコピーする。 No.をキーにしてソートする。 未使用の列に、直上のセルと相違がある場合の表示を出す関数を入れる。たとえば、a列がNo、b列が比較したい項目,c列が上記で追加したシート番号のとき、d列すべてに =if(a2=a1,if(b2=b1),"","※")) などと入れておけば、シート1とシート3の同じNo.のBに相違がある行に※が表示されます。

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

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

    初めまして。 同じような内容で、いくつか調べさせていただいたのですが、その内容を自分の内容に照らし合わせてトライしてみたのですが、うまくいかなかったため、質問させていただきます。 Excel2010 での関数について質問です。 1:シートが2つあります。((1)と(2)とします。)   両方のシートには1000行くらいのデータが両方入っています。列の項目は一緒です。 2:シート(3)に(1)と(2)のB列を比較して、   ・(1)に合って、(2)にない時は(1)のデータ   ・(1)にも(2)にもある場合は(2)のデータ   ・(2)にのみある場合は(2)のデータ   をシート(3)に作ります。 *この際、(1)と(2)の両方にBの数値があった場合には、さらにA列を比較し、A列とB列がシート(1)と(2)で完全に一致した場合には(2)のデータ。Bの数値が一緒でも、A列のデータが違う場合には(1)も(2)もシート3に表示したいです。 イメージとして画像を添付しました。 シート3に関数を入れるだけで上記条件が表示できればいいのですが、出来なければシート1,2にkeyとなる列を挿入して、それを軸としてシート3にするものなのか。 元々の理解が薄いため、購入した本も今回はどの関数を使用すべきか判断が付きませんでした。 同じような質問がある。とお叱りがあるかもしれませんが、いくつか試してみて出来なかったため質問させていただきます。 今回、急ぎで解決が必要なため、初めて登録し投稿させていただきます。 追加で必要な情報等ありましたら、ご指摘いただけますと幸いです。 宜しくお願い致します。

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

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

  • エクセルで2つの列のセルの内容の比較と取り出し方法

    はじめまして。 エクセルの使い方を教えてください。 2つのエクセルファイル(または同じファイルの異なった)列にあるセルの内容を比較してどちらにも共通する内容のセルまたはどちらにも含まれてないセルの内容を取り出して適当なところに置く。セルの内容は文字または数字とします。 又、共通するセルは、そのセルの背景に色をつけるなどを行う。列の長さは任意とします。実際の一列の長さは1000行を超えることもあります。    例 列Aはブランクも含めて8行、列Bは3行とします「質問する」とすると列が乱れてしまいますので列の境を¥で示します   ¥ 列A ¥  列B 行1¥ 3-4 ¥ 2-4-3 行2¥ 2-4-3¥ 5-1 : ¥ 4-1 ¥ 3-4 : ¥ 5-1 ¥ : ¥ 2-5 ¥   : ¥   ¥ : ¥ 3-4  ¥ 行8¥ 23  ¥ 演算の結果 色付けは此処ではできませんのでつけません。              -並べる順序は適当とします---    ¥列A  ¥ 列B  ¥ 共通セル¥不一致セル 行1¥ 3-2 ¥ 2-4-3  ¥ 2-4-3 ¥    3-2 行2¥ 2-4-3 ¥ 5-1 ¥ 3-4 ¥ 4-1 : ¥ 4-1 ¥ 3-4 ¥ 5-1 ¥ 2-5 : ¥ 5-1 ¥ ¥ ¥ 23 : ¥ 2-5 ¥ ¥ ¥ (Blank)    : ¥(Blank)¥ : ¥ 3-4 ¥ 行8 ¥ 23   ¥ 以上よろしくお願いします。 

  • エクセルの比較一致を別シートに書き出し!

    エクセルで別々のシートで比較一致したシートを別のシートに自動で書き出しが出来るようにしたいのですがどうやって良いのか分からないので教えてください! まず、sheet1に下記の表があります。   A列 B列 C列 D列 E列 1行 部品1 c1 c2 c3 c4 2行 部品2 r1 r2 r3 次にsheet2は下記の表があります。   A列 1行 c1 2行 r1 3行 c2 4行 r2 5行 r3 6行 c3 7行 c4 このsheet1とsheet2と比較させて、一致した内容をsheet3を下記のように表示させることは、出来ますか?(部品1=c1,c2,c3,c4 部品2=r1,r2,r3)   A列 B列 1行 c1 部品1  2行 r1 部品2 3行 c2 部品1 4行 r2 部品2 5行 r3 部品1 6行 c3 部品1 7行 c4 部品1 以上、お手数ですがよろしくお願いします。

  • 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 というものを作りたいのですが、やり方をお教えください。 よろしくお願いいたします。

  • sheetの比較処理

    (条件)エクセルでsheet1、sheet2とsheet3があります。 なおsheet3はsheet1のコピーです。 (処理)  sheet1、sheet2を(100行×7列)の範囲で各セルを比較し、 もし内容が違うのであれば、対応するsheet3セルを黄色で色付けしたい。 処理どうすればいいか。以上宜しくお願いします。

  • Excelでの値の比較

    エクセルにおいて、sheet2のA列とB列をsheet1のA列とB列を比較して、一致した場合sheet2のD列に下記のような結果を示すようにしたいのですが、どうやってD列に関数を組めばよいのか分からないので教えてください! 【sheet1】 A列 B列 C列 1行 001 AAAA 部品1 2行 002 BBBB 部品2 3行 003 CCCC 部品3 4行 004 DDDD 部品4 5行 005 EEEE 部品5 6行 006 FFFF 部品6 7行 007 GGGG 部品7 【sheet2】 A列 B列 C列 D列←この列に関数で○か×をつける 1行 001 AAAA 部品1 ○←sheet1にあるので○ 2行 008 HHHH 部品8 ×←sheet1にないので× 3行 004 DDDD 部品4 ○ 4行 009 IIII 部品9 × 5行 005 EEEE 部品5 ○ 6行 002 BBBB 部品2 ○ 7行 010 HHHH 部品10 ×

  • マクロを使ってシートの内容を一つのシートにまとめたい

    3つのシートより多いシート(それが4つ、5つ、6つ・・・かは時により違います)に書かれている内容を一つのシート「統合」にまとめたいと思っています。 左から3つのシートは固定してあり、それは対象外です。 対象となる各シートの内容というのは、列はC列まで、行はせいぜい10行ぐらいです。 イメージとしては シート4 シート5 シート6 シート7 という感じです。上の例ではシート4とシート5の間には2列の間隔、 シート4とシート6の間にも2行の間隔があればいいと思っています。 シートの内容というのは、列はCまでで、A1には必ず何か入っていて、A2がプランクでA3からはデータが連続しています。 このような条件ですが、マクロで統合することはできるでしょうか? お教えいただけたら大変助かります。

  • EXCELで複数のシートからデータを別シートに出す方法

    EXCELで複数のシートからデータを別シートに出す方法 EXCEL2007でデータが1シートに100行/10列ある物が10シートあります。 この10シートの任意の行にA~Dを付けて、別シート(Aシート~Dシート)に A~Dを付けた行を表示させたいのですが、方法がわかりませんでした。 ご教示お願いします。 また、可能なら別シートに表示させる時、10列ある物を4列にしたいのですが。 よろしくお願いします。