WEEKNUM関数を使用して、特定の日付の1年の週番号を返すことができることをおそらくご存知でしょう。逆のことをしたい場合はどうしますか?あなたが持っているのがその年の週番号だけである場合、特定の週の最後の日を決定するために?たとえば、第37週を指定する場合、その特定の週の最終日の日付を把握する必要があります。

希望の日付を把握するための組み込み関数はありませんが、問題に取り組み、それを把握する方法はいくつかあります。これらの例では、年がセルA1にあり、目的の週番号がセルB1にあると想定します。

最初のアプローチは、目的の年の最初の日を計算し、各週に7日を加算してから、その年の最初の日の曜日の数値を減算することです。

=DATE(A1,1,1)+B1*7-WEEKDAY(DATE(A1,1,1))

この数式は、週が土曜日に終了する場合、常に週の最後の日を表す日付を返します。週を別の曜日に終了させたい場合は、式がより複雑になります。週を日曜日に終了させたい場合は、数式に1を追加するだけです。

=DATE(A1,1,1)+B1*7-WEEKDAY(DATE(A1,1,1))+1

これと同じロジックを適用すると、数式から1を引くだけで、金曜日に終了する週を把握できると思うかもしれません。年の初めをベースとして使用しているため、これは当てはまりません。

1を引くと、どの年の1月1日も土曜日になるという問題が発生します。 1を引くと、その年の最初の金曜日ではなく、前年の12月31日になります。金曜日に終了する週を計算するには、はるかに複雑な式が必要です。

=DATE(A1,1,6-WEEKDAY(DATE(A1,1,1))



((6-WEEKDAY(DATE(A1,1,1))<0)7)+1)+((B1-1)7)

週が金曜日、土曜日、日曜日のいずれで終了するかによって、52週と53週がある年もあるため、返される日付が同じ年内であるかどうかを確認するように数式を変更することをお勧めしますあなたが分析していること。これをチェックしない場合、これまでに提供された数式は、任意の年の73週、89週、または123週の日付を喜んで返します。日付を適切な将来の年に調整するだけです。

金曜日で終わる週の式は次のとおりです。

=IF(YEAR(DATE(A1,1,6-WEEKDAY(DATE(A1,1,1))



((6-WEEKDAY(DATE(A1,1,1))<0)7)+1)+((B1-1)7))=A1, DATE(A1,1,6-WEEKDAY(DATE(A1,1,1))+((6-WEEKDAY(DATE( A1,1,1))<0)7)+1)+((B1-1)7),"")

計算された日付がセルA1で指定された日付と同じ年でない場合、数式は何も返しません。土曜日で終わる週の式は次のとおりです。

=IF(YEAR(DATE(A1,1,1)+B17-WEEKDAY(DATE(A1,1,1)))=A1, DATE(A1,1,1)+B17-WEEKDAY(DATE(A1,1,1)),"")

最後に、日曜日で終わる週の式は次のとおりです。

=IF(YEAR(DATE(A1,1,1)+B17-WEEKDAY(DATE(A1,1,1))+1)=A1, DATE(A1,1,1)+B17-WEEKDAY(DATE(A1,1,1))+1,"")

_ExcelTips_は、費用効果の高いMicrosoftExcelトレーニングのソースです。

このヒント(6750)は、Microsoft Excel 97、2000、2002、および2003に適用されます。Excel(Excel 2007以降)のリボンインターフェイス用のこのヒントのバージョンは、次の場所にあります。

link:/ excelribbon-Calculating_the_Last_Day_in_a_Week_Number [週の最後の日を計算する]