【Excel】8桁の数字(YYYYMMDD)を日付に変換する方法|関数・区切り位置・VBA
みなさんこんにちは。
Excelを使用していると、
20260905
のように、8桁の数字で日付が入力されているデータを扱うことがあります。
見た目では日付と分かりますが、この状態ではExcel上で日付として認識されていないため、表示形式の変更や日付計算がうまくできない場合があります。
今回は、8桁の数字(YYYYMMDD)をExcelの日付形式へ変換する方法について、
- 関数を使用する方法
- 「区切り位置」を使用する方法
- VBAを使用する方法
の3パターンをご紹介したいと思います。
この記事はこんな人におすすめ
この記事はこんな人におすすめです!
- 20260905のような8桁の数字を日付に変換したい人
- Excel関数だけで変換したい人
- 大量のデータをまとめて日付へ変換したい人
- VBAを使用して自動で日付変換したい人
といったところでしょうか。
変換前のデータについて
今回は、A列に下記のような8桁の日付データが入力されているものとします。
20260905
このデータを、
2026/9/5
のようなExcelの日付データへ変換していきます。

関数を使用して8桁の数字を日付に変換する方法
まずはExcel関数を使用する方法です。
A2セルに「20260905」と入力されている場合は、B2セルに下記の関数を入力してください。
=DATE(LEFT(A2,4),MID(A2,5,2),RIGHT(A2,2))
それぞれ、
- LEFT関数で先頭4桁の「年」を取得
- MID関数で5桁目から2文字の「月」を取得
- RIGHT関数で末尾2桁の「日」を取得
し、DATE関数でExcelの日付データへ変換しています。
関数を入力すると、
2026/9/5
のように日付として表示されます。

数件程度のデータや、元の8桁データを残したまま別列へ日付を表示したい場合は、この方法が一番簡単かと思います。
「区切り位置」を使用して日付に変換する方法
関数を使用せず、Excelの「区切り位置」機能を使用して変換することも可能です。
まず、8桁の数字が入力されているセルを選択します。
Excel上部のメニューから、
「データ」→「区切り位置」
をクリックしてください。
区切り位置指定ウィザードが表示されたら、そのまま進めて、最後の画面にある「列のデータ形式」で、
「日付」→「YMD」
を選択します。

最後に「完了」をクリックすると、8桁の数字がExcelの日付データへ変換されます。
関数を残したくない場合や、既存データをそのまま日付へ変換したい場合については、この方法が便利です。
VBAを使用して8桁の数字を日付に変換する方法
大量のデータを定期的に変換する場合は、VBAで自動化する方法もあります。
下記のコードでは、選択したセルの中から8桁の数字を判定し、日付へ変換します。
Sub YYYYMMDDを日付に変換()
Dim cell As Range
Dim strDate As String
Dim convertDate As String
For Each cell In Selection
strDate = CStr(cell.Value)
If Len(strDate) = 8 And IsNumeric(strDate) Then
convertDate = Left(strDate, 4) & "/" & _
Mid(strDate, 5, 2) & "/" & _
Right(strDate, 2)
If IsDate(convertDate) Then
cell.Value = CDate(convertDate)
cell.NumberFormatLocal = "yyyy/m/d"
End If
End If
Next cell
End Sub
実行する際は、日付へ変換したいセル範囲を選択した状態でマクロを実行してください。
実行前

実行後

毎回同じ形式のCSVやExcelファイルを処理する場合などは、VBAを使用したほうが作業を自動化しやすいかと思います。
どの方法を使用すれば良いのか
今回ご紹介した方法について、簡単に使い分けると下記のようになります。
- 関数:元データを残しながら別列へ日付を表示したい場合
- 区切り位置:既存の8桁データをそのまま日付へ変換したい場合
- VBA:大量データや定期的な変換作業を自動化したい場合
数件程度であれば関数や区切り位置で十分ですが、同じ作業を何度も繰り返す場合についてはVBAで自動化する方法がおすすめです。
VBAで日付を変換する過去の記事
VBAを使用した日付変換については、過去の記事でもご紹介しております。
VBAでの変換方法をもう少し詳しく確認したい方は、こちらの記事についても参考にしてみてください。
最後に
いかがでしたでしょうか。
20260905のような8桁の数字については、見た目では日付と分かりますが、Excelではそのまま数字や文字列として扱われている場合があります。
今回ご紹介したように、関数や区切り位置を使用すれば簡単にExcelの日付形式へ変換することができます。
また、大量のデータを繰り返し変換する場合については、VBAを使用することで作業を自動化することも可能です。
利用する場面に合わせて、それぞれの方法を使い分けてみてください。
少しでも参考になれば幸いです。
開発依頼について
ココナラでWebスクレイピング開発サービスを出品しております。
自分で開発をしようと思ったけど、VBAでのネット記事が少なく困っている方も多いかと思います。
そんな方はいつでもお気軽にご相談ください。
また、本ブログからご依頼いただいた方については割引特典がございますので、
ご不明点と合わせてメッセージをいただけると幸いです。
Excelにてブラウザ操作自動化ツールを作成します その作業、webスクレイピングを使って自動化しましょう!Webスクレイピング以外にもWebアプリの開発サービスも出品しております。
こちらについても、本ブログからご依頼いただいた方については割引特典がございますので、
お気軽にご相談ください。
スモールスケールのWebアプリ開発します 先ずはスモールスケールのWebアプリから始めませんか?
