エクセルで曜日を表示する方法をお探しですね。
広告
システムから出力された8桁の日付を、一瞬で「曜日付き日付」に変換する方法
システムやデータベースからエクセルにデータをダウンロードしたとき、「20231201」みたいに8桁の数字で日付が表示されて困ったことはありませんか?このままだと日付として認識されないので、並べ替えやフィルターがうまく使えないんですよね。
しかも、手作業で「/」を入れたり、カレンダーを見ながら曜日を書き込んだりするのは、めちゃくちゃ面倒だしミスも起きやすいです。
この記事では、そんな8桁の数字を一瞬で「ちゃんとした日付データ」に変換して、さらに「2023/12/01(金)」みたいに曜日まで自動で表示させる便利なワザを紹介します。
関数を使わずに数クリックで終わる方法から、元のデータを残したまま変換する方法まで、実際の仕事ですぐに使えるテクニックをまとめました。
「区切り位置」機能で8桁の数字を一瞬で日付に変換する
まず最初に紹介するのは、関数を使わずに元のデータをそのまま「日付形式」に変えてしまう、一番お手軽で強力な方法です。
多くの人は関数で何とかしようとしますが、実はエクセルの「データ」タブにある「区切り位置」という機能を使うのが一番早いんです。
この機能、本来はカンマ区切りのデータを分けたりするためのものなんですが、実は「8桁の数字を日付に変換する」っていう隠れた便利機能があるんですよ。
やり方はとってもシンプル。
まず変換したい8桁の数字が入っているセルを選択して、画面上の「データ」タブから「区切り位置」をクリックします。
ウィザード画面が出てきますが、1画面目と2画面目は何も変えずにそのまま「次へ」を押してください。
大事なのは3画面目です。
ここで「列のデータ形式」の中にある「日付」を選んで、右側が「YMD(年/月/日)」になっていることを確認したら「完了」を押します。
これだけで、ただの数字だった「20231201」が、エクセルがちゃんと日付として認識できる「2023/12/01」に一括変換されます。
この方法の良いところは、難しい数式を書く必要がなくて、大量のデータでも一瞬で終わること。
しかも変換後は本物の「日付データ」になるので、日付順に並べ替えたり、次に説明する曜日の自動表示もバッチリできるようになります。
ユーザー定義の書式で曜日をカッコ付きで自動表示させる
データがちゃんとした日付形式に変換できたら、次は見た目を整えましょう。
エクセルには「セルの書式設定」っていう機能があって、これを使うとデータの中身は変えずに、表示の仕方だけを自由に変えられるんです。
ここでは、日付の横に自動で「(金)」とか「(月)」みたいな曜日を表示させるテクニックを紹介します。
変換した日付のセルを選んだ状態で、「Ctrl + 1」キー(または右クリックして「セルの書式設定」)を押して設定画面を開きます。
「表示形式」タブの中にある「ユーザー定義」を選んで、「種類」の入力欄に次のコードを入れてください。
**yyyy/mm/dd(aaa)**
この暗号みたいなコードには、ちゃんと意味があります。
「yyyy」は西暦4桁、「mm」は月2桁、「dd」は日2桁を表しています。
そしてポイントが「aaa」です。
エクセルでは「aaa」と入力すると「月、火、水…」っていう短い曜日が表示されて、「aaaa」と入力すると「月曜日、火曜日…」っていう長い曜日が表示されます。
これをカッコ「()」で囲むことで、日付が変わると自動的に正しい曜日がカッコ付きで表示されるようになるんです。
この設定をしておけば、もし日付を「2023/12/02」に修正したとしても、自動的に曜日が計算し直されて「(土)」に変わります。
カレンダーを確認して手入力する必要がなくなるので、作業がめちゃくちゃ楽になるし、曜日の入力ミスも完全に防げます。
元データを残したいときに便利!関数を使った変換方法
さっきの「区切り位置」機能は元のデータを書き換えちゃうんですが、場合によっては「元の8桁の数字はそのまま残して、隣の列に日付を表示したい」ってこともありますよね。
そんなときは、関数を使って変換する方法が便利です。
ここでは、数字を日付データに変換する「DATE関数」を使った王道のテクニックを紹介します。
8桁の数字(例:A1セルに20231201)から「年」「月」「日」をそれぞれ取り出して、DATE関数で組み合わせます。
数式はこんな感じです。
**=DATE(LEFT(A1,4), MID(A1,5,2), RIGHT(A1,2))**
この数式は、「左から4文字を年、5文字目から2文字を月、右から2文字を日として扱って、日付データを作ってね」っていう命令です。
これで、8桁の数字がちゃんとした日付データに変換されます。
もし、変換と同時に「曜日まで文字列として表示したい」場合は、TEXT関数を使うともっと早いです。
**=TEXT(TEXT(A1,”0-00-00″),”yyyy/mm/dd(aaa)”)**
ちょっと複雑に見えますが、内側のTEXT関数で8桁の数字をハイフン区切りの日付っぽい形に整えて、外側のTEXT関数で日付フォーマットと曜日を適用しています。
ただし、TEXT関数を使った結果は「文字列」扱いになるので、日付として計算したり高度な並べ替えをしたりするには向いていません。
集計や分析に使うならDATE関数、単なる表示用ならTEXT関数と、目的に合わせて使い分けるのがコツです。
うまくいかないときの原因と対処法
ここまでの手順通りにやっても、思った通りにならないことがあります。
よくあるトラブルと解決策を知っておけば、無駄な時間を使わずに済みますよ。
まず一番よくあるのが、セルが「######」っていう表示になっちゃう現象。
これはエラーじゃなくて、単に「列の幅が狭すぎて日付が表示しきれてない」っていうサインです。
この場合は、列の右端をダブルクリックして幅を自動調整するか、手動で広げるだけで解決します。
また、日付に変換したはずなのに「45261」みたいな謎の5桁の数字が表示されることもあります。
これは「シリアル値」っていうもので、エクセルが日付を管理するために内部で使っている数値なんです(1900年1月1日を「1」としてカウントしています)。
この数字が表示されているってことは、データ自体はちゃんと日付になってるんですが、見た目の設定が「標準」や「数値」になってるだけ。
さっき紹介した「セルの書式設定」から「日付」や「ユーザー定義」を設定し直せば、ちゃんとした日付表示に戻ります。
最後に、並べ替えがうまくいかないケース。
これはデータが「文字列」として認識されている可能性が高いです。
特にTEXT関数を使った場合や、他のソフトからコピーした直後は文字列扱いになりがちです。
日付順に正しく並べ替えたいなら、必ず「区切り位置」機能やDATE関数を使って「シリアル値」に変換されていることを確認してください。
見た目が日付でも、セルの左上に緑色の三角マーク(エラーインジケーター)が出ている場合は文字列の可能性があるので注意が必要です。
広告
