[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『毎月第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.