[[20171002010335]] 『ゼロが表示される』(UE) ページの最後に飛ぶ

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

 

『ゼロが表示される』(UE)

勤務時間が8時間を超える場合のみ超過時間が表示される式で
8時間を超えていないのに「0:00」が表示される時間があり。
「4:00」「13:00」「14:00」「16:00」「17:00」「19:00」「20:00」「22:00」「23:00」スタートの時だけ
「0:00」が表示されてしまいます。

ゼロを表示するのチェックを外しても表示されてしまいます。
直接「0:00」と入力した場合は表示されません。

入力している計算式はこれです。
=IF(OR(L10>0,P10>L10),MAX(P10-L10-"8:00",0),"")

上記の時間でも「0:00」を表示しないようにすることは出来ないのでしょうか?

< 使用 Excel:Excel2010、使用 OS:Windows7 >


 l10やp10のセルには、どんな値もしくは式が入ってるんですか?

 23:00はどのセルに入ってるんですか?

 提示の情報だけでは全体の流れが全く分かりません。
 不具合のデータを入力したセルの位置関係が分かるレイアウトと
 他にも入ってるであろう式を提示して下さい。
 最低でもl10とp10に入ってる式は提示して下さい。

(sy) 2017/10/02(月) 08:05


 syさん

 横から済みません。

 これは小数演算誤差が原因でホンの僅か0より大きくなっている、
 と言う話だと思います。

  へ変更(手入力と同じ精度の時間データにする)
  ↓
 =IF(OR(L10>0,P10>L10),TEXT(MAX(P10-L10-"8:00",0),"[h]:m")*1,"")

(半平太) 2017/10/02(月) 08:17


 半平太さん

 >これは小数演算誤差が原因でホンの僅か0より大きくなっている、
 >と言う話だと思います。

 私もそうかなとは思ったんですけど、レイアウトも分からないので、
 もしかしたらこのセル以外での演算誤差や、違う理由の可能性もあるかな?
 と思ったんですけど、考え過ぎですかね?

(sy) 2017/10/02(月) 19:42


 >もしかしたらこのセル以外での演算誤差や、違う理由の可能性もあるかな?

 このセル以外での誤差・・・あり得ますねぇ。。

 ただ、こう言う問題は、最終出口で処置すれば、一回の手当(且つテスト無し)で済みますが、
 計算途中での補正でも正常化するかも知れないと考えると、
 テストしなければならないケースが増えて面倒になると思うのですが・・

 ※最悪、しらみつぶしのテストをする羽目になります。
  途中補正方式で問題をクリアする事が出来ると理論的に言えるなら
  テスト無しでいいのでしょうが・・(多分、言えないですよね?)

(半平太) 2017/10/02(月) 20:12


 半平太さんの「最終出口で処置」は全くその通りだと思うんですが、
 私が疑問に思ったのは以下の条件判断の部分なんです。

 >OR(L10>0,P10>L10)

 0の筈が0にならないと言う質問で、演算誤差が気になるのは、P10-L10が8時間ちょうどになる時だけですよね。
 8時間ちょうどになる時は、P10>L10は必ず成立するので、何か別の要素が絡んでるのかなと思いました。

 条件式が
 P10-L10-"8:00:30">0
 とかだったら特に疑問に思わなかったんですけどね。

(sy) 2017/10/02(月) 21:24


 外からスマホで打ってたから、よく考えもしないで打ってしまってました。

 >このセル以外での演算誤差や、
 この文面はなんか思いついてしまったので書いたけど、

 >最終出口で処置」は全くその通りだと思うんですが、
 私も普通にそう思うので何で上で書いたのか分かりませんね。
 何かレス間で辻褄の合わない、すごい間抜けな文面になってました。

(sy) 2017/10/02(月) 21:37


syさん
半平太さん

ありがとうございます。
お返事が遅くなってしまい申し訳ございません。

syさん

23:00ですが、セルの場所は関係なく、23:00スタートであれば0:00が表示されてしまいます。
L列に始業時間、P列に終業時間を入力しています。
L列には計算式を入れず、P列に
=IF(L10="","",L10+TIME(8,0,0))
の式を入れています。

就業時間が8時間未満の場合もあるのですが、
書類上は最低でも8時間の勤務となるため超過したとき以外は
ちょうど8時間になるようにしています。

    L       P     S
 10  始業時間 〜 終業時間  超過時間
 11
 12
 ・
 ・
 ・
 ・

というレイアウトになっています。
(これで分かりますでしょうか…?)

半平太さん

半平太さんにご提示いただいた
=IF(OR(L10>0,P10>L10),TEXT(MAX(P10-L10-"8:00",0),"[h]:m")*1,"")
の式を入れた所、0:00が表示されなくなりました。

お二方ともありがとうございました。

(UE) 2017/10/11(水) 17:53


コメント返信:

[ 一覧(最新更新順) ]


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