ExcelのDATEVALUE関数の使い方|文字列の日付をシリアル値に変換する方法

スポンサーリンク

「CSVを取り込んだら日付が文字列になっていて、並べ替えも計算もできない…」そんな経験はありませんか。見た目は日付なのにExcelが日付として認識してくれないと、集計や期日管理でつまずきますよね。

そんなときに使うのがDATEVALUE関数です。この記事では基本の書き方から、CSVデータの一括変換や和暦文字列の対処法まで、実務パターンをまとめて紹介します。

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

– CSVや他システムからの取り込みで日付が文字列になってしまった
– 文字列の日付を計算や並べ替えに使えるようにしたい
– DATEVALUE関数とVALUE関数の違いを整理したい

DATEVALUE関数とは?

DATEVALUE関数(読み方: デイトバリュー)は、文字列形式の日付をシリアル値に変換する関数です。英語の「date(日付)」+「value(値)」がそのまま関数名になっています。

Excelでは日付を内部的に「シリアル値」という数値で管理しています。1900年1月1日を「1」として、1日ごとに1ずつ増える仕組みです。たとえば2025年4月1日のシリアル値は「45748」です。

セルに 2025/4/1 と入力すると、通常はExcelが自動的にシリアル値として認識してくれます。ところがCSVインポートや&での文字列結合などで「見た目は日付だけど中身は文字列」という状態になることがあります。

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

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

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

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

基本構文

=DATEVALUE(日付文字列)

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

引数の説明

引数必須/省略可内容
日付文字列必須日付を表す文字列を指定する。”2025/4/1″ や “2025年4月1日” のようにExcelが日付として認識できる形式が必要

note

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

DATEVALUE関数の基本的な使い方

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

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

=DATEVALUE("2025/4/1")

結果: 45748(シリアル値)

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

セル参照で変換する

A1に文字列 2025/4/1 が入っている場合、次のように書きます。

=DATEVALUE(A1)

結果: 45748(シリアル値)

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

さまざまな日付形式に対応する

DATEVALUE関数はExcelが日付として認識できる形式であれば変換できます。

=DATEVALUE("2025/4/1")       → 45748
=DATEVALUE("2025-4-1")       → 45748
=DATEVALUE("2025年4月1日")    → 45748
=DATEVALUE("April 1, 2025")  → 45748
=DATEVALUE("1-Apr-2025")     → 45748

スラッシュ区切り・ハイフン区切り・日本語表記・英語表記など、幅広い形式に対応しています。

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

CSVインポートで文字列になった日付を一括変換する

他のシステムから出力したCSVファイルをExcelで開くと、日付列が文字列として取り込まれることがよくあります。

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

=DATEVALUE(A2)

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

tip

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

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

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

A1に「2025」、B1に「4」、C1に「1」が入っているとします。

=DATEVALUE(A1&"/"&B1&"/"&C1)

結果: 45748(2025/4/1のシリアル値)

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

文字列の日付同士で日数差を計算する

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

A1に 2025/3/1(文字列)、B1に 2025/4/1(文字列)が入っているとします。

=DATEVALUE(B1)-DATEVALUE(A1)

結果: 31(日数差)

期日管理や経過日数の計算で、元データが文字列のときに使えるパターンです。

和暦の文字列を変換する

「令和7年4月1日」のような和暦文字列は、Excelの設定によってはDATEVALUEで直接変換できない場合があります。その場合はSUBSTITUTE関数で西暦に置き換えてから変換します。

=DATEVALUE(SUBSTITUTE(SUBSTITUTE(SUBSTITUTE(A1,"年","/"),"月","/"),"日",""))

A1が「2025年4月1日」なら「2025/4/1」に変換されてから、シリアル値になります。「令和」「平成」などの元号が含まれる場合は、元号を西暦年に置き換える追加処理が必要です。

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

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

=TEXT(A1, "yyyy/mm/dd")   → "2025/04/01"(文字列)
=DATEVALUE("2025/04/01")  → 45748(シリアル値)

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

よくあるエラーと対処法

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

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

note

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

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

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

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

使い分けのポイント

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

DATEVALUEとVALUEの違い

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

まとめ

DATEVALUE関数は、文字列形式の日付をシリアル値に変換する関数です。

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

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

関連記事

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