ExcelのTIMEVALUE関数の使い方|文字列の時刻をシリアル値に変換する方法

スポンサーリンク

「勤怠データを取り込んだら時刻が文字列になっていて、差し引き計算ができない…」そんな経験はありませんか。見た目は時刻なのにExcelが時刻として認識してくれないと、勤務時間の集計でつまずきますよね。

そんなときに使うのがTIMEVALUE関数です。この記事では基本の書き方から、勤怠データの一括変換や経過時間の計算まで、実務パターンをまとめて紹介します。

この記事は次のような人におすすめ

– 勤怠システムや他ツールから取り込んだ時刻データが文字列になってしまった
– 文字列の時刻を計算や並べ替えに使えるようにしたい
– TIMEVALUE関数とVALUE関数の違いを整理したい

TIMEVALUE関数とは?

TIMEVALUE関数(読み方: タイムバリュー)は、文字列形式の時刻をシリアル値に変換する関数です。英語の「time(時刻)」+「value(値)」がそのまま関数名になっています。

Excelでは時刻を内部的に「シリアル値」という小数で管理しています。1日を「1」として、時刻を0から1の間の小数で表す仕組みです。たとえば12:00(正午)のシリアル値は「0.5」、18:00は「0.75」です。

セルに 10:30 と入力すると、通常はExcelが自動的にシリアル値として認識してくれます。ところが外部システムからのインポートや&での文字列結合などで「見た目は時刻だけど中身は文字列」という状態になることがあります。

TIMEVALUE関数は、こうした文字列をシリアル値に変換してくれます。時刻として計算や並べ替えに使えるようになりますよ。

文字列かどうかを見分けるコツ

セルの値が文字列になっていると、セルの左上に小さな緑の三角形(エラーインジケーター)が表示されることがあります。また、セルを選択して数式バーを見たとき、左寄せで表示されていれば文字列の可能性が高いです。

TIMEVALUE関数の書き方(構文と引数)

基本構文

=TIMEVALUE(時刻文字列)

引数は1つだけで、必須です。

引数の説明

引数必須/省略可内容
時刻文字列必須時刻を表す文字列を指定する。”10:30″ や “8:35 AM” のようにExcelが時刻として認識できる形式が必要

note

日付を含む文字列(”2025/4/1 10:30″など)を渡した場合、日付部分は無視されます。日付も含めて変換したいときは、VALUE関数を使ってください。

TIMEVALUE関数の基本的な使い方

文字列を直接指定して変換する

もっともシンプルな使い方です。ダブルクォーテーションで囲んだ時刻文字列を指定します。

=TIMEVALUE("10:30")

結果: 0.4375(シリアル値)

セルの表示形式が「標準」のままだと小数のまま表示されます。時刻として見たい場合は、表示形式を「時刻」に変更してください。

セル参照で変換する

A1に文字列 10:30 が入っている場合、次のように書きます。

=TIMEVALUE(A1)

結果: 0.4375(シリアル値)

勤怠データのインポートで時刻列が文字列になったとき、この形で隣の列に変換式を入れてオートフィルするのが定番のパターンです。

さまざまな時刻形式に対応する

TIMEVALUE関数はExcelが時刻として認識できる形式であれば変換できます。

=TIMEVALUE("10:30")       → 0.4375
=TIMEVALUE("10:30:00")    → 0.4375
=TIMEVALUE("10:30 AM")    → 0.4375
=TIMEVALUE("10:30 PM")    → 0.9375
=TIMEVALUE("22:30")       → 0.9375

24時間形式・AM/PM形式・秒付き形式など、幅広い形式に対応しています。

TIMEVALUE関数の実務活用パターン

勤怠データの時刻を一括変換する

勤怠管理システムから出力したCSVファイルをExcelで開くと、出退勤の時刻が文字列として取り込まれることがよくあります。

A列に文字列の出勤時刻が入っているとします。B列に変換式を入れましょう。

=TIMEVALUE(A2)

この式をB列にオートフィルすれば、一括変換できます。変換後のB列をコピーして「値のみ貼り付け」すれば、元のA列を置き換えることもできますよ。

tip

変換後にB列を「値のみ貼り付け」でA列に上書きすれば、補助列を残さずにすみます。貼り付けた後はA列の表示形式を「時刻」に変更するのを忘れずに。

文字列の時刻同士で勤務時間を計算する

文字列のままでは引き算ができませんが、TIMEVALUEで変換すれば計算できます。

A1に出勤時刻 9:00(文字列)、B1に退勤時刻 17:30(文字列)が入っているとします。

=TIMEVALUE(B1)-TIMEVALUE(A1)

結果: 0.354166…(表示形式を「時刻」にすると「8:30」と表示される)

勤務時間を時間単位の数値で取得したい場合は、24を掛けます。

=(TIMEVALUE(B1)-TIMEVALUE(A1))*24

結果: 8.5(8時間30分)

&で結合した時刻文字列をシリアル値に戻す

セルの値を&で結合すると、結果は文字列になります。時刻として使いたい場合はTIMEVALUE関数で変換しましょう。

A1に「10」(時)、B1に「30」(分)が入っているとします。

=TIMEVALUE(A1&":"&B1)

結果: 0.4375(10:30のシリアル値)

ただしこのケースでは、TIME関数=TIME(A1,B1,0) と書くほうがシンプルです。TIMEVALUEは「すでに時刻形式の文字列が存在する」場面で使うのがベストです。

TEXT関数で作った時刻文字列を元に戻す

TEXT関数はシリアル値を文字列に変換する関数で、TIMEVALUE関数とは逆の操作になります。

=TEXT(A1, "h:mm")          → "10:30"(文字列)
=TIMEVALUE("10:30")        → 0.4375(シリアル値)

TEXT関数で書式を整えた結果をさらに計算に使いたくなったら、TIMEVALUEで戻せることを覚えておくと便利です。

日付+時刻の文字列から時刻だけを取り出す

他システムから取り込んだデータに「2025/4/1 10:30」のような日付+時刻の文字列が入っていて、時刻部分だけが必要なケースがあります。

=TIMEVALUE(A1)

日付部分は自動的に無視されて、時刻のシリアル値だけが返ります。日付も含めた完全なシリアル値が必要な場合は、VALUE関数を使ってください。

よくあるエラーと対処法

TIMEVALUE関数で発生するエラーは、ほとんどが引数の文字列に関する問題です。

症状原因対処法
#VALUE! エラーが出る引数がExcelが認識できない時刻形式“10:30” のようにExcelが解釈できる形式に修正する
#VALUE! エラーが出る引数が空のセルを参照しているIF関数で空セルチェックを入れる: =IF(A1="","",TIMEVALUE(A1))
#VALUE! エラーが出るセル内に余分なスペースがあるTRIM関数でスペースを除去: =TIMEVALUE(TRIM(A1))
小数が表示されるセルの表示形式が「標準」のままセルの表示形式を「時刻」に変更する(TIMEVALUE関数の正常な動作。シリアル値が返っている)
すでに時刻のセルに使って同じ値が返る参照先がすでにシリアル値(文字列ではない)TIMEVALUE関数は不要。そのセルはすでに時刻として認識されている

note

TIMEVALUE関数は「文字列を時刻に変換する」関数です。すでにExcelが時刻として認識しているセルに対して使う必要はありません。「文字列かどうか分からない」ときは、TYPE関数で確認できます。=TYPE(A1) が「2」なら文字列です。

似た関数との違い・使い分け

文字列と時刻・日付を変換する関数はいくつかあります。目的に応じて使い分けましょう。

関数目的使い方の例
TIMEVALUE文字列の時刻をシリアル値に変換する=TIMEVALUE("10:30") → 0.4375
VALUE関数文字列を数値に変換する(日付・時刻・数値すべて対応)=VALUE("10:30") → 0.4375
TEXT関数シリアル値を指定した書式の文字列に変換する=TEXT(0.4375,"h:mm") → “10:30”
TIME関数時・分・秒の数値から時刻を作成する=TIME(10,30,0) → 10:30
DATEVALUE関数文字列の日付をシリアル値に変換する=DATEVALUE("2025/4/1") → 45748

使い分けのポイント

  • 「文字列の時刻を時刻に変換したい」→ TIMEVALUE関数
  • 「文字列の数値・日付・時刻を数値に変換したい」→ VALUE関数(より汎用的)
  • 「時刻を好きな書式の文字列にしたい」→ TEXT関数(TIMEVALUEの逆操作)
  • 「時・分・秒を個別に指定して時刻を作りたい」→ TIME関数
  • 「文字列の日付を日付に変換したい」→ DATEVALUE関数

TIMEVALUEとVALUEの違い

VALUE関数は時刻文字列にも使えるため、多くの場面でTIMEVALUE関数と同じ結果になります。ただしTIMEVALUE関数は「時刻文字列専用」なので、数式の意図が読み手に伝わりやすいのがメリットです。また、日付+時刻を含む文字列ではVALUE関数は日付部分もシリアル値に含めますが、TIMEVALUEは時刻部分のみを返します。

まとめ

TIMEVALUE関数は、文字列形式の時刻をシリアル値に変換する関数です。

  • 構文: =TIMEVALUE(時刻文字列) — 引数は1つだけ
  • 戻り値: 時刻のシリアル値(表示形式を「時刻」にすれば時刻として見える)
  • 主な用途: 勤怠データで文字列になった時刻の変換、&結合した時刻文字列の変換、文字列の時刻同士の勤務時間計算
  • エラー対処: #VALUE! が出たら時刻形式・空セル・余分なスペースを確認
  • 関連関数: VALUE関数(汎用変換)、TEXT関数(逆操作)、TIME関数(時分秒から作成)

勤怠データの取り込みや他システムとの連携では、時刻が文字列になるトラブルはよくあります。TIMEVALUEを知っておけばサッと対処できるので、覚えておいて損はないですよ。

関連記事

タイトルとURLをコピーしました