- 締切済み
EXCELでIF関数を使って、以上や以下の式を教えてください
EXCELでIF関数を使って、下記のようなことをしたいのですがうまくいきません。 『もしも、A1のセルが5以下ならばA1×1000を入れなさい。もしもA1のセルが6以上で10以下であれば、A1×2000を入れなさい。もしもA1が11以上であればA1×3000を入れなさい」 としたいのですがうまくいきません。よろしくお願いします。
- みんなの回答 (4)
- 専門家の回答
みんなの回答
- himajin100000
- ベストアンサー率54% (1660/3060)
#1だ。うん、よく考えたらSUMPRODUCT関数全く意味ない。
If関数を使わなくても、 =A1*1000*(1+(A1>=6)+(A1>=11)) でも可能です。 A1が5以下の時: =A1*1000*(1+0+0) → A1*1000 A1が6以上、10以下の時: =A1*1000*(1+1+0) → A1*2000 A1が11以上の時: =A1*1000*(1+1+1) → A1*3000 私は条件が3つ以上の時は、IFを「入れ子」にするとわかりづらくなるので できるだけこの形式にするようにしています。 なお、(A1>=6)は通常「TRUE」「FALSE」が返されますが、 計算式の中では、それぞれ「1」と「0」として扱われます。 また、IF関数を使う場合は、式の大外(おおそと)ではなく、 なるべく式の中程で使うようにしています。 例;(条件が2つの場合) =IF(A1<=5,A1*1000,A1*2000) ではなく、 =A1*1000*IF(A1<=5,1,2) などとします。 ご参考まで...
お礼
ありがとうございました。 1の方の式で希望のものができました。 ご指摘の通り、ifで入れ子状態になってわからなくなってしまったのです。 教えていただいたことを参考にまたやってみたいと思います。
- Cupper
- ベストアンサー率32% (2123/6444)
=IF(A1<=5,A1*1000,IF(A1<=10,A1*2000,A1*3000)) ただし、A1は整数であること どのような数式を考えていたのでしょうか うまくいかないという数式を補足してもらえると何を間違えているのかを指摘することができます
お礼
ありがとうございます。 1の方のやり方で、希望のものができました。 今度からうまくいかなかった式も載せて、教えてもらうように しますね。 ありがとうございました。
- himajin100000
- ベストアンサー率54% (1660/3060)
一例。 =IF(A1<=5,A1*1000,IF(AND(A1>=6,A1<=10),A1*2000,IF(A1>=11,A1*3000,))) 問題文の条件から当然10.5のときは処理は行われないため0が表示される。 排他的な条件であればこんなのもありかな? =SUMPRODUCT((A1<=5)*A1*1000+(AND(A1>=6,A1<=10))*A1*2000+(A1>=11)*A1*3000)
お礼
できました。上の方の式でやりたいことができました。 ありがとうございました。 とても解りやすく教えていただいて、本当にありがとうございます。
お礼
はい。1のやり方でうまくいきました。 本当にありがとうございました。 また、教えてください(*^_^*)