• ベストアンサー

Excelでこういう式が作れますか?

セル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つの式に出来るでしょうか? よろしくお願いします。

  • sarnin
  • お礼率98% (169/172)

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

  • ベストアンサー
  • shkwta
  • ベストアンサー率52% (966/1825)
回答No.2

(方法1) まず、5万円を超える場合と5万円以下の場合にわけ、 5万円を超える場合を、7万円を超える場合と7万円以下の場合に分け、 7万円を超える場合を9万円を超える場合と9万円以下の場合に分け、 9万円を超える場合を10万円を超える場合と10万円以下の場合に分ける というようになるべく均等に二分割していくと、7段階を使い切らずにすみます。 (方法2) =if(A1>100000,0.1,int((A1-1)/10000)/100) のように、金額から割引率が出るような数式を工夫します。

sarnin
質問者

お礼

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

その他の回答 (2)

回答No.3

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)

sarnin
質問者

お礼

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

回答No.1

VLOOKUP関数を使うといいでしょう。 別シート(たとえばsheet2)に次のようなリストを作ります  A  B   0   0 10001 0.01 20001 0.02 30001 0.03  :  : これにたとえば「LIST」と名前を付けてください。 この上で、A1に金額、B1に以下の式を入れると =VLOOKUP(A1,LIST,2,TRUE) ご希望の結果が現れます

sarnin
質問者

お礼

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

関連するQ&A

  • エクセルの式で困っています。

    エクセルの初心者に等しいです。教えて下さい。 例えばA1のセルに(パイン)とあったら、B1のセルの金額を見て10万以下なら500円、10万~20万なら1500円、20万~30万なら3000円、A1のセルが(桃)とあったら、B1のセルの金額を見て10万以下なら1000円、10万~20万なら2000円、20万~30万なら4000円 といった式を入れたいのですが、IFではややこし過ぎて頭が回りません。 関数等でうまくやる方法あれば教えて下さい。 お手数をおかけしますが宜しくお願いします。

  • エクセル:複数条件での場合分け

    エクセル初心者です。お手柔らかにお願いします。 A1セルに割引前の金額があります。 条件  1000円以上2000円未満は5%引き  2000円以上3000円未満は10%引き  3000円以上は15%引き     の時、  B1セルの割引後の金額を求めたいです。 関数「IF」を使えばいいのでしょうか? 宜しくお願いします。

  • エクセル関数式を教えてください。

    エクセル関数式を教えてほしいのですが、 あるセル値Aが100未満の場合は、セルを空白(表示なし)に設定し あるセル値Aが100以上の場合は、他のセルB値の数値を表示させる。 初心者で関数式がわかりません、誰か教えてください。 お願いします。

  • Excel IF関数を短くする式を教えて下さい。

    ExcelのIF関数が長くなりすぎて困っています。 短くする方法あれば教えてください。 =IF(A1="",0,IF(A1<4.5,A1,4.5))+IF(B1="",0,IF(B1<4.5,B1,4.5)) のように"4.5より数が小さい場合はセルの値を返し、 4.5より大きい場合は4.5を返す"というのを繰り返し合計していきます。 60セル以上を合計したいのですが、それだと数式が長すぎて・・・ 何か短くする良い式があれば教えて下さい。 よろしくお願いします。

  • エクセルの関数(式)を考えて!

    エクセルでデータベースを作っているのですが、日付、名前、購入金額、割引金額などを書いてます。 そこで、割引金額に「60日以内に再購入した場合3割の割引金額を出す。」というような式を書けるでしょうか? 書けるならどんな関数を使ってどんな式になりますか?

  • エクセルの関数について教えてください

    エクセルでvlookupを使い得た結果がAだとします。 次にif関数でvlookup関数の結果のセルがAならばと言う式を作りました。 が、if関数が認識してくれません。 同じif関数の式でキーボードからAを入力したら結果が出ます。 vlookup関数のセルにはAでなく式しか入ってないからでしょうか? vlookup関数の結果をif関数で認識する方法をお願いします。

  • エクセルで、この式を簡略化することはできますか。

    エクセルで、この式を簡略化することはできますか。 B1 =IF(B2>1000,IF(G10="","",IF(F2="",ROUNDUP((G2+3)/100*B2,-1),ROUNDUP((G2+3+5)/100*B2,-1))),B2) *やりたいこと* B2=元の価格 元の価格が1000円以下ならば、そのままの価格がB1に出、 元の価格が1000円より高ければ、G2(掛率)+3に従った割引が適用され、割引後価格はさらに1の位を端数とみなし10の位に切り上げます。 G2が未入力の場合はB1は空欄にし、 F2(備考)に記入がある場合は(掛率+3)にさらに5加算されて割引が計算されます。 (+5の分がここに適用されているということを分かりやすくしたいので、+3+5で+8にする、という簡略はなしでお願いします) ほかにスムーズな関数などありましたらご教授下さい!

  • エクセルの条件式書式

    エクセル2003です。 条件式書式と、IF関数は組み合わせることは可能でしょうか?例えば、前年対比に対して、下なら赤字にするというような…この場合対応セルが多い場合条件式書式だと、その分設定すればできるのでしょけど、もっと単純にできないのでしょうか?

  • エクセルの式の作り方のご相談

    緊急でご相談したい件がございます。 エクセルの式の作り方なのですが、 Aセルの値が、 60以下だったらBセルに60サイズ 61~80までだったらBセルに80サイズ 81~100だったらBセルに100サイズ 101~120だったらBセルに120サイズ 121~140だったらBセルに140サイズ 141~160だったらBセルに160サイズ と表示するための複合条件式の作り方がわからないのです。 (IF/AND/OR関数あたりなんだろうなーとは思うのですが。) どうぞ宜しくお願い致します。

  • ExcelのIF式の入力について大いに困っています。

    皆さんお世話になっています。 今回は、以下の事項のIF式についてなにとぞ教えてください。 例題 セルB10に以下の条件のIF式について教えてください。 セルA1に数値(小数点あり下3桁)を入力 セルB10に5以下と10以上は、表示させない。 それ以外の数値を表示させたい場合、どの様なIF式になるか教えてください。 宜しくお願いします。

専門家に質問してみよう