- ベストアンサー
IF関数を使って、運賃を算出したいのですが、式の作り方を教えてください。
IF関数の式の作り方を教えてください。 運賃表があります。 0キロから30キロは、1000円 31キロから40キロは、1200円 という風に、1000キロまで、続いています。 これをIF関数で式を作りたいのですが、ひとつづつの値を入れて作っていくと、5件ほど条件をいれると「多すぎる引数が入力されています」というエラーが出てきます。 この料金表をうまく利用して式をつくるのには、どうしたらよいのでしょうか。教えてください。 よろしくお願いいたします。
- みんなの回答 (7)
- 専門家の回答
質問者が選んだベストアンサー
この手の質問も良くありますが、料金表を作成してVLOOKUP関数使用するのが、わかりやすいと思います。 例えば A B C D 0 1000 31 1200 41 1300 51 1400 ・・・・ と表を作って C1に検索値 例えば 35 D1セルに =VLOOKUP(C1,A:B,2) では希望の金額になりませんでしょうか。 30~31キロの間の処理もありますのそちらの都合に合わせて応用してください。
その他の回答 (6)
- mu2011
- ベストアンサー率38% (1910/4994)
NO4です。 数式に「,」が漏れていましたので訂正します。 C2に=IF(C1<>"",VLOOKUP(C1,$A:$B,2,TRUE),"")
- kukineko
- ベストアンサー率28% (81/286)
運賃と距離に規則性は無いのでしょうか? あればIF文と計算式を組み合わせて作れると思いますが。 例えば初乗り30kmまで千円以降10km毎に200円増しでしたら 運賃=if(距離<=30,1000,int((距離-30)/10+1)×200+1000) で求まります。 (int関数の変わりにquotient関数でも可能。但し分析ツールが使用可能な状態の必要があります) 場合分けと計算式を組み合わせる為の法則を見つけ出すのが必要です。
- mshr1962
- ベストアンサー率39% (7417/18945)
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),"")
- mu2011
- ベストアンサー率38% (1910/4994)
この様なケースではテーブル検索関数を使用する方法が一般的です。 (1)以下の運賃表を作成する(A列を距離数、B列を運賃) A B 0 1000 31 1200 41 1300 (以降続く) (2)VLOOKUP関数で入力距離セルをC1、C2セルに対応運賃を抽出する。 C2に=IF(C1<>"",VLOOKUP(C1,$A:$B,2TRUE),"")
- kokuramon
- ベストアンサー率18% (101/551)
A1にキロ数を入力するとしたら =if(A1>30,1000+int((A1-31)/10+1)*200,1000) でいかがでしょうか。
お礼
ご回答ありがとうございます。 参考にさせていただきます。
- hana-hana3
- ベストアンサー率31% (4940/15541)
IF文のネスト(複合使用)は7つまでだったと思います。 多数ある場合は、一覧表を作成してVlookup で参照します。 この場合のポイントは、1対1の対応では無いので、引数(検索の型)をTRUEに設定する事で、範囲内のデータを参照できます。 http://kokoro.kir.jp/excel/vlookup-true.html
お礼
早速のご回答ありがとうございます。 IF関数かとおもったら、VLOOKUPの方がいいのですね。 やってみます。ありがとうございます。
お礼
ご回答ありがとうございます。 まさに求めていた方法です。 こんなにシンプルにできるんですね。 ちょっと感動しました。 早速活用していきたいと思います。 ありがとうございました。