電子書籍の厳選無料作品が豊富!

セルA1に残業時間、B1に賃金があります。
残業時間が50時間なら50×(B1÷160×1.25)、
残業時間が50時間超なら50×(B1÷160×1.25)+50h超×(B1÷160×1.3)
という計算結果を出したいのですが
IF関数でどのようにすればいいのでしょうか。
お分かりの方、宜しくお願いします。

A 回答 (6件)

>下記計算式でROUNDUPを入れるにはどうしたら(どこに入れるか)よいのかお分かりでしょうか。


就業規則または労働協約に規定されているはずですからそれに従ってください。
質問の内容からは時給=基準賃金(月額?)÷160のようですが時給で丸めても残業時間数と割増率で端数が出ます。
また、残業時間が1時間未満の端数をどのように扱うかも規定されていると思います。
従って、一般的には支給額算出の最終段階で端数を繰り上げることになるでしょう。
更に、繰り上げ対象の桁を規定しているかも知れませんので確認が必要でしょう。
これらのことはExcelの使い方の問題ではなく計算方法の問題ですから規定された事項に従って適宜使ってください。


=ROUNDUP(数式,桁数)
桁数は0のとき整数1位に丸めますので1円未満を繰り上げとなります。
桁数が-1のとき10円未満を繰り上げます。
「エクセルIF関数について」の回答画像5

この回答への補足

説明不足ですみません。
時給単価のみ端数切り上げです。
下記計算式でROUDUPをどう入れたらいいのか
お分かりでしたらお願いいます。

IF(D63>50,50*(E63/160*1.25)+(D63-50)*(E63/160*1.3),D63*(E63/160*1.25))

補足日時:2014/04/24 10:41
    • good
    • 0
この回答へのお礼

何度もありがとうございました。

お礼日時:2014/04/24 21:34

>時給単価のみ端数切り上げです。


「端数切り上げ」→「端数繰り上げ」
端数を取り去って目的の桁数にすることを「端数切捨て」と言います。
端数に補数を加えて繰り上げることを「端数繰り上げ」と言います。
「時給単価」→「時給」
時給は時間当たりの給料を指しますので単価の意味が含まれています。

時給とは割増前の時給のことですよね?
また、1円未満を繰り上げで良いでしょうか?
下記の部分を修正してください。
E63/160 → ROUNDUP(E63/160,0)
割増後の時給のとき
E63/160*1.25 → ROUNDUP(E63/160*1.25,0)
E63/160*1.25 → ROUNDUP(E63/160*1.3,0)

蛇足ですが割増前の時給を端数繰り上げのときは次の式で良いと思います。
=(MIN(D63,50)*1.25+MAX(D63-50,0)*1.3)*ROUNDUP(E63/160,0)
    • good
    • 0

>こちらの計算式でROUND関数を使い残業単価の端数切り上げ処理をしたいのですが


ROUND関数は四捨五入です。
「繰り上げ処理」のときはROUNDUP関数です。
使い方は以下のとおりです。
小数点以下に端数が有るとき大小に係わらず繰り上げるには次のようになります。
=ROUNDUP(計算式,0)

四捨五入のときはROUND関数に置き換えるだけで良いでしょう。

>お分かりになりますでしょうか?
「ROUND関数を使い残業単価の端数切り上げ」と言う意味が分かりません。

この回答への補足

失礼しました。ROUNDUPの間違いでした。
下記計算式でROUNDUPを入れるにはどうしたら
(どこに入れるか)よいのかお分かりでしょうか。
宜しくお願いします。

=IF(D63>50,50*(E63/160*1.25)+(D63-50)*(E63/160*1.3),D63*(E63/160*1.25))

補足日時:2014/04/23 09:28
    • good
    • 0

後半だけIFで有り無しした方が簡単と思います。


それから、A1の残業時間は簡単のため「時間単位の数値」で計算済みとします。

=A1*B1/160*1.25+IF(A1>50,(A1-50)*B1/160*0.05)



ちなみにMAX/MIN関数を使って
=A1*B1/160*1.25+MAX(0,(A1-50)*B1/160*0.05)
でもいいです。
    • good
    • 0

>IF関数でどのようにすればいいのでしょうか。


IF関数よりMAX関数とMIN関数の組み合わせの方が良いと思います。
=(MIN(A1,50)*1.25+MAX(A1-50,0)*1.3)*B1/160
尚、1円未満の端数が出た時の処理も必要です。
繰り上げのときはROUNDUP関数、四捨五入のときはROUND関数、切り捨てのときはROUNDDOWN関数で端数処理をすると良いでしょう。

この回答への補足

せっかくご提案していただいて申し訳ないのですが
下記計算式でできました。
こちらの計算式でROUND関数を使い残業単価の端数切り上げ処理をしたいのですが
お分かりになりますでしょうか?


=IF(残業h>50,50*(賃金/160*1.25)+(残業h-50)*(賃金/160*1.3),残業h*(賃金/160*1.25))

よろしくお願いします。

補足日時:2014/04/22 22:38
    • good
    • 0

 


=if(B1>50,(50/160*1.25+(B1-50)/160*1.3,B1/160*1.25)
 
    • good
    • 0

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