プロが教えるわが家の防犯対策術!

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

給与の関係で勤怠表をエクセルで作成しています。

=IF(G7<=6,TEXT((G7&H7&I7)+"24:00","[h]:mm"),TEXT(G7&H7&I7,"[h]:mm")))

※G7・・・終業時間の”時”
 H7・・・”:”
 I7・・・終業時間の”分”

上記の関数を組むことによって終業時間を24:00と入力すればそのままの時間で表示できるようになりました。(こちらのサイトにて教えていただきました)

ただ、この関数にFLOOR関数(でなくても良いのですが)等で求めた計が0より微妙に小さくなるのを解消したいのですが、どう組めばよろしいですが?

ネット等で調べたり、上記の関数に&を付けて組もうとしましたが、上手くできませんでした。

どんな些細なことでも構いませんのでよろしく御願いします

A 回答 (4件)

最初の数式は私なら=time(G7,I7,0)+(G7<=6)で済ませるか、最初っ


から終業時刻の列に[hh]:mmの書式を設定してセルを分けずに24:00
とか25:30と入力するところですが、そこはまぁいいでしょう。理解
できないのは「FLOOR関数(でなくても良いのですが)等で求めた
計」というのが何をしているのかさっぱり判らないことです。floor
関数は何かを合計したりしません。

とりあえずfloorを使って何かやってる式を補足して欲しいところで
すが、その前に、text関数で文字列にした値を数値と比較するよう
な条件式を書いてないか、文字列を結合する演算子「&」と数値の加
算を混同してないか、確認して下さい。また、時刻のように内部が
循環小数になって桁落ちを生ずる宿命の値にfloorやceilingを使う
場合は、1秒加算してからfloor、1秒減算してからceilingというの
がセオリーになります。考慮してみて下さい。
    • good
    • 0
この回答へのお礼

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

ありがとうございました。

お礼日時:2010/02/04 09:45

回答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 とします。
    • good
    • 0
この回答へのお礼

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

お礼日時:2010/02/04 09:48

例えば


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

この回答への補足

ご回答ありがとうございます。

少し間違えていました。
<この関数にFLOOR関数(でなくても良いのですが)等で求めた計が0より微妙に小さくなるのを解消したいのですが、どう組めばよろしいですが?

ではなく、質問内容上記に記載の関数で表示される時間が残業のときの計算をしたときで、答えが0:00となる場合(残業時間がない場合)に######となり、負の数になってしまいます。(セルの幅は問題ありません)

始業や休憩時間の表示の仕方の関数は
=FLOOR(TIME(C6,E6,0),TIME(0,1,0))
 ※C6・・・始業の”時”
  E6・・・始業の分

としており、終業もこの関数で組むと残業時間はちゃんと0:00と表示されます。
ですが、この関数では24:00と入力したときに1:00となってしまい、正確な答えが
出てきません。
それを解消するにはどうしたら良いのかが、調べてみても分からなかったので、ご質問させていただきました。

再度のご回答よろしく御願い致します。

補足日時:2010/02/03 12:32
    • good
    • 0

こんにちは


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

 そうすると回答が付きやすいと思います(^^)v

この回答への補足

ご回答ありがとうございます。

少し間違えていました。
<この関数にFLOOR関数(でなくても良いのですが)等で求めた計が0より微妙に小さくなるのを解消したいのですが、どう組めばよろしいですが?

ではなく、質問内容上記に記載の関数で表示される時間が残業のときの計算をしたときで、答えが0:00となる場合(残業時間がない場合)に######となり、負の数になってしまいます。(セルの幅は問題ありません)

始業や休憩時間の表示の仕方の関数は
=FLOOR(TIME(C6,E6,0),TIME(0,1,0))
 ※C6・・・始業の”時”
  E6・・・始業の分

としており、終業もこの関数で組むと残業時間はちゃんと0:00と表示されます。
ですが、この関数では24:00と入力したときに1:00となってしまい、正確な答えが
出てきません。
それを解消するにはどうしたら良いのかが、調べてみても分からなかったので、ご質問させていただきました。

再度のご回答よろしく御願い致します。

補足日時:2010/02/03 12:30
    • good
    • 0
この回答へのお礼

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

お礼日時:2010/02/04 09:51

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!