Excelで、日付を「20231224」のような8桁の数字(数値または文字列)を日付に変換する方法についてです。
- TEXT関数を使って日付を8桁の数字に変換できます。さらにVALUE関数を併用すれば数値に変換できます。
手順
B3:B8の範囲に6つの日付が並んでいます(うち下の3つは日付とみなせる文字列です)。
これに対しC3セルに次のような式を入力し、フィルコピーすることで8桁の数字(文字列)に変換しています。
C3セル(下方にフィルコピー)
=TEXT(B3,"yyyymmdd")
TEXT関数を使い、第2引数(表示形式)に「"yyyymmdd"」を指定することで数字だけの(区切り文字が入らない)文字列に変換しています。
さらに次のような式にすると、8桁の数値になります。
C3セル(下方にフィルコピー)
=VALUE(TEXT(B3,"yyyymmdd"))
TEXT関数をVALUE関数で囲むことで、文字列を数値に変換しています。
ところで、VALUE関数の代わりに「*1」をつけて「=TEXT(B3,"yyyymmdd")*1」のようにしてもいいのではないかと思われますが、セルに日付の表示形式が適用されてしまい、かつ変換された数値がシリアル値としては大きすぎるため、セルが「#」で埋め尽くされます。
ただし表示形式を標準に直せば上記の例と同じ結果になります。
備考:表示形式を変更した場合
日付(文字列でないもの)のセルの表示形式としてユーザ定義型の「yyyymmdd」を適用すれば直接数字に変換できそうな気もします。しかし……
これではセル上での見た目は8桁の数値になるものの、数式バーの内容からわかるように値(データの実体)としては何も変わりません。
また、日付の文字列(上記例のB6:B8セルのようなもの)対してはセル上の見た目も変わりません。