エクセル複数条件カウントの方法

このQ&Aのポイント
  • EXCEL2003を利用して、複数条件の関数(SUMIF/CONUTIFまたはSUMPRODUCT)を使って値を合計したり、個数を数えたりする方法について教えてください。
  • 例えば、A6〜A9のセルの中に特定の値がある場合、C6〜C9の値を合計する方法や、C6〜C9の中の特定の値の個数を数える方法について知りたいです。
  • また、複数条件を用いて値を合計した結果を個数で割ることで平均値を求める方法についても教えてください。
回答を見る
  • ベストアンサー

エクセル 複数条件 カウント

お世話になります。 EXCEL2003を利用しております。 複数条件の関数(SUMIF/CONUTIFまたはSUMPRODUCT)等について教えてください。 例)   A   B  C  D  E  F 1 4              結果 2 5 3 6 4 5 6 4     100 7 4       0 8 5     200  9 5     300 (1)A6~A9の中に A1があった場合 C6~C9を合計する →=SUMIF(A6:A9、A1、C6:C9) (2)A6~A9の中に A1があった場合 C6~C9の個数を求める かつ0以上のものに限定する →わかりません。 (3) (1)/(2)で平均を出す。 → (A6~A9にA1は2あり合計は100である)/(C6~C9にはA1に該当する列は2、かつ、0以上は1つある)=平均は100である  (3)を出したいです。 いい方法ございますでしょうか?? 調べて行き詰まりました。

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.2

ん? >原因はSUMPRODUCTの結果が0の表示になるためです。 それは 1)A6:A9がA1に等しく、かつC6:C9がゼロより大きい個数が「確かにゼロ個である」のでエラーになったのか 2)SUMPRODUCT((A6:A9=A1)*(B6:B9>0))に該当する個数が見た目ゼロじゃないのに#DIV/0のエラーになるのか 何が言いたかったのですか? 該当する個数が確かにゼロ個であるなら、ゼロ割りのエラーになるのは当然の事です。 エラーが出るのがイヤなのでどうにかしたい、という事を質問したかったのでしたら =IF(SUMPRODUCT()=0,"",SUMIF()/SUMPRODUCT()) のようにしてください。 一見するとSUMPRODUCTはゼロにならないハズなのに実地のシートではゼロ割エラーが出ましたという事を質問したかったのでしたら、サンプル表では確かに上手くいったことで判るように、数式の問題じゃありません。実地のシートで、何かの手違いがあるからです。 何が間違ってるのか、実物を持ってるあなたがよく調べて、確認してください。こちらも千里眼じゃありませんので、具体的な情報提供も無しで、何が判るでしょう。 例えば1)単純に数式を直し間違えている   →よく確認して数式を作成し直します。 こういう質問相談掲示板では、非常に多くこういう具合に「勝手に間違えてできない」ご相談があります。 例えば2)たとえば「A6:A9」に記入されている内容と、A1に記入されている内容が、一見同じに見えているけど実は同じ(イコール)ではないなど、データが間違ってる  →A6:A9にある中からコピーしてA1に記入してみます

park-adam85
質問者

お礼

内容再確認いたしました。 おっしゃる通り一見おなじようにみえても実はイコールではないものになっておりました。 何らかの方法で統一させます。 内容が不十分で申し訳ございませんでした。 ありがとうございました。

その他の回答 (1)

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

先に日本語の解決。 >かつ0以上のものに限定する ゼロ「より大きい」ものに限定したいのですね。 「以上」はゼロを含みます。 計算例: =SUMIF(A6:A9,A1,C6:C9)/SUMPRODUCT((A6:A9=A1)*(B6:B9>0)) ちなみに「>」で「より大きい」を、「>=」で「以上」を計算できますので、適宜応用してください。

park-adam85
質問者

お礼

早速の回答ありがとうございました。 計算例をもとに自分の式に当てはめた結果 例で出したものに対しては完璧でした。 しかし、実用の表に当てはめると #DIV/0! が表示されます。原因はSUMPRODUCTの結果が0の表示になるためです。 IFSUMは上手く反映されているようです。 実用版ではそれぞれ異なるシートより数字を引張てくるようになっており 何か原因があるのでしょうか? お手数をおかけいたします。

関連するQ&A

  • 縦に複数条件がある場合の合計値

    エクセル2003です ネットで検索したら横に複数条件がある場合は、SUMPRODUCTなどを使うといいというのはわかったのですが 縦に複数条件ある場合は、SUMIFで足してくしかないのでしょうか? 例えば A列      B列 果物     個数 みかん    3 りんご    2 バナナ    1 りんご    2 みかん    5 D2 りんご D3 みかん と言うデータがあり みかんとりんごだけの合計値がほしい場合は =SUMIF(A:A,D2,B:B)+SUMIF(A:A,D3,B:B) でもとめられますが、 もっと簡素化したいです。 (あまり「+」は使いたくない) SUMIFをまとめられますか? もっと効率のいい関数があれば教えて下さい。 よろしくお願い致します。

  • エクセル 複数条件

    教えてください!!    A列  B列  C列 1  済   B   100   2       A   200 3       B   100  4  済    A   200 5       C   100 A列が空白で、B列に「A」と「B」が入力されている、C列の合計を求める関数がわかりません。 B列にAとBが入力されているC列の合計は「=SUMIF(A1:A5,"A",C1:C5)+SUMIF(A1:A5,"B",C1:C5)] で求めることができました。この条件に「A列が空白(未入力)」の場合という条件を加えたいのです。 関数覚えたてなので解りやすく教えていただければありがたいです。 よろしくお願いします。

  • Excel2010 複数条件の計算方法

    複数の条件に該当する項目の合計を計算したいのですが、関数の作り方が分かりません・・・ 例えば、A列に文字があってB列に数値が入力されている表があったとして、A列にある項目の中から2つ以上に該当する数値の合計を計算する場合、どのような関数にすれば良いのでしょうか? 例えば、A列に果物の名前(りんご、みかん、ぶどう、メロン・・・)があり、B列にその値段が入っていて、「りんご」と「みかん」と「メロン」の値段の合計を算出するような場合、どのような関数になりますか? 条件がひとつであれば、SUMIF関数を使って計算できるかと思いますが、2つ以上の場合、どのようにすれば良いか分からないのです。 Officeのバージョンは2010です。 ネットで検索してもイマイチ分かりませんでした。どなたか簡単に教えて頂けますでしょうか?

  • Excel 複数条件+”かつ”

    標題の通りです。 例えば、A1~A100に1~10までの数字が、B1~B100に11~20までの数字が、個数に関係なくランダムに入っているとします。 (1)A列の中で3以上7以下の個数を求めるには、COUNTIFで(7以下の個数)-(3以下の個数)で求めればいいですよね。(SUMPRODUCTを使う方法もあるみたいですが) (2)A=4 かつ B=15の個数を求めるにはSUMPRODUCTを使用すれば求まりますよね。 ここまでは、ネットで調べて理解しました。 ここからが本題です。 (1)と(2)を合体させて、A列の中で3以上7以下 かつ B列の中で11以上13以下の個数を求めるのにどうすればいいのかが分かりません。 A   B 1   12  4   11  4   17  5   13  6   20  3   14  答え:2個 てな具合で個数を求めたいのですが、色々と式を作ってみてもエラーになったりすべての値が0になったりで上手く行きません。 よろしくお願いします

  • excel 条件の設定法

    例えばsumif関数の場合、 sumif($A$2:$A$7,F1,$C$2:$C$7) (A列の中からF1と一致するC列の合計) ですよね? そこで sumif($A$2:$A$7,F1,F2) F2セルの内容:$C$2:$C$7 (A列の中からF1と一致するF2の示す範囲(つまりC列)における合計) のようにしたいのですが、よい方法が分かりません。 他のセルからのリンクで範囲を指定する方法をご教授していただけないでしょうか?

  • 複数の検索条件の合計

    複数の検索条件がある場合の結果の合計を求める関数を教えてください。 例えばA列にりんご・みかん・ばなな・りんご・りんごがあり B列に値段(100円・200円・100円・150円・100円) C列に個数(3・2・2・3・1)があるような場合で りんごの中で100円で販売した個数の合計(この場合4)、というような。 説明が雑ですがよろしくお願いします。

  • エクセルにおける複数条件の関数について

    下記の内容を別シートに集計したいのですが、 関数が間違えているのかうまく数値が表示されません。 Aシートに以下の情報が入っています。 Cの列、C5からC54までの範囲に1から100の間で数字が入っています。 Dの列、D5からD54までの範囲に2013/6/1から2013/7/15までの日付が入っています。 例:C5に2と入っていて、D5に2016/6/3と入力されていれば該当し、 C5の2という値を別シートにその他のC列とあわせて合計を表示されるようにしたいです。 表示をさせたいBシートには、 D列のD5からD54範囲内の6月分(2014/6/1から2014/6/30まで)で、 C列に入力されている数値の合計を1つのセルに表示させたいです。 この場合の関数をお伺いしたい内容になります。 今、うまくいかない関数は、以下のような内容です。 =SUMPRODUCT(('201406'!$C$5:$C$54="○")*('201406'!$BW$5:$BW$54>="2014/6/1"*1)*('201406'!$BW$5:$BW$54<"2014/7/1"*1)) これだと、C列に○が入っていれば、その合計を表示できると思いますが、 1や5などの数字の合計を表示させるには・・で、困っています。 アドバイスいただけたらと思います。 ※関数をそのまま入力いたいと思っていますので、 返信は、関数でアドバイスいただけたら幸いです。 宜しくお願い致します。

  • :【Excel】複数の条件を満たす合計を出す関数

    大変こまっております。みなさまのお力を貸してください!よろしくお願いします。 以前、このような質問がありました、  A    B    C 1 果物  銘柄  購入数 2 りんご ふじ  21 3 りんご 王林   3 4 ぶどう デラ  15 5 ぶどう 巨峰  16 6 りんご ふじ   2 7 ぶどう 巨峰   7 上記のような表があります。 別な場所に、りんご&ふじの条件を満たす場合の購入数の合計を出したいのですが、関数を教えて下さい。 SUMIFで複数の条件を指定することできるのでしょうか? そして、もちろん以下のような宣言文で可能なのですが、 SUMPRODUCT((A1:A7="りんご")*(B1:B7="ふじ")*(C1:C7)) なのですが、りんご、ふじの部分を数字にしてしまうと答えが0となり出てきません!! すごくこまってます・・・ なぜなのでしょうか?? まったく同じ宣言文で、宣言文ないの文字列に確答すつ数字を入力してます。 ちなみに下記のような場合です。 A  B    C 1 300 4000  200 2 300 5000   200 3 300 2000   200 4 400 4000  200 5 300 5000  300 6 500 2000   300 という数列があるとします。 んでやりたいことは、 複数の条件(2つ)を満たす時のC列の合計。 つまりは、A列の特定の数字とB列の特定の数字を満たすときの、C列の合計。 を出したいんです。 =SUMPRODUCT((A1:A6="300")*(B1:B6="5000")*(C1:C6)) と打ったのですが、どこか間違ってる点を教えて下さい。 これでゆうと、答えは500とでてきてほしいのですが・・ よろしくお願いします!!

  • エクセルで2つの条件に合うセルの合計

    エクセルで2つの条件に合うセルの合計 こんにちは。 例えば、以下のようにシート上にあるとします。 1 上 100 2 上 200 1 下 150 2 下 500 1 下 30 A列は1か2の数字 B列は上か下の文字 C列は数字 このシートでA列が1でかつ、B列が下の場合のC列を合計したいのですが、SUMIF関数でできるのでしょうか?他の関数でもかまいません。自分で関数を作るのはなしでお願いします。 (動作が重くなるので) ちなみに、上記の場合は、3行目と5行目が該当しますので、150+30=180となります。 -- エクセル2003

  • エクセルで、検索条件と合計範囲の異なる“カウント”

    職場でExcel2003を使っています。 こんなデータを集計する必要が出てきました。  A         B     C     D    E 1会社名     店舗名  商品A  商品B 商品C 2株式会社A  店舗a   0個    12個   13個 3株式会社A  店舗b   1個    12個   0個 4株式会社A  店舗c   0個    0個    0個 5株式会社B  店舗a   5個    12個   13個 6株式会社B  店舗b   0個    0個   13個 7株式会社B  店舗c   6個    12個   3個 8株式会社B  店舗d   0個    12個   14個 ↑この表のデータを、 A社    商品A取扱店舗数 商品B取扱店舗数 商品C取扱店舗数       商品A販売個数   商品B販売個数  商品C販売個数 B社   商品A取扱店舗数 商品B取扱店舗数 商品C取扱店舗数       商品A販売個数   商品B販売個数  商品C販売個数 C社… という表にしたいのですが、ココに入れる関数。 販売個数の方は簡単にいきました、sumif($A$1:$A$8,"会社名"、C$1:C$8)てやればよかったので。 が、取扱店舗数の方が、難問。 sumifだと、検索条件の範囲と、合計範囲って別に設定できるじゃないですか。 “A列で、A社て入っている行の、C列の数字を合計する” という設定が出来る。 ところが、販売店数となると…。 sumifと全く同じ要領で、 “A列で、A社と入っている行の、C列のデータ個数を数える” という作業を、したいんですが…countifでは「A列で、A社と入っている行の数を数える」のが精一杯。 A社    count(C$2:C$4) count(D$2:D$4) count(E$2:E$4)       商品A販売個数   商品B販売個数  商品C販売個数 B社    count(C$5:C$8) count(D$5:D$8) count(E$5:E$8)       商品A販売個数   商品B販売個数  商品C販売個数 C社… とする方法もありますが(上の表の店舗は増えたり減ったりしない予定なので)、最初が大変だし、sumifのように、関数一つで何とかならないだろうか、と…。 配列数式?DCOUNT関数?? すみません、どなたか、お知恵を下さい…。