「9時30分」をスプレッドシートに入力したいのに、セルに「9:30」と手打ちしたら文字列になってしまった。そんな経験はありませんか?
文字列のままだと時間の計算ができず、勤怠表やスケジュール表で困りますよね。
そんなときに使うのがTIME関数です。時・分・秒の3つの数値を渡すだけで、正しい時刻データを作ってくれます。
この記事では基本の書き方から、勤怠表での活用や時間の加算テクニックまで紹介します。
スプレッドシートのTIME関数とは?時分秒から時刻を作る関数
TIME関数(読み方: タイム関数)は、時・分・秒の3つの数値から時刻データを作成する関数です。
名前は英語の「time(時間)」がそのまま関数名になっています。
スプレッドシートの時刻は内部的に「シリアル値」という小数で管理されています。たとえば「12:00:00」(正午)はシリアル値で「0.5」です。1日を「1」として、経過した割合を小数で表す仕組みです。
TIME関数を使えば、このシリアル値を意識せずに正しい時刻を作成できます。手入力した「9:30」が文字列になるリスクもありません。
TIME関数でできることをまとめると、次のとおりです。
- 時・分・秒の数値から正確な時刻データを作る
- 別々のセルにある時・分・秒を1つの時刻にまとめる
- 既存の時刻に一定時間を加算・減算する
- 勤怠表で出勤時刻や休憩時間を数式で管理する
NOTE
TIME関数はGoogleスプレッドシートとExcelの両方で同じ構文で使えます。ファイル共有時も安心です。
TIME関数の基本の書き方
構文と引数
=TIME(時, 分, 秒)
カッコの中に「時」「分」「秒」を順番に入れるだけです。引数は3つとも必須です。
引数の詳細
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| 時 | 必須 | 時を表す数値(0〜23が基本) |
| 分 | 必須 | 分を表す数値(0〜59が基本) |
| 秒 | 必須 | 秒を表す数値(0〜59が基本) |
分や秒に60以上の値を指定すると、自動で繰り上がります。たとえば分に「90」を指定すると1時間30分として計算されます。
同じように、時に24以上を指定すると24で割った余りが使われます。=TIME(25,0,0) は「1:00:00」になります。
TIP
DATE関数の「ロールオーバー」と同じ仕組みです。DATE関数は年・月・日から日付を作りますが、TIME関数は時・分・秒から時刻を作ります。日付と時刻のペア関数と覚えておくと便利ですよ。
TIME関数の基本的な使い方
もっともシンプルな使い方です。時・分・秒を直接指定してみましょう。
=TIME(9, 30, 0)
結果は「9:30:00」です。確実に時刻型のデータが作成されます。
セル参照と組み合わせるケースも見てみましょう。A1に「9」、B1に「30」、C1に「0」が入っているとします。
=TIME(A1, B1, C1)
結果は同じく「9:30:00」です。セルの値を変更すれば時刻も自動で更新されます。
秒を省略したい場合でも、引数は3つとも必須です。秒が不要なら「0」を指定してください。
=TIME(14, 15, 0)
結果は「14:15:00」(午後2時15分)です。
繰り上がりの動作
分や秒が範囲外でも、自動で繰り上がります。
| 数式 | 結果 | 説明 |
|---|---|---|
=TIME(0, 90, 0) | 1:30:00 | 90分 → 1時間30分に繰り上げ |
=TIME(0, 0, 3600) | 1:00:00 | 3600秒 → 1時間に繰り上げ |
=TIME(1, 70, 80) | 2:11:20 | 70分+80秒がそれぞれ繰り上げ |
この繰り上がりを活用すれば、「合計150分を時刻に変換する」といった計算にも使えますよ。
実務で使えるTIME関数の活用例
勤怠表で勤務時間を計算する
勤怠表でよく使うパターンです。出勤時刻と退勤時刻から、休憩を引いた実働時間を求めましょう。
A2に出勤時刻「9:00」、B2に退勤時刻「18:00」が入っているとします。休憩は1時間です。
=B2 - A2 - TIME(1, 0, 0)
結果は「8:00:00」(8時間)です。TIME(1,0,0)で1時間分の休憩を引いています。
休憩が1時間30分なら、TIME(1,30,0)に変えるだけです。
=B2 - A2 - TIME(1, 30, 0)
結果は「7:30:00」です。休憩時間をTIME関数で柔軟に変えられるのがポイントですよ。
開始時刻に一定時間を加算する
会議の終了時刻を自動計算するケースです。A2に開始時刻「10:00」が入っていて、会議は1時間30分とします。
=A2 + TIME(1, 30, 0)
結果は「11:30:00」です。開始時刻にTIME関数で加算するだけです。
15分刻みのスケジュール表を作るなら、こう書きます。
=A2 + TIME(0, 15, 0)
A2が「9:00」なら結果は「9:15:00」です。この数式を下にコピーすれば、15分刻みの時刻一覧が作れます。
時刻の表示形式をTEXT関数でカスタマイズする
TIME関数の結果を「午前9時30分」のように表示したい場合は、TEXT関数と組み合わせます。
=TEXT(TIME(9,30,0), "h時mm分")
結果は「9時30分」という文字列です。
午前・午後をつけたい場合はこうです。
=TEXT(TIME(14,0,0), "AM/PMh:mm")
結果は「PM2:00」になります。
WARNING
TEXT関数の結果は文字列です。時間計算には使えないので注意してください。表示用として使い分けましょう。
時刻シリアル値の仕組みと表示形式
TIME関数を使いこなすには、シリアル値の仕組みを知っておくと便利です。
スプレッドシートでは、時刻を0から1未満の小数で管理しています。
| 時刻 | シリアル値 | 計算式 |
|---|---|---|
| 0:00:00(午前0時) | 0 | 0 / 24 |
| 6:00:00(午前6時) | 0.25 | 6 / 24 |
| 12:00:00(正午) | 0.5 | 12 / 24 |
| 18:00:00(午後6時) | 0.75 | 18 / 24 |
| 23:59:59 | 0.99999 | ほぼ1 |
1日を「1」として、午前0時からの経過割合を小数で表しています。正午は1日の半分なので0.5です。
このため、TIME関数は0:00:00〜23:59:59の範囲しか返せません。24時間を超える累計時間(「32時間15分」など)を表示したい場合があります。その場合はセルの表示形式を「経過時間」に変更しましょう。
表示形式の設定手順は次のとおりです。
- セルを選択する
- 「表示形式」メニュー →「数値」→「カスタム数値形式」を選ぶ
[h]:mm:ssと入力して「適用」をクリックする
[h] のカッコが24時間超を許容する書式です。これで「32:15:00」のように表示できますよ。
NOTE
DATE関数が日付のシリアル値(整数部分)を扱うのに対し、TIME関数は時刻のシリアル値(小数部分)を扱います。日付と時刻は合わせて1つの数値で表現されています。「2026/3/19 12:00」のシリアル値は「46097.5」です。
HOUR・MINUTE・SECOND関数との連携
TIME関数が「時・分・秒 → 時刻」を作るのに対し、HOUR・MINUTE・SECOND関数は「時刻 → 時・分・秒」に分解します。逆方向の操作です。
| 関数 | 操作の方向 | 構文 | 例 |
|---|---|---|---|
| TIME | 時分秒 → 時刻 | =TIME(9,30,0) | → 9:30:00 |
| HOUR | 時刻 → 時 | =HOUR("9:30:00") | → 9 |
| MINUTE | 時刻 → 分 | =MINUTE("9:30:00") | → 30 |
| SECOND | 時刻 → 秒 | =SECOND("9:30:00") | → 0 |
この4関数を組み合わせれば、時刻データを自在に操作できます。
時刻の端数を切り上げる(15分単位に丸める)
勤怠管理で「退勤時刻を15分単位に切り上げる」場面です。A2に「17:38」が入っているとします。
=TIME(HOUR(A2), CEILING(MINUTE(A2), 15), 0)
MINUTE関数で分を取り出し、CEILING関数で15の倍数に切り上げています。結果は「17:45:00」です。
切り捨てなら、CEILINGをFLOOR関数に変えます。
=TIME(HOUR(A2), FLOOR(MINUTE(A2), 15), 0)
結果は「17:30:00」です。出勤時刻の切り上げ・退勤時刻の切り捨てに便利ですよ。
時刻を分単位の数値に変換する
「9:30」を「570分」のように、分単位の数値に変換したいケースです。
=HOUR(A2) * 60 + MINUTE(A2)
A2が「9:30」なら、9 * 60 + 30 = 570です。集計や比較がしやすくなります。
逆に、分単位の数値を時刻に戻すならTIME関数を使います。
=TIME(0, 570, 0)
結果は「9:30:00」です。繰り上がりの仕組みのおかげで、分をそのまま渡すだけで正しい時刻になりますよ。
DATE関数との対比|日付と時刻の違い
TIME関数とDATE関数は「ペア関数」です。扱う対象が日付か時刻かの違いだけで、考え方は同じです。
| 項目 | DATE関数 | TIME関数 |
|---|---|---|
| 用途 | 年月日から日付を作る | 時分秒から時刻を作る |
| 構文 | =DATE(年, 月, 日) | =TIME(時, 分, 秒) |
| シリアル値 | 整数部分(1, 2, 3…) | 小数部分(0〜0.999…) |
| 範囲 | 1899/12/31〜 | 0:00:00〜23:59:59 |
| 繰り上がり | 月13→翌年1月 | 分60→1時間 |
| 分解関数 | YEAR / MONTH / DAY | HOUR / MINUTE / SECOND |
日付と時刻を組み合わせたい場合は、両方を足すだけです。
=DATE(2026, 3, 19) + TIME(14, 30, 0)
結果は「2026/3/19 14:30:00」です。シリアル値の整数部分(日付)と小数部分(時刻)が合算されます。
TIME関数のよくあるエラーと対処法
| エラー・症状 | 原因 | 対処法 |
|---|---|---|
| #VALUE! | 引数に文字列が入っている | セル参照先が数値かどうか確認する |
| 数字が表示される | 表示形式が「数値」になっている | 表示形式を「時刻」に変更する |
| 「1899/12/30」と表示される | 表示形式が「日付」になっている | 表示形式を「時刻」に変更する |
| 24時間超が表示できない | TIME関数の上限は23:59:59 | カスタム書式 [h]:mm:ss を設定する |
数字や日付が表示されるとき
TIME関数の結果が「0.395833」のような数字で表示される場合があります。これはセルの表示形式が「数値」になっているためです。
また「1899/12/30」と表示される場合は、表示形式が「日付」になっています。
いずれもセルを選択して「表示形式」→「数値」→「時刻」を選べば正しく表示されます。TIME関数自体は正常に動作しているので安心してください。
24時間を超える計算をしたいとき
TIME関数は0:00:00〜23:59:59の範囲しか返せません。残業を含む月間の合計労働時間のように、24時間を超える値が必要な場合があります。その場合はTIME関数ではなく時刻の足し算で計算します。
=SUM(B2:B31)
合計結果が24時間を超えても、カスタム数値形式 [h]:mm:ss を設定すれば正しく表示されますよ。
まとめ
TIME関数は、時・分・秒の3つの数値から時刻データを作成する関数です。
ポイントを整理します。
- 構文は
=TIME(時, 分, 秒)の3引数。確実に時刻型データが作れる - 勤怠表の休憩時間控除や時間加算に便利
- 分や秒が60以上でも自動で繰り上がる
- HOUR・MINUTE・SECOND関数は逆方向の分解関数
- DATE関数が日付のペア、TIME関数は時刻のペア
- 24時間超を表示するにはカスタム書式
[h]:mm:ssを使う - TEXT関数で表示形式をカスタマイズできる
まずは =TIME(9, 30, 0) で時刻データを作るところから試してみてください。
