Excelでyyyymmdd形式の文字列を 日付フォーマットのセルに変換する

Master Mole
質問:YYYYMMDDの文字列をExcelで日付として扱いたい
アクセスログをダウンロードしてきて分析しようと思うのですが、アクセス日がYYYYMMDD形式の文字列で記録されています。 単純に読み込んだだけでは日付として認識されませんでした。YYYYMMDDの文字列を日付形式に変換したいですが、どうすればよいでしょうか? 指定した列をまとめて変換したいです。

概要

yyyymmdd形式のままですと、日付処理ができないため、yyyymmdd形式の文字列を日付フォーマットに変換したい場合があります。 この記事では、yyyymmdd形式の文字列を、日付フォーマットのセルに変換する手順を紹介します。

補足
逆の処理である、日付セルを"yyyymmdd"形式の文字列に変換する場合はこちらの記事を参照してください。

MID関数を利用する方法

MID関数を利用して日付に変換する方法です。
下図の表を準備します。
Excelでyyyymmdd形式の文字列を 日付フォーマットのセルに変換する:画像1

以下の数式で"yyyymmdd"形式の文字列を "yyyy/mm/dd" 形式の文字列に変換し、日付の値として扱えるようにします。

=MID(["yyyymmdd"文字列セル],1,4) & "/" & MID(["yyyymmdd"文字列セル],5,2) & "/" & MID(["yyyymmdd"文字列セル],7,2))

今回の例では、以下の数式になります。C2セルに下記の数式を入力します。

=MID(B2,1,4) & "/" & MID(B2,5,2) & "/" & MID(B2,7,2))


Excelでyyyymmdd形式の文字列を 日付フォーマットのセルに変換する:画像2

数式を確定します。B2セルの"yyyymmdd"形式の値がC2セルに"yyyy/mm/dd"形式で表示されます。

Excelでyyyymmdd形式の文字列を 日付フォーマットのセルに変換する:画像3

C2セルの値が日付形式であるか確認するため、D2セルに以下の数式を入力します。

=C2+5

Excelでyyyymmdd形式の文字列を 日付フォーマットのセルに変換する:画像4

D2セルに、C2セルの日付の5日後が表示されることが確認できました。
Excelでyyyymmdd形式の文字列を 日付フォーマットのセルに変換する:画像5

補足
D2セルに数値が表示される場合はセルの書式設定で数値に変更します。 セルの書式設定方法はこちらの記事を参照してください。
Excelでyyyymmdd形式の文字列を 日付フォーマットのセルに変換する:画像6

C2,D2セルの数式をコピーし、3行目以降にペーストすると、下図の結果となります。"yyyymmdd"形式の数値を日付形式に変換できました。
Excelでyyyymmdd形式の文字列を 日付フォーマットのセルに変換する:画像7

DATE関数を利用する方法

DATE関数を利用して、日付を作成する方法です。

以下の数式で日付に変換します。数式は以下の内容となります。

=DATE(LEFT(["yyyymmdd"文字列セル],4),MID(["yyyymmdd"文字列セル],5,2),RIGHT(["yyyymmdd"文字列セル],2))

LEFT,RIGHT,MID関数を利用して、"yyyymmdd"文字列から文字を切り出し、DATE関数の引数として与えます。DATE関数の戻り値が日付のシリアル値となります。
または

=DATE(MID(["yyyymmdd"文字列セル],1,4),MID(["yyyymmdd"文字列セル],5,2),MID(["yyyymmdd"文字列セル],7,2))

MID関数を利用して、"yyyymmdd"文字列から文字を切り出し、DATE関数の引数として与えます。DATE関数の戻り値が日付のシリアル値となります。

今回の例ではC2セルに以下の数式を入力します。

=DATE(LEFT(B2,4),MID(B2,5,2),RIGHT(B2,2))

Excelでyyyymmdd形式の文字列を 日付フォーマットのセルに変換する:画像8

数式を入力すると、日付が表示されます。
Excelでyyyymmdd形式の文字列を 日付フォーマットのセルに変換する:画像9

D2セルに以下のMID関数のみを利用した数式を入力します。

=DATE(MID(B2,1,4),MID(B2,5,2),MID(B2,7,2))

Excelでyyyymmdd形式の文字列を 日付フォーマットのセルに変換する:画像10

数式を確定すると、日付が表示されます。MID関数のみを使った数式でも同じ結果となります。
Excelでyyyymmdd形式の文字列を 日付フォーマットのセルに変換する:画像11

C2,D2セルをコピーし他の行にペーストします。下図の結果となります。"yyyymmdd"形式の数値を日付形式に変換できました。
Excelでyyyymmdd形式の文字列を 日付フォーマットのセルに変換する:画像12

TEXT関数を利用する方法

TEXT関数を利用して、"yyyy/mm/dd" の文字列を作成し、日付表記に変更する方法です。

下図の表を用意します。
Excelでyyyymmdd形式の文字列を 日付フォーマットのセルに変換する:画像13

以下の数式で "yyyymmdd" 形式の文字列を "yyyy/mm/dd" 形式の文字列に変換します。

=TEXT(["yyyymmdd"形式文字列のセル], "0000!/00!/00")
補足
Office 2016以前のExcelではTEXT関数の戻り値が文字列として認識されるため、 *1 を末尾に記述する必要があります。

=TEXT(["yyyymmdd"形式文字列のセル], "0000!/00!/00") * 1 Excelでyyyymmdd形式の文字列を 日付フォーマットのセルに変換する:画像14


今回の例では、C2セルに以下の数式を入力します。

=TEXT(B2, "0000!/00!/00")

Excelでyyyymmdd形式の文字列を 日付フォーマットのセルに変換する:画像15

数式を確定すると、セルに日付の値が表示されます。
Excelでyyyymmdd形式の文字列を 日付フォーマットのセルに変換する:画像16

補足
セルに数値が表示される場合はセルの書式設定で数値に変更します。 セルの書式設定方法はこちらの記事を参照してください。
Excelでyyyymmdd形式の文字列を 日付フォーマットのセルに変換する:画像17

C2セルをコピーし、C列の他の行にペーストします。下図の表示になります。"yyyymmdd"形式の数値を日付形式に変換できました。
Excelでyyyymmdd形式の文字列を 日付フォーマットのセルに変換する:画像18

A.W.S (Another World Story)

Excelでyyyymmdd形式の文字列を 日付フォーマットのセルに変換する:画像19

東京のオフィス街にそびえるガラス張りのビル。 10階にある小さなIT企業「サンライズ・ソリューションズ」のオフィスは、月曜日の朝からキーボードの軽快な音とコーヒーの香りで満たされていた。 窓際の席では、新入社員の佐藤彩花が、目の前のモニターに映るExcelシートをじっと見つめていた。彼女のデスクには、使い込まれたマウスパッドと、 ピンクのマグカップが置かれている。画面には、「20250526」や「20250415」といった、yyyymmdd形式の数字の羅列が並ぶデータが広がっていた。

隣の席では、先輩社員の山田太郎が、コーヒーを片手にストレッチをしながら彼女の様子をちらりと見た。彩花の眉間に刻まれた小さなシワに気づき、山田はにやりと笑う。

「佐藤さん、どうしたの? その深刻な顔。まるでExcelが世界の謎を解く鍵でも握ってるみたいだね」
と、山田が軽い調子で声をかけた。

彩花は少し照れくさそうに笑いながら、モニターを指さした。
「山田さん、助けてくださいよ。このデータ、全部『20250526』みたいな文字列なんですけど、これを普通の日付フォーマットに変えたいんです。クライアントに提出する前に、ちゃんと『2025/05/26』みたいにしないと…でも、どうやればいいか分からなくて」

山田は椅子を滑らせ、彩花のデスクに近づいた。オフィスの空調が静かに唸る中、彼は彼女の画面を覗き込み、軽くうなずいた。
「お、なるほどね。yyyymmdd形式か。簡単だよ、佐藤さん。Excelにはこれを一発で日付に変換するコツがあるんだ。見せてあげるよ」

彼は彩花のキーボードを借り、セルを一つ選択した。
「まず、この文字列が例えばC列にあるとするよね。で、空いてる列、例えばD列に、こんな数式を入れる」
と、山田はすらすらとキーボードを叩き、数式を入力した。

=DATE(LEFT(C2,4),MID(C2,5,2),RIGHT(C2,2))

「これね、LEFT、MID、RIGHT関数を使って、文字列を年、月、日に分解して、DATE関数で日付に変換するんだ。C2に入ってる『20250526』を、2025、05、26に分けて、Excelが認識できる日付にしちゃう。 で、D列に結果が出たら、セルの書式設定を『日付』にすれば、きれいに『2025/05/26』って表示されるよ」

彩花は目を輝かせ、早速試してみた。数式を入力し、D列に「2025/05/26」と表示された瞬間、彼女は小さくガッツポーズ。「山田さん、めっちゃ簡単! これ、全部のデータにコピーすればいいんですよね?」

「そうそう。あ、でもな、佐藤さん、もっとズルい方法もあるよ」
と、山田はいたずらっぽく笑った。
「データタブの『区切り位置』を使う方法。文字列を選択して、4桁、2桁、2桁で区切って、年月日を別々の列に分ける。そしたら、結合して日付に変換もできるけど…まあ、今回は数式で十分だな」

彩花は感心しながら、残りのデータにも数式を適用し、みるみるうちにシートが整った。
「山田さん、ほんと助かりました! これでクライアントに提出できます。…でも、なんでこんな便利な技、誰も教えてくれなかったんだろう」

山田はコーヒーを一口飲み、椅子にふんぞり返った。
「ハハッ、佐藤さん、それがオフィスの掟だよ。Excelの魔法は、自分でハマって初めて覚えるものなんだ。ほら、俺も入社したての頃、似たようなデータで徹夜したことあるからさ」

彩花が「え、徹夜!?」と驚く中、山田はニヤリと笑って続けた。
「そうそう。でもな、その時に先輩が教えてくれた数式、今でも使ってる。で、佐藤さん、せっかく覚えたんだから、ひとつオチをつけてやろう。 次、クライアントから『mmddyyyy形式でくれ』って言われたら、どうする?」

彩花は一瞬固まり、笑いながら叫んだ。
「え、そしたらまた山田さんに助けてもらいますよ!」

オフィスに二人の笑い声が響き、窓の外では朝の陽光がビルのガラスにきらめいていた。Excelの魔法を一つ手に入れた彩花は、今日も新しい一歩を踏み出したのだった。

AuthorPortraitAlt
著者
iPentecの企画・分析担当。口が悪いのでなるべく寡黙でありたいと思っている。が、ついついしゃべってしまい、毎回墓穴を掘っている。
作成日: 2015-07-15
改訂日: 2023-12-23
Copyright © 1995–2025 iPentec all rights reserverd.