• ベストアンサー

FLOOR関数について

FLOOR関数を使って勤務時間を計算しているのですが うまく出来ません。 条件) 10分単位で切り捨てする。 例1) 出社時間:20:00 退社時間:22:00 FLOOR("22:00"-"20:00","0:10") 例2) 出社時間:21:00 退社時間:22:00 FLOOR("22:00"-"21:00","0:10") 例3) 出社時間:21:00 退社時間:22:05 FLOOR("22:05"-"21:00","0:10") 出力結果 例1)2時間 例2)50分 例3)1時間 となります。 いろんな時間で試してみましたが、手計算では1時間になる時だけ 50分と出力されます。 例2)の場合、1時間と出力しないのはなぜでしょうか? [補足] 実際はセルを参照して計算しています

質問者が選んだベストアンサー

  • ベストアンサー
  • aigaion
  • ベストアンサー率47% (287/608)
回答No.1

誤差が原因ですね。 コンピュータの計算はすべて2進数で計算されます。 "22:00"と"21:00"のどちらかが誤差を含むような値に変換されて計算されてしまい。 計算結果が1:00ではなく、0:59:59:59となってしまいFLOOR関数が切り捨てて0:50になってしまったのでしょう。 簡単な解決策としては FLOOR("22:00"-"21:00"+"0:00:05","0:10") として、計算結果に支障が出ない程度に計算結果を調整することです。 誤差は非常に小さいものですので計算結果に支障が出ない程度に小さい結果を加えてやればよいのです。 出勤表ではさすがに10秒以下の単位までは記入しないでしょうからここでは 1秒を加えることで誤差を相殺します。

BlackRain
質問者

お礼

解決策までありがとうございました。 その方法で回避したいと思います。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • shintaro-2
  • ベストアンサー率36% (2266/6244)
回答No.3

>いろんな時間で試してみましたが、手計算では1時間になる時だけ 50分と出力されます。 エクセルの仕様な気がします。 ちなみに、10:00出社、11:00退社で50分になりますが そこから両方を10分ずつ遡らせると、 9:50、9:30,9:10,9:00,8:40,8:20,8:10,8:00,7:50出社は1hとなりますが、それ以外は全部50分でした。

BlackRain
質問者

お礼

1時間と出力される場合もあったんですね。 十分テストしたつもりでも甘かったです^^;;

全文を見る
すると、全ての回答が全文表示されます。
  • aigaion
  • ベストアンサー率47% (287/608)
回答No.2

書くのを忘れましたが これはExcelのバグではなく仕様ですのでこのことを知らずに起こりえた 何らかの不利益の責任はExcelを作ったMicrosoftではなく 知らずに表を制作した人にあるということになります。 たまに勘違いしている人がいるのでいちおう書いておきます。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • FLOOR関数、なぜか 2:15 が 2:00 に

    労働時間を15分単位での切捨て =FLOOR(C5,"00:15") で 計算していますが、15分と2時間15分だけ、おかしな数字になって しまいます。これはなぜでしょうか? 出勤時間 退社時間 労働時間 12:00 12:15 0:15 0:00 ★ 11:00 12:15 1:15 1:15 10:00 12:15 2:15 2:00 ★ 9:00 12:15 3:15 3:15 8:00 12:15 4:15 4:15

  • Excel:特定の条件でFLOOR関数を使うには?

    Excelを使って、勤務表を作成しています。 開始時刻、終了時刻を入力すると、 終了時刻ー開始時刻ー休憩時間という具合に当日の勤務時間を出力させるようにしています。 当日の勤務時間を出力するセルには以下の条件が必要です。 (1)開始、終了時刻が入力されていない時、0:00と表示する。 (2)開始時刻8:30(もしくはその時刻より前)、 終了時刻17:05と入力された時、7:50と表示する。 (3)(2)の条件以外は15分単位で勤務時間を表示する。 15分単位で丸めるということでFLOORを使うのですが、 そうすると(2)の条件がまったく無視されてしまい、うまくいきません。 FLOORを特定の条件の時のみ、適用する方法があれば教えて下さい。 よろしくお願いします。 使用ソフト:Excel2002 ------------------------------------------------- ちなみに以下のような計算式を当日勤務時間が出力されるセルに書いて試してみました。 =IF(D9="17:05","7:50",IF(COUNT(C9:D9)<2,"0:00",FLOOR(D9-P9-E9,"0 :15"))) 計算式の意味↓ 終了時刻に17:05と入力されたら、当日勤務時間のセルに7:50と表示。 開始、終了が入力されないと、0:00と表示。 そうでなければ、終了ー開始(8:30以前を8:30と考えるセル)ー休憩で計算し、15分単位で表示。 とこのように書いてみたものの…うまくいきませんでした。

  • 給与計算のFLOOR関数について

    Exelでの給与計算について教えてください。 10分単位で残業をつけています。 時間外手当を計算するのにFLOOR関数を使いたいのですが、 退社定時 12:30 実際退社 12:40 の場合 差を出してから =FLOOR(○,"0:10")と入力すると 「0:00」と表示されてしまいます。 10、20と区切りがいい場合、10分足りない表示になってしまうのですが、 何か改善方法があれば教えてください。 よろしくお願いいたします。

  • excel FLOOR関数について

    excelのFLOOR関数について教えてください。 =FLOOR(A1,"00:15:00")/"1:00" とは、どういうことをしているのでしょうか。 時間に関することを扱っているセルの関数です。 マニュアルには値の切り捨て等が記載されていますが、"00:15:00"の意味がわかりません。これは文字列なのではないでしょうか。 FLOOR関数は文字列に対しての操作もするということですか。 不勉強ですみませんが、教えてください。お願いします。

  • 日報の時間計算を行う関数について

    勤務時間を管理の日報を作成しています。以下の条件をつけて出勤時間と退社時間を記入するだけで1日の総勤務時間を表示してくれる関数をご教示お願いします。 ・9:00出勤で18:00定時退社で15分単位で表示 ・セル(開始)は9:00、(終了)に18:00以降の時間を手入力 ・セル(工数)に関数で総勤務時間を計算 ・9:00から18:00までに1時間15分の休憩をとるため、自動的に差し引いて計算 ・残業は18:15からカウントされるため、18:30以降残業して退社した場合は15分差し引いて計算 ・残業最終時間0:00までとして計算 ・セル(開始)、(終了)に9:00~0:00の15分単位の時間以外を入力はない前提とします ・遅刻、早退による変則時間の入力はない前提とします 【例】 (開始)9:00、(終了)18:00の時は(工数)に7.75 (開始)9:00、(終了)18:15の時は(工数)に7.75 (開始)9:00、(終了)18:30の時は(工数)に8 (開始)9:00、(終了)0:00の時は(工数)に13.5 よろしくお願いします。

  • EXCELで関数を使用した勤務表を作成したいのですが・・

    初めて質問させていただきます。 使用ソフトEXCEL Ver2000 WinXP使用 今、EXCELにて勤務管理表を作成しているのですが、 関数を挿入する際にどの関数を使用すればいいのかいまいちわからないのでご教授いただけますでしょうか? まず、例として、セル列が A⇒日 B⇒曜日 C⇒区分 D⇒出社時間(1つのセルの中に「10:00」というように入力する) E⇒退社時間(              〃               ) F⇒休憩(15分単位で入力 例:1時間休憩なら⇒60) G~J⇒時間内(セルごとに結合させて使用)通常8時間以内であればこのセルに時間数を表示(例:6時間半勤務⇒6.5) K⇒時間外 8時間以上の勤務時間はこのセルに入力 (例:2時間45分残業⇒2.75) 以上のように入力を進めていきたいのですが、 まず、出社時間・退社時間は手入力となり、出社時間等を入力した際に自動入力で休憩・時間内・時間外を計算されるようにしたいのです。 普通の計算式なら入れられそうにも感じたのですが、『休憩』は60進法『時間内・外』は100進法と少々ややこしいので、 わからなくなってしまいました。(こういう進法は会社でこのように入力するように言われました) 他の方の質問・回答など参考にさせていただいたのですが、A列に1:30と入力してB列に1.5と表示させるようにする関数の使い方は見かけたのですが、直接対象セルに表示させる方法を知りたいです。 以上の条件で、どの関数を使用すればよろしいでしょうか? その際の書式設定で変更しなければいけない点もございましたら合わせて教えていただけましたら幸いです。

  • なんの関数を使えばよいのでしょう?

    エクセルで、なんの関数を使ったらいいのかわからないので教えてください。 7.44を時間に見立てて、8.00と別のセルに表示したいのです。 また、18.25を18.00と、別のセルに表示したいのです。 下記のように表示したいのですが。 つまり、30分単位で切り捨て繰上げしたいのですが、時間表示にしてないためどうやっていいのかわかりません。 時間表示にすることはできないようなので、どなたかわかる方よろしくお願いします。 わかるところだけでも結構ですので・・・。        A       B       C       D      出勤時間  退社時間  出勤時間  退社時間 *** 7.44      18.25     8.00     18.00 △△△ 8.15      18.45     8.30     18.30       ↑8時出勤で遅刻なので「C」に8.30と表示させたいのです

  • 勤務時間 Excel

    エクセルで勤務時間から時間外勤務時間を出す計算式を教えて下さい。 勤務時間は仕事に応じてなので不規則です。 Excel 出社時間 C2 退勤時間 F2 ①8:00〜17:00 → セルG2 ②17:00〜22:00 → セルH2 ③22:00〜24:00 → セルI2 ④00:00(24:00)〜05:00(29:00) → セルJ2 ⑤05:00(29:00)〜08:00(32:00) → セルK2 例として 出社 17:15~退社20:00 出社 18:00~退社26:00 出社 3:00~退社05:00 出社 3:00~退社09:00 出社 10:00~退社16:00 出社時間から記入するため25:00表記の場合と01:00表記の場合があります。 いろいろ調べたのですが難しくて思うように計算できませんでした(T_T) わかる方いましたら、是非教えて下さい宜しくお願いします。

  • エクセルで時間外を求める関数

    エクセルで勤務管理表を作成しています。 早出・遅刻・残業の合計時間を関数を使って求めるには どうしたら良いでしょうか? A行には出勤時間 C行には退社時間入力 出勤時間8:00、退社時間17:00が定時です。 8時前に出社した場合15分単位で早出割り増しがつきます(7:28出社なら0.5/7:47出社の早出はゼロ) 8時1分を過ぎると8:30出社とみなされます(0.5の遅刻) 17時15分を超えると15分単位で残業がつきます(0.25の残業) 最終的にE行に早出と残業の合計時間を0.25の単位で入力したいのですが、関数を教えて下さい。

  • エクセルで給料計算

    エクセルで給料計算表を作っているのですが、出社時間も退社時間も15分単位で45~00分前は切り上げで00~15分後は切捨てにしたいのです。切り上げのみと切捨てのみはわかるのですが、入力時間によって判断させるにはIFとか使うのでしょうか。どなたか教えて下さい。お願いいたします。

このQ&Aのポイント
  • モニターアーム(DPA-SS02BK)のクランプ寸法について知りたい。
  • 購入を検討中のモニターアーム(DPA-SS02BK)について、クランプ部分のサイズを確認したい。
  • エレコム株式会社のモニターアーム(DPA-SS02BK)のクランプ寸法について質問です。
回答を見る

専門家に質問してみよう