- ベストアンサー
10分単位の関数 計算式
会社のデーターがとんでしまい、いちから作り直すんですが、あまり計算式がわからなくて困っています。 エクセルで10分単位の計算式を教えてください。 たとえば1時間1200円、そうすると10分あたりが200円。 6時間20分を6:20と表示して、6時間20分あたりの金額は7600円になるのですが、これをエクセルの関数で自動計算したいのですが、どうすれば良いですか? ちなみに同じ形で5分単位の計算にも応用できれば助かります。 助けて下さい。 宜しくお願い致します。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
追加と訂正 【単純なもの】 ●A3:の式に(DAY(A1)*24+)を追加 A1:時間入力(71:50) A2:時給入力(1200) A3:総額表示(86200) 式 =(DAY(A1)*24+HOUR(A1)+MINUTE(A1)/60)*A2 ●これは、5分・10分単位の計算でなく、時単位の計算ですが結果としては 端数が無ければ、どちらも同じになります。
その他の回答 (5)
すみません。例2がだめで、例1のパターンでしたね 例1の訂正 ●A4:の式に(DAY(A1)*24+)を追加 A1:時間入力(6:20) A2:時給入力(1200) A3:総額表示(7200) 式 =(DAY(A1)*24+HOUR(A1)+MINUTE(A1)/60)*A2
以下の条件での、訂正版です。 ●時間は端数はでてこない。 ●24:00を超えることがある。 A4:の式に(DAY(A1)*1440を追加) 【単位時間当たりの金額を表示する場合】 A1:時間入力(71:50) A2:時給入力(1200) A3:単位時間入力(10)・・・単位分 A4:単位数表示(431) 式 =(DAY(A1)*1440+HOUR(A1)*60+MINUTE(A1))/A3 A5:単位給表示(200) 式 =A2/60*A3 A6:総額表示(86200) 式 =A5*A4 ●単位時間入力 A3 を(5)にすると、総額 A6 (86200)は変化しませんが 単位数 A4 が(862)、単位給(100)と変化します。 ●以前の値(6:20)もOKです。
参考例をいくつか挙げてみます。 例1【一番単純なもの】 A1:時間入力(6:20) A2:時給入力(1200) A3:総額表示(7200) 式 =(HOUR(A1)+MINUTE(A1)/60)*A2 例2【単位時間当たりの金額を表示する場合】 A1:時間入力(6:20) A2:時給入力(1200) A3:単位時間入力(10)・・・単位分 A4:単位数表示(38) 式 =(HOUR(A1)*60+MINUTE(A1))/A3 A5:単位給表示(200) 式 =A2/60*A3 A6:総額表示(7600) 式 =A5*A4 ●応用は、これで満足していると思います 単位時間入力 A3 を(5)にすると、総額 A6 (7800)は変化しませんが 単位数 A4 が(76)、単位給(100)と変化します。 ●問題点は、端数{5,10分未満}の扱いを、どうするかです。 このままでは、時間入力 A1 (6:29)等としたとき 単位数 A4 が(38.9)、総額 A6 (7780)と変化します。 もし、切捨て・切り上げ・四捨五入とすると+αが必要です 全体にかかわる問題として、端数の扱いがあります。 上の例2で挙げた問題、単位時間の設定(分)、時給の設定によって生じてきます。 (切り上げ・切捨て・四捨五入の関数を使って処理が必要になります。)
お礼
ありがとうございます。 例1を使ってみたのですが、合計時間が71:50などになると計算が合わなくなってしまいました。何かプラスすれば計算されるのでしょうか? 例2ではセルが時間と金額と合計の3ツしかないのでできませんでした。 ちなみに時間は端数はでてこないです。 初心者で申し訳ないです。 本当にご丁寧にありがとうございます。
- Yosha
- ベストアンサー率59% (172/287)
まず最初にお断りしておきます。エクセルでの時間計算は誤差を伴います。従って、会社で使うのであれば、計算中に生ずる誤差を修正するプログラムを含んだ専用ソフトまたは、10進数で計算するソフトなどを使うことを強くお奨めします。 勉強という意味で、エクセルでなんとか計算できるようにしてみましょう。 エクセルでは、24時間を1として、小数点以下18桁で時間計算をしているようです。従って1分を少数で表すと、"0.000694444444444444"となり、"6:20"は、"0.263888888888889"となります。 時間計算をするセルの書式設定としてユーザー定義を選び、種類を"[hh]:mm"とすると、24時間を超える計算と表示が出来ます。 時間を10(5)分単位で表したいとき、端数を切り捨ての場合は、FLOOR関数を、切り上げの場合は、CEILING 関数を使います。 表示したいセルに"=FLOOR(数値, 基準値)"または"=CEILING(数値, 基準値)"のどちらかを書き込みます。 例えば、"D1"セルに合計値"6:23"があると仮定します。"E1"セルに10分単位の切捨てを表示させたい場合は、"E1"セルに“=FLOOR(D1, 基準値)”を入れます。このとき基準値に10を入れても上手くいきませんので、細工をします。 1分は、0.0006944…ですので、これの10倍の"0.00694444444444444"を基準値として入れます。即ち、"=FLOOR(D1, 0.00694444444444444)"となります。 このままでは式が長いので、余白のセル、例えばセル"AA1"などに"1分"の数値、"0.000694444444444444"を入れておきます。 "E1"セルを、"=FLOOR(D1, $AA$1*10)"(10分単位)、"=FLOOR(D1, $AA$1*5)"(5分単位)としますと"6:20"と表示されます。"E2"~に入れたい場合は、"E1"セルをドラッグしてコピーします。 この時間を利用して金額を"F1"に入れるには、また一細工します。 時間単価(1,200円)を"AA2"に入れ、"AB1"に"24"を、"AB2"に"=AA2*AB1"(1200x24=28800)を入れておきます。 次に、"F1"に"=E1*$AB$2"と入れると、"182400:00"と表示されます。エクセルは時間を含む計算をすると、セルの書式が自動的に時間表示となりますので、面倒でも、後から"F1"の書式を"標準"に変更します。マクロで書けばこの操作も自動化されるのですが...。"F1"に"7600”と表示され、目的が達せられました。 これで、一応答えが出ますが、最初に言いましたように、計算中の数値の最後の桁の端数処理の工程で誤差が出ます。上記の方法では、いつ誤差が表面化するかが不明ですので、いちいち検算しなくてはなりません。本当は、換算表を作り、LOOKUP関数などを使って計算する方法がいいのですが...。
お礼
ありがとうございます。 本当にエクセルの初心者で困っています・・・。 セルが時間・単価・合計の3ツしかないのですが、見えないところのセルの入力するしかないでしょうか? 端数切捨て・切り上げのことまで教えていただきありがとうございます。勉強になりました。 エクセルで作った計算などはいつも全て検算しています。 会社のシステムもあるんですが、5分単位・10分単位のこの計算には適応されず、いつも手計算しています。 細かくご指導いただきありがとうございます。 今後の参考にさせていただきます。
時間と分は別セルですか? また、分は10の倍数でしょうか? 別セルなら、時間×6+分÷10(余りは出ないものとする)で、10分単位の個数が出せますので、200にかければよいと思います。 5分単位なら、時間×12+分÷5(余りは出ないものとする)となります。5分単位で100円なら、100にかけてください。 インプットがどんなもので、アウトプットが何か(分当りの単価なのか総額なのか?)が、質問からはいまいちピンと来ないので、たぶん、ピンと来ない回答になっていることでしょう。
お礼
ありがとうございます。 時間と分はおなじセルで71:10などと表示されています。 分は10の倍数です。 71:18などの端数が出る事はないです。 質問の仕方が悪くて申し訳ないです。 回答していただいてありがとうございます。
お礼
ありがとうございます。 無事、計算式を入れる事ができました。 本当にご丁寧に教えていただいてありがとうございます。 okwaveはまだ初心者なんですが、こんなに親切に教えていただけて本当に感激です。 本当にありがとうございました!