こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

Excel2007 毎月の第1月曜日を表示したい。

Excel2007です。
毎月の第1月曜日を表示するため、調べたところ
=DATE(YEAR(B2),MONTH(B2),1)+7-WEEKDAY(DATE(YEAR(B2),MONTH(B2),1),2)+1の式を見つけました。
ほとんどの月は、うまく表示されるのですが第1月曜日が1日の時がうまく表示されません。

すなわち、
B2に2009 B2に6 として
とし2009年6月の第1月曜日を表示させようとすると、2009/6/8と表示され2009/6/1と表示されません。
IF関数等でで第1月曜日が8日のときは、1日とする数式をご教授ください。

投稿日時 - 2009-03-20 18:55:47

QNo.4812999

困ってます

質問者が選んだベストアンサー

#1の式は年の部分が絶対参照、月の部分が相対参照になってましたので、
月の部分も絶対参照に変えました。

=IF(WEEKDAY(DATE($A$1,$A$2,1))<3,DATE($A$1,$A$2,1)+(2-WEEKDAY(DATE($A$1,$A$2,1))),DATE($A$1,$A$2,1)+(7-WEEKDAY(DATE($A$1,$A$2,1)))+2)

投稿日時 - 2009-03-20 19:08:32

お礼

再度の回答ありがとうございます。
勉強になります。

投稿日時 - 2009-03-20 19:14:21

ANo.3

このQ&Aは役に立ちましたか?

1人が「このQ&Aが役に立った」と投票しています

回答(9)

ANo.9

簡単な式です。

A1に2009 A2に5 として
A3に日にちだけ表示
=8-(WEEKDAY(DATE($A$1,A2,-1)))

B2にシリアル値で入力の場合
B3に
=DATE(YEAR(B2),MONTH(B2),(8-WEEKDAY(DATE(YEAR(B2),MONTH(B2),-1))))

投稿日時 - 2009-03-22 15:32:19

ANo.8

>B2に2009 B2に6 として
B1に2009 B2に6 として
=DATE(B3,B4,MATCH(2,INDEX(WEEKDAY(DATE(B3,B4,0+ROW(A1:A7))),),0))

日にちだけ
=MATCH(2,INDEX(WEEKDAY(DATE(B3,B4,0+ROW(A1:A7))),),0)

B1にシリアル値で入力の場合
=B1-DAY(B1)+MATCH(2,INDEX(WEEKDAY(B1-DAY(B1)+ROW(A1:A7)),),0)
日にちだけ
MATCH(2,INDEX(WEEKDAY(B1-DAY(B1)+ROW(A1:A7)),),0)

投稿日時 - 2009-03-21 17:17:32

貴方が「見つけ」た式をそのまま活かすなら
=DATE(YEAR(B2),MONTH(B2),1)+7*(MOD(DATE(YEAR(B2),MONTH(B2),1),7)<>2)-WEEKDAY(DATE(YEAR(B2),MONTH(B2),1),2)+1

投稿日時 - 2009-03-21 01:41:56

ANo.6

質問者sainokuniobさんと回答者gyouda1114さんは同一人物でしょうか?

とりあえず、もう一案 B2セルに日付(シリアル値)が入っているとします
=TEXT(B2,"y/m/!7")-WEEKDAY(TEXT(B2,"y/m/!7"),3)

投稿日時 - 2009-03-20 21:15:18

ANo.5

=DAY(DATE(YEAR(B1),MONTH(B1),7*1-WEEKDAY(DATE(YEAR(B1),MONTH(B1),0),3)))

投稿日時 - 2009-03-20 20:05:27

ANo.4

回答ありがとうございます。
うまくいきました。
今後ともよろしく

投稿日時 - 2009-03-20 19:21:58

ANo.2

長くなりますが、単純にやりました。

=IF(DAY(DATE(YEAR(S1),MONTH(S1),1)+7-WEEKDAY(DATE(YEAR(S1),MONTH(S1),1),2)+1)=8,DATE(YEAR(S1),MONTH(S1),1)+7-WEEKDAY(DATE(YEAR(S1),MONTH(S1),1),2)+1-7,DATE(YEAR(S1),MONTH(S1),1)+7-WEEKDAY(DATE(YEAR(S1),MONTH(S1),1),2)+1)

投稿日時 - 2009-03-20 19:04:56

ANo.1

年、月ともB2ですか?

↓はA1に年、A2に月での例です。
=IF(WEEKDAY(DATE($A$1,A2,1))<3,DATE($A$1,A2,1)+(2-WEEKDAY(DATE($A$1,A2,1))),DATE($A$1,A2,1)+(7-WEEKDAY(DATE($A$1,A2,1)))+2)

投稿日時 - 2009-03-20 19:03:23

お礼

早速の回答ありがとうございます。
うまく行きました。
式の内容を勉強させていただきます。
今後ともご指導よろしくお願いします。

投稿日時 - 2009-03-20 19:12:19

あなたにオススメの質問