Excelで日付から曜日を自動表示する3つの実践的な方法

Excelで日付データから曜日を自動的に取得できれば、スケジュール管理やレポート作成の効率が大幅に向上します。本記事では、関数を使った自動化方法と、条件付き書式との組み合わせで実務レベルの活用法を3パターン紹介します。

Excel曜日自動表示の基本:TEXT関数を使う方法

最もシンプルで汎用的な方法がTEXT関数です。日付セルを指定して曜日形式を指定するだけで、自動的に曜日が表示されます。

TEXT関数の基本構文

セルA1に日付が入っている場合、以下の数式をセルB1に入力してください:

=TEXT(A1,"aaa")

この数式により、「月」「火」「水」のように曜日が自動表示されます。形式コードを変更することで表示形式をカスタマイズできます:

  • "aaa" → 月、火、水(省略形)
  • "aaaa" → 月曜日、火曜日、水曜日(フルネーム)
  • "ddd" → Mon、Tue、Wed(英語省略形)
  • "dddd" → Monday、Tuesday、Wednesday(英語フルネーム)

複数行への一括適用

大量のデータがある場合、B1セルに数式を入力した後、右下のフィルハンドル(小さな四角)をドラッグして下方向に引っ張ることで、全行に自動適用されます。これにより、100行以上のデータでも一瞬で曜日が埋まります。

WEEKDAY関数で曜日を数値で取得し、カスタマイズする方法

より細かい制御が必要な場合は、WEEKDAY関数で曜日を数値(1-7)として取得し、別の関数と組み合わせる方法が有効です。

WEEKDAY関数の基本と実装例

=WEEKDAY(A1)

この数式は1(日曜日)から7(土曜日)の数値を返します。これをCHOOSE関数やIF関数と組み合わせることで、より高度な自動化が実現できます。

例えば、営業日(月〜金)と休日(土日)を自動判定する場合:

=IF(OR(WEEKDAY(A1)=1,WEEKDAY(A1)=7),"休日","営業日")

この数式は日曜日(1)と土曜日(7)を検出して「休日」と表示し、それ以外は「営業日」と表示します。

曜日ごとのカラー分け自動化

WEEKDAY関数の結果に基づいて、条件付き書式で自動的にセルの背景色を変える方法もあります。B列を選択して「条件付き書式」→「新しいルール」→「数式を使用して」から以下を設定:

=WEEKDAY(A1:A100)=7

この条件で「土曜日は青」「日曜日は赤」というように色分けを自動実行できます。

SEQUENCE関数とVERTICAL配列で最新式の自動化(Excel 365)

Microsoft Excel 365の新機能を使う場合、SEQUENCE関数とダイナミック配列で、より高度な自動化が可能です。

大量データの自動処理

Excel 365以降では、以下の数式で開始日からN日分の日付と曜日を自動生成できます:

=LET(
  start,A1,
  days,10,
  dates,SEQUENCE(days),
  date_list,start+dates-1,
  HSTACK(date_list,TEXT(date_list,"aaa"))
)

このようにLET関数で変数を定義してから、複数列に一度に結果を出力できます。従来のExcelでは複数の補助列が必要でしたが、この方法なら一つのセルで完結します。

注意点:バージョン互換性の確認

SEQUENCE関数やLET関数はExcel 365(月額更新版)とExcel 2021以降でのみ使用可能です。企業内で旧バージョンを使用している場合は、TEXT関数やWORKDAY関数の組み合わせに留めておくことをお勧めします。

実務でのハマりポイントと解決策

時刻が含まれている場合の曜日ズレ

セルA1に「2025/01/15 14:30:00」のようにタイムスタンプが入っている場合、TEXT関数でもWEEKDAY関数でも正しく曜日を認識します。しかし、テキスト形式で日付が入力されている場合は認識されません。

対策として、DATEVALUE関数でテキストを日付に変換してから使用してください:

=TEXT(DATEVALUE(A1),"aaa")

異なるロケール(言語設定)での曜日表示の問題

Excelの言語設定が日本語以外の場合、TEXT関数で"aaa"と指定しても英語や他言語で曜日が表示される可能性があります。この場合は、CHOOSE関数で明示的に曜日を指定します:

=CHOOSE(WEEKDAY(A1),"日","月","火","水","木","金","土")

このように配列を固定することで、システム設定に依存しない安定した結果が得られます。

TEXT関数 vs WEEKDAY関数:どちらを使うべき?

関数 向いている用途 処理速度
TEXT関数 レポート出力、表示用途 速い
WEEKDAY関数 営業日判定、条件分岐 非常に速い

シンプルに曜日を表示したいだけならTEXT関数、営業日の自動判定や複雑な条件処理が必要ならばWEEKDAY関数を選択してください。

実装例:実務レベルのスケジュール管理シート

以下は、入力した日付から自動的に曜日を表示し、土日を背景色で区別するシートの構成例です:

A列: 日付(入力)
B列: =TEXT(A1,"aaa")で曜日を自動表示
C列: =IF(OR(WEEKDAY(A1)=1,WEEKDAY(A1)=7),"休日","営業日")で営業日判定
D列: スケジュール内容(手入力)

条件付き書式設定:
- B列: WEEKDAY(A1)=7で土曜日セルを青背景
- B列: WEEKDAY(A1)=1で日曜日セルを赤背景

このシート構成により、日付を入力するだけで曜日、営業日判定、色分けが全て自動化されます。

よくある質問

A: TEXT関数で"gggeee年m月d日aaa"のような形式コードを使用します。例:=TEXT(A1,"gggeee年m月d日aaa")。これにより「令和7年1月15日水」というように表示されます。ただし、Excelの言語設定が日本語である必要があります。

A: 条件付き書式で複数ルールを追加することで実現できます。各曜日ごとに「新しいルール」を追加し、=WEEKDAY(B:B)=1(日曜)、=WEEKDAY(B:B)=7(土曜)という条件を設定して異なる色を指定してください。

A: 古いバージョンでもTEXT関数とWEEKDAY関数は使用可能です。SEQUENCEなどの新機能は使えませんが、本記事で紹介したTEXT関数やCHOOSE+WEEKDAY関数の組み合わせなら問題なく動作します。

まとめ

  • TEXT(A1,"aaa")で日付から曜日を自動表示するのが最もシンプル
  • WEEKDAY関数は営業日判定や条件分岐に最適で、処理速度が速い
  • テキスト形式の日付はDATEVALUEで変換してから処理する
  • 条件付き書式と組み合わせることで、曜日ごとの自動カラー分けが実現可能
  • Excel 365の新機能(SEQUENCELET)なら、より高度な自動化が一数式で完結
  • システム言語設定に左右されないようにCHOOSE関数での明示指定も検討する

これらの方法を組み合わせれば、複雑なスケジュール管理やレポート作成の手作業が大幅に削減できます。ぜひ実務シートで試して、業務効率を向上させてください。

参考リンク: Microsoft Excel公式ドキュメント - TEXT関数

K
AWS・Python・生成AIを専門とするソフトウェアエンジニア。AI・クラウド・開発ワークフローの実践ガイドを執筆しています。詳しく見る →