- ベストアンサー
エクセルSUMIF関数とOR条件
「X」の条件を満たすデータをの合計を計算したい場合SUMIF関数、「X」および「Y」の条件を満たすデータの合計を計算したい場合は、SUMPRODUCT関数が使えると思いますが、 「X」または「Y」の条件を満たすデータの合計を計算したい場合は、 SUMIF(検索範囲,"X",合計範囲)+SUMIF(検索範囲,"Y",合計範囲)とやるしかないですか? それとも、SUMIFを並べなくても、1回で計算できる関数がありますか? ご存知の方、ご教授下さい。 どうぞよろしくお願いいたします。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
こんばんは。 >条件が5個以上になると、さすがに式が長くなりすぎて見苦しいですので それなら、こんな方法も思いつきます。 =SUMPRODUCT((LEN(SUBSTITUTE("XY",検索範囲,""))<2)*合計範囲) (注意:大文字小文字の区別があります。) 数式の中の「<2」 の 2 は、検索値 "XY" のことです。 検索値が、5個なら、<5 です。
その他の回答 (5)
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 >「{}」というカッコは私はエクセルで使った記憶がないのですが、 >これはどういうときに使うものなのでしょうか? {} は、その中が配列(特別なメモリ上で複数のデータを保有する)になるということです。 ただ、そのまま、配列にしても、それを計算しませんので、SUMPRODUCT という関数が必要になります。
- dghjty145
- ベストアンサー率46% (42/90)
Ano.1のものです。 >ちなみに「>=1」は入れなくても同じ結果が出たのですが、 もし、「>=1」をいれないと、 検索範囲="X" と検索範囲="Y"がいずれも真の時、 ( (検索範囲="X")+(検索範囲="Y") の値が2になり、 該当する値を2倍してしまいます。 もし、お手持ちのデータにおいて、検索範囲="X" と検索範囲="Y"が同時に成り立つことがなければ、>=1はなくともよいです。 たとえば、検索範囲="X" と検索範囲="Y"の検索範囲が同じ場合などは>=1はなくともよいです。
お礼
度々の詳しい解説をありがとうございました。 本当に助かりました。
- dghjty145
- ベストアンサー率46% (42/90)
Ano1のものです。 =SUMPRODUCT ( ( ( (検索範囲="X")+(検索範囲="Y") )>=1 )*合計範囲)でした。 一番左に(をいれます。
お礼
再度のご回答ありがとうございます。 ためしてみたところ、同じ結果が出ました!感動です。 ちなみに「>=1」は入れなくても同じ結果が出たのですが、 これはどういう意味があるのでしょうか? よろしければお教え下さい。
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 >SUMIF(検索範囲,"X",合計範囲)+SUMIF(検索範囲,"Y",合計範囲)とやるしかないですか? >それとも、SUMIFを並べなくても、1回で計算できる関数がありますか? 数式をコピペして、中身だけ替えて、「+」を入れるだけですから、以下のような配列数式を使う必要性はあまりないように思います。 =SUMPRODUCT(SUMIF(検索範囲,{"X","Y"},合計範囲))
お礼
ご回答ありがとうございます。 早速ためしてみたところ、同じ計算結果が出ました! 確かに、検索条件が2、3個であれば、SUMIFを並べたほうが簡単な気がしますが、 条件が5個以上になると、さすがに式が長くなりすぎて見苦しいですので 大変参考になります。ありがとうございます。
補足
たびたび恐れ入ります。 ちなみに「{}」というカッコは私はエクセルで使った記憶がないのですが、 これはどういうときに使うものなのでしょうか? 併せて教えていただけるとうれしいです。
- dghjty145
- ベストアンサー率46% (42/90)
やはりSUMPRODUCT関数で以下のようにすれば良いと思います。 =SUMPRODUCT( ( (検索範囲="X")+(検索範囲="Y") )>=1 )*合計範囲)
お礼
ご回答ありがとうございます。 「(」が4個なに対し、「)」が5個あるようですが もう一個の「(」はどこに入れればよろしいでしょうか?
お礼
度々の詳しい解説をありがとうございました。 本当に助かりました。