- ベストアンサー
難解な式を条件により動作するようにしたい!!!
- セルI6に、1/1と入力されています。セルF6には("10日")と入力されています。セルK6には式で、K6=I6+F6-2 と入力して、F6で選択された日数("10日")を足して、そこから2日前を自動的に表示されるように式が入っています。
- 条件式 =IF(F6<>"10日",IF(ISNUMBER(1/DAY(I6)/DAY(I6+F6-2)),I6+F6-2-(WEEKDAY(I6+F6-2,2)>5)-(WEEKDAY(I6+F6-2,2)>6),"") で、「10日」以外が選択された場合に適用されるようになっています。
- また、セルF6はプルダルン式で、10日~15日を選択できるようになっています。"10日"以外が選択された場合に上記の条件式が動作するようにするには、どうすれば良いでしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
失礼しました。 >この式を「10日」以外が選択された場合に適用されるようにしたいのです。 を見落としていました。 >上記の(2)の動きを11日~15日を選択した場合にのみ適用させたいのです。 つまりは、8日、9日、10日を選んだ場合は土日関係なく プルダウンで選択した日数(8日~15日)を加え、更にそこから-2日引いた日付 を表示し、 11日~15日を選んだ場合は、 プルダウンで選択した日数(8日~15日)を加え、更にそこから-2日引いた日付 が土日なら、直前の金曜日を、さもなくば、その日付を表示する。 という理解でいいですか? もしそうならば、 K6 = I6+F6-2-IF(AND(F6>10,WEEKDAY(I6+F6-2,2)>5),1,0) -IF(AND(F6>10,WEEKDAY(I6+F6-2,2)>6),1,0) で、10日より大きい場合のみ直前の金曜日が表示されます。 K6 = I6+F6-2-IF(AND(F6>10,F6<16,WEEKDAY(I6+F6-2,2)>5),1,0) -IF(AND(F6>10,F6<16,WEEKDAY(I6+F6-2,2)>6),1,0) で、11日~15日の場合のみ直前の金曜日が表示されます。 M6も同様にすることを考えたら、 K6 = I6+$F6-2-IF(AND($F6>10,$F6<16,WEEKDAY(I6+$F6-2,2)>5),1,0) -IF(AND($F6>10,$F6<16,WEEKDAY(I6+$F6-2,2)>6),1,0) として、K6をコピーしてM6に貼り付けすると、 M6 = K6+$F6-2-IF(AND($F6>10,$F6<16,WEEKDAY(K6+$F6-2,2)>5),1,0) -IF(AND($F6>10,$F6<16,WEEKDAY(K6+$F6-2,2)>6),1,0) となってくれますので、そのほうがいいかもしれません。
その他の回答 (1)
- Siegrune
- ベストアンサー率35% (316/895)
## なんかややこしいことしているというか、あえてややこしくしているようなので ## もとのは置いておいて まず、要件として ・セルI6に、日付を入力 ・セルF6に"10日","11日",・・・"15日"のいづれかを入力。 ・セルK6には式、K6=I6+F6-2 とする。 意味:I6にF6で選択された日数を足して、 そこから2日前を自動的に表示する。 (セルF6は日付なの?数字なの?文字なの?という疑問はありますが、加算できる型だとする) ・セルk6の日付が、土曜、もしくは日曜日の場合は前の金曜日の日付を返す セルk6の式が、K6=I6+F6-2 で、"10日","11日",・・・"15日"いづれでも正しい結果がでるとすると k6 = I6+F6-2-IF(WEEKDAY(I6+F6-2,2)>5,1,0)-IF(WEEKDAY(I6+F6-2,2)>6,1,0) ででるはず。 注: -IF(WEEKDAY(I6+F6-2,2)>5,1,0) 土曜日か日曜日なら-1(前日)にする -IF(WEEKDAY(I6+F6-2,2)>6,1,0) 日曜日ならさらに-1(前日)にする 質問で、IF(ISNUMBER(1/DAY(I6)/DAY(I6+F6-2)),・・・,"") としている理由が気になりますが。 (セルF6が未入力のときエラーがでるのを防ぎたいなら、 k6 =IF(K6="","",上の式) とすればよい。)
補足
- - - - - - - - - - - - - - - - - - - (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: [済/未]