セルA1に金額が入ります。B1にその金額に対する割引率が入ります。

割引率は、金額が10001~20000円なら1%、20001~30000円なら2%・・・
100000円以上は10%という風に10段階ぐらいあります。
(10000円以下は割引なしです。)


私は下の式のように、

=IF(A1>100000,0.1,IF(A1>90000,0.09,IF(A1>80000,0.08,・・・

IF関数を沢山つなげる方法しか思い付かないのですが、
10個もつなげるとエラーになってしまって出来ませんでした。
(ヘルプを見ると7段階(?)しかつなげられない、みたいに書いてありました。)

この場合、どうやったら全部の割引率を1つの式に出来るでしょうか?
よろしくお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (3件)

(方法1)


まず、5万円を超える場合と5万円以下の場合にわけ、
5万円を超える場合を、7万円を超える場合と7万円以下の場合に分け、
7万円を超える場合を9万円を超える場合と9万円以下の場合に分け、
9万円を超える場合を10万円を超える場合と10万円以下の場合に分ける

というようになるべく均等に二分割していくと、7段階を使い切らずにすみます。

(方法2)
=if(A1>100000,0.1,int((A1-1)/10000)/100)
のように、金額から割引率が出るような数式を工夫します。
    • good
    • 0
この回答へのお礼

さっそくの回答ありがとうございます。
いろいろやり方があるんですね。
関数自体ほとんど知らないので、もっと勉強しようと思います。

お礼日時:2005/04/24 01:03

VLOOKで、テーブルを作らずに式の中に組み込む方法もあります。


ちょっと長いですが、検索値がA1にあるとして、

=VLOOKUP(A1,{0,0;10001,.01;20001,.02;30001,.03;40001,.04;50001,.05;60001,.06;70001,.07;80001,.08;90001,.09;10001,.1},2)
    • good
    • 0
この回答へのお礼

さっそくの回答ありがとうございます。
{}とか;を使うのは初めて知りました(汗)
Excelにコピペしてじっくり理解しようと思います。

お礼日時:2005/04/24 01:09

VLOOKUP関数を使うといいでしょう。



別シート(たとえばsheet2)に次のようなリストを作ります
 A  B
  0   0
10001 0.01
20001 0.02
30001 0.03
 :  :

これにたとえば「LIST」と名前を付けてください。

この上で、A1に金額、B1に以下の式を入れると
=VLOOKUP(A1,LIST,2,TRUE)
ご希望の結果が現れます
    • good
    • 0
この回答へのお礼

早速の回答ありがとうございます。
こういうやり方があるのですね。
VLOOKUP関数というのは知りませんでした(恥)
なぜそうなるのかが分からないので、
勉強してよく理解してみようと思います。

お礼日時:2005/04/24 00:56

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


人気Q&Aランキング