質問: 秒以下を含む時間の集計を行う場合 excelには秒以下の書式設定がありません。 例えば、秒以下を表す場合、 60進数で 04:23:32 (4分23秒32) (これを秒以下を10進数で無理やり表示すると 04:23.53 (4分23秒と100分の53秒)) このままでは 4時間23分32秒と認識されてしまします。 ------------------- 処理したいことは、 A1セルに04:23:32(4分23秒32)と入力して 以下A列に同じような時間形式でDATAを入力して BセルにB2=A1+A2のような合計時間を表示するようにしたいのですが どのような計算式になりますか ? 60分を超える場合は、1時間とします。 例えば、 1:42:25:23 (1時間 42分 25秒 23) 46:24:13 (46分24秒13)
回答: 秒未満は小数10進数で扱うのが基本です(なぜなら秒以下には単位がないから)。 Excelは 1:42:25:23 は文字列と認識し、46:24:13 は数値(時刻も数値)と認識します。なので 46:24:13 は 46時間24分13秒であり、46分24秒13(?) と認識させることはできません。 どうしても秒以下を60進数で扱いたいのなら、文字列として入力するしかありません。 当然ですが文字列は計算できないので、1:42:25:23 を 1:42:25 と 23 に分けて数値化してから計算しなければなりません。 また、計算結果は数値で返りますので、1秒未満の部分を60進数に変換して表示することになります。 Excelでは1日が整数1に該当しますので、1秒は 1/24/3600 です。 1秒未満の60進数を10進小数にする =(1秒未満の60進数/60)*(1/24/3600) 1秒未満の10進小数を60進数にする =60*(1秒未満の10進小数/(1/24/3600)) 数値を1秒以上と1秒未満に分けるには 1秒未満 =MOD(数値,(1/24/3600)) 1秒以上 =数値-MOD(数値,(1/24/3600)) なお、: が4つなら"時間"、3つなら"分"で扱うのは : の数を数えれば良いので、 =LEN(A1)-LEN(SUBSTITUTE(A1, ":","")))/LEN(":") A1 に 1:42:25:23 が入力されていれば 3 が返ります。 以上のように、かなり厄介な数式になりますが、そもそも1秒以下を60進数で表示しないといけないケースって何なのでしょうか?