- ベストアンサー
Excel関数でシートの合計値を算出する方法
- Excelの関数を使用して、複数のシートの合計値を算出する方法について教えてください。シートごとに上級、中級、普通の合計値を算出し、統計シートに一括して表示したいです。
- シートには上級、中級、普通の3つの項目があり、各項目には12ヶ月分のデータが入っています。シートごとに上級、中級、普通の合計値を算出するためにはどのような関数を使用すれば良いでしょうか。
- Excelで複数のシートのデータを合計する方法について教えてください。上級、中級、普通の各項目について、各シートごとの合計値を算出し、統計シートにまとめたいです。効率的な関数の使用方法を教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんな感じでよいのでしょうか? 質問文の内容とこれから説明しようとしている内容を合わせるため 念の為、下記のように仮定義しておきます。 シート5つの名称を仮にそれぞれ 統計、A、B、C、D、Eとして 例として出されているシート(?)の 「例」の文字の所がA1セルとして、 1月、2月~~が順にC1、D1~~セル。 続いて上級、100、5100~~がA2、B2、C2~~セル。 12種類の項目ということなので、 ひとまず13行(A13セルの行)までとします。 統計のシートも同様に 「例」の列がA列、B列が空欄で、1月がC列…。 質問文では上級、中級、普通の3つとなっているので 4行(A4セルの行)まで。 以上の前提の時、 統計シート、上級の1月(C2セル)の内容は次の通り。 =SUMIF(A!$A$2:$A$13,"上級",A!C2:C13)+SUMIF(B!$A$2:$A$13,"上級",B!C2:C13)+SUMIF(C!$A$2:$A$13,"上級",C!C2:C13)+SUMIF(D!$A$2:$A$13,"上級",D!C2:C13) あとはこれをコピペしたセルを元に、 そのセルを囲っている黒い太枠の右下部分の黒ポツを 適当なセルまでグリグリのズリズリとドラッグすればOKだと思います。 中級、普通についても"上級"の部分を置換するだけで使えます。 ちなみに、ABCDのシートのA列を見たうえで集計しているので 各シートでのデータの行位置(上級、中級、普通の順序)はバラバラで構いません。 更にちなみに、 =SUMIF(A!$B$2:$B$13,200,A!C2:C13)+SUMIF(B!$B$2:$B$13,200,B!C2:C13)+SUMIF(C!$B$2:$B$13,200,C!C2:C13)+SUMIF(D!$B$2:$B$13,200,D!C2:C13) とすると、12種類の項目別の集計にもなります。 (この場合は、上級で200の場合のデータが対象。) 但し、セルに格納されている項目の部分が数値データの場合。 文字データで格納しているなら 200 が "200" になります。 とりあえずこちらで簡単な動作確認をしてみたものではありますが、 意図しているのと違う値で集計されたりした場合は ご連絡ください。
その他の回答 (1)
- gadd3
- ベストアンサー率46% (211/451)
>もしご存知であれば、すばやく簡単にできる関数や方法を >教えてください。 ということについて少し・・・。 データのストックをする際に、 例 1月 2月 ・・・・・・・・・・12月 上級 100 5100 2300 上級 150 2850 8900 普通 80 550 4300 というデータのストック方法をやめて、 つまり時系列を横方向に展開していくのをやめて、 縦方向に展開していきます。 例えば次のように 区分01 区分02 月 値 上級 100 1月 5100 上級 100 2月 2300 上級 100 3月 2350 上級 150 1月 2850 上級 150 2月 8900 上級 100 3月 5000 普通 80_ 1月 550 普通 80_ 2月 4300 このとき、 区分01 区分02 月 値 上級 100 1月 5100 普通 80_ 1月 550 上級 100 3月 2350 上級 100 3月 5000 上級 150 2月 8900 上級 150 1月 2850 普通 80_ 2月 4300 上級 100 2月 2300 といった風に、上下が入り乱れていても何の問題もありません。 こうして記録(ストック)しておくと、Excelの場合 「ピボットテーブル」という機能で 以下のレイアウトの表は簡単に集計できます。 例 1月 2月 ・・・・・・・・・・12月 上級 100 5100 2300 上級 150 2850 8900 普通 80 550 4300 VBAも関数も要らず、少しのウィザード応答と ドラッグ操作、クリック、リストボックス選択などだけでできます。 このようなレイアウトのほか、 区分01だけの集計 月だけ 区分2だけ 区分2と月だけ 平均、累計、 なども計算式、関数、VBAなしで瞬間表示切り替えができます。 各項目の縦と横の入れ替えもドラッグだけで可能です。 ピボットテーブルはとても便利な機能ですので、 是非覚えられるとよいと思います。 なお、今回ご紹介したデータのストック方法は 「リスト形式の表」「リストデータ」「明細表」などとも呼ばれます。 縦方向にだけ、データが増えていきます。 対して・・・、 例 1月 2月 ・・・・・・・・・・12月 上級 100 5100 2300 上級 150 2850 8900 普通 80 550 4300 のように縦横集計されているものを 「マトリクス表」「クロス集計表」などと呼びます。 このうち「リスト形式の表」での管理は、 ピボットテーブルの機能で「マトリクス表」に変化させたり 並べ替え、その他の加工がとても簡便にできるようになります。 無駄なVBA、関数などをできるだけ少なくして データを集計・管理できるようになりますから、 是非、データをストックする際は、「リスト形式」で ストックすることを考えてみてください。 なお、「リスト形式の表」は、各シートに分かれていても、 列の内容が同じなら、最終的にそれらをさらに別シートに 縦にまとめてしまえば、ピボットテーブルが扱えます。 1つのシートに列がもし増えてしまったら、 他のシートも同じ列を増やします。 その際、値が無ければ空白セルにしておいても問題ありません。 強いて言うと空白セルには置換機能にて一括で、「---」など、 自分の好みの空白をあらわす値を適当に入れておけば エラーも出なくなるので安心です。 「リスト形式」でのデータストックは データ管理の基礎中の基礎です。 これがさらに発展したものが例えば 「リレーショナルデータベース」と なっていくわけです。 「リレーショナルデータベース」は、例えば GoogleやYahooもそのデータ管理に利用している形態です。 つまりそれほどに効率がよいのです。 その「リレーショナルデータベース」を構築する上での 基礎事項が「リスト形式」でのデータストックなのです。 こういったことを知らずにExcelを使うと、 無駄なVBAや関数を随所で使わないといけなくなり、 「リスト形式の表」とピボットテーブルを知っている場合の 10倍は効率が悪くなってしまいます。 ちなみに、ピボットテーブルと ExcelのMicrosoftQueryという機能を使うと GoogleやYahooと同じような 「リレーショナルデータベース」をExcel上で構築することができます。 もちろんシンプルな構造のものだけですが、 この2つを組み合わせると、さらにデータ管理効率が増します。 なおピボットについてはこちらの質問でも回答しましたので ご参考にしてください。 http://oshiete1.goo.ne.jp/qa4650857.html URLなどもご参考にしてください。 いろいろとおせっかい、失礼いたしました。
お礼
ご回答、ご指導有難うございました。 理解及び解決できました。 助かりました。 もう1点ご質問ですが、関数が苦手です。 初歩/基本的な関数は使用できますが、IFや上記のような特異な 関数になってきますと、まったく理解できずにおります。 関数の勉強方法として、何か良い資料やHPなどございましたら 是非教えてください。また、どうやって勉強すればよいかなども 教えていただけると助かります。 以上、宜しくお願い致します。