メインコンテンツへスキップ

Excelで週番号を日付に変換したり、その逆を行うにはどうすればよいですか?

Author: Xiaoyang Last Modified: 2025-08-06

Excelでの日付や週番号の操作は、ビジネス分析、プロジェクト計画、およびレポート作成における一般的なニーズです。たとえば、特定の日付がどの週に属しているかを知りたい場合や、指定された年の特定の週番号に対応する日付範囲を決定したい場合があります。しかし、Excelでは、週番号を完全な日付範囲に変換したり、そのプロセスを迅速に逆転させるための直接的な組み込みオプションは提供されていません。これらのニーズに対応するために、目的や処理したいデータ量に応じて、さまざまな数式、VBAソリューション、およびその他のExcel機能を使用できます。以下では、このタスクをExcelで処理するためのいくつかの実用的な方法を紹介します。

数式を使用して週番号を日付に変換する

数式を使用して日付を週番号に変換する

VBAコードを使用して週番号と日付の間で変換する


数式を使用して週番号を日付に変換する

特定の年とワークシートに入力された週番号があると仮定します(例: 2015 セル B115 セル B2)。この週の実際の開始日(月曜日)と終了日(日曜日)を計算したい場合があります。これはスケジュール計画、週次サマリーの準備、または週次報告期間を参照する際に特に役立ちます。
sample data

指定された週番号の日付範囲を計算するには、次のExcel数式を使用できます:

1. 開始日を表示するための空白セルを選択します(ここではセル B5)。以下の数式を入力し、Enterキーを押します。この数式は日付を表すシリアル番号を返します。

=MAX(DATE(B1,1,1),DATE(B1,1,1)-WEEKDAY(DATE(B1,1,1),2)+(B2-1)*7+1)

2. 同じ週の終了日(例えばセル B6)については、次の数式を入力し、Enterキーを押します。この数式は指定された週の最終日のシリアル番号を返します。

=MIN(DATE(B1+1,1,0),DATE(B1,1,1)-WEEKDAY(DATE(B1,1,1),2)+B2*7)

Convert week number to date with formulas

注: 上記の数式では、B1は年を含むセル(例:2015年)、B2は変換したい週番号を含むセルです。必要に応じて、これらセル参照を実際のワークシートに合わせて調整してください。

3数式は最初に数値を返しますが、書式設定された日付ではないことに注意してください。正しい日付形式を表示するには、両方の数式セルを選択し、「ホーム」タブに行き、 ホーム > 数字形式 ドロップダウン > 短い日付形式を選択します。これにより、値が認識可能な日付に変換されます。
format formula cells to date

ヒント: これらの数式はISO週日システムに基づいています(週は月曜日に始まる)。これはヨーロッパの給与支払いおよびレポート基準で一般的です。組織が異なる週番号システムを使用している場合、結果は異なる可能性があります。年明けが途中の週に始まる場合(例:1月1日が月曜日でない場合)や、53週ある年に必ず結果を確認してください。


数式を使用して日付を週番号に変換する

逆に、指定された日付がどの週に該当するかを判断したい場合もあります。Excelにはこの目的のためにWEEKNUM関数が用意されています。これはタイムシートデータを分析するとき、週ごとのレポートを生成するとき、または週ごとに配送やイベントを追跡するときに特に便利です。

1. 週番号の出力先となる空白セルを選択します。次の数式を入力します(日付がB1にあると仮定します)。

=WEEKNUM(B1,1)

2. 次に、 Enterキーを押します。この数式は、週の最初の日として日曜日を考慮して週番号を返します。
Convert date to week number with formula

注:

(1) この数式では、B1は変換したい日付を含むセルです。

(2) 週の始まりを月曜日から数える場合(ISO週システムで一般的)、このバージョンの数式を使用します。

=WEEKNUM(B1,2)

VBAコードを使用して週番号と日付の間で変換する

この記事では、週番号(および年)を対応する日付範囲に変換するVBAルーチンと、任意の日付に対するISO週番号を決定する別のVBAルーチンについて説明します。

週番号を日付範囲に変換する:

1. 「開発」タブで「Visual Basic」をクリックしてVBAエディターを開きます。開いたウィンドウで「挿入」>「モジュール」をクリックし、以下のコードをモジュールに貼り付けます。

Sub WeekNumberToDateRange()
    Dim YearNum As Long
    Dim WeekNum As Long
    Dim FirstDay As Date, LastDay As Date
    Dim Jan4 As Date
    YearNum = Application.InputBox("Enter the year:", "KutoolsforExcel", Year(Date), Type:=1)
    If YearNum < 1 Then Exit Sub
    WeekNum = Application.InputBox("Enter the week number:", "KutoolsforExcel", 1, Type:=1)
    If WeekNum < 1 Then Exit Sub
    Jan4 = DateSerial(YearNum, 1, 4)
    FirstDay = Jan4 - Weekday(Jan4, vbMonday) + 1
    FirstDay = FirstDay + (WeekNum - 1) * 7
    LastDay = FirstDay + 6
    MsgBox "Start date: " & Format(FirstDay, "yyyy-mm-dd") & vbCrLf & _
           "End date:   " & Format(LastDay, "yyyy-mm-dd"), _
           vbInformation, "KutoolsforExcel"
End Sub 

2. マクロを実行するには、 Run button ボタンをクリックします。すると、年と週番号の入力を求められ、ダイアログボックスにそれぞれの日付範囲が表示されます。

日付を週番号に変換する:

1. 次のVBAコードをモジュールにコピーして貼り付けます。

Sub DateToWeekNumber()
 Dim InputDate As Date
 Dim WeekNum As Integer
 InputDate = Application.InputBox("Enter the date (yyyy-mm-dd):", "KutoolsforExcel", Date, Type:=2)
 WeekNum = WorksheetFunction.WeekNum(InputDate, 2)
 MsgBox "The week number is: " & WeekNum, vbInformation, "KutoolsforExcel"
End Sub  

2. このコードを挿入して実行すると、ターゲット日付の入力を求められ、マクロは週の始まりとして月曜日を考慮して週番号を表示します。週の始まりを日曜日にしたい場合は、WeekNumの第2引数を1に変更することでコードを修正できます。

ヒント: 使用する週システムが異なる場合は、VBAコード内のvbMondayvbSundayを適切に調整してください。

Excelでワンクリックで複数の非標準書式の日付を通常の日付に変換する

Kutools for Excelの「日付認識」ユーティリティは、非標準の日付や数字(yyyymmddなど)やプレーンテキストを標準の日付形式に簡単に識別して変換するのに役立ちます。Excelでのワンクリックで生産性を向上させ、手動での変換エラーを削減します。今すぐ30日間の全機能無料トライアルを入手しましょう!
ad convert to date


関連記事:

Excelで2つの日付間に存在する特定の曜日の数をカウントする方法は?

Excelで日付に日/月/年を加算または減算する方法は?

最高のオフィス生産性ツール

🤖 Kutools AI Aide:データ分析を革新:インテリジェント実行   |  コード生成  |  カスタム数式の作成  |  データを分析してグラフを生成  |  Kutools Functions を呼び出す
人気機能重複の検索・ハイライト・マーキング   |  空白行を削除   |  データを失わず列やセルを統合   |   丸める ...
スーパーLOOKUP複数条件VLOOKUP   複数値VLOOKUP  |  複数シートの検索  |  ファジーマッチ ....
高度なドロップダウンリストすばやくドロップダウンリストを作成   |  依存型ドロップダウンリスト   |  複数選択ドロップダウンリスト ....
列の管理:特定数の列を追加  | 列を移動  | 非表示列の表示状態を切り替え |  範囲と列の比較 ...
注目機能グリッドフォーカス   |  デザインビュー  |  強化された数式バー   ワークブック&ワークシートの管理   |  オートテキスト ライブラリ (Auto Text)   |  日付ピッカー   |  データの統合   |  セルの暗号化/復号化    リスト送信で電子メールを送信   |  スーパーフィルター   |   特殊フィルタ(太字/斜体/取り消し線でフィルタ...)
トップ15ツールセット12 種類のテキストツールテキストの追加特定の文字を削除など)  |  50 種以上のグラフ タイプガントチャートなど)  |  40を超える実用的な 数式誕生日に基づいて年齢を計算する、など)  |  19種の 挿入ツールQRコードの挿入パスから画像の挿入など)  |  12種類の 変換ツール単語に変換する通貨変換など)  |  7つの 結合&分割ツール高度な行のマージセルの分割など)  |  ...さらに多数
お好きな言語でKutoolsを使用できます ― 英語、スペイン語、ドイツ語、フランス語、中国語など40以上に対応!

Kutools for ExcelでExcelスキルを強化し、かつてない効率を体験しましょう。 Kutools for Excelは300以上の高度な機能で生産性向上と時間短縮を実現します。最も必要な機能を今すぐ取得...


Office TabはOfficeにタブ表示を追加し、作業効率を大幅に向上させます

  • Word、Excel、PowerPointでタブ編集とタブ閲覧を有効にします
  • 同じウィンドウ内の新しいタブで複数のドキュメントを開いたり作成したりできます。新しいウィンドウを開く必要はありません。
  • 生産性が50%向上し、1日に何百回ものマウスクリックも削減できます!