エクセルの関数で終業時間を24:00と入力する方法

このQ&Aのポイント
  • 給与の関係で勤怠表をエクセルで作成していますが、終業時間を24:00と入力するための関数を使っています。
  • 具体的には、=IF(G7<=6,TEXT((G7&H7&I7)+"24:00","[h]:mm"),TEXT(G7&H7&I7,"[h]:mm"))という関数を使っています。
  • この関数を使うことによって終業時間を24:00と入力すれば、そのままの時間で表示することができます。
回答を見る
  • ベストアンサー

エクセルの関数について教えてください。

エクセルの関数について教えてください。 給与の関係で勤怠表をエクセルで作成しています。 =IF(G7<=6,TEXT((G7&H7&I7)+"24:00","[h]:mm"),TEXT(G7&H7&I7,"[h]:mm"))) ※G7・・・終業時間の”時”  H7・・・”:”  I7・・・終業時間の”分” 上記の関数を組むことによって終業時間を24:00と入力すればそのままの時間で表示できるようになりました。(こちらのサイトにて教えていただきました) ただ、この関数にFLOOR関数(でなくても良いのですが)等で求めた計が0より微妙に小さくなるのを解消したいのですが、どう組めばよろしいですが? ネット等で調べたり、上記の関数に&を付けて組もうとしましたが、上手くできませんでした。 どんな些細なことでも構いませんのでよろしく御願いします

質問者が選んだベストアンサー

  • ベストアンサー
回答No.2

最初の数式は私なら=time(G7,I7,0)+(G7<=6)で済ませるか、最初っ から終業時刻の列に[hh]:mmの書式を設定してセルを分けずに24:00 とか25:30と入力するところですが、そこはまぁいいでしょう。理解 できないのは「FLOOR関数(でなくても良いのですが)等で求めた 計」というのが何をしているのかさっぱり判らないことです。floor 関数は何かを合計したりしません。 とりあえずfloorを使って何かやってる式を補足して欲しいところで すが、その前に、text関数で文字列にした値を数値と比較するよう な条件式を書いてないか、文字列を結合する演算子「&」と数値の加 算を混同してないか、確認して下さい。また、時刻のように内部が 循環小数になって桁落ちを生ずる宿命の値にfloorやceilingを使う 場合は、1秒加算してからfloor、1秒減算してからceilingというの がセオリーになります。考慮してみて下さい。

stngryblk
質問者

お礼

ご回答ありがとうございます。 関数では難しくてよく分かりませんでしたので、セルを分けずに時間を入力する形に修正しました。 お手数をおかけしました。 ありがとうございました。

その他の回答 (3)

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

回答No4です。 FLOOR関数を使って24時以降を求める場合も含めて次のような式にすればよいでしょう。 =IF(G7<6,FLOOR(G7&H7&I7,"0:10")+1,FLOOR(G7&H7&I7,"0:10")) または =IF(G7<6,FLOOR(TIME(G7,I7,0),TIME(0,10,0))+1,FLOOR(TIME(G7,I7,0),TIME(0,10,0))) セルの表示形式は [h]:mm とします。

stngryblk
質問者

お礼

ご回答ありがとうございます。 教えていただいた関数を組んだり、組み直したりしましたが、上手くできませんでしたので 他の方法をとりました。 お手数をおかけしました。 ありがとうございました。

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

例えば =FLOOR(TEXT(G7&H7&I7,"[h]:mm"),"0:15")の値が0より微妙に小さくなるとはどんなケースでしょうか? どんな式でどんな値のときにそのような状況なのか具体的に示していただけませんか?

stngryblk
質問者

補足

ご回答ありがとうございます。 少し間違えていました。 <この関数にFLOOR関数(でなくても良いのですが)等で求めた計が0より微妙に小さくなるのを解消したいのですが、どう組めばよろしいですが? ではなく、質問内容上記に記載の関数で表示される時間が残業のときの計算をしたときで、答えが0:00となる場合(残業時間がない場合)に######となり、負の数になってしまいます。(セルの幅は問題ありません) 始業や休憩時間の表示の仕方の関数は =FLOOR(TIME(C6,E6,0),TIME(0,1,0))  ※C6・・・始業の”時”   E6・・・始業の分 としており、終業もこの関数で組むと残業時間はちゃんと0:00と表示されます。 ですが、この関数では24:00と入力したときに1:00となってしまい、正確な答えが 出てきません。 それを解消するにはどうしたら良いのかが、調べてみても分からなかったので、ご質問させていただきました。 再度のご回答よろしく御願い致します。

  • A88No8
  • ベストアンサー率52% (834/1602)
回答No.1

こんにちは >ただ、この関数にFLOOR関数(でなくても良いのですが)等で求めた計が0より微妙に小さくなるのを解消したいのですが、どう組めばよろしいですが?  FLOOR関数は、指定した基準値の倍数で丸める関数です。  時刻の実体は、2のn乗分の1の階乗で求められる小数点数以外は、無理数になる小数点数なので、「..0より微妙に小さくなる..」の点について質問者さんがやったこと、あるいはやろうとしていることをもう少し具体的に示して貰えませんか?  そうすると回答が付きやすいと思います(^^)v

stngryblk
質問者

お礼

ご回答ありがとうございます。 何度かいろんな情報を組み合わせ試みましたが、上手く出来ませんでしたので、 セルを分けずに時間入力するようにしました。 お手数をおかけしました。 ありがとうございました。

stngryblk
質問者

補足

ご回答ありがとうございます。 少し間違えていました。 <この関数にFLOOR関数(でなくても良いのですが)等で求めた計が0より微妙に小さくなるのを解消したいのですが、どう組めばよろしいですが? ではなく、質問内容上記に記載の関数で表示される時間が残業のときの計算をしたときで、答えが0:00となる場合(残業時間がない場合)に######となり、負の数になってしまいます。(セルの幅は問題ありません) 始業や休憩時間の表示の仕方の関数は =FLOOR(TIME(C6,E6,0),TIME(0,1,0))  ※C6・・・始業の”時”   E6・・・始業の分 としており、終業もこの関数で組むと残業時間はちゃんと0:00と表示されます。 ですが、この関数では24:00と入力したときに1:00となってしまい、正確な答えが 出てきません。 それを解消するにはどうしたら良いのかが、調べてみても分からなかったので、ご質問させていただきました。 再度のご回答よろしく御願い致します。

関連するQ&A

  • エクセルの関数をお教えください。

    エクセルの関数をお教えください。   1 2 3 あ A B C い D E F う G H I 上記のような、元表があり、 あ・1 → A う・3 → I  と、選ぶことが出来る関数を教えてください。 よろしくお願いいたします。

  • 勤怠表を作成してます。 実働時間を求めるのに計算式を作成しました。 =

    勤怠表を作成してます。 実働時間を求めるのに計算式を作成しました。 =IF(D5="","",IF(TEXT(E5-D5,"h:mm")>="8:00",FLOOR(TEXT(E5-D5-"1:00","h:mm"),"0:30")*24,FLOOR(TEXT(E5-D5,"h:mm"),"0:30")*24)) これだと、10:00時間(2ケタ)になった時、休憩の1:00時間を引いてきてくれません。どうすればよいか、何方かお教え下さい。宜しくお願いします。

  • エクセルの日付関数について

    特定の二つの日時の間で、何日と何時間差が有るかを土日を除いて、出力したいのですが、方法が解りません。(2011/6/17 11:45と2011/6/21 21:50だと、1:10:05と出力させたい) text関数だと{=TEXT(O3-O2,"d:h:mm")土日が含まれてしまうし、 NETWORKDAYS関数では{=NETWORKDAYS(O2,O3)}日にちを24Hとして扱うことが出来ません。 関数を二つ使うなど、やり方を知っている方がおりましたら是非教えてください。

  • エクセルの関数の読み取り方を教えてください。

    エクセルで夜間の出勤時間の管理をしております。 以前在籍しておられた方が作られたようなのですが 関数初心者の私では読解するのが困難なので お教えいただきたく投稿しました。 完成されてる表を掲載できればいいのですが・・・ 関数を掲載させていただきますので その関数の読み取り方をお教えいただければ幸甚です。 A列 日付 B列 始業時間 C列 終業時間 D列 計算用退勤表記 E列 拘束時間 F列 労働時間 G列 深夜労働時間 H列 残業時間 I列 普通勤務 J列 深夜勤務 K列 普通残業 L列 深夜残業 D列 =IF(COUNT(B5:C5)=0,0,C5+IF(C5<=B5,"24:00",0)) F列 =IF(E5-$B$37<0,0,E5-$B$37) G列 =IF(COUNT(B5:C5)=0,0,MAX(0,"5:00"-B5)-MAX(0,B5-"22:00")+MAX(0,D5-"22:00")-MAX(0,D5-"29:00")-$B$37) H列 =IF(F5-$B$38<0,0,F5-$B$38) I列 =IF(D5-B5-H5-G5-$B$37<0,0,D5-B5-H5-G5-$B$37) J列 =IF(I5=0,0,$B$38-I5) K列 =IF(F5-I5-J5-L5<=0,0,F5-I5-J5-L5) L列 =IF(G5-J5<=0,0,G5-J5) 基本休憩時間 2:00(=B37) 所定労働時間 8:00(=B38) 深夜終了時刻 5:00(=B39) 深夜開始時刻 22:00(=B40) 深夜労働時間 5:00(=B41) 当番休憩時間 1:00(=B42) 表の内容はこんな感じなのですが。 これでわかりますでしょうか? 基本の時間は20:00~7:00 です また、万一勤務時間が17:00~4:00の場合 どこの計算式がどのようにわかりますでしょうか? 文字の羅列になって申し訳ございませんが 宜しくお願い申し上げます。

  • ExcelのIF関数 20090605 →2009/06/05 09:00:00

    ExcelのIF関数でおしえていただきたいのですが、 20090605   という8桁の数字を 2009/06/05 09:00:00 このように、/(スラッシュ)と時間を入れた形で 表記させたいのですが、 どのような関数で出来ますでしょうか? ちなみに、 (1)20090605  に    =TEXT(TEXT(W2,"00!/00!/00")*1,"yyyy/mm/dd")    この数式で、    2009/06/05 に。 (2)2009/06/05 に    V2&" 09:00:00"    この数式で、    2009/06/05 09:00:00 に。 このように、2工程であれば出来ているのですが、 できれば1工程で出来る関数がありましたら、 おしえていただけないでしょうか? よろしくお願いします。

  • エクセルの時刻関係の関数について教えてください。

    エクセルの時刻関係の関数について教えてください。 深夜の1:00を25:00で表示する関数はありますか? 勤怠表をエクセルにて作成したのですが、上記の問題が解決できなくて 正確な残業時間がもとめられません。 現状は、時:分が三つのセルによって区切られており、それぞれ数字を 出社時刻・退社時刻の時・分を入力することで残業時間が自動計上され その月の合計時間がもとめられるように作りました。 上記のように数字を入力した際に、他のセルでTIME関数を使用して 時間を表示させることによって自動計上をしているので、いわゆる 大元な部分になってきます。 そこで、問題になったのが、深夜残業でも24:00以降がTIME関数だと表示されなくて 正確な残業時間がもとめられません。 一応、他の時間に関係する関数を調べたり、しましたが、よく分かりませんでした。 どんな些細なことでも結構ですので、ご回答をよろしくお願い致します。

  • Excel 2003のエクセル関数

    Excel 2003のエクセル関数について教えてください。 例えば以下の条件に合致している際にH3:H29のワークロード時間を合算するようにしたいのですが、どのような条件式になりますでしょうか?具体的な条件式を教えてください。 F3:29がPre I3:I29がNo よろしくお願いいたします。

  • excel FLOOR関数について

    excelのFLOOR関数について教えてください。 =FLOOR(A1,"00:15:00")/"1:00" とは、どういうことをしているのでしょうか。 時間に関することを扱っているセルの関数です。 マニュアルには値の切り捨て等が記載されていますが、"00:15:00"の意味がわかりません。これは文字列なのではないでしょうか。 FLOOR関数は文字列に対しての操作もするということですか。 不勉強ですみませんが、教えてください。お願いします。

  • FLOOR関数とTEXT関数を使っている数式で相談です。

    FLOOR関数とTEXT関数を使っている数式で相談です。 Excel2007を使用しています。 例えばA1に「2545」と入力されていて、    B1に「=FLOOR(TEXT(G15,"0!:00"),"0:15")」 と入力されています。 するとA1は「2545」で    B1は「1:45」と表示されるのですが、 A1が、「A1>=2515」の場合、 B1は「1:15」 違う場合は上記の例の通りに表示させたいのですがどう記述すればよいでしょうか。 ちなみにB1を利用して計算している所が他にあります。 ご教授お願いします。

  • Excel 2003のエクセル関数

    前回投稿させていただいたのですが、具体性に欠け、説明がしづらいため一旦クローズし添付ファイルとともに再投稿させていただきますので、よろしくお願いいたします。 '2013Oct'!J5、'2013Oct'!L5、'2013Nov'!J5、'2013Nov'!L5に入れる関数式について教えてください。 '2013Oct'!J5の条件は以下となります。 1. 'BP Info'!F3:F29が"Pre"であること 2. 'BP Info'!I3:I29が"No"であること 3. 上記条件を満たしている場合、'BP Info'!H3:H29の時間を合算する 現在の関数式は =SUMPRODUCT(('BP Info'!$I3:$I29="No")*('BP Info'!$F3:$F29="Post"))*('BP Info'!$H3:$H29) と入れていますが、正しいでしょうか? '2013Oct'!L5の条件は以下となります。 1. 'BP Info'!F3:F29が"Post"であること 2. 'BP Info'!I3:I29が"No"であること 3. 上記条件を満たしている場合、'BP Info'!H3:H29の時間を合算する 現在の関数式は =SUMPRODUCT(('BP Info'!$I3:$I29="No")*('BP Info'!$F3:$F29="Post"))*('BP Info'!$H3:$H29) と入れていますが、手動計算すると10.00となりこれが正しいのですが、5.00と表示されます。どこが間違っているのでしょうか? '2013Nov'!J5の条件は以下となります。 1. 'BP Info'!F30:F50が"Pre"であること 2. 'BP Info'!I30:I50が"No"であること 3. 上記条件を満たしている場合、'BP Info'!H30:H50の時間を合算する 現在の関数式は =SUMPRODUCT(('BP Info'!I30:I50="No")*('BP Info'!F30:F50="Pre"))*('BP Info'!H30:H50) と入れていますが、#VALUE!と表示されています。 正しい関数式は何になりますでしょうか? '2013Nov'!L5の条件は以下となります。 1. 'BP Info'!F30:F50が"Post"であること 2. 'BP Info'!I30:I50が"No"であること 3. 上記条件を満たしている場合、'BP Info'!H30:H50の時間を合算する 現在の関数式は =SUMPRODUCT(('BP Info'!I30:I50="No")*('BP Info'!F30:F50="Post"))*('BP Info'!H30:H50) と入れていますが、#VALUE!と表示されています。 正しい関数式は何になりますでしょうか? 以上です。何卒よろしくお願いいたします。

専門家に質問してみよう