Excel2007での質問です
Sheet1の
A列に重複しないID(整数)が振ってあります 空白セルあり
B列に最少卸金額(小数点以下あり)
C列に最大卸金額(小数点以下あり)
となっています
Sheet2の
A列に重複しないID(整数)が振ってあります 空白セルあり
B列に予定金額(小数点以下あり)
となっています
Sheet1のデータは現在300行ぐらいで将来的に1000行ぐらいになります
Sheet2 B列を入力すると Sheet1 A列 と Sheet2 A列 の ID が一致する行を判定して
C列には
Sheet2 B列(予定金額)-(マイナス) Sheet2 B列(最少卸金額)
D列には
Sheet1 B列(最大卸金額)-(マイナス) Sheet2 B列(予定金額)
としたいのですが、配列数式かVBAで解決したいです
もしVBAで解決するならどのイベントプロシージャにするのがよいでしょうか
よろしくお願いいたします
Sheet2の例
A列 | B列 | C列 | D列 | |
---|---|---|---|---|
1 | 101 | 1000 | =B1-VLOOKUP(A1,Sheet1!A:B,2,0) | =VLOOKUP(A1,Sheet1!A:C,3,0)-B1 |
Sheet2のA列が空白であったり、あるいはSheet1に該当する値が無い場合に#N/Aなどのエラーとなってしまうので、IFなどでエラー時の処理を分ける必要があります
Sheet2の改造例
A列 | B列 | C列 | D列 | |
---|---|---|---|---|
1 | 101 | 1000 | =IF(ISERROR(MATCH(A1,Sheet1!A:A,0)),"",B1-VLOOKUP(A1,Sheet1!A:B,2,0)) | =IF(ISERROR(MATCH(A1,Sheet1!A:A,0)),"",VLOOKUP(A1,Sheet1!A:C,3,0)-B1) |
Sheet2のA列が空白、あるいはSheet1に該当する値が無い場合には強制的に空白にしています
エラーの時にはどうしたいかについては、先の質問で頂戴した回答と照らし合わせるも良し、返信欄にどのような場合にはどのようにしたいのかを書き込んでも良し、あとはご随意に
余談になりますが、入力漏れや計算ミスなどを認識する手段として、例えば条件付書式を用いて「値が入っていないセルと値が入っているセルの背景色を異なるものにする」などを併用することを勧めておきます
ありがとうございます