dポイントプレゼントキャンペーン実施中!

IF関数の式の作り方を教えてください。

運賃表があります。
0キロから30キロは、1000円
31キロから40キロは、1200円
という風に、1000キロまで、続いています。
これをIF関数で式を作りたいのですが、ひとつづつの値を入れて作っていくと、5件ほど条件をいれると「多すぎる引数が入力されています」というエラーが出てきます。
この料金表をうまく利用して式をつくるのには、どうしたらよいのでしょうか。教えてください。
よろしくお願いいたします。

A 回答 (7件)

この手の質問も良くありますが、料金表を作成してVLOOKUP関数使用するのが、わかりやすいと思います。


例えば
  A  B  C D
  0 1000
 31 1200
 41 1300
 51 1400
・・・・
と表を作って C1に検索値 例えば 35
D1セルに =VLOOKUP(C1,A:B,2)
では希望の金額になりませんでしょうか。
30~31キロの間の処理もありますのそちらの都合に合わせて応用してください。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
まさに求めていた方法です。
こんなにシンプルにできるんですね。
ちょっと感動しました。
早速活用していきたいと思います。
ありがとうございました。

お礼日時:2008/06/26 00:39

NO4です。


数式に「,」が漏れていましたので訂正します。
C2に=IF(C1<>"",VLOOKUP(C1,$A:$B,2,TRUE),"")
    • good
    • 1

運賃と距離に規則性は無いのでしょうか?


あればIF文と計算式を組み合わせて作れると思いますが。

例えば初乗り30kmまで千円以降10km毎に200円増しでしたら
運賃=if(距離<=30,1000,int((距離-30)/10+1)×200+1000)
で求まります。
(int関数の変わりにquotient関数でも可能。但し分析ツールが使用可能な状態の必要があります)

場合分けと計算式を組み合わせる為の法則を見つけ出すのが必要です。

参考URL:http://maglog.jp/excel/Article257221.html
    • good
    • 0

A  B  C


000 030 1000
031 100 1200
101 300 1500
301 500 1750
501 1000 2000
=IF(ISNUMBER(距離のセル),VLOOKUP(距離のセル,$A$1:$C$5,3,TRUE),"")
    • good
    • 0

この様なケースではテーブル検索関数を使用する方法が一般的です。


(1)以下の運賃表を作成する(A列を距離数、B列を運賃)
 A B
 0  1000
 31 1200
 41 1300
 (以降続く)
(2)VLOOKUP関数で入力距離セルをC1、C2セルに対応運賃を抽出する。
 C2に=IF(C1<>"",VLOOKUP(C1,$A:$B,2TRUE),"")
    • good
    • 2

A1にキロ数を入力するとしたら


=if(A1>30,1000+int((A1-31)/10+1)*200,1000)
でいかがでしょうか。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。
参考にさせていただきます。

お礼日時:2008/06/25 12:58

IF文のネスト(複合使用)は7つまでだったと思います。



多数ある場合は、一覧表を作成してVlookup で参照します。
この場合のポイントは、1対1の対応では無いので、引数(検索の型)をTRUEに設定する事で、範囲内のデータを参照できます。

http://kokoro.kir.jp/excel/vlookup-true.html
    • good
    • 1
この回答へのお礼

早速のご回答ありがとうございます。
IF関数かとおもったら、VLOOKUPの方がいいのですね。
やってみます。ありがとうございます。

お礼日時:2008/06/25 12:55

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

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