いつもお世話になっております。
【データ】
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以上」という意味です。
説明の仕方がわかりにくいと思いますが、どうぞ宜しくお願い致します。
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)
ご回答、ありがとうございます。
>((A<4)*(B>=4)+(A>=4)*(B<4)),
パターン1'~パターン2' はわかったのですが、
こうやって書くのですね。。勉強になります。
これから試してみます。
また、知人から
『他の列にパターンのマークをつけて、どこにもマークがないものを集計したりとすればよいのではないですか』と助言を頂きました。
こちらも試したいと思います。
丁寧に回答していただき、とてもよく分かりました。
本当にありがとうございました。
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など)
ご回答、ありがとうございます。
質問の書き方が稚拙で、申し訳ありません。。(イヤみで書いてるわけではありませんよ(笑))
>なら当てはまるほうを書く必要なく、直接当てはまるほうを書いたら(考えたら)。
考えたら一直線のところがありまして、
パターン1~4の場合のD列の合計をだしてグラフを作成していました。
そして、「ではパターン1~4に当てはまらないものは」というように
集計が進んで、頭の中が『当てはまらない・・・当てはまらない』となってしまったのです。
>*を使うのは知っているのかどうか。知っているなら、今までやったパターンでも書いて質問したら。
知っています。こちらでは、SUMPRODUCT関数について色々教えていただき、パターン1についてもSUMPRODUCT関数を使って計算しました。今、調べましたら、imogasiさんにも先日お世話になっていました!ありがとうございます!
紙に書きながら色々考えてから質問しましたが、自分が考えている範囲でも書けばよかったです。稚拙な質問となってしまいました。申し訳ありません。
>パターン1では、A列条件表現・・・
こちらは、A、B、Cは4以下ではない場合もあるのです。。それがまたごちゃごちゃしてしまって。
今回もご回答、ありがとうございました。
これからの質問の仕方にも気をつけたいと思います。
No.4
- 回答日時:
それだけ条件がはっきりしているのですから 条件を書き出して DSUM
関数で集計すればいいように思います。
ご回答ありがとうございます。
>それだけ条件がはっきりしているのですから
そうですね。。
実際はもっと列が多いので、頭の中がごちゃごちゃしてしまいました。
考えてみます。
ありがとうございました。
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のヘルプや解説サイト、解説書籍などを参照してください
ご回答、ありがとうございます。
申し訳ありません。私の説明不足でした。
値は、小数も入るのです。
>ブール(Boolean)代数を覚えると、上記のような引き算をしなくても>SUMPRODUCT関数だけで条件を設定することができます。
プール代数、覚えておきます。時間があるときに挑みたいと思います。
ありがとうございました。
No.1
- 回答日時:
データは整数のみですよね?
だとすれば、パターン4は「C=3」しかないですよね?
つまり、C<=3ならパターン3,4に当てはまってしまいます。
従って、パターン1~4に当てはまらないのは、
少なくともC>=4です。よって
AND(C>=4,OR(A<=3,B<=3))
では?
合ってるかな?
この回答への補足
ご回答、ありがとうございます。
>データは整数のみですよね?
申し訳ありません。私の説明不足でした。
小数もあるんです!!!
パターン1~4に当てはまらないデータとして、
A B C D
2 3.67 3.5 4.9
などがあります。
並べ替えをして手作業で調べました・・・・。
関数を使ってどうにか調べられないかと悩んでいます。。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・街中で見かけて「グッときた人」の思い出
- ・「一気に最後まで読んだ」本、教えて下さい!
- ・幼稚園時代「何組」でしたか?
- ・激凹みから立ち直る方法
- ・1つだけ過去を変えられるとしたら?
- ・【あるあるbot連動企画】あるあるbotに投稿したけど採用されなかったあるある募集
- ・【あるあるbot連動企画】フォロワー20万人のアカウントであなたのあるあるを披露してみませんか?
- ・映画のエンドロール観る派?観ない派?
- ・海外旅行から帰ってきたら、まず何を食べる?
- ・誕生日にもらった意外なもの
- ・天使と悪魔選手権
- ・ちょっと先の未来クイズ第2問
- ・【大喜利】【投稿~9/7】 ロボットの住む世界で流行ってる罰ゲームとは?
- ・推しミネラルウォーターはありますか?
- ・都道府県穴埋めゲーム
- ・この人頭いいなと思ったエピソード
- ・準・究極の選択
- ・ゆるやかでぃべーと タイムマシンを破壊すべきか。
- ・歩いた自慢大会
- ・許せない心理テスト
- ・字面がカッコいい英単語
- ・これ何て呼びますか Part2
- ・人生で一番思い出に残ってる靴
- ・ゆるやかでぃべーと すべての高校生はアルバイトをするべきだ。
- ・初めて自分の家と他人の家が違う、と意識した時
- ・単二電池
- ・チョコミントアイス
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBA 日付、未来の日付はエラー...
-
EXCEL VBAでの日付の表示について
-
Google AJAX Feed APIのRSS出力...
-
他のPCの日付・時刻の取得
-
VBA のMSG の入力部分で日付を...
-
サイトの日付がおかしいです。
-
VBA 日付・時刻の判別 時刻を認...
-
日付データの西暦・和暦について
-
エクセルのVBAで日付を検索し転...
-
Eclipseの対応する括弧の強調表...
-
時間を差し引く
-
コンボボックスの値を日付とし...
-
プログラミング言語についてで...
-
ユーザーフォームのラベルに日...
-
「eclipseで作るカレンダー(ス...
-
週間カレンダー vbscript
-
VBでの日時のFORMAT
-
最近、iPhoneがおかしいです 私...
-
iPhoneアプリのLINEの音が鳴ら...
-
ファミリーリンクの通知が消え...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ユーザーフォームのラベルに日...
-
DataGridViewでyyyy/MM/dd
-
VisualBasic6.0のFormat関数で...
-
Eclipseの対応する括弧の強調表...
-
エクセルのVBAで日付を検索し転...
-
特定の項目セルにスキャン(入...
-
テキストボックスにカレンダー...
-
VBA 日付、未来の日付はエラー...
-
今日より前の書き方 マクロ
-
コンボボックスに日付を表示する
-
システム日付とは?
-
【VBA】土日をスキップして日付...
-
3人のじゃんけんのプログラム
-
指定した日付が、その月の第何...
-
1本あたり○円と表示する時どの...
-
VB6.0 のformat関数について
-
VBAで当月の1日を表示するには...
-
テキストボックスに今日の日付...
-
VB 日付範囲チェック
-
【Excel VBA】条件に合った行の...
おすすめ情報