「20240131」のような8桁の日付を、Excelで「2024/01/31」に直したい場面は多いですね。見た目だけスラッシュを入れたい場合と、並べ替え・計算に使える正しい日付データにしたい場合では、操作が少し変わります。
仕事で使うなら、8桁の文字列・数値をExcelが認識できる日付に変換してから表示形式を整える方法が確実です。まずは一番失敗しにくい関数から試しましょう。
結論:DATE関数で日付に変換し、表示形式を「yyyy/mm/dd」にします
この方法なら、変換後の値は単なる文字ではなくExcelの日付データになります。日付順の並べ替え、月ごとの集計、今日からの日数計算などにもそのまま使えて便利ですよ。
8桁の日付を関数で変換する手順
- 元データが入っているセルを確認します。ここではA1セルに「20240131」が入っているものとします。
- 変換結果を表示したいセル、たとえばB1セルをクリックします。
- =DATE(LEFT(A1,4),MID(A1,5,2),RIGHT(A1,2))と入力します。
- Enterキーを押します。最初は「2024/1/31」や「45322」などの表示になることがありますが、値は正しく日付になっています。
- B1セルを選択したまま、[ホーム]タブの[数値]グループにある表示形式の一覧を開きます。
- [その他の表示形式]をクリックし、[表示形式]タブの[ユーザー定義]を選びます。
- [種類]にyyyy/mm/ddと入力し、[OK]をクリックします。
これで「2024/01/31」のように、年・月・日がスラッシュで区切られた形式で表示されます。複数行のデータがある場合は、B1セル右下の小さな四角形(フィルハンドル)をダブルクリックすると、隣接するデータの最終行まで数式をコピーできます。
数値の8桁日付でも文字列の8桁日付でも使える理由
8桁の日付データは、見た目が同じでもExcel内部では「数値」または「文字列」になっています。たとえば「20240131」は、Excelにとっては日付ではなく大きな数値として扱われることが多いです。この状態で表示形式だけを「yyyy/mm/dd」にしても、期待どおりの日付にはなりません。
DATE関数は、年・月・日を別々に受け取り、Excelが扱える日付シリアル値に組み立て直します。LEFT、MID、RIGHT関数で8桁の各部分を取り出しているため、元データが数値でも文字列でも対応しやすいのがメリットです。
先頭に0が付くデータがある場合の数式
通常の日付なら年は4桁なので問題ありませんが、取り込み元によってはセルの桁数がそろわないことがあります。その場合は、TEXT関数で8桁に整えてから分解すると安心です。
変換先のセルに、次の数式を入力してください。
=DATE(LEFT(TEXT(A1,"00000000"),4),MID(TEXT(A1,"00000000"),5,2),RIGHT(TEXT(A1,"00000000"),2))
ただし、日付データは基本的に「20240105」のように年4桁・月2桁・日2桁で管理するのがおすすめです。元データの桁数が不規則な場合は、CSVの出力設定や元システムの項目定義も確認しておくと後の作業が楽になります。
関数を残さず、変換結果だけを貼り付ける方法
提出用の一覧表などで数式を残したくないときは、変換した列を値として貼り付けましょう。元データを残したまま作業すれば、万が一のときも戻せて安心です。
- DATE関数で変換したセル範囲を選択します。
- Ctrlキーを押しながらCキーを押してコピーします。
- 同じ場所、または貼り付け先の先頭セルを右クリックします。
- 貼り付けオプションから[値]を選びます。クリップボードに「123」と表示されているアイコンが目印です。
- 必要に応じて、元の8桁データの列を削除します。
キーボード中心で操作するなら、コピー後にCtrl+Alt+Vを押し、表示された形式を選択する方法も便利です。Excelのバージョンによって画面は少し異なりますが、[値]または[値と数値の書式]を選べば大丈夫です。
すでに正しい日付なのに8桁表示になっている場合
セルの値がすでにExcelの日付になっていて、表示だけが「20240131」になっているケースもあります。この場合は関数を使う必要はありません。表示形式を変更するだけで済みます。
- スラッシュ表示にしたい日付セルを選択します。
- Ctrlキーを押しながら1キーを押して、[セルの書式設定]を開きます。
- [表示形式]タブで[ユーザー定義]を選択します。
- [種類]へyyyy/mm/ddと入力します。
- [OK]をクリックします。
セルを選択して数式バーを見たときに「2024/01/31」などの日付として表示されるなら、この方法で対応できる可能性が高いです。一方、数式バーにも「20240131」とだけ出る場合は、前半で紹介したDATE関数による変換を使いましょう。
うまくいかない場合のチェックポイント
「#VALUE!」エラーが出る
セル内に空白、ハイフン、全角数字、文字列が混ざっている可能性があります。まず元データの文字数を確認してください。別セルに=LEN(A1)と入力し、結果が8になるかを見ます。
- 文字数が8以外の場合:余分な空白や記号が含まれていないか確認します。
- 全角数字の場合:半角数字に直してから変換します。
- 空白セルが混ざる場合:空白行を除外するか、数式を入力する前にデータを整理します。
- 「2024年01月31日」のような形式の場合:8桁データ用の数式ではなく、置換や区切り位置の機能を使います。
「2024/13/01」のような想定外の日付になる
月日が正しい位置に並んでいない、または元データ自体に入力ミスがある状態です。DATE関数は月が13なら翌年1月として自動計算するため、必ずしもエラーになりません。変換前に年4桁、月2桁、日2桁の順番であることを確認しましょう。
「#####」と表示される
これは日付変換の失敗ではなく、列幅が足りないサインです。列見出しの右端をダブルクリックして列幅を自動調整すると、日付が表示されます。
数式を入れても「45322」のような数字になる
日付としては正しく変換できています。Excelは日付を内部的には連番で管理しているため、表示形式が[標準]だと数字に見えます。[セルの書式設定]から「yyyy/mm/dd」を設定してください。
数式内のカンマでエラーになる
Excelの地域設定によっては、関数の区切り記号にカンマではなくセミコロンを使う場合があります。その場合は、数式内のカンマをセミコロンに置き換えて入力してください。
時短に役立つ関連ワザ:日付をすばやく入力・確認する
日付を扱う作業が多いなら、次のショートカットも覚えておくと便利です。
- Ctrl+;(セミコロン):選択中のセルに今日の日付を入力します。
- Ctrl+Shift+;(セミコロン):選択中のセルに現在時刻を入力します。
- Ctrl+1:セルの書式設定をすぐに開きます。日付表示の変更で特に便利です。
- Ctrl+E:フラッシュフィルを実行します。例として「2024/01/31」を1件手入力した後、同じ規則のデータ列で使うと、文字列の整形を補助できることがあります。
ただし、フラッシュフィルは結果が文字列になることがあります。日付で計算や集計をする予定があるなら、DATE関数で日付データに変換する方法を優先しましょう。最初に正しい形式へ整えておけば、後の並べ替えや集計で手戻りを減らせますよ。
