- ベストアンサー
IF関数の合わせ技について
お客様フォロー業務にあたって、エクセルの関数利用方法の質問です。 多分、IF関数とOR関数等の合せ技になるかと思います。 セルA1に『ニュースレター(1) 送付日』 セルB1に『ニュースレター(2) 送付日』 セルC1に『ニュースレター(3) 送付日』 セルD1に『次回送付予定』 以上、ニュースレター(1)~(3)の“いずれか最終送付日”データを基に、 D1『次回送付予定』に、真の場合、偽の場合を設定したいと思っております。 D1『次回送付予定』に、今日から20日以上経っているものは、『次回フォロー』 そして、20日以内のものは『フォロー無し』と表示させたいのです。 使用例 A1 B1 C1 D1 2008/10/1 2008/11/15 2008/11/30 次回フォロー 2008/12/15 2009/1/15 フォロー無し もし、以上ができない場合は、代替案などもご教授頂ければ幸いです。 すいませんがご存知な方、よろしくお願いします!
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
=IF(AND(MIN(A1:C1)>0,MAX(A1:C1)<TODAY()-19),"次回フォロー","フォロー無し") もしくは =IF(COUNT(A1:C1)=0,"",IF(MAX(A1:C1)<TODAY()-19,"次回フォロー","フォロー無し")) でいかがでしょうか?
その他の回答 (4)
#1です。 「スペース」の場合も有ったんですね…。 =IF(OR(A1="―",A1=" ",MAX(A1:C1)<=(TODAY()-20)),"次回フォロー","フォロー無し")
お礼
ご助力有難うございました!無事に設定することができました!! 何度も回答下さり、感謝してます!!
#1です。 補足読みました。 D1セルに =IF(OR(A1="―",MAX(A1:C1)<=(TODAY()-20)),"次回フォロー","フォロー無し") で、どうでしょう?
#1です。 =IF(MAX(A1:C1)<=(TODAY()-20),"次回フォロー","フォロー無し") でも、動きます。 因みに、日付もシリアル値で表すとただの数字なので、一番新しい日付が一番大きくなります。 そして、シリアル値では1日を1で表すので「-20」で20日前の日付を表しています。 希望の日付と違う場合は、「<=」を色々修正してみましょう。
補足
edomin2004さん、すいません・・・・・。。。 恥かしい事に#1の意味が分からず、状況が変わっておりません。。。 もう一声お願いします。
D1セルに =IF(MAX(A1:C1)<=(TODAY()-DAY(20)),"次回フォロー","フォロー無し") と入力して、下にコピー。
補足
早速の回答有難うございました!! 恐縮ですが、補足でお伺いしても宜しいでしょうか? データは今回、使用例に補足した3行目、4行目のように “スペース”の場合と、あえて送付を避ける為の記号として “―”([全]ダッシュ)の使用もございます。 その際、教えて頂いた数式では、共に『次回フォロー』と 表示されてしまいます。 これを空欄にする場合は、どのような数式になりますでしょうか? 当初からの質問内容は、絶対にできなければならないため 投稿する前に色々と調べてみたが、残念ながら見当たらず、 関数の書籍まで購入しましたが、解決できない事でした。 本当に助かります!! 今回も何卒、宜しくお願い致します!! 使用例 A1 B1 C1 D1 2008/10/1 2008/11/15 2008/11/30 次回フォロー 2008/12/15 2009/1/15 フォロー無し 次回フォロー ― 次回フォロー
お礼
ご助力有難うございます。無事に設定することができました。 ちなみに今回は、以下の数式を利用させて頂きました。 =IF(COUNT(A1:C1)=0,"",IF(MAX(A1:C1)<TODAY()-19,"次回フォロー","フォロー無し")) “スペース”や“―”の時に、『フォロー無し』にも『空欄』にも できるんですね! 本当に助かりましたよ!!有難う御座いました。