• 締切済み

Excel時間計算で対象となる時間数を求める方法は

Officeバージョン:2003 PC環境:WindowsXP Excelの時間関数を基にした経過時間(対象時間)を算出する方法について質問させて頂きます。 勤怠を管理するExcelを作成しているのですが、勤務体系の中に「深夜勤務」という項目があり、 対象時間が「22:00~翌5:00」までとなっています。 これまでに出勤時間や退勤時間を基にした勤務時間などの差引計算は問題無く解決しているのですが、 計算対象となる出勤時間~退勤時間の中に、今回の対象となる「22:00~翌5:00」がどれだけ含まれているかを計算する過程でつまずいている状況です。 時間計算でシリアル値などは問題無く使用可能です。 これまでに質問で色々探しましたが見つからず...というかどの様なワードで検索したら良いかわからず、 同様の質問の発見に至りませんでした。 良い計算のプロセスなどありましたらご教授頂ければ幸いです。 ps.ソフトウェアはExcel限定でVBAなどのプログラムは現在のところ想定しておりません。

みんなの回答

回答No.5

こんにちは No.3です。 すみません。 質問の内容を勘違いしてました。 大変失礼しました。  【前提】 A2~A20まで出勤時間 B2~B20まで退勤時間 【数式】 =COUNTIFS($A$2:$A$20,">=22:00",$B$2:$B$20,"<=05:00")+COUNTIFS($A$2:$A$20,">=00:00",$A$2:$A$20,"<=05:00",$B$2:$B$20,"<=05:00") 出勤と退勤の間に00:00が入るので、2つに分けて考えます。 1.22:00から24:00までの出勤で、かつ翌05:00までに退勤した人数 =COUNTIFS($A$2:$A$20,">=22:00",$B$2:$B$20,"<=05:00") 2.00:00から05:00までの出勤で、05:00までに退勤した人数  ※05:00に出勤して05:00に退勤することはあり得ないと思いますが数式上・・ =COUNTIFS($A$2:$A$20,">=00:00",$A$2:$A$20,"<=05:00",$B$2:$B$20,"<=05:00") 3.1+2 =COUNTIFS($A$2:$A$20,">=22:00",$B$2:$B$20,"<=05:00")+COUNTIFS($A$2:$A$20,">=00:00",$A$2:$A$20,"<=05:00",$B$2:$B$20,"<=05:00") ちなみに、『22:00以降の出勤かつ翌05:00までに退勤』を計算対象とすると、 下記のようなシフトは無視されますが、よいのでしょうか? 22:00以降に出勤して、退勤時間が深夜勤務に該当しない人(22:00~06:00) 05:00以降に出勤して、退勤時間が深夜勤務に該当する人(21:00~05:00) また、見当違いのこと言ってたら無視してくださいね^^; それでは

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

B2セルから下方に出勤時間が、C2セルから下方に退勤時間が入力されています。 そこで出勤時間が22:00(以前)から翌5:00(以降)まで勤務した人の数は次の式で求めることができます。 翌日になる退勤時間が5:00のように入力されている場合には次の式で =SUMPRODUCT((B2:B1000<="22:00"*1)*(C2:C1000>="5:00"*1)*(B2:B1000>C2:C1000)) 上の式では退勤時間が出勤時間よりも小さいことが条件に入っています。 翌日になる退勤時間が29:00のように入力されている場合には次の式になります。 =SUMPRODUCT((B2:B1000<="22:00"*1)*(C2:C1000>="29:00"*1))

回答No.3

こんにちは 以下のような式でどうでしょうか? ただし、24時間以上、勤務することは非現実的なので対応していません。 【前提】 B2に出勤日 C2に出勤時刻 B3に退勤日 C3に退勤時刻 <基本の式> =IF(B3=B2,C3-C2,"24:00"-C2+C3) 出勤日と退勤日が同じであれば、『出勤時刻<退勤時刻』となるはずです。 従って、C3-C2(退勤時刻 - 出勤時刻) そうでない場合(出勤日>退勤日 または 出勤日<退勤日) 出勤日>退勤日の場合は、そもそも日付の入力エラーなので退勤日の欄を、入力規則で  入力の種類 : 日付  データ   : 次の値以上  次の日付から: =B2 として、出勤日以降の日付しか入力できないようにしておけばよいでしょう。 出勤日<退勤日の場合は、 出勤時刻~0:00と0:00から退勤時刻の2つに分けて考えます。 出勤時刻~0:00  "24:00"-C2   24:00から出勤時刻を引きます。 0:00~退勤時刻  C3   退勤時刻がそのまま、0:00からの時間になります。 従って、"24:00"-C2+C3 最終的に最初の式になります。 また、『退勤時刻>=出勤時刻』の場合は、同日に退勤し、『退勤時刻<出勤時刻』の場合 には、翌日に退勤したという前提で考えれば、 =IF(C3>=C2,C3-C2,"24:00"-C2+C3) と書くこともできます。 その他のエラー処理付きの式の参考です。 <例1> =IF(B3=B2,IF(C3<C2,"時刻エラー",C3-C2),IF(C3<C2,"24:00"-C2+C3,"24時間以上働いています。")) <例2> =IF(AND(B3=B2,C3>=C2),C3-C2,IF(AND(B3>B2,C3<C2),"24:00"-C2+C3,"入力エラー")) なにかあれば補足してください。 それでは

  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.2

深夜零時過ぎの時刻を「25:15」のように記入しているのか「1:15」と記入しているのかによって,具体的な数式が変わるので注意が必要です。 また例えば「深夜2時出社のお昼上がり」とか,極端な話「朝4時から翌2時(26時)まで」みたいな勤務も計算したいのか,そういうイレギュラーは全く全然考えなくても良いのかによっても,組み立ては当然変わります。 計算例: A2に出社時刻(24時間制で記入) B2に退社時刻(零時過ぎは26:15などで記入) 13:00~17:30帯 =IF(COUNT(A2:B2)=2,MAX(MIN("17:30",B2),"13:00")-MIN("17:30",MAX("13:00",A2)),"") 17:30~22:00帯 =IF(COUNT(A2:B2)=2,MAX(MIN("22:00",B2),"17:30")-MIN("22:00",MAX("17:30",A2)),"") 22:00~27:00帯 =IF(COUNT(A2:B2)=2,MAX(MIN("27:00",B2),"22:00")-MIN("27:00",MAX("22:00",A2)),"") どの時間帯も同じパターンで計算しますので,午前(8時~12時)帯とか早朝帯とかも練習で作成してみてください。 言わずもがなですが,各セルの書式設定の表示形式はユーザー定義で[h]:mmとしておきます。

xtoufux
質問者

お礼

ご回答ありがとうございます! 終了時間は他の計算の都合で24時以降の表示に変換してあります! なのでご教授頂いたMAXとMINでいけそうな感じです♪ 週明けに試してみたいと思います(^^)

  • mshr1962
  • ベストアンサー率39% (7418/18948)
回答No.1

開始時間(A1)が5:00~23:59 終了時間(B1)が12:00~翌5:00 時間限定(入力規則を使用)として 深夜時間=MAX(B1+(B1<A1),22/24)-MAX(A1,22/24)

xtoufux
質問者

お礼

早速のご回答ありがとうございます! MAXとMIN、盲点でした。 確かにこれを使用すればいけそうな気がします! ちなみに終了時間は元は0時に直ってしまっていましたが、他の計算の都合で24時以降に修正してありました。

関連するQ&A

  • エクセルの時間計算教えて欲しいです。

    エクセルで勤怠管理したいです。 【例】 (1)14:01に出勤した (2)18:05に退勤した ※実際の勤務時間4時間4分 条件:15分刻み 上記の条件に基づいた場合 (1)14:15から計算 (2)18:00として計算 ※勤怠整理した場合の勤務時間、3時間45分 必ず15分刻みとして計算したいです。 そこで知りたい関数があります。 (1)エクセルに14:01と入力した場合、自動的に14:15分からとして認識できる関数 (2)逆に18:05と入力した場合、自動的に18:00として認識できる関数 (3)時給を25ドルとした場合、3時間45分×25ドルで計算したい。 上記(1)~(3)の関数を教えていただけますか。 よろしくお願いします。

  • エクセルの深夜時間計算について

    エクセルを使って勤務時間表を作成しているのですが、出勤時間が退勤時間より大きいと計算がうまくいきません。この質問と同じ質問があり参考になったんですが、どうしてもうまくいきません。 22:00から29:00が深夜時間です。 例 出勤 退勤 時間外 深夜   14:00 0:00 1:00  2:00 23:00 9:00 1:00  6:00 

  • エクセル 60進法 時間 計算

    エクセルでの勤務時間の計算方法なのですが、 例えば、出勤 23時00分  退勤  7時00分     出勤 7時00分   退勤  15時00分 の勤務時間をエクセルで足し算、引き算、合計計算の方法を教えてもらえませんか? 合計計算のように別々の複数の合計計算を出来るようには出来ないのでしょうか? 宜しくお願いします>

  • EXCEL 時間計算について

    出勤から退勤までの時間を計算したいです。しかし、お昼休憩の1時間は省きます。また、算出した数字は、15分単位で表示し、14分は00分で表示します。C列にいれる式はどうなりますでしょうか?  A列   B列   C列 (出勤)(退勤)(勤務時間)  8:45  16:32  7:45

  • エクセルでの時間計算について

    エクセルで勤怠管理表を作ろうとしていますが、わからない部分がありますのでご教授ください。 セルの書式をh:mmとして退社時間から出勤時間を引けば実際に勤務した時間が算出されるというところまでは出来たのですが、以下に挙げた二つの機能を作るにはどうしたらよいのでしょうか? 1.デフォルトで12:00から13:00、22:00から22:30を休憩時間としたいため、その時間を挟んで勤務した場合には、自動的に勤務時間からその時間を引きたい。  例)10:00から18:00まで勤務した場合、休憩時間を1時間引いて算出勤務時間を7時間としたい。 2.日をまたいだ勤務形態だと、うまく時間が算出されないので、正しく算出したい。  例)21:00に出社して、翌日の05:00まで勤務した場合、休憩時間を30分引いて算出勤務時間を8時間30分としたい。 セルに直接計算式を書くより、マクロを使ってうまく出来ればベターだと思っているのですが、良い方法がありましたらご教授ください。よろしくお願いいたします。

  • エクセルで残業時間を出す計算式を教えて下さい

    例えば、 出勤8:13分 退勤19:15分 勤務時間(休憩1時間除く)10:02分 この場合で、8時時間を超えた時間の2:02分の算出方法がわかりません。 単純に、 勤務時間から、8時間00分を超えた時間を出す計算式を教えて下さい!

  • SQL Serverのテーブルにて時間の計算をしたい

    お世話になります。 勤怠管理のアプリを作っています。 テーブル:SQL Server フロントエンド:MS Access 時間の計算ができません。 [日付] [出勤時刻] [退勤時刻] [勤務時間] というフィールドを作成したのですが、 勤務時間の計算はどのように行えばよろしいでしょうか? それぞれのデータ型はどのようにすればよろしいでしょうか? 単純に考えると[退勤時刻]-[出勤時刻]ですが……。 テーブルもMS Accessの場合はこのような計算式で勤務時間を算出できたのですが、SQL Serverに移行する場合がわかりません。 みなさま、どうぞよろしくお願いします。 ※質問文に不足・不明点がある場合はご指摘いただければ  補足欄にて追記させていただきます

  • パート用 労働時間の時間外計算をエクセルでしたいのですが・・・

    エクセルで、パートタイム用の時間計算表を作成しております。 単純にタイムカードの様式をエクセルで作成し、項目毎に時間を入力し労働時間を算出することが目的です。※賃金の計算は不要。 私が作成した項目は、一行に 出勤(B2) ・ 時間内退勤(C2) ・ 時間内出勤(D2) ・ 退勤(E2) ・ その他(F2、G2) ・ 労働時間小計(H2,I2) ・ 時間外(J2) です。 ※時間内退勤・出勤はお昼休みに該当します。 労働時間小計欄、H2にはC2-B2を入れ、I2にはE2-D2を設定しました。 問題は時間外計算です。 時間外対象の条件ですが、基本労働時間 8時から17時を基準とし、 1.出勤→8時前に出勤した場合の時間差。 2.退勤→17時以降の時間差。 3.上記条件に該当しても、それぞれ5分未満の場合は対象外。 例; 出勤7:30  退勤17:15   時間外(J2) 0:45     出勤7:56  退勤17:30   時間外(J2) 0:30 このように、J2欄に出勤・退勤の時間外合計時間が表示されるようにしたいのですが、何か良い方法があれば教えて下さい。対象外の場合、空欄になるように設定したいと考えております。 補足:深夜24時を過ぎる事はありません。    時間の入力方法は1つのセル内に8:00というように入力します。 

  • エクセルの深夜時間計算について

    エクセルを使って勤務時間表を作っていますが 22:00から29:00までが深夜時間になっていて その計算方法がわかりません 例1出勤-退勤-残業-深夜   10:00-25:00-7,0-3,0 例2 3:30-19:30-8,5-1,5 深夜時間計算のみ教えていただきたくお願い致します。

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

    エクセルはワープロ代わりにしか使った事がない者です エクセル2000で勤務時間の合計を出したいのですが 退勤時間から出勤時間を引いて勤務時間は出せます ただどうしても休みは「休み」と字を入れたいのですが 入れると 計算が出来ないのでエラーになります 結果合計もエラーになります これをなんとか出来ないでしょうか? 休み=0とか計算しないとか 設定はできないでしょうか よろしくお願いします

専門家に質問してみよう