「今日って第何週?」「週次レポートに”第○週”って自動で入れたい」――こんな場面、仕事でよくありますよね。
カレンダーを見ながら手で数えるのは面倒ですし、年末年始あたりは数え間違いが起きやすいです。GoogleスプレッドシートのWEEKNUM関数を使えば、日付が年の第何週目にあたるかを一発で求められます。
この記事では、基本の書き方からISOWEEKNUMとの違い、週次レポートや週別集計の実務パターンまで紹介します。
この記事は次のような人におすすめ
– 日付が年の第何週目かを自動で出したい
– 週次レポートに「第○週」の表記を入れたい
– WEEKNUM関数とISOWEEKNUM関数の違いを知りたい
スプレッドシートのWEEKNUM関数とは?
WEEKNUM関数は、指定した日付がその年の第何週目にあたるかを整数で返す関数です。読み方は「ウィークナンバー関数」。英語の week number(週番号)が語源です。
たとえば、2026年3月21日(土曜日)をWEEKNUM関数に渡すと 12 が返ります。これは1月1日を含む週を第1週として数えた結果です。
返ってくるのは 1〜54の整数です。うるう年や年の始まりの曜日によっては第53週、第54週が出ることもあります。
WEEKNUM関数の書き方(構文と引数)
基本構文
=WEEKNUM(日付, [種類])
カッコの中に日付を指定するだけで使えます。第2引数の「種類」は省略可能です。
引数の説明
| 引数 | 必須/任意 | 説明 |
|---|---|---|
| 日付 | 必須 | 週番号を調べたい日付。セル参照やDATE関数で指定 |
| 種類(type) | 任意 | 週の始まりと計算方法を指定する数値。省略すると1(日曜始まり) |
type引数一覧と選び方
type引数は「週の始まりを何曜日にするか」と「計算システム」の2つを同時に指定します。
| type値 | 週の始まり | 計算システム |
|---|---|---|
| 1(デフォルト) | 日曜日 | システム1 |
| 2(推奨) | 月曜日 | システム1 |
| 11 | 月曜日 | システム1 |
| 12 | 火曜日 | システム1 |
| 13 | 水曜日 | システム1 |
| 14 | 木曜日 | システム1 |
| 15 | 金曜日 | システム1 |
| 16 | 土曜日 | システム1 |
| 17 | 日曜日 | システム1 |
| 21 | 月曜日 | システム2(ISO 8601) |
システム1は、1月1日を含む週を第1週とする方式です。日本やアメリカで一般的に使われます。
システム2(ISO 8601)は、その年の最初の木曜日を含む週を第1週とする国際標準方式です。ヨーロッパで広く使われており、type 21 を指定するとこの方式で計算されます。
迷ったらこの2つだけ覚えればOK
– 1(日曜始まり): デフォルト設定。日曜始まりの週番号
– 2 または 11(月曜始まり): 日本のビジネスで使いやすい月曜始まりの週番号ISO方式が必要なら type
21か、ISOWEEKNUM関数を使いましょう。
WEEKNUM関数の基本的な使い方
日曜始まり(type=1 / 省略時)で週番号を取得する
セルA2に 2026/1/10(土曜日)が入っているとします。
=WEEKNUM(A2)
結果は 2 です。1月1日(木曜日)を含む週が第1週で、1月10日はその翌週にあたります。
月曜始まり(type=2)で週番号を取得する
日本のビジネスシーンでは月曜始まりのほうが使いやすいですよね。
=WEEKNUM(A2, 2)
結果は 2 です。週の始まりが月曜日に変わるため、同じ日付でも結果が変わることがあります。
日付文字列を直接指定する
セル参照を使わず、日付を直接書くこともできます。
=WEEKNUM("2026/3/21")
結果は 12 です。ただし実務ではセル参照のほうが使い回しがきくのでおすすめです。
WEEKNUM関数の実務活用パターン
パターン1: 週次レポートに「第○週」の表記を入れる
週次レポートのヘッダーに「第12週」のような表記を自動で入れたい場合は、文字列結合を使います。
="第"&WEEKNUM(A2,2)&"週"
A2に 2026/3/21 が入っていれば、結果は 第12週 になります。
年度表記と合わせたい場合はYEAR関数を使います。
=YEAR(A2)&"年 第"&WEEKNUM(A2,2)&"週"
結果は 2026年 第12週 です。
パターン2: 週別に売上を集計する(SUMIFS連携)
日付ごとの売上データを週単位で合計したい場合は、WEEKNUM関数とSUMIFS関数を組み合わせます。
A列に日付、B列に売上が入っているとします。第12週の売上合計を求めるには次のように書きます。
=SUMIFS(B:B, WEEKNUM(A:A,2), 12)
年をまたぐデータに注意
2025年と2026年の両方に「第12週」が存在します。年をまたぐ場合はYEAR関数の条件も追加してください。
=SUMIFS(B:B, WEEKNUM(A:A,2), 12, YEAR(A:A), 2026)
パターン3: WEEKDAY関数で曜日も一緒に表示する
週番号と一緒に曜日も管理したい場合は、WEEKDAY関数を並べて使います。
| 列 | 数式 | 結果例 |
|---|---|---|
| B列(週番号) | =WEEKNUM(A2,2) | 12 |
| C列(曜日) | =TEXT(A2,"ddd") | 土 |
WEEKDAY関数は曜日の「番号」を返す関数です。「月」「土」のような文字列で表示したい場合はTEXT関数が便利ですよ。
パターン4: TODAY関数で「今日は第何週?」を自動更新する
ダッシュボードやレポートに「現在の週番号」を常に最新で表示したい場合は、TODAY関数と組み合わせます。
="現在: "&YEAR(TODAY())&"年 第"&WEEKNUM(TODAY(),2)&"週"
TODAY関数はスプレッドシートを開くたびに今日の日付を返すため、週番号も自動で更新されます。
よくあるエラーと対処法
WEEKNUM関数を使っていて困りやすいポイントを整理しました。
| エラー | 原因 | 対処法 |
|---|---|---|
#VALUE! | 日付に日付以外の文字列を指定した | 日付が正しい形式か確認する |
#NUM! | type引数に無効な値を指定した | 1, 2, 11〜17, 21 のいずれかを使う |
| 期待と違う番号 | type引数の指定ミス | type引数の一覧表で計算方式を確認する |
| 年末年始で番号がずれる | システム1とシステム2の違い | 下記のISOWEEKNUMとの違いを参照 |
文字列の日付に注意
セルに「3月21日」と入力しても、表示形式が文字列になっていると日付として認識されません。
#VALUE!エラーが出たら、セルの書式が「日付」になっているか確認してください。文字列を日付に変換するにはDATEVALUE関数が使えます。
WEEKNUM関数とISOWEEKNUM関数の違い
WEEKNUM関数とISOWEEKNUM関数はどちらも週番号を返しますが、計算方法が違います。
| 項目 | WEEKNUM | ISOWEEKNUM |
|---|---|---|
| 第1週の決め方 | 1月1日を含む週(システム1) | その年の最初の木曜日を含む週 |
| 週の始まり | 指定可能(日曜/月曜/火曜…) | 月曜固定 |
| 引数 | 日付, [種類] | 日付のみ |
| 国際標準 | 非準拠 | ISO 8601準拠 |
| 年末年始の扱い | 1月1日は必ず第1週 | 12月末が翌年の第1週になることがある |
具体例で比較
2025年12月29日(月曜日)を例にとります。
=WEEKNUM("2025/12/29", 2)→53(2025年の第53週)=ISOWEEKNUM("2025/12/29")→1(2026年の第1週)
ISO方式では、12月末が翌年の第1週にカウントされることがあります。「その年の最初の木曜日を含む週が第1週」というルールに基づいた結果です。
WEEKNUM関数のtype=21を使うとISO方式になる
=WEEKNUM(A2, 21)と=ISOWEEKNUM(A2)は同じ結果を返します。ISOWEEKNUM関数は引数が1つだけなので、ISO方式を使うなら記述がシンプルです。
どちらを使うべき?
- 社内レポート・日本のビジネス: WEEKNUM関数(type=2、月曜始まり)がおすすめ
- 海外との共有・国際標準が必要な場面: ISOWEEKNUM関数を使う
- 厳密な統計処理やグローバルシステム連携: ISO 8601のISOWEEKNUM関数が安全
WEEKNUM関数とWEEKDAY関数の違い
名前が似ているので混同しやすいですが、この2つは目的がまったく違います。
| 項目 | WEEKNUM | WEEKDAY |
|---|---|---|
| 目的 | 日付が年の第何週目かを返す | 日付が何曜日かを番号で返す |
| 戻り値の範囲 | 1〜54 | 1〜7(または0〜6) |
| 主な用途 | 週次レポート、週別集計 | 曜日判定、土日色分け、シフト管理 |
| 構文 | =WEEKNUM(日付, [種類]) | =WEEKDAY(日付, [種類]) |
WEEKNUM関数は「第12週」のように週単位でデータをまとめるときに使います。WEEKDAY関数は「月曜日か?日曜日か?」のように曜日を判定するときに使います。
たとえば、勤怠表で「今日は何曜日?」を知りたいならWEEKDAY関数、「今週は第何週?」を知りたいならWEEKNUM関数、という使い分けです。
まとめ
WEEKNUM関数は日付から週番号を取り出す関数です。この記事で紹介したポイントをおさらいします。
- 基本構文:
=WEEKNUM(日付, [種類]) - type引数: 1(日曜始まり)と2(月曜始まり)をまず覚えればOK
- 週次レポート:
="第"&WEEKNUM(A2,2)&"週"で自動表記 - 週別集計: SUMIFS関数と組み合わせて週単位の合計が出せる
- ISOWEEKNUM関数との違い: 第1週の決め方と年末年始の扱いが異なる
- WEEKDAY関数との違い: 週番号(年の第何週)と曜日番号(何曜日か)で目的が異なる
シンプルな関数ですが、週次レポートや週別集計のように「週」を軸にしたデータ管理で活躍します。まずはスケジュール表の日付列にWEEKNUM関数を入れて、週番号を出すところから試してみてくださいね。
