EXCEL97で5分単位切り捨てで時間計算しようと思い、
以下の式を書きました。

=FLOOR(終了時間-開始時間,TIMEVALUE("0:05"))

ところが、
終了時間="8:40"
開始時間="8:30"
で計算すると 0:05 となってしまいます。
終了時間="8:43"
開始時間="8:30"

終了時間="8:20"
開始時間="8:10"
で計算すると 0:10 と正常に計算されます。

これは式が悪いのでしょうか、それともバグ?
分かればぜひ教えてくださいお願いします。

このQ&Aに関連する最新のQ&A

A 回答 (2件)

これはEXCELの仕様で、バグではありません。


確かに、見かけ上は正しいのですが、EXCELでは時間の計算方法として、1日24時間を1として計算します。5分は5/1440となり、割り切れない値となります。これを丸め処理して表示しているので、除算の絡む式だと、どうしても誤差が生じます。

ためしに、(終了時間ー開始時間)/TIMEVALUE("0:05")で計算させると、標準書式では2と表示されますが、数値表示で小数点以下20桁で表示させると、
1.999999…となり、2にならないことがわかります。
FLOOR関数では元の数値の倍数で計算しますので、2倍に限りなく近いが、2倍ではないので期待通りの計算結果が現れません。

これを避けるには、別セルに分(MINUTE)単位で取り出し、これをFLOOR関数で処理します。
    • good
    • 0
この回答へのお礼

早速の回答有り難う御座います。
そういう理由があったんですね、分けてやったら上手く行きました。

お礼日時:2002/02/02 18:37

演算の過程でPC内では10進数を2進数に変換して計算した後に、再び10進数に変換して表示します。

ここで発生する不都合であり、時間の計算に限らず一般の四捨五入処理でも頻繁に見られる現象です。(小数点以下10桁目以下に現れています。 0.5が0.499999999999999だったりする訳です。)

2桁四捨五入では、3桁目が5ジャストの場合にランダムな五捨五入を実行し、時間の場合には、15分、30分、45分などの時に現れます。
対策としては、演算結果に影響を及ぼさない数値(0.0000000001)等を演算結果に加えてから、丸め処理をするのが簡単な方法です。

なお、終了時間、開始時間共に丸め処理をする、結果のみに丸め処理をするによって、調整のための微値を加えるセル位置は異なります。
    • good
    • 0

このQ&Aに関連する人気のQ&A

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

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Q{=SUM(IF(D8:F8="理",1,0))} の数式の意味が知りたいです

知人から引き継いだ時間割ソフト(エクセルで作成)に以下のような数式が
あったのですが意味がよく分かりません。
{=SUM(IF(D8:F8="理",1,0))} 
特に数式全体をかっこっている { }の意味はなんでしょうか
どういう役割があるのでしょうか

Aベストアンサー

こんにちは。
{=SUM(IF(D8:F8="理",1,0))} 
この式は、お友達の方が「時間割の中で『理』(たぶん理科?)の授業(?)が
ある回数を集計するために設定したものと思われます。
{}の意味は先ほどの方が書かれてるとおりです。
文章で表現するとすれば次のようになると思います。
もし(IF)、D8~F8の範囲(D8:F8)のセルに「理」という文字(”理”。””で括ることで文字データーを表す)があったら、そのセルは数字の「1」なかったら「0」として(,1,0)、D8~F8の範囲(D8:F8)のセルの値を合計して(SUM)下さい。
エクセルでは、このように、2つの関数(SUMとIF)を組み合わせて使うこともできるのです。

Q開始時刻+経過時間=終了時刻になる計算式はありますか?

エクセルについてお尋ねします。
(1)下記のようにA3に"3"と入力するだけで3時間と認識する事は可能でしょうか?

(2)上記の結果をふまえ、開始時刻(A1)に経過時間(A3)を足して終了時刻(A2)を表示する事は可能でしょうか?
  A1 → 9:00(開始時刻)
  A3 → 3(経過時間)

  A2 → 12:00(終了時刻) ←この時刻を求める。

Aベストアンサー

A1=9:00
A2=3

B1=12:00----=A1+TIME(3,0,0)
B2=12:00----=A1+TIME(A2,0,0)

回答を書くにあたっては、ヘルプ[時間を加算する]を参照しました。

Qエクセル:関数で時間「0:59」を「1:00」にしたい

お世話になります。
急ぎの用務です。お助けください。
よろしくお願いします。

◆時間表示の切り上げを30分単位でしたいのです。
 関数でできますか?ご教授お願いいたします。

例)
「0:59」→「1:00」
「1:29」→「1:30」
「1:15」→「1:30」

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

Aベストアンサー

こういうこと p(..)でしょうか?

=CEILING(A1,"0:30")

セルの書式設定~表示形式を「時刻」に。

QExcel-開始時間と上演時間から終了時を計算

ある劇団の公演のため、MacのExcel2004でスケジュール表を作っています。

上演開始の日時[A1]と、上演時間[A2]を手で入力して、
終了日時[A3]をExcelの計算で求めたいのですが、上手くいきません。

日時の"yyyy.mm.dd hh:mm"という表示形式は、
団員のスケジュール管理ソフトにインポートする時の都合上変える事が出来ず、
また、上演時間も分単位で入力(1時間55分間なら「115」の様に)をしたいのですが、
どの様な計算にしたら良いでしょうか?

<例>
[A1] 2008.06.01 17:20 <開始時刻※手で入力
[A2] 115        <上演時間※手で入力(分)
[A3] 2008.06.01 19:15 <終了時刻をExcelに計算させたいです


マニュアルやヘルプを見てみたのですが、
金額計算くらいしかした事の無い自分にとっては理解出来ず、
過去の質問やGoogleで探してみたところ、開始時と終了時までの時間を求める方法は
沢山見つかったのですが、上記の様な計算については見つけられませんでした。

お分かりになる方がおられましたら、よろしくお願いします。

ある劇団の公演のため、MacのExcel2004でスケジュール表を作っています。

上演開始の日時[A1]と、上演時間[A2]を手で入力して、
終了日時[A3]をExcelの計算で求めたいのですが、上手くいきません。

日時の"yyyy.mm.dd hh:mm"という表示形式は、
団員のスケジュール管理ソフトにインポートする時の都合上変える事が出来ず、
また、上演時間も分単位で入力(1時間55分間なら「115」の様に)をしたいのですが、
どの様な計算にしたら良いでしょうか?

<例>
[A1] 2008.06.01 17:20 <開始時刻※手で入...続きを読む

Aベストアンサー

エクセルは、1日=24時間を1として内部計算します。
したがって、日以外の単位を使う場合は、単位を換算してやればよいのです。

1日=24時間=1440分ですから、A3には、
 =A1+A2/1440
と式を入れれば、お望みの時刻が表示されます。

Qエクセル 時間の表記 15:10+12:30=27:40 としたい

出張の報告書を作成しています。
以下の表があります。

     1行程 2行程 3行程  合計
移動時間 08:50  11:10  5:50  25:50

合計セル(E2)の表記を、25:50(25時間50分の意味)と表記する方法を知りたいです。
セルの表示形式を h:mm では24時間以上に表記させることができませんでした。
(表示方法がわかりませんでした。)
どのようなセルの設定又は関数を使用すればよいのでしょうか?

よろしくお願いします。

Aベストアンサー

 
 [h]:mm

 [ ] で h を囲ってください


このカテゴリの人気Q&Aランキング

おすすめ情報