エクセルで曜日の表示形式をマスター!関数やエラー対策も

エクセルで日付を入力したとき、「あれ?曜日も一緒に出したいな」って思ったことはありませんか?一つずつ手入力していくのは面倒ですし、日付を変えたら曜日も自動で変わってくれたらすごく便利ですよね。今回は、エクセルで曜日の表示形式を設定する基本から、スプレッドシートとの違い、英語表記のやり方、祝日の設定、さらには関連キーワードでよく調べられているテクニックまで、私が普段の業務で使っている方法をまとめて分かりやすくご紹介します。これを読めば、エクセルのカレンダー作りがもっと楽しく、そしてグッとラクになるはずです!

曜日の表示形式
  • エクセルの表示形式を使って曜日を思い通りに表示する方法
  • 日本語と英語、かっこ付きなど、さまざまな曜日の表記パターン
  • うまく曜日が表示されない時の原因と、その解決策
  • スプレッドシートへの移行時や関数を使った少し高度な自動化テクニック
スポンサーリンク

エクセルの表示形式で曜日を出す基本

まずは、エクセルで日付から曜日を表示させる最も基本的な方法を見ていきましょう。数式を使わず、「見た目」だけを変える方法なので、後で計算に使いたい時にもとっても便利なんですよ。設定は「セルの書式設定」から行います。

aaaで日本語の曜日を表示する

エクセルで曜日を出したい時、一番よく使うのがこの「aaa」という表示形式ですね。「2024/4/1」と入力されたセルを右クリックして、「セルの書式設定」を開きます。「表示形式」タブの左側で「ユーザー定義」を選ぶと、右側に「種類」を入力するボックスが出てきますよね。

ここに、半角でaaaと入力してみてください。すると、セルの表示が「月」のように漢字1文字の曜日になります。もし「月曜日」としっかり表示させたい場合は、aaaaと4つ重ねて入力します。

【ここがポイント!】

この方法のすごいところは、セルの見た目は「月」になっていても、エクセルの中身としては「2024/4/1」という日付データのままだということです。だから、後で「1週間後の日付を計算したい」といった時にもエラーになりません。

ちなみに、この「ユーザー定義」を使った曜日の表示形式は、多くの人がエクセルの表示形式の基本として関連キーワードでもよく検索している必須テクニックです。ぜひ覚えておいてくださいね。

dddを用いた英語の曜日表記

外資系企業の方とデータを共有したり、ちょっとカッコいいスケジュール表を作りたい時は、曜日を英語表記にしたいこともありますよね。そんな時も表示形式で簡単に設定できます。

先ほどのユーザー定義の画面で、今度はdddと入力してみましょう。すると「Mon」のように英語の省略形で曜日が表示されます。フルスペルで「Monday」と出したい場合は、ddddと入力します。

ただ、ここで一つ注意点があります。お使いのエクセルの設定(ロケール設定)によっては、dddと入れても英語にならないことがあるんです。確実に英語で表示させたい場合は、設定画面で国や地域を「英語(U.S.)」などに指定すると安心ですよ。

かっこ付きで曜日を併記する

ビジネス文書でよく見かけるのが、「2024/4/1 (月)」といったように、日付の後ろにかっこ付きで曜日が添えられているパターンですよね。これも、ユーザー定義を使えば一つのセルで完結させることができます。

ユーザー定義の種類ボックスに、以下のように入力します。

yyyy/m/d (aaa)

こうするだけで、日付と曜日がセットになって表示されます。かっこの部分は普通に入力してOKです。わざわざ日付の列と曜日の列を2つ作る必要がないので、表がスッキリしますし、入力の手間も半分になりますよ。

【補足メモ】

和暦で表示したい場合は、「ggge年m月d日(aaaa)」のように設定すると、「令和6年4月1日(月曜日)」といったフォーマットも作れます。公的な書類を作る時に便利ですね。

正しく表示できない時の対処法

「ちゃんとaaaって設定したのに、なぜか曜日が出ない!」そんなトラブル、私も昔よくやりました。この原因のほとんどは、入力した日付がエクセルに文字列として認識されてしまっていることにあります。

エクセルは日付を「シリアル値」という数字で管理しています。でも、どこかのシステムからデータを持ってきた時などは、見た目は日付でも、エクセルにとってはただの文字になっていることがあるんです。文字に対しては、いくら曜日の表示形式を設定しても反応してくれません。エラー(#VALUE!)が出たりします。

【解決策】

文字になってしまった日付を数字(シリアル値)に戻すには、「VALUE関数」を使うか、もっと簡単な方法として、別のセルに「=–A1」(A1は日付のセル)と入力してみてください。マイナスを2つ付けることで、エクセルが強制的に数値に変換してくれます。その後で表示形式を設定すれば、うまくいくはずです。

もしセルに「####」と表示されてしまう場合は、単純に列の幅が狭くて文字が入りきっていないだけかもしれないので、列の幅を広げてみてくださいね。

スプレッドシートでの文字化け対策

最近はエクセルで作ったファイルを、Googleスプレッドシートに読み込んで共有する機会も増えましたよね。でもここでよくあるのが、「エクセルでは『月』って表示されてたのに、スプレッドシートで開いたら『aaa』って文字化けしてる!」という問題です。

実は、エクセルでは日本語の曜日を「aaa」で設定しますが、スプレッドシートは国際基準に合わせていて、言語に関係なく「ddd」(またはdddd)を使うルールになっているんです。だから、エクセルの「aaa」を理解できずに、そのまま文字として表示してしまいます。

スプレッドシートで文字化けしてしまった場合は、対象のセルを選んで「表示形式」>「数字」>「カスタム数値形式」を開き、「aaa」を「ddd」に書き直して適用してみてください。また、スプレッドシートの設定で言語が「日本」になっているかも確認しておくと確実です。

エクセルの表示形式と曜日の応用テクニック

曜日の表示形式1

ここからは、ただ表示するだけでなく、エクセルの関数や便利な機能を組み合わせて、さらに便利に曜日を扱うための応用テクニックをご紹介します。自動で色を変えたり、祝日に対応させたりと、少しステップアップした内容です。

WEEKDAY関数との連携

表示形式で曜日を出すのは「見た目」を変えるだけですが、曜日を条件にして何か計算をさせたい時(例えば、日曜日だけ時給を高くするとか)は、WEEKDAY関数の出番です。

WEEKDAY関数は、日付から「その日が週の何日目か」を数字(1から7)で返してくれる関数です。例えば「=WEEKDAY(A1)」と入力すると、A1の日付が日曜日なら「1」、月曜日なら「2」という数字が出ます。

この数字を使って、「IF関数」などと組み合わせれば、「もし日曜日(1)なら〇〇する」といった条件分岐ができるようになります。単に曜日を文字としてレポートに出したいだけならTEXT関数(=TEXT(A1,”aaa”)など)の方が向いていますが、システム的な処理をしたい場合はWEEKDAY関数が便利ですよ。

条件付き書式で土日の色を変える

シフト表やカレンダーを作っていると、「土曜日は青、日曜日は赤に色分けしたい」という要望が必ず出ますよね。手作業で色を塗るのは大変ですし、間違える元になります。そこで使うのが条件付き書式です。

先ほどのWEEKDAY関数と組み合わせます。色を付けたい範囲を選択して、「条件付き書式」>「新しいルール」から「数式を使用して、書式設定するセルを決定」を選びます。

  • 日曜日の設定:数式に =WEEKDAY($A2)=1 と入力し、書式で赤色を指定。
  • 土曜日の設定:数式に =WEEKDAY($A2)=7 と入力し、書式で青色を指定。

ここでのポイントは、「$A2」のように、列のアルファベットの前にだけ「$」マーク(絶対参照)を付けることです。これで、日付の列を基準にして行全体の色を変えることができます。詳しい手順はこちらの記事でも解説しているので参考にしてみてくださいね。

祝日リストを使った高度な自動化

土日の色分けはできたとして、一番やっかいなのが「祝日」ですよね。エクセルは日本の祝日を知らないので、自動では色を変えてくれません。でも安心してください。ひと手間かければ祝日も自動化できます。

やり方は、別のシート(「祝日」シートなど)に、その年の祝日の日付をズラッと入力したリストを作ります。そして、条件付き書式の中でCOUNTIF関数を使って、「カレンダーの日付が、祝日リストの中にあるか?」をチェックさせます。

条件式の例:

=COUNTIF(祝日リスト!$A$2:$A$50, $A2)>0

この数式を条件付き書式に設定して色を指定すればOKです。注意点として、条件付き書式はリストの上にあるルールが優先されます。祝日は特別な日なので、この「祝日のルール」を一番上に持ってくるように設定するとうまく表示されますよ。

VBAマクロでの自動フォーマット

もし、毎日大量のデータに曜日の設定をしなければならなかったり、複雑な定型業務を完全に自動化したいと考えているなら、VBA(マクロ)を使うのも一つの手です。ちょっとハードルは上がりますが、覚えるとすごく強力です。

VBAで表示形式を設定する時は、NumberFormatLocalというプロパティを使います。例えば、A1セルに「2024/4/1(月)」という形式を設定したい場合は、次のようなコードを書きます。

Range("A1").NumberFormatLocal = "yyyy/m/d(aaa)"

これだけで、ボタン一つで設定した範囲すべての表示形式を一瞬で変更できるようになります。毎回設定ダイアログを開く手間が省けるので、作業効率が劇的にアップしますよ。

エクセルの表示形式で曜日を扱うまとめ

いかがでしたでしょうか。エクセルで曜日を表示させる方法は、基本の「aaa」を使った表示形式から、関数を使った高度な自動化まで、目的に応じていろんなアプローチがあります。まずは一番簡単な表示形式の設定から試してみて、ご自身の業務スタイルに合わせて、条件付き書式やスプレッドシートとの連携などにチャレンジしてみてくださいね。この記事が、みなさんのエクセル作業を少しでも快適にするヒントになれば嬉しいです!

※この記事で紹介している設定方法や関数の動作は、お使いのエクセルのバージョンや環境によって少し異なる場合があります。最終的な表示の確認は、ご自身の環境で行ってみてくださいね。

タイトルとURLをコピーしました