• ベストアンサー

エクセルSUMIF関数とOR条件

「X」の条件を満たすデータをの合計を計算したい場合SUMIF関数、「X」および「Y」の条件を満たすデータの合計を計算したい場合は、SUMPRODUCT関数が使えると思いますが、 「X」または「Y」の条件を満たすデータの合計を計算したい場合は、 SUMIF(検索範囲,"X",合計範囲)+SUMIF(検索範囲,"Y",合計範囲)とやるしかないですか? それとも、SUMIFを並べなくても、1回で計算できる関数がありますか? ご存知の方、ご教授下さい。 どうぞよろしくお願いいたします。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.6

こんばんは。 >条件が5個以上になると、さすがに式が長くなりすぎて見苦しいですので それなら、こんな方法も思いつきます。 =SUMPRODUCT((LEN(SUBSTITUTE("XY",検索範囲,""))<2)*合計範囲) (注意:大文字小文字の区別があります。) 数式の中の「<2」 の 2 は、検索値 "XY" のことです。 検索値が、5個なら、<5 です。

noname#64992
質問者

お礼

度々の詳しい解説をありがとうございました。 本当に助かりました。

その他の回答 (5)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.5

こんにちは。 >「{}」というカッコは私はエクセルで使った記憶がないのですが、 >これはどういうときに使うものなのでしょうか? {} は、その中が配列(特別なメモリ上で複数のデータを保有する)になるということです。 ただ、そのまま、配列にしても、それを計算しませんので、SUMPRODUCT という関数が必要になります。

  • dghjty145
  • ベストアンサー率46% (42/90)
回答No.4

Ano.1のものです。 >ちなみに「>=1」は入れなくても同じ結果が出たのですが、 もし、「>=1」をいれないと、 検索範囲="X" と検索範囲="Y"がいずれも真の時、 ( (検索範囲="X")+(検索範囲="Y") の値が2になり、 該当する値を2倍してしまいます。 もし、お手持ちのデータにおいて、検索範囲="X" と検索範囲="Y"が同時に成り立つことがなければ、>=1はなくともよいです。 たとえば、検索範囲="X" と検索範囲="Y"の検索範囲が同じ場合などは>=1はなくともよいです。

noname#64992
質問者

お礼

度々の詳しい解説をありがとうございました。 本当に助かりました。

  • dghjty145
  • ベストアンサー率46% (42/90)
回答No.3

Ano1のものです。 =SUMPRODUCT ( ( ( (検索範囲="X")+(検索範囲="Y") )>=1 )*合計範囲)でした。 一番左に(をいれます。

noname#64992
質問者

お礼

再度のご回答ありがとうございます。 ためしてみたところ、同じ結果が出ました!感動です。 ちなみに「>=1」は入れなくても同じ結果が出たのですが、 これはどういう意味があるのでしょうか? よろしければお教え下さい。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 >SUMIF(検索範囲,"X",合計範囲)+SUMIF(検索範囲,"Y",合計範囲)とやるしかないですか? >それとも、SUMIFを並べなくても、1回で計算できる関数がありますか? 数式をコピペして、中身だけ替えて、「+」を入れるだけですから、以下のような配列数式を使う必要性はあまりないように思います。 =SUMPRODUCT(SUMIF(検索範囲,{"X","Y"},合計範囲))

noname#64992
質問者

お礼

ご回答ありがとうございます。 早速ためしてみたところ、同じ計算結果が出ました! 確かに、検索条件が2、3個であれば、SUMIFを並べたほうが簡単な気がしますが、 条件が5個以上になると、さすがに式が長くなりすぎて見苦しいですので 大変参考になります。ありがとうございます。

noname#64992
質問者

補足

たびたび恐れ入ります。 ちなみに「{}」というカッコは私はエクセルで使った記憶がないのですが、 これはどういうときに使うものなのでしょうか? 併せて教えていただけるとうれしいです。

  • dghjty145
  • ベストアンサー率46% (42/90)
回答No.1

やはりSUMPRODUCT関数で以下のようにすれば良いと思います。 =SUMPRODUCT( ( (検索範囲="X")+(検索範囲="Y") )>=1 )*合計範囲)

noname#64992
質問者

お礼

ご回答ありがとうございます。 「(」が4個なに対し、「)」が5個あるようですが もう一個の「(」はどこに入れればよろしいでしょうか?

関連するQ&A

専門家に質問してみよう