激凹みから立ち直る方法

宜しくお願い致します。

A列(1行目~20行目まで)に-80%、-79%・・・79%、80% と、%の値が入っています。そこで、「-60%以上、-70%以下」の値が何個あるかカウントしたいのです。
色々調べてみた結果、

=SUM(IF(A1:A20<=-0.7,IF(A1:A20>=-0.6,1,0)))

というように、条件を満たしてたら1の値を返して
カウント、としたのですが上手くいきません。
詳しい方、アドバイス宜しくお願い致します。

A 回答 (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つとかでも同じように考えて利用できます。
    • good
    • 0
この回答へのお礼

お返事ありがとうございました。私には難しい・・ですけど分かるまで参考にさせていただきます!

お礼日時:2004/10/13 22:24

負の値の場合「-70%以上、-60%以下」ですよね。



=COUNTIF(A1:A20,"<=-0.6")-COUNTIF(A1:A20,"<-0.7")
又は
=SUMPRODUCT((A1:A20>=-0.7)*(A1:A20<=-0.6))
でできます。
上の方の式は%表示されるので書式を変更してください。
    • good
    • 3

 


質問の式は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とは何か
違うのでしょうか?(すみません)

補足日時:2004/10/08 01:00
    • good
    • 0

=COUNTIF(A1:A20,">=-0.6")+COUNTIF(A1:A20,"<=-0.7")でできると思いますが


関数でなくてもオートフィルタのオプションでもできると思います。
計算結果を残したいのかどうかで処理は変わると思いますが・・・。
    • good
    • 0

別件で・・・。


>「-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")

となります。
    • good
    • 0
この回答へのお礼

お返事ありがとうございました。
おっしゃるとおり、「-60%以上 または -70%以下」
でした・・・。助かりました。

お礼日時:2004/10/08 01:10

条件付カウントの関数がありますが、使いにくいです。


=countif(A1:A20,">= 0.6")-countif(A1:A20,"> 0.7")
0.6以上の個数から0.7を超える個数を引いて、0.6以上かつ0.7以下を求めています。
    • good
    • 0
この回答へのお礼

お返事ありがとうございます。なるほどでした。
助かりました。

お礼日時:2004/10/08 01:08

A1からA20まで入っているとしてB1を


=IF(AND(A1>=-0.7,A1<=-0.6),1,0)
にしてB1をB2~20コピーし
=SUM(B1:B20)
では駄目ですか?
    • good
    • 0
この回答へのお礼

お返事ありがとうございます。
できればいっぺんにすませてしまいたいという感じです。

お礼日時:2004/10/08 01:07

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!