プロが教えるわが家の防犯対策術!

とある架空の会社があるとします。
この会社では月に200時間働くことがノルマとして定められているとします。
一日の労働時間は8時間として、ノルマを全部達成するまで休日は無いとします。
ただし残業は完全にナシとします。
さて、ある人が、今月に入って既に39時間分働いたとします。
この場合の推定残り労働日数は、200ー39÷8=20余り1、つまり、残り21日です。
ここまでは小学生の問題です。

さて、上記の推定残り労働日数をもとめるExcelの計算式はどうなりますか?
セルE10に、「残り労働時間」が入力されています。

私は、次のようにしてみました。

=IF((MOD(E10,8)>0), (QUOTIENT(E10,8)+1),(E10/8))

上記の様にしたのは、
「もし残り労働時間が8で割り切れなかったら(MOD(E10,8)>0)、
その商の値に1を加えたものを残り日数とし (QUOTIENT(E10,8)+1)、
そうでない場合は商の値をそのまま残り日数とする(E10/8)」
という考えがあったからです。

しかし、全然思ったような挙動になりません。なぜでしょうか。
どこが間違っているのでしょうか?
MOD関数もQUOTIENT関数も、引数がセル名と数字の組み合わせの時はちゃんと機能しない(?)

宜しくお願いいたします。

なお余談ですが、残り労働時間の表示されているE10は精確に申しますと、
次のように入力されています。
=IF(("200:00"-SUM(D22:D997))>0, ("200:00"-SUM(D22:D997)),"達成")
セルDの列には、一日一マスずつ、労働時間を入力していくわけです。
そうするとE10には自動的に残り労働時間が算出されます
200時間に達した時点でE10には「達成」という文字が出ます。

A 回答 (3件)

単純に


=ROUNDUP(E10/8,0)
で良いのではないでしょうか…。
    • good
    • 0

残日数なのか 残時間数なのか、


質問が 揺らいでいて、
分かりませんが。


残時間数、
=E10

残日数、
=QUOTIENT(E10,8)+SIGN(MOD(E10,8))

又は、
=INT(E10/8)+SIGN(MOD(E10,8))


当たり前に、

IF構文なんて 不要で、
此なら パイプライン処理を、
破棄させませんよ。


尚、

=IF((MOD(E10,8)>0),(QUOTIENT(E10,8)+1),(E10/8))
此で どう、
駄目なのか、

手元では 添付映像通り、
正常動作を しているように、
思えますので 分かりませんが。


兎に角、

お解りの通り 残日数は、
8で 割り切れなくとも、
何時間 残ろうとも、


少なくとも、

其れは 8時間未満なので、
一日 余計に、
日数が 足されれば、
其れで 購えます。


一方、

MOD構文は、
割り切れれば 0が、
割り切れなければ 自然数が、
返されますが。


エクセルには、

正の数を 全て、
1に 変える、
関数、
SIGN構文が あります。


連れて、

SIGN(MOD(E10,8))でも、
割り切れる場合は 0を、
割り切れない場合は 1を、
返します。


詰まり、

求めの ままの、
補正が、
此の 構文だけで、
叶う 訳です。
「推定残り日数を算出するExcelの関数式」の回答画像2
    • good
    • 0

こんにちは!



>200ー39÷8=20余り1

>(200ー39)÷8=20余り1
ですよね。

8時間で割り切れない場合は切り上げ!というコトでしょうかね?

そうであれば
=IF(COUNT(E10),ROUNDUP(E10/"8:00",0),"")

としたらどうなりますか?m(_ _)m
    • good
    • 0

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

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A

人気Q&Aランキング