- ベストアンサー
エクセルで入力した日より遡った日を別のセルに表示させたい
旅行申込書のフォームで出発日を入力すると指定されたセルに取消料発生日を表示させたいのです。出発日(入力日)の前日から起算して30日目から取消料が発生します。(たとえば6月30日出発ですと、6月29日から数えて30日前で5月31日と表示させたいのです。)さらに、欲を言えば4月27日~5月6日、7月20日~8月31日、12月20日~1月7日の間に出発する場合は、30日前ではなくて40日前を表示させたいのです。宜しくお願いします。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>ただ、この期間限定で40日前に表示させる方法は難しそうですね IF関数に挑戦してみましたが、現時点でうまくいってません^^; いろいろやり方はあるとは思いますが、 例えば GW、年末等の種別、始期と終期をそれぞれC列、D列、E列に入力し、F列に=AND(A$1>D1,A$1,E1)と入力し下にコピーすれば、F列に特定期間内かどうかの判定結果が出ます。 出発日は1日だけですので、G1に=IF(OR(F1:F3),1,0)として結果が1の場合の時だけ40日にすればよいので、 =A1-IF(G1=1,40,30)で可能です。 もっとスマートなやり方もあるかと思いますが、これが比較的単純でわかり易いと思います。
その他の回答 (2)
a1に検索日、d1=1/1,d2=1/7 e1=5/1,e2=5/7 f1=12/20,f2=2009/1/7 の表を作ります。 b1=if(and(a1>=d1,a1<=d2),a1-40,if(and(a1>=e1,a1<=e2),a1-40,if( and(a1>=f1,a1<=f2),a1-40,a1-30))) どうでしょうか。
- shintaro-2
- ベストアンサー率36% (2266/6245)
>出発日(入力日)の前日から起算して30日目から取消料が発生します。(たとえば6月30日出発ですと、6月29日から数えて30日前で5月31日と表示させたいのです。) a1に6/30と入力してあれば "=a1-30"と入力しておけばすみます。 >さらに、欲を言えば4月27日~5月6日、7月20日~8月31日、12月20日~1月7日の間に出発する場合は、30日前ではなくて40日前を表示させたいのです。宜しくお願いします。 土日だけでしたら何とかなりますが、GWや特定企業のお休み他に対応する場合は、特定の日付データを表にして対応するのがわかり易いです。 例えば、旅行日が4/27-5/6の場合は遡る日を40日に設定するとかは if文、offset、vlookup他の手段で対応可能なはずです。
お礼
早速のアドバイスありがとうございます。 おかげさまで、30日前の表示方法はわかりました。 ただ、この期間限定で40日前に表示させる方法は難しそうですね IF関数に挑戦してみましたが、現時点でうまくいってません^^;