いきなり答える備忘録

Google Workspace・Microsoft 365・LibreOfficeなどに関するメモ

(Excel)日付を8桁の数字に変換する方法

 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セルのようなもの)対してはセル上の見た目も変わりません。