ExcelのWEEKNUM関数の使い方|週の基準・ISOWEEKNUMとの違いも解説

スポンサーリンク

「この売上データ、週ごとにまとめてほしい」と頼まれて、手作業で日付を見ながら振り分けていませんか? 件数が多いほど時間がかかりますし、「年末の12月29日って今年の第何週?」と迷う場面も出てきます。 ExcelのWEEKNUM関数を使えば、日付を渡すだけで「第何週か」を自動で返してくれますよ。

この記事では、WEEKNUM関数の基本的な使い方から、週の基準の選び方、週次集計やスケジュール管理での実務活用、ISOWEEKNUM関数との違いまで一気に解説します。

WEEKNUM関数とは?(日付から週番号を返す関数)

WEEKNUM関数は、指定した日付が「その年の第何週か」を数値で返す関数です。 戻り値は1〜54の整数になります。

たとえば「2025年3月21日」を渡すと、「12」のように週番号が返ってきます。 週次レポートや週別集計の自動化に便利な関数です。

Excel 2010以降のバージョンで使用できます。 Microsoft 365 や Excel for the web でも同じように動きます。

読み方・語源

読み方は「ウィークナム」です。 「WEEK(週)」+「NUM(Number=番号)」で、「週番号」という意味になります。

WEEKNUM関数の書き方(構文と引数)

基本構文

=WEEKNUM(シリアル値, [週の基準])

引数の説明

引数必須/省略可説明
シリアル値必須週番号を調べたい日付を指定します
週の基準省略可週の始まりを何曜日にするかを数値で指定します。省略すると「1」(日曜始まり)になります

第1引数の「シリアル値」には、セル参照のほかにDATE関数の結果も指定できます。

週の基準(第2引数)の一覧表

第2引数には以下の値を指定できます。

週の始まり方式
1(既定値)日曜日1月1日を含む週が第1週
2月曜日1月1日を含む週が第1週
11月曜日1月1日を含む週が第1週
12火曜日1月1日を含む週が第1週
13水曜日1月1日を含む週が第1週
14木曜日1月1日を含む週が第1週
15金曜日1月1日を含む週が第1週
16土曜日1月1日を含む週が第1週
17日曜日1月1日を含む週が第1週
21月曜日ISO 8601準拠(最初の木曜日を含む週が第1週)

日本のビジネスでは月曜始まりが一般的です。 「2」または「11」を指定するのがおすすめですよ。

値「21」だけがISO 8601という国際規格に準拠した方式です。 この方式では、その年の最初の木曜日を含む週が第1週になります。

「2」と「11」の違いは?

どちらも月曜始まりで結果も同じになります。 違いは「2はExcel 2007までの旧形式」「11はExcel 2010以降に追加された新形式」という歴史的な経緯だけです。 これから新規に作るシートでは、新しい体系の「11〜17」を使っておくと、他の曜日始まりに切り替えるときも統一感が保てます。

WEEKNUM関数の基本的な使い方

日曜始まりで週番号を取得

第2引数を省略すると、日曜始まりで計算されます。

=WEEKNUM(A2)

たとえばA2に「2025/3/21(金曜日)」が入っている場合、結果は「12」です。

月曜始まりで週番号を取得

第2引数に「2」を指定すると、月曜始まりで計算されます。

=WEEKNUM(A2, 2)

A2が「2025/3/21(金曜日)」なら、結果は「12」です。 日本のビジネスシーンでは、この月曜始まりが使いやすいですよ。

日付文字列を直接指定

セル参照を使わず、数式の中に日付を直接書くこともできます。

=WEEKNUM("2025/3/21", 2)

結果は「12」です。 ただし、実務ではセル参照で日付を渡すほうが管理しやすいです。

WEEKNUM関数の実務活用パターン

週次レポートに「第○週」表記を入れる

日付セルから「第12週」のような表記を自動で作れます。 文字列連結で対応できます。

="第"&WEEKNUM(A2, 2)&"週"

A2が「2025/3/21」なら、結果は「第12週」です。 レポートの見出しやラベルに使えますよ。

週別に売上を集計する(SUMIFS連携)

SUMIFS関数で週別集計するには、補助列を使う方法が確実です。

まずC列に週番号、D列に年をそれぞれ出しておきます。

C2: =WEEKNUM(A2, 2)
D2: =YEAR(A2)

そのうえで、SUMIFS関数で条件集計します。

=SUMIFS(B:B, C:C, 12, D:D, 2025)

年も条件に入れるのがポイントです。 週番号だけでは、別の年の同じ週も合算されてしまいます。

スケジュール管理表で「今週・来週」を色分けする

WEEKNUM関数とTODAY関数を条件付き書式に組み込むと、タスク表で「今週ぶん」「来週ぶん」を自動で色分けできます。

タスクの締切が入ったA列を範囲選択して、条件付き書式の「数式を使用して書式設定」に次の式を入れます。

今週のタスクをハイライト:

=WEEKNUM($A2, 2)=WEEKNUM(TODAY(), 2)

来週のタスクをハイライト:

=WEEKNUM($A2, 2)=WEEKNUM(TODAY(), 2)+1

年をまたぐケースまで厳密に揃えたい場合は、AND(YEAR($A2)=YEAR(TODAY()), WEEKNUM($A2,2)=WEEKNUM(TODAY(),2)) のようにYEAR関数も条件に足しておくと安全です。

出勤週・在籍週の通し番号を出す(基準日からの経過週)

「入社日からの第何週?」「プロジェクト開始から何週目?」のように、基準日からの経過週を出したい場合もあります。 WEEKNUM関数の差分を使えば一発です。

たとえばB1に基準日(例: プロジェクト開始日 2025/4/7)、A2以降に各タスクの日付が入っている場合:

=WEEKNUM(A2, 2) - WEEKNUM($B$1, 2) + 1

基準日と同じ週なら「1」、翌週なら「2」が返ります。 月またぎや週またぎの集計でも、通し番号で扱えるので並び替えしやすくなりますよ。

ただし、年をまたぐ場合は WEEKNUM 同士の引き算では合わなくなります。 そのときは INT((A2-$B$1)/7)+1 のように、日数差を7で割る方法に切り替えると確実です。

TODAY関数で「今日は第何週?」を自動更新

TODAY関数と組み合わせれば、今日の週番号が常に最新になります。

="今週は第"&WEEKNUM(TODAY(), 2)&"週です"

ファイルを開くたびに自動更新されるので、進捗管理シートに入れておくと便利です。

よくあるエラーと対処法

WEEKNUM関数で発生しやすいエラーは2つです。

エラー原因対処法
#VALUE!日付として認識できない値を指定したセルの値が正しい日付形式か確認する。文字列の場合はDATEVALUE関数で変換する
#NUM!無効な週の基準を指定した、またはシリアル値が負の数第2引数が一覧表の値(1, 2, 11〜17, 21)かを確認する

「#VALUE!」が出るときのチェック手順

「#VALUE!」が出る場合、セルの表示は日付に見えても中身が文字列のケースが多いです。 次の順序で確認してみてください。

  1. セルを選択して数式バーを見る。「2025/3/21」のように左寄せで表示されていたら文字列の可能性が高い
  2. =ISNUMBER(A2) で確認する。FALSE が返れば文字列
  3. 文字列なら =WEEKNUM(DATEVALUE(A2), 2) のようにDATEVALUE関数で日付値に変換する
  4. 大量にある場合は、A列を選択して「データ」→「区切り位置」→「次へ」→「次へ」→「日付」を選んで完了。一気に日付に変換できる

「#NUM!」が出るときのチェック手順

第2引数の値が一覧表(1, 2, 11〜17, 21)以外だと「#NUM!」になります。 「3」や「20」を指定してしまうと出るので注意してください。

また、シリアル値が負の数(1900年より前の日付)の場合も「#NUM!」になります。 古い日付を扱うシートでは、計算前にIF関数でガードしておきましょう。

=IF(A2<DATE(1900,1,1), "範囲外", WEEKNUM(A2, 2))

結果が思った週番号にならないとき

「2025/1/5(日曜)が第2週になってしまう」のような違和感は、第2引数の取り違えが原因です。 月曜始まりにしたいのに省略していたり、「1」を指定していたりするとズレます。 結果が1ずれている感覚があったら、まず第2引数を見直しましょう。

WEEKNUM関数とISOWEEKNUM関数の違い

WEEKNUM関数とISOWEEKNUM関数は、どちらも週番号を返す関数です。 しかし「第1週の決め方」が異なります。

比較表

項目WEEKNUM関数ISOWEEKNUM関数
第1週の基準1月1日を含む週(既定)最初の木曜日を含む週(ISO 8601)
週の始まり第2引数で選べる(10種類)月曜日で固定
引数の数2つ(日付, 週の基準)1つ(日付のみ)
戻り値の範囲1〜541〜53

実は WEEKNUM(日付, 21)ISOWEEKNUM(日付) は同じ結果になります。 ISO方式を使うなら、引数が1つで済むISOWEEKNUM関数のほうがシンプルです。

年末年始の具体例

違いがはっきり出るのは、年末年始の日付です。

2025年12月29日(月曜日)で比較してみましょう。

=WEEKNUM("2025/12/29", 2)

結果: 53(2025年の第53週)

=ISOWEEKNUM("2025/12/29")

結果: 1(2026年の第1週として扱われる)

WEEKNUM関数は「1月1日を含む週が第1週」なので、年末でも当年の週番号です。 一方、ISOWEEKNUM関数はISO規格に基づき、翌年の第1週と判定します。

週の開始曜日の違いに注意

WEEKNUM関数は第2引数で週の開始曜日を10種類から選べます。 ところがISOWEEKNUM関数は月曜固定です。 「集計表は日曜始まりで作りたいけれど、ISO週番号も並記したい」というケースでは、両方を呼び出す必要があります。

A: 日付
B: =WEEKNUM(A2, 1)   ← 日曜始まりの社内集計用
C: =ISOWEEKNUM(A2)   ← ISO週番号(取引先・海外部門共有用)

複数チームで集計する場合は、どの列が何方式なのかをヘッダーに明記しておくと事故が減ります。

どちらを使うべきか

使い分けの目安はこちらです。

  • 社内の週次レポート・集計: WEEKNUM関数がおすすめ。「1月1日=第1週」のほうが直感的で説明しやすいです
  • 国際規格に合わせたい場合: ISOWEEKNUM関数を使います。海外拠点とのやり取りやISO準拠が求められる場面に向いています
  • 年末年始をまたぐ集計: どちらを使うか事前に決めて統一しましょう。混在すると集計がズレる原因になります
  • 製造業・物流の生産週番号: ISO週番号(ISOWEEKNUM関数)が業界標準として使われることが多いです

迷ったら、まずはWEEKNUM関数の月曜始まり(第2引数に「2」)で試してみてください。

WEEKNUM関数を使うときのチェックリスト

実務でWEEKNUM関数を使う前に、次の3点を確認しておくとミスが減ります。

  • 第2引数を省略していないか: 省略すると日曜始まり。日本のビジネス慣習と1日ズレるので、月曜始まりにしたいなら必ず「2」または「11」を渡す
  • 集計時に年も条件に入れているか: SUMIFSなどで集計するとき、週番号だけだと別年の同じ週が混ざる
  • ISOWEEKNUMと混在していないか: 同じシートに2方式があると数値の意味がブレる。列名やコメントで方式を明記する

最初にこの3点を決めておけば、後から見直して「このシートの週番号って何方式?」と迷うことがなくなりますよ。

まとめ

WEEKNUM関数は、日付から週番号を自動で取得できる関数です。

  • 基本構文: =WEEKNUM(シリアル値, [週の基準])
  • 日本のビジネスでは月曜始まり(第2引数に「2」または「11」)が使いやすい
  • 週別集計はSUMIFS連携で効率化できる(補助列に週番号と年を出しておくのがコツ)
  • スケジュール表では条件付き書式と組み合わせて「今週・来週」を自動色分けできる
  • ISOWEEKNUM関数との違いは「第1週の決め方」と「週開始曜日の固定/可変」。社内集計ならWEEKNUM、国際規格に合わせるならISOWEEKNUM
  • エラーは #VALUE!(日付ではなく文字列)と #NUM!(不正な第2引数)の2つを押さえれば対処できる

週別の売上管理や進捗レポートに、ぜひ活用してみてください。 WORKDAY関数やNETWORKDAYS関数と組み合わせれば、日付まわりの業務をさらに自動化できますよ。

この記事で紹介した関数

Excel関数リファレンス

タイトルとURLをコピーしました