- ベストアンサー
関数を教えてください(再質問・誤りがありました)
先ほどの質問で誤りがありましたので再度質問します。 A1にある数値が入っています。 B1にも数値が入っています。 A1が100000以下なら B1の数値の2割引した数値を、 A1が200000以下なら B1の数値の5割引した数値を、 A1が500000以下なら B1の数値の7割引した数値を、 C1に表示するという関数を教えてください。 よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
C1 に、 =IF(A1<=100000,B1*0.8,IF(AND(100000<A1,A1<=200000),B1*0.5,IF(AND(200000<A1,A1<=500000),0.7*B1,"?"))) かな?
その他の回答 (4)
- msMike
- ベストアンサー率20% (364/1805)
C1: =B$1*(0.8-0.3*(A1>10^5)-0.2*(A1>2*10^5))
- chie65536(@chie65535)
- ベストアンサー率44% (8754/19864)
>A1が100000以下なら B1の数値の2割引した数値を、 >A1が200000以下なら B1の数値の5割引した数値を、 >A1が500000以下なら B1の数値の7割引した数値を、 >C1に表示するという関数を教えてください。 「A1が500000を越えている時にどうするか?」が書かれていませんよ(一つ前の質問もそうだったけど) C1に、以下の式を入力して下さい。 =IF(ISBLANK(A1),"A1に数値を入力して下さい",IF(ISNUMBER(A1),IF(A1<=100000,B1*0.8,IF(A1<=200000,B1*0.5,IF(A1<=500000,B1*0.3,"A1が500000を超えています"))),"A1に数値を入力して下さい")) で、A1が500000を越えている時は、何割引なのかな? コンピューターってのは「1から10まで、すべて懇切丁寧に教え込まないと、何もしてくれない」のですよ。 なので、プログラムを書く時は「すべてのケースをすべて網羅しないといけない」のです。 「こういう場合に、どうすれば良いのか判らない」ってのは、許されないのです。 A1がマイナスになったり、500000を超えていたりした場合も、すべて考慮して「どんな数値になっていても困らないようにしないといけない」のです。もちろん「A1に値が入ってない」って場合も「どうすれば良いのか書いてないと困る」のです。
- mshr1962
- ベストアンサー率39% (7417/18945)
C1=IF(AND(A1>=0,A1<=500000),B1*LOOKUP(A1,{0,100001,200001},{0.8,0.5,0.3}),"")
- mpascal
- ベストアンサー率21% (1136/5195)
=IF(A1<=100000,B1*0.8,IF(A1<=200000,B1*0.5,IF(A1<=500000,B1*0.3,"err")))