海外拠点とやり取りをしていて「この日付って第何週?」とISO規格の週番号を求められた経験、ありませんか。国内の感覚で「1月1日を含む週が第1週」と答えると、欧州メンバーの認識とズレてしまうことがあるんですよね。
スプレッドシートのISOWEEKNUM関数を使えば、ISO 8601規格に沿った週番号を日付から一発で取り出せます。週次の売上集計やプロジェクト進捗管理を国際基準にそろえたいときに、ぴったりの関数ですよ。
この記事では、スプレッドシートのISOWEEKNUM関数の基本構文から、WEEKNUM関数との違い、年末年始に発生する週番号のズレまで実務目線でまとめました。集計キーとして使う「ISO年-週番号」テンプレートも紹介しますね。
スプレッドシートのISOWEEKNUM関数とは?
スプレッドシートのISOWEEKNUM関数は、指定した日付がISO 8601規格で「第何週」にあたるかを返す日付関数です。読み方は「アイエスオー・ウィークナム」。「ISO」+「WEEK(週)」+「NUM(Number=番号)」を組み合わせた名前ですよ。
戻り値は1〜53の整数で、週の始まりは月曜日、その年の最初の木曜日を含む週が第1週になります。ヨーロッパ圏のビジネスや製造業の週次管理でよく使われる方式です。
ISO 8601規格の週番号ルール
ISO 8601は、国際標準化機構が定めた日付・時刻の表記規格です。週番号については、次の2つのルールで第1週を決めます。
- 週の始まりは月曜日(日曜始まりではない)
- その年の最初の木曜日を含む週が第1週
この定義により、年をまたぐ週の扱いが独特になります。たとえば「1月1日が金曜日」の年は、その週の木曜日は前年12月31日です。つまり1月1日〜3日はまだ前年の第52週または第53週という扱いになるわけですね。
関数の基本構文と引数
構文はとてもシンプルで、引数は1つだけです。
=ISOWEEKNUM(日付)
引数の意味を整理しておきましょう。
| 引数 | 意味 | 省略時の挙動 |
|---|---|---|
| 日付 | ISO週番号を調べたい日付 | 省略不可 |
WEEKNUM関数のように「週の始まり方」を指定する第2引数はありません。ISO規格で固定されているぶん、引数を迷う必要がないのがメリットですよ。
スプレッドシートが日付として認識できる形式なら、セル参照・日付文字列・DATE関数の結果など、どれでも渡せます。
ISOWEEKNUM関数の基本的な使い方
それでは実際に使ってみましょう。数式パターンを3つ紹介しますね。
セル参照で日付を指定する
もっとも基本的な使い方です。日付の入ったセルを参照します。
=ISOWEEKNUM(A2)
A2に「2026/4/6(月曜日)」が入っている場合、結果は「15」です。ISO基準で2026年の第15週にあたります。
日付文字列を直接指定する
数式の中に日付を文字列として書く方法です。一時的な確認用や、数式テストで手軽に使えます。
=ISOWEEKNUM("2026/4/6")
結果は「15」です。ただし実務ではセル参照のほうが管理しやすいですよ。
DATE関数と組み合わせる
年・月・日が別々のセルに分かれている場合は、DATE関数で日付を組み立てて渡します。
=ISOWEEKNUM(DATE(B2, C2, D2))
B2に「2026」、C2に「4」、D2に「6」が入っていれば、結果は「15」です。CSVインポート後に日付がバラバラの列に入っているケースで重宝しますよ。
ISOWEEKNUM関数の実務活用パターン
ISOWEEKNUM関数が活きるのは、週単位の集計やラベル付けです。よく使う3パターンを紹介しますね。
週次レポートに「W15」ラベルを自動生成
日付セルから「W15」のような週番号ラベルを作れます。グラフの軸やピボットの集計キーに使うと一気に読みやすくなりますよ。
="W"&ISOWEEKNUM(A2)
A2が「2026/4/6」なら、結果は「W15」です。「W」+数字の表記はISO規格の慣例で、国際的に通じるフォーマットですよ。
ISO年と週番号を組み合わせた集計キー
ISO週番号には「年末の日付が翌年の第1週になる」という特性があります。そのため「2025」のような普通の年と組み合わせると、12月末のデータだけズレて集計されてしまうんです。
ISO週番号に対応する「ISO年」は、次の数式で取得できます。
=YEAR(A2-WEEKDAY(A2,2)+4)
WEEKDAY関数でその日付の曜日番号(月曜=1)を取得し、引いて足すことでその週の木曜日の日付を求めています。木曜日が属する年=ISO年ですね。
これを組み合わせて集計キーを作るとこうなります。
=YEAR(A2-WEEKDAY(A2,2)+4)&"-W"&TEXT(ISOWEEKNUM(A2),"00")
A2が「2026/4/6」なら、結果は「2026-W15」です。TEXT関数で週番号を2桁にそろえておくと、ソートしたときにW1→W10→W2と崩れないですよ。
TODAY関数で「今週は第何週」を自動表示
TODAY関数と組み合わせれば、シートを開くたびに最新のISO週番号が表示されます。
="今週はW"&ISOWEEKNUM(TODAY())
進捗管理シートのヘッダーに置いておくと、チーム内の週次会議で「今、第何週?」と調べる時間をカットできますよ。
ISOWEEKNUM関数とWEEKNUM関数の違い
ISOWEEKNUM関数とWEEKNUM関数は、どちらも週番号を返します。ただし「第1週の決め方」と「引数の数」が違うので、ここをしっかり押さえておきましょう。
比較表
| 項目 | ISOWEEKNUM関数 | WEEKNUM関数 |
|---|---|---|
| 第1週の基準 | 最初の木曜日を含む週(ISO 8601) | 1月1日を含む週(既定) |
| 週の始まり | 月曜日で固定 | 第2引数で選べる(10種類以上) |
| 引数の数 | 1つ(日付のみ) | 2つ(日付, 週の基準) |
| 戻り値の範囲 | 1〜53 | 1〜54 |
WEEKNUM(日付, 21) と ISOWEEKNUM(日付) は同じ結果になります。ISO方式で使うなら、引数が1つで済むISOWEEKNUMのほうがシンプルですよ。
年末年始で結果が変わる具体例
違いがはっきり出るのは年末年始です。2026年1月1日(木曜日)を両方に渡してみましょう。
=WEEKNUM("2026/1/1", 2) → 1
=ISOWEEKNUM("2026/1/1") → 1
1月1日が木曜日なので、どちらも第1週で一致します。では、2025年12月29日(月曜日)はどうでしょうか。
=WEEKNUM("2025/12/29", 2) → 53(2025年の第53週)
=ISOWEEKNUM("2025/12/29") → 1(2026年の第1週扱い)
WEEKNUM関数は「1月1日を含む週を第1週」とするので、12月29日はまだ2025年の第53週です。一方、ISOWEEKNUM関数は2026年の最初の木曜日(1月1日)を含む週が第1週なので、12月29日〜1月4日はまるごと2026年の第1週として扱われます。
この違いを知らずに集計すると、12月末の売上が翌年集計に紛れ込んだりするので要注意ですよ。
どちらを使うべきか
使い分けの目安はこちらです。
- 海外拠点との連携・ISO準拠が必要: ISOWEEKNUM関数。欧州のビジネスではISO週番号が標準
- 社内の週次レポート・集計: WEEKNUM関数。「1月1日=第1週」のほうが直感的で説明しやすい
- 年末年始をまたぐ集計: どちらを使うか事前に統一しておく。混在すると集計が崩れる原因になる
迷ったら「国際基準=ISOWEEKNUM、社内用=WEEKNUM」と覚えておけばOKですよ。
年末年始の週番号に注意するポイント
ISOWEEKNUM関数でいちばんハマりやすいのが、年末年始の挙動です。パターンを整理しておきますね。
12月末が「翌年の第1週」になるケース
その年の12月29日・30日・31日が月曜〜水曜のいずれかにあたる場合、その日が属する週の木曜日は翌年の1月に入ります。ISO規格では木曜日の属する年が「ISO年」になるので、12月末の日付が翌年の第1週として扱われるわけです。
具体例で確認しましょう。
| 日付 | 曜日 | ISOWEEKNUM結果 | ISO年 |
|---|---|---|---|
| 2024/12/30 | 月 | 1 | 2025 |
| 2024/12/31 | 火 | 1 | 2025 |
| 2025/12/29 | 月 | 1 | 2026 |
| 2025/12/30 | 火 | 1 | 2026 |
カレンダーでは「2024年」に見えていても、ISO基準では「2025年第1週」です。年またぎの集計では、ISO年を必ず併用してくださいね。
1月始めが「前年の第52週・第53週」になるケース
逆に、1月1日が金曜・土曜・日曜にあたる年は、1月初めの数日が前年の最終週として扱われます。
| 日付 | 曜日 | ISOWEEKNUM結果 | ISO年 |
|---|---|---|---|
| 2027/1/1 | 金 | 53 | 2026 |
| 2027/1/2 | 土 | 53 | 2026 |
| 2027/1/3 | 日 | 53 | 2026 |
| 2027/1/4 | 月 | 1 | 2027 |
2027年1月1日〜3日は、2026年の第53週という扱いです。「年初なのに結果が53」と驚かないように、仕様として覚えておきましょう。
第53週が存在する年と存在しない年
ISO週番号には第53週がある年とない年があります。判別ルールはこちらです。
- その年の1月1日が木曜日の年 → 第53週あり
- 平年でも閏年でもこの条件で決まる
2020年(水曜日→第53週あり※例外あり)、2026年は1月1日が木曜日なので第53週があります。集計表のプルダウンに「W53」まで入れておくか、関数で動的に生成するかは、扱う年に合わせて判断してくださいね。
よくあるエラーと対処法
ISOWEEKNUM関数で発生しやすいエラーは2つです。
| エラー | 原因 | 対処法 |
|---|---|---|
| #VALUE! | 日付として認識できない値を指定した | セルの値が正しい日付形式か確認。文字列の日付はDATEVALUE関数で変換する |
| #NUM! | シリアル値が負の数になっている | 1900/1/1より前の日付は指定できない。引数の日付を確認する |
#VALUE! が出るときは、見た目は日付でも中身が文字列になっているケースが多いです。セルを選択して数式バーで確認するか、セル書式を「数値」に変えて数値(シリアル値)として表示されるかを確認してみてください。文字列なら左寄せ、数値なら右寄せで表示されますよ。
また、空白セルを渡すと「52」が返ることがあります(0を渡すと1899/12/30扱いのため)。空白判定を入れておくと安全です。
=IF(A2="", "", ISOWEEKNUM(A2))
これで空白セルには何も表示されず、日付が入っているセルだけ週番号が出るようになりますよ。
まとめ
スプレッドシートのISOWEEKNUM関数は、ISO 8601規格に沿った週番号を日付から取得できる関数です。最後に要点を整理しておきましょう。
- 構文は
=ISOWEEKNUM(日付)── 引数は1つだけでシンプル - 週の始まりは月曜日固定、最初の木曜日を含む週が第1週
- 戻り値は1〜53の整数。年末年始は前年・翌年に振り分けられることがある
- WEEKNUM関数との違いは「第1週の決め方」と「引数の数」。ISO準拠ならISOWEEKNUM一択
- 集計キーには「ISO年-週番号」をセットで使う(
YEAR(A2-WEEKDAY(A2,2)+4)でISO年取得) - #VALUE! は日付として認識できない値、#NUM! は1900年以前の日付が原因
海外拠点との週次レポートや、国際基準の進捗管理に使うと、認識ズレのない集計ができますよ。WORKDAY関数やWEEKDAY関数と組み合わせれば、日付まわりの業務がさらに自動化できるので、ぜひ合わせて試してみてくださいね。
