- ベストアンサー
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が入っているという条件で、その行の別のセルがある条件に該当する数を計算する場合はどうするのでしょうか?
- みんなの回答 (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))
その他の回答 (1)
- KURUMITO
- ベストアンサー率42% (1835/4283)
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))
お礼
ありがとうございます。 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))