解決済み
エクセル関数で残業時間だけを抽出したいのですが、方法が分かりません…初心者で慣れないのですが エクセル2010で従業員の給料計算をしています。 だいたい20:00~0:00までが通常勤務時間になります。 0:00を超えれば残業になるのですが 残業時間のだしかたが分かりません。 例えば A=出勤時間 B=退勤時間 C=出勤時間(15分丸め切り上げ) D=退勤時間(15分丸め切り捨て) E=総労働時間 F=残業合計時間 A、 B、 C、 D、 E、 F、 1、 19:57、 1:45、 20:00、 1:45、 5:45、 1:45 2、 20:05、 23:12、 20:15、 23:00、 23:00、 0 セルB1のように0:00を超えて1時間45分残業した事になるのでF1に1:45と表示できるようにしたいです。 あと、B1のように23:12など0:00時を超えていない場合にはF1に0と表示し、オートフィルを使いデータが増えても 大丈夫なようにできれば完璧です。 いろいろ試してみたのですが、何せ初心者なものでうまくいきません。 教えていただけたら幸いです。 宜しくお願いいたします。
皆さん、すごく分かりやすい回答有難うございます! 0:00を回ってからの残業時間は皆さんのおかげで、導き出すことができたのですが 残業開始時間が23:30~になる場合はどうしたら良いでしょうか? セルB1が23:34、D1が23:30になった場合のF1の求め方を教えていただけないでしょうか? 何度もすみません。 宜しくお願いいたします.
1,740閲覧
補足より: 規則はどうなっているのでしょうか? 0:00を超える場合と23:30を超える場合があるのですか? どういう場合にどちらの規則を適用するのか明確でないので、回答できないのですが 23:30を越える場合は =IF(D2<TIME(23,30,0),0,D2-TIME(23,30,0)) となります。 この場合 >セルB1が23:34、D1が23:30になった場合のF1の求め方・・ この場合は23:30を超えていないので、残業なしになりますよ。 なんか規則が曖昧に思えるのですが。 もう一度きちんと場合分けをして、再質問した方がいいと思います。 ----------------------------------------------- 例の通り表(下図)を作ってみました。 F2の式 =IF(D2<TIME(12,0,0),D2,0) データ分下へオートフィルします。
エクセル使いです。 前提として、A列~F列の書式設定が「ユーザー設定:h:mm」となっている必要があります。 (違った場合、結果が正しく表示されない可能性があります。) 次にF1に「=IF(HOUR(D1)<8,D1,0)」と入力します。これで完成です。 簡単に説明させていただきますと、 もし【IF】D1(退勤時間)が8時以下【HOUR(D1)<8】の場合、退勤時間(D1の値)をそのまま入力【D1】し、それ以外は0(書式設定により「0:00」)と表示します。 今回の場合、式が簡潔になるように「0時を超えて何時間経ったか」を基に計算しています。 もし退勤時間が23:00だった場合、「0時を超えて23時間経った」ので、残業とは判断しません。 あり得ないと思いますが、多少幅を持たせて「退勤が7時45分」までは残業としています。(「<8」の部分です。) 式に絶対参照を使用しておりませんので、そのままオートフィルで下にドラッグしていけば、「D1」の部分が「D2」「D3」…と自動的に増えていくはずです。 少しは参考になりましたでしょうか? 補足を受けて------------------ ちょっと説明が面倒な式になってしまいましたが… セルF1に「=IF(OR(D1<C1,D1>TIME(23,30,0)),D1+TIME(0,30,0),0)」と入力してみてください。 正しく表示されましたか? 「0時越えかどうか」「23:30越えかどうか」を判断し、どちらかがTRUE(該当する)であった場合は30分足す【+TIME(0,30,0)】としてみました。 こちらでいかがでしょうか?
< 質問に関する求人 >
残業(東京都)この条件の求人をもっと見る
求人の検索結果を見る
< いつもと違うしごとも見てみませんか? >
覆面調査に関する求人(東京都)この条件の求人をもっと見る