- ベストアンサー
エクセル2003 SUMIFの組み合わせ
A列| B列| C列|D列 | E列 | F列 4| 2012/4/16| H| 100 | 4月の計 | 5月の計 4| 2012/4/17| J| 100 | 5| 2012/5/12| J| 100 | 5| 2012/5/13| H| 100 | 上の表でA列には=month(B2)の関数で月だけ表示するようにしています。 4月のJの合計と5月のJの合計をE列、F列に出すにはどう関数を組めばよいですか? 以下の様に組みましたが、どこが違うでしょうか? =IF(A:A=4,(SUMIF(C:C,"J",D:D)),"")-----4月計 =IF(A:A=5,(SUMIF(C:C,"J",D:D)),"")-----5月計 よろしくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは! 条件が複数の場合はSUMPRODUCT関数で対応ます。 仮に4月・Jの合計は =SUMPRODUCT((A1:A1000=4)*(C1:C1000="J"),D1:D1000) としてみてください。 5月の場合は上記数式内の「4」の部分を「5」にすればOKです。 ※ SUMPRODUCT関数は配列数式になってしまいますので、データ量が極端に多い場合は PCにかなりの負担となり、計算速度がかなり遅くなります。 という訳で、列全体を範囲指定するのではなく、1000行程度の数式にしています。 参考になりますかね?m(__)m
その他の回答 (1)
- tsubuyuki
- ベストアンサー率45% (699/1545)
せっかくですので、解説と対策です。 ご提示の式 > =IF(A:A=4,(SUMIF(C:C,"J",D:D)),"")-----4月計 > =IF(A:A=5,(SUMIF(C:C,"J",D:D)),"")-----5月計 この位置にIFを入れると、表示するかしないかの違いに過ぎません。 「"A列が4"の行の合計」にはできないわけです。 思いついた対策です。 A列のMONTH()式を、 =MONTH(B1)&C1 とし、"4J"あるいは"5J"と表示するようにします。 E列のSUMIF()式もちょっと変更して、4月分だと =SUMIF(A:A,"4J",D:D) としてやります。 5月の分なら =SUMIF(A:A,"5J",D:D) としてやる感じです。 ここにはIF()は必要無いと思います。 参考にしていただければ幸いです。
お礼
出来ました!ありがとうございました。