お世話になります

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で解決するならどのイベントプロシージャにするのがよいでしょうか

よろしくお願いいたします

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2011/05/25 23:12:57
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

回答1件)

id:windofjuly No.1

回答回数2625ベストアンサー獲得回数1149

ポイント60pt

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に該当する値が無い場合には強制的に空白にしています

エラーの時にはどうしたいかについては、先の質問で頂戴した回答と照らし合わせるも良し、返信欄にどのような場合にはどのようにしたいのかを書き込んでも良し、あとはご随意に

 

余談になりますが、入力漏れや計算ミスなどを認識する手段として、例えば条件付書式を用いて「値が入っていないセルと値が入っているセルの背景色を異なるものにする」などを併用することを勧めておきます

id:breakthrough1

ありがとうございます

2011/05/25 01:33:19
  • id:windofjuly
    うぃんど 2011/05/25 05:03:05
    >配列数式
    相手が複数になる場合には配列数式を使うことで格段に効率アップしたりしますが
    例題のように相手が単一となる場合には不要な照会などが行われたりして
    逆に効率悪くなりますので回答1のような関数を使った式としています
     
    配列数式については下記などを試してみると良いでしょう
    http://pc.nikkeibp.co.jp/pc21/special/hr/
    http://office.microsoft.com/ja-jp/excel-help/HA010228458.aspx
     
    >どのイベントプロシージャ
    データ変更と同時に書き換えるならWorkbook_SheetChangeかWorksheet_SelectionChangeになるでしょうし
    閉じる時に一括ということであればAuto_Close
     
    「何でもできるからVBAで…」という風潮もありますが、
    VBAなどなくても使えるのがExcelだということをどこかに置き忘れているとしか思えません
    なぜなら、ExcelVBAを使いこなすにはExcelの基本機能をある程度知る必要があり
    基本機能を知っていれば滅多な事ではVBAなど使わないという流れになるはずだからです
    (自動車を動かすためにエンジンの仕組みまで全て知っている必要性は無いというようなものです)

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません