アプリ版:「スタンプのみでお礼する」機能のリリースについて

土曜日の残業代を計算しています。
8:00~14:00以外は残業代として計算したいです。
その時間内であれば自由な出勤なので、9:00に出勤したから1:00マイナスにはしません。
同じように12:00に退社してもマイナス2:00はなく、あくまでも8:00~14:00以外の残業時間だけの計算です。

=IF(C25=0,"",IF(B25="土",IF(("8:00"-C25)<0,"","8:00"-C25)+(IF(AND(D25-"14:00")<0,"",D25-"14:00"))))

現在は上の式が入っています。
6日は思いどおりの結果が出ますが、13日は8:00を超えているのでエラー。

それと、退社時間を13:00にすると「########」、負の結果になります。
それを避けるために <0”” にしているのですが、それも式が間違っているのか…。

詳しい方、助けてください!
どうぞ宜しくお願い致します。

追伸:平日の場合も式の問題があるので、今後質問するかもしれません。

「勤務表ですが、思うように出来ません。」の質問画像

A 回答 (3件)

こんにちは



説明がないのでわかりませんけれど・・・
C列が出勤時刻、D列が退勤時刻と解釈しました。
もしも、F列が「時間内勤務時間」ならば、簡単に
 G列 = D列 - C列 - F列
で求められるはずですが、そういう内容ではないみたいですね。

よくわからないので、C、D列だけから直接計算することにして・・
曜日の判定や時刻が無記入などの判定は別にして、8:00~14:00以外の時間を求めたければ、
 =D25-C25-MAX(0,MIN(D25,"14:00")-MAX(C25,"8:00"))
で計算できると思います。

※ 上式は C25 < D25 であることを前提に計算しています。
(前提条件を満たしていないと、エラー値になる可能性があります)
    • good
    • 0
この回答へのお礼

ご回答をいただき大変有難うございます。
質問文がめちゃくちゃだったこと、恥ずかしい、でもfujillinさんが推測した通りの列です。
C列:出勤時間
D列:退社時間
E列:休憩時間
F列:勤務時間
G列:残業時間
H列:深夜残業

=IF(C25=0,"",IF(B25="土",D25-C25-MAX(0,MIN(D25,"14:00")-MAX(C25,"8:00")),D25-C25-MAX(0,MIN(D25,"17:00")-MAX(C25,"8:30"))))

教えていただいた回答を参考に、平日も追加したところ1週間全ての時間が思い通りの計算になりました。

曖昧な理由かもしれませんが、一番短い式だったのでfujillinさんをベストアンサーとさせていただきます。
皆さん、大変有難うございました。

お礼日時:2023/05/20 15:17

G25へ


=IF(C25=0,"",IF(B25="土",IF(AND(C25<TIMEVALUE("8:00"),D25>TIMEVALUE("8:00")),TIMEVALUE("8:00")-C25,0)+IF(AND(D25>TIMEVALUE("14:00"),C25<TIMEVALUE("14:00")),D25-TIMEVALUE("14:00"),0),"平日用"))

と入力してください。
平日の場合の計算式が不明なので”平日用”としておきました。
    • good
    • 0
この回答へのお礼

ご回答をいただき有難うございます。

tatsumaru77さんに教えていただいた計算式をコピペしたところ、思い通りの時間が計算されました!
TIMEVALUE関数を使ったことが無かったので、とても勉強になりました。

ここ数日の辛かった気持ちが晴れたこと、平日用まで考えていただけたこと、本当に有難うございました。

お礼日時:2023/05/20 15:16

>13日は8:00を超えているのでエラー。


IF(("8:00"-C25)<0,"","8:00"-C25)
””とすると、0(ゼロ)ではなく、空の文字列になるのでその後の足し算ができないのでは?
IF(("8:00"-C25)<0,0,"8:00"-C25)
とすると解決するかも?
>退社時間を13:00にすると「########」、負の結果になります。
(IF(AND(D25-"14:00")<0,"",D25-"14:00"))))
ANDいる?どのような条件を入れたいのか不明ですが、引数が2つ必要ですよ。
あとは前述と同じ
    • good
    • 0
この回答へのお礼

すぐにご回答をいただきありがとうございます。
<0,""としていたところを<0,0に変更したところ8:00以降の出勤と8:00前の出勤が正しく計算されました。
嬉しい!
有難うございます。

ただ、14:00前の退社にすると「########」となります。

ご指摘のように私は引数がイマイチ理解できていません、もっと勉強が必要です。
アドバイスをいただき大変有難うございました。

お礼日時:2023/05/20 15:15

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