• ベストアンサー

EXCEL データの検索・抽出

シート1と2に同じようなデータがあり   A   B   C    D    E    F 1 001  100 りんご  1個  @100  \100 2 001  101 みかん 1個  @110  \110 3 002  200 なし   2個  @120  \240 4 002  201 かき   3個  @130  \360 といったように最初にコードがあり、その中に違うコードがあるのですが、これを1行ずつ見比べて無いデータ、数値が違う(個数や単価)データを抽出したいのです。 シート1と2のデータは並び方もバラバラでシート1にあるデータが2にないデータもあります(そのデータは特に必要ありません) ※無いデータと数値が違うデータは別々に抽出したいので最後にオートフィルタがかけられるようにしたいです。 EXCEL2000です。宜しくお願いします。

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

  • ベストアンサー
noname#262398
noname#262398
回答No.4

#3の訂正です。 2番目のVLOOKUPがSheet3になってしまってます。 修正版↓ =CHOOSE(IF(COUNTIF(Sheet2!C:C,C1)=0,5,(VLOOKUP(C1,Sheet2!C:D,2,0)<>D1)*1+(VLOOKUP(C1,Sheet2!C:E,3,0)<>E1)*2+1),"○","個数","単価","個数・単価","無")

emi_
質問者

お礼

回答ありがとうございます。 遅くなり申し訳ありません。 中々検証する時間がとれないため一旦締め切ります。 ありがとうございました。

その他の回答 (3)

noname#262398
noname#262398
回答No.3

A列のコードが、片方のシートは表示形式で000としてあるのに、 もう片方のシートは文字列になってたりしませんか? C列をキーにしてみます。 =CHOOSE(IF(COUNTIF(Sheet2!C:C,C1)=0,5,(VLOOKUP(C1,Sheet2!C:D,2,)<>D1)*1+(VLOOKUP(C1,Sheet3!C:E,3,)<>E1)*2+1),"○","個数","単価","個数・単価","無") データがないと「無」、個数のみ違うなら「個数」、単価のみ違うなら「単価」、両方違うなら「個数・単価」、違いが無ければ「○」と、表示されます。

emi_
質問者

お礼

ありがとうございます。 明日会社に行ったときに試してみます。

  • mu2011
  • ベストアンサー率38% (1910/4994)
回答No.2

次の方法は如何でしょうか。 ・仮に各シートの表範囲は100行 ・空き列に判定数式を設定して、各シート別にオートフィルタで抽出  コードなしは「1」、データ相違は「2」として (1)シート1のG列に以下の数式を設定して下方向にコピー(範囲 =IF(SUMPRODUCT((sheet2!$A$1:$A$100=A1)*(sheet2!$B$1:$B$100=B1)),IF(SUMPRODUCT((sheet2!$A$1:$A$100=A1)*(sheet2!$B$1:$B$100=B1)*(sheet2!$D$1:$D$100=D1)*(sheet2!$E$1:$E$100=E1)),"",2),1) (2)シート2も同様(但し、上記数式のシート名をSHEET2→sheet1)

emi_
質問者

お礼

ありがとうございます。 No.1と同じくうまくいきませんでした。 こちらは全て1が出てきます。

  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.1

A列のみ比較なら =COUNTIF(Sheet2!A:A,A1) で存在しないと0、存在する場合はその数を表示 複数列の場合は =SUMPRODUCT((Sheet2!$A$1:$A$99=A1)*(Sheet2!$B$1:$B$99=B1)) のように各列毎、行範囲を設定して存在しなければ0、存在する場合はその数を表示 まあ後者の場合、存在しないということはどこかが違うわけで個数を比較したいなら =SUMPRODUCT((Sheet2!$A$1:$A$99=A1)*(Sheet2!$B$1:$B$99=B1)*(Sheet2!$D$1:$D$99<>D1)) としてA:B列が同じでD列のみ違うかをチェックするとかすればいいのでは?

emi_
質問者

お礼

ありがとうございます。 やってみたのですがうまくいきませんでした。 =SUMPRODUCT((Sheet2!$A$1:$A$99=A1)*(Sheet2!$B$1:$B$99=B1)*(Sheet2!$D$1:$D$99<>D1)) とすると全て0が出てきます。 何がいけないのでしょうか?

関連するQ&A