アプリ版:「スタンプのみでお礼する」機能のリリースについて

はじめて質問させていただきます。
現在、EXCEL2003で機械の運搬金額を[サイズ][時間帯][運搬距離]という、3つの条件がある場合の算出方法を考えているのですが、どうしても出来ません。

条件としては
1.機械サイズが[A][B][C][D]と4の条件に分かれる
2.時間帯が[昼間][夜間]と2の条件に分かれる
3.運搬距離が[~1km未満][1以上~5未満][5以上~10未満][10以上~15未満]…と15の条件に分かれる
となっています。

ちなみに、各条件の金額一覧表は別のワークシートに作成しています。
(位置の変更可能)

この様な、条件が2つ以上あり、うち1つはパターンが15個もある場合IF関数で式を作成する事は可能でしょうか?
また不可の場合は他に何か良い方法はありますか?

宜しくお願いします。

A 回答 (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の横の料金ですね。
    • good
    • 0
この回答へのお礼

なるほど、すごく勉強になりました。
おかげで無事に作り上げることが出来ました。
ありがとうございました。

お礼日時:2007/06/01 23:48

まず下記の様な対応表を用意します。



  A  B  C  D  E
1 昼間 A  B  C  D
2  0 10  30  50  80
3  1 100130150180
45200230250280
510300330350380
615400430450480
720500530550580
825600630650680
9
10
11夜間ABCD
12015355585
131105135155185
145205235255285
1510305335355385
1615405435455485
1720505535555585
1825605635655685

この中で、A1からD8までを選択して、名前ボックスで「昼」と
名前をつけましょう。

同じ様に夜間の対応表にも「夜」と名前をつけましょう。

次に、下記の様な入力箇所を用意をします。

21ABCDE
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円
という風に、一つ上の状態で認識してしまう様です。

金額の欄を一つずらせば何とかなるかも知れませんが、
他に解決策はあるでしょうか?

宜しくお願いします。

補足日時:2007/06/01 17:06
    • good
    • 0

4*2*15=120通りですか?


通常では無理なので
A昼間01 A 昼間 1km未満
A昼間02 A 昼間 1km以上5km未満

D夜間14 D 夜間 50km以上100km未満
D夜間15 D 夜間 100km以上
のように取り出しやすいようにINDEXを作ってVLOOKUP関数で検索でしょうね。
    • good
    • 0
この回答へのお礼

アドバイスありがとうございました。

お礼日時:2007/06/01 23:51

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