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

Kutools for Office — 1つのスイート、5つのツールで、もっと多くのことを成し遂げましょう。

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

Author Xiaoyang Last modified

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:データ分析を革新します。主な機能:Intelligent Executionコード生成カスタム数式の作成データの分析とグラフの生成Kutools Functionsの呼び出し……
人気の機能重複の検索・ハイライト・重複をマーキング空白行を削除データを失わずに列またはセルを統合丸める……
スーパーLOOKUP複数条件でのVLookup複数値でのVLookup複数シートの検索ファジーマッチ……
高度なドロップダウンリストドロップダウンリストを素早く作成連動ドロップダウンリスト複数選択ドロップダウンリスト……
列マネージャー指定した数の列を追加列の移動非表示列の表示/非表示の切替範囲&列の比較……
注目の機能グリッドフォーカスデザインビュー強化された数式バーワークブック&ワークシートの管理オートテキスト ライブラリ日付ピッカーデータの統合セルの暗号化/復号化リストで電子メールを送信スーパーフィルター特殊フィルタ(太字/斜体/取り消し線などをフィルター)……
トップ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%向上し、毎日のマウスクリック数を何百回も削減!

全てのKutoolsアドインを一つのインストーラーで

Kutools for Officeスイートは、Excel、Word、Outlook、PowerPoint用アドインとOffice Tab Proをまとめて提供。Officeアプリを横断して働くチームに最適です。

Excel Word Outlook Tabs PowerPoint
  • オールインワンスイート — Excel、Word、Outlook、PowerPoint用アドインとOffice Tab Proが含まれます
  • 1つのインストーラー・1つのライセンス —— 数分でセットアップ完了(MSI対応)
  • 一括管理でより効率的 —— Officeアプリ間で快適な生産性を発揮
  • 30日間フル機能お試し —— 登録やクレジットカード不要
  • コストパフォーマンス最適 —— 個別購入よりお得