[[20121002103740]] 『運送業・運転手の勤務時間』(Yoshi) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『運送業・運転手の勤務時間』(Yoshi)
運送業を営んでいます乗務員さんの勤務時間を算出したいのですが、運送は荷主さんや着地場所・着時間によって出発時間が様々ですし日をまたぐことも多々あります。
深夜に出る場合や夕方出発積み込み後そのまま配送などです。
当然拘束時間も長くなりますし休憩時間も数度小刻みに取ったりします。
長距離はやっていませんので24時間を超えることはありません。

日付・始業時刻・終業時刻・拘束時間・休憩時間・労働時間計(所定内・時間外・深夜・休日)
それぞれの1ヶ月間の合計時間
これをフォームにして頂けたらありがたいです。

みなさんには簡単なことかもしれませんが私にはちんぷんかんぷんでどうにもなりません助けて下さい。お願いします。

exel2010 win7


 >深夜に出る場合
 以前あった質問で、深夜25:00に出発なんて云うのがありました。

 普通それは、翌日の早朝1:00に出発と入力するものなんですが、
 今回も始業時刻が24:00以上になるなんてあるんでしょうか?
 こう云うのは、休日出勤の判定に影響するので、なんかシビアな決めがあるんでしょうか?

 >休憩時間も数度小刻みに取ったりします。
 何回取るか決まっていないのは厄介ですね。
 最多回数の参考数値はありませんか?

 (半平太) 2012/10/02 15:32

行 ____A____   ____B____  ____C____  ____D____  ____E_____ ______F______  ______G______  _____H_____  ___I___  ___J___  __K__   __L__  _____ M_____

   出勤日 始業時刻 退社日 終業時刻 拘束時間 勤務時間 休憩時間  所定内  時間外 深夜  休日   備考   確認

あれから何とかがんばってこのようなスタイルに作ってみました。
数度の休憩時間や勤務時間(所定内・時間外・深夜)は時系列日報を見ながら手入力するようにしました。

手入力のため最後の確認項目で「休憩時間・所定内・時間外・深夜」の合計時間が拘束時間と同じか確認したいのですが、関数?式?をご教授下さい。

(Yoshi)


 >手入力のため最後の確認項目で「休憩時間・所定内・時間外・深夜」の合計時間が拘束時間と同じか確認したいのですが、関数?式?

 こんなので
  ↓
 M2セル =IF(ROUND((SUM(G2:J2)-E2)*1440,0),"-NG-","OK")

 ※全部手入力でやるとは思いませんでした。
  まぁ、計算ルールが複雑なら、それを説明するより、手でやっちゃった方が楽かも知れませんね ^^

 (半平太) 2012/10/03 12:13


_A__  B   C D E F G H I J   K L
1 8:00
2 日 曜日 始業 終業 時間外 拘束時間 運転時間 作業時間 休憩  深夜  休息 24時間拘束
3 1 月  3:00 14:00 関数  関数   関数   7:12  2:00  2:00 15:00
4 2 火  23:00 10:00 関数  関数   関数 7:45 6:44 1:16

セルD1に就業規則の所定労働時間
セルA3、B3に対象月の日、曜日を用意する
セルC3・D3は日報やタイムカードの時間を入力する。:書式設定は〔h〕:mm
セルE3 =if(d3="","",if(f3-i3>$d$1,f3-i3-$d$1))で時間外=拘束時間-休憩時間-所定労働時間
セルf3 =if(d3>c3,d3-c3,1f(d3="","",if(d3<c3,d3+1-C3)))拘束時間を求める
セルg3 =if(d3="","",f3-h3-i3) 改善基準の運転時間がクリア出来ていれば必要がない
作業時間や休憩時間、深夜は日報から計算した方が楽です。
24時間拘束(呼名は自称です)は改善基準の運転者の拘束時間です。
始業時間に対し振分ける関数を入れるのが面倒なので、始業時間が前日より早出になるときは L欄に

24:00をまたぐ場合は =d3+1-c3+f3
0:00〜23:59は    =c3-d3    を入力します。

(a_bow)


労務士さんとのやりとりで、時間帯によっては所定内に「所定内深夜」や時間外に「時間外深夜」が
ダブって入ってくるため、深夜を「所定内深夜」と「時間外深夜」に分けました。

 (半平太)さまからご教授頂いた確認項目は
「休憩時間・所定内・時間外」の合計時間が拘束時間と同じになるよう設定致します。
深夜に関してはダブってくる場合があるため日報からの算出でしかないようです。

ほとんど手入力になってしまいますが仕方有りません。

このほか何か良い案がありましたらご教授下さい。

(Yoshi)


 >深夜を「所定内深夜」と「時間外深夜」に分けました。

 こんなものの時間算出を毎回手作業でやってられますか?

 私なら全自動にしますけどね。
 計算ルールを説明するのは大変でしょうが、一回やれば済む話ですから。

 ただ、休憩時間データがどんぶり勘定では理論的に無理です。

 「休憩を時間外に幾らとり、深夜に幾らとったのか」 それが分からなければ
 「所定内深夜」とか「時間外深夜」を自動的に算出するのは不可能です。

 何か簡易な決めごとに則して処理していいと云うなら話は別ですけど、
 常識的には休憩時刻の詳細、つまり
 1回目を何時〜何時にとり、
 2回目は何時〜何時にとり、
  ・・・・・・・・にとった。

 と云う時刻データが必要になります。(シート上、縦に並べようか、横に並べようが)

 (半平太) 2012/10/04 09:09

(半平太)さま、ありがとう御座います。

それでは説明させて頂きます。

運送業は1日13時間まで拘束でき、なおかつ1週間に2日まで16時間迄の拘束が許される。
1ヶ月の拘束時間は293時間まで。
連続運転は4時間までで30分以上の休憩を取らなければならない。
休憩が複数回となる理由は上記や荷下ろし時間までの待機時間を休憩扱いにすることが有るからです。

所定内は出勤より休憩を含まない8時間の勤務時間。
残業はそれ以降の勤務時間。
深夜は22:00〜翌朝05:00まで。

03:00出社で途中1時間休憩を入れたら9時間後の12:00で所定内それ以降は残業。
03:00〜05:00までが所定深夜2時間、所定深夜の枠内で休憩を取ればその分
所定内深夜の時間が差し引かれます。

18:00出社で途中1時間休憩を入れたら9時間後の03:00で所定内それ以降は残業。
22:00〜03:00までが所定深夜5時間、所定深夜の枠内で休憩を取ればその分
所定内深夜の時間が差し引かれます。
それ以降の勤務〜05:00までが時間外深夜となりますし、05:00以降は通常の残業
となります。

「所定内と所定内深夜」「時間外と時間外深夜」にダブる時間が発生しますが
労務士さん曰くそれはそれでOKだそうです。

ご理解頂きましたでしょうか?
なかなか面倒です。
私には自動入力なんてシステム作れませんので・・・

よろしくお願い致します。
(Yoshi)


 >「所定内と所定内深夜」「時間外と時間外深夜」にダブる時間が発生しますが 
 > 労務士さん曰くそれはそれでOKだそうです。 

 1.つまり、所定内深夜、時間外深夜は、内書きと云うことですね。これは了解しました。

 >私には自動入力なんてシステム作れませんので・・・ 
 2.自動入力ではありません。自動算出です。
   基本的なデータは手入力するしかありません。

   入力必須の基本データとは「始業時刻  終業時刻  休憩時刻(始)  休憩時刻(終) 休日リスト」です。

   ただし、休憩時間は何回も取ると云うことなので、取った回数分のデータが必要です。
   入れる場所を確保しなければならないので、最多取得回数を決めて頂く必要があります。

   入力イメージとしては下図です(最多回数を4回と見積もった場合)
   ※(1)「手」が手入力個所ですけど対応可能ですか? 
   ※(2) 何か別のデータでこのデータの代わりがさせられるものがありますか?

 行 __A__ __B__ __C__ __D__ __E__ __F__ __G__ __H__ __I__ __J__ __K__ ____L____ ____M____ ____N____ ___O___ ____P____ ___Q___ ____R____ __S__ __T__
  1 日付  始業  終業  休1始 休1終 休2始 休2終 休3始 休3終 休4始 休4終 拘束時間  勤務時間  休憩時間  所定内  (内深夜)  時間外  (内深夜)  休日  備考 
     手    手    手    手    手    手    手    手    手    手    手    自動      自動      自動      自動    自動      自動    自動     自動       
  (入力例)
  2 10/6  9:00  1:00  12:00 13:00 21:25 22:10                                                                                                      
  3 10/7  12:00 3:00  17:00 18:00 21:30 22:30 1:00  1:45       

 3.これへのコメントがないですけど、どうなんでしょうか?
   ↓
 > 以前あった質問で、深夜25:00に出発なんて云うのがありました。
 > 普通それは、翌日の早朝1:00に出発と入力するものなんですが、
 > 今回も始業時刻が24:00以上になるなんてあるんでしょうか?

 4.休日の欄はどう処理するのですか?

 5.「休日の前日〜休日」や「休日〜休日明け」の勤務だったら、
    どんな計算になるのですか? 全部平日扱いですか?
  
    例えば、休日前日23:00〜休日12:00

 (半平太) 2012/10/04 11:07

 <追加>
 休日とはなんですか? 土、日、祝日?

(半平太)さまありがとう御座います。

@そういうことです。

A自動算出ですね、これだけの入力で面倒な時間計算をして頂けるなんて私には夢のようなシステムです。(笑)
休憩の入力は多くても4回ぐらいだと思います。
出来ればA4横で印刷したいので立て行入力でしたいです。

日付 出勤日 始業時刻 退社日 終業時刻 拘束時間 勤務時間 休憩時間 所定内 時間外 所定深夜 時間外深夜 休日 備考 確認

今こんな感じです。

B着日(荷降日)が売り上げ発生日になりますので

	出勤日	始業時刻	退社日	終業時刻	拘束時間
1(水)	7月31日	17時00分	8月1日	5時00分	12時00分
2(木)	8月1日	20時00分	8月2日	6時00分	10時00分
3(金)	8月2日	15時30分	8月3日	4時05分	12時35分

のような形にしました。
ネットで調べて=(D4+E4)-(B4+C4)この式で拘束時間が出せました。

C土・日・祭日お休みですが、1コース金曜夕方から出勤〜土曜早朝荷降ろし後帰庫のパターンがあります。その後月曜の午後までお休みですから平日扱いにしています。
祭日前の運行も同じです。

D休日出勤はほとんどありませんが、有ったときはその部分手入力致しますので特別どうこうは有りません。

よろしくお願い致します。
(Yoshi)


 >D休日出勤はほとんどありませんが、有ったときはその部分手入力致しますので特別どうこうは有りません。 

 1.休日欄は何もしない方針にします。

 >A自動算出ですね、これだけの入力で面倒な時間計算をして頂けるなんて私には夢のようなシステムです。(笑) 
 >休憩の入力は多くても4回ぐらいだと思います。 
 >出来ればA4横で印刷したいので立て行入力でしたいです。 
 >日付 出勤日 始業時刻 退社日 終業時刻 拘束時間 勤務時間 休憩時間 所定内 時間外 所定深夜 時間外深夜 休日 備考 確認 
 >今こんな感じです。 

 2.休憩時間は1〜4回発生するとして、実際どんな入力になるのですか? 
   こんな感じですか?
    ↓
  行 __A__ ___B___ __C__ ___D___ __E__ __F__ __G__ __H__ __I__ ___J___ ___K___ ___L___ ___M___ __N__ __O__ __P__
   1 日付  出勤日  始業  退社日  終業  拘束  勤務  休始  休終  所定内  時間外  (所深)  (外深)  休日  備考  確認 
   2   ?  10/6    9:00  10/7    1:00              12:00 13:00                                                  
   3                                               21:25 22:10                                                  
   4                                               23:30  0:30                                                  
   5       10/7    12:00 10/7    23:00             17:00 18:00                                                  
   6       10/8    9:00  10/8    23:00             12:00 13:00                                                  
   7                                               19:00 19:30                                                  
   8       10/10   11:00 10/11   2:00              17:30 18:25                                                  
   9                                               23:00 23:15                                                   
 いずれにしても、レイアウトが決まらないと着手できません。
 ※一旦作式したら、レイアウト変更による追加対応は致しません。(2度手間になるだけですので)
  よく考えて決めてください。

 (半平太) 2012/10/04 13:02

 (半平太)さま、本当にありがとう御座います。

1.日付は行が休憩回数によって変化しますので手入力致します。

2.レイアウトはこれでOKです。(休憩回数がまちまちで縦行入力でも対応可能なのですか?)

3.最後の確認項目で何を確認すればよいか私には解りませんが(笑)

(Yoshi)


 >1.日付は行が休憩回数によって変化しますので手入力致します
 日付と出勤日がどう違うのか私には分かりません

 >2.レイアウトはこれでOKです。(休憩回数がまちまちで縦行入力でも対応可能なのですか?)
 正直いって、結構大変です・・・が、なんとかやってみます。
 まぁ、回答者は他にいくらでも居ますので、私のがダメでも誰かやってくれます。

 >3.最後の確認項目で何を確認すればよいか私には解りませんが(笑)
  そちらの現レイアウトにあったので書いたもので私は不要です・・・・ので削除します。

 ※時間を表示するセルは、限りなく0に近い時間データを空白に見せるため、以下の書式設定をしてください。

    セルの書式(表示形式)をユーザー定義で設定
       ↓
    [>0.003][h]:mm;[>-0.003]"";0.000;@

 <入力する数式>
  (1) F2セル =IF(COUNT(B2:E2)=4, D2+E2-B2-C2,"")
  (2) G2セル =IF(F2="","",F2-SUMIF(Q2:Q6,Q2,U2:U6)+SUMIF(Q2:Q6,Q2,T2:T6))

    F2:G2 一括下方へフィルコピー

  (3) J2セル =IF(F2="","",MIN("8:00",F2))
  (4) K2セル =IF(F2="","",MAX(0,G2-J2))
  (5) L2セル =IF(F2="","",MAX(0,AH2+AI2-AL2))
  (6) M2セル =IF(F2="","",MAX(0,AN2+AO2-AR2))

  (7) Q2セル =IF(AND(E2="",I2=""),"",IF(AND(B2="",I2<>""),Q1,IF(B2=B1,Q1,B2)))
  (8) R2セル =IF(Q2="","",IF(Q1=Q2,R1,C2))
  (9) S2セル =IF(Q2="","",IF(Q1=Q2,S1,E2+(E2<C2)))
 (10) T2セル =IF(Q2="","",H2+(H2<R2))
 (11) U2セル =IF(Q2="","",I2+(I2<R2))

 (12) W2セル =IF(Q2="","",IF(Q1=Q2,W1,C2+"8:00"))
 (13) X2セル =IF(Q2="","",MAX(0,MIN($W2,$U2)-MAX($R2,$T2)))
 (14) Y2セル =IF(Q2="","",IF(Q1=Q2,Y1,IF(0.0004<SUMIF(Q2:Q6,Q2,X2:X6),W2+SUMIF(Q2:Q6,Q2,X2:X6),"")))
 (15) Z2セル =IF(Y2="","",MAX(0,MIN($Y2,$U2)-MAX($W2,$T2)))
 (16) AA2セル =IF(Q2="","",IF(Q1=Q2,AA1,IF(0.0004<SUMIF(Q2:Q6,Q2,Z2:Z6),Y2+SUMIF(Q2:Q6,Q2,Z2:Z6),"")))
 (17) AB2セル =IF(AA2="","",MAX(0,MIN($AA2,$U2)-MAX($Y2,$T2)))
 (18) AC2セル =IF(Q2="","",IF(Q1=Q2,AC1,IF(0.0004<SUMIF(Q2:Q6,Q2,AB2:AB6),AA2+SUMIF(Q2:Q6,Q2,AB2:AB6),"")))
 (19) AD2セル =IF(AC2="","",MAX(0,MIN($AC2,$U2)-MAX($AA2,$T2)))
 (20) AE2セル =IF(Q2="","",IF(Q1=Q2,AE1,IF(0.0004<SUMIF(Q2:Q6,Q2,AD2:AD6),AC2+SUMIF(Q2:Q6,Q2,AD2:AD6),"")))
 (21) AF2セル =IF(Q2="","",MAX(W2:AE2))

 (22) AH2セル =IF($F2="","",MAX(0,MIN("5:00",$S2,$AF2)-$R2))
 (23) AI2セル =IF($F2="","",MAX(0,MIN("29:00",$S2,$AF2)-MAX("22:00",$R2)))
 (24) AJ2セル =IF(Q2="","",MAX(0,MIN("5:00",$U2,$AF2)-$T2))
 (25) AK2セル =IF(Q2="","",MAX(0,MIN("29:00",$U2,$AF2)-MAX("22:00",$T2)))
 (26) AL2セル =IF(F2="","",SUMIF(Q2:Q6,Q2,AJ2:AJ6)+SUMIF(Q2:Q6,Q2,AK2:AK6))

 (27) AN2セル =IF($F2="","",MAX(0,MIN("5:00",$S2)-MAX($R2,AF2)))
 (28) AO2セル =IF($F2="","",MAX(0,MIN("29:00",$S2)-MAX("22:00",$R2,AF2)))
 (29) AP2セル =IF(Q2="","",MAX(0,MIN("5:00",$U2)-MAX($T2,$AF2)))
 (30) AQ2セル =IF(Q2="","",MAX(0,MIN("29:00",$U2)-MAX("22:00",$T2,$AF2)))
 (31) AR2セル =IF(F2="","",SUMIF(Q2:Q6,Q2,AP2:AP6)+SUMIF(Q2:Q6,Q2,AQ2:AQ6))

   J2:AR2  一括下方へフィルコピー

 (32) F15セル =TEXT(SUM(F2:F14),"[h]:mm")*1
      ↑
   合計行はすべてこんな形の数式にしてください。

 <サンプル 結果図>

  行 __A__ ____B____ __C__ ____D____ __E__ __F__ __G__ __H__ __I__ ___J___ ___K___ _____L_____ _____M_____ __N__ __O__ _P_
   1 日付  出勤日    始業  退社日    終業  拘束  勤務  休始  休終  所定内  時間外  (所定内深)  (時間外深)  休日  備考  空 
   2 ?    10月6日   9:00  10月7日    1:00 16:00 14:35 12:00 13:00  8:00    6:35                3:00                       
   3                                                   16:00 16:15                                                        
   4                                                   18:00 18:10                                                        
   5       10月7日   23:00 10月8日   14:15 15:15 14:30  4:45  5:30  8:00    6:30    5:45                                   
   6       10月8日   19:00 10月9日   11:00 16:00 14:15  1:00  2:00  8:00    6:15    5:00        0:45                       
   7                                                    4:45  5:30                                                         
   8       10月10日  14:00 10月11日   6:00 16:00 14:35 17:00 18:00  8:00    6:35    1:15        5:35                       
   9                                                   21:00 21:15                                                        
  10                                                   23:00 23:10                                                        
          -------以下省略  ----------------------------------------------------------------------------------              

  行 ____Q____ __R__ __S__ __T__ __U__ _V_ __W__ ___X___ __Y__ ___Z___ __AA__ ___AB___ _AC_ ___AD___ _AE_ ___AF___ _AG_
   1 日付ベタ  始業  終業  始休  終休  空        所定休1       所定休2        所定休3       所定休4       所定時限 空  
   2 10月6日    9:00 25:00 12:00 13:00     17:00 1:00    18:15         18:25                              18:25        
   3 10月6日    9:00 25:00 16:00 16:15     17:00 0:15    18:15         18:25                              18:25        
   4 10月6日    9:00 25:00 18:00 18:10     17:00         18:15 0:10    18:25                              18:25        
   5 10月7日   23:00 38:15 28:45 29:30     31:00 0:45    31:45                                            31:45        
   6 10月8日   19:00 35:00 25:00 26:00     27:00 1:00    28:00                                            28:00        
   7 10月8日   19:00 35:00 28:45 29:30     27:00         28:00                                            28:00        
   8 10月10日  14:00 30:00 17:00 18:00     22:00 1:00    23:15         23:25                              23:25        
   9 10月10日  14:00 30:00 21:00 21:15     22:00 0:15    23:15         23:25                              23:25        
  10 10月10日  14:00 30:00 23:00 23:10     22:00         23:15 0:10    23:25                              23:25        

  行 ___AH___ __AI__ ___AJ___ ___AK___ ___AL___ _AM_ ___AN___ ___AO___ ____AP____ ___AQ___ ___AR___
   1 定深1   定深2 定深休1  定深休2  定深休計 空   間外深1  間外深2  間外深休1  休深夜2  休深夜計
   2                                                          3:00                                 
   3                                                                                               
   4                                                                                               
   5          6:00            0:15     0:15                                                        
   6          6:00            1:00     1:00                   1:00                         0:15    
   7                                                                              0:15             
   8          1:25                     0:10                   5:35                                 
   9                                                                                               
  10                          0:10

 (半平太) 2012/10/04 23:43

(半平太) さま、本当にありがとう御座います。
昨夜から配送に出ていましてお返事が遅れたことお詫び致します。
よろしければメール添付にてお送り願えませんでしょうか?
無理にとは言いませんので出来たらでお願い致します。

xiaojp3@yahoo.co.jp

までよろしくお願い致します。
(Yoshi)


 気が進みません。メールアドレスは削除した方がいいですよ。

 1.下の文字列を新規シートのA列に1行目から貼り付ける

 F2セル=IF(COUNT(B2:E2)=4, D2+E2-B2-C2,"")
 G2セル=IF(F2="","",F2-SUMIF(Q2:Q6,Q2,U2:U6)+SUMIF(Q2:Q6,Q2,T2:T6))
 J2セル=IF(F2="","",MIN("8:00",F2))
 K2セル=IF(F2="","",MAX(0,G2-J2))
 L2セル=IF(F2="","",MAX(0,AH2+AI2-AL2))
 M2セル=IF(F2="","",MAX(0,AN2+AO2-AR2))
 Q2セル=IF(AND(E2="",I2=""),"",IF(AND(B2="",I2<>""),Q1,IF(B2=B1,Q1,B2)))
 R2セル=IF(Q2="","",IF(Q1=Q2,R1,C2))
 S2セル=IF(Q2="","",IF(Q1=Q2,S1,E2+(E2<C2)))
 T2セル=IF(Q2="","",H2+(H2<R2))
 U2セル=IF(Q2="","",I2+(I2<R2))
 W2セル=IF(Q2="","",IF(Q1=Q2,W1,C2+"8:00"))
 X2セル=IF(Q2="","",MAX(0,MIN($W2,$U2)-MAX($R2,$T2)))
 Y2セル=IF(Q2="","",IF(Q1=Q2,Y1,IF(0.0004<SUMIF(Q2:Q6,Q2,X2:X6),W2+SUMIF(Q2:Q6,Q2,X2:X6),"")))
 Z2セル=IF(Y2="","",MAX(0,MIN($Y2,$U2)-MAX($W2,$T2)))
 AA2セル=IF(Q2="","",IF(Q1=Q2,AA1,IF(0.0004<SUMIF(Q2:Q6,Q2,Z2:Z6),Y2+SUMIF(Q2:Q6,Q2,Z2:Z6),"")))
 AB2セル=IF(AA2="","",MAX(0,MIN($AA2,$U2)-MAX($Y2,$T2)))
 AC2セル=IF(Q2="","",IF(Q1=Q2,AC1,IF(0.0004<SUMIF(Q2:Q6,Q2,AB2:AB6),AA2+SUMIF(Q2:Q6,Q2,AB2:AB6),"")))
 AD2セル=IF(AC2="","",MAX(0,MIN($AC2,$U2)-MAX($AA2,$T2)))
 AE2セル=IF(Q2="","",IF(Q1=Q2,AE1,IF(0.0004<SUMIF(Q2:Q6,Q2,AD2:AD6),AC2+SUMIF(Q2:Q6,Q2,AD2:AD6),"")))
 AF2セル=IF(Q2="","",MAX(W2:AE2))
 AH2セル=IF($F2="","",MAX(0,MIN("5:00",$S2,$AF2)-$R2))
 AI2セル=IF($F2="","",MAX(0,MIN("29:00",$S2,$AF2)-MAX("22:00",$R2)))
 AJ2セル=IF(Q2="","",MAX(0,MIN("5:00",$U2,$AF2)-$T2))
 AK2セル=IF(Q2="","",MAX(0,MIN("29:00",$U2,$AF2)-MAX("22:00",$T2)))
 AL2セル=IF(F2="","",SUMIF(Q2:Q6,Q2,AJ2:AJ6)+SUMIF(Q2:Q6,Q2,AK2:AK6))
 AN2セル=IF($F2="","",MAX(0,MIN("5:00",$S2)-MAX($R2,AF2)))
 AO2セル=IF($F2="","",MAX(0,MIN("29:00",$S2)-MAX("22:00",$R2,AF2)))
 AP2セル=IF(Q2="","",MAX(0,MIN("5:00",$U2)-MAX($T2,$AF2)))
 AQ2セル=IF(Q2="","",MAX(0,MIN("29:00",$U2)-MAX("22:00",$T2,$AF2)))
 AR2セル=IF(F2="","",SUMIF(Q2:Q6,Q2,AP2:AP6)+SUMIF(Q2:Q6,Q2,AQ2:AQ6))

 2.貼り付けたシートのシート見出しを右クリックして、コードの表示を選択する

 3.画面中央の白いところに下記マクロを貼り付け、F5キーを押して実行する。

 Sub 転記()

     Dim lastRow As Long
     Dim cel As Range
     Dim numOfFmla As Long

     lastRow = Cells(100, 1).End(xlUp).Row    

     For Each cel In Range("A1:A" & lastRow)

         If Not IsEmpty(cel.Value) Then
             numOfFmla = InStr(cel.Value, "IF")
             If numOfFmla Then
                 Range(Left(cel.Value, numOfFmla - 4)).Formula = Mid(cel.Value, numOfFmla - 1, Len(cel.Value))
             End If
         End If
     Next
 End Sub

 4.実行が成功すると、2行目に数式が書き込まれる (データが入っていないので空白のまま変化ない様に見えます)、
   
 5.用済みになったA列のデータを全部クリアーする

 6.2行目全体をコピーして、本来のシートへ行き、2行目全体を選択して→形式を選択して貼り付け
  
   □空白を無視する ← にチェックを入れて「OK」ボタンクリック

 以上で数式が書き込まれます(のハズ。あまり真剣にやっておりません)

 (半平太) 2012/10/05 12:05

(半平太)さま了解いたしました。
メールアドレスはこのためだけに取得した物ですのでご安心下さい。

午後から挑戦してみます。
(Yoshi)


(半平太) さま、どうもうまくいきません。

5.まではいきましたが
6.で「□空白を無視する ← にチェックを入れて「OK」ボタンクリック」
が出てきませんでした。

(yoshi)


 コピペのやり方をご存じないのでしょうか?

 こんなところを覘いてみてください。
  ↓
http://soumukouboo.blog91.fc2.com/blog-entry-35.html

 (半平太) 2012/10/05 14:26

 横からすみません。

 多分別アプリケーションとして2つのエクセルを開いてしまったので形式を選択して貼り付けがうまくいってないのでは?マクロの登録を別エクセルでやったのではないかと。

 6の工程で元のエクセルを開くときに、マクロを動かしたエクセルのファイル→開くから開いてみては如何でしょうか?
 勘違いだったらすみません。

 ちなみに半平太さんのマクロを自分でも動かしてみてちょっと感動してました。(^_^;)

 (コナミ)

(半平太) さま(コナミ)さま、
無知な私を笑って下さい。
確かに2つのエクセルを開いてました。
何とかアドバイスでいけました。

>6.2行目全体をコピーして、本来のシートへ行き、2行目全体を選択して→形式を選択して貼り付け

  
   □空白を無視する ← にチェックを入れて「OK」ボタンクリック

・・・これを3行目以降も繰り返して40行ぐらい作ればいいですか?
   41行目で合計を出すように。

ありがとう御座いました。
(Yoshi)


  F2:G2  一括下方へフィルコピー
 J2:AR2 一括下方へフィルコピー

 フィルコピーをご存じないですか?
  ↓
http://www.excel-jiten.net/data_entry_edit/copy_autofill.html

 まぁ、知っていたら数式列群の中間に手入力列を入れるレイアウトは作らなかったかもですね。
 コピーの手間が違ってきます。(行の削除・挿入がからむと、何度もやる羽目になります)

 (半平太) 2012/10/05 16:22

 (半平太)さま、こんばんわ。

17日(金)の15時出勤箇所が (所深)2:00 (外深)3:45
と出力されなければならないのに「時間外3:45」となっている。
ほかの空いてる箇所で同じデータを打ち込むとちゃんと出力されますが。

あと16日(木)24日(金)休憩無しで拘束時間より勤務時間が1時間少なくなってしまっています。
いかがでしょうか?

日付 出勤日 始業 退社日 終業 拘束 勤務 休始 休終 所定内 時間外 (所深) (外深)

3(金) 8月2日 15:30 8月3日 4:05 12:35 11:35 19:00 20:00 8:00 3:35 2:30 3:35

	8月3日	12:00	8月3日	17:00	5:00	5:00			5:00			
4(土)												
5(日)												
6(月)	8月6日	3:00	8月6日	17:15	14:15	10:40	10:30	14:05	8:00	2:40	2:00	
7(火)	8月7日	2:20	8月7日	16:55	14:35	13:05	9:00	9:15	8:00	5:05	2:40	
							11:45	13:00				
8(水)	8月8日	2:00	8月8日	16:05	14:05	9:00	8:10	13:15	8:00	1:00	3:00	
9(木)	8月9日	1:15	8月9日	16:50	15:35	11:30	9:15	13:20	8:00	3:30	3:45	
10(金)	8月10日	1:40	8月10日	16:45	15:05	10:00	8:10	13:15	8:00	2:00	3:20	
11(土)												
12(日)												
13(月)												
14(火)												
15(水)												
16(木)	8月16日	1:50	8月16日	7:10	5:20	4:20			5:20		3:10	
17(金)	8月16日	15:00	8月17日	3:45	12:45	11:45	18:00	19:00	8:00	3:45	3:10	
	8月17日	13:20	8月17日	17:10	3:50	3:50			3:50			
18(土)												
19(日)												
20(月)	8月20日	1:55	8月20日	16:05	14:10	8:35	7:40	13:15	8:00	0:35	3:05	
21(火)	8月21日	1:40	8月21日	16:50	15:10	10:20	8:25	13:15	8:00	2:20	3:20	
22(水)	8月22日	2:35	8月22日	16:55	14:20	11:40	10:20	13:00	8:00	3:40	2:25	
23(木)	8月23日	1:40	8月23日	16:20	14:40	11:30	10:05	13:15	8:00	3:30	3:20	
24(金)	8月24日	1:30	8月24日	7:40	6:10	5:10			6:10		3:30	
	8月24日	14:50	8月24日	23:00	8:10	7:10	19:00	20:00	8:00		3:30	
25(土)												
26(日)												
27(月)	8月26日	20:00	8月27日	0:35	4:35	4:35			4:35		2:35	
28(火)	8月27日	16:00	8月28日	3:00	11:00	10:00	19:00	20:00	8:00	2:00	3:00	2:00
29(水)	8月28日	16:00	8月29日	3:10	11:10	10:10	19:00	20:00	8:00	2:10	3:00	2:10
30(木)	8月29日	15:40	8月30日	2:10	10:30	9:30	19:00	20:00	8:00	1:30	2:40	1:30
 31(金)	8月30日	16:00	8月31日	3:30	11:30	10:30	19:00	20:00	8:00	2:30	3:00	2:30
	8月31日	13:30	8月31日	17:20	3:50	3:50			3:50			

合計 238:20:00 193:45:00 156:45:00 39:50:00 57:00:00 11:45:00
(Yoshi)


 >17日(金)の15時出勤箇所が (所深)2:00 (外深)3:45 
 >と出力されなければならないのに「時間外3:45」となっている。 
 >ほかの空いてる箇所で同じデータを打ち込むとちゃんと出力されますが。 
 >
 >あと16日(木)24日(金)休憩無しで拘束時間より勤務時間が1時間少なくなってしまっています。 
 >いかがでしょうか? 

 大変申し訳ありません。
 運送業務の出勤簿がどういうものか良く理解しないまま取り組んでしまいました。

 私の案は、同一日に2回出勤があることは想定しておりません。
 また、そう云う場合、どういう時間計算をすべきなのかさえ分かっておりません。

 それならどうすべきなのかお聞きして、再チャレンジするのが筋なんでしょうが、
 私には荷が重すぎる気がします。

 他の回答者のレスをお待ちください。 m(__)m

 (半平太) 2012/10/05 22:13

 (半平太)さま、申し訳御座いません。
あなたを責めるつもりはもうとう御座いません。
気になさらないで下さい。

今まで手作業で入力した事を考えれば、 (半平太)さまのこのシステムはすばらしいです。
あっという間に一人分の入力が出来ました。
ありがとう御座います。

(Yoshi)


労務士さん曰く、
1日に2回の出勤を1回にまとめると拘束時間が長くなりすぎてしまうためよくない。
2回に分けると間を8時間開けなくてはならないが1回目の前8時間、2回目の後8時間
以上休息を取れていれば間は8時間以内でも問題ないそうです。
(Yoshi)

 1日に2回出勤とみるか、長い休憩をはさんだ1日と見るかですが、
 私案の想定の一つに、1日の拘束時間は24時間未満と云うのもあり、
 8/16のケースでは、長い休憩をはさんだ1日と見ると、
 拘束時間が24時間を越えますので、これにも想定外になってしまいます。

 土曜は私の唯一の運動日なので、一汗かいてからもう一度考えなおしてみます。
 (それまでに、他の回答者からレスが付くといいですね)

 (半平太) 2012/10/06 08:26

(半平太)さま、おはよう御座います。

これでも私にとっては十分で入力後1日2回出勤の部分を
手直しするだけですから今までと比べると非常に楽になりました。

とりあえずこれで作業を進めていき気長に対応策を待ちたいと思います。

本当にありがとう御座いました。
休日をお楽しみ下さい。

(Yoshi)


 1日2回出勤の計算方法が分かっていないのですが、
 こちらの推理では、Q2セルの数式を以下の通り変更するだけで
 よさそうな気がしてきたのですけど。

 Q2セル =IF(AND(E2="",I2=""),"",IF(AND(B2="",I2<>""),Q1,IF(B2=INT(N(B1)),N(Q1)+0.25,B2)))
     下にフィルコピー

 どんなもんでしょうか?
 ダメな場合は、具体的サンプルと正解をご掲示ください。

 >(半平太)さま、←「さん」づけでお願いします。「さま」は私には重すぎます。

 (半平太) 2012/10/06 19:13

(半平太)さん、おはよう御座います。
検証してみたところ8月24日の2回目出勤部分、J29セル所定内が7:10でなくてはならないところ
8:00になっていました。当然合計時間も50分多くなっていました。
そこだけです。

日付 出勤日 始業 退社日 終業 拘束 勤務 休始 休終 所定内 時間外 (所深) (外深)

3(金) 8月2日 15:30 8月3日 4:05 12:35 11:35 19:00 20:00 8:00 3:35 2:30 3:35

	8月3日	12:00	8月3日	17:00	5:00	5:00			5:00			
4(土)												
5(日)												
6(月)	8月6日	3:00	8月6日	17:15	14:15	10:40	10:30	14:05	8:00	2:40	2:00	
7(火)	8月7日	2:20	8月7日	16:55	14:35	13:05	9:00	9:15	8:00	5:05	2:40	
							11:45	13:00				
8(水)	8月8日	2:00	8月8日	16:05	14:05	9:00	8:10	13:15	8:00	1:00	3:00	
9(木)	8月9日	1:15	8月9日	16:50	15:35	11:30	9:15	13:20	8:00	3:30	3:45	
10(金)	8月10日	1:40	8月10日	16:45	15:05	10:00	8:10	13:15	8:00	2:00	3:20	
11(土)												
12(日)												
13(月)												
14(火)												
15(水)												
16(木)	8月16日	1:50	8月16日	7:10	5:20	5:20			5:20		3:10	
17(金)	8月16日	15:00	8月17日	3:45	12:45	11:45	18:00	19:00	8:00	3:45	2:00	3:45
	8月17日	13:20	8月17日	17:10	3:50	3:50			3:50			
18(土)												
19(日)												
20(月)	8月20日	1:55	8月20日	16:05	14:10	8:35	7:40	13:15	8:00	0:35	3:05	
21(火)	8月21日	1:40	8月21日	16:50	15:10	10:20	8:25	13:15	8:00	2:20	3:20	
22(水)	8月22日	2:35	8月22日	16:55	14:20	11:40	10:20	13:00	8:00	3:40	2:25	
23(木)	8月23日	1:40	8月23日	16:20	14:40	11:30	10:05	13:15	8:00	3:30	3:20	
24(金)	8月24日	1:30	8月24日	7:40	6:10	6:10			6:10		3:30	
	8月24日	14:50	8月24日	23:00	8:10	7:10	19:00	20:00	8:00		1:00	
25(土)										
合計	238:20:00	195:45:00	156:45:00	39:50:00	53:20:00	15:30:00

合計156:45の部分が所定内合計で正解は50分少ない155:55です。

ずれて醜くて申し訳ありません。
(Yoshi)


 すみません。単純なポカです。
 (当初から間違っていました)

 変更前 J2セル =IF(F2="","",MIN("8:00",F2))
                     ↓
 変更後 J2セル =IF(F2="","",MIN("8:00",G2))

 (半平太) 2012/10/07 09:48

半平太さん
対応ありがとうございます

ちょっと外出してしまった為、
検証は帰宅後になります。

申し訳ございません
親切に対応してくださり
本当に感謝しております。

Yoshi


(半平太)さん、
OKみたいです。

今回は本当にありがとうございました。

(Yoshi)


 もう少しましなロジックにならないか検討していたら、
 逆にロジックミスを発見してしまった(トホホ)

 すみませんが、下式に変更してください。

 (1) X2セル =IF(Q2="","",(U2-T2)*(MEDIAN(R2,W2,T2)=T2))
 (2) Z2セル =IF(Q2="","",MAX(0,(U2-T2)*(MEDIAN(R2,Y2,T2)=T2)-X2))
 (3) AB2セル =IF(Q2="","",MAX(0,(U2-T2)*(MEDIAN(R2,AA2,T2)=T2)-X2-Z2))
 (4) AD2セル =IF(Q2="","",MAX(0,(U2-T2)*(MEDIAN(R2,AC2,T2)=T2)-X2-Z2-AB2))

 こんなデータだと差が出ます。
  ↓
  行 ______A______ ___B___ __C__ ___D___ __E__ __F__ __G__ __H__ __I__ ___J___ ___K___ _____L_____ _____M_____
   1 日付          出勤日  始業  退社日  終業  拘束  勤務  休始  休終  所定内  時間外  (所定内深)  (時間外深) 
   2 2012/8/3(金)  8月2日  15:00 8月3日  4:05  13:05 7:05  21:00 22:00  7:05              1:05                   
   3                                                       23:00  4:00                                         
   4                                                                                                          
   5                                     
   6                                         今までの数式                                                                  
   7                                                                                             
   8 2012/8/6(月)  8月6日  15:00 8月7日  4:05  13:05 7:05  21:00 22:00  7:05              1:00        0:05       
   9                                                       23:00  4:00                                         

 (半平太) 2012/10/09 00:11

 (半平太) さん、こんにちわ。

早速手直しして1人分打ち込んでみました。
非常に快適に出来ました。
ありがとう御座いました。

そこで思ったのですが、
もう一つだけ良いですか?
勤務時間と休憩開始の間に「合計休憩時間」の列を作って頂けないでしょうか?

(Yoshi)


 1.H列の列全体を選択して、列の挿入をすると新しいH列ができますので、

   新H2セル =IF(F2="","",SUMIF(R2:R6,R2,V2:V6)-SUMIF(R2:R6,R2,U2:U6))

 2.そうなると、G2列の数式はそのデータを利用できるので

    G2セル =IF(F2="","",F2-H2)

  行  ______A______  ___B___  __C__  ___D___  __E__  __F__  __G__  ______H______  __I__  __J__  ___K___
   1  日付           出勤日   始業   退社日   終業   拘束   勤務   合計休憩時間   休始   休終   所定内 
   2  2012/8/3(金)   8月2日   15:00  8月3日   4:05   13:05  7:05   6:00           21:00  22:00  7:05   
   3                                                                              23:00  4:00          

 (半平太) 2012/10/09 11:05

(半平太)さん、
今回は本当に感謝しております。
ありがとう御座いました。

(Yoshi)


(半平太)さん
ご無沙汰してます。
その節はありがとう御座いました。

(半平太)さんに作って頂いた運送業の出勤簿なのですが。
先日6日大雪予報の際に1日に出勤2回退社1回があり、
6日の時間を入力した際に5日分までが合計休憩時間マイナス表示になってしまいました。

まあこんな事は1年間に2〜3日しか有りませんが修正して頂けるならお願いしたいと思い書き込みさせて頂きました。

ご無理なようならこのままで結構です。
十分重宝していますから。
重ねてその節はありがとう御座いました。

  日付    出勤日 始業時刻 退社日 終業時刻 拘束時間 勤務時間 合計休憩時間 休憩開始 休憩終了

 4(月)	2月4日	5:00	2月4日	  17:00	12:00	8:00	  4:00	7:00	8:30

								                    10:30 	13:00

 5(火)	2月5日	1:30	2月5日	  16:00	14:30	23:20	  -0.368	4:30 	7:30

 								                       12:30	13:00

 6(水)	2月5日	20:00	2月6日	    16:00	20:00	32:20	    -0.514	22:20	4:30

 								                        7:30	13:00

(Yoshi)

								                   

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.