WEEKDAY関数の使い方・読み方|曜日を判定して土日に色を付ける

執筆者:

カテゴリ:

WEEKDAY関数の使い方・読み方のイメージ

日付

WEEKDAY関数の使い方・読み方

Excel関数辞典

読み方:WEEKDAY は「ウィークデイ」と読みます。(一般的な読み方です。公式に読み仮名の定めはありません)

WEEKDAYは、日付が何曜日かを番号で返す関数です。

使える環境Excel○Googleスプレッドシート○
このページの中身(24項目)
  1. 書式
  2. 種類による番号の違い
  3. 基本の使い方
  4. 土日を判定する
  5. 条件付き書式で土日に色を付ける
  6. 曜日を文字で表示したいなら
  7. 曜日別に集計する
  8. 営業日の計算
  9. よくある問題
  10. Excelとの違い
  11. 種類の指定で番号の意味が変わる
  12. 曜日を日本語で表示する
  13. 土日を判定して色を付ける
  14. 営業日の計算に使う
  15. 勤怠表やシフト表での使い方
  16. 週単位の集計
  17. 「日付」の関数を全体から見る
  18. 数式を書く前の手順
  19. どの関数でも共通する確認
  20. 引き継ぐときに残すこと
  21. このサイトの収録状況
  22. よくある質問
  23. まとめ
  24. 関連する関数

この記事の書式と対応環境の出どころ(2026-08-26 確認)

関数の仕様は追加・変更されることがあります。書式が合わないときは、上の公式ページで最新をご確認ください。

曜日を文字で表示したいだけなら TEXT のほうが簡単です。WEEKDAYが必要なのは、曜日で判定・分岐したいときです。

WEEKDAY関数の使い方の記事構成図
WEEKDAY関数の使い方:この記事で扱う内容

書式

=WEEKDAY(日付, [種類])

第2引数によって、何曜日を1とするかが変わります。

種類による番号の違い

種類1234567
1(既定)日月火水木金土
2月火水木金土日
3月=0火=1水=2木=3金=4土=5日=6

既定は「日曜が1」です。ここを勘違いすると判定が全部ずれます。

種類2は「月曜が1」で、日本の業務では扱いやすいことが多くなります。

WEEKDAY関数の使い方の要点図
WEEKDAY関数の使い方

基本の使い方

A1に 2026/4/1(水曜)が入っているとします。

=WEEKDAY(A1)      → 4   (日曜が1なので、水曜は4)
=WEEKDAY(A1, 2)   → 3   (月曜が1なので、水曜は3)

土日を判定する

既定(種類1)で書く

=OR(WEEKDAY(A1)=1, WEEKDAY(A1)=7)

日曜(1)か土曜(7)なら TRUE です。

種類2で書く(推奨)

=WEEKDAY(A1, 2) >= 6

月曜=1〜金曜=5、土曜=6、日曜=7

なので、6以上が土日になります。こちらのほうが短く、意図も明確です。

平日の判定はこうなります。

=WEEKDAY(A1, 2) <= 5

条件付き書式で土日に色を付ける

カレンダーや勤怠表で最もよく使う用途です。

「表示形式 → 条件付き書式 → カスタム数式」に次を入れます。

土曜を青く

=WEEKDAY($A2, 2) = 6

日曜を赤く

=WEEKDAY($A2, 2) = 7

列だけを $ で固定するのがポイントです。範囲を A2:F1000 にすれば行全体に色が付きます。

祝日も色分けする

祝日リストを別シートに用意して、COUNTIF で判定します。

=OR(WEEKDAY($A2,2)>=6, COUNTIF(祝日!$A:$A, $A2)>0)

祝日リストは自分で用意する必要があります

内閣府が公開しているCSVを取り込むのが確実です。

曜日を文字で表示したいなら

WEEKDAYではなく TEXT を使ってください。

=TEXT(A1, "aaa")    → 水
=TEXT(A1, "aaaa")   → 水曜日
=TEXT(A1, "ddd")    → Wed

WEEKDAYと SWITCH を組み合わせる方法もありますが、TEXT のほうが圧倒的に短く書けます。

=SWITCH(WEEKDAY(A1), 1,"日", 2,"月", 3,"火", 4,"水", 5,"木", 6,"金", 7,"土")

この書き方が必要になるのは、独自の表記(「日曜日」「Sun.」など)にしたいときだけです。

曜日別に集計する

作業列に曜日番号を出して、SUMIFS で集計します。

作業列B2:  =ARRAYFORMULA(IF(A2:A="", "", WEEKDAY(A2:A, 2)))
集計:      =SUMIFS(C:C, B:B, 1)

曜日名で集計したいなら TEXT を使います。

作業列B2:  =ARRAYFORMULA(IF(A2:A="", "", TEXT(A2:A, "aaa")))
集計:      =SUMIFS(C:C, B:B, "月")

QUERY を使うなら1行で書けます。

=QUERY({ARRAYFORMULA(TEXT(A2:A100,"aaa")), C2:C100}, "select Col1, sum(Col2) where Col1 <> '' group by Col1", 0)

営業日の計算

WEEKDAYで判定するより、専用の関数を使うほうが確実です。

やりたいこと使う関数
N営業日後を求めるWORKDAY(開始日, 日数, 祝日範囲)
期間内の営業日数を数えるNETWORKDAYS(開始日, 終了日, 祝日範囲)
=WORKDAY(TODAY(), 5, 祝日!A:A)
=NETWORKDAYS(A1, B1, 祝日!A:A)

土日を自動で除外し、祝日リストも渡せます。 WEEKDAYで自作するより確実です。

週休が土日でない場合は、WORKDAY.INTL / NETWORKDAYS.INTL で休みの曜日を指定できます。

よくある問題

判定が1日ずれる

第2引数を指定していない可能性が高いです。既定は日曜が1です。種類2(月曜が1)を明示してください。

#VALUE! が出る

対象が日付ではなく文字列になっています。セルが左寄せになっていないか確認し、DATEVALUE で変換してください。

条件付き書式が全行に適用される

参照が $A$2 になっています。$A2 にしてください。

空欄の行に色が付く

空欄は0として扱われ、WEEKDAY(0, 2) は7(日曜)を返します。空欄除外を条件に入れてください。

=AND($A2 <> "", WEEKDAY($A2, 2) >= 6)

Excelとの違い

WEEKDAY・WORKDAY・NETWORKDAYS ともに共通です。種類の番号も同じです。

Excelには種類11〜17(各曜日を1とする指定)もありますが、実務で使う1・2・3は共通です。

TEXT の "aaa"(日本語の曜日)も両方で使えます。


種類の指定で番号の意味が変わる

曜日を求める関数は、二つ目の引数で種類を指定します。この指定によって、返る番号の意味がまったく変わります。ここを確認せずに数式を書くと、土日の判定が一日ずれます。

既定では、日曜が一、月曜が二、と進んで土曜が七になります。日本の暦の感覚に近いのはこちらです。

別の指定では、月曜が一、日曜が七になります。週の始まりを月曜とする業務では、こちらのほうが扱いやすくなります。営業日を数える場面では、月曜始まりのほうが直感に合うことが多いものです。

さらに、零から始まる指定もあります。他のシステムとの互換のために用意されているもので、日常の業務ではほとんど使いません。

判定の数式を書いたら、既知の日付で必ず検算してください。今日の日付を入れて、返る番号が今日の曜日と合っているかを確かめる。この確認を三十秒やるだけで、一日ずれたまま運用する事故を防げます。


曜日を日本語で表示する

番号のままでは読めないので、日本語の曜日に変換したい場面がほとんどです。方法はいくつかあります。

もっとも簡単なのは、表示形式を使う方法です。日付のセルに曜日を含む表示形式を設定すれば、日付と曜日が一緒に表示されます。内部の値は日付のままなので、計算にも使えます。この方法が使えるなら、これが最善です。

日付とは別の列に曜日だけを出したい場合は、文字列に変換する関数を使います。ただし、環境によって出力される言語が変わることがあります。

確実に日本語で出したいなら、番号を求めてから対応表で変換する方法があります。曜日の一覧を用意して、番号で引く形です。数式は長くなりますが、環境に依存しません。共有するファイルではこちらが安全です。

もうひとつ、条件で振り分ける関数を使う方法もあります。番号ごとに文字を返す形です。曜日は七つしかないので、この書き方でも十分に実用的です。→ SWITCH関数の使い方


土日を判定して色を付ける

予定表や勤怠表では、土日に色を付ける処理が定番です。条件付き書式で実現します。

条件は、曜日の番号が土日にあたるかどうかです。既定の種類なら、一が日曜、七が土曜になります。この二つを条件にします。

行全体に色を付けたい場合は、参照の固定に注意してください。日付の列だけを固定し、行は固定しません。こうすることで、行ごとに判定が動きます。固定を間違えると、すべての行が同じ色になるか、まったく色が付きません。

うまくいかないときは、まず条件式をシート上のセルに書いて、行ごとに正しい真偽値が出るかを確かめてください。確認できてから条件付き書式に移すと、原因の切り分けが早くなります。

祝日にも色を付けたい場合は、祝日の一覧を別のシートに用意し、その一覧に含まれるかどうかを判定します。件数を数える関数で、一以上なら祝日と判断できます。祝日は年ごとに変わるので、一覧は毎年更新が必要です。

色分けの手順は、条件付き書式の記事にまとめています。→ 条件付き書式で行全体に色を付ける方法


営業日の計算に使う

土日祝を除いた日数を数えたい場合、曜日の判定を積み重ねる方法もありますが、専用の関数を使うほうが確実です。

開始日と終了日を指定すると、土日を除いた日数が返る関数があります。祝日の一覧を渡せば、それも除外できます。

指定した営業日数だけ後の日付を求める関数もあります。納期の計算や、締切の設定に使えます。

週休二日でない場合、たとえば土曜も営業する業種では、除外する曜日を指定できる版の関数を使います。

いずれの場合も、祝日の一覧が必要になります。年ごとに更新する運用を決めておいてください。一覧が古いと、静かに誤った日数が返ります。

曜日の判定を自分で組むのは、これらの関数で対応できない特殊な条件がある場合に限ってください。第三土曜だけ休み、といった条件です。この場合は、曜日の番号と日付から週番号を求めて判定します。


勤怠表やシフト表での使い方

曜日の判定は、勤怠やシフトの管理でとくに使われます。実際の組み方を整理しておきます。

日付の列を一本用意し、月初から月末までを並べます。月初だけ入力し、以降は前の行に一を足す形にすれば、日数の違う月にも対応できます。月末を求める関数と組み合わせれば、行数も自動で決まります。

その横に曜日を出します。表示形式で日付に曜日を含める方法が最も簡単ですが、曜日だけを別の列に出したい場合は、番号を求めて対応表で変換します。

土日に色を付けるのは、条件付き書式です。曜日の番号が土日にあたるかを条件にします。行全体に付けたい場合は、日付の列だけを固定します。

祝日にも色を付ける場合は、祝日の一覧を別シートに用意し、その一覧に含まれるかを判定します。祝日は年ごとに変わるため、一覧の更新を運用に組み込んでください。

稼働日数の集計には、営業日を数える関数を使います。祝日の一覧を渡せば、それも除外されます。

シフト表であれば、曜日ごとに必要人数を変える設定もできます。曜日の番号から必要人数を対応表で引き、実際の配置人数と比較する形です。


週単位の集計

曜日の判定は、週単位の集計にも使われます。日次のデータを週ごとにまとめたい、という要求はよくあります。

週の始まりをいつにするかを最初に決めてください。日曜始まりか月曜始まりかで、集計の区切りが変わります。業務のルールに合わせます。

週の始まりの日付を求めるには、その日付から曜日の番号に応じた日数を引きます。月曜始まりなら、月曜からの経過日数を引く形です。この計算結果を列として持てば、週ごとの集計が条件付きの集計関数で書けます。

週番号を求める関数を使う方法もあります。ただし、年をまたぐときの扱いが定義によって変わるため、確認が必要です。年末年始の週が前年の最終週になるか、当年の第一週になるか。

週単位の集計表を作る場合、週の開始日を行見出しにするのが分かりやすくなります。第何週という表記より、日付のほうが誤解がありません。

曜日ごとの傾向を見たい場合は、曜日の番号を集計の軸にします。月曜から日曜まで並べて、それぞれの平均や合計を出せば、曜日による違いが見えます。飲食や小売では、この分析がよく使われます。

「日付」の関数を全体から見る

日付は日付と時刻を扱う関数群です。同じカテゴリの関数は、つまずく場所も似ています。この記事のほかに18本あります。

記事
DATE
DATEDIF
DATEVALUE
DAY
DAYS
EDATE
EOMONTH
HOUR
MINUTE
MONTH
NETWORKDAYS
NOW
TIME
TODAY
WEEKNUM
WORKDAY
YEAR
YEARFRAC

このカテゴリで共通するつまずき

文字列の日付には使えません。日付として認識されているかを先に確認してください。1つで理解した内容は、同じカテゴリの他の関数にもそのまま使えます。

どれを使うかの決め方

日数・月数・営業日のどれが必要かで使う関数が決まります。関数の一覧を眺めて選ぼうとすると、どれも当てはまるように見えて決まりません。

迷ったときは

→ 全関数の一覧 に目的別の索引があります。


数式を書く前の手順

書き始める前に決めておくことがあります。ここが曖昧なまま書くと、途中で行き詰まります。

1. 出したい結果を一文で書く

「何を、どの条件で、どんな形で出したいか」。この一文が書ければ、関数はほぼ決まります。書けないなら、まだ要件が固まっていません。

2. 元データの型を確認する

文字列の日付には使えません。日付として認識されているかを先に確認してください。=ISNUMBER(A2) で数値かどうかを確認できます。見た目が同じでも、数値と文字列は別物です。

3. 空欄と0の扱いを決める

未入力なのか、実績が0なのか。表の意味が変わります。どちらとして扱うかを決めてから書いてください。

4. 条件の数を数える

日数・月数・営業日のどれが必要かで使う関数が決まります。将来条件が増える可能性があるなら、最初から複数条件に対応する形にしてください。

5. 共有先の環境を確認する

新しい関数は、古い環境で開くとエラーになります。社外に渡すファイルでは、この一点で選択肢が変わります。

6. 1行だけ書いて確認する

全行にコピーする前に、1行分の結果が正しいかを見てください。間違ったまま広げると、直す手間が増えます。


どの関数でも共通する確認

関数を問わず、結果がずれる原因は限られています。この5つを確認すれば、大半が解決します。

参照を固定したか

下方向にコピーする数式では、動いてはいけない参照を固定します。上の数行だけ見て判断しないでください。ずれは下のほうで表面化します。

範囲の行数が揃っているか

複数の範囲を渡す関数では、行数がずれると結果が狂います。エラーにならず値が返るため、気づきにくい種類の間違いです。

型が揃っているか

=ISNUMBER(A2)

数値として入っているかを判定します。システムから書き出したデータでは、これが原因のことが多くあります。

前後に空白が入っていないか

=LEN(A2)&" / "&LEN(TRIM(A2))

数が違えば、余分な空白が入っています。見た目では判別できません。

別の方法で検算したか

同じ数字を別の関数でも出して、突き合わせてください。1つの結果だけを見ても、正しいかどうかは判断できません。

最終行まで確認したか

一番下までスクロールして、結果を見てください。途中から値が変わっていないかを確認します。


引き継ぐときに残すこと

数式は動いていても、意図は残りません。渡す前に、次の点をシート内にメモしてください。3分で終わります。

何を出している数式か

一行で構いません。読めば分かると思っても、数か月後の自分には分かりません。

どの表を参照しているか

参照先のシート名と、更新の担当。別ファイルなら、その場所も書いてください。

該当しないときの扱い

空欄にしているのか、文言を出しているのか、エラーのまま残しているのか。書いていないと、受け取った側は空欄をデータなしと読みます。

触ってはいけない場所

列を挿入すると壊れる数式がある場合、必ず書き残してください。この一行があるだけで、引き継ぎ後の事故が大きく減ります。

使った関数の対応環境

新しい関数を使っている場合、古い環境では開けません。共有の範囲が広がる可能性があるなら、明記してください。

確定した期間は値にする

締めた月の集計は、値貼り付けにしてください。参照元を消しても壊れなくなり、ファイルも軽くなります。

このサイトの収録状況

現在、201本の記事をカテゴリ別に整理しています。関数名が分からない場合は、カテゴリから探してください。

カテゴリ記事数
目的別51本
集計47本
文字列31本
日付19本 ←この記事
検索・参照15本
条件15本
機能12本
配列・抽出10本
関数一覧1本

探し方の順番

関数名が分かっているなら検索窓から。やりたいことだけ決まっているなら「目的別」から。近い関数を比べたいなら、同じカテゴリの一覧から入ってください。

記事の構成

どの記事も、書式・実例・つまずきやすいところ・似た関数との使い分けを同じ順番で並べています。1本読めば、他の記事も同じ場所を探せます。


よくある質問

Q. 返る番号がずれます

種類の指定を確認してください。日曜始まりと月曜始まりで意味が変わります。

Q. 曜日を日本語で表示したいのですが

表示形式を使うのが最も簡単です。別の列に出したい場合は、対応表で変換する方法が環境に依存しません。

Q. 日付が文字列だと動きません

日付として認識される必要があります。文字列を日付に変換してから渡してください。

Q. 土日を判定したいのですが

既定の種類なら、一が日曜、七が土曜です。この二つを条件にしてください。

Q. 祝日も判定できますか

祝日の一覧を用意して、含まれるかどうかを数える方法が確実です。年ごとの更新が必要です。

Q. 営業日数を数えたいのですが

専用の関数があります。祝日の一覧を渡せば除外できます。

Q. 週番号を出せますか

週番号を求める関数があります。週の始まりを指定できます。

Q. 空欄の行がエラーになります

先に空欄かどうかを判定して、空欄なら空文字を返す形にしてください。



まとめ

  • 書式は =WEEKDAY(日付, 種類)
  • 既定は「日曜が1」。ここでずれる事故が最も多い
  • 土日判定は =WEEKDAY(A1, 2) >= 6 が最短
  • 曜日を文字で表示するだけなら TEXT を使う
  • 条件付き書式では $A2(列だけ固定)+空欄除外
  • 営業日の計算は WORKDAY / NETWORKDAYS

関連する関数