Excelの日付+時刻から時刻だけを抽出して「5:00 – 7:00」と表示する方法(TEXT関数・MOD関数)

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:mm5:00一般的な予定表。ゼロ埋め不要ならこれ。
hh:mm05:00帳票・一覧で桁を揃えたい。
h:mm:ss5: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:00TEXTで整形して結合

この構造にしておけば、「見た目はレンジ」「中身は計算可能」を両立できます。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結合)の二段構えにしておくと、作り直しをほぼ防げます。

この記事を書いた人

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

コメント

コメントする

目次