- ベストアンサー
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日とする数式をご教授ください。
- みんなの回答 (9)
- 専門家の回答
質問者が選んだベストアンサー
#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)
その他の回答 (8)
- ki-aaa
- ベストアンサー率49% (105/213)
簡単な式です。 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)
>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)
貴方が「見つけ」た式をそのまま活かすなら =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
- 某HN クロメート(Chromate)(@CoalTar)
- ベストアンサー率40% (705/1742)
質問者sainokuniobさんと回答者gyouda1114さんは同一人物でしょうか? とりあえず、もう一案 B2セルに日付(シリアル値)が入っているとします =TEXT(B2,"y/m/!7")-WEEKDAY(TEXT(B2,"y/m/!7"),3)
- maron--5
- ベストアンサー率36% (321/877)
=DAY(DATE(YEAR(B1),MONTH(B1),7*1-WEEKDAY(DATE(YEAR(B1),MONTH(B1),0),3)))
- gyouda1114
- ベストアンサー率37% (499/1320)
回答ありがとうございます。 うまくいきました。 今後ともよろしく
長くなりますが、単純にやりました。 =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)
年、月とも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)
お礼
早速の回答ありがとうございます。 うまく行きました。 式の内容を勉強させていただきます。 今後ともご指導よろしくお願いします。
お礼
再度の回答ありがとうございます。 勉強になります。