- ベストアンサー
関数の使用方法と合計金額の計算
- 関数を使用して、使用量に応じた料金を計算する方法について教えてください。
- 使用量が0~120kwの場合は単価100円、120kw以上260kw以内の場合は単価200円、260kw以上300kw以内の場合は単価300円とします。
- 例えば、280キロワットを使用した場合は、(120キロワット×100円)+(残りの160キロワット×200円)と計算して合計金額を求めます。
- みんなの回答 (9)
- 専門家の回答
質問者が選んだベストアンサー
> (2)の764.4 はどこからのすうじとなりますでしょうか??? (2) 120 ≦ x < 300 ならば、 f(x) = 19.72 ・ 120 + 26.09 (x - 120) = 19.72 ・ 120 + 26.09 x - 26.09 ・ 120 = 26.09 x + 19.72 ・ 120 - 26.09 ・ 120 = 26.09 x + 2366.4 - 3130.8 = 26.09 x - 764.4
その他の回答 (8)
- shuu_01
- ベストアンサー率55% (759/1365)
実際の電気料金を用いると (1) x < 120 ならば、 f(x) = 19.72 x (2) 120 ≦ x < 300 ならば、 f(x) = 19.72 ・ 120 + 26.09 (x - 120) = 26.09 x - 764.4 (3) 300 ≦ x ならば f(x) = 19.72・120 + 26.09・180 + 28.12 (x - 300) = 28.12 x - 1378,8 (1) A1 にマイナスを入れることはない場合 =IF(A1<120,19.72*A1,IF(A1<300,26.09*A1-764.4,28.12*A1-1378.8)) (2) A1 にマイナスを入れた場合、"-" と表示する場合 =IF(A1<0,"-",IF(A1<120,19.72*A1,IF(A1<300,26.09*A1-764.4,28.12*A1-1378.8))) ただ、僕はけっこうケアレスミスするので、自分でもやってみて、 正しいことを確認してください
- shuu_01
- ベストアンサー率55% (759/1365)
No.1 の僕の計算式に間違いがありました (3) 260 ≦ x ならば 誤: f(x) = 100・120 + 200・240 + 300 (x - 260) = 300 x - 18000 正: f(x) = 100・120 + 200・140 + 300 (x - 260) = 300 x - 38000 その計算式をそのまま Excel の関数に入れたため、 260 キロワット以上は 20000 円 大きく間違えてました それを修正した 式は (1) A1 にマイナスを入れることはない場合 =IF(A1<100,100*A1,IF(A1<200,200*A1-12000,300*A1-38000)) (2) A1 にマイナスを入れた場合、"-" と表示する場合 =IF(A1<0,"-",IF(A1<100,100*A1,IF(A1<200,200*A1-12000,300*A1-38000))) この式で計算すると 280キロワットは 46000円になります 100 × 120 + 200 × 140 + 300(280 - 260) = 12000 + 28000 + 6000 = 46000 円です
補足
何度もありがとうございます。 再度こちら正式なものでお尋ねさせていただきたく存じます。 0~120キロワットまでは19.72円 120キロワット~300キロワットまでは26.09円 300キロワット以上は28.12円 これが現在もとめたいものですが、最終で教えて頂いております式にこの数字を埋めていけばよろしいでしょうか?? できましたから計算式をご教示いただければ幸いでございます。 大変なお時間を頂いて恐縮でございますがどうぞよろしくお願い申し上げます。
- 178-tall
- ベストアンサー率43% (762/1732)
>使用量の枠はどういうものになりますか? こんな「イメージ」… ↓ 区分 単価 --- ---- 0 100 120 200 260 300 999 >260kw~300kw以上ならば(3)単価300円 …が不可解ですけど、上例では 260 kW 以上なら 上限 999 kW まで単価 \300 。
お礼
ありがとうございました。
- shuu_01
- ベストアンサー率55% (759/1365)
Excel の関数を使ってやってみると A1 のセルに使用量が入力されているとして、 =IF(A1<100,100*A1,IF(A1<200,200*A1-12000,300*A1-18000)) となります(IF を 2回 使ってる) ただ、これだけだと A1 に マイナスの数字を入れると、 そのまま 100*A1 の計算をしてしまうので、 マイナスの時は ”マイナス” と表示させるには =IF(A1<0,"-",IF(A1<100,100*A1,IF(A1<200,200*A1-12000,300*A1-18000))) と書けば OK です(IF を 3回 使ってる) でも、IF 関数を入れ子にすると、読みにくくなるので、デバッグが大変です (この位なら許容範囲かなぁ) vlookup( 関数を使うの、勉強になるのでやってみても良いです ただ、元となるデータの一覧を用意しておくの大変ですね 最大 何百まで用意するのかなぁ? それに整数なら良いですけど、小数だと一致せず、使えないんじゃないかな?
補足
ご丁寧なご回答感謝申し上げます。 下記、お尋ねさせていただきたく存じます。 A1をかりに280kwをいただいた式に入れてみますと66000円となりますが、 120キロ×100円=12000円 残りの160キロ×200円=32000円 合計44000円となるかと存じますが、 私のやり方が間違っておりますか? 下記の200の数字と、-12000、-18000 は何を表しておりますか? A1<200,200*A1-12000,300*A1-18000)) どうぞご教示くださいませ。
- 178-tall
- ベストアンサー率43% (762/1732)
スプレッドシートのシート関数、みたいですね。 たとえば、EXCEL なら? 「使用料の枠」の行数が多い場合、「使用料の枠」を表にしておき、シート関数の =VLOOKUP( ) を使って該当単価を出して「数量」を掛ける、のが簡単。 IF 関数を使うと ( ) の中が多段にならざるを得ません。
お礼
ありがとうございました。
補足
case 関数も考えられますか? おっしゃるようにVLOOKが良い感じがいたします。 使用量の枠はどういうものになりますか? すみません、イメージがわかず・・ ご教示頂ければと思います。
- shuu_01
- ベストアンサー率55% (759/1365)
追伸:fukemaは関数とは関係ございません。おもいつきのままでございます。 僕もここ数年、プログラムを組んだりしていないので、 適切な例を上げられるか自信ないですが、 Excel VBA 入門講座 http://excelvba.pc-users.net/fol6/6_2.html Select Case 変数 Case Is 比較条件1 変数が比較条件1を満たした場合の処理 Case Is 比較条件2 変数が比較条件2を満たした場合の処理 Case Else 変数が比較条件1と比較条件2を満たさなかった場合の処理 End Select みたいに使います いくつかの場合分けする時は If 文より、Case 文の方が見やすいです
- shuu_01
- ベストアンサー率55% (759/1365)
> ちなみに、パソコンでIF関数を用いた時の式で > ■理論式、 > ■真、 > ■偽、 > の式にご回答いただいのを利用すればよろしいでしょうか? > 一度のIF関数で作成できますか? > ご回答いきますとIF関数で式が複数になりますか? fukemaさんの 「最新質問」 が非公開に設定されており、 どこでどのような質問をされたのか、 パソコンと言っても言語は何なのかわかりませんが、 IF 関数を使うなら、 X < 120 が 真 か 偽 かで 一度 IF 関数を使い、 それが 偽であれば、 X < 260 が 真 か 偽 かで もう一度 IF 関数を使うので、最低 2回 IF 関数を使います ただ、X < 0 の場合、エラーを返すようにするなら、 もう1回 IF 関数を使います X < 0 って、自分の家に太陽光とか風車、水車、自転車こぎ などで発電した電気を売った時とかかなぁ? IF 関数をいくつも入れ子で使うと頭混乱するので、 CASE 文とか使えると、スッキリ します fukema さんは何の言語? というか、Exel の関数とかなの?
補足
No.2ありがとうございます。 CASE関数初めて知りました。 CASEですと一つの式にできますでしょうか。 追伸:fukemaは関数とは関係ございません。おもいつきのままでございます。
- shuu_01
- ベストアンサー率55% (759/1365)
普通の商品だったら、たくさん買った方が安くなるのに、 電気だと、節電してもらわないといけないので、 たくさん使った方が高くなっちゃうのですね! 贅沢税みたいなものでしょうか それはさておき、電気料金が3つの場合で違うので 場合分けするしかないですね x キロワット 使った時の、合計金額を f(x) 円とすると (1) x < 120 ならば、 f(x) = 100 x (2) 120 ≦ x < 260 ならば、 f(x) = 100 ・ 120 + 200 (x - 120) = 200 x - 12000 (3) 260 ≦ x ならば f(x) = 100・120 + 200・240 + 300 (x - 260) = 300 x - 18000 となります
補足
早速のご回答ありがとうございます。 素晴らしいですね。 ちなみに、パソコンでIF関数を用いた時の式で ■理論式、 ■真、 ■偽、 の式にご回答いただいのを利用すればよろしいでしょうか? 一度のIF関数で作成できますか? ご回答いきますとIF関数で式が複数になりますか? 宜しくお願いします。
補足
何度もご丁寧なご回答に大変恐縮しております。 誠にありがとうございます。 (2)の764.4 はどこからのすうじとなりますでしょうか??? 大変申し訳ございません、ご教示くださいませ。