Excel(エクセル)ISOWEEKNUM関数の使い方|ISO8601方式で週番号を求める
使用関数:ISOWEEKNUM
ISOWEEKNUM(アイエスオーウィークナム)関数とは?
ISOWEEKNUM関数はISO8601方式に従って、指定した日付が1年の何週目に当たるかを求めます。ISOWEEKNUMはISO(国際標準化機構)WEEK NUMBER(週番号・週数)の略です。
週番号(週数)は1年間を通して週ごとに振られる番号で、週番号でまとめられたカレンダーをウィークカレンダーと呼びます。ウィークカレンダーはプロジェクトの予定表によく使われ、海外との取引や事業計画で国際標準であるISO8601方式を採用する際にISOWEEKNUM関数が利用されます。
ISO8601方式とは?
ISO8601方式とは、日付/時刻の表記に関するISO(国際標準化機構)の規定です。
ISO8601方式では「その年の最初の木曜日を含む週を第1週とする」と定められており、例えば1月1日が金曜日であった場合、その日は前年の最終週に含まれます。
その他のISO8601方式の詳細はWikiを参照して下さい。
ISOWEEKNUMはExcel2013からの新関数で、Excel2010ではWEEKNUM関数の「週の基準」に21を指定することで実装できます。Excel2007以前は21の指定ができないので、ISO方式で週番号を求めるには幾つかの関数を組み合わせてかなり複雑な数式を入力する必要があります。
ISOWEEKNUM関数の引数と書式
「数式」タブ「関数ライブラリ」→「日付/時刻」→ ISOWEEKNUMをクリックします。
ISOWEEKNUMの引数は「日付」です。
書式の構成はこうなります。
ISOWEEKNUM関数で年末年始の週番号を求める
ISOWEEKNUM関数の引数ダイアログを使って、年末年始の週番号がISO方式ではどうなるのかを見てみましょう。
A列に入力されている日付は2019~2020年の年末年始、D列に入力されている日付は2020~2021年の年末年始です。各日付の週番号をISOWEEKNUM関数で取得します。
週番号の入るセルを選択してISOWEEKNUM関数の引数ダイアログを開き、「日付」に最初の日付のセルをクリックで指定します。
他のセルにもオートフィルコピーして週番号が取得されました。
ISOWEEKNUM関数による最終週と第一週の分かれ目
ISOWEEKNUM関数の「週の基準(週の開始日)」は「月曜日」です。また、前述したようにISO8601方式では「その年の最初の木曜日を含む週を第1週とする」規定があるので、前年の日付が当年の第一週に組み込まれたり、当年の日付が前年の最終週に組み込まれたりします。
この例では2019年12月30日、12月31日が2020年の第1週に組み込まれ、2021年1月1日~1月3日が2020年の最終週(53週)に組み込まれています。
前年の月末が当年の第1週に含まれる
2020年の最初の木曜日が1月2日で、その木曜日が含まれる週が2020年の第1週です。週は「月曜日」から始まるので、前年2019年の12月30日(月曜日)と12月31日(火曜日)は2020年の第1週に入り、週番号は「1」となります。
当年の月初が前年の最終週に含まれる
2021年の最初の木曜日が1月7日で、その木曜日が含まれる週が2021年の第1週です。週は「月曜日」から始まるので、2021年1月4日(月曜日)が週番号「1」の開始日です。2021年1月1日~1月3日は前年2020年の最終週に入り、週番号は「53」となります。
月曜日以外の曜日を開始日に指定できるWEEKNUM関数の使い方はこちらから

- ISO8601方式とは日付/時刻の表記に関するISO(国際標準化機構)の規定で、「その年の最初の木曜日を含む週を第1週とする」と定められています
- ISOWEEKNUM関数はISO8601方式に従って、指定した日付が1年の何週目に当たるかを求めます
- ISOWEEKNUM関数の「週の基準(週の開始日)」は月曜日です
- ISOWEEKNUM関数で週番号を求めると、前年の月末が当年の第1週に含まれたり当年の月初が前年の最終週に含まれたりします