[[20160209004602]] 『勤怠表を作っていると定時と残業時間の差が0になax(kenta) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『勤怠表を作っていると定時と残業時間の差が0になると-1.598...E-14と表示されます。』(kenta)

こちらの掲示板に初めて質問します。
不足している情報がありましたら、随時付け加えていきたいと思います。

飲食店の勤怠表を作っています。
定時は役職によって変わります。
出勤時間と、退勤時間を入力して労働時間と残業時間を算出したいと考えています。
定時、労働時間、残業時間は10進法で表したいです。
1は問題ないのですが、2の残業時間が0のはずが-1.68754E-14になってしまいます。
なにが原因なのでしょうか。

      A      B        C            D             E              F
   定時 名前 出勤    退勤   労働時間 残業時間
1 8 店長 10:00 18:00       8           0
2 7 主任  9:00  16:00       7 -1.68754E-14

        A        B        C          D                E                 F
  定時 名前  出勤   退勤       労働時間      残業時間
1 8 店長  10:00 18:00 =(D1-C1)*24 =E1-A1
2 7 主任   9:00  16:00 =(D1-C1)*24 =E1-A1

よろしくお願い致します。

< 使用 アプリ:Excel for mac 2011、使用 OS:MacOSX >


2進数誤差のように思いますが、WindowsのExcel2010では再現せず、残業0になりますねぇ。
24倍して時間を整数化するのを止めて、A列もE列もセルの書式設定で時間表示([h])にしてみると、どうなるでしょう?
(???) 2016/02/09(火) 17:43

???さん
早速のお返事ありがとうございます。

[h]にしたところ
  A  E
1 192 0
2 168 -0

になってしまいました。

また、C列D列はプルダウンを使用しているのですが、
それを解除してみると1行 2行 共に正常値に戻りました。
ただ、プルダウンで作ってくれと言われているので、このままだと。。。
(kenta) 2016/02/09(火) 17:52


 プルダウンというのは入力規則の「リスト」のこと?

 そのリストの時刻データはどうやって作りましたか?
 オートフィルとか?

 何にしても原因は「小数演算誤差」でしょうね。
 オートフィルでも誤差が生じます。

 E1 =TEXT(D1-C1,"h:mm")*24

 表示形式「標準」、これでどうなりますか?

 リストの元データも、数が少ないのなら、1個1個手入力しておいた方がいいかも。

 ところで、F1は

 =MAX(0,E1-A1)

 の方がいいのでは?
(笑) 2016/02/09(火) 18:56

(笑)さん

早速のお返事ありがとうございます。
時刻データは他のセルにオートフィルで作りました。

小数演算誤差が原因だったようで、数式を入れたら解消できました。

こういう掲示板を使うのは初めてだったので、不安でしたがこんなにも素早く的確に返信を頂けるとは思わなかったです。
ありがとうございます。
また、ご協力お願い致します。

(kenta) 2016/02/09(火) 22:00


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.