- ベストアンサー
時間の計算結果切り上げについて
- 「時間の計算結果切り上げについて」というタイトルで、質問文章ではセルZ10~Z20までの関数を使用して合計結果を表示しています。また、セルU10~U20に時間を入力し、合計結果をセルU21に表示するようにしています。さらに、セルZ25にはセルU21とセルZ21の合計を30分切り上げで表示する関数が入力されています。
- セルZ25の表示結果は、セルU21に数値の表示がない場合に、セルZ10~Z13の合計に応じて30分単位で表示されます。例えば、セルZ10とセルZ11が0:30の場合は「1:00」と表示され、セルZ10からセルZ13までが0:30の場合は「2:00」と表示されます。
- 質問者は、セルZ25に正常に30分単位で表示される方法または修正の方法を求めています。質問者は、セルZ21の合計が1:30の場合にもセルZ25に「1:30」で表示されるようにしたいと考えています。また、セルZ21の合計が2:00の場合にもセルZ25に「2:00」で表示されるようにしたいとも求めています。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
あるいは、(式が長くなりますが) Z25=CEILING(TIME(HOUR(SUM(U21:Z21)),MINUTE(SUM(U21:Z21)),SECOND(SUM(U21:Z21))),"0:30") でもいいと思います。 なお、今更ですが、 CEILINGを使い小数値単位で切り上げる使い方が 厳密に保証されるかといえば、怪しいかもしれません。 (未確認です。) 私だったら、 最小単位が1分なら 時刻は日付シリアル値で、時間は経過分で扱うようにします。 最小単位が1秒なら 時刻は日付シリアル値で、時間は経過秒で扱うようにします。
その他の回答 (2)
- HohoPapa
- ベストアンサー率65% (455/693)
- HohoPapa
- ベストアンサー率65% (455/693)
F4,H10:H20の値の説明がないので再現テストができないため、 推測ですが、。。。。 >SUM(U21:Z21) の関数の集計元とのセルたち、つまり、 U21:Z21のいずれかに、見かけより極わずかに大きい値があるものと思います。 例えば、=U21=Time(0,30,00) といった関数で 見かけの値と真の値が等しいかを確認することで 問題個所を炙り出せるものと思います。 そもそも2進数で小数を扱う場合、誤差はつきものです。 (時分秒の値は内部的には小数です。) この仮説が正しいようであれば、 =TIME(HOUR(D2),MINUTE(D2),SECOND(D2)) といった関数で、秒未満の端数を排除することで 期待の計算ができるだろうと思います。
補足
早速のご返答ありがとうございます。 説明不足でお手数をおかけいたしまして申し訳ございません。 セルF4でございますが、始業時間を入力しております。 *セルの書式設定は「ユーザー定義/[h]:mm」 *関数の入力はございません。 例:19:00 セルH10:H20でございますが、出勤時間を入力しております。 *セルの書式設定は「ユーザー定義/[h]:mm」 *関数の入力はございません。 例:19:30 セルZ10~Z20は遅刻時を表示するようにしております。 仮説でご回答いただきました関数の「=TIME(HOUR(D2),MINUTE(D2),SECOND(D2))」箇所は、今の私の知識ではよく理解できず申しわけございません。 こちらのご提示いただきました関数をセルZ25に入力するという事でございましょうか。 何卒よろしくお願いいたします。
お礼
私の拙い質問の説明内容にもかかわらず、ご親切にご指導承りまして有難うございます。 ご提示いただきました関数の入力で解決いたしました! 何度もお手数をおかけいたしまして申し訳ございませんでした。 ありがとうございます。