Excelを使ってスケジュール管理や勤怠表、売上集計などを行っていると、「日付から曜日を判定したい」と思ったことはありませんか?
そんな時に便利なのが「WEEKDAY関数」です。
WEEKDAY関数を使えば、日付に対応する曜日を簡単に数値で取得できます。
この記事では、WEEKDAY関数の基本的な使い方から、応用的な使い方、さらには曜日を日本語で表示させる方法まで、初心者にもわかりやすく解説します。
WEEKDAY関数は、Excelで日付を入力したセルに対して「その日が週の何日目か(数値)」を返す関数です。
たとえば、2025年5月17日は「土曜日」ですが、WEEKDAY関数を使えばこの日が週の何番目なのか、数値で確認できます。
WEEKDAY(シリアル値, [種類])
WEEKDAY関数で重要なのが、2つ目の引数である「種類」です。
この種類によって、何曜日を「1」とするかが変わります。以下に種類とその意味をまとめます。
種類 | 数値の意味 | 曜日開始 |
---|---|---|
1 | 日曜=1、月曜=2、…土曜=7 | 日曜日始まり(デフォルト) |
2 | 月曜=1、火曜=2、…日曜=7 | 月曜日始まり |
3 | 月曜=0、火曜=1、…日曜=6 | 月曜日始まり(0から開始) |
=WEEKDAY("2025/5/17")
→ 結果は 7(土曜日。日曜始まりのパターン)=WEEKDAY("2025/5/17", 2)
→ 結果は 6(土曜日。月曜始まりで1から)=WEEKDAY("2025/5/17", 3)
→ 結果は 5(土曜日。月曜始まりで0から)WEEKDAY関数は実務でも非常に使い道が多く、以下のようなケースで活用されています。
従業員の勤務表で、土日を自動的に色分けしたい場合に、WEEKDAY関数が役立ちます。
=WEEKDAY(A2,2)
と入力(A2は日付セル)WEEKDAY関数単体では数値しか返しませんが、CHOOSE関数
や TEXT関数
を組み合わせれば日本語の曜日表示も可能です。
=CHOOSE(WEEKDAY(A2), "日", "月", "火", "水", "木", "金", "土")
=TEXT(A2, "aaa") → 「土」など
=TEXT(A2, "aaaa") → 「土曜日」など
「土日だけ別の処理をしたい」といった条件分岐に役立ちます。
=IF(WEEKDAY(A2,2)>5, "休日", "平日")
この式では、週末(土曜=6、日曜=7)であれば「休日」と表示されます。
用途が似ているようでまったく違うので、注意が必要です。
=WEEKDAY("abc")
→ #VALUE!
DATE関数
で変換する:=DATE(2025,5,17)
Excelで月間カレンダーを作成する際、以下の式を使えば自動的に曜日を表示できます。
=TEXT(A2,"aaa") & "曜日"
WEEKDAY関数を使えば、「毎週月曜日だけ処理する」ようなロジックを簡単に組み立てられます。
=IF(WEEKDAY(A2,2)=1,"週次会議","")
Excel VBAでもWeekday
関数は利用可能です。
Sub CheckWeekday()
Dim dt As Date
dt = Range("A1").Value
MsgBox "曜日番号は " & Weekday(dt, vbSunday)
End Sub
vbSunday
は定数で、「日曜始まり」を意味します。vbMonday
なども選択可能です。
WEEKDAY関数は、一見すると単純な関数ですが、実務での活用度は非常に高いです。
曜日判定をベースに、シフト管理・営業日管理・祝日処理など、さまざまな自動化・可視化が可能になります。
曜日の数値化から、日本語変換、IF関数との連携までマスターすれば、Excel作業の効率が大きくアップするはずです。
まずは実際のExcelファイルで試してみて、自分の業務にどう応用できるかを考えてみてください。