- ベストアンサー
Excel時間計算で0:00が####を回避したい
Excelの計算式につきまして、教えて下さい。 業務時間の計算式として、例えばA1に開始時刻を入れる、B1に終了時刻を入れる、その計算式として「=IF(ISBLANK(C12),"",B1-A1)」を使用しております。このC回答から残業時間も出したいので、合計時間から残業にならない時間3時間を引く式を「=IF(ISERROR(C1-TIME(3,0,0)),"",C1-TIME(3,0,0))」としています。9時から12時まで仕事をしたとすると、このCの合計は3:00となり、残業表示は0:00となるのですが、おかしなことに開始時刻10:00終業時刻13:00の時だけ、残業表示が「######」となってしまい、補足分として「負であるか、大きすぎる日付及び時間は######と表示されます」となります。 セルの表示書式につきましては、「時刻 13:30」を使用。 この場合、どう処理すればよろしいでしょうか。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
マイナス0になっているからみたいなのでABS使って、また0以外でもC1が3時間以上じゃないとマイナスになると思いますからマイナスにならない場合だけ計算することにして =IF(ISERROR(C1-TIME(3,0,0)),"",IF(C1>=TIME(3,0,0),ABS(C1-TIME(3,0,0)),""))
その他の回答 (3)
- luka3
- ベストアンサー率72% (433/596)
自分で試したところ「C1-TIME(3,0,0)」だと分単位が綺麗に出ず、最終的に出した結論(数式)はこちら =IF(OR(ISERROR(C1-TIME(3,0,0)),C1<TIME(3,0,0)),"",TIME(HOUR(C1)-3,MINUTE(C1),0)) 時間の時と分を分離して時から3を引いたあと、TIME関数で時間に戻す
補足
ご回答いただき有難うございます。 EXCELに入力してみたところ、「この関数に対して、多すぎる引数がが入力されています。」と出て入力完了になりませんでした。 10時から13時以外の3時間・残業0:00は出るのですが、この時間帯だけがどうもマイナス計算になってしまうようなんです。 or関数は使ったことがないので、どこが問題なのか自身でもわからないので、もし、お時間がございましたら、またお教えいただけますと幸いです。 どうぞよろしくお願いいたします。
- 聞き上手(@chinchiman31599)
- ベストアンサー率20% (55/268)
×60とか360的な事したらうまくいかないですかね?
お礼
×60をどこに入れればいいのか判らず、色々試してみたのですが、エラーになっちゃいました。 そうこうしている内に他の方のご指摘で解決いたしましたので、ご報告いたします。 ご助言いただき、有難うございました。
- go-yachan3
- ベストアンサー率40% (64/160)
セル内に文字数が収まりきって無いのでは? 残業表示するセルを選択して セルの書式設定>配置>文字の制御>縮小して全体を表示する で表示される様にならないでしょうか。
補足
ご回答いただき、有難うございます。 0:00は収まり切る枠幅にしています。他の0:00表示は問題なく表示されるんです。なのに10時開始13時終了の時だけ「########」が延々に続いています。幅を広げてみてわかりましたww。なので、別の原因だと思われます。
お礼
出来ました!!ABS関数ですね!勉強になりました。10時から13時も問題なく0:00表示が出来ました。 ご助言誠に有難うございました。