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