【関数】文字列形式の日付のデータ型を「日付」(シリアル値)に変換できる「DATEVALUE」の使い方
AさんAさん

見た目は日付なのに、なぜか和暦への表示形式を変更できなかったり、日付フィルターではなくテキストフィルターしか使えない場合があります。。
こうした場合、どうすれば良いですかね?

森田森田

その場合は、関数のDATEVALUEを活用すると良いですよ!
では、DATEVALUEの使い方について解説していきますね。

はじめに

この記事は関数の概要を把握していることが前提です。

参考記事

関数の概要については以下の記事をご参照ください。

元データの日付のデータ型を「文字列」→「日付」へ変換したい場合は「DATEVALUE」が有効

実務では、見た目のデータは日付なのに、なぜか日付特有の機能が使えないケースがあります。

たとえば、次のように「日付」列を別種類の表示形式へ変更したのに凡例されない、あるいは日付フィルターを使用できないといったイメージです。

この原因は「データ型」です。
データ型は、ざっくり「データの種類」だと思ってください。

上記の「日付」列の数字はすべてデータ型が「文字列」になっていたため、日付を対象にした機能を使用できませんでした。

よって、事前にデータ型を「日付」に変換することが必要です。

こんな場合、関数の「DATEVALUE」を使うことで、文字列化された日付のデータ型を「日付」へ自動的に変換することが可能となります。
ちなみに、DATEVALUEは「デートバリュー」と呼びます。

よって、文字列化された数字のデータ型を「日付」へ変換したい場合はDATEVALUEを使用していきましょう。

参考記事

文字列化された数字のデータ型を「数値」へ変換したい場合はVALUE、文字列化された時刻のデータ型を「時刻」へ変換したい場合はTIMEVALUEを使用してください(詳細は以下の記事を参照)。


DATEVALUEの構文

DATEVALUEの構文は以下の通りです。

=DATEVALUE(日付文字列)
文字列の形式で表された日付を、Microsoft Excelの組み込みの日付表示形式で数値に変換して返します。

引数名 必須 データ型 説明
日付文字列 数値
※実質は文字列
変換対象のセル(値が文字列化された日付)を指定します。

引数「日付文字列」に文字列化された日付以外の値を指定すると、エラー値「#VALUE!」が返ります。
引数「日付文字列」には、190011日~99991231日までの間の日付を指定する必要があります(Excelのオプションで「1904年から計算する」を設定の場合は190411日~99991231日)。
引数「日付文字列」に年の部分を省略した値を指定した場合、DATEVALUEの戻り値は年の部分がPC上で設定された現在日付の年となります。
引数「日付文字列」に指定した値に時刻の情報が含まれていても無視されます。

【参考】DATEVALUEは「日付/時刻関数」

あくまで参考情報となりますが、DATEVALUEがリボン「数式」タブの関数ライブラリの「日付/時刻」に分類されています。

実際にDATEVALUEを活用する際は、以下で解説しているように直接入力で挿入していきましょう。

DATEVALUEの使用結果イメージ

DATEVALUEで文字列化された日付のデータ型を「日付」へ変換したイメージは以下の通りです。
今回は「日付」列のデータ型を「日付」へ変換しました。

H列の結果が独特の数値になっていますが、これは「シリアル値」というExcel上の日付/時刻を管理する数値を意味します。

シリアル値は、190011日を起点に何日目かをカウントした数値です(H2セルの「44082」は、190011日から44082日目)。
シリアル値の「1」は1日(=24h)となり、時刻の場合は時間換算した結果を小数点で示します(1h=1/24h1m=1/24h/60m1s=1/24h/60m/60s)。

あとは任意の日付の表示形式を設定すれば、日付形式で表示されます。

なお、DATEVALUEは原則一つの関数で一つのセルのみが変換対象です。

ベースの数式をセットしたら、他のセルへペーストしましょう。

【参考】VALUEDATEVALUETIMEVALUEの違い

類似機能の関数であるVALUEDATEVALUETIMEVALUEの違いを把握しておきましょう。

それぞれの関数でA列の値を引数にした結果は以下の通りです。

ご覧の通り、実はVALUEでもシリアル値への変換ができ、DATEVALUEは日付部分、TIMEVALUEは時刻部分にそれぞれ特化していることが分かります。

よって、整理すると次のように使い分けると良いでしょう。

  • 数値の場合:VALUE一択
  • 日付のみの場合:VALUEDATEVALUE(結果は同じ)
  • 時刻のみの場合:VALUETIMEVALUE(結果は同じ)
  • 日付+時刻の場合:必要な部分が日付+時刻ならVALUE、日付のみならDATEVALUE、時刻のみならTIMEVALUE

VALUEの対応範囲の広さが分かりますね。

DATEVALUEの数式の挿入手順

上記の結果を得るための手順は以下の通りです。

  1. 関数を挿入するセルを選択
    ※今回はH2セル
  2. =d」と入力
  3. サジェストから「DATEVALUE」を選択し、「Tab」キーで確定
  4. 変換対象のセルを選択
    ※今回はB2セル
  5. Enter」キーで確定
  6. 1行目の数式をコピーし、以降のセルへペースト
    ※今回はH3~H21セルへペースト

手順②の際にIMEを半角英数モードにすること。
テーブルの場合、手順⑥は不要(全レコードへ数式が自動的にコピーされる)。

サンプルファイルで練習しよう!

可能であれば、以下のサンプルファイルをダウンロードして、実際に操作練習をしてみてください。

サンプルファイル_ワークシート関数_DATEVALUE.xlsx

※サンプルファイルのダウンロードには無料メルマガに登録いただく必要があります。
(上記リンクから登録フォームへ遷移します)

ブックを開いたら、次の手順を実施してください。(今までの解説のまとめです)

  1. 関数を挿入するセルを選択
    ※今回はH2セル
  2. =d」と入力
  3. サジェストから「DATEVALUE」を選択し、「Tab」キーで確定
  4. 変換対象のセルを選択
    ※今回はB2セル
  5. Enter」キーで確定
  6. 1行目の数式をコピーし、以降のセルへペースト
    ※今回はH3~H21セルへペースト

本記事の解説と同じ結果になればOKです!

さいごに

いかがでしたでしょうか?

DATEVALUEはデータ型の変換に役立つ関数のうちの一つです。

定期的にデータ型を変換する機会があるなら、ぜひ覚えておいた方が良いですね。

なお、DATEVALUE以外にもExcelでのデータ整形の各種テクニックを拙著で解説していますので、こちらも参考にしてみてください。

ご参考になれば幸いですm(_ _)m

森田森田

DATEVALUEとセットで覚えておいた方が良い関数は、文字列化された数字のデータ型を「数値」へ変換するVALUEと、文字列化された時刻のデータ型を「時刻」へ変換するTIMEVALUEです。
他にも、セルの値のデータ型を特定できるTYPEも覚えておくとベターですね。