• 締切済み

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

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

みんなの回答

回答No.6

hanaoyajiさん 今日は!前回の続きです。 ■Excel実用編:勤務時間の計算例(関数)「Excel2002」 http://www.eurus.dti.ne.jp/~yoneyama/Excel/nyumon/kinmu/index.html 概要:はじめに 勤務時間計算の条件 一つのセルでいろんな条件を付けて計算しようとすると、長い数式になり修正が非常に大変になります。 このページでは、なるべく平易な分かりやすい数式となるように、各時間帯別に勤務時間を計算する方法で説明しています。 (作業列をちょっと多めに使用しています) ☆勤務時間計算の条件設定 1.通常勤務の時間帯 :  8:00~17:00(休憩時間 12:00~13:00) 2.残業時間帯    : 17:00~22:00 3.深夜残業時間帯  : 22:00~30:00 (翌朝 6:00) 4.出勤時間は30分単位で切り上げ、ただし、8:00以前の出勤はすべて8:00出勤とします。 5.退勤時間は30分単位で切り捨てとします。 6.勤務時間の計算は30分単位で切り捨てとします。 計算表のスタイル 5.各勤務時間帯の時刻を6,7行目に入力します:各勤務時間帯の計算式を同一のものにするためです。 目障りならこれらの行を非表示にすればOKです。 6.計算用の出勤時間と退勤時間をF列とG列に表示することにします。 7.数式を簡潔にして、見やすくするためです。目障りならこれらの列も非表示にすればOKです。 8.24時以降は25:00,30:00の入力としています。セルの表示形式を『[h]:mm』とします。 ☆計算表のスタイル設定例を参考にして下さい。 ☆時間の切り上げと切り捨て       ここでは、まず以下の計算の条件を処理します。 (4) 出勤時間は30分単位で切り上げ、ただし、8:00以前の出勤はすべて8:00出勤とします。 (5) 退勤時間は30分単位で切り捨てとします。 (6) 勤務時間の計算は30分単位で切り捨てとします。 (4-1)出勤時間を30分単位で切り上げるには、CEILING関数を使います。 F8セル:=CEILING(D8,"0:30") とします。 F8セル:=7:30 と30分単位で切り上げができました。しかし、8:00からの計算とするには(4-2)の処理が必要になります。 (4-2)IF関数またはMAX関数を使って、開始時刻は8:00とする条件を加えます。 8:00以前の出勤はすべて8:00出勤とし、8:00以降の出勤時間は30分単位で切り上げます。 F8セル:=IF(D8<=TIME(8,0,0),TIME(8,0,0),CEILING(D8,"0:30")) または、最小値を8:00とすれば良いので、 F8セル:=MAX("8:00",CEILING(D8,"0:30")) とすることもできます。 (4-3)ただし、D8セルが未入力の時も計算結果は8:00となるので、IF関数で未入力時の処理を加えます。 =IF(COUNT(D8)=1,MAX("8:00",CEILING(D8,"0:30")),"") とします。 (5-1)退勤時間を30分単位で切り捨てるには、FLOOR関数を使います。 G8セル:=FLOOR(E8,"0:30") とします。 (5-2)ただし、E8セルが未入力の時も計算結果は0:00となるので、IF関数で未入力時の処理を加えます。 =IF(COUNT(E8)=1,FLOOR(E8,"0:30"),"") とします。 以降は設定が、図解されて居ますので良く読んで作成して下さい。 これで勤務時間が理解できると思います。

回答No.5

hanaoyajiさん 今日は!前回の続きです。 11.E6セルが空欄の場合に空白処理を付け加えます。     =IF(E6="",””,・・・)/=IF(E6="",””,FLOOR(TIMEVALUE(TEXT(E6,"h:mm"),$F$3)) (注)F列の表示形式は、[時刻]の[13:30]とします。標準のままでは、シリアル値が表示されます。 12.時間の切り捨て/切り上げ/四捨五入は、CEILING関数/FLOOR関数/MROUND関数を使います。 (注)D3:E4 および D9:D12 の表示形式は[時刻]の[13:30]としてあります。 13.MROUND関数が使用できず、エラー値 #NAME? が返される場合は、分析ツール アドインを組み込む必要があります。設定は下記の手順で行います。 14.[ツール] メニューの [アドイン] をクリックし、[アドイン] の一覧の [分析ツール] ボックスを選択し、[OK]ボタンをクリックします。必要に応じて、セットアップ プログラムで表示される手順に従って操作します。 ☆支給額の計算:15.基本的には[支払い時間]*24*[時給額]なので[支払い時間]はシリアル値0.3958)なので、24をかけて9.5(時間)に直します。 16.日々の支払額はROUND関数を使って小数点以下を四捨五入しています。 平日の計算式 :=ROUND(F6*24*$H$1,0) 17.土日祝の計算式:=ROUND(F6*24*$H$2,0) これは、月単位の合計を出した時に小数点以下の誤差を防ぐためです。[注]小数点以下の値があると、合計時に誤差を生じます。 18.時給が[平日]と[土日祝]で異なる場合、IF関数で[時給額]の参照セルを変えるようにします。 条件は曜日欄のB6セルが「月、火、水、木、金」であれば、「平日」の時給額、そうでなければ「土日祝」の時給額としています。 19.=IF(OR(B6="月",B6="火",B6="水",B6="木",B6="金")、平日の計算式,土日祝の計算式) 空白処理を加えます。 20.=IF(F6="","",IF(OR(B6="月",B6="火",B6="水",B6="木",B6="金")、平日の計算式を入力。 条件は曜日欄のB6セルが「月、火、水、木、金」であれば、「平日」の時給額、そうでなければ「土日祝」の時給額としています。=IF(OR(B6="月",B6="火",B6="水",B6="木",B6="金")平日の計算式,土日祝の計算式)空白処理を加えます。 21.=IF(F6="","",IF(OR(B6="月",B6="火",B6="水",B6="木",B6="金"]は、{F6*24*$H$1,0),ROUND(F6*24*$H$2,0)))、となります。 ☆日付の表示:21.曜日欄B列には祝日名を入力しています。これは、時給金額を[土日祝]で変える時のIF関数の条件で月~金でなかったらとしている為で(正確には、月~金の文字でなかったら「祝日」でも良いです)実際には、これらを入力するのは面倒ですので、マクロで処理しています。 21.C3セルに年月を入れ、[カレンダー表示]ボタンをクリックすると[日]、[曜日]、[祝日名]が自動で表示されます。 22.マクロについては参考です。マクロでの1月の祝日の判定箇所です。 こんな感じで12か月分を記述しています(バージョンで異なる) 23.1月の祝日判定 Select Case 基準月 Case 1   If 基準年 >= 1949 Then     祝日(1) = 1     祝日名(1) = "元 旦"    nd If '成人の日 1999年までは15日に固定   If 基準年 >= 1949 And 基準年 < 2000 Then     祝日(2) = 15     祝日名(2) = "成人の日"    nd If '成人の日 2000年以降は第2月曜日    If 基準年 >= 1949 And 基準年 >= 2000 Then      count = 0    i = 0    For i = 0 To 20 Step 1       If Weekday(日付 + i) = 2 Then          count = count + 1         If count = 2 Then           祝日(2) = Day(日付 + i)           祝日名(2) = "成人の日"  

回答No.4

hanaoyajiさん 今晩は! >実際の勤務実績を入力すると、右側の色つき部に早朝、早出や残業時間などを自動で表示できないかと考>えています。 入社・退社時間をマクロで自動化は、可成り面倒です。 ■Excel(エクセル)実用編:時給計算書の作成例(Excel2002) http://www.eurus.dti.ne.jp/~yoneyama/Excel/jituyou/jikyu.htm#kanseirei 概要:このページではエクセルで求めた時間から時給を計算する方法を説明しています。 1.時刻/時間の基本的な計算方法は→時刻の計算 2.基本的な、勤務時間の計算例は→勤務時間の計算例 3.完成例 4.基本数値の入力 5.勤務時間の計算 6.支払時間の計算 7.支給額の計算 8.日付 時刻/時間の基本的な計算方法などは別ページで説明しています。 1.項では[サンプルダウンロード]の入手が出来ます。(無料です) 2.項では基本数値の入力:(1)氏名欄および基本数値欄【完成例】 3.B1セルに「氏名」と文字を入力:C1:D1セルは【セルを結合して中央揃え】ボタンで、セルを結合しています。 4.F1,G1,G2,G3セルはそれぞれ、[時給]/[平日]/[土日祝]/[分単位]の文字を入力しH1,H2セルは時給額を入力します。【桁区切りスタイル】ボタンで桁区切りを使っています。F3セルは時間計算単位を入力します。この例では30分刻みです。 5.セルの書式を『時刻』の『13:00』としています。 F3セルを選択し、メニューバーの【書式】→【セル】→【表示形式】タブで以下を選択します。 6.上記(2)と同様に、C3:C4セルセルを結合した後、セルの書式を【表示形式】は[日付]【種類】を[2001年3月]としています。 ☆勤務時間の計算          7.E6セルの計算式は、基本的には [退社時間]-[出社時間] 退社時間が深夜の0時を過ぎた場合は、 (退社時間が出社時間より小さいことで判定しています)には、『+1』を加えて、計算するようにします。 式:=IF(D6-C6<0,D6-C6+1,D6-C6) (メモ) 時刻のシリアル値 8.24時間で「1」となるので、翌日の場合は+1とする必要があります。具体的には、21:00はシリアル値では0.875、3:00は0.125ですので、3:00-21:00=0.125-0.875=-0.75 (マイナス値) となり、時間として計算できません。 また、[出社時間]と[退社時間]のどちらかが空欄のときは、計算をせずに[勤務時間]欄を空欄にします。 =IF(OR(C6="",D6=""),"",・・・・)または=IF(COUNT(C6:D6)<2,"",・・・・)この2つの式を合成して使っています。 (注)C,D,E列の表示形式は、[時刻]の[13:30]とします。標準のままでは、シリアル値が表示されます。 ☆支払時間の計算:支払い時間を計算単位時間で丸めるには計算単位時間で切り下げるにはFLOOR関数を使います。=FLOOR(E6,$F$3) (=FLOOR(E6,”0:30”)と同じ) ☆支払時間の計算:支払い時間を計算単位時間で丸める:計算単位時間で切り下げるにはFLOOR関数を使います。=FLOOR(E6,$F$3) (=FLOOR(E6,”0:30”)と同じ) 9.小数誤差をさける→出社,退社時間をキーボードから入力する場合は問題ありませんが、オートフィルなどで連続値をコピーした時などに、小数点以下の計算誤差を生じる事があります。 10.その誤差を避けるため、TIMEVALUE関数を組み合わせています。=TIMEVALUE(TEXT(E6,"h:mm")に上記式のE6部分を置き換えます。=FLOOR(TIMEVALUE(TEXT(E6,"h:mm"),$F$3)とします。 以降は補足します。

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

E4セルなどの時間は範囲を指定したセルですがお示しの0~7のように~の入った文字列になっているとします。 E5セルには次の式を入力してI5セルまでオートフィルドラッグしたのちに下方にもオートフィルドラッグします。 =IF(COUNT($B5:$C5)<>2,"",IF(MIN($C5,MID(E$4,FIND("~",E$4)+1,2)/24)<MAX($B5,LEFT(E$4,FIND("~",E$4)-1)/24),"0:00"*1,MIN($C5,MID(E$4,FIND("~",E$4)+1,2)/24)-MAX($B5,LEFT(E$4,FIND("~",E$4)-1)/24))) なお、24:00を超えた深夜時間はないのですね。その場合にはI4セルを22~26などとして、C列のデータでは25:00などと入力すればよいでしょう。25:00と入力しても1:00のように表示される場合にはセルの書式設定からセルの表示形式でユーザー設定にし、種類の窓には [h]:mm のように入力します。

  • foomufoomu
  • ベストアンサー率36% (1018/2761)
回答No.2

訂正 前記の式だと時間の範囲内にまったく出勤していないと#####表示になってしまいます。 そこで、前の例の、7時から8時の間の勤務時間(F5セルの内容)は =MAX(MIN(C5,"8:00")-MAX(B5,"7:00"),0) としてください。

  • foomufoomu
  • ベストアンサー率36% (1018/2761)
回答No.1

エクセルの日時は1日(24時間)を1とした実数であらわされていて、大小比較や加減算が可能です。また式中に"8:30"などと書くと、前記ルールで日時を表す数として扱われます。 したがって、たとえば、7時から8時の間の勤務時間(G5セルの内容)は =MIN(C5,"8:00")-MAX(B5,"7:00") で、計算できます。

関連するQ&A

  • EXCEL2000で勤務表

    EXCEL2000で勤務表の作成を依頼されました。 関数で計算をしようとしたのですが うまくいかない点があるので 皆様のお知恵をお貸しください 条件は 1.出勤・退勤時間を入力したら休憩時間と勤務時間を求める 2.休憩時間は12:00~13:00と   22:00~23:00の2回(固定) 3.早出,午前半休,午後半休あり 4.時間で1時間単位で○:30という時間はない   (丸め込んだ時間を入力する) (求めたい時間) A列 |B列 | C列| D列| 出勤 |退勤 | 休憩| 勤務|  8:00|17:00| 1 |  8|定時  8:00|23:00| 2 | 13|残業  8:00|12:00| 0 |  4|午後半休  8:00|13:00| 1 |  4|午後半休  7:00|12:00| 0 |  5|早出 13:00|18:00| 0 |  5|午前半休 計算式としては 勤務時間=退勤時間-出勤時間-休憩時間なのですが 休憩時間を求める式がよくわかりません。 情報が不足している場合は補足いたしますので ご指摘ください。 環境OS:WIN98 Office2000 SR2 よろしくお願いいたします。

  • Excel関数について(時間の出し方)

    勤務の定時が17:30で終業時間が19:30なら残業が2になりますよね。 例えばセルA-1に19:30と入力するとセルB-1に自動的に2と出るような関数を教えて下さい。 よろしくお願いします。

  • Excel2000での勤務時間計算

    以前何度か質問をして、その都度解決したのですが、少しパターンが変わっただけでチンプンカンプンになってしまう初心者からの質問です。 よろしくお願いします。 以下のような勤務体系があります。 出勤時間と退勤時間を入力して、条件にあてはまる区分に時間を振り分けたいと思います。 (1)早出:5:00~8:30 (2)午前定時:8:30~12:00 (3)昼休み:12:00~12:45 (4)午後定時:12:45~16:45 (5)時間内残業:16:45~17:30 但し、(1)+(2)+(4)の労働時間が8時間を超える場合は、17:15~17:30は午後休みになる。 (6)通常残業:17:30~10:00 (7)深夜残業:10:00~05:00 (A1セルに)出勤時間入力(例:8:00) (B1セルに)退勤時間入力(例:18:15) (C1セルに)早出時間表示(例:0.50)-30分なので0.5時間です。 (D1セルに)定時間(午前+午後)表示(例:7.50)-12:00~12:45は昼休みなので時間のカウントはしない。 (E1セルに)時間内残業表示(例:0.50)-17:15~17:30の15分は午後休みなのでカウントしない。 (F1セルに)通常残業表示(例:0.75) (G1セルに)深夜残業表示(例:0.00) それぞれ割増率が違う為、以上のように各セルに労働時間を区分けして表示させたいです。 何卒ご教示お願い致します。

  • エクセルで勤務時間の計算をしたい。

    もしかしたら同じような質問があったかもしれませんが 探せなかったのでお訊ねします。 勤務時間 8:30~17:30 休憩時間 9:00~9:15 12:00~13:00 15:00~15:15 17:30~17:45 の場合、単純に休憩時間を 0:15 1:00 0:15 0:15 と決めてマイナスするのではなく 8:30~17:30 のうち 9:00~9:15 12:00~13:00 15:00~15:15 17:30~17:45 に該当する時間は休憩時間 というような計算はできないでしょうか? 個人によって勤務時間も休憩時間もまちまちなので 遅刻・早退や早出・残業でこの時間帯にはまってしまうとき 15分 60分 などと休憩時間を定数にしてしまうととても不便です。 ちなみに1sheetに25人分くらいのデータを入力します。 私が言いたい事はわかっていただけるでしょうか。 どなたか解りやすく教えて下さい。お願いします。

  • 関数教えて!

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

  • エクセルで時間外を求める関数

    エクセルで勤務管理表を作成しています。 早出・遅刻・残業の合計時間を関数を使って求めるには どうしたら良いでしょうか? A行には出勤時間 C行には退社時間入力 出勤時間8:00、退社時間17:00が定時です。 8時前に出社した場合15分単位で早出割り増しがつきます(7:28出社なら0.5/7:47出社の早出はゼロ) 8時1分を過ぎると8:30出社とみなされます(0.5の遅刻) 17時15分を超えると15分単位で残業がつきます(0.25の残業) 最終的にE行に早出と残業の合計時間を0.25の単位で入力したいのですが、関数を教えて下さい。

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

    勤務時間を管理の日報を作成しています。以下の条件をつけて出勤時間と退社時間を記入するだけで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 よろしくお願いします。

  • エクセルで時刻計算

    ご回覧ありがとうございます。 エクセルで勤怠の計算をするのにIF文を使って 早出 残業 を出勤時刻、退勤時刻を入力すると自動で早出時間残業時間が出るようにと思ったのですが、うまくいかない時間帯が出てきました。 早出の場合、出勤時刻-定時時刻で何時間の早出 という感じでうまく行きましたが、出勤時刻が遅刻や早退の場合計算出来ないことが分かりました。 何かよい方法はないでしょうか? 分かりにくくて申し訳ありません。 見えるか分かりませんが 画像添付しましたので分かる方よろしくお願いします。

  • 残業時間の計算方法

    残業時間の計算方法についてご質問です。 月給制にて『16:30~24:00』という所定労働時間があったとします。 ※休憩時間は無視し、又22:00~の深夜手当てはすで基本給に含まれて いるものとします。 定時の24:00以降残業をした場合、24:01~は深夜手当ての対象となるのは分かるのですが、例えば13:00~早出出勤し、そのまま通常勤務に付いた場合は、22:00~も別途深夜手当ての対象になるのでしょうか? 言い換えれば、早出して更に残業した場合の時間の計算方法は、(1)早出は早出のみ、残業は残業のみでそれぞれ別で計算する、のか(2)早出(出勤)した時刻を起点とし、そこから超えた時間を時間外とする、のかどちらですか?分かりにくい文章でしたらすみません。 よろしくお願いします。

  • EXCEL関数で教えて下さい。

    EXCELの関数を使って以下の値を出したいのですか、どの様な関数をどの様に使えば良いか教えて下さい。 勤務時間で定時終了時間から30分及びそれ以降の時間 (例) 17:00(定時終了時間)で18:00まで残業を した場合にA時間として30分、次にB時間として 30分の計算をする。 この場合のA及びB時間欄の自動算出関数。

専門家に質問してみよう