編集中に送信してしまいました。申し訳ありません。
勤怠表を作成していて、FLOOP関数で残業時間を算出させているところで、動作がおかしな日が二箇所出ました。
記述している関数は以下のものです。
=IF(C40="";"";IF(M40=TRUE();IF(N40=TRUE();$A$4-CEILING(C40;"0:30";1)-$C$1-$C$2-$C$3;FLOOR(D40;"0:30";1)-CEILING(C40;"0:30";1)-$C$1-$C$2-$C$3);IF(O40=TRUE();IF(N40=TRUE();$A$4-$B$2-IF(D40>=$B$3;$C$3;"");FLOOR(D40-$F$3-$C$2-IF(D40>=$B$3;$C$3;"");"0:30";1));"")))
おかしな動作をしているのは以下の部分です。
FLOOR(D40-$F$3-$C$2-IF(D40>=$B$3;$C$3;"");"0:30";1))
回避する方法があれば、ご教授ください。
--- 以下、シートの情報 -------------------------------------------------------------------------------
おかしな動作をしている部分は以下の日の「通常残業」の項目のところです。両日ともに残業時間が30分不足しています。
日付 曜日 始業 終業 休憩 時間内 通常残業 深夜残業
15 水 8:30 20:30 1:30 8:00 2:00
27 月 8:30 22:00 1:30 8:00 3:30
ほか日は期待通りの値を返しています。
日付 曜日 始業 終業 休憩 時間内 通常残業 深夜残業
1 水 13:00 18:30 0:10 4:30 0:30
2 木 8:30 20:15 1:30 8:00 2:00
3 金 8:30 21:00 1:30 8:00 3:00
:
16 木 8:30 21:30 1:30 8:00 3:30
17 金 8:30 23:00 2:00 8:00 4:00 0:30
18 土 8:30 28:30 2:30 12:00 5:30
[記述している関数について]
C1:昼休み時間 60分
C2:休憩時間 10分
C3:休憩時間 20分
A4:通常残業時間帯終了時刻 22:00
B2:通常残業時間帯開始時刻 17:40
B3:休憩時間終了時刻 20:00
F3:定時終業時刻 17:30
C40:始業時刻
D40:終業時刻
M40:休日(true/false)
N40:深夜残業(true/false)
O40:通常残業(true/false)
--- 以上、シートの情報 -------------------------------------------------------------------------------
よろしくお願いします。
FLOOP関数の動作について
Re: FLOOP関数の動作について
おかしいと思われる箇所を文字単位で選択して反転させてからF9を押下してみてください
ツールチップに途中結果が出ます♪
取り消しはESCで
ツールチップに途中結果が出ます♪
取り消しはESCで
OpenOffice.org 3.2.0.10 OOO320m12 / Linux version 2.6.32-25-generic (buildd@rothera) (gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5)
Re: FLOOP関数の動作について
アドバイスありがとうございます。
中を見てみると、
FLOOR(D40-$F$3-$C$2-IF(D40>=$B$3;$C$3;"");"0:30";1))
の「 D40-$F$3-$C$2-IF(D40>=$B$3;$C$3;"") 」は期待する値(4:00)となっていました。
FLOOR(;"0:30";1))でくくると「3:30」と30分削られてます。
FLOOPで時間を扱うには、別の関数を挟む必要があるのでしょうか?
中を見てみると、
FLOOR(D40-$F$3-$C$2-IF(D40>=$B$3;$C$3;"");"0:30";1))
の「 D40-$F$3-$C$2-IF(D40>=$B$3;$C$3;"") 」は期待する値(4:00)となっていました。
FLOOR(;"0:30";1))でくくると「3:30」と30分削られてます。
FLOOPで時間を扱うには、別の関数を挟む必要があるのでしょうか?
OpenOffice:3.2.1
WinVista
WinVista
Re: FLOOP関数の動作について
=FLOOR(TIME(3,59.99999,0)+TIME(0,0,1),TIME(0,30,0),1)
誤差です。
実体はシリアル値なので。
一秒追加してください。
素直に丸める方がいいかも^^;
=FLOOR(MROUND(TIME(3,59.99999,0), TIME(0,1,0)),TIME(0,30,0),1)
誤差です。
実体はシリアル値なので。
一秒追加してください。
素直に丸める方がいいかも^^;
=FLOOR(MROUND(TIME(3,59.99999,0), TIME(0,1,0)),TIME(0,30,0),1)
OpenOffice.org 3.2.0.10 OOO320m12 / Linux version 2.6.32-25-generic (buildd@rothera) (gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5)
Re: FLOOP関数の動作について
アドバイスありがとうございます。
=FLOOR(MROUND(TIME(3,59.99999,0), TIME(0,1,0)),TIME(0,30,0),1)
で、うまくいきました。
ありがとうございました。
=FLOOR(MROUND(TIME(3,59.99999,0), TIME(0,1,0)),TIME(0,30,0),1)
で、うまくいきました。
ありがとうございました。
OpenOffice:3.2.1
WinVista
WinVista