- 締切済み
エクセル関数について
エクセル関数で下記のような場合どのような計算式を 使ったら良いですか? ネットを見てもいまいち良く分かりません。 下記のような場合範囲いくらからいくらで条件定義をし、一番 右端の金額を計算結果として求めたい場合は、どうくめばいいですか? 100~200円の場合は800円 ~300円の場合は900円 ~400円の場合は1000円 ~500円の場合は1200円 ~600円の場合は1400円 IF(A1>300="900",IF(A1>400="1000",てな感じで組んでも求められませんでした。
- みんなの回答 (8)
- 専門家の回答
みんなの回答
- mu2011
- ベストアンサー率38% (1910/4994)
次の方法は如何でしょうか。 =CHOOSE(INT(ROUNDUP(セル,-2)/100),800,800,900,1000,1200,1400)
すでに、いろいろな回答が付いていますが 「IF(A1>300="900",IF(A1>400="1000",てな感じで組んでも求められませんでした。」 この条件式だと、300より大きいときに全てが該当してしまうので、2番目のIF文は評価されません。記号の向きが逆なんです。 「IF(A1<=200,800,(IF(A1<=300,900,IF(A1<=400~」 みたいに、条件式の書き方を変えて重なっていないところから評価しましょう。 ちなみに、全部書くと =IF(A1<=200,800,IF(A1<=300,900,IF(A1<=400,1000,IF(A1<=500,1200,IF(A1<=600,1400,"それ以上"))))) になります。
- kirinn1
- ベストアンサー率50% (2/4)
下記の通りではいかがですか A1 B1 D1 E1 F1 単価 送料 単価範囲 送料 0 99 0 100 200 800 201 300 900 301 400 1000 401 500 1200 501 600 1400 例として購入金額に対して送料を求めるとしました A1に購入金額 B1に購入金額に対する送料を自動計算結果 D1からF6に料金表を作成 B1に関数 VLOOKUP(A1,D1:F6,3,TRUE) これでいかがですか
- ham_kamo
- ベストアンサー率55% (659/1197)
いろいろ出てますが、こちらはLOOKUPの検査範囲と対応範囲をインラインで使う方法です。 =IF((A1>=100)*(A1<=600),LOOKUP(A1,{100,201,301,401,501},{800,900,1000,1200,1400}),"")
- mue-max
- ベストアンサー率25% (11/43)
=IF(B4<=200,800,IF(B4<=300,900,IF(B4<=400,1000,IF(B4<=500,1200,1400)))) これでできたよ
- mshr1962
- ベストアンサー率39% (7417/18945)
#2です。すみません方法2のほう関数を書き間違えました。 【誤】=IF(AND(A1>=100,A1<601),CHOOSE(MAX(A1/100,5),800,900,1000,1200,1400),"") 【正】=IF(AND(A1>=100,A1<601),CHOOSE(MIN(A1/100,5),800,900,1000,1200,1400),"")
- mshr1962
- ベストアンサー率39% (7417/18945)
方法1:VLOOKUPを使用する。 100 800 200 900 300 1000 400 1200 500 1400 として =IF(AND(A1>=100,A1<601),VLOOKUP(A1,表の範囲,2,TRUE),"") とすれば金額が出ます。 方法2:CHOOSE関数を使用する。 =IF(AND(A1>=100,A1<601),CHOOSE(MAX(A1/100,5),800,900,1000,1200,1400),"")
if文でするなら =if(A1>100,if(A1>200,800,if(A1>300,900,if(A1>400,1000,if(A1>500,1200,if(A1>600,1400)))))) 最も計算はA1>300とするかA1>=300とするか等丁度300の場合等を検討する必要があります