- ベストアンサー
excelにて文字列を時刻として認識させたい
たとえば 500と入力したときセルの表示には5:00と表示させ さらにそれを5:00であることを認識させるにはどうすればいいでしょうか? セルの書式で「0":"00」とすれば時刻形式にはなりますが、時刻としては認識しないので・・・
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
文字列からでタイムシリアル値に変換するのは、TIMEVALUE関数しかありません。TIME関数に持ち込む方法もありますが。 時間:分:秒のカタチの引数にします。 F1セルに =TIMEVALUE(LEFT(E1,LEN(E1)-2)&":"&RIGHT(E1,2)&":00") 式を下方向に複写する。 例 E列 F列 500 5:00:00 1200 12:00:00 34 #VALUE! 2312 23:12:00 2300 23:00:00 412 4:12:00 ーー 分だけの入力がある場合があれば、G1に =IF(LEN(E1)<3,TIMEVALUE("00:"&E1&":00"),TIMEVALUE(LEFT(E1,LEN(E1)-2)&":"&RIGHT(E1,2)&":00")) 式を下方向に複写する。 例データ E列 F列 G列 500 5:00:00 5:00:00 1200 12:00:00 12:00:00 34 #VALUE! 0:34:00 2312 23:12:00 23:12:00 2300 23:00:00 23:00:00 412 4:12:00 4:12:00 2 #VALUE! 0:02:00
その他の回答 (3)
- maron--5
- ベストアンサー率36% (321/877)
◆時刻として認識させるには、こんな方法も =TIME(INT(A1/100),RIGHT(A1,2),)
お礼
ありがとうございました 無事に解決しました
》 セルの書式で「0":"00」とすれば時刻形式にはなります… 0!:00 でもOKです。 時刻として計算するときは、=TEXT(A1,"0!:00")+0 としたら如何?
お礼
ありがとうございます 無事に解決しました
- merlionXX
- ベストアンサー率48% (1930/4007)
対象をA1セルとした場合、 1.シート名のタブを右クリック 2.コードの表示 3.表示された右側の白い広い部分に以下をコピーペ Private Sub Worksheet_Change(ByVal Target As Range) If Target.Address <> "$A$1" Then Exit Sub x = Target.Value Application.EnableEvents = False Target.Value = IIf(Len(x) = 4, Left(x, 2) & ":" & Right(x, 2), Left(x, 1) & ":" & Right(x, 2)) Application.EnableEvents = True End Sub 4.Altキー+F11キーで元に戻る。 これでA1セルに730と入れると7:30に、1200と入れると12:00となります。 では、良いお年を!
お礼
ありがとうございます 無事に解決しました
お礼
教えていただいた方法で解決しました ありがとうございました