質問: 2011/08/22(月) どうしても不可能であれば別セル(C1など)でも構いません。
回答: =IF(DAY(A1)<25,DATE(YEAR(A1),MONTH(A1)+1,0)-IF(WEEKDAY(DATE(YEAR(A1),MONTH(A1)+1,0),2)>5,WEEKDAY(DATE(YEAR(A1),MONTH(A1)+1,0),2)-5),DATE(YEAR(A1),MONTH(A1)+1,20)+IF(WEEKDAY(DATE(YEAR(A1),MONTH(A1)+1,20),2)>5,8-WEEKDAY(DATE(YEAR(A1),MONTH(A1)+1,20),2),0)) 1つのセルで計算しようとすると、こんな感じですかね。 ただ、長すぎて、他の人がメンテナンスするときに困りそうですね。 作業セル(隠しセル)を使ったほうが、解りやすいかもしれませんね。 C1で、休日を無視した日付を計算して、 =IF(DAY(A1)<25,DATE(YEAR(A1),MONTH(A1)+1,0),DATE(YEAR(A1),MONTH(A1)+1,20)) B1に、休日の条件も踏まえた日付を表示するとか。 =IF(WEEKDAY(C1,2)<=5,C1,IF(DAY(A1)<25,C1-(WEEKDAY(C1,2)-5),C1+(8-WEEKDAY(C1,2)))) そうすれば、セルの数は増えますが、入力する式の長さは半分くらいに減ります。その上、他の人にも(あなた自身にも)解りやすくメンテナンスしやすいと思います。 C1は別のセルでも良いです。 目に付かないセルにするなり、文字を白くするなりしても良いでしょう。