• ベストアンサー

Excel2007で

Excel2007で =SUMPRODUCT(ISNUMBER(FIND("A",$F18:$F332))*($N18:$N332=H348))+SUMPRODUCT(ISNUMBER(FIND("B",$F18:$F332))*($N18:$N332=H348)) でAという文字が入っているセルで、その行の別のセルがある条件に該当する数とBという文字が入っているセルで、その行の別のセルがある条件に該当する数を計算します。 これとは別に、1つのセルの中で、AないしはBが入っているという条件で、その行の別のセルがある条件に該当する数を計算する場合はどうするのでしょうか?

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

  • ベストアンサー
  • MackyNo1
  • ベストアンサー率53% (1521/2850)
回答No.2

まず、使用しているSUMPRODUCT数式についてですが、配列を何度も扱っていますので多くのセルに入力するとシートの動きが重くなる可能性があります。 そのような観点からは、重複データを含んで計算する元の数式は、以下のように配列定数を使って簡略化した数式で表示するほうが良いと思われます。 =SUMPRODUCT(ISNUMBER(FIND({"A","B"},$F18:$F332))*($N18:$N332=H348)) 複数の条件のいずれかに合致するOR条件のデータを検索する場合は、条件式を加算してその数字が1以上の条件にします。 =SUMPRODUCT((ISNUMBER(FIND("A",$F18:$F332))+ISNUMBER(FIND("B",$F18:$F332))>=1)*($N18:$N332=H348))

kojiro_i61
質問者

お礼

ありがとうございます。 SUMPRODUCT関数の条件式の書き方が、少しわかりました。 私は、以下のようにしましたが、同じようです。 '=SUMPRODUCT((ISNUMBER(FIND("a",$C4:$C12))+ISNUMBER(FIND("b",$C4:$C12)))*($D4:$D12=C17))-SUMPRODUCT((ISNUMBER(FIND("a",$C4:$C12))*ISNUMBER(FIND("b",$C4:$C12)))*($D4:$D12=C17))

その他の回答 (1)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.1

AおよびBが含まれているセルがある場合にはお示しの式では該当する数がその分、多くなりますね。そこでAおよびBが含まれているセルの数を考慮した次のような式にします。 =SUMPRODUCT(ISNUMBER(FIND("A",$F18:$F332))*($N18:$N332=H348))+SUMPRODUCT(ISNUMBER(FIND("B",$F18:$F332))*($N18:$N332=H348))-SUMPRODUCT(INT((ISNUMBER(FIND("A",$F18:$F332))+ISNUMBER(FIND("B",$F18:$F332)))/2)*($N18:$N332=H348))

関連するQ&A