- ベストアンサー
=IF((L75>1.9)*AND(L75<=2),1,0)の*はないといけないのでしょうか?
L75が1.91のとき、L75が1.9以上かつ2以下のとき、真なら1を、偽なら0を出す式を書きました。 =IF((L75>1.9)AND(L75<=2),1,0) こう入力するとエラーが出て*をつけるよう聞いてきます。 すなわち、エクセルの修正後は =IF((L75>1.9)*AND(L75<=2),1,0) 結果は1(真)になりました。 というものです。 ところで、*は必要ですか?ないといけないのでしょうか? そして、*があっても同じ結果となるのでしょうか? *は掛け算しかわからず、よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
#02です。#01さんの補足に対する回答です COUNTIF関数には検索条件をAND( )でつなげて記述することはできません 複合条件で件数を数えたいなら =SUMPRODUCT((L76:L85>0.9)*(L76:L85<=1)*1) のような関数になります。(本当は配列の積を求める関数ですが、個数のカウントにも使えます)
その他の回答 (4)
- NCU
- ベストアンサー率10% (32/318)
L75 が 1.9 「超」かつ 2 以下なら 1 を、さもなければ 0 を返す式: =(L75>1.9)*(L75<=2) 相変わらずですね。 「L75」でなければならない必然性は、回答者にとっては無い筈ですよね。 以上と超の違いも正確にお書きになっていないし。
- neKo_deux
- ベストアンサー率44% (5541/12319)
> (L75>1.9)*AND(L75<=2) (L75>1.9) の式は、L75が1.9より大きい場合1、そうでない場合0となります。 L75<=2 の式は、L75が2以下の場合1、そうでない場合0となります。 AND(L75<=2) の結果も同じです。 上の2つを掛け合わせると、 L75が1.9より大きい場合で、なおかつL75が2以下の場合のみ1、それ以外は0となります。 =IF(AND(L75>1.9,L75<=2),1,0) =IF((L75>1.9)*AND(L75<=2),1,0) =IF((L75>1.9)*(L75<=2),1,0) などは、同じ結果になってるって事です。 -- > *は掛け算しかわからず、 テクニックとして上のようにANDを数値の積で代用する方法があります。 ANDが「論理積」って呼ばれる理由です。
お礼
>=IF(AND(L75>1.9,L75<=2),1,0) >=IF((L75>1.9)*AND(L75<=2),1,0) >=IF((L75>1.9)*(L75<=2),1,0) >などは、同じ結果になってるって事です。 ありがとうございました。 >ANDが「論理積」 なるほど。
- zap35
- ベストアンサー率44% (1383/3079)
OFFICEは2003ですか? 関数の教科書では#01さんの使い方が一般的ですが、 =IF((L75>1.9)*(L75<=2),1,0) でも良いです。ただし「*」は必要です。「*」がand条件を意味するからです。 なおAND(L75<=2)のANDは不要です。それは()内に条件が1つしかないため、ANDをとっても無意味だからです。
お礼
>OFFICEは2003ですか? EXCEL97です。(笑) >「*」がand条件を意味するからです。 勉強になりました。 ありがとうございました。
- 0KG00
- ベストアンサー率36% (334/913)
and関数の使い方が間違っているような。 =IF(AND(L75>1.9,L75<=2),1,0) 質問者さんの式だと (L75>1.9)とAND(L75<=2)の式を掛け算した結果をIF文の評価の材料にしています。 ところで >1.9以上 なら L75>=1.9 ですが。
補足
>and関数の使い方 ありがとうございます。 助かりました。 ところで同様ANDについて教えください。 以下データの中から1以下かつ0.9超の個数を求めるため式を書きました。 答えは1(個)です。 まず、=COUNTIF(L76:L85,(”>0.9”))は正常に1(個)の結果が出ます。 しかし、 =COUNTIF(L76:L85,AND(">0.9","<=1")) とかくと結果は0(個)になります。(正解は1個) これもANDの間違えでしょうか? どうすればいいのでしょうか? よろしくお願いします。 (データ:L76:L85)) 0.559842 0.957883 0.168820 -0.451871 -0.407157 -0.520579 -0.964743 0.164072 -0.558127 0.053740
補足
>COUNTIF関数には… ありがとうございます。 >=SUMPRODUCT((L76:L85>0.9)*(L76:L85<=1)*1) なるほど。 エクセルでやってみました。 実にうまく動きました。 ありがとうございました。 ところで、今本で確認しているのですが、 (L76:L85>0.9)がtrueで かつ (L76:L85<=1)がtrueのときに true*trueのときのみ「1」が出る。すくなくとも片方がFALSEならば「0」となる。 ということですね。 ところで最後の*1はなぜ必要なのでしょうか? 何度もおしえていただき申し訳ありませんがよろしくお願いします。