- ベストアンサー
エクセル 計算式について
エクセルの計算式の質問です。(初歩的ですみません) 例えば 1月 15.000 2月 10.000 合計 25.000 とあって、1月をセルA1、2月をA2、合計をA3とした時に 1月と合計がわかっているので2月の所に「=A3-A1」といれています。3月が増えたときにも合計がわかっているので3月をA3とし、合計をA4として式を作ると「=A4-A1-A2」とするとA3がでると思うのですが 始めの時点でA2に式が入っているからか、うまく計算できません。 A2を値として認識させるとか、他にいい計算方法はありませんか?
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
「循環参照」ってやつじゃないでしょうか。 つまり、ご質問のケースでは、最終的に、 A1=数値 A2=A3-A1 A3=A4-A1-A2 A4=数値 という具合になっており、A2の数式にあるA3と、A3の数式にあるA2がバッティングして、相互に参照合っている状態です。 したがって、どちらかを「数値」にしないと、いつまでも 「A2ではA3を参照しろという」→「でも、そのA3ではA2を参照しろという」→「そのA2ではやっぱりA3を参照しろという」→・・・ という具合に永遠に計算結果が出ないことになります。 例えていうと、国語辞典で「右」を引くと「左の反対側」と説明があったので、「左」を引いたところ、今度は「右の反対側」という説明だった。結局どういう意味か分からない・・・、という感じです。 ここは単純に(「月」=A1、「金額」=B1だとして)、 月 金額 1月 15000 2月 10000 3月 4月 5月 6月 7月 8月 9月 10月 11月 12月 合計 =SUM(B2:B13) という表にするしかないのではないでしょうか。
その他の回答 (3)
- imogasi
- ベストアンサー率27% (4737/17069)
普通はこういうケースとしては 1月 1500 2月 1000 3月 空白 ・ 12月 空白 残額 合計 25000 残額はB13に=$B$14-SUM(B1:B12) のようにしますよ。 どうしてもすぐ直下に出すなら、VBAでも使わないと。 下記のように難しくなります。 Private Sub Worksheet_Change(ByVal Target As Range) If Target.Column = 2 Then Application.EnableEvents = False d = Range("b12").End(xlUp).Row MsgBox d Cells(d, "A") = "" Cells(d + 1, "A") = "残額" Cells(d + 1, "B") = Cells(14, "B") - Application.WorksheetFunction.Sum(Range("B1:B" & d)) End If 'End If Application.EnableEvents = True End Sub
お礼
回答ありがとうございます。 ほんとうに難しいですね(・・;) こんなにいろんなのを使うのかぁという感じで眺めておりました。 わざわざ書いてくださいましてありがとうございました。
- gootaroh
- ベストアンサー率47% (396/826)
No.2です。「お礼」ありがとうございました。 >合計が解っている場合で当月を出したい時は、前月が確定した時点で、その数式を打ち直しする、というやり方しかないのでしょうか? ・基本的には「数式の打ち直し」でしょうね。でないと循環参照になってしまいますから。 ただ、根本的に、どういうお仕事で、どういった表を作成したいのでしょうか? というのは、「前月までの累計」があり、「今月までの累計」が分かっていて、「今月の単月合計」を算出する、という意味が分かりません。 普通は、「前月累計」に「今月の単月合計」を加えることによって「今月までの累計」が算出されるのではないでしょうか? なぜ逆算する必要があるのか、その理由が分かれば、別の方法も考え出せると思いますが、補足していただいてもよろしいでしょうか?
お礼
回答いただきありがとございました。 結局、数値を打ち直してました。 これからもいろいろ勉強していこうと思います。
補足
補足の回答ありがとうございました。 確かに前月と当月がわかれば逆算する必要がないですね(・・;) 質問の仕方がまずかったです。すみません。 正確には第1四半期~第4四半期の売上を計上したかったのです。 当社のオフコンでは今月計と累計は自動でアウトプットできます。 それをもとにエクセルで別資料を作っています。 第1期の4月~6月まではそのまま累計をいれて、第2期の7月~9月までは累計-第1期になるように式をいれていました。 10月になって第3期となり、4日までの数字が解ったところでインプットしようとして、さてどうすればいいのか・・・となった次第です。 お手数ですがご回答よろしくお願いします。
- zoe_falken
- ベストアンサー率40% (185/455)
エクセルはセルに式が入っていても数値が計算されていれば、その数値で計算します。 例として、以下のような入力なら A1 10 A2 20 A3 =A1+A2 A4 =A3*3 A3=30 A4=90 が数値として返ってきます >うまく計算できません 質問内容を拝見しますと2月の値が変更されていません。 3月が追加された際に2月の値を変更していないと正しい値は出ませんよ
お礼
回答いただきありがとございました。 結局、数値を打ち直してました。 これからもいろいろ勉強していこうと思います。
補足
早々のお返事ありがとございます。 2月の値が変更されていないという事は、3月に入った時点で2月の所を 数式ではなく値に打ち直すということでよろしいのでしょうか? 意味を取り違えていたらすみません。
補足
回答ありがとうございます。 「循環参照」大変わかりやすくてかなり納得でした。 追加でお聞きしたいのですが合計が解っている場合で当月を出したい時は 前月が確定した時点でその数式を打ち直しするというやり方しかないのでしょうか?宜しくお願いします。