- ベストアンサー
エクセルの時間の計算
エクセルで稼働時間に対し、ポイントを付与したいのですが、 例えば、稼働時間2時間未満に関しては一律2ポイント それ以外は1分単位で切り上げ、下記のようにポイントを付与したいのですが、式がわかりません。IF関数で何度かトライしたのですが駄目でした。 どなたか、教えてください。なお、切り上げの時間換算は 『=INT(G1)+TIME(HOUR(G1)+(MINUTE(G1)>0),0,0)』でできました。 9:00~12:01=4:00→ポイント換算=4 9:00~12:00=3:00→ポイント換算=3 9:00~10:00=2:00→ポイント換算=2
- みんなの回答 (9)
- 専門家の回答
質問者が選んだベストアンサー
> 引数が少なすぎるとのメッセージが あ~roundupって第2引数省略出来ないや。何の根拠もなく省略出来 ると思い込んでた私。申し訳ない。 =max(2,roundup(C1*24,0))*sign(C1) と丸める桁を補って下さい。
その他の回答 (8)
- i-katu
- ベストアンサー率0% (0/3)
A1に入社時刻 B1に退社時刻 C1に=ROUNDUP((B1-A1+(A1>B1))*24,0) セルの書式で小数点以下の桁数を[0]する。 で如何ですか
お礼
ありがとうございました。 この方法だとわざわざB1-A1の列を作成しなくても 一度にできるのですね・・・ とても、勉強になりました。
- chie65536
- ベストアンサー率41% (2512/6032)
>まさしく、稼働時間が0:00のときは0ポイントと計上したいのですが =IF(G1>0,IF(G1<2/24,2,ROUNDUP(G1*24,0)),0) 空白の時も0ポイントになるので問題無し。
お礼
ありがとうございました。 できました!! 時間の計算、もっと勉強します!!
- mu2011
- ベストアンサー率38% (1910/4994)
NO1です。 空白の場合の一例です。 =IF(COUNTBLANK(A1:B1),"",IF(CEILING(B1-A1,"01:00")*24<=2,2,CEILING(B1-A1,"01:00")*24))
お礼
ありがとうございました。 できました!! こちらの説明不足にも関わらず、敏速なご返答ありがとうございました。
- grumpy_the_dwarf
- ベストアンサー率48% (1628/3337)
C1に時刻形式で稼働時間があるとします。 =max(2,roundup(C1*24)) で、どんな時間を入れても2未満になりません。もちろんroundup関 数の部分がhour(ceiling(C1,"1:00"))でもかまいません。 本当は稼働時間が0:00の時はさすがに0ポイントじゃないかと思いま すが、その場合は =max(2,roundup(C1*24))*sign(C1) とすればオッケー。もちろんこれは稼働時間が単純に引き算で0:00 になっている場合で、開始時刻がブランクなら稼働時間もブランク にして~なんてやっているとsign(C1)が#value!になるので、使えま せん。その時はsign関数の代わりにisnumber関数でいいでしょう。
お礼
回答、ありがとうございます。 ご指示どおりやってみたのですが、引数が少なすぎるとのメッセージが 出てしまいます。 まさしく、稼働時間が0:00のときは0ポイントと計上したいのですが ・・・
- zap35
- ベストアンサー率44% (1383/3079)
G1に時刻形式の値があるとします。1時間単位に切り上げる方法は以下でも可能です =CEILING(G1,"1:00:00") 2時間未満2ポイント、あとは切り上げた時間数がポイントになればよいなら、 =IF(HOUR(CEILING(G1,"1:00:00"))>2,HOUR(CEILING(G1,"1:00:00")),2) で良いと思います
お礼
ご回答、ご指導ありがとうございました。
- chie65536
- ベストアンサー率41% (2512/6032)
=IF(G1<2/24,2,ROUNDUP(G1*24,0)) 式の意味 「1時間は1/24」の数値なので、2/24未満、つまり2時間未満は2、それ以降、24倍すれば時間がそのままポイントになるので、2時間ピッタリは2、1分でも過ぎたら切り上げて3にする。3時間ピッタリは3、1分でも過ぎたら切り上げて4にする。以下同じ。
お礼
とてもわかりやすい、説明ありがとうございました。 時間の計算は初心者で、これからもっと勉強せねばと思います。
- xs200
- ベストアンサー率47% (559/1173)
そんなに難しい計算をしなくても。 A1=9:00 B1=12:00 C1=IF(ROUNDUP((B1-A1)*24,0)<2,2,ROUNDUP((B1-A1)*24,0))
お礼
ありがとうございました。 確かにできたのですがB1、A1がブランク時にもポイントが『2』と でてしまうのですね。 こちらの説明不足で大変恐縮なのですが、B1,A1がブランク時には ポイントは『0』かもしくはブランクにできる方法はおわかりになりますか?お手数おかけします。
- mu2011
- ベストアンサー率38% (1910/4994)
次の数式をお試し下さい。 A1が開始時刻、B1が終了時刻としています。 =IF(CEILING(B1-A1,"01:00")*24<=2,2,CEILING(B1-A1,"01:00")*24)
お礼
ありがとうございました。できました。 しかし、開始・終了時刻がブランクのときにもポイントが『2』と 出てしまうんですね・・・ こちらの説明不足で申し訳ないのですが、ブランク時にはポイントが 0かもしくはブランクにしたいのですが・・・
お礼
ありがとうございました!! できました!! こちらこそご丁寧にありがとうございました。