Excelで日付を扱っていると、「この日って何曜日だったっけ?」と確認したくなる場面、意外と多くありませんか?
勤怠管理やスケジュール作成、売上分析など、曜日によって処理を変えたいときに便利なのが WEEKDAY関数 です。
この関数を使えば、日付から曜日を数値で判定できるだけでなく、IF関数などと組み合わせることで「平日だけ処理する」「土日は色分けする」といった応用も可能になります。
この記事では、WEEKDAY関数の基本的な使い方から、実務で役立つ応用テクニックまで、わかりやすく解説します。Excel初心者の方も安心して読み進めてくださいね。
WEEKDAY関数とは?
WEEKDAY関数は、Excelで日付から「曜日」を判定するための関数です。
たとえば「2025年10月18日は何曜日?」といった疑問に、Excelが数値で答えてくれます。
- 日付から「週の何日目か」を数値で返す関数
- 曜日を判定することで、業務処理や条件分岐に活用できる
WEEKDAY関数の基本構文
=WEEKDAY(シリアル値, [種類])
- シリアル値:対象の日付(セル参照や直接入力)
- 種類(省略可):曜日の開始位置を指定(例:1=日曜始まり、2=月曜始まり)
| 種類 | 曜日の数値 | 説明 |
|---|---|---|
| 1 | 日曜=1〜土曜=7 | デフォルト |
| 2 | 月曜=1〜日曜=7 | 月曜始まり |
| 3 | 月曜=0〜日曜=6 | 月曜始まり(0スタート) |
使用例:基本的な使い方
セルに日付があるとき、=WEEKDAY(A2) で曜日番号を取得
→ A2に「2025/10/18」が入っていれば、「7」(土曜日)と表示されます。

=CHOOSE(WEEKDAY(A2), "日", "月", "火", "水", "木", "金", "土") で日本語の曜日表示も可能

ExcelのCHOOSE関数(読み方:チューズ関数)は、指定した番号(インデックス)に応じて、複数の選択肢から1つの値を返す関数です。IF関数のように複雑な条件分岐を使わず、シンプルに「番号=選択肢」の対応ができるのが特徴です。
CHOOSE関数の基本構文
=CHOOSE(インデックス番号, 値1, 値2, ..., 値N)
- インデックス番号:1〜Nの整数。どの値を選ぶかを指定します。
- 値1〜値N:返したい値(文字列・数値・セル参照など)
使用例
① 曜日を日本語で表示する(WEEKDAY関数と組み合わせ)
=CHOOSE(WEEKDAY(A2), "日", "月", "火", "水", "木", "金", "土")
→ A2に日付が入っていれば、その曜日を日本語で表示できます。
② 番号に応じて部署名を返す
=CHOOSE(B2, "営業部", "総務部", "開発部")
→ B2が「2」なら「総務部」が表示されます。
CHOOSE関数のメリット
- IF関数よりもシンプルな構文で複数の選択肢を扱える
- WEEKDAY関数やMATCH関数と組み合わせると、曜日や検索結果に応じた表示が可能
- プルダウンリストや月別処理など、実務でも活用しやすい
注意点
- インデックス番号が範囲外(0やN+1)だと #VALUE! エラー になります
- 値の数とインデックスの整合性に注意
- 数値ベースの分岐に向いており、文字列ベースならSWITCH関数が便利
CHOOSE関数は、「1ならこれ、2ならあれ」といったシンプルな選択をしたいときにとても便利です。IF関数で複雑なネストを書くよりも、見やすく・管理しやすい数式になりますよ。
応用例:条件付き書式と組み合わせる
- 土日を色分けする
- 勤怠表で平日・休日を判定する
- 特定曜日に処理を分ける(IF関数との組み合わせ)
WEEKDAY関数のよくある注意点
日付が「文字列」になっているとエラーになる
- セルに「2025/10/18」と入力しても、文字列扱いだと正しく判定されません。
- 対策:セルの表示形式を「日付」にするか、
DATE関数で明示的に日付を作成しましょう。
「種類」引数によって結果が変わる
WEEKDAY( ,1)→ 日曜=1、月曜=2、…土曜=7(デフォルト)WEEKDAY( ,2)→ 月曜=1、火曜=2、…日曜=7(月曜始まり)WEEKDAY( ,3)→ 月曜=0、火曜=1、…日曜=6(0スタート)
👉 曜日判定のロジックに合わせて、種類を明確に指定しましょう。
条件付き書式で使うときは「相対参照」に注意
=WEEKDAY(A2,2)>5のような数式を条件付き書式に使う場合、参照セルがずれると意図しない色分けになることがあります。- 対策:必要に応じて
$A2のように絶対参照を使いましょう。
曜日を日本語で表示するにはCHOOSE関数が必要
- WEEKDAY関数だけでは「数値」しか返りません。
- 対策:
CHOOSE(WEEKDAY(A2), "日", "月", "火", "水", "木", "金", "土")で日本語の曜日に変換できます。
実務でのWEEKDAY関数活用シーン
勤怠管理・シフト表の自動判定
- 目的:土日や平日を自動で判定し、勤務区分や休暇判定に活用
- 例:
=IF(WEEKDAY(A2,2)>5,"休日","出勤")
→ 土日なら「休日」、それ以外は「出勤」と表示
スケジュール表の曜日表示
- 目的:日付に対応する曜日を自動表示して視認性アップ
- 例:
=CHOOSE(WEEKDAY(A2), "日", "月", "火", "水", "木", "金", "土")
→ A2の日付に応じて曜日を日本語で表示
曜日別の売上分析・レポート作成
- 目的:曜日ごとの売上傾向を把握し、戦略に活かす
- 例:ピボットテーブルで「WEEKDAY関数で抽出した曜日」を軸に集計
条件付き書式で土日を色分け
- 目的:カレンダーや予定表で土日を視覚的に区別
- 例:
=WEEKDAY(A2,2)>5を条件付き書式に設定し、背景色を変更
配送・納期管理で平日判定
- 目的:納期が土日にかかる場合の調整やアラート
- 例:
=IF(WEEKDAY(B2,2)>5,"要調整","OK")
→ 土日納期なら「要調整」と表示
LINEスタンプやSNS投稿の曜日別スケジュール管理
- 目的:曜日ごとに異なるスタンプやコンテンツを配信
- 例:
=CHOOSE(WEEKDAY(A2), "癒し系", "元気系", "応援系", "笑顔系", "感動系", "お疲れ系", "のんびり系")
→ 曜日に応じたスタンプジャンルを自動表示
「その月の1日が属する週の日曜日」を求める式
目的
月初の日付(例:2025年10月1日)が属する週の日曜日の日付を求めたい。
「この月のスタートは、どの日曜日から数えればいいんだろう?」そんなときに役立つのが、このWEEKDAY関数を使った式です。
前提として
C1 = 2025(年)C2 = 10(月)
このとき、Excel式
=DATE(C1,C2,1) - WEEKDAY(DATE(C1,C2,1),1) + 1
式の構造と意味
| 部分 | 説明 |
|---|---|
DATE(C1,C2,1) | C1が「年」、C2が「月」として、その月の1日を表す日付(例:2025年10月1日) |
WEEKDAY(DATE(C1,C2,1),1) | その日付の曜日を数値で返す(1=日曜, 2=月曜, …, 7=土曜) |
- WEEKDAY(...) + 1 | 曜日分を引いて、その週の日曜日に調整 |
実例で確認(2025年10月)
C1 = 2025,C2 = 10DATE(2025,10,1)→ 2025年10月1日(水曜日)WEEKDAY(2025年10月1日,1)→ 4(=水曜日)- 式全体:
[ = 2025年10月1日 - 4 + 1 = 2025年9月28日(日曜日) ]
つまり、「10月1日が属する週の日曜日」は 9月28日 になります。
応用:月内の最初の日曜日が欲しい場合
もし「10月の中で最初に来る日曜日」(=10月の第1日曜日)を求めたいなら、こちらの式を使います。
=DATE(C1,C2,1) + MOD(7 - WEEKDAY(DATE(C1,C2,1),1), 7)
この式は「月初から何日後に日曜日が来るか」を計算して加算します。
- 2025年10月1日(水曜)→ 最初の日曜は10月5日
- 結果:
2025年10月5日
まとめ
| 欲しい日付 | 式 | 結果(例:2025年10月) |
|---|---|---|
| 月初が属する週の日曜日 | =DATE(C1,C2,1) - WEEKDAY(DATE(C1,C2,1),1) + 1 | 2025年9月28日 |
| 月内の最初の日曜日 | =DATE(C1,C2,1) + MOD(7 - WEEKDAY(DATE(C1,C2,1),1), 7) | 2025年10月5日 |
どちらの「第1週の日曜日」が欲しいかによって式が変わります。
WEEKDAY関数は、他の関数(IF、CHOOSE、TEXTなど)と組み合わせることで、実務にぴったりな自動処理が可能になります。曜日に応じた業務フローの切り替えや、週単位の集計、カレンダーの自動生成など、日付を軸にした柔軟なロジック構築に欠かせない存在です。Excelの力を最大限に引き出すためにも、WEEKDAY関数の活用方法をしっかり押さえておきましょう。