質問: エクセルでその月の最終水曜日を求めるにはどうしたら良いか調べています。 A1セルが年、B1セルが月の場合、下記の関数式で求められると知りました。 DATE(A1,B1+1,0)-MOD(WEEKDAY(DATE(A1,B1
回答: WEEKDAY関数の仕様は理解されていますか? 指定した日の曜日を求める関数です。 日曜日・・・1 月曜日・・・2 火曜日・・・3 水曜日・・・4 木曜日・・・5 金曜日・・・6 土曜日・・・7 末日の曜日により、それぞれの数値が返されます。 このWEEKDAY関数が一番重要です。 それぞれの曜日の数値に3を加えます。 日曜日・・・4 月曜日・・・5 火曜日・・・6 水曜日・・・7 木曜日・・・8 金曜日・・・9 土曜日・・・10 7で割った余りを求めます。 日曜日・・・4 月曜日・・・5 火曜日・・・6 水曜日・・・0 木曜日・・・1 金曜日・・・2 土曜日・・・3 これはすなわち末日から最終水曜日までの日数の差です。 つまり、 末日が日曜日の場合、月末から4日前が水曜日になります。 末日が月曜日の場合、月末から5日前が水曜日になります。 末日が火曜日の場合、月末から6日前が水曜日になります。 末日が水曜日の場合、月末から0日前が水曜日になります。 末日が木曜日の場合、月末から1日前が水曜日になります。 末日が金曜日の場合、月末から2日前が水曜日になります。 末日が土曜日の場合、月末から3日前が水曜日になります。 のように考えればいいだけです。 なので最終日曜日、月曜日、火曜日・・・は =DATE(A1,B1+1,0)-MOD(WEEKDAY(DATE(A1,B1+1,0))+6,7) =DATE(A1,B1+1,0)-MOD(WEEKDAY(DATE(A1,B1+1,0))+5,7) =DATE(A1,B1+1,0)-MOD(WEEKDAY(DATE(A1,B1+1,0))+4,7) =DATE(A1,B1+1,0)-MOD(WEEKDAY(DATE(A1,B1+1,0))+3,7) =DATE(A1,B1+1,0)-MOD(WEEKDAY(DATE(A1,B1+1,0))+2,7) =DATE(A1,B1+1,0)-MOD(WEEKDAY(DATE(A1,B1+1,0))+1,7) =DATE(A1,B1+1,0)-MOD(WEEKDAY(DATE(A1,B1+1,0)),7) となります。