[[20070123195354]] 『時間表示で小数点をコロンに変換』(とも) ページの最後に飛ぶ

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

 

『時間表示で小数点をコロンに変換』(とも)

勤怠ソフトからインポートしたデータを加工して、残業時間の合計を算出したいと思っています。
インポートするデータは小数点表示でインポートされます。
例)24時間32分は【24.32】、 51分は【0.51】
ただしこれを合計すると単純に小数点の加算で24.32+0.51=【24.83】となり、
求めたい数字のの25時間23分【25:23】にはなりません。

そこで小数点【.】をコロン【:】に一括変換して計算をすると
24.32+0.51=【25:23】とめでたく表示されます。

ただし、24時間30分など1の桁が0の場合、【24.3】の小数点をコロン【:】に変えると
【24:03】となり24時間03分を変えたとき【24:03】と同じになってしまいます。

■知りたいこと@
24時間30分【24.3】を手修正なく【24:30】と変換させるのはどうしたらいいのか?

■知りたいことA
小数点のまま24.32+0.51=【25:23】を導き出す方法がないのか?
(これができると一番ありがたいのです)

■知りたいことA
時間表示をしているセルの数式バーにある意味が知りたい。
たとえばセル 62:21:00 の数式バーは【1900/1/2 14:21:00】となる。
この数値はどういう意味なのか?

大変恐縮ですがみなさまのお知恵をぜひお借りしたいと思います。
どうぞよろしくお願いします。


 ◆知りたいこと(1)に対する回答
 作業用のセルを用意します。
 =--SUBSTITUTE(TEXT(A1,"0.00"),".",":")
 と入力してシリアル値にします。
 表示形式を [h]:mm にして下さい。

 ◆知りたいこと(2)に対する回答
 知りたいこと(1)に対する回答を参考に、数式を組んでみてください。
 =SUM(--SUBSTITUTE(TEXT(A1:A10,"0.00"),".",":"))
 と入力し、Ctrl+Shift+Enterで数式を確定。

 ◆知りたいこと(3)に対する回答
 62:21:00 --> 2日と14時間21分00秒
 エクセルでは通常 シリアル値1の場合 1900/1/1 0:00 となりますので、
 そのような表示になっています。

 (ROUGE)

 ありゃ、衝突☆
 (2)だけ別法で、 =SUMPRODUCT(--TEXT((A1:A10)*100,"00!:00")) 
(純丸)(o^-')b

ROUGEさん、純丸さん

本当にどうもありがとうございました。
とても助かりました。
あとは自分で何とかできそうです。
いや〜素晴らしいです!!!
また困ったらぜひよろしくお願いします。
(とも)


すみませんが、まだ自分の理解度は低いようです。
もう一度、教えてください。

上記の「知りたいこと@とA」で 【25:23】を導き出すことが出来ました。

ありがとうございました。ただ、これを小数点に直すことができずにその後の
計算ができなくなりました。

最終的にやりたいことは、残業時間から残業代を算出するところまでです。

1、平日の残業時間と休日の残業時間を合計する

	小数点【.】でインポートした数字は、現在【25:23】となっていて、
	この後の2のステップに進めません。
2、合計時間数に時給をかけて残業代を算出する。
	ROUNDDOWNで整数部分と小数点以下部分を分けて各々計算
	(分けなくてもできるといいのですが)
	整数部分は「時給」×「残業時間」
	小数点以下部分は15分毎の端数で切り上げ、「時給」×0.25(15分の場合)
	=IF(Z2=0,0,IF(Z2<0.15,0.25,IF(Z2<0.3,0.5,IF(Z2<0.45,0.75,1))))
	(この関数は大丈夫でした)

■知りたいことC 時間表示をもう一度小数点表示に戻せないか?

		【25:23】を25.23としたい
		(ユーザー定義の変換ではなくて自動計算で出せるといいのですが)

■知りたいことD 整数部と小数点部分を分けずにもっと都合のよいやり方がないか?


 25.23は計算に不向きだと思いますが、いかがですか?
 25:23に24と時給を乗算してみてください。
 (ROUGE)

ROUGEさん 昨日に引き続きどうもありがとうございます。
これはすごいですね。

あともう1つ、15分単位で切り上げ処理をしたいのですが、可能でしょうか?

たとえば、25時間23分であれば30分に繰り上げて、時給×0.5としたいのです。

よろしくお願いします。


 繰り上げてあげるんですね。やさしい会社です^^
 CEILING関数を使いましょう。
 =CEILING(計算式,"0:15")*24*時給
 でどうでしょうか。
 (ROUGE)

ROUGEさま 

本当にどうもありがとうございました。

いろいろ苦戦しましたが、どうにか目的の表を完成することができました。

本当に感謝・感謝です。

(とも)


コメント返信:

[ 一覧(最新更新順) ]


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