• 締切済み

関数教えて!

始めまして、エクセル2007の関数のことで教えて欲しい事があります。 手作りで勤務表を作ったのですが、残業時間を自動的に計算して表示する関数式が分からなくって困ってます。 表はシンプルに開始時間セルと終了時間セルと残業時間セルの3項目を作っています。 開始時間と終了時間を打ち込んだら自動で残業時間を表示さしたいのですが・・・ちなみに、基本時間は8:00~17:00休憩時間込で9時間です。それ以外を残業とみなしています。(早出もです!) どなたか 関数に詳しい方教えてください。 よろしくお願いします。

みんなの回答

  • _Kyle
  • ベストアンサー率78% (109/139)
回答No.8

#5です。 >ただ、一つ「0:00」の表示の件でどうしても  >8:00~17:00の時に「0:00」が出てしまいます。 >何か良い手はありますか? あー、確かに、8:00~17:00 のときは、 演算誤差が発生してキッカリゼロになりませんね(^^;; 「基本時間」の組み合せなのに気付かないとは 我ながら少しウカツでした。お手数おかけしてすみません。 「シリアル値 ⇒ 文字列 ⇒ シリアル値」 で誤差を吸収するアプローチで処理します。  =--TEXT(MAX(B2-A2-"9:00",0),"[h]:mm") ■日経PC21 / エクセル「演算誤差」対策講座 http://pc.nikkeibp.co.jp/pc21/special/gosa/index.shtml 以上ご参考まで。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.7

毎日のようにこのタイプの質問がここにでる。 質問者は過去のこのコーナーの質問や、Googleで「エクセル 勤務時間表 関数」などで照会して、勉強し、わからない点に絞って質問のこと。 課題丸投げの質問になっている。 ーー ほかに、エクセルで、セル番地の引き算で、経過時間が出る理屈の根拠たる、エクセルの日付・時刻シリアル値に関する理解は大丈夫ですか。 Googleなどで「日付・時刻シリアル値」で照会 http://www.officepro.jp/excelfunc/date/index0.html ほか多数出てくる。

回答No.6

この問題は、「関数に詳しい」云々の前に、正しい認識(定義)が必要です。 この問題を解決しないで、関数式を作っても意味がありません。 正しい認識(定義)とは、残業時間の定義です。 単に、残業時間=(業務終了時刻-業務開始時刻)-9時間で、いいのですか。 残時間がマイナスになる場合や、既定就業時間(休憩時間込で9時間)は満足しているが、業務開始時刻や業務終了時刻が規定外の場合はどうするのか、時刻や時間の入力形式や表示方法はどうするのか等々。 単に、残業時間=(業務終了時刻-業務開始時刻)-9時間の場合を記述します。 A1:業務開始時刻,B1:業務開始時刻,C1:残業時間としてC1の関数式は、  =IF(OR(A1="",B1=""),"",(B1-A1)*24-9.00)) 但し、A1,B1の表示形式(書式)はユーザー定義で[hh:mm]で、「8:00」と入力する必要があります。 また、C1の表示形式(書式)は[数値]で、計算値C1は時間単位の表示になります。

  • _Kyle
  • ベストアンサー率78% (109/139)
回答No.5

>残業時間のセルには時間が入力されて無いと、##### ・・? >みたいな表示が出ています。 =MAX(B2-A2-"9:00",0) とすれば、 ・開始時刻から終了時刻までが9時間に満たない場合 ・時刻が入力されていない場合 は 「0:00」 になり、オートSUMで合計を求めることができます。 なお、「0:00」ではなく空白にしたい場合は、 セルの表示形式を [h]:mm;;; としてください。 ------------------------------------ それから、例えば、  開始時刻 :  9:00  終了時刻 : 18:00 のような場合には、 #4さんが回答された数式とは異なる結果が返ります。ご注意ください。 私の数式は上記の場合、休憩込みの9時間で残業なしと判断し、0:00 を返すようにしています。 ご参考まで。

sa1975
質問者

お礼

ご丁寧な回答、ありがとうございます! おかげさまで、希望の動きになりました。 ただ、一つ「0:00」の表示の件でどうしても 8:00~17:00の時に「0:00」が出てしまいます。何か良い手はありますか? それ以外は、バッチリでした。 ありがとうございます!

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.4

残業時間を求めるのですね。 次のようにしてはどうでしょう。 例えばA1セルに開始時間、B1セルに終了時間があるとして残業時間は次の式であらわされます。 ="8:00"-MIN("8:00",A1)+MAX("17:00",B1)-"17:00"

  • takesun
  • ベストアンサー率40% (22/54)
回答No.3

9時間とそれ以外ならこれでも十分ですが、 おそらくこれだけではないと思いますけど。   A      B    C 1 出勤時間 退勤時間 残業時間 2           =B2-A2-"9:00" 何も条件がありませんので、とりあえずたたき台程度です。

  • Hachi5592
  • ベストアンサー率36% (252/698)
回答No.2

開始時刻と終了時刻のセルにHH:MMという時刻形式で入っているの でしたら、残業時間のセルに =B2-A2-TIMEVALUE("9:00") と入れてみてください。 ちなみに式の例は、セルA2に開始時刻、B2に終了時刻としています。 残業時間のセルの表示形式を時刻のHH:MMとします。

sa1975
質問者

補足

早速の回答、ありがとうございました。 残業時間が自動的にでました。 ただ一つ問題が・・・書くの忘れてしまった事が一つあります。 日にちごとの残業時間の合計をオートSAMで出せる様になってたのですが、出なくなってしまいました。 残業時間のセルには時間が入力されて無いと、##### ・・? みたいな表示が出ています。 合計時間は、手動で打ち込まなければやはりダメでしょうか? 追加のご回答頂ければ幸いです。

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.1

時刻がシリアル値で入力されているのであれば、そのまま引き算が出来ますよ。  A      B    C 開始時間 終了時間 残業を9時間を越えた時間というならば =B2-A2-"9:00" 残業を17:00以降の時間というならば =B2-"17:00" 早出は ="8:00"-A2

関連するQ&A

  • 日報の時間計算を行う関数について

    勤務時間を管理の日報を作成しています。以下の条件をつけて出勤時間と退社時間を記入するだけで1日の総勤務時間を表示してくれる関数をご教示お願いします。 ・9:00出勤で18:00定時退社で15分単位で表示 ・セル(開始)は9:00、(終了)に18:00以降の時間を手入力 ・セル(工数)に関数で総勤務時間を計算 ・9:00から18:00までに1時間15分の休憩をとるため、自動的に差し引いて計算 ・残業は18:15からカウントされるため、18:30以降残業して退社した場合は15分差し引いて計算 ・残業最終時間0:00までとして計算 ・セル(開始)、(終了)に9:00~0:00の15分単位の時間以外を入力はない前提とします ・遅刻、早退による変則時間の入力はない前提とします 【例】 (開始)9:00、(終了)18:00の時は(工数)に7.75 (開始)9:00、(終了)18:15の時は(工数)に7.75 (開始)9:00、(終了)18:30の時は(工数)に8 (開始)9:00、(終了)0:00の時は(工数)に13.5 よろしくお願いします。

  • エクセルで時間表示させる関数(勤務時間)

    勤務表管理のため、表を作成しています。 通常勤務は9:00-17:30で残業時間が15分の休憩を挟んだ後17:45-21:30までです(その後深夜残業がありますがここでは割愛します) C22に仕事開始時間、D22に仕事終了時間を入れています。 例えば9:00-22:00で仕事したとします。そして、あるセルに、残業時間開始時間、終了時間を表示させたいのですが、残業時間開始を =IF(D22> "17:30","17:45","") と入れたのですが空白で返されてしまいます。">"を"<"にするとなぜか17:45が表示されます。 終了時間は、IF(D22>="21:30",MIN(D22,"21:30"),D22) だと空白で返されます。逆にするとMIN(D22,"21:30")が返されて例えばD22に17:30とか入れると21:30と返されてしまいます。 時間計算の場合、何か特殊な設定をしないと逆になってしまうのでしょうか?

  • エクセル関数

    現在エクセルで勤務時間を計算するデータを作成しているのですが、1点わからない点がありまして質問させてください。 平日の残業時間の計算は =IF(OR(+$C6="土",$C6="日"),I6,IF(I6>480,I6-480,0)) のようにして一応17:30以降の働いた場合の表示はできているので、問題ないのですが、 たとえば、休日の場合、平日と同じように働いたとしても、残業扱いにするとき、労働基準法で6時間を超える作業をする場合、45分の休憩をとりなさいというものを考えて計算式を作る場合、単純に作業時間が6時間超える場合、作業開始時間から終了時間の差から1440-45の数値(時間を分に置き換えた数値)をかけてあげれば、計算できるのですが、 ここからが悩んでいます。 6時間に満たない作業時間の場合、45分の休憩時間を引かずに計算式で計算し、表に表したいのですが、どのようにしたらいいのでしょうか? 例) 13:00作業開始 17:30作業終了 4:30作業時間 としたいのですが、現在だと3:45と表示されてしまいます。 おそらくIF関数を使用すればできると思うのですが、思うようにできません。 6時間以上か未満か判断し、45分の休憩を考えた関数をどなたか教えていただけないでしょうか? 宜しくお願い致します。

  • excel関数で勤務時間の計算をしたいと思っています。

    excel関数で勤務時間の計算をしたいと思っています。 添付の画像の通り、実際の勤務実績を入力すると、右側の色つき部に早朝、早出や残業時間などを自動で表示できないかと考えています。 何とかなりませんでしょうか?

  • Excelで自作の勤怠表を作成したいです

    Excelにて自作の勤怠表を作製したいです 勤務開始-勤務終了-休憩時間=勤務時間 勤務時間-残業時間-残業時間=定時時間 は数式で出来たのですが 勤務時間の一ヶ月の合計 定時時間の一ヶ月の合計 の二つをうまく関数で計算したいのですが セルには時間の形式で 00:00という風に入力をしてます Excelの関数に詳しい方ご教授お願いします

  • Excel:特定の条件でFLOOR関数を使うには?

    Excelを使って、勤務表を作成しています。 開始時刻、終了時刻を入力すると、 終了時刻ー開始時刻ー休憩時間という具合に当日の勤務時間を出力させるようにしています。 当日の勤務時間を出力するセルには以下の条件が必要です。 (1)開始、終了時刻が入力されていない時、0:00と表示する。 (2)開始時刻8:30(もしくはその時刻より前)、 終了時刻17:05と入力された時、7:50と表示する。 (3)(2)の条件以外は15分単位で勤務時間を表示する。 15分単位で丸めるということでFLOORを使うのですが、 そうすると(2)の条件がまったく無視されてしまい、うまくいきません。 FLOORを特定の条件の時のみ、適用する方法があれば教えて下さい。 よろしくお願いします。 使用ソフト:Excel2002 ------------------------------------------------- ちなみに以下のような計算式を当日勤務時間が出力されるセルに書いて試してみました。 =IF(D9="17:05","7:50",IF(COUNT(C9:D9)<2,"0:00",FLOOR(D9-P9-E9,"0 :15"))) 計算式の意味↓ 終了時刻に17:05と入力されたら、当日勤務時間のセルに7:50と表示。 開始、終了が入力されないと、0:00と表示。 そうでなければ、終了ー開始(8:30以前を8:30と考えるセル)ー休憩で計算し、15分単位で表示。 とこのように書いてみたものの…うまくいきませんでした。

  • エクセルで勤怠の残業手当を計算したいのですが...

     エクセルにて勤怠表を作成しようと思っております。各セルに開始時間、終了時間、拘束時間、休憩時間、実働時間、残業時間、残業手当が表示されるようにしてあります。開始、終了、休憩は手入力でそれ以外は計算式が入っています。  そこで質問なのですが、例えば開始時間8:30、終了時間18:00、休憩時間1:00、通常労働時間8:00とすると残業時間が0:30になります。残業手当は30分毎に500円つけたいので残業手当のセルにROUNDDOWNを使っていて、この場合本来500円と表示されるところ0円となってしまいます。仮に残業時間が0:31となるように入力すると500円と表示されますが、残業時間がちょうど0:30だと0円になってしまいます。ちなみに計算式は=ROUNDDON(I2/"0:30",0)*500です。I2セルは0:30となっております。  ご回答よろしくお願いいたします。

  • EXCELの関数について教えてください。

    エクセルの関数?で2点質問があるのですが、お教えください。 残業時間の計算をエクセルで行いたいと思っています。 例えば、手入力でA1のセルに出社時間、 A2のセルに退社時間を入力すると 自動的にA3のセルに残業時間を表示させたい場合、 どういう関数?を書けばよいのでしょうか? ちなみに一日の勤務時間は、7:30で、 休憩時間が、1:00です。 ですので、例えば9:00~20:00まで働いた場合、 2:30の残業になります。 もう1点あるのですが、毎日その残業時間を 1日1行で記録していって、残業時間の合計を 表示させてたいのですが、残業の合計時間が 10時間未満は文字色黒、10時間以上20時間未満の場合は 文字色青、20時間以上の場合は文字色を赤にしたいのですが、 可能でしょうか? どうかよろしくお願いいたします。

  • エクセルを使った残業時間の計算方法を教えてください

    エクセルを使って、就業開始時間と就業終了時間と休憩時間を入力すれば、自動的に残業時間(契約外時間)と契約内時間が表示されるようにしたいのですが、どういう計算式を使えばいいのかがわかりません。 添付した図の黄色セルの部分です。 定時が9時~17時半、休憩が12~13時の1時間です。 休憩を除いた勤務時間が7時間半を超えた分は残業としてカウントされます。 計算は15分単位です。 開始時刻が9時前になったり、休憩時間が増えたり、15分以下で繰り上げ/繰り下げ計算をしたりというような複雑になることはありません。 F3に7:30、F4に0:30、G6に7:30、G4に0:00と自動で表示させたいのですが、どうすればいいでしょうか。

  • エクセルVBA(2007)での時間計算について

    エクセルVBA(2007)での時間計算について お聞きします。 勤怠集計表をVBAで作成しています。 ボタンを押すと各社員の勤務時間の計算を自動で行うマクロを作成していますが、 勤務時間の計算で困っています。 (1)5:00~22:00での勤務時間、(2)22:00~の勤務時間を出力します。 出社時間・休憩開始時間・休憩終了時間・退社時間の項目があります。 例えば、上記の項目順で、10:00・12:35・13:25・0:30の場合、深夜時間での計算がうまくいきません。 休憩時間を引くと(1)は11:10時間、(2)は2:30時間になると思いますが、計算はどの様にすれば良いでしょうか? 教えて下さい。

専門家に質問してみよう