• ベストアンサー

7時間15分を1日と換算する計算について

MarcoRossiItalyの回答

回答No.8

No.6 です。 計算誤差が発生する具体的なケースを前回載せていませんでしたね。 誤差は、たまにしか発生しません。さらにそのうちのごく一部に過ぎませんが、例えば添付図 A 列の時間を入力すると、B 列では誤差が発生していることが分かります。 たとえ A 列には整数しか入力しなかったとしても、小数である「7:15」のシリアル値にそもそも誤差が含まれているため、それを使っている限り、誤差が残る場合があるのですね。 整数化は、一つの有効な誤差対策です。全体の数式は、ちょっと長くなってしまいますが。 15 桁以下の整数は、Excel において、(小数から誤差を引き継いだりしていなければ)誤差を含みません。だから整数だけを使って計算すれば、確実に正しい結果が得られます。 次の D2 セルの数式は、(1) A 列の時間を 100 倍して整数化し、(2)それを分単位に直すとともに小数から引き継いでいる誤差を ROUND 関数によって除去し、(3)「7:15」も分単位に直してから((60*7+15)分)、ご質問の日数・時間数を算出しています。分単位(の 100 倍)だから、全部整数になっていますね。 誤差対策なし B2 =int("1:00"*a2/"7:15")&" 日と "&text(mod("1:00"*a2,"7:15"),"h 時間 m 分") 7 桁残し C2 =int(round("1:00"*a2/"7:15",7))&" 日と "&text(round(mod("1:00"*a2,"7:15"),7),"h 時間 m 分") 整数化 D2 =int(round(60*a2*100,0)/((60*7+15)*100))&" 日と "&int(mod(round(60*a2*100,0),(60*7+15)*100)/(60*100))&" 時間 "&mod(mod(round(60*a2*100,0),(60*7+15)*100),60*100)/100&" 分" C 列・D 列の一致 E2 =c2=d2 なお C2 の方法では、7 桁くらいがちょうどいい桁数です。 誤差を除去する際、四捨五入により残す桁数が少ないほど確実に除去でき、ある程度の桁数さえあれば、ムダにたくさん残していなくても正確な時間のシリアル値に一致してきます。しかし、あまりにも桁数が少ないと、前回から説明しているものとは別の種類の誤差を生んでしまいます。 添付図のように 1,000.00 以上 10,000.00 未満の時間を入力する場合は、最低限 6 桁は必要ですが、余裕を見て 1 桁増やし、小数点第 7 位まで残すこととしました。上の計算では小数点第 14 位・15 位あたりの数字がずれると考えられるので(入力値と「7:15」という 2 数で 1 回演算する場合はそうなる)、この桁数で確実に誤差を除去できていると考えられます。 もしも入力値を小数点第 3 位までにしたいという場合は、8 桁を残すようにすればいいでしょう。

関連するQ&A

  • エクセル 分を換算

    エクセルで分を時間と分に換算する計算式を教えてください。(例えば200分を3:20のように)よろしくお願いします。

  • エクセルでの時間の計算

    エクセルでの1時間25分+5時間57分と分を時間に繰り越す場合の自動計算の方法があるのでしょうか?調べてみたのですが、別々のセルに時間・分を入れて計算する方法はでてるのですが、一つのセルに1:25と5:57をいれて7:22と表示されるのは不可能なんでしょうか?教えて下さい。

  • 0.00分⇒0分0秒に換算したい。

    例)1.32分を1分○秒に換算したいのですが、計算方法が分かりません。 エクセルにデータ収集していきたいので、 計算式を教えて頂けると助かります。

  • エクセル2000での時間換算

    Excel2000使用初心者です。過去の検索もしたのですが、要領を得なかったのでご質問致します。 A1セルに時間を数値入力します。例えば「25」(時間) A2セルに分間を数値入力します。例えば「90」(分間) A3セルに秒間を数値入力します。例えば「130」(秒間) A1からA3の時間を合計して換算された答えを、以下のセルにそれぞれ数値で.. B1に「26.32.10」(26時間32分10秒) B2に「1592.10」(1592分間10秒) B3に「95530」(95530秒間) と求めたいのですけれど、どのような関数式を作ればよいかご教示下さい。 よろしくお願いします。

  • エクセルでの計算式もしくはシートの作り方 1日を7時間45分に

    エクセルで年次有給休暇簿を作ろうとしています。  作り方を教えてください 年休は時間単位で修得できます。 しかし,今年から勤務時間が8時間から7時間45分に変更になり累計の計算が煩雑になりました。  今までは年休を1時間取る時は1/8と書いて それを 累計していけば簡単にできました。 例えば 4/8の次に6/8をとると1と2/8 次に7/8をとると2と1/8と簡単でした。 今年度からは 4時間とって 次に5時間取ると合計9時間となり, 勤務時間が7時間45分なので 年休の累計は1日と1時間15分となると思います。  何かいい計算式がありませんか? (時間を分になおしたり いろいろしましたが,分かりませんでした。)

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

    勤務時間を管理の日報を作成しています。以下の条件をつけて出勤時間と退社時間を記入するだけで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 よろしくお願いします。

  • 年次休暇の取得とのこりの自動計算について

     恐れ入ります。先日年次休暇の計算方法について相談させていただいた者です。  ご回答をいただき、それをヒントに自分で考えられるかと思ったのですが、難しいので申し訳ありませんが、どうぞよろしくお願いします。  添付画像のようなレイアウトを考えています。 ・あらかじめ去年からの繰り越しを入力しておきます。  日、半日、時間、分という単位です。 ・黄色のセルに、現在の取得年休を入れます。 ・自動的に現在の積算年休が表示され、差し引きがわかるようにしたいのです。  また、次の約束があります。 ・1日は7時間45分です。(先日は7時間15分で尋ねましたが、職種により違い、今回は7時間45分をもって1日とする職種の分です) ・半日単位での取得はできますが、半日は時間に換算せず、0.5日という表記にします。  最終的には「15.5日と3時間15分」といった残数表記にします。 ・半日を時分換算しないので、繰り下がりは「日」から「7時間45分」をとってきます。  レイアウトは多少変わっても構わないので、どうぞよろしくお願いします。

  • エクセル2003で時間の計算について

    エクセルで時間の計算を行ってますが詰まったので教えてください。 その1 計算によってもとめた時間の'分の一の位と"秒を取り出して、かつ秒を分単位で表示したいのです。 その数値はそのあとの計算で10進法で計算します。    A 10 19:08:45 11 21:08:01 12 -1:59:16 13 現在このようになってます。 A12のセルは[A10-A11]です。 A12の計算結果である-1:59:16の分の一の位、つまり9分16秒を分に換算して9.27(9.266...)というかたちでA13のセルに結果を出したいのです。 符号はabs関数で無くす予定です。 その2 さらにこの次の計算で特定のセル(たとえばA10)の'分が30分を超える場合は計算結果の符合を反転するようにしたいです。 わかる方がいらっしゃいましたらよろしくお願いします。

  • 時間を日にできる関数

     休暇の時間を計算する場合、例えば、30日と90時間は時間を8時間で1日に換算すると、41日と2時間になります。エクセルでそのように変換できる関数はないんでしょうか?

  •  エクセルでの経過時間の分計算。

     エクセルでの経過時間の分計算。  よろしくお願いします。セル内に”0900”と入力すれば、”=NOW()”関数式で表示されている現在時間からの経過した分を表示できないか考えています。何か良い方法が分かる方がいれば、よろしくお願いします。 例)      A        B        C 1  10:05:39    0900        65 2 3 A1"=NOW()" B1"0900と入力" C1"経過分時間65を表示"