Excel関数で8桁の数字を日付に変換する方法をお探しですね。
広告
Excelで「20240101」みたいな8桁の数字を日付に変換する方法
外部システムやCSVからデータを取り込んだとき、「20240101」みたいな8桁の数字が入っていることってありますよね。
人間が見れば「2024年1月1日」だとすぐ分かるんですが、Excelにとってはただの数字か文字列。
このままだと日付の計算やフィルターがうまく使えなくて困ります。
この記事では、8桁の数字を「2024/01/01」みたいなスラッシュ区切りの日付に変換する方法を紹介します。
ただ見た目を変えるだけじゃなくて、Excelがちゃんと日付として認識してくれる形に変換するやり方を説明しますね。
結論:DATE関数を使うのが一番わかりやすい
8桁の数字をExcelの日付に変換するなら、**DATE関数**を使うのが一番わかりやすくて確実です。
たとえば、A2セルに「20240101」って入っているとします。
別のセルに次の数式を入力してみてください。
“`
=DATE(LEFT(A2,4),MID(A2,5,2),RIGHT(A2,2))
“`
この数式は何をしているかというと:
– **LEFT(A2,4)** で左から4桁(年)を取り出す → 「2024」
– **MID(A2,5,2)** で5文字目から2桁(月)を取り出す → 「01」
– **RIGHT(A2,2)** で右から2桁(日)を取り出す → 「01」
これらをDATE関数に渡すことで、Excelがちゃんと日付として認識できるデータになるんです。
シリアル値って何?
数式を入力したら「45292」みたいな謎の数字が表示されることがあります。
「あれ、失敗した?」って思うかもしれませんが、大丈夫です!
これは**シリアル値**といって、Excelが日付を管理するための番号なんです。
Excelの中では、日付は連続した数字として保存されています。
表示を直すには、セルを選んで:
– ホームタブの表示形式から「短い日付形式」を選ぶ
– または**Ctrl+1**で「セルの書式設定」を開いて、「yyyy/mm/dd」って指定する
これで「2024/01/01」みたいにスラッシュ区切りで表示されるようになります。
TEXT関数を使う方法もある
もう一つ、**TEXT関数**を使う方法もあります。
A2セルに「20240101」が入っている場合、こんな数式を使います。
“`
=TEXT(A2,”0000!/00!/00″)*1
“`
この数式の仕組み:
– **TEXT関数**で8桁の数字にスラッシュを入れる
– 「0000!/00!/00」は、4桁・2桁・2桁の間にスラッシュを入れる書式
– スラッシュの前の「**!**」は、スラッシュを計算記号じゃなくて文字として扱うための印
– 最後の「***1**」がすごく大事!
なぜ「*1」が必要なの?
TEXT関数だけだと、結果は**文字列**になっちゃうんです。
見た目は「2024/01/01」でも、Excel的には文字列。
文字列のままだと:
– 日付の計算ができない
– 並べ替えがおかしくなる
– フィルターがうまく働かない
だから「*1」を付けて数値に変換することで、Excelが日付として認識してくれるようになります。
こちらも変換後にシリアル値が表示されたら、表示形式を「yyyy/mm/dd」に設定してくださいね。
見た目だけ変える方法との違い
実は、セルの表示形式を「0000″/”00″/”00」みたいに設定すれば、元の値が20240101のままでも「2024/01/01」って見せることはできます。
資料として見やすくするだけならこれでもOK。
元データを触らずに表示だけ整えられるので、手っ取り早いです。
**でも注意!**
これは「見た目を変えているだけ」です。
Excelは日付として認識していません。
もし次のようなことをしたいなら、ちゃんと日付データに変換する必要があります:
– 日付の差を計算したい
– 日付順で正しく並べ替えたい
– 月別に集計したい
– ピボットテーブルで分析したい
業務で使うデータなら、基本的には**日付シリアル値に変換しておく**ほうが安全です。
うまく変換できないときのチェックポイント
8桁の数字が日付に変換できないときは、こんなところを確認してみてください。
1. 日付として存在する値か?
– 「20241301」→ 13月なんてない!
– 「20240231」→ 2月31日はない!
こういう不正な値だと、DATE関数は意図しない結果を返します。
2. 本当に数字?
セル内に空白やアポストロフィー(‘)が入っていると、見た目は数字でも文字列として扱われていることがあります。
3. 桁数は合ってる?
7桁だったり9桁だったりすると、年・月・日を正しく切り出せません。
大量のデータを処理する前に、何行かでテストして結果を確認するのがおすすめです。
実務での使い方のコツ
元データを残したい場合
1. A列に元の8桁数字
2. B列にDATE関数の数式を入れる
3. 問題なく変換できたら、B列をコピー
4. 「値として貼り付け」で数式じゃなくて日付データとして固定
元データを直接変換したい場合
「区切り位置ウィザード」で列のデータ形式を日付(YMD)に指定する方法もあります。
でも、操作ミスが心配だったり、元データが定期的に更新される場合は、関数を使うほうが管理しやすいです。
迷ったらこれ!
“`
=DATE(LEFT(A2,4),MID(A2,5,2),RIGHT(A2,2))
“`
この数式で日付シリアル値に変換して、表示形式を「yyyy/mm/dd」に整える。
これが一番確実で分かりやすい方法です。
まとめ
8桁の数字を日付に変換するのは、最初は難しく感じるかもしれません。
でも、DATE関数の仕組みさえ理解すれば、あとは応用するだけ。
ぜひ試してみてくださいね!
広告
