- ベストアンサー
Excelマクロ初心者のための範囲集計方法
- Excel2007&windows7を使いマクロ作成中の初心者です。毎月データを追加入力し、年で締め切る表を作成しています。表の範囲内の特定の部門と月の合計値を知りたいです。また、他のシートに集計結果を表示したいです。
- 表はF列からL列まで、6行目から580行(毎月変動)ぐらいの表です。H列には、A部門、B部門、C部門のいずれかの文字列が入ります。J列には、平成27年1月から12月までの年月が入ります。K列、L列には数値が入力されます。毎月作成する表の概要です。
- やりたいことは、表に基づいて、例えば27年1月のA部門のK列とL列の合計、B部門のK列とL列の合計、C部門のK列とL列の合計を知りたいです。この合計結果を他のシートに表示したいと思っています。Excel関数でもExcel VBAでも実現したいです。=SUMIF関数を使って特定の部門と月の合計を求めることができますが、27年1月だけで集計し、他のシートに表示する方法を教えてください。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
丁寧なのは良いとして、質問文が長く、メモを取って整理しないと内容が理解できなかった。 下記を補足してください。 ーー 明確でない点は ・原データシートは月別(他の月分のデータは混じらない)で別シートになるのか。 ・年間では12か月分12シートがあるのか。 ・集計項目(A、B、Cごと)の月別シートは独立して作るのか。 ・年合計はシートに作るのか。 など、はっきり判らなかった。 ーー 月別データ1シートであれば、部門別(A,B、C別)の合計計数は=SUMIF(C17:C29,"A部門",F17:F29)でよいし、 他の月が混じっていても、SUMIFS関数(2007より増えた)で(月別、部門別)区分して合計できるだろう。 ーー コピー貼り付けなどの作業は必要かもしれないが、普通に関数を利用して、達成できるのでは。 VBAを持ち出すまでもないと思う。 関数、VBAのどちらでもよいといっても、回答者の問題でなく、受け取る側の質問者のVBAの勉強や経験による。 質問者は、試験問題の出題者の先生のような立場ではない。 この程度の課題ならエクセル関数の初歩的景観でできるのでは。 「あくまで質問者がやるのだ」という前提で、できない(行き詰まった)、むつかしい点があれば、そこを重点にして質問を記述し、質問すべきだ。自分でやろうとせず、丸投げ的に回答者を使おうというように見える。 質問者がエクセルVBAの中級にでもならなければ、手作業の多少の面倒さは辛抱せざるを得ないだろう。 ーー >27年1月だけで集計したいです 2月分のデータも混じっているということ? 月を超えても同一シートにデータを入力しているのか。 SUMIFS関数ではだめか。 ーー VBAでも関数(ワークシート関数という。SUMなど)つかえる。 例データ B、C列 A 1 A 2 B 3 C 2 A 3 B 4 A 5 11 <ーーAだけの合計 コード 2行下同列に合計を出す場合 Sub test01() r1 = Sheets("Sheet1").Range("B1000").End(xlUp).Row Sheets("Sheet1").Range("C" & r1 + 2) = Application.WorksheetFunction.SumIf(Range("B1:B" & r1), "A", Range("c1:C" & r1)) End Sub
補足
説明が下手で申し訳ございません。 データシートには以下のように入力されます。 27年1月 A部門 60 100 27年1月 A部門 66 112 27年1月 B部門 50 212 27年1月 C部門 75 515 以下12月までデータ入力します。 各部門の月当たり行数は30から60ぐらい使用します。 この1枚のデータから別のシートに計算結果の表を表示したいです。 以下のように。 A部門 B部門 C部門 ABC合計 27年1月 1250 6250 5620 13120 27年2月 2250 3250 1020 6520 以下12月まで・・。既にデータの入力済みのものは、計算結果を表示したいです。