[[20200524230909]] 『IF関数 入力済のセルの値を反映させたい。』(とうやく) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『IF関数 入力済のセルの値を反映させたい。』(とうやく)

お世話になります、数年ぶりの2度目の質問になります。

・料金シュミレーターとして機能させるための計算式を作りましたが、狙い通り機能しません。

大まかな計算は、面積×単価です。
単一単価ではなく、面積が大きくなるに従って、単価が安くなる条件です。

面積・・・・・・・・・料金
B1セル[入力欄]・・・・C1セル[IF関数による答え]

入力済数値(テーブルではないです)
E1 4800
E2 4700
E3 4600
E4 4500
中略
E18 3800

入力する数値は、15〜200までの整数です。

IF関数による計算式は、

もし、B1セルの[入力値]が15以上なら、B1×E1セルの値
もし、B1セルの[入力値]が17以上なら、B1×E2セルの値
もし、B1セルの[入力値]が19以上なら、B1×E3セルの値
もし、B1セルの[入力値]が20以上なら、B1×E4セルの値
中略
もし、B1セルの[入力値]が50以上なら、B1×E18セルの値。終わり。

この発想で、途中までですが、計算式を作りました。

=IF(B1>=15,B1*E1,IF(B1>=17,B1*E2,IF(B1>=19,B1*E3,IF(B1>=20,B1*E4,))))

結果は、E1のセル値のみしか反映されす、面積×単一単価になってしまいます。

◆質問です
Q1 E2〜E18までの値を計算結果に反映させるためには、どのように記述すればよろしいのでしょうか?

Q2 今回は、18個の値なので、やってやれないことはないと考え長い計算式覚悟で作っていますが、
もっとすっきりな計算式はあるのでしょか?

よろしくお願いします。

< 使用 Excel:Excel2007、使用 OS:Windows7 >


https://www.google.com/amp/s/dekiru.net/article/12612/amp/

vlookup関数で作る例です。参考まで。
(うっ) 2020/05/25(月) 01:14


書き込みありがとうございます。
具体的な式の記述があると助かります。

現状では
B1セルに[15]を入力した場合は、C1セルの答えは[7200]で狙い通りです。
つまり、15×4800の計算になっていて狙い通りです。

B1セルに[20]を入力した場合は、C1セルの答えは[9600]になってしまい狙いとは違います。
20×4800の計算になっていてるようです。
20×4500=9000となることを狙っています。

引き続きよろしくお願いします。

(とうやく) 2020/05/25(月) 01:44


 中略するからめんどくさいんだけどね。

 =IFERROR(B1*INDEX(E1:E18,MATCH(B1,{15,17,19,20,21,23,50})),"")

 ※実際のB1条件数値を { } の中に設定。

 ※「シュミレーター」 でなく「シミュレーター」っすね。
(GobGob) 2020/05/25(月) 07:52

GobGobさま、ありがとうございます!

すごいです!すばらしいです!!

願いが叶いました!!!
(とうやく) 2020/05/25(月) 10:50


 D1:D18 に ↓ のように入力

	D	E
1	15	4800
2	17	4700
3	19	4600
4	20	4500
・	(中略)	
18	50	3800

 C1 =IF(B1<15,"",B1*LOOKUP(B1,D1:E18))
 または
 C1 =IF(B1<15,"",B1*VLOOKUP(B1,D1:E18,2,TRUE))

 D列に入力せずに、ということなら
 E5:E17 の条件がわからないので E4までとして

 C1 =IF(B1<15,"",B1*LOOKUP(B1,{15,17,19,20},E1:E4))

 以上
(笑) 2020/05/25(月) 11:17

 ちなみに ↓ の式がなぜダメなのかというと
 >=IF(B1>=15,B1*E1,IF(B1>=17,B1*E2,IF(B1>=19,B1*E3,IF(B1>=20,B1*E4,)))) 

 B1が15〜200ならすべて「15以上」
 =IF(B1>=15,B1*E1 ← の条件を満たすのでここで終了。
 だから 15〜200 の何を入力しても B1*E1 になる。

 以上
(笑) 2020/05/25(月) 11:23

(笑)さま。ありがとうごさいます!

C1 =IF(B1<15,"",B1*LOOKUP(B1,D1:E18))

私が望んでいたのは、まさにコレです!!!

数量と単価の相関一覧を用意することが前提でしたので、数式もスッキリ!! 
簡単に単価の設定変更も可能になりました!

LOOKUP【これを参照してね】ですね!とてもありがたいです!!

IF【もし】が、ダメな理由も理解できました。
エクセルさんは、最初の一回しか聞き入れてくれないんですね。

発想のスタートが違っていました(笑笑)

(とうやく) 2020/05/25(月) 14:20


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.