質問者さんからの反応がありませんので、数式の説明を付けておきます。 WEEKDAY関数はシリアル値を曜日に対応する数値に変更するだけですので、 土日や祭日を除いて平日を求めるには、祭日を除くという処理ができないので今回の計算には使えません。 このことは、質問者さんもお気づきのことです。 すると、使えそうな関数はWORKDAY関数ということになります。 この関数は土日や祭日を除いた、指定した日数の前後の日付を返すことができます。 今回の質問の計算は、33日前の日が土日や祭日であったら、その前日を求めたいということです。 32日前の日を基準にして、その1日前の平日を求めればよいことになります。 =Workday(開始日+1,-1,祭日) とすればよいので、 =Workday(B2-33+1,-1,祭日リスト) で求めることができます。
このような計算ではどうでしょう? =WORKDAY(B2-33,-1,祝日) ↓のページが参考になりませんか? エクセル関数の技:日付に関する技/月末など指定日を求めたい http://www.eurus.dti.ne.jp/~yoneyama/Excel/waza/hiduke02.html
よねさんへ いつも勉強させていただいています。 WEEKDAYとWORKDAYで混乱しています。ご教授お願いします。 A列 B列 C列 D列 E列・・・・ 1行目 会社名 満期日 申請締め日 支払日 金額・・・・ 2行目 〇〇梶@R1.7.18 5,560円・・・ 3行目 ××梶@R1.7.22 5,200円・・・ ・・・ 上記の様な場合で、C列の申請〆切日の設定で悩んでいます。 B列の満期日の33日前をC列に表示したいです。 満期日の33日前が土日祝の場合はその1日前の平日を表示したいです。 =IF(WEEKDAY(B2-33,2)=6,B2-34,IF(WEEKDAY(B2-33,2)=7,B2-35,B2-33)) 現在この様な式を入れていますが、祝日の場合の設定ができません。 WORKDAYで設定すると土日祝を除いた33日前が表示されます。 自分なりに色々なサイトを見てみましたが、思う様にできませんでした。 よろしくお願いいたします。