• ベストアンサー

SUMPRODUCT関数 『複数条件』に当てはまらない個数

いつもお世話になっております。 【データ】    A    B     C   D 2   1     4      4 3   2     2     2 4   3    5     1 ・   ・   ・     ・    ・ ・ ・ というように1から5までの値が入っています。           A      B      C パターン1   A>=4    B>=4    C>=4 パターン2   A<2             C>=4 パターン3                  C<3 パターン4                 3=<C<4 『パターン1~4に当てはまらない』データのD列の合計を出したいのですが、 どのようにしたら出るのかわかりません。 ちなみに、上記のパターンは、AかつBかつCという条件になっています。 例えば、パターン1は、「Aが4以上かつBが4以上かつCが4以上」という意味です。 説明の仕方がわかりにくいと思いますが、どうぞ宜しくお願い致します。

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

  • ベストアンサー
  • mshr1962
  • ベストアンサー率39% (7417/18945)
回答No.6

優先順に除外の条件整理すると パターン1' C>=4(パターン3,4の除外)[絶対条件] パターン2' A>=2(パターン2の除外)[C>=4が確定の絶対条件] パターン3' A<4,B>=4(パターン1の除外の1)[C>=4,A>=2が確定のB>=4の場合の条件] パターン4' A>=4,B<4(パターン1の除外の1)[C>=4,A>=2が確定のB<4の場合の条件] となるので パターン1'Andパターン2'And(パターン3'orパターン4')[パターン3',4'に重複範囲はなし]のDの合計なら =SUMPRODUCT((C>=4)*(A>=2)*((A<4)*(B>=4)+(A>=4)*(B<4)),D)

katakko
質問者

お礼

ご回答、ありがとうございます。 >((A<4)*(B>=4)+(A>=4)*(B<4)), パターン1'~パターン2' はわかったのですが、 こうやって書くのですね。。勉強になります。 これから試してみます。 また、知人から 『他の列にパターンのマークをつけて、どこにもマークがないものを集計したりとすればよいのではないですか』と助言を頂きました。 こちらも試したいと思います。 丁寧に回答していただき、とてもよく分かりました。 本当にありがとうございました。

すると、全ての回答が全文表示されます。

その他の回答 (5)

  • imogasi
  • ベストアンサー率27% (4737/17070)
回答No.5

質問の書き方が稚拙。 >当てはまらない なら当てはまるほうを書く必要なく、直接当てはまるほうを書いたら(考えたら)。 NOT関数を使う手もあるかも知らない(未確認)が、凝らなくて良いと思う。 >AかつBかつCという条件になっています AND条件であればSUMPRODUCT関数では =SUMPRODUCT((A列条件表現)*(B列条件表現)*(C列条件表現)) と*を使うのは知っているのかどうか。知っているなら、今までやったパターンでも書いて質問したら。 質問する前にSUMPRODUCT関数の解説など読み、自分で試行してみるべきである。 ーー パターン1では A列条件表現 4以下  (A1:A100<4) B列条件表現 4以下  (B1:B100<4) C列条件表現 4以下  (C1:C100<4) これでデータが小数点数もあるらしいが、上記式で正しいか(該当するか)やってみて。 -- 条件が無い列文がしに部分の()をそっくり省略すればよい。 (パターン2,3,4など)

katakko
質問者

お礼

ご回答、ありがとうございます。 質問の書き方が稚拙で、申し訳ありません。。(イヤみで書いてるわけではありませんよ(笑)) >なら当てはまるほうを書く必要なく、直接当てはまるほうを書いたら(考えたら)。 考えたら一直線のところがありまして、 パターン1~4の場合のD列の合計をだしてグラフを作成していました。 そして、「ではパターン1~4に当てはまらないものは」というように 集計が進んで、頭の中が『当てはまらない・・・当てはまらない』となってしまったのです。 >*を使うのは知っているのかどうか。知っているなら、今までやったパターンでも書いて質問したら。 知っています。こちらでは、SUMPRODUCT関数について色々教えていただき、パターン1についてもSUMPRODUCT関数を使って計算しました。今、調べましたら、imogasiさんにも先日お世話になっていました!ありがとうございます! 紙に書きながら色々考えてから質問しましたが、自分が考えている範囲でも書けばよかったです。稚拙な質問となってしまいました。申し訳ありません。 >パターン1では、A列条件表現・・・ こちらは、A、B、Cは4以下ではない場合もあるのです。。それがまたごちゃごちゃしてしまって。 今回もご回答、ありがとうございました。 これからの質問の仕方にも気をつけたいと思います。

すると、全ての回答が全文表示されます。
noname#176215
noname#176215
回答No.4

それだけ条件がはっきりしているのですから 条件を書き出して DSUM 関数で集計すればいいように思います。

katakko
質問者

お礼

ご回答ありがとうございます。 >それだけ条件がはっきりしているのですから そうですね。。 実際はもっと列が多いので、頭の中がごちゃごちゃしてしまいました。 考えてみます。 ありがとうございました。

すると、全ての回答が全文表示されます。
  • Cupper
  • ベストアンサー率32% (2123/6444)
回答No.3

条件が成り立つ場合のSUMPRODUCT関数を書くことができるのであれば (全てのパターン数)-(条件の成り立つパターン数) でOK 条件部分は  (A>=4)*(B>=4)*(C>=4) + (A<2)*(C>=4) + (C<3) + (C>=3)*(C<4) で良いと思います ブール(Boolean)代数を覚えると、上記のような引き算をしなくてもSUMPRODUCT関数だけで条件を設定することができます。 また、複雑な条件も簡素にすることができるかもしれません。 ※例えば、パターン4は C=3 にすることができます (見た目に分かりやすくなることもありますが、数式から初期の条件を読み取れない場合もあります) これを機会にブール代数を覚えてみてはいかがでしょう。 ※SUMPRODUCT関数の記述方法についてはExcelのヘルプや解説サイト、解説書籍などを参照してください

katakko
質問者

お礼

ご回答、ありがとうございます。 申し訳ありません。私の説明不足でした。 値は、小数も入るのです。 >ブール(Boolean)代数を覚えると、上記のような引き算をしなくても>SUMPRODUCT関数だけで条件を設定することができます。 プール代数、覚えておきます。時間があるときに挑みたいと思います。 ありがとうございました。

すると、全ての回答が全文表示されます。
noname#79209
noname#79209
回答No.2

#1です。 合っていませんね。

すると、全ての回答が全文表示されます。
noname#79209
noname#79209
回答No.1

データは整数のみですよね? だとすれば、パターン4は「C=3」しかないですよね? つまり、C<=3ならパターン3,4に当てはまってしまいます。 従って、パターン1~4に当てはまらないのは、 少なくともC>=4です。よって AND(C>=4,OR(A<=3,B<=3)) では? 合ってるかな?

katakko
質問者

補足

ご回答、ありがとうございます。 >データは整数のみですよね? 申し訳ありません。私の説明不足でした。 小数もあるんです!!! パターン1~4に当てはまらないデータとして、    A    B     C   D 2  3.67   3.5    4.9 などがあります。 並べ替えをして手作業で調べました・・・・。 関数を使ってどうにか調べられないかと悩んでいます。。 ありがとうございました。

すると、全ての回答が全文表示されます。

関連するQ&A