• ベストアンサー

関数を教えてください(再質問・誤りがありました)

先ほどの質問で誤りがありましたので再度質問します。 A1にある数値が入っています。 B1にも数値が入っています。 A1が100000以下なら B1の数値の2割引した数値を、 A1が200000以下なら B1の数値の5割引した数値を、 A1が500000以下なら B1の数値の7割引した数値を、 C1に表示するという関数を教えてください。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • 178-tall
  • ベストアンサー率43% (762/1732)
回答No.3

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)
回答No.5

C1: =B$1*(0.8-0.3*(A1>10^5)-0.2*(A1>2*10^5))

回答No.4

>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)
回答No.2

C1=IF(AND(A1>=0,A1<=500000),B1*LOOKUP(A1,{0,100001,200001},{0.8,0.5,0.3}),"")

  • mpascal
  • ベストアンサー率21% (1136/5195)
回答No.1

=IF(A1<=100000,B1*0.8,IF(A1<=200000,B1*0.5,IF(A1<=500000,B1*0.3,"err")))

関連するQ&A

専門家に質問してみよう