「この日付って何曜日だっけ?」とカレンダーをいちいち確認していませんか?
シフト表や勤怠管理のスプレッドシートで曜日を手入力していると、入力ミスや更新忘れが起きがちですよね。
GoogleスプレッドシートのWEEKDAY関数を使えば、日付から曜日番号を自動で取得できます。条件分岐や色分けにも活用できますよ。
この記事では、WEEKDAY関数の基本から、曜日の日本語変換・条件付き書式での土日色分けまで解説します。
スプレッドシートのWEEKDAY関数とは?
WEEKDAY関数は、日付から曜日を数値(番号)で返す関数です。読み方は「ウィークデイ関数」。week(週)とday(日)を組み合わせた英語がそのまま名前になっています。
「weekday=平日」というイメージがあるかもしれません。ただし、関数としては土日を含む全曜日が対象です。月曜から日曜まで、すべての曜日に番号を割り当ててくれます。
返ってくるのは「月」「火」といった文字ではなく、1〜7の数値です。数値なので、IF関数での条件分岐や条件付き書式での判定にそのまま使えるのがポイントです。
WEEKDAY関数の書き方(構文と引数)
基本構文
=WEEKDAY(日付, [種類])
カッコの中に日付を指定するだけで使えます。第2引数の「種類」は省略可能です。
引数の説明
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| 日付 | 必須 | 曜日を調べたい日付。セル参照やDATE関数で指定 |
| 種類(type) | 任意 | 曜日番号の割り当て方式。省略すると1(日曜始まり) |
type引数一覧と日本の業務での選び方
type引数には1〜3と11〜17の計10パターンがあります。主要なものを表で整理しました。
| type値 | 週の始まり | 番号の範囲 | 特徴 |
|---|---|---|---|
| 1(デフォルト) | 日曜 | 日曜=1〜土曜=7 | アメリカ式。省略時はこれ |
| 2(推奨) | 月曜 | 月曜=1〜日曜=7 | 日本の業務に最適 |
| 3 | 月曜 | 月曜=0〜日曜=6 | 0始まり。配列操作向き |
| 11〜17 | 各曜日 | 1〜7 | ISO 8601対応。起点の曜日を自由に選べる |
日本の業務ではtype=2がおすすめです。 月曜=1、火曜=2…と「週の始まりが月曜」になるので直感的ですよね。
デフォルト(type=1)は日曜始まりです。日本のビジネスでは月曜始まりのほうが扱いやすいので、type=2を明示的に指定しましょう。
基本的な使い方
実際にWEEKDAY関数を使ってみましょう。A2セルに 2026-03-19(木曜日)が入っている場合の例です。
=WEEKDAY(A2, 2)
この数式は 4 を返します。type=2では月曜=1なので、木曜日は4番目です。
type=1(デフォルト)の場合はどうなるか、比較してみましょう。
| 数式 | 結果 | 理由 |
|---|---|---|
=WEEKDAY(A2, 2) | 4 | 月曜=1始まりで木曜は4番目 |
=WEEKDAY(A2, 1) | 5 | 日曜=1始まりで木曜は5番目 |
=WEEKDAY(A2, 3) | 3 | 月曜=0始まりで木曜は3 |
同じ日付でもtype引数で結果が変わります。チームでファイルを共有するなら、typeを統一しておくのが大切です。
TODAY関数と組み合わせれば、今日の曜日番号も取得できます。
=WEEKDAY(TODAY(), 2)
曜日番号を日本語に変換する方法
WEEKDAY関数が返すのは数値です。「月」「火」といった日本語で表示したい場面も多いですよね。3つの方法を紹介します。
CHOOSE関数で「月火水…」に変換する
CHOOSE関数(指定した番号に対応する値を返す関数)を使う方法が最も柔軟です。
=CHOOSE(WEEKDAY(A2,2),"月","火","水","木","金","土","日")
WEEKDAY関数が返す番号をCHOOSEの第1引数に渡しています。番号が1なら「月」、2なら「火」…という仕組みです。
A2が 2026-03-19(木曜日)なら、WEEKDAY関数が4を返すので、結果は 「木」 になります。
この方法のメリットは、表記を自由にカスタマイズできる点です。「月曜」「火曜」のように変えたり、「Mon」「Tue」のように英語にしたりもできます。
TEXT関数で曜日表示する方法との比較
TEXT関数を使う方法もあります。
=TEXT(A2,"ddd")
この数式は「木」を返します。"dddd" にすると「木曜日」になります。
TEXT関数のほうがシンプルですよね。ただし、大事な違いがあります。
| 比較項目 | WEEKDAY + CHOOSE | TEXT関数 |
|---|---|---|
| 戻り値の型 | 文字列 | 文字列 |
| 計算に使えるか | WEEKDAYの数値を分岐に使える | 文字列のみ。条件分岐には不向き |
| 表記の自由度 | 高い(好きな文字を指定可能) | フォーマットコードに依存 |
| おすすめ場面 | 条件分岐・色分けと併用 | 単純に曜日を表示するだけ |
表示だけならTEXT関数、計算や条件分岐にも使うならWEEKDAY関数と覚えておくのがおすすめです。
IF関数で「平日/休日」の2値判定
シフト表や勤怠管理では「平日か休日か」だけ知りたい場面もありますよね。WEEKDAY関数とIF関数を組み合わせましょう。
=IF(WEEKDAY(A2,2)<=5,"平日","休日")
type=2では月曜=1〜金曜=5、土曜=6、日曜=7です。5以下なら平日、6以上なら休日と判定できます。
祝日は含まれないので注意してください。祝日も考慮したい場合は、祝日リストを別シートに用意してCOUNTIF関数で突き合わせる方法があります。営業日の計算ならWORKDAY関数やNETWORKDAYS関数も便利ですよ。
条件付き書式で土日を自動色分けする手順
スケジュール表やカレンダーで、土曜を青・日曜を赤に色分けできると見やすくなりますよね。WEEKDAY関数と条件付き書式を組み合わせる方法を解説します。
土曜・日曜それぞれのルール設定
設定手順は次のとおりです。土曜の色分けを例に説明します。
ステップ1: 色分けしたい範囲を選択する(例: A2:G100)
ステップ2: メニューから「表示形式」→「条件付き書式」を選ぶ
ステップ3: 「書式ルール」で「カスタム数式」を選ぶ
ステップ4: 数式欄に土曜判定の数式を入力する
=WEEKDAY($A2,1)=7
ステップ5: 書式スタイルで背景色を青系に設定して「完了」を押す
日曜も同様にルールを追加します。数式はこちらです。
=WEEKDAY($A2,1)=1
日曜の背景色は赤系に設定してください。これで土曜は青、日曜は赤に自動で色が付きます。
カスタム数式の書き方($A2の絶対参照のポイント)
数式の $A2 がポイントです。ここを間違えるとうまく色が付きません。
$A(列を固定): どの列のセルでも、A列の日付を基準に判定する2(行は相対): 行ごとに参照先がずれて、各行の日付を判定する
つまり $A2 は「列はA列に固定、行は各行に合わせる」という意味です。この書き方によって、B列やC列のセルにもA列の曜日に応じた色が付きます。行全体を色分けできるわけですね。
もし A2($なし)にすると、列もずれてしまい正しく判定できません。また $A$2(行も固定)にすると、すべての行が同じ日付で判定されてしまいます。
ここではtype=1(日曜=1、土曜=7)を使っています。type=2の場合は土曜=6、日曜=7になるので、数式の数値も変えてくださいね。
よくあるエラーと対処法
WEEKDAY関数を使っていて困りやすいポイントを3つ紹介します。
#VALUE! エラー
日付引数に不正な値が入っています。文字列の「3月19日」や空白セルを渡すとこのエラーが出ます。
対処法は、日付セルがきちんと日付として認識されているか確認することです。セルを選択して表示形式が「日付」になっているかチェックしてください。文字列として入力された日付は、DATEVALUE関数(文字列を日付値に変換する関数)で変換できます。
#NUM! エラー
type引数に無効な値を指定しています。指定できるのは1、2、3、11〜17のみです。
たとえばtype=4やtype=10はエラーになります。type引数の一覧表を見直してみてください。
曜日番号がずれる
「月曜なのに1じゃなくて2が返ってくる」というケースです。これはtype引数の違いが原因です。
type=1(デフォルト)では日曜=1始まりなので、月曜は2になります。月曜=1にしたい場合はtype=2を指定してください。チーム内でtypeを統一していないと、集計結果がずれる原因にもなります。
まとめ
WEEKDAY関数は、日付から曜日番号を取得するシンプルな関数です。
この記事で紹介した使い方をおさらいします。
- 基本:
=WEEKDAY(A2, 2)で曜日番号を取得(type=2が日本の業務向き) - 日本語変換:
=CHOOSE(WEEKDAY(A2,2),"月","火","水","木","金","土","日") - 表示だけならTEXT関数:
=TEXT(A2,"ddd")で「月」「火」と表示 - 平日/休日判定:
=IF(WEEKDAY(A2,2)<=5,"平日","休日") - 条件付き書式:
=WEEKDAY($A2,1)=7で土曜の行を青く色分け
type引数は省略するとデフォルト(日曜始まり)になります。日本のビジネスではtype=2を明示的に指定するのを忘れないでください。
まずはスケジュール表の日付列にWEEKDAY関数を入れて、曜日番号を出すところから試してみてくださいね。
