- 締切済み
エクセル2002でこういう場合は
excel2002を使ってます。 A1 =金額 B1 =面積 (B1~B10まで各々面積が入る) B11=総面積(B1~B10の総面積) C1 =原価(B1/B11*A1) C1~C10まで式をコピー D1 =残or売かを選ぶ D1~D10まで式をコピー E1 =残の原価の合計(sumifを使用) という表を作っています。 最終的に「E1=残の原価の合計」を出すのが目的です。 A1の金額はしょっちゅう変わります。 ここまでは出来たのですが Dの列で「売」にしたものは原価を変更しないようにしたいのです。 「売」になったら、その後A1の金額が変更されても原価には反映したくないのです。 これがどうしたらいいのかわかりません。。。 どなたか教えてください。 VBAとマクロは使わない方がいいです。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- mshr1962
- ベストアンサー率39% (7417/18945)
#1のmshr1962です。 >部分の「2958465」とはどういう数値なのでしょうか。教えてください~。 2958465は日付の最大値9999/12/31のシリアル値(1900/1/1からの日数)です。
「残の原価の合計」+「売の原価の合計」= 現在のA1の金額 と、なるようにするのですか? D列を「残」から「売」にする時、ついでに「売」にしたC列の原価をコピーして、F列に[形式を選択して貼り付け]-[値]。 C1 =原価(IF(F1="",B1/SUMIF(F$1:F$10,"=",B$1:B$10)*(A$1-SUM(F$1:F$10)),"")) C1~C10まで式をコピー E1=残の原価の合計(SUM(C1:C10)) F1~F10=D1~D10が「売」になった時点のC1~C10の原価(手動操作)
補足
そうですそうです。「残の原価の合計」+「売の原価の合計」= 現在のA1の金額 となるようにしたいです。 今No.1さんとNo.2さんに教えてもらった方法を実践中です^^
- mshr1962
- ベストアンサー率39% (7417/18945)
現状ではマクロを使ってC列の数式の結果を値化するしかありません。 解決策、現在のA列とE列に1列挿入して日付を入力します。 A1=日付(金額が更新の場合は2行目以降に追加) B1=日付時点の金額(金額が更新の場合は2行目以降に追加) C1=面積(C1~C10まで各々面積が入る) C11=総面積(C1~C10の総面積) D1 =原価(C1/C11*VLOOKUP(IF(F1="",2958465,F1),$A$1:$B$50,2,TRUE)) D1~D10まで式をコピー E1 =残or売かを選ぶ E1~E10まで式をコピー F1 =売りの日付を入力 G1 =残の原価の合計(sumifを使用) ※とりあえず計算上は金額変更が50回までになってます。
補足
ありがとうございます!ただいま実践中です。 D1の式について質問なのですが、VLOOKUP(IF(F1="",2958465,F1)・・・・・部分の「2958465」とはどういう数値なのでしょうか。教えてください~。
補足
ありがとうございます! 試行錯誤してるのですがうまくいきません。 売りの日付を入力すると原価が#N/Aになってしまうのです。