質問: エクセル 2カ月以内で最も遅い木曜日を計算する関数を教えてください 2021/1/1から2カ月後(+60日で6/30)のなかで最も遅い木曜日(6/24)、またその日が祝日の場合は前日を表示する式を教えていただけないでしょうか。よろしくお願いします。
回答: 「代わりに作れ。オレ様の成果として使ってやるwww」 なんて作業依頼の投稿じゃないよね? それをやりたいのでしたら、有料で請け負ってくれるサイトを利用することを勧めます。 ここは自力で疑問を解決できるようになるためのアドバイスをもらう場所ですからね。 (代わりにやってもらう事は、疑問の先送りであり、解決ではない) ・・・本題・・・ 手作業でやる時、どんな手順でやる? その手順に沿った関数を作ればいいのです。 自分なら、 2か月後の曜日を確認して、その日が木曜日から何日目になるのかを計算して、その差の日数を引いた日を「最も遅い木曜日」と判断します。 (1/1日の2か月後は3月1日のはずで、6/30にはならないはずなんだけどねえ) weekday関数を使うと、日付に対する曜日を調べることができる。 (text関数でも曜日を取得できる =text(60日後の日付,"aaa") など) その曜日に応じて、金曜日、土曜日、日曜日、月曜日、火曜日、水曜日なら、 それぞれ、1日、2日、3日、4日、5日、6日前を求めればよいことになる。 (match関数を使って曜日に対する数値を返せば、引き算が楽になるぞ。 = 60日後の日付 - match(60日後の曜日,{"木","金","土","日","月","火","水"}-1,0) など) あとは、 祝日のリストを作り、 連続した祝日の日数をその右のセルに表示させ、 (2022/5/3 1 火 憲法記念日 2022/5/4 2 水 みどりの日 2022/5/5 3 木 こどもの日 2022/7/18 1 月 海の日 2022/8/11 1 木 山の日 ...な感じ) その数字を、得られた日付のシリアル値から引く。 (そうして求められた日付の曜日が日曜日になっても知ったこっちゃない) まあ、こんな感じで作る。