アプリ版:「スタンプのみでお礼する」機能のリリースについて

A列に入力した数字が50以下の場合は1000とB列に表示、
51以上60以下を入力した場合はA1に1500を掛けた結果をB列に表示、
61以上70以下を入力した場合はA1に2000を掛けた結果をB列に表示、
71以上を入力した場合はA1に2500を掛けた結果をB列に表示させたいです。

=IF(A1<=40,"1000",IF(AND(A1>=51,A1<60),"A1*1500",IF(AND(A1>=61,A1<70),"A1*2000",IF(A1>=71,"A1*2500"))))
と書いたのですが、試しにA列に51と入力しても【A*1500】と表示されて計算してもらえません。

皆様のお知恵をお貸しいただきたく、よろしくお願い致します。

質問者からの補足コメント

  • ※皆様、詳しく説明いただきありがとうございました。
    とても感謝しております。
    全ての方にベストアンサーを差し上げたいのですがそうもいきませんので、
    今回は自分の式の間違いを最初に指摘してくださった koko88okok様に差し上げたいと思います。

      補足日時:2016/03/27 11:19

A 回答 (7件)

> =IF(A1<=40,"1000",IF(AND(A1>=51,A1<60),"A1*1500",IF(AND(A1>=61,A1<70),"A1*2000",IF(A1>=71,"A1*2500"))))


> と書いたのですが、試しにA列に51と入力しても【A*1500】と表示されて計算してもらえません。

"A1*1500" のように ” ” で括ると、A1*1500 と表示せよという命令なので、計算させるには、” ” を削除する必要があります。

数式を次のように編集してください。

=IF(A1<=50,1000,IF(AND(A1>=51,A1<60),A1*1500,IF(AND(A1>=61,A1<70),A1*2000,IF(A1>=71,A1*2500))))
    • good
    • 0
この回答へのお礼

詳しい説明ありがとうございました。
” ”で括るのにはそんな意味があったのですね。
大変勉強になりました。

お礼日時:2016/03/26 20:28

>試しにA列に51と入力しても【A*1500】と表示されて計算してもらえません。


””で囲われた文字列で返すような数式だから、当然と言えば当然。

C1に0
C2に51
C3に61
C4に71
D1に50
D2に60
D3に70
D4に999999
E1に1000
E2に1500
E3に2000
E4に2500
を入力して
B1に
=VLOOKUP(A1,C$1:E$4,3,1)*A1
と入力。
B2セル以降はB1セルをコピーして必要な行まで貼り付ければ出来上がり。

VLOOKUP関数で指定する4つ目の値が1またはTRUEの時は、
検索する値が見つからない時、検索する値より小さい値の中で最も大きい値を検索結果とし、それに対応する値を返します。
ただし値は上から小さい順(昇順)に並んでいる必要があります。

この方法は、条件が非常に多い場合に便利です。
また、あとで条件が変更する必要がある場合も簡単に変更することが可能です。
    • good
    • 0
この回答へのお礼

こんなやり方もあるんですね。
今までは条件が多くなってくると諦めていたので助かりました。
大変勉強になりました。ありがとうございました。

お礼日時:2016/03/27 11:04

こんばんは



ご質問の回答を見ていますが、式(関数)の使い方が3通り記載されていますね。
何かプログラムと同じで、色々なロジックがあり勉強になります。

私的には、下記のIF分の多重使用でも可能だと思います。

=IF(A1="","",IF(A1<=50,1000,IF(A1<=60,A1*1500,IF(A1<=70,A1*2000,A1*2500))))
    • good
    • 0
この回答へのお礼

きちんと表示されました。
色んな方法があるので、僕も勉強させていただいてます。
ここで質問して本当によかったです。
ありがとうございました。

お礼日時:2016/03/27 11:06

No.4です!



投稿後、間違いに気づきました。
51以上はA列数値に掛け算をする必要があるのですね。

B1セルの数式を
=IF(A1="","",IF(A1<=50,1000,A1*INDEX({1500,2000,2500},MATCH(A1,{51,61,71},1))))
もしくは
=IF(A1="","",IF(A1<=50,1000,A1*(1000+MATCH(A1,{51,61,71},1)*500)))
に変更してください。

どうも失礼しました。m(_ _)m
    • good
    • 0
この回答へのお礼

こんな方法もあるんですね。
参考にさせていただきます。
ありがとうございました。

お礼日時:2016/03/27 11:09

こんばんは!



A1セルからデータがあるとするとB1セルに
=IF(A1="","",INDEX({1000,1500,2000,2500},MATCH(A1,{0,51,61,71},1)))
または
=IF(A1="","",500+MATCH(A1,{0,51,61,71},1)*500)
という数式を入れフィルハンドルで下へコピーではどうでしょうか?m(_ _)m
    • good
    • 0

[No.1]の誤謬訂正


式中の「A1<70」は「A1<=70」に訂正します。
    • good
    • 0
この回答へのお礼

お早い回答ありがとうございます。
うまく表示されました!

お礼日時:2016/03/26 20:22

=IF(A1<>"",1000*(A1<=50)+A1*1500*(A1>=51)*(A1<=60)+A1*2000*(A1>=6

1)*(A1<70)+A1*2500*(A1>=71),"")
    • good
    • 1

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