セルを経過時間でフォーマットする場合([h]:mm:ssのカスタム表示フォーマットを使用)、Excelではそのセルに時間、分、秒を入力できます。たとえば、129:14:30と入力するだけで、129時間、14分、30秒を表すことができます。ただし、セルに非常に大きな時間値を入力しようとすると、問題が発生します。 12721:52:45のように、10,000時間を超える時間値を入力しようとすると、Excelはエントリを時間として解析せず、テキストとして扱います。

興味深いのは、セルが[h]:mm:ssを使用して経過時間でフォーマットされている場合、セルは10,000時間を超える経過時間を簡単に表示できることです。したがって、セルの範囲を合計して10,000時間を超える値にすることはできますが、それより大きな値を入力することはできません。

残念ながら、Excelではこれを回避する方法がないようです。ただし、最善の解決策は、データの入力方法を再考することかもしれません。結局のところ、10,000時間は416日と16時間に相当し、1年以上になります。

日を入力するための列を簡単に作成し、別の日を部分的に使用することができます。次に、3番目の列は数式を使用して、他の2つの列に基づいて経過時間を返すことができます。

もう1つの解決策は、入力の解析をExcelに依存しないことです。入力する時間が非常に長い場合(32,315など)、セルに次のように入力できます。

=32315/24

Excelは、数式として入力した内容を維持しますが、適切な時間、分、秒の数を表示します。より正確に知りたい場合は、時間で表される1時間の部分を表す端数を入力できます。たとえば、37分15秒は0.620833時間です。したがって、次のように時間を入力できます。

=32315.620833/24

もちろん、この方法で時間を入力することは、特に分と秒で表される時間の小数部分を計算する場合、面倒になる可能性があります。これを克服するために、時間、分、秒を入力し、経過時間形式を使用して簡単にフォーマットできる値を返すカスタム関数を作成できます。

次の関数がトリックを実行します:

Public Function ReallyBigTime(hr As Double, _   min As Double, sec As Double) As Double     Dim hr1 As Double     Dim min1 As Double     Dim sec1 As Double

hr1 = hr / 24     min1 = min / 24 / 60     sec1 = sec / 24 / 60 / 60     RealBigTime = hr1 + min1 + sec1 End Function

関数を作成した後、セルに= RealBigTime(32341,30,45)のようなものを入力します。結果は、32341:30:45までの経過時間形式でフォーマットできる値です。

注:

このページ(または_ExcelTips_サイトの他のページ)で説明されているマクロの使用方法を知りたい場合は、役立つ情報を含む特別なページを用意しました。

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(10594)は、Microsoft Excel 2007、2010、2013、2016、2019、およびOffice 365のExcelに適用されます。Excelの古いメニューインターフェイス用のこのヒントのバージョンは、次の場所にあります。