[[20040512060828]] 『毎月第3土曜日の日付を求める』(masabou5) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『毎月第3土曜日の日付を求める』(masabou5)

年間予定として、毎月第3土曜日をある会合に設定しています。

例えば1月は17日、2月は21日、・・・という風に出したいのですが。


 A1に2004 B1に月を入力すれば、下の式で第3土曜日が求まります。(シニア)
 =IF(COUNT($A$1,$B$1)<2,"",MOD(14-MOD($A$1&"/"&$B$1,7),7)+15)
 =IF(COUNT($A$1,$B$1)<2,"",JIS(MOD(14-MOD($A$1&"/"&$B$1,7),7)+15)&"日")

 シニアさん、ありがとうございました。
 この式をコピー・貼り付けして確認できました。
 ただ申し訳ありませんが、式の簡単な解説をお願いできませんでしょうか?
 よろしくお願いします。(masabou5)

 前回、この回答をさせていただきましたので、掲載させていただきます。
https://www.excel.studio-kazu.jp/cgi-bin/kazuwiki2.cgi?mycmd=read&mypage=[[20040501024559]] 

 土曜日の場合は、このようなことでもよいように思います。
 =IF(COUNT(A1,B1)<2,"",MOD(-MOD(A1&"/"&B1,7),7)+15)

 =IF(COUNT(A1,B1)<2,"",MOD(-MOD(A1&"/"&B1,7),7)+15)のうち、
 =IF(COUNT(A1,B1)<2,"",は、A1、B1の入力チェックです。

 A1&"/"&B1は、入力年月の1日付け日付です。

 M0D(日付,7)で、その曜日を戻しています、土曜日は、0、日曜日が、1、…です。

 MOD(-曜日の数,7)で、第1週目の土曜日までの日数を算出しています。
 2004/5/1の場合は、0となります。

 +1日+2週間して、第3週目の日を計算しています。

 このような意図で、試作しています。          (LOOKUP)

 衝突しました。LOOKUPさんの詳しい回答でご理解されたと思います。以下は参考まで
MOD($A$1&"/"&$B$1,7)は月初めの曜日を求めます。1月は5で木曜日になります。
 MOD(14-5,7)の14は土曜日で月初めの木曜日の5を引いた値を7で割った残りは2になります。
この値に1を加えるとその月の第1週の土曜日=MOD(14-MOD($A$1&"/"&$B$1,7),7)+1
この値に8を加えるとその月の第2週の土曜日=MOD(14-MOD($A$1&"/"&$B$1,7),7)+8
この値に15を加えるとその月の第3週の土曜日=MOD(14-MOD($A$1&"/"&$B$1,7),7)+15
この値に22を加えるとその月の第4週の土曜日=MOD(14-MOD($A$1&"/"&$B$1,7),7)+22
この値に29を加えるとその月の第5週の土曜日=MOD(14-MOD($A$1&"/"&$B$1,7),7)+29
=IF(COUNT($A$1,$B$1)<2,"",第3土曜日)はA1:B1の入力2より小さければ表示しないです。
土曜日の14を日(8)月(9)火(10)水(11)木(12)金(13)に変更すれば各曜日に書き換えられます。
 (シニア)

 シニアさん、LOOKUPさん、丁寧な解説、ありがとうございました。
 よく理解できました。御礼申し上げます。(masabou5)

 シニアさん、LOOKUP さん、もう一つお尋ねします。
 MOD(14-MOD($A$1&"/"&$B$1,7),7)+15)の式で、14が土曜日と言うことは、特に14でなくても、
 7でも14でも21でも、7の倍数ならいいということになりますか?(masabou5)

 日曜日が1で月(2)火(3)水(4)木(5)金(6)土曜日は7となりますから、
masabou5さんご指摘のように土曜日は7の倍数でよいことになります。(シニア)

 ありがとうございました。(masabou5)

 厳密に検証したわけではありませんが、この方法では、Macの方(正確には、1904年から計算
 している方)は、1日ずれると思います。
 一般的な式にするには、=WEEKDAY(DATE($A$1,$B$1,1)) を使って式を立てた方が良いと思います。
 (ちゅうねん)

コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.