web-dev-qa-db-ja.com

Excelで年と週の番号から月を計算します

Excel 2007には、年番号と週番号があり、月番号を計算したいと思います。

私の場合、毎週の始まりは月曜日であるため、何週間かは何年にもわたって重複することになります。

例:

Year: 2012
Week 1 started: Monday 2nd January
Sunday 1st January was in week 52 of 2011

したがって、以下のようになります。

Year: 2011
Week: 10

10週目が3月7日に始まったので、10週目は3か月目でした。

これについて助けてくれてありがとう。

10
Pricey

私は次のアプローチを提案します

  • 1月1日の(ISO)週を決定します( このページ を参照)[セル内C4]

    =INT((B4-DATE(YEAR(B4-WEEKDAY(B4-1)+4),1,3)+WEEKDAY(DATE(YEAR(B4-WEEKDAY(B4-1)+4),1,3))+5)/7)(B4を想定=DATE([Year],1,1)

  • 第1週が始まる日を計算します[セル内D4]

    =IF(C4=1,B4-WEEKDAY(B4,3),B4+7-WEEKDAY(B4,3))

  • 問題の週の月曜日と対応する月を決定します

    =MONTH(D4+7*([Week]-1))

4
Paul B.

実際には、これをもう少し簡単に行うことができます。年が_A2_の場合、例: 2012、週番号は_B2_で、この式を使用してその週の開始日を取得できます

=DATE(A2,1,-2)-WEEKDAY(DATE(A2,1,3))+B2*7

日付としてフォーマット

......明らかに、それをMONTH関数でラップして、月を取得できます。

=MONTH(DATE(A2,1,-2)-WEEKDAY(DATE(A2,1,3))+B2*7)

結果セルを一般的にフォーマットする

説明

上記は、前年のlast月曜日の日付を検索し、週数* 7を加算して、関連する週の開始日を示します。

first ISO週の年の日は、常に12月29日から1月4日までの期間の唯一の月曜日であるため、その日付を見つけるには、1月5日の直前の月曜日を見つけることができます。

任意の日付の直前の月曜日を見つけるには、この一般式を使用できます

=date-WEEKDAY(date-2)

したがって、日付がA2に示されている年の1月5日である場合、それはと同じです。

=DATE(A2,1,5)-WEEKDAY(DATE(A2,1,3))

.....しかし、それは今年の最初の月曜日になります。したがって、前年の最後の月曜日が必要な場合は、7を引くことができます。これを行う1つの方法は、5から7を引いて-2を取得することです。

=DATE(A2,1,-2)-WEEKDAY(DATE(A2,1,3))

24
barry houdini

ISO週には常に1月4日が含まれるため、平日を月曜日から始めましょう(明らかに、「年」は年のセルです)。

WEEKDAY(DATE(year;1;4))

これは、月曜日(プラス1)を見つけるためにその日付から戻る必要がある日数です。

DATE(year;1;4)-WEEKDAY(DATE(year;1;4))+1

だから今、私たちはただ頼る必要があります...

DATE(year;1;4)-WEEKDAY(DATE(year;1;4))+1+weeknumber*7
0
Envite