[[20051014094051]] 『60進法のエクセル関数』(22) ページの最後に飛ぶ

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

 

『60進法のエクセル関数』(22)

60進法の勤務記録表を作成中なのですが、残業時間計算で、1H以内はOKなのですが、1Hを超えると0.60、0.75、0.90と出てしまいます。1時間を1.0に表示させるには、どうしたらよろしいでしょうか?


 どのような計算をされているのか分かりませんが、
 小数部分のみを計算し直すのでしょうか?
 B1に=INT(A1)+MOD(A1,1)/0.6 とすれば
	A	B
1	0.6	1
2	0.75	1.25
3	0.9	1.5
4	1.6	2
5	1.75	2.25
6	1.9	2.5
のようになります。 (Hatch)

 説明が悪くすみせん。下のような数式を使い残業を計算していました。
=ROUNDUP(IF(T5-7.67<=0,0,T5-7.67)/0.25,0)*0.15
 この数式から、修正はできますか?よろしくお願いします。

 先程の式に丸ごと当てはめれば、
 =INT(ROUNDUP(IF(A1-7.67<=0,0,A1-7.67)/0.25,0)*0.15)+
MOD(ROUNDUP(IF(A1-7.67<=0,0,A1-7.67)/0.25,0)*0.15,1)/0.6
 となります。

 計算は所定時間を超えた時間を15分単位で切り上げるのでしょうか?
 そうであれば、
 =CEILING(ROUNDUP(IF(A1-7.67<=0,0,A1-7.67)*60,0),15)/60
 このように書くこともできそうです。

 何となくですが、誤差が気になりますので、
 一旦整数値の分単位に直して計算するなら、
 =CEILING(IF(ROUND(A1*60,0)-460<=0,0,ROUND(A1*60,0)-460),15)/60
 とか、どうでしょう。
 # 参照セルはA1にしていますのでご注意ください。
 # 7.67は7時間40分(460分)のことと解釈しました。
   (Hatch) (修正10/17 11:39)

*ご返答ありがとうございます*すみません。
上記ご指導いただいた式ですと、15分残業の場合、表示が0.25のになってしまいます。
時間単位での表示為、0.15となる計算ができません。
何度もすみません。よろしくお願いいたします。

 1時間を1.0 30分を0.5 15分を0.25 とするのではないのですか?
 私にはこの質問が理解できていないようです。
 >時間単位での表示為、0.15となる計算ができません。
 どのような数値からどのような計算をしてどのように表示したいのか、
 具体例を挙げてみたらどうでしょう。
   (Hatch)
ご説明が悪く、お詫びします。下記でご理解いただけますでしょうか。

例として、
8:30-17:25 まで勤務の場合 1時間休憩 時間内勤務7.40 残業0.15
を計算し、時間と分で表記、月末には各Totalする勤務表を作成中です。 


 「8:30-17:25 まで勤務の場合 1時間休憩 時間内勤務7.40 残業0.15」
  の場合の欲しい答えは?(という事を聞いているのでは?
 (dack)

 帯分数で計算してみましたが、どうでしょう?                   (LOOKUP)
 =IF(COUNT(T5)=0,"",
 --SUBSTITUTE(TEXT(CEILING(TEXT(T5*100,"0 00!/6!0")-8,0.25),"0!.00/60"),"/60",))

 >=ROUNDUP(IF(T5-7.67<=0,0,T5-7.67)/0.25,0)*0.15
 で計算していると言うことは・・・T5はシリアル値*24の値がでているから、
 T5*60で良かったのか・・・上の式は1440じゃなくて60でよかったのですね・・・
 数式は元に戻しておきます。そして、修正の文章は削除します。

 それなら、
 =TEXT(CEILING(IF(ROUND(T5*60,0)-460<=0,0,ROUND(T5*60,0)-460),15)/1440,"h.mm")*1
 とすると、「0.15」と表示できますが、こういうことかな・・・

 # T5がどうなっているのかが問題のようです。
 # なお、この式はT5がシリアル値*24の値「7.92」ならという前提です。
 # T5が「7.55」となっているのなら、LOOKUPさんの数式で「-8」を「-7.67」
 # とすればよさそう・・・
   (Hatch)

 # T5が「7.55」となっているのなら、LOOKUPさんの数式で「-8」を「-7.67」
 # とすればよさそう・・・
 そのつもりで、分数にしてから切上げているのですが。。
 LOOKUPの提示させていただいたものは、T5に7.9の場合は、0.3を戻します。       (LOOKUP) 

 LOOKUPさんの数式を理解しないまま、間違ったコメントをしたようです。
 申し訳ありませんでした。  (Hatch)

お手数おかけしております。みなさんありがとうございます。
下記の式で、残業計算の表示ができるようになりました。
TEXT(CEILING(IF(ROUND(T5*60,0)-460<=0,0,ROUND(T5*60,0)-460),15)/1440,"h.mm")*1
どうもありがとうございました!!


コメント返信:

[ 一覧(最新更新順) ]


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