Excelで8桁の数字を日付に変換する方法|20260920を2026/09/20に

Excelで8桁の数字を日付に変換する方法|20260920を2026/09/20に

「20260920」を日付の「2026/09/20」にするには、年・月・日を切り出し、DATE関数で日付を作ります。セルの表示形式を「日付」に変えるだけでは、8桁の数字を年月日として解釈し直せません。

練習用Excelファイル(無料ダウンロード)
対応:Microsoft 365・Excel 2024・2021・2019・2016開くシートは「まず試す」。最初はこの3ステップです。
Excelファイル(.xlsx)/登録不要/数式・練習データ入り
保護ビューで入力できない場合は、入手元を確認して「編集を有効にする」を選びます。別の練習を始める前に、ファイルのコピーを保存しておくと初期状態に戻せます。
目次

基本の式:8桁を年・月・日に分ける

B4に20260920のようなYYYYMMDD形式の8桁が入っている場合、変換先のセルには次の式を使います。入力が正しい日付であることが分かっているときの基本形です。

E4に入力:8桁の数字を日付にする
数式=DATE(LEFT(B4,4),MID(B4,5,2),RIGHT(B4,2))
ひとことで20260920 を 2026/09/20 の日付にする
LEFT(B4,4)
左から4文字(年)です
MID(B4,5,2)
5文字目から2文字(月)です
RIGHT(B4,2)
右から2文字(日)です
補足DATE関数は、存在しない日付を別の日に補正します。次の式で、入力を確認します。
式の部分取り出す内容20260920の場合
LEFT(B4,4)左から4文字=年2026
MID(B4,5,2)5文字目から2文字=月09
RIGHT(B4,2)右から2文字=日20
DATE(年,月,日)年・月・日から日付を作る2026年9月20日

変換したセルの表示形式をyyyy/mm/ddにすると、2026/09/20と表示できます。Windows版ではセルを選び、Ctrl+1→「表示形式」→「ユーザー定義」で指定できます。

8桁の数字を日付に変換する(DATEとLEFT・MID・RIGHT)式 =DATE(LEFT(B4,4),MID(B4,5,2),RIGHT(B4,2)) の解説図。E4に入力する
E4に =DATE(LEFT(B4,4),MID(B4,5,2),RIGHT(B4,2)) を入力。20260920 を 2026・09・20 に分けて DATE で日付にする

まず動かしてみよう|この記事のサンプルをその場で試せます

練習用ファイルをダウンロードしなくても、記事と同じデータ・同じセル番地のサンプルをここで動かせます。黄色いセルを書き換えると、結果がその場で変わります。各解説の最後にある「▶ この式を試す」を押すと、このツールの該当セルへ移動します。

表示形式だけでは変換できない理由

Excelの日付は、日数を表す数値として保存されます。8桁の20260920をそのまま日付書式にしても、「2026年09月20日」の意味には分解されません。まずDATEで日付の値を作り、その後で見た目を整えます。

反対に、すでに正しい日付の値が入っていて表示だけ変えたいなら、DATEで作り直す必要はありません。また、=TEXT(E4,"yyyy/mm/dd")は表示用の文字列を作る式です。日付の計算や期間集計に使う列は、日付の値とセルの表示形式で管理する方が扱いやすくなります。

DATEは存在しない日付を補正するため、入力確認が必要

例えば20260230を基本形の式に渡すと、DATEは2月30日をエラーとして止めず、翌月の日付に繰り越します。入力ミスを見つけたい用途では、この自動補正をそのまま採用しない仕組みが必要です。

サンプルのE4には、8桁であることと、作成した日付を8桁に戻したときに元の入力と一致することを確認する式を入れています。

E4に入力:入力を確認して、日付に変換する
数式=IF(LEN(B4)=0,"",IFERROR(IF(AND(LEN(B4)=8,TEXT(DATE(…),"yyyymmdd")=B4&""),DATE(…),"要確認"),"要確認"))
ひとことで空欄は空欄、不正な日付は「要確認」にして、日付に変換する
LEN(B4)=0
空欄のときは、何も表示しません
LEN(B4)=8
8桁かどうかを確認します
TEXT(DATE(…),"yyyymmdd")=B4&""
日付に直した結果を8桁に戻して、元の数字と同じか確かめます。存在しない日付は、ここで見つかります
DATE(…)
確認に通ったときだけ、日付を返します
補足2026/2/30のような存在しない日は、「要確認」になります。
  • 空欄なら、結果も空白にする。
  • 8桁かどうかを確認する。
  • 日付を作り、YYYYMMDDに戻して元の入力と比べる。
  • 一致しない入力や変換できない文字は「要確認」にする。
入力サンプルの結果
202609202026/09/20
202402292024/02/29(うるう年)
20260230要確認
2026092要確認(7桁)
空欄空白

大量のデータを一括変換する手順

1
元データの右側に、変換結果用の列を作ります。元データを残して比較できるようにします。
2
先頭行に変換式を入力します。例のB4は、実際の元データのセルに置き換えます。
3
最終行まで式をコピーし、結果列の表示形式をyyyy/mm/ddにします。
4
「要確認」をフィルターで絞り、入力元の誤りを確認します。
5
式を残す必要がない場合だけ、確認後の結果をコピーし、「値」で貼り付けて固定します。

値として貼り付けた後も、日付書式を設定してください。数字に見えても、日付の値が失われたとは限りません。元の8桁データを削除する前に、数件の変換結果を照合しておくと安心です。

うまく変換できないとき

症状対処
#####と表示される列幅を広げる。基本式に元の8桁を直接日付書式にした値を混ぜていないか確認。
数式がそのまま表示される式を入れるセルの表示形式を標準にし、F2→Enterで再確定。先頭のアポストロフィも確認。
要確認になる桁数、前後の空白、存在しない月日を確認。
2026/09/20という文字列を変換したいこの8桁用の式ではなく、DATEVALUEや「区切り位置」を検討。

対象はYYYYMMDD形式です。年月だけの202609、日月年順の20092026、時刻付きの値は別の構造なので、同じ式をそのまま使わないでください。

サンプルで結果を確かめる

本文のセル位置はダウンロードファイルにそろえています。まず黄色いセルを変更して動きを確認し、次に自分の表に合う範囲へ置き換えてください。

練習用Excelファイル(無料ダウンロード)
「うまく変換できないとき」の解説で使うExcelデータです。数式と練習データが入っているので、本文の式を同じ表で試せます。
Excelファイル(.xlsx)/登録不要/数式・練習データ入り

関連する解説・参考資料

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

目次