更新: 2026年03月 · 6 分で読める · 3,135 文字
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の新機能(
SEQUENCE、LET)なら、より高度な自動化が一数式で完結 - システム言語設定に左右されないように
CHOOSE関数での明示指定も検討する
これらの方法を組み合わせれば、複雑なスケジュール管理やレポート作成の手作業が大幅に削減できます。ぜひ実務シートで試して、業務効率を向上させてください。