概要
Excelで「日付の曜日番号」を取り出すには、WEEKDAY関数を使います。曜日を数字で返すので、勤務表の判定(平日/週末)や、曜日別集計、条件分岐に便利です。返し方(どの曜日を1にするか)は第2引数で自由に選べます。
基本の使い方
書式
=WEEKDAY(日付, [返し方])
- 日付:日付のセル参照やシリアル値、DATE/TODAYなど
- 返し方(省略可):曜日番号の定義を選ぶ(下記参照)
返し方の種類(よく使う3種)
=WEEKDAY(A2) // 省略=1:日=1, 月=2, …, 土=7
=WEEKDAY(A2,2) // 2:月=1, 火=2, …, 日=7(週の始まりを月に)
=WEEKDAY(A2,3) // 3:月=0, 火=1, …, 日=6(0始まり)
拡張オプション(11~17)
=WEEKDAY(A2,11) // 月=1 … 日=7
=WEEKDAY(A2,12) // 火=1 … 月=7
...
=WEEKDAY(A2,17) // 日=1 … 土=7
週の“開始曜日”を細かく指定したいときに使います。
具体例
セル参照で曜日番号を取得
=WEEKDAY(A2) // A2が 2025/12/17(水)なら「4」
月曜始まりの番号にしたい(業務で使いやすい)
=WEEKDAY(B2,2) // 月=1, …, 日=7
0始まりで扱いたい(配列やインデックスに便利)
=WEEKDAY(C2,3) // 月=0, …, 日=6
TODAYと組み合わせて今日の曜日番号
=WEEKDAY(TODAY(),2) // 今日の曜日を「月=1」基準で
応用テンプレート
曜日名に変換(番号→日本語)
=CHOOSE(WEEKDAY(A2,2),"月","火","水","木","金","土","日")
番号を「月〜日」にマッピングして表示します。
平日/週末の判定(日本の業務基準)
=IF(WEEKDAY(A2,2)<=5,"平日","週末")
月〜金は「平日」、土・日は「週末」と判定。
曜日ごとの集計(動的配列対応の簡易例)
=SUMIF(WEEKDAY(B2:B100,2),1,C2:C100) // 月曜の合計
「B列の日付が月曜の行」のC列を合計します。
週の開始曜日を自由に設定(11〜17)
=CHOOSE(WEEKDAY(A2,11),"月","火","水","木","金","土","日")
「11」を使えば“月曜始まり”を前提に曜日名へ。
よくあるつまずきと対策
表示が数字で分かりづらい
番号のままだと直観的でないので、CHOOSEやINDEXで「月〜日」に置き換えると読みやすくなります。
返し方の違いで判定がズレる
第2引数の設定によって曜日番号が変わります。平日/週末判定などは「2(月=1)」で統一すると運用が安定します。
文字列日付だと意図通りにならない
「YYYY/MM/DD」が文字列扱いだと正しく判定できないことがあります。DATEで日付を生成、またはセルの表示形式を日付に設定しておきましょう。
例題
問題1: A2の日付の曜日番号をB2に表示してください(標準の返し方:日=1〜土=7)。
=WEEKDAY(A2)
問題2: C2の日付を「月=1〜日=7」で番号化してD2に表示してください。
=WEEKDAY(C2,2)
問題3: E2の日付の曜日を日本語でF2に表示してください(「月〜日」)。
=CHOOSE(WEEKDAY(E2,2),"月","火","水","木","金","土","日")
問題4: G2の日付が平日なら「平日」、週末なら「週末」とH2に表示してください。
=IF(WEEKDAY(G2,2)<=5,"平日","週末")
問題5: 今日の曜日を0始まり(月=0〜日=6)でI2に表示してください。
=WEEKDAY(TODAY(),3)
まとめ
WEEKDAYは「曜日を番号で返す」ための基礎関数です。第2引数で週の開始や番号体系を決め、CHOOSEと組み合わせれば“番号→曜日名”の変換も簡単。平日/週末判定、曜日別集計などで威力を発揮します。まずは「返し方を2(月=1)」に統一して運用すると、現場では扱いやすくなります。
