• ベストアンサー

Excel2000で、データの比較とコピー

こんばんは! シート1に お店 商品コード 商品名  金額 01  05000    みかん  500 01  05010    メロン  1000 02  01000    いちじく 300 とあり、 シート2に お店 商品コード 商品名  金額 01  05000    みかん  500 01  05010    メロン  1300 02  01000    いちじく 300 となっている場合に、 商品コードが同じものの行を比較して、金額の変更があったら、シート3に 01  05010    メロン  1300 と行ごとコピーをしたいのですが、どのようにすれば良いでしょうか? 何か良い関数や、マクロなどありましたらご伝授願います。

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

  • ベストアンサー
  • beer55
  • ベストアンサー率33% (7/21)
回答No.5

お晩です 配列数式です Sheet3のA2に=IF(SUM((Sheet1!$A$2:$A$4=Sheet2!$A$2)*(Sheet1!$D$2:$D$4<>Sheet2!$D$2))<ROW(A2)-1,"",INDEX(Sheet2!A2:A4,SMALL(IF((Sheet2!$A$2:$A$4=Sheet2!$A$2)*(Sheet1!$D$2:$D$4<>Sheet2!$D$2),ROW($A$2:$A$4)-1),ROW(A2)-1)))と入力 又はこの式をコピーしても良いですが配列数式ですので、コピー後は 配列数式ですので「Ctrlキー」+「Shiftキー」を押しながら「Enterキー」を押してください。 右(D2まで)、下にコピー 配列数式については、下記のホームページを参照してください。 http://pc21.nikkeibp.co.jp/special/hr ダメでしょうか

参考URL:
http://pc21.nikkeibp.co.jp/special/hr
yuk777
質問者

お礼

ありがとうございます。 参考になりました!

すると、全ての回答が全文表示されます。

その他の回答 (4)

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.4

(例データ) Sheet5に お店  商品コード  商品名  金額 1 5000 みかん   500 1 5010 メロン   1000 2 1000 いちじく  300 3 2000 リンゴ      1800 4 4000 バナナ      700 Sheet6に お店  商品コード  商品名  金額 1 5000 みかん   500 0 1 5010 メロン   1300 1 2 1000 いちじく  300 1 3 2000 リンゴ      2000   2 4 4000 バナナ      800    3 としてSheet6のE1に =IF(D2<>VLOOKUP(C2,Sheet5!$C$2:$D$7,2,FALSE),E1+1,E1+0)といれ、下へ複写します。$D$7は最下行で見積もってください。 結果はSheet6の上記E列(金額列の右列)のとおりです。 Sheet7の A1に =INDEX(Sheet5!$A$2:$D$6,MATCH(ROW(A1),Sheet6!$E$1:$E$5,0)-1,1) B1に =INDEX(Sheet5!$A$2:$D$6,MATCH(ROW(B1),Sheet6!$E$1:$E$5,0)-1,2) C1に =INDEX(Sheet5!$A$2:$D$6,MATCH(ROW(C1),Sheet6!$E$1:$E$6,0)-1,3) D1に =INDEX(Sheet5!$A$2:$D$6,MATCH(ROW(D1),Sheet6!$E$1:$E$6,0)-1,4) といれ(最後の引数だけ1づつ増える)各列を第3行まで複写する。 Sheet6より金額を取ってくるのは略。 (結果) Sheet7には 1 5010 メロン  1000 3 2000 リンゴ 1800 4 4000 バナナ 700

yuk777
質問者

お礼

ありがとうございます。 参考になりました!

すると、全ての回答が全文表示されます。
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.3

#2です。 すみません。 Dに$つけるの忘れてました。

すると、全ての回答が全文表示されます。
  • BLUEPIXY
  • ベストアンサー率50% (3003/5914)
回答No.2

シート1とシート2がもともと同じもので、 金額が変更されたかどうか調べて値をコピーするには、 =IF(シート1!D1<>シート2!D1,シート1!A1,"") をシート3のA1にコピーして 表の存在する範囲にコピーする。

yuk777
質問者

お礼

ありがとうございます。 参考になりました!

すると、全ての回答が全文表示されます。
  • sero
  • ベストアンサー率47% (916/1944)
回答No.1

商品コードが重複しておらず、1度きりの作業なら変更の有無を判定する列を作成して 判定列をキーにオートフィルターで変更のあった行だけを表示させてシート3にコピー&ペーストってのはどうです? 判定はVLOOKUPで比較 商品コードがB列で、E列を判定行とするならSheet2のE2セルに =IF(VLOOKUP(B2,Sheet1!$B$2:$D$65535,3,0)=Sheet2!D2,"","変更あり") とするとか。

yuk777
質問者

お礼

ありがとうございます。 参考になりました!

すると、全ての回答が全文表示されます。

関連するQ&A