プロが教えるわが家の防犯対策術!

昨日、以下のような質問をしました。

>>
セル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)

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


◎これに対して、明回答をくださいましてこの質問に対しては打開策が見つかりました。
ありがとうございます。
ちなみに回答は以下です。

>>
 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),"")


-------------ここからが、質問になります。-------------

最後にもう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)>
の式で動くようにするには、どうすれば良いでしょうか?

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

A 回答 (6件)

>・セルI6が 1/11 だとして、セルF6は 10日 が選択された場合、


>セルK6には 1/19 が自動的に

 それでしたら、次の様な関数にされると良いと思います。

=IF(ISNUMBER(1/DAY(I6)/DAY(I6+F6-2)),I6+F6-2-AND(F6>=11,F6<16)*((WEEKDAY(I6+F6-2,2)>5)+(WEEKDAY(I6+F6-2,2)>6)),"")
    • good
    • 0

>上記の(2)の動きを11日~15日を選択した場合にのみ適用させたいのです。



 申し訳御座いません、御質問の内容を「11日~15日を選択した場合にも適用」と勘違いしておりました。
 只、御補足頂いた内容だけではまだ判らない点が御座います。
 11日~15日を選択した場合には、(2)の動きのままで良いとして、11日~15日以外を選択した場合には、どの様な動作とすれば宜しいのでしょうか?
 単に、何も表示させないだけで宜しいのでしょうか?
 それとも何か別の内容を表示させるのでしょうか?
 例えば、11日~15日以外を選択した場合に、

「訪問Siteでは11日~15日を選択して下さい」

と表示させるものとした場合には、次の様な関数となります。

=IF(ISNUMBER(1/DAY(I6)/DAY(I6+F6-2)),IF(OR(F6<11,F6>15),"訪問Siteでは11日~15日を選択して下さい",I6+F6-2-(WEEKDAY(I6+F6-2,2)>5)-(WEEKDAY(I6+F6-2,2)>6)),"")

この回答への補足

ご丁寧にありがとうございます。

はい◎言葉足らずでした!
申し訳ないです。


--8日~10日を選択した場合は、F6で選択された日数を足した後、-2日 の結果を表示する処理--
・セルI6が 1/11 だとして、セルF6は 10日 が選択された場合、
セルK6には 1/19 が自動的に

補足日時:2013/01/15 20:09
    • good
    • 0

>最後にもう1つ、「10日」と選択されているセルはプルダルン式のセルで10日~15日を選択出来るようになっていてこの式を「10日」以外が選択された場合に適用されるようにしたいのです。



 その前に確認しなければならない事があります。
 回答No.2を読まれて、試して見られたのでしょうか?

この回答への補足

答No.2の内容でも試してみました!
- - - - - - - - - - - - - - - - - - -

(1)プルダウンで選択した日数(8日~15日)を加え、更にそこから-2日引いた日付を自動表示)

(2)ただし、計算後の曜日が土曜、もしくは日曜日の場合は前の金曜日の日付を返す

- - - - - - - - - - - - - - - - - - -
いずれも条件は結果としてクリアしているのですが、
上記の(2)の動きを11日~15日を選択した場合にのみ適用させたいのです。


**なるべく理解してもらい易いように、Excelには以下の内容で配置してあります。**



~お得意様ルート営業 予定表~

C6:顧客名
D6:担当者名
E6:住所
F6:訪問Site(8~15日)
G6:前回メモ1
H6:前回メモ2
I6:訪問予定日(1)
J6: [済/未]
K6:訪問予定日(2)
L6: [済/未]
M6:訪問予定日(3)
N6: [済/未]
O6:訪問予定日(4)
P6: [済/未]
Q6:訪問予定日(5)
R6: [済/未]

補足日時:2013/01/15 15:10
    • good
    • 0
この回答へのお礼

度々のご回答、ありがとうございます。

- - - - - - - - - - - - - - - - - - -

(1)プルダウンで選択した日数(8日~15日)を加え、更にそこから-2日引いた日付を自動表示)

(2)ただし、計算後の曜日が土曜、もしくは日曜日の場合は前の金曜日の日付を返す

- - - - - - - - - - - - - - - - - - -
いずれも条件は結果としてクリアしているのですが、
上記の(2)の動きを11日~15日を選択した場合にのみ適用させたいのです。


可能でしょうか・・?

お礼日時:2013/01/15 15:15

>上記の式を入れてみたところ、プルダウンから10日を選びセルI6で1/11を選択した結果の表示が


>1/19と表示させたいのですが、1/18になってしまいます。
>なぜでしょうか?

 2013年の1/19は土曜日なのですから、

>更にこの結果の値を
>「土曜、もしくは日曜日の場合は前の金曜日の日付を返す」

という条件通りに、その直前の金曜日の日である1/18が表示されただけですが、何が問題なのでしょうか?

この回答への補足

最後にもう1つ、「10日」と選択されているセルはプルダルン式のセルで10日~15日を選択出来るようになっていて
この式を「10日」以外が選択された場合に適用されるようにしたいのです。

補足日時:2013/01/10 14:37
    • good
    • 0
この回答へのお礼

「10日」と選択されているセルはプルダルン式のセルで10日~15日を選択出来るようになっていて
この式を「10日」以外が選択された場合に適用されるようにしたいのです。

お礼日時:2013/01/11 13:25

質問:No.7880479 Excel2007、週末の場合は前の金曜日を返す?


  http://oshiete.goo.ne.jp/qa/7880479.html

の方ですね。
 補足文を確認した時には既に御質問が締め切られてしまっていたため、放置していたのですが、そのままの式で、

>この式を「10日」以外が選択された場合に適用

出来る筈です。

★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★
★★ ですから、まずは、その関数としたままで、他の日数の場合も試してみて下さい。 ★★
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★


 それとも、若しかしますと、F6セルに入力されているのは、「10」~「15」という数値ではなく、「10日」~「15日」という文字列データになっているのでしょうか?
 もし、「10日」~「15日」という文字列データになっているのでしたら、「10」~「15」という数値が入力される様に、F6セルのドロップダウンリストを変更される事を御勧め致します。
 もしもその際に、F6セルの表示を、どうしても「10日」~「15日」の形式で表示したいという場合には、F6セルの書式設定の表示形式を[ユーザー定義の]

0"日"

とされると良いと思います。
 或いは、あまり良い事では御座いませんが、もしも、何らかの理由があって、F6セルに入力するデータ(←表示される内容ではなく、データそのものの事です)を、「10」~「15」という数値データではなく、「10日」~「15日」という文字列データとしたい場合には、K6セルに入力する関数を次の様なものに修正されると良いと思います。

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

この回答への補足

見つけてくれてありがとうございます。
前回、そして今回もお世話になっています!

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

>>上記の式を入れてみたところ、プルダウンから10日を選びセルI6で1/11を選択した結果の表示が

1/19と表示させたいのですが、1/18になってしまいます。

なぜでしょうか?

補足日時:2013/01/09 14:57
    • good
    • 0
この回答へのお礼

ありがとうございます。


う~ん・・やはり難しいのでしょうか?

お礼日時:2013/01/09 18:18

分かり易い式はK6セルには次の式を入力すればよいでしょう。



=IF(COUNT(F6,I6)<>2,"",IF(WEEKDAY(I6+F6-2,2)=7,I6+F6-4,IF(WEEKDAY(I6+F6-2,2)=6,I6+F6-3,I6+F6-2)))
    • good
    • 0

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