「CSVを取り込んだのにSUM関数が0になる」「日付列で並べ替えをかけると順番がバラバラになる」「勤怠データの時刻を足し算できない」――こうしたトラブルに直面したことはないでしょうか。原因の多くはExcelが数値・日付・時刻のデータをテキスト(文字列)として認識していることにあります。
この型不一致を確実に解消する専用関数がVALUE関数・DATEVALUE関数・TIMEVALUE関数の3つです。テキスト形式のデータを計算可能な数値・日付シリアル値・時刻シリアル値に変換し、SUM・DATEDIF・NETWORKDAYS・IF関数と組み合わせた業務処理に使えるようにします。
本記事では3つの関数の基本構文・引数の意味・実務シナリオ別の活用パターン・#VALUE!エラーの原因と対処法・代替手段との比較・MOS Excel試験での出題ポイントを体系的に解説します。
テキスト型数値が引き起こす問題とその見分け方
Excelで数値や日付がテキストとして保存されている状態には、次のような特徴があります。
| 症状 | テキスト型の場合 | 正常な数値型の場合 |
|---|---|---|
| SUM/AVERAGEの結果 | 0になる(文字列は加算されない) | 正しく合計される |
| セル内の配置 | 左詰めで表示される | 右詰めで表示される |
| 並べ替えの順序 | 文字コード順(”10″→”2″→”20″)になる | 数値順(2→10→20)になる |
| セル左上の緑三角 | 「数値が文字列として保存されています」と表示される | 三角は表示されない |
| ISNUMBER関数の結果 | =ISNUMBER(A1) → FALSE | =ISNUMBER(A1) → TRUE |
診断の最速手順:対象セルに=ISNUMBER(A1)と入力します。TRUEならば数値型・FALSEならばテキスト型です。日付の場合は=YEAR(A1)の結果も合わせて確認すると確実です。
VALUE関数の基本構文と動作
VALUE関数は、数値を表す文字列を数値型(計算に使えるデータ型)に変換します。
=VALUE(文字列)
| 引数 | 説明 | 省略 |
|---|---|---|
| 文字列 | 数値に変換したいテキスト、またはテキストが入ったセル参照 | 必須 |
引数は1つだけです。変換できる文字列の形式は次の通りです。
- 整数文字列:
"123"→ 123 - 小数文字列:
"3.14"→ 3.14 - カンマ区切り数値:
"1,234,567"→ 1234567(カンマは自動除去される) - パーセント表記:
"85%"→ 0.85(100分の1に変換される) - 通貨記号付き:
"¥1,000"→ 1000(通貨記号・カンマを除去) - Excelが認識する日付文字列:
"2026/1/15"→ 日付シリアル値(整数)
変換できない文字列(例:"abc"・"12月分")を渡すと#VALUE!エラーが返ります。空文字列("")を渡した場合は0が返ります。
DATEVALUE関数の基本構文と動作
DATEVALUE関数は、日付を表す文字列を日付シリアル値(1900年1月1日を1とした整数)に変換します。
=DATEVALUE(日付文字列)
| 引数 | 説明 | 省略 |
|---|---|---|
| 日付文字列 | 日付を表すテキスト、またはテキストが入ったセル参照 | 必須 |
Excelが認識する主な日付文字列と変換結果を示します。
| 入力文字列 | DATEVALUEの戻り値 | 日付書式を設定した場合の表示 |
|---|---|---|
| “2026/1/15” | シリアル値(整数) | 2026/1/15 |
| “2026-01-15” | シリアル値(整数) | 2026/1/15 |
| “2026年1月15日” | シリアル値(整数) | 2026/1/15 |
| “1月15日” | 当年の1月15日のシリアル値 | (当年)1月15日 |
重要な注意点:DATEVALUEが返す値は整数のシリアル値です。そのままでは大きな整数として表示されるため、セルの表示形式を「日付」に変更することを忘れないようにしましょう。表示形式の変更は Ctrl+1(セルの書式設定)→「日付」から行います。
TIMEVALUE関数の基本構文と動作
TIMEVALUE関数は、時刻を表す文字列を時刻シリアル値(0以上1未満の小数)に変換します。
=TIMEVALUE(時刻文字列)
| 引数 | 説明 | 省略 |
|---|---|---|
| 時刻文字列 | 時刻を表すテキスト、またはテキストが入ったセル参照 | 必須 |
| 入力文字列 | TIMEVALUEの戻り値 | 時刻書式を設定した場合 |
|---|---|---|
| “12:00” | 0.5(1日の半分) | 12:00 |
| “14:30” | 0.604166… | 14:30 |
| “9:00 AM” | 0.375 | 9:00 |
| “06:30:00” | 0.270833… | 6:30 |
TIMEVALUEが返すシリアル値は0以上1未満の小数で、0.0が0時・0.5が12時・1.0(未満)が24時に相当します。表示形式を「時刻」に設定することで見慣れた時刻表示になります。勤怠管理や製造ラインのログデータを扱う際によく使われます。
実務シナリオ1:CSVインポートデータの数値変換
基幹システムやECサイトからエクスポートしたCSVファイルでは、売上金額・数量・単価が文字列として保存されているケースが頻繁にあります。そのままSUM関数を適用しても0になるため、VALUE関数でまとめて変換します。
状況:A列に「1,200」「890」「45,000」のように文字列形式の売上金額がA2:A101に入っている。B列に数値型に変換した値を出力したい。
=VALUE(A2) ' カンマが除去されて数値1200が返る
B2に入力してB101まで数式をコピーします。B列の合計はSUM関数で正しく集計されます。カンマ付きの文字列(”1,200″)もVALUE関数がカンマを自動除去して数値化するため、事前にSUBSTITUTEでカンマを除去する手間が不要です。
一括変換の別解:データ列を選択し「データ」タブ→「区切り位置」→ウィザードを「完了」まで進めると、テキスト型の数値が一括で数値型に変換されます。VALUE関数との違いは関数式が残らないため後から元データを参照できない点です。用途に応じて使い分けます。
実務シナリオ2:テキスト形式の日付を日付型に変換する
システム出力ファイルに「2026/1/15」(スラッシュ区切り文字列)・「2026-01-15」(ハイフン区切り文字列)・「2026年1月15日」(日本語形式)など様々な形式の日付文字列が混在することがあります。
スラッシュ区切り・日本語形式をDATEVALUEで変換
=DATEVALUE(A2) ' "2026/1/15" → 日付シリアル値
結果のセルを選択し「ホーム」タブ→「数値の書式」→「短い日付形式」を選ぶと「2026/1/15」と表示されます。変換後はDATEDIF・NETWORKDAYS・EDATEなどの日付関数で計算が可能になります。
ピリオド区切りをSUBSTITUTEで前処理してから変換
「2026.01.15」のようにピリオド区切りの日付文字列はDATEVALUEが直接認識しないため、SUBSTITUTE関数でピリオドをスラッシュに置換してから渡します。
=DATEVALUE(SUBSTITUTE(A2,".","/"))
' "2026.01.15" → 一度 "2026/01/15" に変換してから日付シリアル値を取得
8桁数字文字列(yyyymmdd)をDATE関数で変換
「20260115」のような8桁文字列はDATEVALUEが直接認識しないため、LEFT・MID・RIGHT関数で年月日を切り出してDATE関数に渡す方法が一般的です。
=DATE(LEFT(A2,4), MID(A2,5,2), RIGHT(A2,2))
' "20260115" → 2026年1月15日のシリアル値
どちらの方法もシリアル値が返るため、セルの表示形式を日付に変更することを忘れずに行います。
実務シナリオ3:テキスト形式の時刻を時間計算に使う
勤怠管理システムからエクスポートした「出勤時刻」「退勤時刻」が「09:00」「18:30」といったテキスト形式で保存されている場合、そのままでは引き算できません。TIMEVALUEで変換することで実際の勤務時間計算が可能になります。
' A2:退勤時刻テキスト "18:30"、B2:出勤時刻テキスト "09:00"
=TIMEVALUE(A2) - TIMEVALUE(B2)
' 結果は 0.395833…(時刻型シリアル値)
結果セルの表示形式を「[h]:mm」にすると「9:30」(9時間30分)と表示されます。[h](角括弧)をつけることで24時間を超える合計時間にも対応できます。
分単位の数値として集計したい場合は次の計算式を使います。
=(TIMEVALUE(A2) - TIMEVALUE(B2)) * 24 * 60 ' 勤務時間を分単位で取得
TIMEVALUE変換後の値はHOUR・MINUTE・SECOND関数の引数にも渡せるため、「残業が30分以上の場合だけカウントする」「ラベルに”X時間Y分”と表示する」といった応用処理も組み立てられます。
よくあるエラーと対処法
| エラー・症状 | 関数 | 主な原因 | 対処法 |
|---|---|---|---|
| #VALUE! | VALUE | 数値として解釈できない文字列(”abc”・”12月分”など)が引数に指定されている | IFERROR(VALUE(A2),0)でエラーを処理し、問題セルを特定してデータを修正する |
| #VALUE! | DATEVALUE | Excelが認識できない日付形式(”2026.01.15″・”26/1/15″など) | SUBSTITUTE関数でピリオドをスラッシュに置換してから渡す |
| #VALUE! | TIMEVALUE | 時刻として認識できない形式・日付が含まれた文字列 | MID関数で時刻部分だけを切り出してからTIMEVALUEに渡す |
| 大きな整数が表示される | DATEVALUE | 日付シリアル値が返っているが表示形式が「標準」のまま | Ctrl+1でセルの書式設定を開き「日付」に変更する |
| 0以上1未満の小数が表示される | TIMEVALUE | 時刻シリアル値が返っているが表示形式が「標準」のまま | セルの書式設定を「時刻」(h:mm など)に変更する |
エラー処理の実践パターン:変換できない行があっても処理を止めないために、IFERRORと組み合わせます。
=IFERROR(VALUE(A2), "変換エラー")
=IFERROR(DATEVALUE(A2), "日付形式エラー")
=IFERROR(TIMEVALUE(A2), "時刻形式エラー")
エラーが返った行を洗い出した後、元データの形式を修正するか、SUBSTITUTE・LEFT・MID・RIGHTで前処理してから変換関数を適用します。
VALUE関数を使わないテキスト→数値変換の代替手段
VALUE関数以外にも、テキスト型を数値型に変換する方法がいくつかあります。使い分けの目安を整理します。
| 方法 | 操作例 | 特徴 | 向く場面 |
|---|---|---|---|
| VALUE関数 | =VALUE(A2) | 関数式として残る。他の関数と組み合わせ可能 | 元データを保持しつつ変換結果を別列に出力したいとき |
| –(ダブルマイナス) | =–A2 | 短い式で数値化できる。TRUEは1・FALSEは0になる | SUMPRODUCT・IF条件内で簡易変換したいとき |
| ×1 演算 | =A2*1 | 算術演算で強制変換 | シンプルに数値化したいとき |
| 区切り位置ウィザード | データ→区切り位置→完了 | 元データを上書き変換。関数式不要 | 一度だけ変換してファイルを固定するとき |
| エラーインジケーター→「数値に変換」 | 緑三角を選択して「数値に変換」 | GUIで簡単。複数セルをまとめて操作可能 | 件数が少なく目視で確認しながら変換するとき |
| NUMBERVALUE | =NUMBERVALUE(“1.234,56″,”.”,”,”) | 小数点・桁区切り文字をロケールごとに指定可能 | 欧州形式など外国データ(カンマが小数点)を扱うとき |
VALUE・DATEVALUE・TIMEVALUEは他の関数と組み合わせて数式の中に埋め込める点が最大の強みです。元データを残したまま変換後の値を別セルに出力するワークフローや、IFERROR・SUMPRODUCTなど上位関数の引数として直接渡すケースに最も効果を発揮します。
MOS Excel試験でのVALUE・DATEVALUE・TIMEVALUE
MOS Excel 365 一般レベル(MO-210)では「数式や関数を使用した演算の実行」がスキル領域の一つとして定められており、VALUE・DATEVALUE・TIMEVALUEはその範囲に含まれます。分野別の出題数・配点は公表されていません。
試験はプロジェクト形式でExcelブックに対して実操作を行います。試験時間は50分、採点は1000点満点です。合格点は非公開ですが、550点~850点程度が目安とされています。受験料は一般価格と学割価格の2種があり(税込)、金額は改定されることがあるため最新の受験料は公式サイトの「受験料・価格」(https://mos.odyssey-com.co.jp/exam/examfee.html)でご確認ください。全国一斉試験の申込締切は試験日のおよそ1か月前(回により異なるため公式サイトの試験日程で確認)です。
試験問題では「テキスト形式で保存されている数値を計算できる形に変換してSUM関数で合計を求めなさい」「日付文字列を変換して日付計算に使えるようにしなさい」といった操作問題が出題される場合があります。以下のチェックリストで操作を確認しておきましょう。
MOS試験 VALUE・DATEVALUE・TIMEVALUE チェックリスト
| 確認ポイント | 操作内容 | 難易度 |
|---|---|---|
| テキスト型数値の識別 | ISNUMBER・セル左詰め・緑三角でテキスト型を確認できる | ★☆☆ |
| VALUE関数の基本入力 | =VALUE(A2)で数値型に変換しSUMが正しく動作することを確認 | ★☆☆ |
| DATEVALUE関数の基本入力と表示形式設定 | =DATEVALUE(A2)でシリアル値に変換し、書式を「日付」に変更する | ★★☆ |
| TIMEVALUE関数の基本入力と表示形式設定 | =TIMEVALUE(A2)でシリアル値に変換し、書式を「時刻」に変更する | ★★☆ |
| IFERRORとの組み合わせ | 変換できないデータが含まれる場合に代替値を返す数式を作成 | ★★☆ |
| 前処理と組み合わせた変換 | SUBSTITUTEでピリオドをスラッシュに変換してからDATEVALUEに渡す | ★★★ |
| 他関数への組み込み | DATEVALUE・TIMEVALUEをNETWORKDAYS・DATEDIF等の引数に埋め込む | ★★★ |
MOS試験の学習時間の目安として、アソシエイト(MO-210)を目指す場合、初学者は40~60時間、Excelを業務で使っている方は20~30時間が目安です。1日1時間のペースなら初学者で約2か月、経験者で3~4週間を目安にしてください。VALUE・DATEVALUE・TIMEVALUEはデータ整形の実務と直結するため、実際のCSVデータを使って繰り返し練習することが最短の習得法です。
まとめ:テキスト型データを変換して計算の土台を整える
本記事のポイントをまとめます。
- VALUE関数:数値を表す文字列を数値型に変換。カンマ・通貨記号・パーセントも対応。引数は文字列1つだけ
- DATEVALUE関数:日付文字列を日付シリアル値(整数)に変換。変換後は表示形式を「日付」に設定する
- TIMEVALUE関数:時刻文字列を時刻シリアル値(0以上1未満の小数)に変換。変換後は表示形式を「時刻」に設定する
- 診断方法:=ISNUMBER(A1)でFALSEが返ればテキスト型。セルが左詰め・緑三角でも確認できる
- #VALUE!の主な原因:認識できない文字列形式。IFERRORで処理しつつ元データを修正する
- 代替手段との使い分け:他の関数に組み込む場合はVALUE/DATEVALUE/TIMEVALUEが優先。元データを上書きして構わない場合は区切り位置ウィザードも有効
- MOS試験:「数式や関数を使用した演算の実行」領域に含まれる。IFERRORとの組み合わせ・表示形式の変更操作まで確認しておくこと
外部データとの連携が多い実務環境では、このデータ型変換スキルがレポート作成・集計処理の信頼性を左右します。VALUE・DATEVALUE・TIMEVALUEをマスターすることで、「合計が合わない」「日付計算がおかしい」「時刻を引き算できない」といったトラブルの大半を根本から解消できます。
PR
VALUE・DATEVALUE・TIMEVALUEをはじめとした実務で使う関数を丁寧に解説。Copilot連携まで収録した最新版で、データ型変換から集計・検索まで体系的に学べます。
PR
今すぐ使えるかんたんbiz Excel関数+組み合わせ 効率UPスキル大全
単体関数の使い方から複数関数の組み合わせパターンまでを一冊で網羅。IFERROR・SUBSTITUTE・TEXTとの組み合わせなど、実務データ整形に直結するテクニックが充実しています。
