見た目は日付なのに、なぜか和暦への表示形式を変更できなかったり、日付フィルターではなくテキストフィルターしか使えない場合があります。。
こうした場合、どうすれば良いですかね?
その場合は、関数の「DATEVALUE」を活用すると良いですよ!
では、DATEVALUEの使い方について解説していきますね。
はじめに
この記事は関数の概要を把握していることが前提です。
関数の概要については以下の記事をご参照ください。
はじめに この記事は数式の概要を把握していることが前提です。 参考記事 数式の概要の詳細は以下の記事をご参照ください。 関数とは 関数とは、数式の構成要素の1つであり、固有の計算/処理の機能がセットされた数式のことです。 …
元データの日付のデータ型を「文字列」→「日付」へ変換したい場合は「DATEVALUE」が有効
実務では、見た目のデータは日付なのに、なぜか日付特有の機能が使えないケースがあります。
たとえば、次のように「日付」列を別種類の表示形式へ変更したのに凡例されない、あるいは日付フィルターを使用できないといったイメージです。
この原因は「データ型」です。
データ型は、ざっくり「データの種類」だと思ってください。
上記の「日付」列の数字はすべてデータ型が「文字列」になっていたため、日付を対象にした機能を使用できませんでした。
よって、事前にデータ型を「日付」に変換することが必要です。
こんな場合、関数の「DATEVALUE」を使うことで、文字列化された日付のデータ型を「日付」へ自動的に変換することが可能となります。
ちなみに、DATEVALUEは「デートバリュー」と呼びます。
よって、文字列化された数字のデータ型を「日付」へ変換したい場合はDATEVALUEを使用していきましょう。
文字列化された数字のデータ型を「数値」へ変換したい場合はVALUE、文字列化された時刻のデータ型を「時刻」へ変換したい場合はTIMEVALUEを使用してください(詳細は以下の記事を参照)。
はじめに この記事は関数の概要を把握していることが前提です。 参考記事 関数の概要については以下の記事をご参照 …
はじめに この記事は関数の概要を把握していることが前提です。 参考記事 関数の概要については以下の記事をご参照 …
DATEVALUEの構文
DATEVALUEの構文は以下の通りです。
=DATEVALUE(日付文字列)
文字列の形式で表された日付を、Microsoft Excelの組み込みの日付表示形式で数値に変換して返します。
引数名 | 必須 | データ型 | 説明 |
---|---|---|---|
日付文字列 | ○ | 数値 ※実質は文字列 |
変換対象のセル(値が文字列化された日付)を指定します。 |
引数「日付文字列」に文字列化された日付以外の値を指定すると、エラー値「#VALUE!」が返ります。
引数「日付文字列」には、1900年1月1日~9999年12月31日までの間の日付を指定する必要があります(Excelのオプションで「1904年から計算する」を設定の場合は1904年1月1日~9999年12月31日)。
引数「日付文字列」に年の部分を省略した値を指定した場合、DATEVALUEの戻り値は年の部分がPC上で設定された現在日付の年となります。
引数「日付文字列」に指定した値に時刻の情報が含まれていても無視されます。
【参考】DATEVALUEは「日付/時刻関数」
あくまで参考情報となりますが、DATEVALUEはリボン「数式」タブの関数ライブラリの「日付/時刻」に分類されています。
実際にDATEVALUEを活用する際は、以下で解説しているように直接入力で挿入していきましょう。
DATEVALUEの使用結果イメージ
DATEVALUEで文字列化された日付のデータ型を「日付」へ変換したイメージは以下の通りです。
今回は「日付」列のデータ型を「日付」へ変換しました。
H列の結果が独特の数値になっていますが、これは「シリアル値」というExcel上の日付/時刻を管理する数値を意味します。
シリアル値は、1900年1月1日を起点に何日目かをカウントした数値です(H2セルの「44082」は、1900年1月1日から44082日目)。
シリアル値の「1」は1日(=24h)となり、時刻の場合は時間換算した結果を小数点で示します(1h=1日/24h、1m=1日/24h/60m、1s=1日/24h/60m/60s)。
あとは任意の日付の表示形式を設定すれば、日付形式で表示されます。
なお、DATEVALUEは原則一つの関数で一つのセルのみが変換対象です。
ベースの数式をセットしたら、他のセルへペーストしましょう。
【参考】VALUE・DATEVALUE・TIMEVALUEの違い
類似機能の関数であるVALUE・DATEVALUE・TIMEVALUEの違いを把握しておきましょう。
それぞれの関数でA列の値を引数にした結果は以下の通りです。
ご覧の通り、実はVALUEでもシリアル値への変換ができ、DATEVALUEは日付部分、TIMEVALUEは時刻部分にそれぞれ特化していることが分かります。
よって、整理すると次のように使い分けると良いでしょう。
- 数値の場合:VALUE一択
- 日付のみの場合:VALUEかDATEVALUE(結果は同じ)
- 時刻のみの場合:VALUEかTIMEVALUE(結果は同じ)
- 日付+時刻の場合:必要な部分が日付+時刻ならVALUE、日付のみならDATEVALUE、時刻のみならTIMEVALUE
VALUEの対応範囲の広さが分かりますね。
DATEVALUEの数式の挿入手順
上記の結果を得るための手順は以下の通りです。
- 関数を挿入するセルを選択
※今回はH2セル - 「=d」と入力
- サジェストから「DATEVALUE」を選択し、「Tab」キーで確定
- 変換対象のセルを選択
※今回はB2セル - 「Enter」キーで確定
- 1行目の数式をコピーし、以降のセルへペースト
※今回はH3~H11セルへペースト
手順②の際にIMEを半角英数モードにすること。
テーブルの場合、手順⑥は不要(全レコードへ数式が自動的にコピーされる)。
サンプルファイルで練習しよう!
可能であれば、以下のサンプルファイルをダウンロードして、実際に操作練習をしてみてください。
サンプルファイル_ワークシート関数_DATEVALUE.xlsx
※サンプルファイルのダウンロードには無料メルマガに登録いただく必要があります。
(上記リンクから登録フォームへ遷移します)
ブックを開いたら、次の手順を実施してください。(今までの解説のまとめです)
- 関数を挿入するセルを選択
※今回はH2セル - 「=d」と入力
- サジェストから「DATEVALUE」を選択し、「Tab」キーで確定
- 変換対象のセルを選択
※今回はB2セル - 「Enter」キーで確定
- 1行目の数式をコピーし、以降のセルへペースト
※今回はH3~H11セルへペースト
本記事の解説と同じ結果になればOKです!
さいごに
いかがでしたでしょうか?
DATEVALUEはデータ型の変換に役立つ関数のうちの一つです。
定期的にデータ型を変換する機会があるなら、ぜひ覚えておいた方が良いですね。
なお、DATEVALUE以外にもExcelでのデータ整形の各種テクニックを拙著で解説していますので、こちらも参考にしてみてください。
また、よりコアな情報を発信していくために「公式LINE」を開始しましたので、ご興味があれば以下バナーから友だち追加をお願いします!
特典として、Excelワークシート関数一覧(計22スライド)やExcelショートカットキー一覧(計25スライド)等をプレゼント!
ご参考になれば幸いですm(_ _)m
DATEVALUEとセットで覚えておいた方が良い関数は、文字列化された数字のデータ型を「数値」へ変換するVALUEと、文字列化された時刻のデータ型を「時刻」へ変換するTIMEVALUEです。
他にも、セルの値のデータ型を特定できるTYPEも覚えておくとベターですね。