- 締切済み
2つエクセルデータを比較し、必要な情報を抽出する方法は?
sheet1 sheet2 sheet3 19000001 a 19000001 a 19000001 aa 19000001 aa 19000002 b 19000005 ee 19000002 b 19000003 c 19000003 c 19000004 d 19000004 d 19000005 e 19000005 e 19000006 f 19000005 ee 19000007 g 19000006 f 19000008 h 19000007 g 19000009 i 19000008 h 19000010 j 19000009 i 19000011 k 19000010 j 19000012 l 19000011 k 19000012 l sheet1にあるデータから sheet2にはないデータをsheet3に抜き出したい できるだけ簡単な方法を教えてください
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- saneppie
- ベストアンサー率66% (18/27)
2つの条件で探す場合ですね? できるだけ簡単にということですので、A列とB列を結合した値を使うのが良いでしょう。 (1) Shett1のC1に 「= $A1 & $B1」と入力して、他の行にもコピー (2) Sheet2のC1にも同じように 「= $A1 & $B1」と入力して、他の行にもコピー (3) Sheet1のD1に 「=IF(ISERROR(VLOOKUP(Sheet1!$C1,Sheet2!$C$1:$C$12,1,)),"ない", "")」と入力して、他の行にもコピー とやると、見つからない行だけSheet1のD列に「ない」と表示されます。 (4) Sheet3のA1に 「=IF(Sheet1!$D1="ない",Sheet1!$A1, "")」と入力して他の行にもコピー (5) Sheet3のB1に 「=IF(Sheet1!$D1="ない",Sheet1!$B1, "")」と入力して他の行にもコピー ここからは数式では面倒になるので、オートフィルタで空白行以外を表示させる…。 最後だけあまりスマートでなくて申し訳ないです。
- KURUMITO
- ベストアンサー率42% (1835/4283)
シート1、シート2ともにA列にデータがあるとします。 わかりやすい方法は次のようにすることでしょう。 シート1のB1セルに次の式を入力して下方にオートフィルドラッグします。 =IF(OR(A1="",COUNTIF(Sheet2!A:A,A1)>0),"",ROW(A1)) これでシート2にないデータについてはその行番号が表示されます。 次にお求めのシート3については次のようにします。 A1セルに次の式を入力して下方にオートフィルドラッグします。 =IF(ISERROR(SMALL(Sheet1!B:B,ROW(A1))),"",INDEX(Sheet1!A:A,SMALL(Sheet1!B:B,ROW(A1)))) これでA列にはシート1に有ってシート2にないデータが表示されます。 なお、お示しのデータが例えばA列とB列に分かれてある場合にはC1セルに=A1&B1と入力して下方にオートフィルドラッグして二つのセルのデータを合わせた文字列を作ります。シート2についても同様にします。その上で上に述べたと同じ手法で合成した文字列について実施すればよいでしょう。
もし貴方が[フィルタオプションの設定]の経験者なら、同方法の特殊な使い方を紹介します。 一般的な[フィルタオプションの設定]のやり方を知っていますか? 示されたデータは1列のものですか?それとも2列のものですか? (こういうことはキチンと説明しておくべきです!)
- akina_line
- ベストアンサー率34% (1124/3287)
こんにちは。 sheet1の各値をvlookup関数でsheet2から検索して、エラーになった行がsheet2にないデータです。 vlookup関数の使い方はExcelのヘルプを見てください。 では。