• ベストアンサー

毎月第二金曜日(Part2)…

今日の午前中も質問させていただいたんですが、その後また行き詰ってしまって…すみませんが教えてください。 入力条件は、a1に"=TODAY()"、これだけです。これでa2に今月の第二金曜日、a3に来月の第二金曜日、a4に再来月の第二金曜日、もし、今日が第二金曜日か、過ぎていたら、a2に来月の第二金曜日、a3に再来月の第二金曜日、a4に再来月の次の第二金曜日の3つの数字を出したいんです。 今月の第二金曜日というのはa2に"=DATE(YEAR(A1),MONTH(A1),15-WEEKDAY(DATE(YEAR(A1),MONTH(A1),2)))"でクリアできました。しかし、今日が第二金曜日を過ぎてた場合と、年をまたいだところで頭の中がワヤになっちゃいました。 ひとつのセルで入れられる数式で教えてください。お願いします。

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんにちは。 #1の回答者です。 真夜中て、一眠りした後に、掲示板を見たときの回答でしたので、ご質問の内容を、読み取れなかったようです。このようにして、A2に入れて、フィルハンドルでドラックしてみたらいかがですか? こういうことですか? '------------------------------------------- 7/9 ---> 7/10, 8/14, 9/11 7/10 --->8/14, 9/11, 10/9 8/11 --->8/14, 9/11, 10/9 8/14 --->9/11, 10/9, 11/13 '------------------------------------------- A2: =DATE(YEAR($A$1),MONTH($A$1)+ROW(A1)-((15-WEEKDAY($A$1-DAY($A$1)+2))>DAY($A$1)),15-WEEKDAY(DATE(YEAR($A$1),MONTH($A$1)+ROW(A1)-((15-WEEKDAY($A$1-DAY($A$1)+2))>DAY($A$1)),2)))

hiroshi_sp
質問者

お礼

ありがとうございます!!! そうですそうです、完璧です。 いつも稚拙な質問に答えていただき、ありがとうございます。

その他の回答 (2)

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.2

毎月第二金曜日の式はお示しの通りですが、第2金曜日を越した日にちを入力すると正解が得られないように書かれていますがA1セルが7月18日であっても7月の第二金曜日は7月10日になりますね。 ところでA2セルに今月の第二金曜日を、A3セルに来月の第二金曜日というようにその日にちを表示させるとしたらA2セルに次の式を入力し下方にオートフィルドラッグします。 年号が変わっても問題なく表示されます。 =DATE(YEAR(A$1),MONTH(A$1)+ROW(A1)-1,15-WEEKDAY(DATE(YEAR(A$1),MONTH(A$1)+ROW(A1)-1,2)))

hiroshi_sp
質問者

お礼

ありがとうございます。 私の説明が下手だったらすみません。 今月で例示すると、A1が第二金曜日前(7/1から7/9)だったら、 A2は7/10,A3は8/14,A4は9/11, A1が第二金曜日前(7/10から8/13)だったら、 A2は8/14,A3は9/11,A4は10/9としたいんです。 KURUMITOさんの数式を入れると、A1が今日の時点でA2が7/10,今月の第二金曜です。そこを例示のようにしたいんです。 お手数をおかけしますが、もう一度教えてください。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんばんは。 A2: =IF((15-WEEKDAY($A$1-DAY($A$1)+2))>DAY($A$1),DATE(YEAR($A$1),MONTH($A$1)+ROW(A1),15-WEEKDAY(DATE(YEAR($A$1),MONTH($A$1)+ROW(A1),2))),DATE(YEAR($A$1),MONTH($A$1)+ROW(A1)+1,15-WEEKDAY(DATE(YEAR($A$1),MONTH($A$1)+ROW(A1)+1,2)))) と置いて、A4 まで、フィルハンドルでコピーすればよいはずです。

hiroshi_sp
質問者

お礼

いつもありがとうございます。 私の説明が下手だったらすみません。 今月で例示すると、A1が第二金曜日前(7/1から7/9)だったら、 A2は7/10,A3は8/14,A4は9/11, A1が第二金曜日前(7/10から8/13)だったら、 A2は8/14,A3は9/11,A4は10/9としたいんです。 Wendy02さんの数式だと、A1が今日の時点でA2が9/11になっちゃうんです… お手数をおかけしますが、もう一度教えてください。

関連するQ&A

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

  • excelで第二金曜日を…

    よい知恵を貸してください。 入力条件は =today()関数だけです。 これで、この月の第二金曜日を検索したいのですが… a1に=today()を入力したらa2に第二金曜日の日にちが出るようにしたいんです。 どういう数式がよいでしょう???

  • Excelで第一〇曜日を求める方法がわかりません

    初めて質問させていただきます。 Excelファイルで毎月お客様に送付状を作成しており、その送付状内に次月作業日程(何月何日何曜日)を載せて送付しております。 弊社は基本的に第1水曜日など曜日で定期日程を組んでいるお客様が多い状態です。 現在カレンダーと睨めっこしながら手入力しておりますが、自動表示したいです。 色々調べた結果 =DATE(YEAR(B2),MONTH(B2)+1,1)+7-WEEKDAY(DATE(YEAR(B2),MONTH(B2)+1,1),2)+1 の数式を使うとできるようなのですが、この数式だと第一週の始まりが日曜日に限定されている?ようです。 例えば、今月2012年10月の送付状を作る時、来月の日程が第一土曜日の場合。 =DATE(YEAR(B2),MONTH(B2)+1,1)+7-WEEKDAY(DATE(YEAR(B2),MONTH(B2)+1,1),2)+6 ※B2には2012/10/8と記入されている。 と入力すると、11月10日と第二土曜日が入力されてしまいます。 この部分を11月3日と表記されるように数式を入力したいのです。 何かいい方法はありませんでしょうか? 分かりにくい文章ですいません。宜しくお願いします。

  • 翌月の支払日を求めたい

    WINDOWS XP EXCELL2003です。 ご指導を仰ぎたいのは、 今月の〆に対して      ( 例 2011/1/31 ) 翌月の5日をもとめたいです。( 例 2011/2/5  ) ※5日が土日曜日又は祝祭日の時は前倒しにしたいです。  例えば3月 5月のように黄色の部分のようになると嬉しいですが。 参照図で説明をさせていただきますと 例 A 発行日  =DATE(D2,E2,F2) B 支払日1 =WORKDAY(DATE(YEAR(A2),MONTH(A2)+1,5),-1,祝休日表!A$1:A$34) C 支払日2  =WORKDAY(DATE(YEAR(A2),MONTH(A2)+1,5),0,祝休日表!A$1:A$34) の数式でテストしているのですがB/C列の黄色の部分は実際のスケジュールとはあっています。 この数式をいろいろと試しましたが分からなくなり質問させていただきます。 どうすればいいでしようか。 ご指導を仰ぎたいです。 よろしく御願いします。

  • 指定した曜日の日にち

    指定した月の2週目の木曜日を出したいのです。 そこで =DATE(YEAR(C1),MONTH(C1),0)-WEEKDAY(DATE(YEAR(C1),MONTH(C1),0)-3,3)+2*7 このような式を書いたのですが、 これだと 第二木曜日が出ますが、 求めたいのは、2週目の木曜日の日付なのです。 C1に 日付を入力します。   求める月が替わっても 2週目木曜日がしりたいのですが、 よろしくお願いします。

  • 【Excel2000】土・日曜日を考慮した日付+α

    現在セルB1には『A1に入力した日の月末日付+月末休日の場合は前日』が出るようにしてあります。 セルA1 = 日付 セルB1 = IF(WEEKDAY(DATE(YEAR(A1),MONTH(A1)+1,0))=1,(DATE(YEAR(A1),MONTH(A1)+1,0))-2,IF(WEEKDAY(DATE(YEAR(A1),MONTH(A1)+1,0))=7,(DATE(YEAR(A1),MONTH(A1)+1,0))-1,DATE(YEAR(A1),MONTH(A1)+1,0))) ここに『A1が25日以降の場合は翌月20日+翌月20日が休日の場合は後日』という設定を加えたいのですが、可能でしょうか?  ・A1 = 2011/07/10 → (結果) B1 = 2011/07/29(金)  ・A1 = 2011/07/25 → (結果) B1 = 2011/08/22(月) どうしても不可能であれば別セル(C1など)でも構いません。

  • 最新受診日から次の受診日を表示する関数(再度)

    前回回答をいただきましたが、また問題があったので質問します。 【次のの条件で次回受診期限日を表示する関数を、どなたか教えていただけますか? 65歳までは受診した日から3年ごとに受診。 65歳に到達した日から1年以内に受診、受診日より75歳に到達するまでは3年ごとに受診。 75歳に到達した日から1年以内に受診、受診日より1年ごとに受診。 受診日(A3)は最新受診日を常に打ち込んで更新するものとします。 年齢(A1)は関数で生年月日より、リアルタイムで表示。 以下のセルの並びで考えていますが、効率のよい方法もあれば教えてください。 タイプ1) 年齢(A1) 生年月日(A2) 受診日(A3) 次回受診期限日(A4) または   タイプ2) 年齢(A1) 生年月日(A2) 受診日(A3) 次回受診期限日(A4) 65歳到達日(A6) 75歳到達日(A7)】 という質問をしました。 前回、の回答で 回答1 タイプ2で対応するのがA3に入力する式を省略できる点でベターでしょう。 A1セルには次の式を入力します。 =DATEDIF(A2,TODAY(),"Y") A4セルには次の式を入力します。 =IF(DATE(YEAR(A3)+3,MONTH(A3),DAY(A3))<=A6,DATE(YEAR(A3)+3,MONTH(A3),DAY(A3)),IF(A3<=A6,DATE(YEAR(A6)+1,MONTH(A6),DAY(A6)),IF(DATE(YEAR(A3)+3,MONTH(A3),DAY(A3))<=A7,DATE(YEAR(A3)+3,MONTH(A3),DAY(A3)),IF(A3<=A7,DATE(YEAR(A7)+1,MONTH(A7),DAY(A7)),DATE(YEAR(A3)+1,MONTH(A3),DAY(A3))))))-1 A6セルには次の式を入力します。 =DATE(YEAR(A2)+65,MONTH(A2),DAY(A2)) A1セルを除いてセルの表示形式は日付にします。 A7セルには次の式を入力します。 =DATE(YEAR(A2)+75,MONTH(A2),DAY(A2)) という回答と 回答2 タイプ1 A1=DATEDIF(A2,TODAY(),"y") A2=生年月日 A3=直近の受信日 A4=(LOOKUP(A1,{0,63,64,65,74},{3,2,1,3,1})+YEAR(A3)&"/"&TEXT(A3,"MM/DD"))-1 タイプ2 A1=DATEDIF(A2,TODAY(),"y") A2=生年月日 A3=直近の受信日 A4=(LOOKUP(A1,{0,63,64,65,74},{3,2,1,3,1})+YEAR(A3)&"/"&TEXT(A3,"MM/DD"))-1 A6=DATE(YEAR(A2)+65,MONTH(A2),DAY(A2)) A7=DATE(YEAR(A2)+75,MONTH(A2),DAY(A2)) という回答をいただきましたが、よくみると 生年月日がS21.9.23だとし、近受診日がH21.7.4の場合 回答1 だと 受診期限がH22.7.3 となり 回答2 だと 受診期限がH24.9.22 になります。 実際は、受診して3年後がH24.7.3であり、65歳に到達するのがH23.9.23である為、 H24.9.22が受診期限だと65歳到達から1年以内だが、3年を過ぎてしまいます。 受診期限がH24.7.3となればよいのですが・・・・・ 複雑なので難しいのでしょうか?

  • エクセル 日付関数について

     日付関数について先ほども質問した者ですが、再度よろしくおねがいします。  生年月日から学年(例:小6)を表示する式を組みたく、サイトを検索していたら、下記のような式がありました。 =DATE(YEAR(TODAY())-(MONTH(TODAY())<=3)*1,4,1) これは、今日現在で学年を導く基準年の4月1日を表示する式です。(今日2009/1/4現在ならば2008/4/1と表示する式) この式が理解できません。DATEと後の”,4,1”は理解できます。 YEAR(TODAY())は2009 MONTH(TODAY())は1 (MONTH(TODAY())<=3)の意味は? 多分3月までなら2009-1を表示する? だけど2月になったら2009-2 ではおかしい。 あと*1は構文上必要なのか? 以上雑駁ですが、この式を簡単に説明してくださる方、おねがいします。

  • 最新受診日から次の受診日を表示する関数

    【65歳までは受診した日から3年ごとに受診する。 65歳に到達した日から1年以内に受診し、受診日より75歳に到達するまでは3年ごとに受診する。 75歳に到達した日から1年以内に受診し、受診日より1年ごとに受診。】 以下のセルの並びです。 年齢(A1) 生年月日(A2) 受診日(A3) 次回受診期限日(A4) 65歳到達日(A6) 75歳到達日(A7)】 A4セルには、次の数式を入力してあります。 =IF(AND(ISNUMBER(A$2),ISNUMBER(A$3),A$3>=A$2),IF(AND(DATEDIF(A$2,A$3,"Y")>62,DATEDIF(A$2,A$3,"Y")<65),DATE(YEAR(A$2)+66,MONTH(A$2),DAY(A$2)),IF(AND(DATEDIF(A$2,A$3,"Y")>72,DATEDIF(A$2,A$3,"Y")<75),DATE(YEAR(A$2)+76,MONTH(A$2),DAY(A$2)),DATE(YEAR(A$3)+IF(DATEDIF(A$2,A$3,"Y")<75,3,1),MONTH(A$3),DAY(A$3)))),"") 65歳までは受診した日から3年ごとに受診する。・・・ここだけを5年ごとに変更 したいのですが A4セル の数式のどこを変更したらよいのか教えていただけませんでしょうか?

  •  EXCELのIF関数についての質問です。

     EXCELのIF関数についての質問です。  IF関数については、自信がありました。 たとえば、G13をテストの得点だとして、80点よりも高い得点なら合格、さもなければ不合格と表示させてければ、if(G13>80,"合格","不合格")でOKのはずです。  ところが、今日何歳なのかを表示させる場合、G13に生年月日をいれて、 IF(OR(MONTH(TODAY())>MONTH(G13),AND(MONTH(TODAY())=MONTH(G13),DAY(TODAY())>=DAY(G13)))=TRUE,YEAR(TODAY())-YEAR(G13),YEAR(TODAY())-YEAR(G13-1))と引継ぎをうけました。  この中にあるTRUEの意味がわかりません。私の解釈では、「今日の月が誕生月よりも絶対値が大きい」又は「今日の月と誕生月が同じで、今日の日が誕生の日の絶対値と同じか多い」場合、年齢は「今日の年」-「誕生の年」、そうでない場合は年齢は「今日の年」-1-「誕生の年」です。  なので、TRUEはなくてもよいと思い、削除してみましたが、エラーが出ました。  よくわからないので、お手数ですが、教えてください

専門家に質問してみよう