[[20190808174334]] 『休憩時間の合計と労働時間から法定内休憩時間を算』(ありんこ) ページの最後に飛ぶ

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

 

『休憩時間の合計と労働時間から法定内休憩時間を算出したい』(ありんこ)

勤務時間をエクセル管理したく、ファイルを作っているのですが、うまく計算結果が出ず、検索してもいまいち関数がうまく理解できないのでこちらで質問させていただきます。

以下のデータで休憩時間(J)を出したいのですが、=(F-G)+(H-I)ではうまくいかず、エラーになってしまうのです。
また、労働時間(データでは勤務時間)が6時間以上8時間未満の場合、算出された休憩時間(計)が45分以下だった場合に強調表示を
労働時間(データでは勤務時間)が8時間以上だった場合に、算出された休憩時間(計)が60分以下だった場合に強調表示をしたいのですが、それも合わせてご教示していただきたいです。
補足として出勤時間、退勤時間、休憩時間は毎日変動するため、関数内に数字を手打ちすることが難しいです。よろしくお願いいたします。

     B  C         D        E      F      G        H       I           J               K
9		出勤時間	退勤時間	休憩入1	休憩出1	休憩入2	休憩出2	休憩時間(計)	勤務時間(計)
10  1日	木							0:00	0:00
11  2日	金	10:00	19:00	14:30	15:30			1:00	8:00
12  3日	土	7:30	24:00					0:00	16:30
13  4日	日	0:00	18:00	3:00	6:00			3:00	15:00
14  5日	月							0:00	0:00
15  6日	火							0:00	0:00
16  7日	水	10:00	19:00	12:30	13:30	15:30	16:30	2:00	9:00

< 使用 Excel:Excel2016mac、使用 OS:MacOSX >


追加です。休憩入1の時間が出勤時間以下(12時出勤で12時休憩入)の場合に強調表示をする方法もよろしくお願いいたします。
(ありんこ) 2019/08/08(木) 18:43

 提示された表は、正解図(希望図)なんですか?

(半平太) 2019/08/08(木) 19:03


返信ありがとうございます。
そうです。D〜Iまでが手打ちで入るので、JとKが自動で入って欲しいのです。
現在はJ16の2:00となっているところがエラーで0:00となってしまっている状態です。
(ありんこ) 2019/08/08(木) 21:01

K19 の 9:00 は正しいのですね。
(A) 2019/08/08(木) 21:08

 >労働時間(データでは勤務時間)が6時間以上8時間未満の場合、算出された休憩時間(計)が45分以下だった・・
 >労働時間(データでは勤務時間)が8時間以上だった場合に、算出された休憩時間(計)が60分以下

 ネットで調べると、こんな記述がありました。
            ↓
 >労働基準法第34条で、労働時間が
 > 6時間を超え、8時間以下の場合は少なくとも45分
 > 8時間を超える場合は、少なくとも1時間
 >の休憩を与えなければならない、と定めています。 

 「6時間以上8時間未満の場合」は、
 「6時間 超 8時間以下の場合」ではないですか?

(半平太) 2019/08/08(木) 21:48


とりあえず、表が見づらいので整理。
   ___B_____C_____D_________E_______F________G_______H_________I________J________K______
  9  日付 曜日 出勤時間 退勤時間 休憩入1 休憩出1 休憩入2 休憩出2 休憩日計 勤務日計
 10  1日   木                                                          0:00     0:00
 11  2日   金    10:00    19:00   14:30    15:30                       1:00     8:00
 12  3日   土     7:30    24:00                                        0:00    16:30
 13  4日   日     0:00    18:00    3:00     6:00                       3:00    15:00
 14  5日   月                                                          0:00     0:00
 15  6日   火                                                          0:00     0:00
 16  7日   水    10:00    19:00   12:30    13:30   15:30   16:30       2:00     9:00

 17  9日   金    22:00    10:00   23:00     5:00    8:00    9:00 

そのうえで、
>休憩時間(J)を出したいのですが、=(F-G)+(H-I)ではうまくいかず、エラーになってしまうのです。
多分投稿時にミスっただけでしょうど、
(G-F)+(I-H) ですよね?
もし、素で提示のようにしているのであれば、マイナス値になったから時刻表示ができなくて#####になっただけじゃないですか?

問題が生じるとすれば、17行目のように、24時を過ぎたものじゃないでしょうか
仮に、このようなデータがあるとすれば、表示形式を[h]:mm のようにして、25時以降を計算して入力するか、退社時間に入力がない場合は、翌日の退社時間までを対象にするとかの工夫が必要と思われます。

(もこな2) 2019/08/09(金) 00:30


皆さまアドバイスありがとうございます。
Aさま
>K19 の 9:00 は正しいのですね。

申し訳ございません。K19は7:00が正しいです。手打ちしているときに間違えてしまいました。

半平太さま
私の認識不足で、おっしゃる通りになります。

もこな2さま
>多分投稿時にミスっただけでしょうど、
>(G-F)+(I-H) ですよね?
>もし、素で提示のようにしているのであれば、マイナス値になったから時刻表示ができなくて#####になっただけじゃないですか?

申し訳ございません。おっしゃる通り間違えていました。
=(G-F)+(I-H)であれば正しく表示されました。ありがとうございます。

24時間をこえる表記に関してはおっしゃる通りの対応をしておりますので、今のところ問題になっていません。

これ以降は強調表示に関しての質問とさせていただきます。
よろしくお願いいたします。
(ありんこ) 2019/08/09(金) 00:46


また、労働時間(データでは勤務時間)が6時間 超 8時間以下の場合の場合、算出された休憩時間(計)が45分以下だった場合に強調表示を
労働時間(データでは勤務時間)が8時間以上だった場合に、算出された休憩時間(計)が60分以下だった場合に強調表示をしたいのですが、それも合わせてご教示していただきたいです。
追加で、休憩入時間が出勤時間と同じかそれ以下の場合、休憩出時間が退勤時間と同じかそれ以上の場合に強調表示をしたいです。

補足として出勤時間、退勤時間、休憩時間は毎日変動するため、関数内に数字を手打ちすることが難しいです。よろしくお願いいたします。
(ありんこ) 2019/08/09(金) 00:57


強調表示のほうは条件付き書式が使えませんか?
たとえば、勤務時間:8時間以上、休憩時間が1時間以下
 =AND(J1<=1/24,K1>=8/24)

がTRUEになる場合は1行目を太文字にするんですよね?

(もこな2) 2019/08/09(金) 03:51


もこな2さま
>強調表示のほうは条件付き書式が使えませんか?

使おうとしたのですが、いまいち分からず……
おっしゃる通り、太文字になれば良いのですが、ぞれぞれエラーのある箇所がわかれば良い(エラーの日がわかる、ではなく)嬉しいです。
(ありんこ) 2019/08/09(金) 10:19


 >これ以降は強調表示に関しての質問とさせていただきます。

 時間データは、小数演算誤差が絡むので、そうも言ってられない事情もありますので、
 J10セルとK10セルの数式をアップして頂けませんか? 

 無理にとは言いませんけど・・

(半平太) 2019/08/09(金) 11:39


>使おうとしたのですが、いまいち分からず……
どのように解らないのか説明がない(実際にどのようにしたのか等の説明が見当たらない)ので、答えられません。

>ぞれぞれエラーのある箇所がわかれば良い(エラーの日がわかる、ではなく)嬉しいです。
意味がよく分かりませんが、ポイントはエラーかどうかではなく条件を満たすか満たさないかだと思われます。

一旦作業中の表を離れて適当なシートで↓をテストしてみてください。

    ___A______B____C___________________________________________
  1   5:59  0:30  ■  A列が6h未満である
  2   6:00  2:00  ↓  A列が6h以上8h未満 だが B列が45m以上である
  3   6:00  0:30      A列が6h以上8h未満 かつ B列が45m未満である →True
  3   6:00  0:45      A列が6h以上8h未満 だが B列が45m以上である
  4   8:00  0:45      A列が8h以上       かつ B列が1h未満である  →True
  5   8:00  1:00      A列が8h以上       だが B列が1h以上である
  6   8:00  1:00      A列が8h以上       だが B列が1h以上である
  7  10:00  1:00      A列が8h以上       だが B列が1h以上である

 ■のところに↓を入力して、フィルコピー
 =OR(AND(A1>=6/24,A1<8/24,B1<TIME(0,45,0)),AND(A1>=8/24,B1<1/24))

(もこな2) 2019/08/09(金) 11:54


半平太さま
>J10セルとK10セルの数式をアップして頂けませんか?
もちろんさせていただきます。よろしくお願いします。
J10 =(G10-F10)+(I10-H10)
K10 =E10-D10-J10
となっております。

もこな2さま
ご指摘ありがとうございます。
ご提示された表を作成し、真偽の表示はできました。
例えばこの場合、B3とB5、A7に強調表示がされて欲しいのです。
よろしくお願いいたします。
(ありんこ) 2019/08/09(金) 13:40


 >J10 =(G10-F10)+(I10-H10) 
 >K10 =E10-D10-J10 

 1.小数演算誤差対策の一環として、以下に変更してください。

 J10セル =TEXT((G10-F10)+(I10-H10),"[h]:mm")*1
 K10セル =TEXT(E10-D10-J10,"[h]:mm")*1

 2. 条件付き書式の条件式

  (1) 休憩入1 (F10以下)→ =AND(F10<>"", F10<=D10)
  (2) 休憩出1 (G10以下)→ =AND(G10<>"",$E10<=G10)
  (3) 休憩出2 (I10以下)→ =AND(I10<>"",$E10<=I10)
  (4) 休憩時間(J10以下)→ =("6:00"*1<K10)*IF(K10<="8:00"*1,J10<"0:45"*1,J10<"1:00"*1)

 なお、(4)休憩時間のチェックは、以下の解釈とします。
                                                 ↓
   労働時間(データでは勤務時間)が6時間 超 8時間以下の場合の場合、算出された休憩時間(計)が45分未満だった場合
   労働時間(データでは勤務時間)が8時間 超 だった場合に、算出された休憩時間(計)が60分未満だった場合
                     ↑                      ↑
 その解釈がダメな場合は、
 そちらで不等号を変更してください。

(半平太) 2019/08/09(金) 14:47


半平太さま
お返事が遅くなって申し訳ございません。
1少数点誤差についてですが、ご提示の通り変更しました。
あまり細かい時間の入力はないので、対策は不要かと思っていましたが、関数の内容が分かるように勉強しようと思います。
ありがとうございます。

2ご提示の数式を入れると真偽の表記がされるのですが、これは適当な(例えばL以降)の列に入力するという解釈であっているでしょうか?
(ありんこ) 2019/08/10(土) 11:49


 >あまり細かい時間の入力はないので、対策は不要かと思っていました

 例えば「1:00」は細かい数値じゃないと思っているんでしょうが、
 実体は「0.0416666666666667」です。十分細かいです。

 >2ご提示の数式を入れると真偽の表記がされるのですが、
 >これは適当な(例えばL以降)の列に入力するという解釈であっているでしょうか?

 それは、セルに入力する数式じゃないです。
 条件付き書式の条件式です。

 強調したい範囲を選択して
  ↓
 ホームタブ→ スタイルグループ→ 条件付き書式コマンド→ 新しいルール
 → 数式を使用して、書式設定するセルを決定
 → 次の数式を満たす場合に値を書式設定

 その数式ボックスに上の数式を入れる。

 ※条件付き書式の設定方法が全く分からないなら、検索して調べてください。
  例えば、
   ↓
https://dekiru.net/article/17631/

(半平太) 2019/08/10(土) 12:17


半平太さま
なるほど。丁寧に教えていただきありがとうございます!
教えていただいた手順で望む通りのものを作成する事ができました。
本当にありがとうございました。

ご返信をいただいた皆さまのおかげで作成したいものを作る事ができました。
お教えいただいた関数や数式の理解が追いついていない現状ですが、使いこなす事ができるように理解を深めたいと思います。
本当にありがとうございました。このスレはこれにて締めさせていただきたいと思います。
ありがとうございました。
(ありんこ) 2019/08/11(日) 17:05


コメント返信:

[ 一覧(最新更新順) ]


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