こんばんは、skireです。
Excelで作業時間を計算するための表を作ろうと思っています。
そこで少々行き詰まってしまいましたのでお知恵をお貸し下さい。
A B C D E
開始時間 終了時間 居残り 作業時間 居残り作業時間
1 8:00 16:00
2 10:00 22:00 1:00
3 9:00 13:00
このD1以降のセルに休憩時間を差し引いた作業時間を自動で表示されるようにしたいです。
ですが、この休憩時間がちょっと面倒でして、
B1-A1が8:45以上なら1時間
B1-A1が6:00より多く、8:45未満の場合には45分
B1-A1が6:00以下なら休憩はなし
という計算をします。
(21:00より遅くなると居残り→居残り作業時間。
21:00以降に作業をしに来た人に関しては今やると混乱しそうなので省いています。
いつかは挑戦したいのですが……)
自分で組んだ式は以下です。
D1=
IF(TEXT(B1-A1,"h:mm")>"8:44",TEXT(B1-A1,"h:mm")-"1:00",IF(TEXT(B1-A1,"h:mm")>"6:00",TEXT(B1-A1,"h:mm")-"0:45",TEXT(B1-A1,"h:mm")))-TEXT(E1,"h:mm")
E1=B4-"21:00"
この式で、
B1-A1が6:00より多く、8:45未満の場合には45分
B1-A1が6:00以下なら休憩はなし
の部分と居残り時間についてはうまくいくのですが、
8:45以上の休憩だけがどうしてもうまくいきません。
1:00マイナスされていない数字が入力されてしまいます。
小さなミスだとは思うのですが、見つけることが出来ません。
よろしくお願いします。
No.11
- 回答日時:
回答番号ANo.ANo.4です。
居残り作業時間を求める関数も回答されている方もおられる様ですが、休憩開始時刻と休憩終了時刻が不明のままでは、21:00以前に全ての休憩を取り終えた人や、21:00以降に休憩を取った人、休憩の途中で21:00を迎えた人、等の違いが出て来る可能性があり、これらの違いを無視して一律に、終了時間だけを基にして居残り時間を算出したのでは、不平等になると思いますので注意なさって下さい。(私が居残り作業時間を求める関数を回答しなかったのも、そのためです)
沢山のご回答をありがとうございます。
お返事、お礼が遅れてしまい申し訳ございません。
予想より沢山の方にお答えをいただけましたので、
誠に失礼ながらお礼をまとめさせていただきます。
休憩時間と作業時間の関係にまで言及して下さった方もありがとうございます。
これからのメンバーとのミーティングの時に話に出してみようと思います。
また、ベストアンサーには回答順で一番最初に意図した答えを出すことが出来た
umekihajimeさんの回答を選ばせていただきました。
他の方の回答も使わせていただき、よりよいものを作っていこうと思います。
本当にありがとうございます。
No.9
- 回答日時:
#7です。
余談ですがm(_ _)m演算誤差とか小数点誤差対策として、時間計算においてtext関数を使うことは有効だと思います。
(今回の件に当てはまるかは別として)
サンプル1
="1:02"-"0:59"="0:03"*1
結果 FALSE
サンプル2
=TEXT("1:02"-"0:59","h:m")*1="0:03"*1
結果 TRUE
サンプル3
=-TEXT("0:59"-"1:02","[m]")=3
結果 TRUE
No.8
- 回答日時:
時間の計算では入力したデータがすべてシリアル値として認識されていることが必要です。
A1セルに8:00と入力し、そのセルを右クリックして「セルの書式設定」の「表示形式」から「標準」に切り替えることで0.33333・・(0.3333・・日)のように表示されますね。それがシリアル値なのです。時間の計算ではそのシリアル値が計算に使われるのです。お示しの式ではTEXT関数が使われていますね。この関数を使うことでせっかくシリアル値として認識されている時間のデータを文字列に変えてしまうことになります。時間の表示を式の上で8:00と表示したい場合などにTEXT関数を使うことはありますが時間の計算でTEXT関数を使う必要は全くありません。文字列となっているデータを計算に使うことはできないからです。
ただ、文字列となっている例えば16:00から8:00を引くといった場合には自動的にパソコンが時刻と判断して引き算をしてはくれますが16:00>8:00といった比較は文字列ですので不可能です。
次のような式は時間の計算ではよく使われますのでぜひ理解できるようにしてほしいですね。
ご質問のD1セルへの入力の式は次のようにします。
=IF(COUNT(A1:B1)<>2,"",B1-A1-IF(B1-A1>="8:45"*1,"1:00",IF(B1-A1>"6:00"*1,"0:45",0)))
この式の意味はA1セルとB1セルが空の場合にはD1セルを空にしなさい。そうでない場合にはB1セルからA1セルの値を引く、そのほかにB1セルからA1セルの値を引いたときに(シリアル値の引き算になります)その値が8:45のシリアル値(*1としているのは文字列である8:45をシリアル値に変換するためです)以上の場合には1:00(数値として1:00の数値はありません。文字列として"1:00"のように使っていますが先にも述べたように時間の計算で引き算や足し算の場合には文字列であっても自動的にシリアル値として理解されています。)を引きなさい、B1セルからA1セルの値を引いた値が6:00のシリアル値以上の場合には0:45を引きなさい、それ以下の場合には0を引きなさい、との意味になります。
また、E1セルへの入力の式は次のようにします。
=IF(B1>"21:00"*1,B1-"21:00","")
B1セルの値が21:00よりも小さい値のばあには引き算の結果がマイナスになり、時間の計算ではエラーが表示されることになります。
最後にD列やE列に表示されるのはいずれもシリアル値です。それらの数値を時間の表示にするためにはD列およびE列を選択した後で右クリックし「セルの書式設定」の「表示形式」タブから「時刻」で13:30などを選択すればよいでしょう。勿論、「ユーザー定義」でh:mmと入力しても同じことになりますね。
No.7
- 回答日時:
混乱しそうなときは作業列を使って、順を追って行うとよいです。
>小さなミスだとは思うのですが、見つけることが出来ません。
問題点は
TEXT(B1-A1,"h:mm")>"8:44
文字列の大小比較になっていしまっています。
「数式から分単位で入力すると思われる」前提のもと、
休憩時間の列を設けて
=LOOKUP(-TEXT(A2-B2,"[m]"),{0,361,525},{0,"0:45","1:0"})*1
としてはいかがでしょうか?
もちろん、休憩時間と作業時間の関係を表した表を設けたほうがより良いと思います。
いちおう、簡単な説明
分換算([m])と小数点誤差の考慮(text関数)と数値化(-)、-TEXT(A2-B2,"[m]")
分による休憩時間の検索(LOOKUP)
数値化 *1
No.6
- 回答日時:
こんにちは
時間の比較がうまくいってないような気がします。
D1に
=IF(B1-A1>=TIMEVALUE("8:45"),B1-A1-"1:00",IF(B1-A1>TIMEVALUE("6:00"),B1-A1-"0:45",B1-A1))-IF(E1<>"",E1,"0:00")
E1に
=IF(B1>TIMEVALUE("21:00"),B1-"21:00","")
と入力してみてください。
計算結果が意図してないものでしたら無視してください。
No.5
- 回答日時:
D1=IF(COUNT(B1,A1)=2,B1-A1-LOOKUP(B1-A1,{"0:00","6:01","8:45"},{0,"0:45","1:00"}),"")
E1=IF(COUNT(B1)=1,MAX(B1,21/24)-21/24,"")
No.4
- 回答日時:
まず、適当な場所に拘束時間と休憩時間の関係を表した表を作成して下さい。
例えばSheet2の
A2セルに 0:00
B2セルに 0:00
A3セルに 6:01
B3セルに 0:45
A4セルに 8:45
B4セルに 1:00
と入力して下さい。
次に、「作業時間を計算するための表」が存在ているSheetのD2セルに次の数式を入力して下さい。
=IF(COUNT($A2,$B2)=2,$B2-$B1-VLOOKUP($B2-$A2,Sheet2!$A:$B,2),"")
次に、D2セルをコピーして、D3以下に貼り付けて下さい。
これで作業時間が自動で表示されます。
尚、D2セルに入力する数式を次の様に変えれば、拘束時間と休憩時間の関係を表した表を作成しなくても、同様の事が可能です。(6時間1分=361分、8時間45分=525分、1日=1440分)
=IF(COUNT($A2,$B2)=2,$B2-$B1-LOOKUP(($B2-$A2)*1440,{0,361,525;0,"0:45","1:00"}),"")
No.2
- 回答日時:
こんばんは!
>E1=B4-"21:00"
は無視して・・・
1行目はタイトル行になっていて、2行目以降に数式を入れるとします。
D2セル(セルの表示形式はユーザー定義から [h]:mm としておきます)に
=IF(COUNTBLANK(A2:B2),"",IF(B2-A2<"6:00"*1,B2-A2-E2,IF(B2-A2<"8:45"*1,B2-A2-"0:45"*1-E2,B2-A2-"1:00"*1-E2)))
としてオートフィルで下へコピーではどうでしょうか?
的外れならごめんなさいね。m(_ _)m
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) エクセルの時間の計算、何時以下の場合の足し引きに苦戦しています。 2 2022/11/16 16:39
- Excel(エクセル) エクセルの関数式を教えてください。 2 2022/11/29 21:09
- その他(Microsoft Office) IF関数について教えてください 2 2022/05/10 13:31
- Excel(エクセル) エクセルVBAでセルに表示されているとおりの数値を取得したい(時間の計算結果) 1 2022/03/30 17:52
- その他(ビジネス・キャリア) 日報の実務労働時間の集計について困っています。 2 2023/06/09 19:00
- Excel(エクセル) Excel 数式を教えてください 2 2022/06/02 12:24
- Excel(エクセル) エクセルでIF関数中にIFERROR関数を使いたいのですが???? 5 2022/04/08 13:24
- Excel(エクセル) エクセル関数教えてください 3 2022/06/21 10:22
- Excel(エクセル) TEXT関数(負の値)を集計のため数値に変換したい 5 2022/05/15 23:04
- Excel(エクセル) 隣り合っていないセルを まとめて税込表示したい 8 2022/09/25 14:32
このQ&Aを見た人はこんなQ&Aも見ています
-
外出時に「待たせる妻」vs イライラする「待つ夫」は日本だけ?見習いたい海外事情
夫の家事参加に積極的なイメージのある海外でも、同様の事例はあるのか。結婚カウンセラーの佐竹悦子さんに伺ってみた。
-
複数の休憩時間がある場合の休憩時間の算出方法
Excel(エクセル)
-
エクセル不変則な休憩時間の実労働時間計算
Excel(エクセル)
-
エクセルで複数の勤務時間ごとの休憩時間の計算がしたい
Excel(エクセル)
-
-
4
Excelの時間計算で経過時間から特定の時間を引く方法
Excel(エクセル)
-
5
エクセルで勤怠管理表で休憩時間を計算させるには
Excel(エクセル)
-
6
エクセル勤務表で昼休憩を挟んだ時の休憩算出方法
Excel(エクセル)
-
7
休憩時間が数パターンある場合の休憩時間の計算
Excel(エクセル)
-
8
エクセルで休憩時間を引く時と、引かない時の数式
Excel(エクセル)
-
9
エクセルで休憩時間を計算したいのですが 条件 勤務時間6時間以上8時間未満は休憩45分 8時間以上は
Excel(エクセル)
-
10
excel関数 変動する休憩時間等を計算する
ソフトウェア
-
11
エクセルで表示形式の時刻の「0:00」を表示しないようにするには?
Excel(エクセル)
-
12
エクセルで休憩時間を引いての作業計画予定表の作成の仕方
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
【エクセル】IF関数 Aまたは...
-
対象セル内(複数)が埋まった...
-
エクセルで指定したセルのどれ...
-
EXCEL VBA セルに既に入...
-
エクセル 足して割る
-
excelのCOUNTIF関数で、『範囲=...
-
【Excel】 セルの色での判断は...
-
貼り付けで複数セルに貼り付けたい
-
セルをクリック⇒そのセルに入力...
-
Excelで数式内の文字色を一部だ...
-
エクセルのセルの枠を超えて文...
-
エクセル オートフィルタで絞...
-
Excelでのコメント表示位置
-
(Excel)数字記入セルの数値の後...
-
Excelで住所を2つ(町名迄と番...
-
セルの高さ(行高)を求めるには?
-
エクセルの一つのセルに複数の...
-
VBAで特定の文字が入力されたセ...
-
Excelで条件をつけてハイパーリ...
-
Excelの関数で、性別が男なら『...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルで指定したセルのどれ...
-
【エクセル】IF関数 Aまたは...
-
対象セル内(複数)が埋まった...
-
エクセル 足して割る
-
Excelで数式内の文字色を一部だ...
-
貼り付けで複数セルに貼り付けたい
-
Excelでのコメント表示位置
-
セルをクリック⇒そのセルに入力...
-
EXCEL VBA セルに既に入...
-
excelのCOUNTIF関数で、『範囲=...
-
【Excel】 セルの色での判断は...
-
エクセル オートフィルタで絞...
-
エクセルのセルの枠を超えて文...
-
(Excel)数字記入セルの数値の後...
-
Excelで、「特定のセル」に入力...
-
エクセルの一つのセルに複数の...
-
複数のセルのいずれかに数字が...
-
excelの特定のセルの隣のセル指...
-
数式を残したまま、別のセルに...
-
ハイパーリンクの参照セルのズ...
おすすめ情報