Excelで勤務表の開始・終了時刻を入力すると、なぜか「日付+時刻」表示に変わってしまう…。数式は正しいのに見た目が崩れて毎回直すのは面倒です。原因はほとんどが“表示形式”なので、最短で直しつつ再発も防ぐ手順をまとめます。
「9:30」と入れたのに日付が付くのは、ほぼ書式(表示形式)のせい
まず結論から言うと、セルに入力した値そのものが壊れているわけではなく、セルの表示形式が「日付+時刻」になっているケースが大半です。Excelは「時刻」も「日付」も同じ仕組み(連続した数値)で管理しているため、表示形式が“日付を含む形式”だと、時刻だけを入力しても日付が付いて見えます。
| 入力した内容 | セルの表示形式 | 見た目(表示) | 内部の値(イメージ) |
|---|---|---|---|
| 9:30 | 時刻(hh:mm) | 09:30 | 0.395833…(1日のうちの9:30分) |
| 9:30 | 日付+時刻(例:yyyy/m/d h:mm) | 1900/1/0 9:30 など(環境により表記差) | 0.395833…(値は同じでも表示が違う) |
| 2026/1/8 9:30 | 日付+時刻 | 2026/1/8 9:30 | (日付の通し番号)+0.395833… |
原因を理解するとラクになる:Excelは「日付」と「時刻」を数値として持っている
Excelの日時は、ざっくり言うと次のように保存されています。
- 日付:ある基準日からの通し番号(例:1、2、3…)
- 時刻:1日(24時間)を1.0とした小数(例:12:00=0.5)
つまり「9:30」は、Excel内部では「0.395833…」のような小数です。これに「日付の通し番号」が足されると「日付+時刻」になります。見た目を決めるのは値ではなく、ほとんどが表示形式です。
| 内部の値 | 時刻表示(hh:mm) | 日付+時刻表示(例:yyyy/m/d h:mm) | 意味 |
|---|---|---|---|
| 0.25 | 06:00 | 1900/1/0 6:00(例) | 1日の1/4(6時間) |
| 0.5 | 12:00 | 1900/1/0 12:00(例) | 正午 |
| 1.0 | 00:00 | 1900/1/1 0:00(例) | 基準日ちょうど |
| 1.395833… | 09:30 | 1900/1/1 9:30(例) | 基準日+9:30 |
この仕組みを知っていると、「日付が付く=Excelが勝手に壊した」ではなく、“見え方の設定が日付寄りになっているだけ”と切り分けできます。
最短の解決策:入力前に列を「時刻(hh:mm)」に書式設定する
勤務表のように、同じ列に繰り返し時刻を入力する場合は、入力前に列ごと書式設定しておくのが一番確実です。あとから直すより、入力ミスも減ります。
手順(列全体を時刻表示にする)
- 開始時刻・終了時刻など、時刻を入れる列全体を選択します(列見出しのA/B/C…をクリック)。
- キーボードで
Ctrl+1(セルの書式設定)を開きます。 - 「表示形式」タブで「時刻」を選び、一覧から13:30のような形式(24時間表記)を選びます。
- 一覧にピッタリの形式がなければ「ユーザー定義」で
hh:mm(またはh:mm)を指定します。 - OKを押してから、
9:30などの時刻を入力します。
hh:mm と h:mm はどちらが良い?
勤務表では見た目の統一が大事なので、次の基準が使いやすいです。
- 見た目を揃えたい:
hh:mm(09:05のように0埋め) - 入力の自然さを優先:
h:mm(9:05のように先頭0なし)
どちらも計算結果は同じです。表示の好みで選んで問題ありません。
「書式を変えたのに直らない」時のチェックポイント
「時刻表示にしたのに、まだ日付が付いて見える」「一部のセルだけおかしい」という場合は、原因が1つではないことが多いです。次の表で切り分けると早いです。
| 症状 | よくある原因 | 見分け方 | 対処 |
|---|---|---|---|
| 表示だけが日付+時刻になる | 表示形式が日付+時刻 | セルを選択→書式がyyyy/m/d系 | 表示形式をhh:mmへ |
| 同じ列なのに一部だけ直らない | セルごとに書式がバラバラ/コピー貼り付けで混入 | 列全体ではなくセル単体で書式が違う | 列全体を選択して書式統一 |
| 日付が付いた値が“中身として”入っている | 日付+時刻の値(通し番号+小数)が混ざっている | 数式バーに日付が見える/フィルターで日付が効く | 日付を取り除く(MOD等) |
| 計算できない/左寄せになる | 文字列として入力されている(例:全角コロン) | 足し算しても変化しない/=ISNUMBER()がFALSE | 文字列→時刻へ変換(置換、TIMEVALUE等) |
すでに「日付+時刻」になってしまったセルを直す方法
ここからは、すでに入力済みのデータをどう直すかです。ポイントは、表示が変なだけなのか/値として日付が混ざっているのかで作業が変わることです。
表示形式を変えるだけで直るケース(いちばん多い)
入力値が時刻の小数(0〜1未満)だけなら、表示形式をhh:mmに変えるだけで見た目が整います。列全体を選んで書式設定すれば、同じ列で再発しにくくなります。
値として日付が混ざっているケース(再入力か、日付成分の除去)
たとえば「2026/1/8 9:30」のように、表示だけでなく値そのものが日付+時刻になっている場合、表示形式を変えても「9:30」にはなりますが、後々の集計で事故りやすいです(並べ替えや条件判定で“日付の差”が残るため)。
対処は次のどちらかが確実です。
- 入力し直せる量なら:該当セルの内容をクリアして再入力(最も安全)
- 量が多いなら:日付成分を取り除いて“時刻だけ”にする
日付成分を取り除く(MOD関数を使う)
日付+時刻の値から時刻だけを取り出すなら、MOD(セル,1)が定番です。1未満の小数部分(時刻)だけを残せます。
例:A2に日付+時刻が入っている場合
=MOD(A2,1)
この式の結果が正しく時刻になったら、次の手順で元の列に置き換えるとスッキリします。
- 上の式を下までコピーして結果を作る
- 結果の範囲をコピー
- 元の範囲に「形式を選択して貼り付け」→「値」を選択
- 表示形式を
hh:mm(またはh:mm)に統一
「文字列の時刻」が混ざっているケース(全角コロンやコピペ由来)
見た目は「9:30」でも、実は文字列で保存されていると、集計や差分計算でつまずきます。特に多いのが次のパターンです。
- IMEの影響で「9:30」(全角コロン)になっている
- 別システムからコピペして、時刻が文字列扱いになっている
- 先頭にアポストロフィ(
')が付いている
最速で直す:全角コロンを半角に置換してから変換
全角コロンが原因なら、置換で一気に改善することがあります。
- 対象範囲を選択
Ctrl+H(置換)- 「検索する文字列」に
:(全角)、「置換後の文字列」に:(半角) - 「すべて置換」
それでも数値にならない場合は、次の式で“時刻として解釈”させます。
=TIMEVALUE(A2)
結果が出たら、前述の通り「値貼り付け」で置き換えます。
勤務表で混乱しがち:「時刻」と「経過時間(勤務時間)」は別物
勤務表をExcelで作るとき、初心者〜中級者が一度はハマるのがここです。
- 開始時刻・終了時刻:“時計の時刻”(1日の中の位置)
- 勤務時間の合計:“経過時間”(何時間働いたか)
どちらも内部的には似た値で扱えますが、表示形式は分けて設計した方がトラブルが減ります。
経過時間の表示は [h]:mm が鉄板(24時間を超えても崩れない)
合計勤務時間が24時間を超える可能性がある場合、hh:mmのままだと表示が折り返されます。たとえば25時間30分は、hh:mmだと「01:30」に見えてしまいます。
| 実際の経過時間 | hh:mmでの表示 | [h]:mmでの表示 | どちらを使う? |
|---|---|---|---|
| 8時間15分 | 08:15 | 8:15 | どちらでもOK |
| 25時間30分 | 01:30(24時間で折り返し) | 25:30 | [h]:mm推奨 |
[h]:mmは「角括弧つきのh」がポイントで、経過時間として累積表示してくれます。月間集計、週次集計、複数人の合計などで特に効きます。
日跨ぎ(深夜勤務)を正しく計算する:負の時間を出さないコツ
開始が22:00、終了が6:00のように日付をまたぐと、単純な終了−開始はマイナスになります。勤務表ではよくあるので、最初から式を“日跨ぎ対応”にしておくと安心です。
方法:MODで常に0〜24時間の範囲に収める
=MOD(終了時刻-開始時刻,1)
休憩があるなら、次のように組み合わせます。
=MOD(終了時刻-開始時刻,1) - 休憩時間
結果のセルは[h]:mmにしておくと、見た目も計算も安定します。
方法:IFで終了が小さいときだけ「+1日」する
=IF(終了時刻<開始時刻, 終了時刻+1, 終了時刻) - 開始時刻
この方法は考え方が直感的で、後から見返したときにも理解しやすいのがメリットです。
「日付+時刻」が悪いとは限らない:設計として“あえて”入れるケース
今回の相談では「勝手に日付が付くのが困る」ですが、実務では逆に日付+時刻で持った方が安全な場面もあります。
- 日跨ぎ勤務が多く、開始日と終了日がズレる
- 勤怠の締め処理で「日付がないと判定できない」集計がある
- 実績の打刻データを取り込み、日時が必ず付いてくる
この場合は、入力列を次のように分けると管理しやすいです。
| 列 | 例 | おすすめ表示形式 | ねらい |
|---|---|---|---|
| 勤務日 | 2026/1/8 | 日付 | 締め・集計の基準 |
| 開始 | 9:30 | 時刻(hh:mm) | 入力のしやすさ |
| 終了 | 18:15 | 時刻(hh:mm) | 入力のしやすさ |
| 開始日時(計算列) | 2026/1/8 9:30 | 日付+時刻 | 日跨ぎ・精密計算用 |
| 終了日時(計算列) | 2026/1/8 18:15 | 日付+時刻 | 日跨ぎ・精密計算用 |
「入力は時刻だけでラクに」「計算は日時で厳密に」という分業にすると、入力者のストレスと集計の事故を両方減らせます。
再発防止の実務テク:列の書式を固定し、入力ルールも決める
書式を直しても、次のような操作で再発することがあります。
- 別のシートから日付+時刻のセルをコピーして貼り付けた
- 列の一部だけ書式が違うままになっている
- テンプレを使わず、毎回ゼロから表を作っている
おすすめ:Excelの「テーブル化」で書式を自動継承させる
勤務表の範囲を選んで「挿入」→「テーブル」にすると、新しい行を追加しても同じ書式が自動で適用されやすくなります。時刻列をhh:mmにしておけば、入力が増えても表示がブレにくくなります。
入力規則(データの入力規則)で“ありえない時刻”を防ぐ
入力ミス(例:99:99、24:60)や文字列混入を減らしたいなら、時刻列に入力規則を入れておくと効果的です。
- 時刻列を選択
- 「データ」→「データの入力規則」
- 「許可」を「時刻」
- 「次の値の間」で
0:00〜23:59(運用に合わせて調整)
さらに入力メッセージに「例:9:30 のように半角コロンで入力」などと書いておくと、現場での混乱が減ります。
よくある質問(勤務表での“あるある”をまとめて解消)
書式をhh:mmにしたのに、日付が消えないのはなぜ?
値として日付が混ざっている可能性があります。MOD(A2,1)で時刻だけを取り出せるか試してください。取り出せたら「値貼り付け」で置き換えるのが安全です。
合計時間が「1:30」になってしまう(本当は25:30)
合計セルの表示形式がhh:mmだと24時間で折り返します。合計の列・セルは[h]:mmにしてください。
開始・終了は合っているのに、勤務時間がマイナスになる
日跨ぎの可能性があります。=MOD(終了-開始,1)か、=IF(終了<開始,終了+1,終了)-開始のどちらかで計算してください。
「9:30」(全角)だと計算できない
文字列扱いになっていることが多いです。Ctrl+Hで全角コロンを半角に置換し、必要ならTIMEVALUEで変換してください。
入力のたびに書式が変わるのを完全に止めたい
Excelは“入力内容に合わせて賢く表示を整える”仕様もあるため、ゼロにはできません。ただし、列全体の書式を固定し、テーブル化+入力規則を組み合わせると、実務上はほぼ再発を防げます。
まとめ:勤務表は「列の書式を先に決める」と一気に安定する
時刻入力が「日付+時刻」になってしまう問題は、ほとんどが表示形式のミスマッチです。まずは時刻列をhh:mm(経過時間は[h]:mm)で統一し、すでに混入した日付はMODで取り除く。ここまで整えると、入力のストレスも集計ミスも大幅に減らせます。

コメント