質問

EXCELでIF関数を使って、下記のようなことをしたいのですがうまくいきません。

『もしも、A1のセルが5以下ならばA1×1000を入れなさい。もしもA1のセルが6以上で10以下であれば、A1×2000を入れなさい。もしもA1が11以上であればA1×3000を入れなさい」

としたいのですがうまくいきません。よろしくお願いします。

通報する

回答 (4件)

#1だ。うん、よく考えたらSUMPRODUCT関数全く意味ない。

この回答へのお礼

はい。1のやり方でうまくいきました。
本当にありがとうございました。
また、教えてください(*^_^*)

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で入れ子状態になってわからなくなってしまったのです。
教えていただいたことを参考にまたやってみたいと思います。

=IF(A1<=5,A1*1000,IF(A1<=10,A1*2000,A1*3000))
ただし、A1は整数であること

どのような数式を考えていたのでしょうか
うまくいかないという数式を補足してもらえると何を間違えているのかを指摘することができます

この回答へのお礼

ありがとうございます。
1の方のやり方で、希望のものができました。
今度からうまくいかなかった式も載せて、教えてもらうように
しますね。
ありがとうございました。

一例。
=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)

この回答へのお礼

できました。上の方の式でやりたいことができました。
ありがとうございました。
とても解りやすく教えていただいて、本当にありがとうございます。

このQ&Aは役に立ちましたか?4 件

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

新しく質問する

このQ&Aを見た人はこんなQ&Aも見ています

注目の記事

おしトピにAndroid版アプリが登場

話題のトピックにさくっとコメントできる「おしトピ」に Android版アプリが登場! もっと身近に使いやすくなりました。


新しく質問する

このカテゴリの人気Q&Aランキング

毎日見よう!教えて!gooトゥディ

べんりQ&A特集