- ベストアンサー
エクセル-複数が複数ある場合のIF関数について
- エクセルで、複数の条件がある場合のIF関数について悩んでいます。機械の運搬金額を条件ごとに計算する方法を知りたいです。
- 条件としては、機械サイズ、時間帯、運搬距離の3つがあります。それぞれの条件ごとに金額一覧表があり、それを元に計算を行いたいです。
- IF関数を使えば、条件ごとに適切な式を作成することは可能ですが、条件の組み合わせが多くなると複雑になります。その場合は他の方法を考えた方が良いです。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
VLOOKUPの解説の中に 解説 検索の型に1を指定し、検索値が見つからない場合は、検索値未満で最も大きい値が使用されます。 検索値が範囲の左端の列の最小値より小さい場合、エラー値 #N/A が返されます。 とあります。 つまり、 A B 1 0 0~4.99 2 5 5~9.99 3 10 10~14.99 4 15 15~ と言う対応表になります。 この事から、ご質問内容に合わせた形に直すと A B 1 0 0~5までの料金 2 5.1 5.1~10までの料金 3 10.1 10.1~15までの料金 4 15.1 15.1~20までの料金 5 20.1 20.1~の料金 となるかな? 10Kは5.1の横の料金に該当します。 11Kは10.1の横の料金ですね。
その他の回答 (2)
- suekun
- ベストアンサー率25% (369/1454)
まず下記の様な対応表を用意します。 A B C D E 1 昼間 A B C D 2 0 10 30 50 80 3 1 100 130 150 180 4 5 200 230 250 280 5 10 300 330 350 380 6 15 400 430 450 480 7 20 500 530 550 580 8 25 600 630 650 680 9 10 11 夜間 A B C D 12 0 15 35 55 85 13 1 105 135 155 185 14 5 205 235 255 285 15 10 305 335 355 385 16 15 405 435 455 485 17 20 505 535 555 585 18 25 605 635 655 685 この中で、A1からD8までを選択して、名前ボックスで「昼」と 名前をつけましょう。 同じ様に夜間の対応表にも「夜」と名前をつけましょう。 次に、下記の様な入力箇所を用意をします。 21 A B C D E 22 サイズ 距離 昼夜 金額 23 そしてそれぞれA23には「A/B/C/D」を入れます。 B23は距離を直接入れましょう。 C23は「昼」か「夜」と入力します。 (この部分は実際の内容に合わせて入力して下さい) 最後にD23に金額を算出する訳ですが、数式は =VLOOKUP(B23,INDIRECT(C23),MATCH(A23,A1:E1,0),1) これで動くと思います。 基本は、B23の距離を読んで金額を出すのですが、 ABCDのどれを出すかは、MATCHで整合取ります。 そして昼夜の切り替えは、INDIRECTで範囲を切り替えます。 表が乱れていますが、ご容赦下さい。
補足
回答ありがとうございます。 しかし、金額は出る様にはなったのですが、 距離の条件が合わないようです。 例えば 10(05kmより上~10km以下) 1000円 15(10kmより上~15km以下) 1500円 20(15kmより上~20km以下) 2000円 の場合、10kmであれば"1000円" 15kmであれば"1500円"と 表示されるのですが、 11km…1000円 17km…1500円 という風に、一つ上の状態で認識してしまう様です。 金額の欄を一つずらせば何とかなるかも知れませんが、 他に解決策はあるでしょうか? 宜しくお願いします。
- mshr1962
- ベストアンサー率39% (7417/18945)
4*2*15=120通りですか? 通常では無理なので A昼間01 A 昼間 1km未満 A昼間02 A 昼間 1km以上5km未満 ・ D夜間14 D 夜間 50km以上100km未満 D夜間15 D 夜間 100km以上 のように取り出しやすいようにINDEXを作ってVLOOKUP関数で検索でしょうね。
お礼
アドバイスありがとうございました。
お礼
なるほど、すごく勉強になりました。 おかげで無事に作り上げることが出来ました。 ありがとうございました。