- ベストアンサー
エクセルの表の中から条件指定した個数を算出したい
エクセルの表の中から指定した条件の個数を算出するにはCountif関数を使いますが、その個数の中から別の指定した条件の個数を算出する方法を教えてください 例 A B おにぎり 10 おにぎり 2 そは 20 おにぎり 4 うどん 2 うどん 10 (続く) この表からA列の種類毎にB列の数値の範囲(4以上10未満、4未満、10以上)の個数を算出 したく苦労しております Countif関数の複数設定が出来ればいいのですが方法が解りません。 ご存知の方が居られましたら宜しくお願いします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
表の行数が20行として、 ・4以上10未満のおにぎり =SUMPRODUCT((A1:A20="おにぎり")*(B1:B20>=4)*(B1:B20<10)) ・4未満のおにぎり =SUMPRODUCT((A1:A20="おにぎり")*(B1:B20<4)) ・10以上のおにぎり =SUMPRODUCT((A1:A20="おにぎり")*(B1:B20>=10)) どうでしょうか?
その他の回答 (1)
- KURUMITO
- ベストアンサー率42% (1835/4283)
エクセルのバージョンが2007以降の場合でしたら次のようにしてはどうでしょう。 表はAおよびB列の1行目は項目名で2行目から下方にデータが入力されているとします。 初めに品名が自動で表示できるようにC列には作業列を設けます。 C2セルには次の式を入力して下方にドラッグコピーします。 =IF(A2="","",IF(COUNTIF(A$2:A2,A2)=1,MAX(C$1:C1)+1,"")) そこでお求めの表をE列からH列に表示させることにします。 E1セルには品名、F1セルには4未満、G1セルには4以上10未満、H1セルには10以上とそれぞれ項目名を入力します。 E2セルには次の式を入力して下方にドラッグコピーします。 =IF(ROW(A1)>MAX(C:C),"",INDEX(A:A,MATCH(ROW(A1),C:C,0))) F2セルには次の式を入力して下方にドラッグコピーします。 =IF(E2="","",COUNTIFS(A:A,E2,B:B,"<4")) G2セルには次の式を入力して下方にドラッグコピーします。 =IF(E2="","",COUNTIFS(A:A,E2,B:B,">=4",B:B,"<10")) H2セルには次の式を入力して下方にドラッグコピーします。 =IF(E2="","",COUNTIFS(A:A,E2,B:B,">=10"))
お礼
回答ありがとうございます。 かなり複雑になるのですね Officeが2003と古いのを記載するのが抜けていました。別PCには2007が入っているので試してみます ありがとうございました。
お礼
返答ありがとうございます。 上記のような関数で当初の目的が出来ました。 どうしてもCOUNTIFを使おうと思っていましたが、こちらの方がすんなり出来ました ありがとうございました。