Excelで開始・終了が「日付+時刻」で入っていると、予定表や一覧で“時刻だけ”を見せたい場面がよくあります。この記事では「5:00 – 7:00」のように表示する最短の式から、計算にも強い作り方、つまずきやすいポイントまでまとめて解説します。
まず結論:表示だけならTEXT関数で時刻に整形して結合する
開始(例:A2)と終了(例:B2)が 日付+時刻 の値でも、表示したいのが「時刻だけ」なら TEXT で時刻表示に変換し、文字列として結合するのが簡単です。
| やりたいこと | 式 | ポイント |
|---|---|---|
| 時刻だけを「開始 – 終了」で表示(基本) | =TEXT(A2,"h:mm") & " - " & TEXT(B2,"h:mm") | 表示専用として最短。時刻の見た目を統一しやすい。 |
| AM/PM 付きで表示 | =TEXT(A2,"h:mm AM/PM") & " - " & TEXT(B2,"h:mm AM/PM") | 午前/午後を区別したいならこちら。 |
| ゼロ埋めして「05:00 – 07:00」 | =TEXT(A2,"hh:mm") & " - " & TEXT(B2,"hh:mm") | 桁を揃えたい一覧・帳票向け。 |
ここで重要なのは、TEXT の結果は 文字列 になることです。見た目としては理想どおりでも、あとで差分計算・並べ替え・ピボット集計などをする場合は、次の章の「数値として時刻を取り出す方法」も合わせて押さえておくと失敗しにくくなります。
そもそも「日付+時刻」はどういう値なのか(理解すると応用が効く)
Excelの「日付+時刻」は、見た目は “2025/8/30 17:00” のようでも、内部的には 連番(シリアル値) です。
- 整数部分:日付(例:2025/8/30)
- 小数部分:時刻(例:17:00)
この仕組みのおかげで、「日付を落として時刻だけ取り出す」ことが簡単にできます。代表例は次の2つです。
| 目的 | 式 | 意味 |
|---|---|---|
| 時刻だけを数値として取り出す(おすすめ) | =MOD(A2,1) | 1日(=1)で割った余り=時刻の小数部分 |
| 時刻だけを数値として取り出す(同等) | =A2-INT(A2) | 日付(整数)を引いて小数(時刻)だけ残す |
この「時刻の小数」を別セルに取り出しておけば、セルの表示形式 を時刻にするだけで見た目は「5:00」や「17:00」になりますし、時間差の計算にもそのまま使えます。
目的別に選ぶ:おすすめはこの3パターン
同じ「5:00 – 7:00」表示でも、用途によって最適解が変わります。迷ったら、次の表で選ぶのが早いです。
| パターン | 向いている用途 | 作り方 | 強み | 注意点 |
|---|---|---|---|---|
| A:表示だけ最優先 | 予定一覧、印刷、メール貼り付け | TEXTで整形して結合 | 式が短い/見た目が安定 | 結果が文字列 |
| B:計算もしたい | 勤務時間、滞在時間、集計 | MODで時刻を数値化→表示は書式で | 計算・並べ替え・集計に強い | 最終表示で結合すると文字列になる |
| C:「午後の17時」を「5:00」として見せたい | あえて12時間表記で“時刻だけ”を見せたい | 時間を12時間に丸めて表示 | 「5:00 – 7:00」の形に寄せられる | AM/PMが消えるので誤解リスク |
次章からは、実務で使いやすい順に具体例を出していきます。
パターンA:最短で「5:00 – 7:00」を作る(TEXT+結合)
開始がA2、終了がB2に入っている前提で、表示用セル(例:C2)に次を入れます。
=TEXT(A2,"h:mm") & " - " & TEXT(B2,"h:mm")
見た目を揃えるなら、次のように分けて考えると設計が楽になります。
- 「時刻の見た目」=
TEXT(セル,"書式") - 「開始と終了をつなぐ」=
& " - " &
よく使う書式(h:mm / hh:mm / h:mm:ss)
| 書式 | 表示例 | 用途 |
|---|---|---|
h:mm | 5:00 | 一般的な予定表。ゼロ埋め不要ならこれ。 |
hh:mm | 05:00 | 帳票・一覧で桁を揃えたい。 |
h:mm:ss | 5:00:00 | 秒まで必要なログ・システム系データ。 |
「AM/PMまで必要かどうか」で、次のどちらかを選ぶのも実務的です。
- 午前/午後を区別しない:
h:mm - 午前/午後を区別する:
h:mm AM/PM
注意点として、午前/午後を区別しない表記は、見る人が「5:00が朝か夕方か」を読み違える可能性があります。チーム共有の表や、後から見返す帳票では、24時間表記やAM/PM付きのほうが事故が減ります。
パターンB:計算にも強い“時刻だけ”の取り出し(MOD+表示形式)
勤務時間や滞在時間など、あとで計算したくなる可能性が少しでもあるなら、まずは 時刻を数値として別セルに抽出 しておくのが安全です。
手順:時刻だけの列を作る
例として、次のような表を作るイメージです。
| 列 | 内容 | 例 | 式(例) |
|---|---|---|---|
| A | 開始(日時) | 8/30/2025 17:00 | (入力値) |
| B | 終了(日時) | 8/30/2025 19:00 | (入力値) |
| C | 開始(時刻のみ・数値) | 17:00 | =MOD(A2,1) |
| D | 終了(時刻のみ・数値) | 19:00 | =MOD(B2,1) |
| E | 表示用(レンジ表記) | 17:00 – 19:00 | =TEXT(C2,"h:mm") & " - " & TEXT(D2,"h:mm") |
| F | 所要時間 | 2:00 | =B2-A2 または =D2-C2 |
C列・D列(時刻のみ)は、セルの表示形式を「時刻」にしておけば見やすくなります。おすすめは次のどちらかです。
- 時刻:
h:mm(例:17:00) - 時刻:
hh:mm(例:17:00 も 05:00 も桁揃え)
この設計にしておくと、E列は見た目用(文字列)として割り切りつつ、C/D/F列で計算や集計ができます。実務で後から要望が増える(「合計時間を出して」「遅い順に並べて」など)場合に強い作り方です。
パターンC:午後の「17:00」を「5:00」として見せたい場合(12時間に丸める)
「5:00 PM → 5:00」のように、あえてAM/PMを外して12時間表記に寄せたいケースもあります(例えば、イベントの時間帯だけをシンプルに見せたいなど)。
ただしこの表記は、朝5:00と夕方5:00が同じに見えてしまうため、共有範囲や用途を選びます。採用するなら、一覧のどこかに「午後の枠」など前提が分かる補足があると安心です。
12時間に丸めて「h:mm」表示する一例は次のとおりです(開始:A2、終了:B2)。
=TEXT(TIME(IF(MOD(HOUR(A2),12)=0,12,MOD(HOUR(A2),12)),MINUTE(A2),0),"h:mm")
& " - " &
TEXT(TIME(IF(MOD(HOUR(B2),12)=0,12,MOD(HOUR(B2),12)),MINUTE(B2),0),"h:mm")
ポイントは次の2つです。
MOD(HOUR( ),12)で 0〜11 に丸める(ただし12時は0になる)- 12時だけは
0 → 12に戻す(IF(...=0,12,...))
「秒は常に0でよい」場合は上記のように TIME(時,分,0) で組み立てるとスッキリします。秒も必要なら、最後の 0 を SECOND(A2) に変えてください。
日付が変わる(23:00〜翌1:00など)ときの扱い
開始と終了が「日付+時刻」で入っているなら、日跨ぎは基本的に 終了側の“日付”が翌日 になっているはずです。その場合は、単純に TEXT で時刻だけ表示しても問題ありません。
一方で、データによっては「開始と終了が同じ日付のまま」になってしまい、終了が開始より小さく見えるケースがあります(例:開始 23:00、終了 1:00)。この場合、差分計算がマイナスになったり、表示が混乱したりします。
終了が開始より小さいときは「翌日扱い」にする
終了(B2)が開始(A2)より小さいなら、終了に1日(=1)を足して翌日扱いにするのが定番です。
=TEXT(A2,"h:mm") & " - " & TEXT(IF(B2<A2,B2+1,B2),"h:mm")
所要時間の計算も同じ考え方で安定します。
=IF(B2<A2,B2+1,B2)-A2
計算結果の表示形式を [h]:mm にしておくと、合計時間が24時間を超えるケースでも崩れません(勤務集計などで特に便利です)。
「TEXTにしたら並べ替え・集計が変になった」を防ぐコツ
TEXT は便利ですが、結果が文字列になるため、次のような副作用が起きやすいです。
- 時刻の並べ替えが「文字列順」になる(例:10:00 が 2:00 より前に来る)
- ピボットや集計で時刻として扱えない
- 後から「平均との差」「最小/最大」などを出しづらい
対策はシンプルで、計算・集計に使う列は数値(時刻)で持ち、表示用の列だけをTEXTで作ることです。おすすめの構成は次のとおりです。
| 列の役割 | 中身 | 例 | おすすめ |
|---|---|---|---|
| 元データ | 日付+時刻 | 2025/8/30 17:00 | そのまま保持(加工しない) |
| 計算用 | 時刻(数値) | 17:00 | =MOD(A2,1) 等で抽出 |
| 表示用 | 「開始 – 終了」文字列 | 17:00 – 19:00 | TEXTで整形して結合 |
この構造にしておけば、「見た目はレンジ」「中身は計算可能」を両立できます。Excel運用で一番トラブルが少ない型です。
よくあるエラー・つまずき(原因と解決策)
| 症状 | よくある原因 | 解決策 |
|---|---|---|
| 式を入れても表示が変わらない/意図しない表示 | 表示形式と目的が噛み合っていない | 「表示専用」ならTEXT。「計算したい」ならMODで数値を作り、セル書式を時刻へ。 |
#VALUE! になる | 元の日時が“文字列”として入っている | まず日時を数値化する(例:=VALUE(A2) が効く場合あり)。取り込みなら「区切り位置」やPower Queryで型を日時に。 |
| 並べ替えが時間順にならない | TEXTで文字列にしている | 並べ替えや集計に使う列は、MOD等で数値の時刻を保持する。 |
| 所要時間がマイナスになる(夜跨ぎ) | 終了が翌日なのに日付が同日扱い | IF(B2<A2,B2+1,B2)-A2 のように翌日補正を入れる。 |
| 合計が24時間を超えると表示が崩れる | 表示形式が通常のh:mmになっている | 合計用セルの表示形式を [h]:mm にする(経過時間向け)。 |
見栄えを整える小技(実務で差がつくポイント)
区切り記号を「-」以外にする
予定表の雰囲気に合わせて、区切り記号を変えるだけで見た目が整います。
- シンプル:
" - " - 日本語に馴染む:
" ~ " - デザイン寄り:
" – "(エンダッシュ)
例えば「~」にするなら次のように置き換えるだけです。
=TEXT(A2,"h:mm") & " ~ " & TEXT(B2,"h:mm")
LET関数で読みやすくする(使える環境なら)
Microsoft 365などで LET が使えるなら、式が長くなるほど可読性が上がります。
=LET(s,A2,e,B2, TEXT(s,"h:mm") & " - " & TEXT(e,"h:mm"))
「開始=s」「終了=e」のように意味のある名前を付けられるため、後から見直すときに強いです。
この用途ならこの式:迷ったときの“テンプレ”
最後に、用途別のテンプレをまとめます。まずはここから当てはめて、必要に応じて書式だけ調整するのがおすすめです。
| 用途 | おすすめ式 |
|---|---|
| とにかく表示だけ(短く) | =TEXT(A2,"h:mm") & " - " & TEXT(B2,"h:mm") |
| AM/PMも表示して誤解を防ぐ | =TEXT(A2,"h:mm AM/PM") & " - " & TEXT(B2,"h:mm AM/PM") |
| 計算もする(時刻だけを数値で保持) | 開始:=MOD(A2,1) / 終了:=MOD(B2,1) |
| 夜跨ぎを吸収して表示したい | =TEXT(A2,"h:mm") & " - " & TEXT(IF(B2<A2,B2+1,B2),"h:mm") |
「見た目を整える」だけならTEXTが最短ですが、Excel運用は後から要件が増えがちです。少しでも集計や計算の可能性があるなら、時刻を数値で持つ列(MOD)+表示用の列(TEXT結合)の二段構えにしておくと、作り直しをほぼ防げます。

コメント