- ベストアンサー
エクセルで足し算の仕方出来るでしょうか
仮に下のような表があります 4月 A B C D 1 2 あ 10←この欄に毎月違った数字を入力します 3 あ計 30 4 い 1 5 い計 5 6 月が変わると仮に 5月 A B C D 1 2 あ 20←この欄の先月10の上に上書きの仮に20を入力します 3 あ計 50←この計が自動的に先月30に+20が足され50 4 い 1 5 い計 5 上のように、先月30が自動的に50に合計計算できるでしょうか 最終的には毎月の総合計としてA列の項目毎の計を最下欄に上段計(毎月の計)と下段計(累計)が必要になります(これは今日のOKWEBで回答をもらえ解決出来ました)
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
Sheet1で行う例です。関数だけでは無理ですね。マクロを利用してみました。 ツール→マクロ→Visual Basic Editor でVBE画面に移り、 表示→プロジェクトエクスプローラでプロジェクトエクスプローラを表示します。 プロジェクトエクスプローラのSheet1をダブルクリック。出てきたコードウインドウに下記マクロを貼り付けます。 このマクロは inpAreaに設定したセル範囲の偶数行に入力したら機能します。 今は "B2:B11" なので、B2、B4、B6、B8、B10に入力すればその下のセルに加算します。 C、D列も可能にするなら、"B2:D11" のようにします。 ※個人的にはこのような処理は好きではありませんが・・・ 間違えて計のセルに入力したらどうします?とりあえずは Ctrl+Z で元に戻しましょう。 間違えた入力については、計を修正するか、逆符号で入力する必要があります。 ここから ↓ Const inpArea = "B2:B11" '自分で入力範囲(と合計範囲)を設定します Private Sub Worksheet_Change(ByVal Target As Range) Dim rg As Range '入力と合計を計算するセル範囲 Set rg = Range(inpArea) If Target.Count = 1 Then If Not (Intersect(Target, rg) Is Nothing) Then '指定した範囲に入力したら If Target.Row Mod 2 = 0 Then '偶数行に入力したら、下のセルに加算する Target.Offset(1, 0) = Target.Offset(1, 0) + Target End If End If End If End Sub
その他の回答 (1)
- imogasi
- ベストアンサー率27% (4737/17069)
エクセル(表計算ソフト)では (1)あるセル(A1)に入力したデータを、別のセル(B1)に飛ばして データをセットことは出来ない。(B1側で=A1で値を取ることは出来るが。) (2)まして入力順序に従って、続いた別のセルに記録できない。 従って=SUM(・・・)が使えない。 (3)B1セルで「=B1+A1」という式がセット出来ない。循環参照エラーになる。 (4)注目しているセル(=を入れるセル)には、他のセルの値をを参照できるが、注目しているセルへ式を入れることによって、他のセルへデータをセットしたり、他のセルへ式をセットすることは出来ない。 従って質問の件は関数式では不可能と思う。 ---- しかし上記(1)-(4)が出来る、プログラム言語なら出来る。ただしVBAでは適当なイベントがなく、下記のSelectionChangeではマウスのクリックだけでも足されてしまう。データ入力+エンタ押し下げしたときだけで反応とか、セルの値が変わったら反応するするイベントがあればと思う。 MoveAfterReturnDirectionが下方との前提で、「A1に値を入れる都度にA2に累積する」として Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Target.Address = "$A$2" Then ' MsgBox ActiveCell.Address Worksheets("sheet1").Range("a2") = Worksheets("sheet1").Range("a2") + Worksheets("sheet1").Range("a1") End If End Sub 結論として上記では不完全です。
お礼
いつもお世話になっています ご無理をいいました nishi6さんの回答で出来ました ありがとうございました
お礼
いつも大変お世話になっています すごいことができるもんですね ほんとにいつもいつも尊敬してしまいます 大変助かりました、ありがとうございました