プロが教える店舗&オフィスのセキュリティ対策術

セルI6に1/1と入力されています。
セルF6には"10日"と入力されています。
セルK6には式で、K6=I6+F6-2 と入力して、
F6で選択された日数("10日")を足して、
そこから2日前を
自動的に表示されるように式が入っています。
ここで表示される値は「1/8」と、ここまではOKなのですが、
更にこの結果の値を
「土曜、もしくは日曜日の場合は前の金曜日の日付を返す」
という条件で完成させたいのです。
結果的にK6には「1/18」を自動的に表示させたいのですが、
条件付き書式で以下のようにしても「1/19」のままになってしまいます。
=IF(WEEKDAY($M6,1)=1,K6-2,K6)

どのようにすれば、うまく表示する事が出来ますでしょうか?

A 回答 (2件)

 K6セルには次の様な関数を入力されると良いと思います。



=IF(ISNUMBER(1/DAY(I6)/DAY(I6+F6-2)),I6+F6-2-(WEEKDAY(I6+F6-2,2)>5)-(WEEKDAY(I6+F6-2,2)>6),"")


 処で、

>結果的にK6には「1/18」を自動的に表示させたいのですが、

との事ですが、I6セルには「1/1」と入力されていて、その10日後の日の更に2日前の日付を、K6セルに表示させるのですから、「1/18」ではなく、「1/8」ではないでしょうか?

この回答への補足

kagakusukiさん>>
まず、
、「1/18」ではなく、「1/8」ではないでしょうか?
その通りでこれは自分の記述ミスでした。ありがとうございます。

そして、上記の式で数日間悩んでいたものがその通りに動いた事にビックリしています!
ありがとうございます!!

最後にもう1つ、「10日」と選択されているセルはプルダルン式のセルで10日~15日を選択出来るようになっていて
この式を「10日」以外が選択された場合に適用されるようにしたいのです。
なので「11日」~「15日」が選択された場合に
=IF(ISNUMBER(1/DAY(I6)/DAY(I6+F6-2)),I6+F6-2-(WEEKDAY(I6+F6-2,2)>5)-(WEEKDAY(I6+F6-2,2)>
の式で動くようにするには、どうすれば良いでしょうか?

もし出来たら、ご教授願います。

補足日時:2013/01/08 16:26
    • good
    • 0

> 条件付き書式で以下のようにしても「1/19」のままになってしまいます。


> =IF(WEEKDAY($M6,1)=1,K6-2,K6)
セルM6の登場が唐突に感じますが、何の目的のセル?

セルK6に設定せずに、他セルを作業用に設けてはいけませんか?例えばセルL6とか。
セルL6に式[=I6+F6-2]を設定しておいて、
セルK6に式[=IF(WEEKDAY($M6,1)=1,L6-2,L6)]を設定したらどうなります?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!