- ベストアンサー
SUMIFS関数でOR条件を使いたい場合の方法
- Excel2010を使用している場合、SUMIFS関数でOR条件を使用する方法について説明します。
- 家計簿の作成において、合計欄の円とドルをそれぞれ分けて項目毎の合計額を出したい場合、セルE21のように、円の場合は「MUFJ」と「ゆうちょ」のSUMIFS関数合計値を足します。
- 明細行の列を増やさずに処理するためには、SUMIFS関数のOR条件が使えないため、別の方法を検討する必要があります。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
例示のデータなら以下のような数式になります。 =SUM(SUMIFS($C$2:$C$14,$D$2:$D$14,{"MUFJ","ゆうちょ"},$B$2:$B$14,B21))
その他の回答 (3)
- bunjii
- ベストアンサー率43% (3589/8249)
>図では円の銀行は2つですが、実際は10くらいあり、全部加算すると長くなってしまいます。 代替関数ではSUMPRODUCT関数が利用可能です。 貼付画像は模擬データで検証した結果です。 =SUMIFS(C2:C11,A2:A11,"A",B2:B11,"I")+SUMIFS(C2:C11,A2:A11,"B",B2:B11,"I") =SUMPRODUCT((A2:A11={"A","B"})*C2:C11,(B2:B11={"I","I"})*1) この2つの数式は等価です。 あなたの目的にはSUMPRODUCT関数が適していると思います。 A列の文字が"A"または"B"でB列の文字が"I"である行のC列の合計を算出しています。 SUMPRODUCT関数の中で扱う配列は行数と列数に食い違いが無いように定義します。
お礼
回答ありがとうございます。 SUMPRODUCT関数を使えばよかったんですね。 図は単純な項目値の合計でしたが実際は月ごとに項目値を求めたかったので、 =SUMPRODUCT(($B$2:$B$14={"仕事","仕事","仕事"})*$C$2:$C$14,($D$2:$D$14={"JALUSA","BnkOfHawaii","小切手"})*1,(LEFT($A$2:$A$14,6)={"2014/4","2014/4","2014/4"})*1) というような数式になりました。 ISNUMBERでもできそうですがうまくいきませんでした:(
- High_Score
- ベストアンサー率25% (45/176)
MUFJとゆうちそれぞれのsumifを足算すればいいだけです。 =sumif()+sumif
お礼
補足とお礼を間違えました。 遅くなりましたがありがとうございました。
補足
回答ありがとうございます。 やはり加算するしかないですよね。 図は簡易に書いたのですが、実際は月ごとに項目の合計値を出したりしているため、SUMIFSを使用しています。
- bunjii
- ベストアンサー率43% (3589/8249)
>セルE21のように、円の場合は「MUFJ」「ゆうちょ」ですので、MUFJとゆうちょのSUMIFS関数合計値を足しています。 それで良いのではないでしょうか? 論理式を四則演算式に置き換えるとORは加算でANDは乗算です。 従って、SUMIFS関数の結果を加算すればORで絞り込んだことになります。 強いて加算の記号(+)を省いた数式にするにはSUM関数で囲い込むことで良いでしょう。 =SUM(SUMIFS(合計範囲,条件範囲1,条件1,条件範囲2,条件2),SUMIFS(合計範囲,条件範囲1,条件3,条件範囲2,条件4))
お礼
補足とお礼を間違えました。 遅くなりましたがありがとうございました。
補足
回答ありがとうございます。 図では円の銀行は2つですが、実際は10くらいあり、全部加算すると長くなってしまいます。 SUMIFS関数の複数条件式にORが使えればな~と思い、簡潔に書ける代替関数はないかと質問しました。 しかしSUMIFSにしてもSUMにしてもOR条件は繋げるしかないですよね・・
お礼
回答ありがとうございます。 求めていた答えでした! SUMで入れ子にすれば並列できるんですね。 どうもありがとうございました。