dポイントプレゼントキャンペーン実施中!

たとえば
500と入力したときセルの表示には5:00と表示させ
さらにそれを5:00であることを認識させるにはどうすればいいでしょうか?

セルの書式で「0":"00」とすれば時刻形式にはなりますが、時刻としては認識しないので・・・

A 回答 (4件)

文字列からでタイムシリアル値に変換するのは、TIMEVALUE関数しかありません。

TIME関数に持ち込む方法もありますが。
時間:分:秒のカタチの引数にします。
F1セルに
=TIMEVALUE(LEFT(E1,LEN(E1)-2)&":"&RIGHT(E1,2)&":00")
式を下方向に複写する。

E列   F列
5005:00:00
120012:00:00
34#VALUE!
231223:12:00
230023:00:00
4124:12:00
ーー
分だけの入力がある場合があれば、G1に
=IF(LEN(E1)<3,TIMEVALUE("00:"&E1&":00"),TIMEVALUE(LEFT(E1,LEN(E1)-2)&":"&RIGHT(E1,2)&":00"))
式を下方向に複写する。
例データ
E列  F列   G列
5005:00:005:00:00
120012:00:0012:00:00
34#VALUE!0:34:00
231223:12:0023:12:00
230023:00:0023:00:00
4124:12:004:12:00
2#VALUE!0:02:00
    • good
    • 2
この回答へのお礼

教えていただいた方法で解決しました
ありがとうございました

お礼日時:2008/01/02 00:09

◆時刻として認識させるには、こんな方法も


=TIME(INT(A1/100),RIGHT(A1,2),)
    • good
    • 2
この回答へのお礼

ありがとうございました
無事に解決しました

お礼日時:2008/01/02 00:08

》 セルの書式で「0":"00」とすれば時刻形式にはなります…



0!:00 でもOKです。

時刻として計算するときは、=TEXT(A1,"0!:00")+0 としたら如何?
    • good
    • 1
この回答へのお礼

ありがとうございます
無事に解決しました

お礼日時:2008/01/02 00:08

対象を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となります。

では、良いお年を!
    • good
    • 0
この回答へのお礼

ありがとうございます
無事に解決しました

お礼日時:2008/01/02 00:10

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!