1

軍事時間を表すカスタム形式 (タイプ: 000000) の数字のリストを受け取りました。常に 6 桁で、必要に応じて先行ゼロが使用されます。例えば:

  • 123456 は 12:34:56 (午後) になります
  • 000321 は 00:03:21 (am) になります
  • 142321 は 14:23:21 (午後) になります

列 A の整数を列 B (hh:mm:ss) の形式に変換するにはどうすればよいですか? 軍用の 24 時間時計を使用したいと思います。

4

3 に答える 3

7

テキストではなく実数の整数を想定します。

=TIME(INT(A1/10000),INT(MOD(A1,10000)/100),MOD(A1,100))

テキストの場合は、

=TIME(VALUE(LEFT(A1,2)),VALUE(MID(A1,3,2)),VALUE(RIGHT(A1,2)))

結果を好きなようにフォーマットします。

VBA関数として:整数:

Function RetTime(IntTime As Long) As Date
RetTime = TimeSerial(Int(IntTime / 10000), Int((IntTime Mod 10000) / 100), (IntTime Mod 100))
End Function

弦:

Function RetTimeS(StrTime As String) As Date
RetTimeS = TimeSerial(Val(Left(StrTime, 2)), Val(Mid(StrTime, 3, 2)), Val(Right(StrTime, 2)))
End Function
于 2012-06-18T17:48:19.000 に答える
6

B1などでTEXT関数を試す

=TEXT(A1,"00\:00\:00")+0

hh:mm:ss としてフォーマットします

于 2012-06-18T18:08:01.417 に答える
3

VBAコードが必要なのか、セルの数式が必要なのか、それが何であるかはわかりませんCustom, type 00000。上記のショーンの回答は、VBA 関数を適切に使用するという観点からはおそらく最良ですが、「(am)」と「(pm)」を最後に付けて軍事時間の時間オブジェクトをフォーマットする方法はないと思います. 少なくとも、標準の Excel 書式設定を使用していません。(おそらく、軍の時間では am と pm が重複しているためです。)

したがって、ソース データが実際には文字列であると仮定すると、何らかの理由で「am」と「pm」が本当に必要な場合の代替手段を次に示します。

=MID(A1,1,2) & ":" & MID(A1,3,2) & ":" & MID(A1,5,2) & IF(VALUE(MID(A1,1,2)) < 12," (am)", " (pm)")
于 2012-06-18T18:00:32.307 に答える