試合日の日付から「何曜日か」を数値で取り出せるWEEKDAY関数について、使い方と内部のしくみを解説します。草野球の成績管理表で、試合日から曜日番号を求める場面を例に、初心者向けに丁寧に説明します。
WEEKDAY関数とは
指定した日付が「何曜日にあたるか」を、1〜7の数値に変換して返す関数です。成績管理表では、この数値を土台にすることで「曜日ごとの試合数」「曜日ごとの勝率」といった曜日別の集計が可能になります。
基本の書式はこうです。
=WEEKDAY(日付, [種類])
「日付」には試合日が入ったセルを指定します。「種類」は曜日をどの並びで数値化するかを指定する引数で、省略もできます(省略時の動きは後述します)。
成績管理表での実例:試合日から曜日番号を求める
大阪グーニーズの試合結果シートでは、A列に試合日、B列に対戦相手、C列に勝敗(勝/負/分)を記録しているとします(以下、この列構成を前提として説明します)。ここにD列を追加し、試合日が何曜日だったかを数値で表示してみます。
| 試合日 | 対戦相手 | 勝敗 | 曜日番号 |
|---|---|---|---|
| 4/6(日) | ○○ファイターズ | 勝 | 1 |
| 4/12(土) | △△ベアーズ | 負 | 7 |
| 4/20(月) | □□イーグルス | 勝 | 2 |
| … | … | … | … |
D2セルに入れる式はこうなります。
=WEEKDAY(A2)
これをD列の最終行までコピーすれば、全試合の曜日番号が一括で求まります。この番号列があれば、COUNTIFで「曜日番号が1(日曜)の行を数える」といった形で、曜日ごとの試合数を集計する土台が整います。
試合日の隣の列(例:D2セル)をクリックして選択します。
対象の試合日セル(A2)をクリックすると、自動で「A2」の部分が入力されます。
式を確定すると、すぐに曜日番号がセルに表示されます。あとはD2セルをコピーして最終行まで貼り付ければ、全行の曜日番号が求まります。
しくみを理解する:WEEKDAYは何をしているのか
スプレッドシート内部では、日付は「シリアル値」という通し番号として管理されています。WEEKDAY関数は、このシリアル値を7で割った余りをもとに曜日を割り出し、2番目の引数「種類」で指定した並び順に沿って1〜7(または0〜6)の数値に変換しているだけです。
「種類」を省略した場合の既定値は「1」で、日曜始まりになります。よく使う種類の対応は次の通りです。
| 種類 | 曜日の並び |
|---|---|
| 1(省略時) | 日=1、月=2、火=3、水=4、木=5、金=6、土=7 |
| 2 | 月=1、火=2、水=3、木=4、金=5、土=6、日=7 |
| 3 | 月=0、火=1、水=2、木=3、金=4、土=5、日=6 |
例えば「土日の試合だけをまとめて見たい」ときは、種類2を指定して「=WEEKDAY(A2,2)」とすれば、6(土)と7(日)という連続した数値で土日を判定できるため、条件式が組みやすくなります。
よくあるミス:曜日がズレる・エラーになる原因
種類を省略すると自動的に「日曜=1」の並びになります。「月曜=1」のつもりで数値を見てしまい、平日と土日の判定がズレるミスがよくあります。何曜日が1になる並びを使っているか、常に意識しておくことが大切です。
試合日のセルが日付ではなく「文字列としての日付」になっていると、WEEKDAYはシリアル値を読み取れずエラー(#VALUE!など)を返します。フォーム経由の入力などで日付が文字列扱いになっていないか、事前に確認しておきましょう。
- WEEKDAY関数は「日付を曜日を表す数値に変換する」関数
- 数値の並び順は2番目の引数「種類」で決まり、省略時は日曜=1になる
- この曜日番号があれば、曜日ごとの試合数や勝率の集計の土台になる
次回予告
次回のテーマは「日付関数を使った年度またぎの自動判定」です。シーズンの開始・終了を日付関数だけで自動的に判定するロジックの考え方を解説していきます。
▶︎ 次回:日付関数で年度またぎを自動判定する仕組み



コメント