タイムマシーンがあったら、過去と未来どちらに行く?

入力した日付がその月の第何週目かという関数は
WEEKNUM関数を使えば計算できるところまでは調べました。

毎月21日のある週をを第一週目とすると入力された日付が第何週目かという
のを計算することはできるでしょうか?

入力する日付は必ず月曜日の日付になります。
よろしくお願いします。

質問者からの補足コメント

  • うーん・・・

    例えば21日が日曜日だったとしたら、22日は第2週、
    21日が土曜日だったとしたら、23日が第2週、

    月をまたいで翌月の20日まで、その日が第何週目にあたるかを計算したいです。

      補足日時:2017/10/03 14:41

A 回答 (3件)

こんにちは



>WEEKNUM関数を使えば計算できるところまでは調べました
WEEKNUMは1月1日の週を第一週として計算するようです。
https://support.office.com/ja-jp/article/WEEKNUM-関数-e5c43a03-b4ab-426c-b411-b18c13c75340

それなので、月によらずに
 WEEKNUM(計算対象日)-WEEKNUM(基準日)
を計算すれば、基準日からの週数がわかります。
基準日と同じ週を第1週とカウントするなら、1を足して
 WEEKNUM(計算対象日)-WEEKNUM(基準日)+1
で、お求めの内容になると思います。
ただし、この式のままですと年をまたぐ計算をするとおかしなことになるので、対象日と基準日で年が変わっている場合には補正が必要となります。

一方で、
>入力する日付は必ず月曜日の日付になります。
と決まっているなら、基準日の週の月曜日からの日数を数えて7で割る方法でも、何週目かは算出可能ですね。
この方法であれば、年をまたいでも日数を計算できますので補正する必要は生じません。

実際には、日数を7で除した商を用いたいので、計算の都合上、基準日と同じ週の日曜日を求めておく方が簡単になります。
同じ週の日曜日を求めるには、WEEKDAY関数を利用して、
 基準日-WEEKDAY(基準日)-1
で求めることができますので、これを用いて
 INT((計算対象日-基準日+WEEKDAY(基準日)-1)/7)+1
を計算すれば、お求めの数値になりませんか?

※ 「計算対象日」、「基準日」とも日付形式のシリアル値であるものと仮定しています。
    • good
    • 0
この回答へのお礼

WEEKNUM関数でばかり考えていて、思いつきもしませんでした。
これで求めていた数値がでるようになりました。
大変助かりました。
ありがとうございました。

お礼日時:2017/10/03 16:12

こんばんは。



A1 に、シリアル値で、2017/10/3 と入れた場合: 3
A1 に、       2017/5/22       :2
A1に、        2017/1/2       :3
こういうので良いのでしょうか?

=AND((YEAR(A1)&"/1/1")*1<=A1,(YEAR(A1)&"/1/20")*1>=A1)*52+WEEKNUM(A1,2)-WEEKNUM(DATE(YEAR(A1-20),MONTH(A1-20),21),2)+1

月曜日を第一週目とする所が難しいです。WEEKNUM(日付,週の基準値)

1月20日までは、前年からの計算になるので、52を加えることにしました。
    • good
    • 0
この回答へのお礼

ありがとう

解決しました!
ありがとうございます

お礼日時:2017/10/06 22:20

> 毎月21日のある週をを第一週目とすると…


その起算日を取り出して、対象の日付から差し引けば、
翌月起算日相当日の前日まで計算できるはずです。
    • good
    • 0
この回答へのお礼

ありがとう

ありがとうございます

お礼日時:2017/10/06 22:20

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


おすすめ情報