- ベストアンサー
エクセルで時間の表示
6:00と入力すると、自動で18:00と表示 3:00と入力すると、自動で15:00と表示 する時間の式はどうすればいいですか?
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
15:00をpm 3:00に書き換えるのは判りますが、AMか?PMか?判断出来ない値に判断して表示せよ って言うのは無理かと思いますよ。
その他の回答 (4)
- JP002086
- ベストアンサー率34% (1540/4410)
>そのように区別して入力するにはどうすればいいのですか? 「入力規則」について、存知ているか?どうかは判りませんが、 セルを指定して、データーをクリックすると「データーの入力規則」があります。 データーの入力規則をクリックすると、ダイアログが表示されダイアログのタブには「設定」「入力時メッセージ」「エラーメッセージ」「日本語入力」が有りますので、各タブの項目に従い入力してください。 設定のタブには(2019の場合ですが)、「すべての数値」「整数」「小数点数」「日付」「時刻」「文字列(長さ指定)」「ユーザー設定」があります。 自分でテストで試用するのでしたら、他のタブでは「エラーメッセージ」を設定してみて試してみてください。
- imogasi
- ベストアンサー率27% (4737/17069)
普通に、3:00とセル(どこでも同じ(微修正は必要)だが、A1セルとする)に入力すると Sub test01() MsgBox Cells(1, 1).Value End Sub (そのセルの表示形式を「数値」に設定したときと同じ値ですが)、 で確認できるように、セルの値は、0.125と設定されている。 これは =3/24 の値 です。エクセルの時刻的には、すなわち午前3時の値です。 これを、表示形式の設定で、15時相当の値に変えることはできません。 表示形式の設定ではデータ加工的なことはできません。 PM,AMという表示形式の設定はありますが、セルの実際の「値」が、午前か午後の範囲かによって、表示にAMかPMを付け加える機能にしか過ぎません。 ですから、セルの値をそのままにしておいて、値的に 0.625 <ーー =15/25 に相当する表示にする、ことはできません。また同じセルで関数を働かせて、値を変化させることは、エクセル関数式の原理的にできません。 何かの設定(例 オプションの設定)を設けて、そう自動的にさせるとすれば、マイクロソフトの仕様追加が必要ですので、出来ません。 ーーー どうしてもやるなら、利用者の周知と了解を得て、VBAなら、下記程度までは出来る。あくまで個人のお遊びでやってみたということです。しかし誰もやらないだろう。 ーー データが変わった時、Changeイベントが起こるが、それを捉えて、内部・裏で値を 加工する。 時刻範囲については、社内的な、了解事項が必要と思う。 Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, Range("A1:A1000")) Then MsgBox "A列指定範囲データ" '0:00から8:00まで If Target.Value > TimeValue("00:00") And Target.Value < TimeValue("8:00") Then Target = Target + 0.5 '12時間加える End If End If End Sub 現実的ではないことと思い、十分に多数データで、テストしていないので、お許しを。
- SI299792
- ベストアンサー率47% (774/1621)
同じセルでは無理ですね。 A1に6:00 を入力するとして、 =A1+0.5
補足
ご回答ありがとうございます。 確かに9:00と入力すると、21:00になります。 ここでまた疑問がでてきました。 同じ9:00と入力すると、9:00(午前の)に表示したい場合はどうなりますか。
次の式を入力してください: = TEXT(セルを選択、 "[hh]") これでいけませんかね?
補足
回答ありがとうございます。 やってみましたが、9:00と入力すると、09と表示されてしまいます。
補足
ご回答ありがとうございます。 そのように区別して入力するにはどうすればいいのですか?