- ベストアンサー
エクセルで四捨五入に近い関数
エクセルで詳しくない関数を教えてください。 決まったセルに0~29の数字が入った場合は0に、 30~59が入った場合は0.5を表示させるにはどうしたらよいでしょうか? あまり詳しくないので教えて頂けませんか? よろしくお願いします。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
ご質問の内容は例えば勤務時間から時給1000円としたときのその日の賃金を算出したいということにあるようですね。 それならば勤務時間で分の部分だけを取り出して処理をするといったことではなく、次のような処理をするのが一般的でしょう。 例えばB1セルに出勤時間、C1セルに退勤時間、D1セルに勤務時間、E1セルに時給1000円としたときの賃金としましたら、 D1セルには次の式を入力してセルの表示形式は時刻にします。 =IF(COUNT(B1:C1)<>2,"",C1-B1) E1セルには次の式を入力してセルの表示形式は標準にします。 =IF(D1="","",FLOOR(D1,"0:30")*24*1000) FLOOR関数によってD1セルの値が30分単位で切り捨てられた時間が求められます。その値はシリアル値で日単位になっていますので24を掛けることで時間数を求め、それに時給の1000円を掛けた式となっています。 上記のようにすることで分だけを表示させて処理をした後で時給の計算に使用するといった手間は必要なくなります。ご参考までに
その他の回答 (4)
=FLOOR(A1/60,0.5)
お礼
ありがとうございます。 FLOOR関数使ってみます。
- keithin
- ベストアンサー率66% (5278/7941)
すなおに =IF(A1<30,0,0.5) でいいです。
- bin-chan
- ベストアンサー率33% (1403/4213)
60以上の時にはどうすれば良いですか? もしかして「残業時間計算で分単位の端数を処理したい」などの背景がありますか?
補足
ご回答ありがとうございます。 まさに、時給計算の数式です。 現在は分単位で計算出来る様にしたのですが、29分まではカット。 30分以上59分までは0.5計算をしたいと思っています。
- tom04
- ベストアンサー率49% (2537/5117)
こんばんは! IF関数だけでもできますが、敢えて他の方法の一例です。 A1セルに数値を入力するとします。 表示したいセルに =INT(A1/30)*0.5 (エラー処理はしていません) ではどうでしょうか? ※ 60を超える数値でも反応してしまいます。 ※ 59.9のような場合でも0.5と表示されます。 他に良い方法があればごめんなさいね。m(_ _)m
お礼
ありがとうございます。 FLOOR関数使ってみます!
お礼
端的な説明ありがとうございました。 一発で目的の時給計算が出来て助かりました。