- ベストアンサー
エクセルで時給計算が簡単に!複雑な関数を解説
- エクセルで時給計算をする際に関数が複雑でわかりにくいことがあります。本記事では、時給単価の設定と勤務時間を考慮した計算式を解説します。
- エクセルの関数を使って時給計算をする方法を詳しく教えてください。時給単価は時間帯によって異なり、具体的な計算式が知りたいです。
- エクセルで時給計算をする際に注意すべきポイントや具体的な計算式について解説します。関数が複雑でわかりづらい場合でも、この記事を参考にすれば簡単に時給計算ができます。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは 時間帯を1000円と850円で区別するよりも、朝(C)、昼(D)、夜(E)、と分けるとわかりやすくなると思います。 「朝」は、 出勤時刻が9:00過ぎなら何もしない。 9:00前なら「9:00」と「退勤時刻」を比較して小さい方から、「7:00」と「出勤時刻」を比較して大きい方を差し引く。 =IF(A1>="9:00"*1,"",MIN("9:00",B1)-MAX("7:00",A1)) このままでは、「出勤時刻」と「退勤時刻」が空白でも計算してしまうので、IF(COUNT(A1:B1)<2,"", )を追加。(この部分は昼と夜にも同様に追加) 結果 =IF(COUNT(A1:B1)<2,"",IF(A1>="9:00"*1,"",MIN("9:00",B1)-MAX("7:00",A1))) 「昼」は、 出勤時刻が17:00過ぎ、または退勤時刻が9:00前なら何もしない。 上記以外なら、「17:00」と「退勤時刻」を比較して小さい方から、「開始時刻」と「9:00」を比較して大きい方を差し引く。 =IF(COUNT(A1:B1)<2,"",IF(OR(A1>="17:00"*1,B1<="9:00"*1),"",MIN("17:00",B1)-MAX("9:00",A1))) 「夜」は、 退勤時刻が17:00前なら何もしない。 17:00過ぎなら「20:00」と「退勤時刻」を比較して小さい方から、「17:00」と「出勤時刻」を比較して大きい方を差し引く。 =IF(COUNT(A1:B1)<2,"",IF(B1<="17:00"*1,"",MIN("20:00",B1)-MAX("17:00",A1))) 後は、朝と夜を足して時給1000円の合計を求める。 一応、入力時刻が時間外(6:45等)になっても対応しておりますが、丸め処理(10分未満切り捨てなど)はしておりません。
その他の回答 (2)
- ToOrisugaru
- ベストアンサー率28% (80/280)
セルI1に9:00と入力し、名前定義で、「通常開始」と定義します。 セルJ1に17:00と入力し、名前定義で、「通常終了」と定義します。 セルG1に下記関数を入力します。 =IF(A1<=通常開始,通常開始-A1,0) セルH1に下記関数を入力します。 =IF(B1>=通常終了,B1-通常終了,0) 結果 セルC1に以下の関数を入力します。 =G1+H1 セルD1に以下の関数を入力します。 =B1-A1-C1
補足
ご回答ありがとうございます。アドバイスの通りの式を使ったらうまくできました! ありがとうございます。 ただ、7:00~20:00などの長い勤務の場合ではうまくいきました が、7:00~8:00や7:00~7:30などの短い勤務の場合、G1は常に2:00 となります。 正しくはG1に1:00か0:30となるかと思うのですが、これを改善するにはどうすればよろしいでしょうか? 宜しくお願い致します。
- nine999
- ベストアンサー率44% (512/1140)
1つの枠でやろうとすると、それだけ関数は複雑になります。そういう時は手順を分けて考えます。 時間帯が3つに分かれているので、その点はやりやすいと思います。 あと、9:00、17:00は事前にどこかのセルに入力して置いた方が参照しやすくて良いです。(内部では時間ではなく日数で管理しているため) 時給の数字も参照できるようにセルに入れておくと、そこを変更するだけで全ての計算を変更できます。 C1=if(A1<[9:00],([9:00]-a1)*24,0)+if(B1>[17:00],(B1-[17:00])*24,0) D1=E1-C1 [9:00]と[17:00]は、参照先のセル番号です。 E1はB1-A1じゃなくて、(B1-A1)*24にして置く必要があります。書式も「時刻」ではなく「標準」にすること。
お礼
関数はやはり自分には難しかったですが、「結果」だけコピペしたらうまくできました! これで時給計算の作業が軽減できると思うとうれしくなります。 本当にありがとうございました