Microsoft Excel(エクセル)で日付が8桁の数字で表示されていることがありませんか?
例えば、社内システムからデータをエクセルに取り込んだら『20240622』と表示されてしまい、『2024/06/22』に変えたいけれどどうしたらいいか分からず悩んだことがある人は多いはず。
こんな時、多くの数字セルに手作業で一つずつ”/”(スラッシュ)を入れていては時間がかかってしまいます。
この記事では、8桁の数字を日付に自動で変換する3つの方法と、逆に日付を8桁の数字に戻す3つの方法を解説します。
8桁の数字を日付に変換して表示する3つの方法
Excel では、日付を6桁のシリアル値という数値で管理し、表示を「2024/6/22」などに変換しています。ちなみに、2024年6月22日のシリアル値は「45465」です。
そのため、”/”(スラッシュ)を手入力して、見た目上だけ日付のように入力しても日付としては認識されません。
私たちは、「20240622」という8桁の数字を見て日付と理解しますが、エクセルからすると単なる8桁の数字にしかすぎません。
この記事では、8桁の数字を日付に自動で変換する3の方法を紹介します。
セル数はどれだけ多くても問題ありません。下の3つの中から好みの方法を使ってください。
数字⇒日付に変換
方法1.TEXT関数を利用
方法2.「区切り位置」機能を利用
方法3.DATE関数を利用
TEXT関数で「8桁の数字」⇒「日付」に変換
まず1つ目は、TEXT関数を利用して数字を日付に変換する方法です。
TEXT関数は、セルの表示を「日付」や「曜日」などの表示形式に変換する関数です。
=TEXT(セル番号,表示形式)
今回は、2つ目の引数「表示形式」に、表示形式コード「0」という数字1桁の数字を表すコードを利用します。
まずは、日付を表示したいセルに以下のTEXT関数を入力します。下の数式の”B3”は、実際に8桁の数字が入力されているセルを指定してください。
=TEXT(B3, "0000!/00!/00") * 1
Enterキーで数式を確定すると、日付を表すシリアル値という6桁の数字に変換されます。表示形式を変換するため、「ホーム」タブから「短い日付形式」を選択してください。
上記の操作は、C3セルの右クリックメニューの「セルの書式設定」から、「セルの書式設定」画面⇒「表示形式」タブ⇒「日付」メニューからでも表示を変更することができます。
そうすると、シリアル値が日付に変換されることを確認してください。
残りの数字のセルもTEXT関数で日付に変換します。TEXT関数をコピペするか、セルの右下にマウスのカーソルを合わせて、下にドラッグしてください。(オートフィルの利用)
「2024/07/03」というように1桁の月日に「0」を挿入したい場合は、対象セルの「セルの書式設定」画面から、「ユーザー定義」の定義入力欄に以下のコードを入力してください。
yyyy/mm/dd;@
また今回利用したTEXT関数に関して補足説明します。
TEXT関数に数式内に入力する「!」の意味は、「/」を割り算と認識されないように入れているためのコードですので、忘れないように入力してください。
また、TEXT関数の数式の後ろに「*1」を入力しているのは、TEXT関数の結果を”文字列”だとExcelに認識させないために、1を乗じてシリアル値が表示されるように調整しています。
『区切り位置』で「8桁の数字」⇒「日付」に変換
続いて2つ目は、「区切り位置」機能を利用して数字を日付に変換する方法です。
本来「区切り位置」は、ある1列に入力されたデータをコンマなどの文字をキーにして複数列に分解(区切る)為の機能ですが、今回はこの機能を応用します。
この方法は、関数を使わずに、8桁の数字を直接日付セルに変更する方法です。
まず、8桁の数字が入力されたセルを選択し、「データ」タブの「区切り位置」コマンドをクリックします。
「区切り位置指定ウィザード1/3」画面が表示されるので、「コンマやタブなどの区切り文字によってフィールドごとに区切られたデータ」にチェックが入っているのを確認して「次へ」を押します。
次に「区切り位置指定ウィザード2/3」画面が表示されます。タブだけにチェックが入っている状態で、「次へ」を押します。
次に「区切り位置指定ウィザード3/3」画面が表示されます。列のデータ形式を「日付」にチェックを入れて、「完了」を押します。この操作により、対象列のデータを「日付」として認識させます。
そうすると、「区切り位置」機能によって、選択したセル範囲の8桁の数字が日付に自動で変換されました。
もし、8桁の数字が1列の縦方向に並んでおらず、横方向に入力されている場合は、1列ずつ上の作業を行うか、方法1のTEXT関数、方法2のDATE関数を使った方法を利用してください。
DATE関数で「8桁の数字」⇒「日付」に変換
3つ目は、DATE関数を利用して数字を日付に変換する方法です。
DATE関数は、「年」「月」「日」をそれぞれ引数に指定して日付を作成する関数です。
=DATE(年,月,日)
このDATE関数を、セルの中から文字列を抽出する3つの関数「LEFT関数」「RIGHT関数」「MID関数」を組み合わせて利用します。
- LEFT関数⇒文字をセルの「左端から抽出」
- RIGHT関数⇒文字をセルの「右端から抽出」
- MID関数⇒文字をセルの「任意の位置から抽出したい文字数分を抽出」
まずは、日付を表示したいセルに以下のDATE関数を入力します。下の数式の”B3”は、実際に8桁の数字が入力されているセルを指定してください。
=DATE(LEFT(B3,4),MID(B3,5,2),RIGHT(B3,2))
そうすると、8桁の数字の先頭4文字から「年」が、5文字目からの2文字から「月」が、末尾からの2文字から「日」が指定され、日付が作成されます。
残りの数字のセルもDATE関数で日付に変換します。DATE関数をコピペするか、セルの右下にマウスのカーソルを合わせて、下にドラッグしてください。(オートフィルの利用)
MID関数の中に入れ子で使ったLEFT関数、RIGHT関数、MID関数の使い方を詳しく知りたい方は、以下の記事を参考にしてください。
日付を8桁の数字に変換する方法
上の見出しでは、8桁の数字を日付に変換する方法を紹介しました。
今度は、日付を8桁の数字に戻す方法を解説します。
日付は6桁のシリアル値でエクセルで管理されているため、”/”(スラッシュ)の文字を削除しても8桁の数字には戻せません。以下の2つの方法のどちらかを使って数字に戻してください。
日付⇒8桁の数字に変換
方法1.TEXT関数を利用
方法2.YEAR関数とMONTH関数とDAY関数とTEXT関数を利用
TEXT関数で「日付」⇒「8桁の数字」に変換
まず1つ目は、TEXT関数を利用して数字を日付に変換する方法です。
上の見出しでも紹介したとおり、TEXT関数は、セルの表示形式を変換する関数です。
=TEXT(セル番号,表示形式)
今回は、2つ目の引数「表示形式」に、表示形式コード「y」「m」「d」という年月日を表す3つのコードを利用します。
表示コードの意味
「y」⇒年(西暦)を表すコード。「yy」は2桁の西暦、「yyyy」は4桁の西暦
「m」⇒月を表すコード。「m」は1桁の月、「mm」は2桁の月
「d」⇒日を返すコード。「d」は1桁の日、「dd」は2桁の日
まずは、日付を数字に変換したいセルに以下のTEXT関数を入力します。下の数式の”B3”は、実際に日付が入力されているセルを指定してください。
=TEXT(B3,"yyyymmdd")*1
そうすると、8桁の数字が表示されます。もし数字が表示されずに「############」と表示される場合は、続いて、以下の手順を行って8桁の数字に変換してください。
「############」と表示されるのは、セルの表示形式が「日付」になっていることが原因です。表示形式を変換するため、「ホーム」タブから「標準」を選択してください。そうすると、上の画像ように、8桁の数字で表示されます。
残りの日付のセルもTEXT関数で数字に変換します。TEXT関数をコピペするか、セルの右下にマウスのカーソルを合わせて、下にドラッグしてください。(オートフィルの利用)
DATE関数で「日付」⇒「8桁の数字」に変換
2つ目の日付から8桁の数字に変換する方法は、YEAR関数とMONTH関数とDAY関数とTEXT関数を利用します。
関数が多く複雑に感じると思いますが、この方法のメリットは、数式を入力するセルの表示形式が「日付データ」や「標準データ」であっても正しく数字に変換される点です。
利用する数式や演算子のそれぞれの機能は以下のとおりです。
ポイント
YEAR関数 ⇒ 日付から「年」だけを表示します。
MONTH関数 ⇒ 日付から「月」だけを表示します。
DAY関数 ⇒ 日付から「日」だけを表示します。
TEXT関数 ⇒ セルの表示形式を日付や数、文字列などの表示形式に変更します。
& ⇒ &の前後の文字を結合します。
まずは、日付を数字に変換したいセルに以下の数式を入力します。下の数式の”B3”は、実際に日付が入力されているセルを指定してください。
=YEAR(B3)&TEXT(MONTH(B3),"00")&TEXT(DAY(B3),"00")
そうすると、日付が8桁の数字に変換されます。後は、下のセルにも数式をコピペすれば完成です。
日付の表示を変える曜日付きに変更する方法
今回は、8桁の数字を日付で変更する方法を紹介しました。
日付を「2024/06/22」というスラッシュ付きで表示しましたが、表示させた日付を「2024年6月22日」や「2024年6月22日(土)」などに変更することも可能です。
下の記事で日付の表示をオリジナルに変更する方法を紹介していますので、興味のある方は参考にしてください。