- ベストアンサー
複数条件を満たした行列の集計
コード 科目 4月 5月 ・・・・・ 3月 1000 A 3,000 3,500 2,800 1010 B 1,600 2,250 3,140 1020 C 4,500 1,950 3,400 2000 D 2,800 3,670 6,400 2020 E 1,300 1,450 1,700 2030 F 8,400 7,800 6,950 3000 G 7,300 7,200 7,100 3050 H 2,500 2,600 2,650 3060 I 3,400 4,200 4,100 ------------------------------------------------- 条件1 18,200 16,850 17,400 条件2 12,800 13,720 16,490 上記のようにコードと科目毎に月別(4月~翌年3月)までの1年間の 表があるとします。 例えばコードの「1000」と「1020」と「3000」と「3060」の月毎の合計値を出したい時に EXCELの数式ではどのようにすれば効率的に出来るのでしょうか?(条件1) 同様に「1010」+「2000」+「2030」を条件2とします。 SUMIFとかVLOOKUPとかANDとかを色々と組み合わせたりしてやってみたのですが どうも上手く行きません。 EXCELに詳しい方のお知恵を拝借致したく宜しく御願い致します。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
1.ピボットテーブルを使ってコード毎の合計値を出し、手動で加算する。 多分この方法が一番簡単で分かりやすく、後で応用が利くかと。 http://support.microsoft.com/kb/318729/ja 2.データベース機能を使って必要なコードのみを表示させ、合計する 一応慣れれば一発で合計が出てきます。 http://www.eurus.dti.ne.jp/yoneyama/Excel/filter.htm http://www11.plala.or.jp/koma_Excel/contents6/mame6042/mame604201.html 3.SUMIF関数を使う。抽出条件が多いときは一個ずつ計算して合計。 式を理解するのが大変だけど、作ってしまえば後は一発。 http://kokoro.kir.jp/excel/sumif.html 一応、勉強の為に直接回答を示してませんが、慣れれば簡単なので、 自力で挑戦して見て下さい。
その他の回答 (3)
- zap35
- ベストアンサー率44% (1383/3079)
条件1の4月の集計はこんな式でも可能です =SUMPRODUCT(NOT(ISERROR(FIND({1000,1020,3000,3060},$A$2:$A$10)))*(C2:C10)) >ではどのようにすれば効率的に出来るのでしょうか? でも実務でこのような式を使うと表が変更されたとき、他の方はメンテナンスできるでしょうか? 個人的には後々を考えて、式が多少長くなるかもしれないですがSUMIF関数を4つならべる方法をおすすめします。 =SUMIF($A$2:$A$10,1000,C2:C10)+SUMIF($A$2:$A$10,1020,C2:C10)+SUMIF($A$2:$A$10,3000,C2:C10)+SUMIF($A$2:$A$10,3060,C2:C10)
お礼
有難う御座います。 教えて頂いた数式で上手く行きますね!
長い式になりますが、 条件1 =SUMPRODUCT((($A$2:$A$10="1000")+($A$2:$A$10="1020")+($A$2:$A$10="3000")+($A$2:$A$10="3060"))*(C$2:C$10)) 条件2 =SUMPRODUCT((($A$2:$A$10="1010")+($A$2:$A$10="2000")+($A$2:$A$10="2030"))*(C$2:C$10)) で如何でしょう。
お礼
ご回答有難う御座いました。 試みに例示した表でやって見たのですが上手くいきませんでした。
- assault852
- ベストアンサー率48% (1364/2797)
SUMIFとSUMIFを足せばいいじゃないですか。 =SUMIF(B12:B13,1000,C12:C13)+SUMIF(B12:B13,1010,C12:C13)
お礼
ありがとうございます。 SUMIFを加算していくのは解るのですが、 もっと簡潔な数式で出来ないのかを探していました。
お礼
ありがとうございます。 3.のリンク先に書いてあるDSUM関数で出来ました。