【方法その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行目以下に貼り付けて下さい。
以上です。