- ベストアンサー
EXCELで~以上、~未満の値をカウントしたい。
宜しくお願い致します。 A列(1行目~20行目まで)に-80%、-79%・・・79%、80% と、%の値が入っています。そこで、「-60%以上、-70%以下」の値が何個あるかカウントしたいのです。 色々調べてみた結果、 =SUM(IF(A1:A20<=-0.7,IF(A1:A20>=-0.6,1,0))) というように、条件を満たしてたら1の値を返して カウント、としたのですが上手くいきません。 詳しい方、アドバイス宜しくお願い致します。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
>Ctrl+Shift+EnterとEnterとは何か違うのでしょうか?(すみません) 配列数式と言うものが始めてなんでしょう。 (事前知識) A1に12、A2に9と入れます。 B1に=A1>10といれ、B2に複写します。この表現は、はじめてではないですか。 C1に=B1*1といれて、B2に複写します。 C1は1、C2は0になります。(ここが大切、真であれば1、偽であれば0と言う値となります。) (配列数式) =SUM((A1:A20>=-0.7)*(A1:A20<=-0.6)) のように、A1:A20のように複数行の複数セルを指定していることが特徴です。そして1行一行演算(比較も含む)した結果をたすと言う処理をします。 (A1>=-0.7)*(A1<=-0.6) (A2>=-0.7)*(A2<=-0.6) (A3>=-0.7)*(A3<=-0.6) ・・・ (A19>=-0.7)*(A19<=-0.6) (A20>=-0.7)*(A20<=-0.6) の和(Sum)のように処理されます。 上記()内は事前知識で説明したように、TRUEかFALSEどちらかになって、1か0の値をとります。それらを掛ける結果両方が真の場合のみ1となります。 0x0=0、0x1=0、1x0=0、1x1=1 それら1の行と0の行を加える(Sum)と1の行数が算出されます。それは条件該当件数になります。 条件が3つとかでも同じように考えて利用できます。
その他の回答 (6)
- mshr1962
- ベストアンサー率39% (7417/18945)
負の値の場合「-70%以上、-60%以下」ですよね。 =COUNTIF(A1:A20,"<=-0.6")-COUNTIF(A1:A20,"<-0.7") 又は =SUMPRODUCT((A1:A20>=-0.7)*(A1:A20<=-0.6)) でできます。 上の方の式は%表示されるので書式を変更してください。
- taocat
- ベストアンサー率61% (191/310)
質問の式はNO.3の方の指摘のとおり数学的にも誤りです。 たぶん、プラスマイナスの勘違いでせう。 -70%以上 AND -60%以下で説明します。 =SUM(IF(A1:A20>=-0.7,IF(A1:A20<=-0.6,1,0))) =SUM((A1:A20>=-0.7)*(A1:A20<=-0.6)) 上2つのようにSUM関数を使う場合は 配列数式にしないといけません。 ご存知だとは思いますが、式確定の時、 Enterではなくて、Ctrl+Shift+Enter で確定です。 また複数条件のカウント等で一番簡単な方法は 次のSUMPRODUCT関数です。 =SUMPRODUCT((A1:A20>=-0.7)*(A1:A20<=-0.6)) この式の確定は普通のとおり、Enter。 結論:複数条件の時は、SUMPRODUCT関数を使う。
補足
お返事ありがとうございます。 Ctrl+Shift+EnterとEnterとは何か 違うのでしょうか?(すみません)
- terakura
- ベストアンサー率20% (4/20)
=COUNTIF(A1:A20,">=-0.6")+COUNTIF(A1:A20,"<=-0.7")でできると思いますが 関数でなくてもオートフィルタのオプションでもできると思います。 計算結果を残したいのかどうかで処理は変わると思いますが・・・。
別件で・・・。 >「-60%以上、-70%以下」 数学的に、両者を共に満たすものはありませんが・・・。 「-70%以上、-60%以下」あるいは、「-60%以上 または -70%以下」 だと思います。 =countif(A1:A20,">= -0.7")-countif(A1:A20,"> -0.6") あるいは、 =countif(A1:A20,">= -0.6")+countif(A1:A20,"<= -0.7") となります。
お礼
お返事ありがとうございました。 おっしゃるとおり、「-60%以上 または -70%以下」 でした・・・。助かりました。
- JaritenCat
- ベストアンサー率37% (122/322)
条件付カウントの関数がありますが、使いにくいです。 =countif(A1:A20,">= 0.6")-countif(A1:A20,"> 0.7") 0.6以上の個数から0.7を超える個数を引いて、0.6以上かつ0.7以下を求めています。
お礼
お返事ありがとうございます。なるほどでした。 助かりました。
- 00PS
- ベストアンサー率28% (4/14)
A1からA20まで入っているとしてB1を =IF(AND(A1>=-0.7,A1<=-0.6),1,0) にしてB1をB2~20コピーし =SUM(B1:B20) では駄目ですか?
お礼
お返事ありがとうございます。 できればいっぺんにすませてしまいたいという感じです。
お礼
お返事ありがとうございました。私には難しい・・ですけど分かるまで参考にさせていただきます!