プロが教えるわが家の防犯対策術!

Excelで以下の式で計算したところ、誤った回答が表示されてしまいました。

=TEXT(INT(セル番号/"7:45")+MOD(セル番号,"7:45"*1),"d日とh:mm")

年次休暇の計算をExcelでしたいのですが、同月で7:45を3回入力すると3日と7:45と表示されてしまいました。(正しくは3日と0:00)
正しく表示させるにはどのようにしたら良いのでしょうか。お知恵を貸してください。

よろしくお願い致します。

A 回答 (1件)

こんにちは



時間は60進法なので、10進法では完全に表しきれないために、合計したりする際に微小誤差が発生するのが原因のようですね。
"7:45"の3日分の加算は、正確な3倍よりもわずかに小さくなっているようです。
( /"7:45" の結果は、2にならずに補正されて3となるようです)
一方で、MOD関数は正の数を返すので、"7:45"よりわずかに小さな値を返していると考えられます。

>正しく表示させるにはどのようにしたら良いのでしょうか。
MOD関数を使わずに、「元の値 - (Int(元の値/"7:45"))」を利用すればよいと考えられます。
ご提示の例の場合、上記は微細な負数になりますので、これを回避するため負数を0に置き換えるようにすれば、
=TEXT(INT(セル番号/"7:45")+MAX(セル番号-INT(セル番号/"7:45"),0),"d日とh:mm")
では、いかがでしょうか?
    • good
    • 0
この回答へのお礼

ありがとうございました!
無事に3日と0:00で表示されました!!

お礼日時:2021/05/21 13:23

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!