Excelで外部システムから取り込んだデータを扱うとき、日付が「文字列」として入っていて計算できないという場面はよくあります。
そのときに役立つのがDATEVALUE関数です。
本記事では、DATEVALUE関数の仕組み・使い方・書式設定との組み合わせ・エラーの対処法まで詳しく解説していきます。
DATEVALUE関数とは「日付を表す文字列をExcelの日付シリアル値に変換する関数」である
それではまず、DATEVALUE関数の基本的な役割と構文を解説していきます。
DATEVALUE関数の構文:=DATEVALUE(日付文字列)
日付文字列:Excelが認識できる日付形式の文字列(”2024/3/15″・”2024-03-15″・”March 15, 2024″など)
戻り値:Excelの日付シリアル値(整数)。セルを日付書式に設定すると日付表示になる。
Excelでは日付を「シリアル値(1900年1月1日を1とした整数)」として内部管理しており、文字列として入っている日付は数値演算・日付関数の引数として使えません。
DATEVALUE関数は文字列をシリアル値に変換し、日付としての計算ができる状態にします。
基本的な使用例
文字列の日付をシリアル値に変換する基本例を示します。
=DATEVALUE(“2024/3/15”) → 45366(シリアル値)
→ セルの書式を「日付」に設定すると「2024/3/15」と表示
=DATEVALUE(A1) → A1に日付文字列が入っている場合
=DATEVALUE(“March 15, 2024”) → 英語表記の日付文字列も変換可能(Excelの言語設定による)
変換後のシリアル値は、DATEDIF・EDATE・EOMONTH・DATE関数の引数として使ったり、日付の大小比較・差分計算に使えます。
対応している日付文字列の形式
DATEVALUE関数が認識できる日付文字列の形式は、Excelのシステム日付設定に依存します。
日本語環境では「2024/3/15」「2024-03-15」「2024年3月15日」などが一般的に認識されます。
ただし「20240315」(区切りなしの8桁数字)はDATEVALUE関数では認識されないため、LEFT・MID・RIGHT関数とDATE関数を組み合わせる必要があります。
VALUE関数との違い
VALUE関数は数値を表す文字列を数値に変換する汎用関数であり、日付文字列にも使えますが日付専用ではありません。
日付文字列の変換にはDATEVALUE関数を使う方が意図が明確で、「=DATEVALUE(“2024/3/15”)」と「=VALUE(“2024/3/15”)」は同じ結果を返しますが、コードの可読性の観点からDATEVALUEが推奨されます。
DATEVALUE関数のエラー対処法
続いては、DATEVALUE関数でよく発生するエラーへの対処法を確認していきましょう。
#VALUE!エラーの原因と対処
DATEVALUE関数で最も多いエラーが#VALUE!エラーです。
主な原因は「Excelが認識できない形式の日付文字列を指定した場合」です。
#VALUE!エラーの対処例:
“20240315”形式(8桁連続)の場合:
=DATE(LEFT(A1,4), MID(A1,5,2), RIGHT(A1,2)) で代替
“15/3/2024″のように日・月・年の順の場合:
=DATE(RIGHT(A1,4), MID(A1,4,1), LEFT(A1,2)) で分解して変換
IFERROR関数と組み合わせてエラーを非表示にすることもできます(=IFERROR(DATEVALUE(A1), “変換不可”))。
時刻を含む文字列への対応
「2024/3/15 10:30:00」のような日時文字列の場合、DATEVALUE関数は日付部分のみを返し時刻は無視されます。
時刻を含む完全な日時値が必要な場合はTIMEVALUE関数を組み合わせます(=DATEVALUE(A1)+TIMEVALUE(A1))。
DATEVALUE関数の実践的な活用例
続いては、実務でのDATEVALUE関数の具体的な活用シーンを確認していきましょう。
| 状況 | 数式 | 目的 |
|---|---|---|
| CSVからの文字列日付 | =DATEVALUE(A1) | 日付計算を可能にする |
| 8桁連続数字 | =DATE(LEFT(A1,4),MID(A1,5,2),RIGHT(A1,2)) | “20240315”形式の変換 |
| 日付の大小比較 | =DATEVALUE(A1)>DATEVALUE(B1) | 期限比較 |
| 期間計算 | =DATEDIF(DATEVALUE(A1),TODAY(),”D”) | 文字列日付からの経過日数 |
データクレンジングでの活用
外部システム・CSVファイル・Webスクレイピングなどから取得したデータに文字列の日付が含まれる場合、DATEVALUE関数を使った一括変換はデータクレンジングの重要なステップです。
変換後に「日付」書式を適用することで、ピボットテーブルやグラフで正しく時系列データとして扱えるようになります。
まとめ
本記事では、DATEVALUE関数の仕組み・書式設定との関係・VALUE関数との違い・エラー対処法・実践的な活用例を解説してきました。
DATEVALUE関数は「日付文字列をExcelのシリアル値に変換する」シンプルながら重要な関数です。
データ取り込み後のクレンジング・日付計算・DATEDIF関数との組み合わせで、実務のデータ処理効率が大きく向上するでしょう。