• ベストアンサー

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日とする数式をご教授ください。

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

  • ベストアンサー
  • marbin
  • ベストアンサー率27% (636/2290)
回答No.3

#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)

sainokuniob
質問者

お礼

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

その他の回答 (8)

  • ki-aaa
  • ベストアンサー率49% (105/213)
回答No.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))))

  • sige1701
  • ベストアンサー率28% (74/260)
回答No.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)

noname#204879
noname#204879
回答No.7

貴方が「見つけ」た式をそのまま活かすなら =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

回答No.6

質問者sainokuniobさんと回答者gyouda1114さんは同一人物でしょうか? とりあえず、もう一案 B2セルに日付(シリアル値)が入っているとします =TEXT(B2,"y/m/!7")-WEEKDAY(TEXT(B2,"y/m/!7"),3)

  • maron--5
  • ベストアンサー率36% (321/877)
回答No.5

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

  • gyouda1114
  • ベストアンサー率37% (499/1320)
回答No.4

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

noname#99913
noname#99913
回答No.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)

  • marbin
  • ベストアンサー率27% (636/2290)
回答No.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)

sainokuniob
質問者

お礼

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

関連するQ&A