DATEVALUE(デイトバリュー)関数は、セルに文字列として出力された日付のデータをシリアル値に変換してくれる関数です。

【構文】

=DATEVALUE(日付文字列)

【使用例】

  • =DATEVALUE("2021-8-21")
    文字列「2021-8-21」を、2021/8/21のシリアル値「44429」に変換します。
  • =DATEVALUE("8-21")
    文字列「8-21」を、2021/8/21のシリアル値「44429」に変換します。年を省略している場合は、コンピュータの時刻より現時点の年を取得し、補完します。
  • =DATEVALUE("2021-8-21 16:00:00")
    文字列「8-21」を、2021/8/21のシリアル値「44429」に変換します。時刻は無視されます。

DATEVALUE関数の用途として、データクレンジングの際に用いられます。CSVデータ等を吐き出した際、文字列として上がってくる場合があったりするんですよね。データベースにファイルを送る際、その日付データが文字列だとフィルターをかけることができなかったりするので、そういったデータを日付データに変換してから渡す、なんてシーンも遭遇します。

関数説明

RAWデータを吐き出した際、以下のように出力されたデータを見てみましょう。

データ区間が表示されていますが、左側だけの開始日時だけほしい場合を想定してください。このままでは単純に文字列となって出力されている状態です。

まず、LEFT関数を使って左側のデータを出力します。1日は「01」と表記されているので、シンプルな使い方が可能です。LEFT関数で左から12文字分抜き出しました。

文字列操作関数で出力される関数はすべて「文字列」として扱われます。ここにDATEVALUE関数を使いましょう。

DATEVALUE関数は、[数式]タブ→関数ライブラリの[日付/時刻]の中にあります。

引数は1つだけ、LEFT関数で出力したセルを参照しましょう。

無事に「44409」のシリアル値を取得することができました。

[ホーム]タブより、セルの表示形式を[短い日付形式]に変更すると……。

無事に書式設定で日付データに置き換わりました。

オートフィルします。

 ここで満足してはいけません。

データクレンジングをして、このデータを再度別のシステムに投げる場合、いま出力されているデータは数式によるデータです。

数式を構成している参照元がなくなれば、#REF!(リファレンスエラー)となってしまい、使い物になりません。最終的にクレンジング元データは不要になりますからね。

そのため、同じセル範囲を選択し、値貼りつけをして数式を取り除いてください。

これで「2021/8/1」としての日付データをとして、外部でも扱えるようになります。

この関数については以上です。

さえちゃんのDATEVALUE関数ワンポイントアドバイス

日付だけではなく、シリアル値からは曜日にも変換ができます。ユーザー設定の書式設定で「aaa」と指定してあげると曜日が出るんだよ。まあ、最終的には値貼りしたいからカレンダー見て直接入力したほうが早いんだけどね

CTRL(Command)+「1」で[セルの書式設定]を出します。

ユーザー定義の中から種類のところにある既定の書式設定を削除し、「aaa」と入力してみましょう。

確定すると、DATEVALUE関数で出力されるシリアル値に対して、書式設定に曜日が適用され、セルには「日」に表示されました。

道具箱は多いほうがいいので、こういった変換もできることを覚えておいてください。

関数ステータス

関数ライブラリの種類

日付/時刻

数式の構文

=DATEVALUE(日付文字列)

引数ダイアログ

Microsoft 公式サポート

DATEVALUE関数 - Office サポート