- ベストアンサー
EXCELでデータを集計する方法が知りたい
- EXCELでデータを集計するのに困っています。関数やマクロの知識が少なくて困っています。りんごが0以上のセルをカウントする方法を教えてください。
- 上記のような表があり、りんごが0以上のセルをカウントする方法を教えてください。自分で調べながら関数を試みましたが、うまくいきませんでした。初心者でも理解できる方法をお教えください。
- EXCELでデータを集計するのに困っています。りんごが0以上のセルをカウントする方法を教えてください。初心者向けの説明をお願いします。
- みんなの回答 (8)
- 専門家の回答
質問者が選んだベストアンサー
>りんごが0以上のセルをカウントする方法はありますでしょうか? 質問の意味が一部不明です(皆さんからも2種類の回答が寄せられています)。 ご希望の操作は、りんごの行で条件1および条件2がいずれも0以上のセルをカウントするのか、りんごの行で条件1と条件2に入力されている数字が0以上のものをカウントしたいのかどちらなのでしょうか? りんごの行で条件1および条件2がいずれも0以上のセルをカウントしたいなら、以下の数式を利用できます(添付画像参照)。 エクセル2007の場合は(この関数の方が計算負荷が少ないのでお勧め) =COUNTIFS(B$2:B$100,F2,C$2:C$100,">=0",D$2:D$100,">=0") エクセル2003までなら =SUMPRODUCT((B$2:B$100=F2)*(C$2:C$100>=0)*(D$2:D$100>=0)) りんごの行で条件1と条件2に入力されている数字が0以上のものをカウントしたいなら以下の数式になります。 =SUMPRODUCT((B$2:B$100=F2)*(C$2:D$100>=0)) ちなみに、エクセルのバージョンによって使用できる関数や機能が異なりますので、質問の際には必ずバージョンを明記するようにしましょう。
その他の回答 (7)
- KURUMITO
- ベストアンサー率42% (1835/4283)
最もわかりやすい方法は作業列を作って対応することでしょう。 例えばE1セルには次の式を入力して下方にオートフィルドラッグします。 =IF(B1="","",COUNTIF(C1:D1,">=0")) これでE列にはそれぞれの行についてC列とD列に0以上の数値の数が表示されます。 そこでお尋ねのりんごについて0以上の数のあるセルの数ですが、他の果物についても求めたいでしょうから、例えばG1セルから下方に りんご、ばなな、メロン などと行を変えて入力します。 F1セルには次の式を入力して下方にオートフィルドラッグします。 =IF(G1="","",SUMIF(B:B,G1,E:E)) これでF列にはそれぞれの果物について0以上の数値のあるセルの数が表示されますね。 作業列を使わないで直接求めるのでしたら次のようにします。しかしこの方法はデータが多くなれば計算も重くなりますし、予めセルの範囲を定めて式を作ることが必要です。 F1セルには次の式を入力して下方にオートフィルドラッグします。 =IF(G1="","",SUMPRODUCT((B$1:B$1000=G1)*(C$1:C$1000>=0)+(B$1:B$1000=G1)*(D$1:D$1000>=0)))
お礼
ご回答ありがとうございます。 色々な方法があるのですね>< 少しずつ勉強していきたいと思います。
- Cupper
- ベストアンサー率32% (2123/6444)
やり方は一つではありません。 よく分からないときには、紙の上で行っていることを、そのまま Excelの表の上でやればよいです。 自分なら、E列やF列にでもメモを書き込みますよ。 E列にB列がリンゴなら1 F列に数量が0以上なら1 そして E列 と F列 にそれぞれ1が入った数を数えます。 …これを関数で行うか、一つずつ手で入力するかの違いはありますが結果は同じ物が得られますよね。 無理をして関数やマクロを使おうとせず、自身でできる範囲で処理をしてみましょう。 いきなり難しいことをやっても理解できないままで終わってしまいますから、 まずは使い方と言うよりも考え方から覚えていきましょう。 そして、手でやっていたことを関数やマクロで行えるようになれば大丈夫です。 …当然、便利な関数や複雑な事を一発で処理できるマクロなど、覚えることはたくさんあります。 ですが、「よくわからない」と言う状況であれば、まずは普通に手でやっていることをそのまま置き換える事を試してみてください。
お礼
>いきなり難しいことをやっても理解できないままで終わってしまいますから、 まずは使い方と言うよりも考え方から覚えていきましょう。 ご指摘の通りですね><; >やり方は一つではありません。 よく分からないときには、紙の上で行っていることを、そのまま Excelの表の上でやればよいです。 今後は、自分の考えを一旦纏めて、伝わり易くして質問したいと思います。 皆さんのご指摘に感謝すると同時に自分の説明の配慮の無さに恥ずかしい気持ちになりました>< 有難うございます。
- w-penguin001
- ベストアンサー率0% (0/1)
連投失礼します。 soixanteさんの構文を使えば、TやF(条件の判別)をすることなくできますね。 私は[">=0"]とすれば「0以上」と判別できると知らなかったもので・・・。 ぜひ正解にたどりつけるといいですね。頑張ってください。
お礼
w-penguin001様 励ましの言葉感謝です。 この度は、解りにくい質問にお付き合い頂きありがとうございます。
- w-penguin001
- ベストアンサー率0% (0/1)
まずは条件1と条件2が0以上かどうかを判別します。 E列に[=if(C1>=0,"T","F")] F列に[=if(D1>=0,"T","F")] 以下行はC1をC2~C8、D1をD2~D8に変換し入力すると E F --- T T F T T T T T F F T T T F T T となると思います。 で、G列に[=if(B1="りんご",countif(E1:F1,"T"),0)]と入力 *もしB1が"りんご"ならE1~F1の間で"T"の数を数えなさい、違うのであれば0を返しなさい* 以下行はB1をB2~B8、E1:F1をE2:F2 ~ E8:F8に変換し入力すると E F G ----- T T 2 F T 0 T T 0 T T 0 F F 0 T T 0 T F 0 T T 0 になると思います。 最後に、G列の一番した(G9セル)で[=sum(G1:G8)]で求められると思います。 上記の例で言うと、2が正解だと思います。 おそらく、条件3やそれ以降があると思うので、G列に入力した関数はA列に持ってきたほうが見やすいかと思います。
お礼
条件や考え方で色んな方法が有る事を知りました・・・ 少しずつ勉強していきます。 この度は解り難い質問にお付き合い頂きありがとうございました。
- merlionXX
- ベストアンサー率48% (1930/4007)
B列がりんご C列が0以上 D列が0以上 ということでしょうか? 0以上だから0も含みますね? 仮に範囲が30行目までだとすれば =SUMPRODUCT((B1:B30="りんご")*(C1:C30>=0)*(D1:D30>=0)) で求められます。
お礼
merlionXX様 明解な回答誠にありがとうございます。 色々な方からのご指摘で解り難い質問は今後控えようと思いました。 この度は解り難い質問にお付き合い頂きありがとうございました。
- hoiho1010
- ベストアンサー率11% (13/113)
エクセルは必ずバージョンを書くこと! これは基本中の基本です!! 2007ならば http://www.becoolusers.com/excel/countifs.html 2003までならば http://www.excel.studio-kazu.jp/mag2/backnumber/mm20040824.html
お礼
>エクセルは必ずバージョンを書くこと! これは基本中の基本です!! 大変失礼致しました。 ご指摘の通り今後は気を付けたいと思います。 有難うございます。
- soixante
- ベストアンサー率32% (401/1245)
いまいち設問が不明瞭なのですが、例示のケースで言えば、 「りんごが0以上のセル」というのが、C1、D1セルの2つという認識でよいのでしょうか。 1)E2セルに =IF(B2="りんご",COUNTIF($C2:$D2,">=0"),0) と入れて、データのある行まで引っ張る 2)E列を合計した数値が、「B列が“りんご”で、0以上の数値のセルの個数」です。
お礼
>いまいち設問が不明瞭なのですが ご指摘の通りです。 明解な回答ありがとうございます。 この度は解り難い質問にお付き合い頂きありがとうございました。
お礼
>ちなみに、エクセルのバージョンによって使用できる関数や機能が異なりますので、質問の際には必ずバージョンを明記するようにしましょう。 ご指摘有難うございます。 今回初の質問で、どんな風に質問したら良いのか検討が付きませんでした。 次回から気を付けたいと思います。