3

VBA を使用して Excel で分と秒に変換する必要がある 10 進数で表された時間を持っています。

例: 小数点の前の数字は分を 0.197683577 (0 分) とし、数字を 60 倍すると秒 = 0.197683577*60 = 11.86101462 (12 秒) = 0:12 となります。

コピーしてテキスト形式に貼り付け、テキストを使用して数値を左右に区切り、小数点の列に「:」を追加することでこれを実行できることはわかっていますが、これを計算する方法が必要です。

4

2 に答える 2

4
Public Function FromDecimalTime(ByVal t As Double) As Date
  FromDecimalTime = TimeSerial(0, Fix(t), (t - Fix(t)) * 60)
End Function

式と同じ:

=TIME(0,TRUNC(A1),(A1-TRUNC(A1))*60)

まあ、実際には同じではありません。TimeSerial丸め規則に従って秒数を丸め ( 11.86-> 12)、TIME切り捨てます ( 11.86-> 11)。ただし、最後の引数に丸め関数を適用できます。

于 2012-05-02T21:24:21.143 に答える
1

VBA 関数は機能しませんでしたが、Excel 内で回避策を見つけました。

=TRUNC(W11/60)&":"&IF(ROUND(((W11/60-TRUNC(W11/60))*60),0)=0,"00",ROUND(((W11/60-TRUNC(W11/60))*60),0))`

W11のような 10 進数形式の時間はどこにありますか900.3201306。結果は数分で15:00

基本的に、切り捨てられた 10 進数の分から 10 進数の分 + 秒を差し引いて、秒のみを取得します。次に、 を受け取りdecimal seconds * 60ますseconds+milliseconds。これを四捨五入して秒数を与えます。秒が 0 の場合、「00」を書き込んで正しいフォーマットを取得します。次に、切り捨てられた分と秒を加算します。

この式は機能しているようです。

于 2012-05-11T20:19:09.880 に答える