家計簿をエクセルでつけていますが月ごとにシートに金額を入れていくと その度に自動的に別の年間集計のシートに金額が入るようにしたいんですがどうしたらいいでしょうか。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

家計簿だとすると、各月のシートの入力は日単位で行い、シートの形は同じで、年間集計のシートは月計を集計するのでしょうか。



Sheet1~Sheet12が月のシートでSheet13が年間計のシートとしています。

例えば、各月のセルB2の年間計を計算させるには、

Sheet13のB2を選択して
 =SUM(
と入力して、Sheet1を選択して(シートタブを利用)、セルB2を選択、
Shiftキーを押しながらSheet12を選択(シートタブを利用)して、Enter。これで

=SUM(Sheet1:Sheet12!B2)

という算式ができます。当然、直接入力してもかまいません。

後は必要な分をコピーすればいいでしょう。
    • good
    • 0

質問の理解を間違えていなければ、この方法でよいと思います



たとえば1月のシートのD21に1月金額、2月のシートのD24に2月金額の場合
年間集計表に=Sheet2!D21+Sheet3!D24と入力

sheet2は1月でshee3は2月です

sheet2等はシート名称に変更して下さい
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aと関連する良く見られている質問

QEXCELで家計簿作成 カテゴリごとに金額の合計を算出する方法がわかりません

EXCELマクロ初心者です。EXCEL2002で家計簿を作成しています。
 A   B  C
1内科  医者 1000
2弁当  食費  800
3歯医者 医者  500
4おにぎり食費  200
5    end
上記内容をEXCELに入力します。
A欄は品目、B欄はカテゴリ、C欄は金額を入力します。
これを、マクロを使ってB欄ごとに合計金額を算出したいのです。
完成イメージは以下のとおりです。

医者 1500
食費 1000

因みに、以下のようにコーディングしてみましたが、うまくいきません。
Sub ボタン1_Click()
Dim mykategori
Dim myisyakingaku
Dim mysyokuhikingaku
Range("b1").Select
Do Until ActiveCell.Value = "end"
mykategori = ("b1")
If mykategori = "医者" Then
myisyakingaku = myisyakingaku+ ("c1")・・・(1)
ElseIf mykategori = "食費" Then
mysyokuhikingaku = mysyokuhikingaku + ("C2")・・・(2)
End If
ActiveCell.Offset(1).Select

Range("D1") = myisyakingaku・・・(3)
Range("D2") = mysyokuhikingaku・・・(3)
Loop
End Sub

(1)(2)が間違っているのはよくわかっているのですが、
金額の座標軸を1つずつ下にずらす方法がわかりません。
座標軸を1つずつずらす方法を教えて下さい。
そもそも、こんなコーディングしないよ!もっと良い方法があるよ!という場合は、上記のコーディングは無視してコディング例を教えていただきたいと思います。

なお、(3)は合計金額を仮表示するために空いている箇所に適当に
表示させるためにコーディングしたものです。
あまり気にしなくて結構です。

以上、宜しくお願い致します。

EXCELマクロ初心者です。EXCEL2002で家計簿を作成しています。
 A   B  C
1内科  医者 1000
2弁当  食費  800
3歯医者 医者  500
4おにぎり食費  200
5    end
上記内容をEXCELに入力します。
A欄は品目、B欄はカテゴリ、C欄は金額を入力します。
これを、マクロを使ってB欄ごとに合計金額を算出したいのです。
完成イメージは以下のとおりです。

医者 1500
食費 1000

因みに、以下のようにコーディングしてみましたが、うまくい...続きを読む

Aベストアンサー

>金額の座標軸を1つずつ下にずらす方法がわかりません。
Cells(ActiveCell.Row, 3).Value
と記述する方法もあります。
IF文ですが CASE文がわかりやすいかも
勉強の材料として
Range("D1").Value = 0
Range("D2").Value = 0
Range("b1").Activate
Do Until ActiveCell.Value = "end"
Select Case ActiveCell.Value
Case "医者"
Range("D1").Value = Range("D1").Value + Cells(ActiveCell.Row, 3).Value '・・・(1)
Case "食費"
Range("D2").Value = Range("D2").Value + Cells(ActiveCell.Row, 3).Value '・・・(2)
End Select
ActiveCell.Offset(1).Activate
Loop
End Sub

他方法ですが、この様な集計ならば
一般機能の ピボットテーブル 或いは巻数で(SUMIFなど)で十分ですよ。

>金額の座標軸を1つずつ下にずらす方法がわかりません。
Cells(ActiveCell.Row, 3).Value
と記述する方法もあります。
IF文ですが CASE文がわかりやすいかも
勉強の材料として
Range("D1").Value = 0
Range("D2").Value = 0
Range("b1").Activate
Do Until ActiveCell.Value = "end"
Select Case ActiveCell.Value
Case "医者"
Range("D1").Value = Range("D1").Value + Cells(ActiveCell.Row, 3).Value '・・・(1)
Case "食費"
Range("D2").Value = Range("D2").Value + Cells(ActiveCell.Ro...続きを読む

Qエクセルでシートに入力した値を別シートに飛ばし、月別に集計する方法を教えてください

タイトルでは分かり辛かったとは思いますが、要約すると以下の通りです。

1.元シート(以下Aと呼びます)に毎日同じセル内に1回値を入力します。

2.その入力された値を別シート(以下Bと呼びます)へとリンクさせ、尚且つそのBシート内で1か月分の集計を取ります。

つまりAシートでは毎日同じセルに値を入力しますが、Bシートでは1列ずつ下に記録され1か月分の入力がされていく、そのような操作は可能でしょうか?

Bシートのあるセルに”=Aシートの指定セル”を入力するとAシートで値を変更するたびに同じセル内で値が更新されてしまいます。

どなたか方法が分かる方お知恵をお貸し下さい。よろしくお願いします。

Aベストアンサー

似たような質問は結構多くありますが、セルに値を入力したときにマクロを実行すると、間違えた場合、訂正した場合は、どうするかなどがあります。
やりたいことを、Sheet1のC1,C2,C3に入力して内容確認後、ボタンを押すと
Sheet2のデータの最後の行の下に、横方向に記録していくということしたら。VBAで仕事を行うに定番のようなマクロです。
以下、試して、そちらの都合に合わせて編集してください。

Sub ボタン3_Click()
GYOU = Sheets("Sheet2").Range("B65536").End(xlUp).Offset(1, 0).Row
Sheets("Sheet2").Cells(GYOU, 2).Value = Range("C1").Value
Sheets("Sheet2").Cells(GYOU, 3).Value = Range("C2").Value
Sheets("Sheet2").Cells(GYOU, 4).Value = Range("C3").Value
End Sub
補足説明
Range("B65536").End(xlUp).Offset(1, 0).Row  は
エクセルで使用できる最大行65536行目のB列を上方向へ移動して、空白でない行を探す、その行から1行上へ移動した行番号を取得して、変数GYOUに入れる。
Sheets("Sheet2").Cells(GYOU, 2).Value = Range("C1").Value は、
シート2で、前のコマンドで探し当てた行の2列目にC1セルに値を入れるです。

似たような質問は結構多くありますが、セルに値を入力したときにマクロを実行すると、間違えた場合、訂正した場合は、どうするかなどがあります。
やりたいことを、Sheet1のC1,C2,C3に入力して内容確認後、ボタンを押すと
Sheet2のデータの最後の行の下に、横方向に記録していくということしたら。VBAで仕事を行うに定番のようなマクロです。
以下、試して、そちらの都合に合わせて編集してください。

Sub ボタン3_Click()
GYOU = Sheets("Sheet2").Range("B65536").End(xlUp).Offset(1, 0).Row
Sheets("S...続きを読む

Q複数シートを集計したい(別シートへ集計結果を表示させたい)

シートごとに月別の取引先別商品別の計画と実績が入っています。
(※シートフォーマット参照)
この表に関してはすでに数式を組んでいるのですが、この取引先別の複数シートのデータを
一つに集計する別シートを作成したいです。(※合計フォーマット参照)
※取引先CDは7桁、商品CDは12桁

それぞれのシートの下のほうに数量、売上、仕入、粗利益(売上@、仕入@は数量で割る)の合計欄を設けているのでその数字を集計した別シートへ表示させたいです。

取引先別のシートのフォーマットは同じですが、取引先ごとに商品数が違う為、合計欄の行数が異なります。
複雑すぎて、関数でやったら良いのかマクロでやったら良いのか?
また、それぞれの場合どういった関数を組めばorマクロを組めばご教授願います。

Aベストアンサー

No4です。
No7は無視してください。
エラーが発生する原因は、セルの内容に数値でないものが設定されていることと考えられます。
数値でないセルを検出時、合計シートのそのセルのアドレス(行列)と内容をエラー表示するようにしました。
エラーメッセージが表示されたセルの内容をご確認ください。
又、データの作成されていない月については、データの加算をしないようにしました。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
下記URLに修正版を登録しました。

http://climbi.com/b/9943/2

実際に変えたのは、
'エリア合計
Private Sub AreaGoukei(ByVal title As String, ByVal gs As Worksheet, ByVal rowstart As Long, ByRef rowg As Long)

'東・西日本合計
Private Sub AllGoukei(ByVal title As String, ByVal gs As Worksheet, ByVal rowE As Long, ByVal rowW As Long, ByRef rowg As Long)
の2つのプロシージャです。(これ以外は変えていませんで、この2プロシージャのみ置き換えても構いません)
これで、再確認してください。

No4です。
No7は無視してください。
エラーが発生する原因は、セルの内容に数値でないものが設定されていることと考えられます。
数値でないセルを検出時、合計シートのそのセルのアドレス(行列)と内容をエラー表示するようにしました。
エラーメッセージが表示されたセルの内容をご確認ください。
又、データの作成されていない月については、データの加算をしないようにしました。
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
下記URLに修正版を登録しました。

http://climbi.com/b/9943/2

実際に変...続きを読む

Qエクセルで小計を出したいのですが、年ごとに集計・年度ごとに集計をしたいです。

仕事でデータの集計を頼まれました。
エクセルを使用し集計するのですが、2014/4/1~2015/3/31(平成26年度)の集計を出します。エステに来た顧客の数を管理しています。
月ごとに何名の来客があったか、平成26年度には合計何名の来客かを集計するのですが、場合によっては2014/1/1~2014/12/31の1年間集計を出すことも頼まれます。
そうした場合、エクセルのどの機能を使って集計するのが効率的でしょうか?
ピボットテーブルやグループの小計、COUNTIF関数など考えています。
データ量はかなり多く、なるべく効率的な方法をご伝授いただけるとありがたいです。ご回答どうぞよろしくお願いいたします。

Aベストアンサー

ピボットテーブルで集計して
月単位でも年単位でもグループ化すれば
大丈夫でしょう。
http://www.officepro.jp/exceltips/pivot/index12.html

QEXCELで複数シートの集計を別シートに作りたい

いつもお世話になります。
早速ですが、商品毎、担当毎の売上実績表をEXCELで作っています。
以下のようなEXCELシートを各々の担当毎に作成します。
A B C D E F
1  4月 5月 6月 7月
2 商品○ 合計  100 97 109 136
3  A社   50 38 27 20
4  B社   13 9 7 3
5  C社  8 10 18 33
6  D社  20 29 42 58
7  E社    9 11 15 22
8 商品△ 合計 158 170 119 183
9  A社   13 9 7 3
10  B社  33 27 40 38
11  C社   51 55 38 77


Sheet担当A  ※このシート名をSheet名担当A,,,担当Eとします。(Sheet数5)

6枚目のシートを集計用とし、

A B C D E F
1 4月 5月 6月 7月
2 商品○ 合計 308 224 147 159
3 担当A 50 38 27 20 ←Sheet担当Aの2列目(C3~F3)
4 担当B 55 40 22 24  ←Sheet担当Bの2列目(C3~F3)
5 担当C 48 30 30 45  ←Sheet担当Cの2列目(C3~F3)
6 担当D 67 44 38 26
7 担当E 88 72 30 44
8 商品△ 合計 32 34 28 23 ←Sheet担当Aの8列目(C8~F8)
9 担当A 13 9 7 3  ←Sheet担当Bの8列目(C8~F8)
10 担当B 10 13 9 6
11 担当C 9 12 12 14

としてリンク貼り付けしたく考えています。
リンク貼り付けだと、例えば集計用C3は=Sheet担当A!C2、C4は=Sheet担当B!C2とセル設定する必要がありますが、結構大きな集計資料となるので、簡単にリンク貼り付け(例えば、今回は=Sheet“担当者名”!セル名と担当社名だけ違うので、担当者名だけ一括で変換する)できる方法など内でしょうか?
また、マクロについてはあまり知識がありませんが、簡単に設定できるマクロなどがあれば、教えて頂きたく考えております。
明日、(2/23)朝9時までに資料を完成させなければなりません。
どなたかご教授頂きたく、お願い致します。

※上のEXCEL例が見にくいかと思いますので、画像を添付させて頂きました。

いつもお世話になります。
早速ですが、商品毎、担当毎の売上実績表をEXCELで作っています。
以下のようなEXCELシートを各々の担当毎に作成します。
A B C D E F
1  4月 5月 6月 7月
2 商品○ 合計  100 97 109 136
3  A社   50 38 27 20
4  B社   13 9 7 3
5  C社  8 10 18 33
6  D社  20 29 42 58
7  E社    9 11 15 22
8 商品△ 合計 158 170 119 183
9  A社   13 9 7 3
10  B社  33 27 ...続きを読む

Aベストアンサー

こんばんは!

Sheet見出しの1番目~5番目に各担当者分のSheetがあり、
6番目のSheetの「合計」行以外に各Sheetの「合計」行を表示するとします。
尚、コード内の「集計」としているSheet名は実際のSheet名にしてください。

標準モジュールに↓のコードをコピー&ペーストしてマクロを実行してみてください。

Sub Sample1() 'この行から
Dim i As Long, k As Long, lastRow As Long, lastCol As Long
Dim c As Range, wS As Worksheet

With Worksheets("集計") '★ 「集計」は実際のSheet名に!
Application.ScreenUpdating = False
lastRow = .Cells(Rows.Count, "B").End(xlUp).Row
'▼ 「集計」SheetのA・B列を作業用の列として挿入(元データは2列ずつ右へずれる)
.Range("A:B").Insert
With Range(.Cells(2, "A"), .Cells(lastRow, "A"))
.Formula = "=IF(C2="""",A1,C2)"
.Offset(, 1).Formula = "=A2&D2"
End With
For k = 1 To 5 'Sheet見出しの1番目~5番目までループ ★
Set wS = Worksheets(k)
lastCol = wS.Cells(1, Columns.Count).End(xlToLeft).Column
For i = 2 To wS.Cells(Rows.Count, "B").End(xlUp).Row Step 6 '各Sheetの2行目~B列最終行まで6行おきに ★
'▼ 「集計」Sheet作業列(B列)と一致する行を検索
Set c = .Range("B:B").Find(what:=wS.Cells(i, "A") & wS.Name, LookIn:=xlValues, lookat:=xlWhole)
'▼ 各Sheetの「合計」行のC列~最終列までを「集計」Sheetの
If Not c Is Nothing Then
Range(wS.Cells(i, "C"), wS.Cells(i, lastCol)).Copy
.Cells(c.Row, "E").PasteSpecial Paste:=xlPasteValues
End If
Next i
Next k
.Range("A:B").Delete
Application.ScreenUpdating = True
.Activate
.Range("A1").Select
End With
End Sub 'この行まで

こんな感じではどうでしょうか?m(_ _)m

こんばんは!

Sheet見出しの1番目~5番目に各担当者分のSheetがあり、
6番目のSheetの「合計」行以外に各Sheetの「合計」行を表示するとします。
尚、コード内の「集計」としているSheet名は実際のSheet名にしてください。

標準モジュールに↓のコードをコピー&ペーストしてマクロを実行してみてください。

Sub Sample1() 'この行から
Dim i As Long, k As Long, lastRow As Long, lastCol As Long
Dim c As Range, wS As Worksheet

With Worksheets("集計") '★ 「集計」は実...続きを読む


このカテゴリの人気Q&Aランキング

おすすめ情報