教えて! goo のコンテンツに対する取り組みについて

EXCELで勤務表を作成したいのですが、TIME関数を使用すると、残業時刻の所に遅刻や早退の時にエラー表示が出てしまいます。
勤務時間は9時から17時15分までです。
どのようにしたら良いのか教えて下さい。

「EXCELで勤務表を作成したいのですが、」の質問画像

質問者からの補足コメント

  • 開始時間終了時間、休憩時間は手入力です。
    タイム関数を使っているのですが、残響時間にエラーが出てしまいます。
    もっと、良い作成の仕方などあるのでしょうか?

    「EXCELで勤務表を作成したいのですが、」の補足画像1
      補足日時:2021/11/29 08:55
gooドクター

A 回答 (5件)

G2 =IF(E3>=F3,E3-F3,0)



で、いかがでしょう。
    • good
    • 1
この回答へのお礼

あなたに会えてよかった

遅刻をした場合でも、きちんと表示されるようになりました。
ただ、全体をコピーしたら未入力の所に#####が出てしまうのですが、これが出ないようにする方法はありますか?

お礼日時:2021/11/29 17:11

現実的な勤務表を作りたいのであれば、先に就業規則に則った仕様をきっかり固めたほうが良いと思いますが。



さておき、エラーになるのは値がマイナスになるからです。

例では10:00出勤=遅刻ですよね?
規則では9:00
遅刻は、出勤時間>定時出勤時間です。
この時だけ出勤時間-定時出勤時間を計算すれば遅刻時間が算出できます。
定刻前 例えば8:00に出社したとして、それはその人の勝手なので、残業とはカウントしない。

となると、遅刻時間は、=IF(出勤時間>定時出勤時間,出勤時間-定時出勤時間,0)で表せます。

早退時間も同様です。ただし 退勤時間<定時退勤時間 の場合が早退になり、定時退勤時間-退勤時間で割り出します。

なので
=IF(退勤時間<定時退勤時間,定時退勤時間-退勤時間,0)
で表せます。

遅刻・早退時間をまとめる場合は、それらを加算すればよいですから、

=IF(出勤時間>定時出勤時間,出勤時間-定時出勤時間,0)+IF(退勤時間<定時退勤時間,定時退勤時間-退勤時間,0)

残業時間は早退でないことを判別して、退勤時間-定時退勤時間で表せます。

ここまでなら、TIME関数は特に必要ありません。
    • good
    • 1
この回答へのお礼

あなたに会えてよかった

私は本当にEXCEL初心者なので、わかりやすく説明していただけて、本当に感謝の気持でいっぱいです。
そうなのですね。
TIME関数は特に必要が無かったのですね。
ベストアンサーが一人でなければ、そちら様にもベストアンサーをポチッとしたいぐらいでした。
本当に有難うございました。

お礼日時:2021/11/29 17:17

それ、時間がマイナスの値になっているんです。



Excelの標準設定ではマイナスの時間表示はできません。
その画面表示のように
 ########## 
と表示されることになります。

G3セルの計算式の中で使っている参照値をよく確認してください。

・・・

マイナスにならないようにするには、MAX関数やMIN関数を使って、
セルの値が ”ある値” よりも小さければ、その ”ある値” で計算するなどの工夫が必要になります。
MAX関数とMIN関数の使い方を確認してください。

例:
 = 退社時間 - 出社時間 - TIME(1,0,0)
   ↓
午前中の勤務時間だけを求める。
(基本形)
   ↓
 = MIN("12:00"退社時間) - MAX(出社時間,"9:00")
   ↓
午前中の出社時間だけを求める。
(退社時間が9:00より速い、出社時間が12:00よりも遅い場合の対応)
   ↓
 = MIN("12:00",MAX(退社時間,"9:00") - MAX(MIN("12:00",出社時間),"9:00")

これで午前中の就業時間内の勤務時間だけを拾い出せます。
同様に午後の勤務時間を拾い出して、足し算すればよいでしょう。

午前の時間外勤務時間、午後の時間外勤務時間、深夜時間外時間も同様にすると良い。

要は、時間を区切って求めると計算式に無理やり
 「- 1時間」
なんて曖昧な計算式を入れる必要が無くなります。
それに、出社時間が12:00より後だったら、質問にある計算式では対応できなくなりますよね。


・・・余談・・・

回答の数式の例でも使っていますが、
 TIME(1,0,0)
は、
 "1:00"
と、文字列で与えると見た目が分かりやすいですよ。
TIME関数を知らない人でも……ああ、時間の計算をしてるんだな……と認識できます。
分かりやすいという事は、間違えにくいという事です。

これは、「数値と見なせる文字列は数値として計算する」というExcelの仕様に則ったやり方です。
この時間表記の場合は、時間の文字列を「シリアル値」という数値に置き換えて計算させます。
    • good
    • 1
この回答へのお礼

あなたに会えてよかった

私は本当にExcelの初心者で、午前中と午後の就業時間を分けて足すという新しい発想に出会えて感激です!!!
ただ関数に詳しくない者なので、また新たなMIN関数、MAX関数などが出てきてしまって、多少戸惑っている部分も有ります。

Excelに詳しい方達ばかりで、ベストアンサーを一人に絞るのが本当に難しく、今回は残念ながらベストアンサーに選ぶことが出来ませんでした。

また、何かあった時には教えて下さい。
今回は、本当に有難うございました。

お礼日時:2021/11/29 17:27

[F3]と[G3]のセルには何が入っていますか?(スクショじゃなくてもOKです)


それと、[E3]は「=C3-B3-D3」では?
    • good
    • 1
この回答へのお礼

Thank you

Excelに詳しくないもので、ネットでTIME関数を見付けて試していたのです。
確かにそれだとシンプルに計算できますよね。

F3とG3は、手打ちで入力しているので、何も入っていません。

シンプルに就業時間の計算表の作り方がわかれば、こんなややこしい事をする必要も無いですよね。

ただExcel初心者なもので、それすらわからないのです。

今回は、ご回答頂き有難うございました。

お礼日時:2021/11/29 17:36

結果の画面だけではなく、各セルにどのような数式、または値が入っているのかを見せてください。

    • good
    • 1

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

このQ&Aを見た人はこんなQ&Aも見ています

gooドクター

このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング