
シフト自由制の10時から15時までの勤務時間管理表を作成してる中で、休憩時間を引いた実労働時間を算出したいのですが、式がうまく組めません。
条件としては、
1,あり得る開始時間は10時から14時半までの間の30分刻み。
2,あり得る終了時間は10時半から15時までの間の30分刻み。
3,休憩時間は12時から13時までの1時間。
(11時半出勤の12時半退勤なら30分。12時出勤の13時退勤なら休憩時間0になります)
4,リモート労働というのもあって、リモートのみ12時から13時半、12時半から13時半、12時から13時、12時半から13時、11時半から12時半、12時から12時半、この6パターンだけは休憩時間が適用されません。
今、組んでみた式は下記ですが、これでは上記の条件が満たされていない事も理解しています。
=IFS(COUNT(D3:D4)<>2,"",SUM(MAX(0,MIN(D4,"12:00"))-D3),MAX(0,D4-(MAX("13:00",D3))))
D3が開始時間、D4が終了時間、D6にプルダウンリストで「休み」、「リモート」を選べるようになっていて、D5に式を入力して休憩時間を引いた実労働時間を出したいです。
付け焼刃で勉強しながらやってる関数なので素人です。
ご教授よろしくお願いします。

No.8ベストアンサー
- 回答日時:
数式の問題ではなく、貴殿の使用環境や使用方法に原因があると思われます。
当方の環境では問題なく処理されエラーは再現できません。EXCELのまっさらのシートに最初から表を作成して試してください。
どうしても今の使用方法が変えられないなら、使用環境や使用方法を詳細に書いて、現在起きている事象を再質問されることをお勧めします。
ご指摘の通り、新しいブックにコピーして作り直してみます。
色々とご考案頂いて本当にありがとうございました。
またお見掛けされた際は、よろしくお願いしたします。
No.7
- 回答日時:
3行目、4行目の開始/終了時間を全て手入力(オートフィルNG)してみてください。
スプレッドシートで時間を扱う場合はEXCELより詳細な注意点が沢山あります。時間入力もオートフィルを使用すると見た目の時間表示は同じでも内容は微妙に異なります。
No.6
- 回答日時:
貴殿が調べた数式(必ず12:0-13:00が休憩の前提)を活かすなら次の式です。
試してみてください。D5=IF(OR(COUNT(D3:D4)<>2,D3>=D4),"",
SUM(
MAX(0,MIN(D4,"12:00")-D3),MAX(0,D4-MAX("13:00",D3)),
IF(ASC(D6)="リモート",
SUMPRODUCT((D3=1*{"12:00";"12:00"})*(D4=1*{"13:00";"13:30"}))/24+
SUMPRODUCT((D3=1*{"12:30";"12:30";"11:30";"12:00"})*(D4=1*{"13:30";"13:00";"12:30";"12:30"})/48),
0)))
※休憩時間帯の例外勤務扱いする時間を加算する考え方です。
No.5
- 回答日時:
リモート以外の結果は如何でしたか?
数式は終了時間(M4)-始業時間(M3)-休憩時間(IF 以降)です。
休憩時間が全くマイナスされないということはIF以降で休憩時間が計算されていないということです)。私のPC環境ではNGが確認(再現)できません。
日付付きの時間だと休憩時間の計算が[0]なので、休憩時間がマイナスされないこと(こちらは確認済)になります。
表6行目に入力する「リモート」は全角でも半角でも対応するよう変更しました。
M5=IF(OR(COUNT(M3:M4)<>2,M3>=M4),"",M4-M3-IF(AND(ASC(M6)="リモート",SUMPRODUCT((M3=1*{"12:00";"12:30";"12:00";"12:30";"11:30";"12:00"})*(M4=1*{"13:30";"13:30";"13:00";"13:00";"12:30";"12:30"}))),0,IF(AND(M3<="12:00"*1,M4>="13:00"*1),"1:00",IF(OR(M3="12:30"*1,M4="12:30"*1),"0:30",0))))
No.4
- 回答日時:
補足の画像では数式内容が正しく読み読み取れません。
M5の数式を拡大し、添付しました。数式が正しく入っていれば時間以外の日付情報が入っていませんか。
書式を標準にして、セル内容をご確認ください。時間だけなら1以下の小数点が表示されるはずです。異なる場合は時間のみで再入力してください。
時間(From-To)が正しく入力されていれば添付図のように正しく表示されます。

No.3
- 回答日時:
質問:休憩時間は12:00~13:00の時間帯との説明ですが
10:00~12:30 10:30~12:30 の休憩時間は1:00でよろしいでしょうか?
この時間帯勤務が0:30の休憩でよければ次の数式で試してください。
D5=IF(OR(COUNT(D3:D4)<>2,D3>=D4),"",D4-D3-IF(AND(D6="リモート",SUMPRODUCT((D3=1*{"12:00";"12:30";"12:00";"12:30";"11:30";"12:00"})*(D4=1*{"13:30";"13:30";"13:00";"13:00";"12:30";"12:30"}))),0,IF(AND(D3<="12:00"*1,D4>="13:00"*1),"1:00",IF(OR(D3="12:30"*1,D4="12:30"*1),"0:30",0))))

No.2
- 回答日時:
こんにちは
入力値は全てシリアル値で、必ず 開始時刻<終了時刻 が成り立つものと仮定してよいものとします。
全体の時間は、 =終了時刻 - 開始時刻
休憩時間は、 =MAX(0,MIN(終了時刻,"13:00")-MAX(開始時刻,"12:00"))
で求められることはご存じと思います。
1~3の条件での実労時間は、ご提示の式とは少し変わりますが、
=全体時間 - 休憩時間 で求められます。
休憩時間を敢えて求めているのは、4の条件に一致したら 休憩時間*0、その他の場合は 休憩時間*1 とすれば、全て同じ計算でご質問の結果を計算することができると考えてのことです。
4の条件で、他のパターン(6パターン以外)が存在するのかしないのか、存在するならどのようなものなのかがよくわかりませんけれど、もしも「リモートの場合は6パターンのみ」というのであれば、上記の0、1は「リモートか否か」で判定しても良いことになります。
「いろいろなパータンはあるけれど、ご提示の6パターンだけ休憩時間なし」という場合は、条件式にしても良いですが、それなりに煩雑になるので別に表を作成しておいた方が簡単にできると思います。
添付図のような表を別シートにでも作成しておいて、名前の定義でA1:D4を「休憩換算表」、A1:D1を「終了時間帯」と名前を設定しておきます。(←好きな名称で良いです)
(表中の0は休憩時間なしを意味します。仮に、11:30~13:30だと休憩時間ありなので、実労1時間になりますけれど・・・??)
この表を参照するのには、
=VLOOKUP(開始時刻,休憩換算表,MATCH(終了時刻,終了時間帯,0),0)
で可能ですが、当然表にない範囲の時刻もあり得るので、その場合は1となるように
=IFERROR(VLOOKUP(開始時刻,休憩換算表,MATCH(終了時刻,終了時間帯,0),0),1)
としておけば、6パターンなら0、それ以外は1という結果になります。
ただし、リモートの場合のみ適用なので、最終的な係数としては
=IF(D6="リモート",上記の式,1)
としておく必要があります。
ここまでの内容をまとめて
=全体時間 - 休憩時間 * 係数
とすることで、お求めの結果になるものと思います。
※ 開始時刻、終了時刻の入力がされていることのチェック、開始時刻<終了時刻であることのチェックに関してはお分かりと思いますので、省略してあります。
※ 時刻が30分単位となっていますけれど、本当にそれでよいのかは気になるところですが・・
(休憩換算表は時間が一致していることで検索していますので、端数の分を入力すると、異なる結果になります)

No.1
- 回答日時:
休憩のルールが今いちわかりませんが、次のローテク数式で試してみてください。
D5=IF(OR(COUNT(D3:D4)<>2,D3>=D4),"",D4-D3-IF(AND(D6="リモート",SUMPRODUCT((D3=1*{"12:00";"12:30";"12:00";"12:30";"11:30";"12:00"})*(D4=1*{"13:30";"13:30";"13:00";"13:00";"12:30";"12:30"}))),0,IF(AND(D3<"12:00"*1,D4>="13:00"*1),"1:00",IF(AND(D3>="11:00"*1,D4>"12:00"*1,D4<"13:00"*1),"0:30",0))))

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 仕事術・業務効率化 出勤時間10時から11時は休憩入り12時 出勤時間12時から13時は休憩入り14時 休憩時間をエクセ 3 2023/04/18 20:46
- 求人情報・採用情報 12:00~21:30のシフトのバイトの場合、1日7時間勤務すること出来ますか? 7時間勤務だと休憩 4 2023/02/07 18:55
- その他(学校・勉強) 浪人中の過ごし方について こんばんは。現在、大学受験の浪人生をしています。 1日のスケジュールを立て 3 2023/04/12 21:38
- 大学受験 浪人中の過ごし方について こんばんは。現在、大学受験の浪人生をしています。 1日のスケジュールを立て 6 2023/04/12 19:20
- Excel(エクセル) エクセルで休憩時間を引いての作業計画予定表の作成の仕方 2 2023/07/24 14:11
- 労働相談 会社の手当の支給方法の妥当性と社員が不正に得られてしまう疑問 8 2023/06/10 16:33
- 飲食業・宿泊業・レジャー 休憩・残業時間の自動算出 1 2023/01/07 22:58
- その他(ビジネススキル・経営ノウハウ) 今まで午後勤務しかやったことありません。 8時から17時で9時間休憩入れて8時間勤務に変わります。お 1 2023/02/07 21:50
- Excel(エクセル) 勤務表の中抜け集計の関数を教えてほしいです。 1 2023/01/16 01:26
- Excel(エクセル) 出退勤管理の遅刻・早退時間について 3 2023/08/10 15:33
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
皆さんは、勤め先の職場で休憩...
-
正直休憩でホテル入っても途中...
-
複数の休憩時間がある場合の休...
-
ラブホって、支払う料金は2人合...
-
フードコートで何も頼まずに休...
-
私は総務課です。 昼休み中に職...
-
~時間を超えるの定義
-
Excelの時間計算で経過時間から...
-
エクセルで休憩時間を除く
-
「お先に休憩行ってきます」と...
-
位置情報をオフにしているのに...
-
休憩中の店員
-
会社にいい歳した男が、何回も...
-
今度、彼女と初めてラブホに行...
-
仕事中の飲み物購入について
-
休憩室に誰もいなくなる。
-
6時~14時半 休憩15ふん だと実...
-
エクセルで休憩時間を計算した...
-
市役所で働いてる、職員の昼休...
-
7時間労働で休憩がないのは普通...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
複数の休憩時間がある場合の休...
-
ラブホって、支払う料金は2人合...
-
フードコートで何も頼まずに休...
-
~時間を超えるの定義
-
Excelの時間計算で経過時間から...
-
仕事中の飲み物購入について
-
「お先に休憩行ってきます」と...
-
エクセルで休憩時間を計算した...
-
今度、彼女と初めてラブホに行...
-
休憩室に誰もいなくなる。
-
位置情報をオフにしているのに...
-
仕事昼休憩時間削られる 45分間...
-
私は総務課です。 昼休み中に職...
-
お昼休憩中に寝るのがいけない...
-
休憩中の店員
-
工場のライン作業は、お昼休憩...
-
車初心者マークなんですが、下...
-
新卒の保育士1年目です 私の園...
-
会社にいい歳した男が、何回も...
-
QI10ドライバーって盗まれやす...
おすすめ情報
補足に、あり得る全パターンを書き出している別シートを添付しようとしましたが
なぜか貼れなかったので、新たに質問を立ち上げそこに添付しました。
ご覧になってみてください。流用できるでしょうか?
https://oshiete.goo.ne.jp/qa/13273754.html
補足に、あり得る全パターンを書き出している別シートを添付しようとしましたが
なぜか貼れなかったので、新たに質問を立ち上げそこに添付しました。
ご覧になってみてください。流用できるでしょうか?
https://oshiete.goo.ne.jp/qa/13273754.html
直接添付できました。
黄色帯が1時間休憩の時間帯
オレンジ帯が30分休憩の時間帯
リモートの赤字が条件4にあたる部分です。
別シートに作成していたものなので流用可能です。
よろしくお願いします。
大変申し訳ありません。
J9とJ10は0:30が正しいです。従ってK9が2時間、K10が1時間半になります。
ご回答ありがとうございます!
ご指摘の通り。10:00~12:30 10:30~12:30 の休憩時間も30分でした。
申し訳ありませんでした。
しかし、組んでみましたが休憩時間が引かれた時間が返ってきません。
なぜでしょうか?
表示形式はすべてのセルが時刻の「13:30」にしています。
式自体は間違いありませんでした。
ご指示通り、形式を標準にしてみると「0.041666667」になりました。
5行目のドロップリストの「リモート」を半角にしているので、組んで頂いた式中の「リモート」を
半角に変えていますがそれが原因でしょうか?
お世話になっております。
組んで頂いた式をコピペした結果、#VALUE!が返ってきてしまいました。
但し、6行目をリモートにした場合のみ正常に計算結果がでました。
見にくいかもしれませんがスクショを添付しておきます。
こちらの式も結果は先と同じ#VALUE!でした。
同じくリモートのみ正常な計算がされています。
先程思い付いたのですが、スプリットシートからエクセルに切り替えたのが干渉してるのでしょうか?
今、別シートで試したところ計算自体は正常に動きました。
どうやらドロップダウンリストが干渉しているようです。
この場合、6行目は手打ちにしなければダメなんでしょうか?
3行目と4行目はオートフィルを使用することはなく必ず手入力なんです。
エクセルのブックにコピーなりシートの移動なりした方がいいんでしょうか?
スプレッドシートをエクセルで開いていても中身はスプレッドシートのままですよね?