• ベストアンサー

エクセル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月計 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.1

こんにちは! 条件が複数の場合はSUMPRODUCT関数で対応ます。 仮に4月・Jの合計は =SUMPRODUCT((A1:A1000=4)*(C1:C1000="J"),D1:D1000) としてみてください。 5月の場合は上記数式内の「4」の部分を「5」にすればOKです。 ※ SUMPRODUCT関数は配列数式になってしまいますので、データ量が極端に多い場合は PCにかなりの負担となり、計算速度がかなり遅くなります。 という訳で、列全体を範囲指定するのではなく、1000行程度の数式にしています。 参考になりますかね?m(__)m

kitagaki
質問者

お礼

出来ました!ありがとうございました。

その他の回答 (1)

  • tsubuyuki
  • ベストアンサー率45% (699/1545)
回答No.2

せっかくですので、解説と対策です。 ご提示の式 > =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()は必要無いと思います。 参考にしていただければ幸いです。

関連するQ&A