Excelで時刻入力が日付+時刻になる原因と直し方|hh:mm書式設定と勤務表のコツ

Excelで勤務表の開始・終了時刻を入力すると、なぜか「日付+時刻」表示に変わってしまう…。数式は正しいのに見た目が崩れて毎回直すのは面倒です。原因はほとんどが“表示形式”なので、最短で直しつつ再発も防ぐ手順をまとめます。

目次

「9:30」と入れたのに日付が付くのは、ほぼ書式(表示形式)のせい

まず結論から言うと、セルに入力した値そのものが壊れているわけではなく、セルの表示形式が「日付+時刻」になっているケースが大半です。Excelは「時刻」も「日付」も同じ仕組み(連続した数値)で管理しているため、表示形式が“日付を含む形式”だと、時刻だけを入力しても日付が付いて見えます。

入力した内容セルの表示形式見た目(表示)内部の値(イメージ)
9:30時刻(hh:mm)09:300.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.2506:001900/1/0 6:00(例)1日の1/4(6時間)
0.512:001900/1/0 12:00(例)正午
1.000:001900/1/1 0:00(例)基準日ちょうど
1.395833…09:301900/1/1 9:30(例)基準日+9:30

この仕組みを知っていると、「日付が付く=Excelが勝手に壊した」ではなく、“見え方の設定が日付寄りになっているだけ”と切り分けできます。

最短の解決策:入力前に列を「時刻(hh:mm)」に書式設定する

勤務表のように、同じ列に繰り返し時刻を入力する場合は、入力前に列ごと書式設定しておくのが一番確実です。あとから直すより、入力ミスも減ります。

手順(列全体を時刻表示にする)

  1. 開始時刻・終了時刻など、時刻を入れる列全体を選択します(列見出しのA/B/C…をクリック)。
  2. キーボードでCtrl+1(セルの書式設定)を開きます。
  3. 「表示形式」タブで「時刻」を選び、一覧から13:30のような形式(24時間表記)を選びます。
  4. 一覧にピッタリの形式がなければ「ユーザー定義」でhh:mm(またはh:mm)を指定します。
  5. 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)

この式の結果が正しく時刻になったら、次の手順で元の列に置き換えるとスッキリします。

  1. 上の式を下までコピーして結果を作る
  2. 結果の範囲をコピー
  3. 元の範囲に「形式を選択して貼り付け」→「値」を選択
  4. 表示形式をhh:mm(またはh:mm)に統一

「文字列の時刻」が混ざっているケース(全角コロンやコピペ由来)

見た目は「9:30」でも、実は文字列で保存されていると、集計や差分計算でつまずきます。特に多いのが次のパターンです。

  • IMEの影響で「9:30」(全角コロン)になっている
  • 別システムからコピペして、時刻が文字列扱いになっている
  • 先頭にアポストロフィ(')が付いている

最速で直す:全角コロンを半角に置換してから変換

全角コロンが原因なら、置換で一気に改善することがあります。

  1. 対象範囲を選択
  2. Ctrl+H(置換)
  3. 「検索する文字列」に:(全角)、「置換後の文字列」に:(半角)
  4. 「すべて置換」

それでも数値にならない場合は、次の式で“時刻として解釈”させます。

=TIMEVALUE(A2)

結果が出たら、前述の通り「値貼り付け」で置き換えます。

勤務表で混乱しがち:「時刻」と「経過時間(勤務時間)」は別物

勤務表をExcelで作るとき、初心者〜中級者が一度はハマるのがここです。

  • 開始時刻・終了時刻:“時計の時刻”(1日の中の位置)
  • 勤務時間の合計:“経過時間”(何時間働いたか)

どちらも内部的には似た値で扱えますが、表示形式は分けて設計した方がトラブルが減ります。

経過時間の表示は [h]:mm が鉄板(24時間を超えても崩れない)

合計勤務時間が24時間を超える可能性がある場合、hh:mmのままだと表示が折り返されます。たとえば25時間30分は、hh:mmだと「01:30」に見えてしまいます。

実際の経過時間hh:mmでの表示[h]:mmでの表示どちらを使う?
8時間15分08:158: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)や文字列混入を減らしたいなら、時刻列に入力規則を入れておくと効果的です。

  1. 時刻列を選択
  2. 「データ」→「データの入力規則」
  3. 「許可」を「時刻」
  4. 「次の値の間」で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で取り除く。ここまで整えると、入力のストレスも集計ミスも大幅に減らせます。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次