• ベストアンサー

エクセルのアラート設定

エクセルで、(A1)に日付を入れ、(A2)に期限を入れ、(A3)に(A2)の期限のさらに1ヶ月前にアラートを表示する、というような設定は可能でしょうか。 具体的なイメージとしては、(A1)2011年7月30日、(A2)1ヶ月、とすると、(A3)では2011年6月1日になるとアラートが表示される(表示は、「○」とか「!」で構いません。)、という感じにできたらと思ってます。 ご教示頂けると幸いです。よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.6

 ANo.1です。  申し訳御座いません、質問内容を勘違いしておりました。  アラートが表示される最初の日が、2011年6月1日ではなく、2011年5月31日ならば多少楽だったのですが、A1で指定した日付の、A2で指定した期間だけ前の日、の翌日の、更に1ヶ月前の日以降になると、アラートを表示させると考えれば宜しいのですね?  Excelには、関数の中に関数を入れ子にして使う事が出来る限界があり、Excelのバージョンが、Excel2007よりも前のバージョンである場合には、7重の関数までにしか出来ませんので、もし、質問者様が御使用されているExcelのバージョンが、Excel2007よりも前のバージョンである場合には、一旦、別のセル(例えばA4セル)に期限日を表示させてから、A4セルに表示されている日付の翌日の、更に1ヶ月前の日以降になると、アラートを表示させる様にした方が良いと思います。  まず、A4セルに次の関数を入力して下さい。 =IF(AND(ISNUMBER(A$1),OR(ISNUMBER(FIND("年",A$2)),ISNUMBER(FIND("月",A$2)),ISNUMBER(FIND("日",A$2)))),DATE(YEAR(A$1)-IF(ISNUMBER(FIND("年",A$2)),LEFT(A$2,FIND("年",A$2)-1)+0,0),MONTH(A$1)-IF(ISNUMBER(FIND("月",A$2)),SUBSTITUTE(MID("年"&A$2,FIND("月",A$2)-2+ISNUMBER(MID(A$2,FIND("月",A$2)-1,1)+0),2),"年",)+0,0),DAY(A$1)-IF(ISNUMBER(FIND("日",A$2)),MID(A$2,IF(ISNUMBER(FIND("月",A$2)),FIND("月",A$2),IF(ISNUMBER(FIND("年",A$2)),FIND("年",A$2),0))+1,LEN(A$2)-IF(ISNUMBER(FIND("月",A$2)),FIND("月",A$2),IF(ISNUMBER(FIND("年",A$2)),FIND("年",A$2),0))-1)+0,0)))  次に、A3セルには、次の関数を入力して下さい。 =IF(ISNUMBER(A$4),IF(TODAY()<DATE(YEAR(A$4+1),MONTH(A$4+1)-1,DAY(A$4+1)),"","○"),"")  後は、A1セルに日付、A2セルに期限を入力しますと、A4セルに期限日が表示され、期限日の1ヶ月前の日を過ぎると(期限日の丁度1ヶ月前の日は含まず)、A3セルに「○」が表示されます。  尚、上記の関数では、A2セルに入力する期限が、「1ヶ月」や「2ヶ月」だけではなく、「1年」や「4月」、「5か月」、「11ヵ月」、「03カ月」、「2年12箇月」、「1年3月10日」、「1230日」等々にも対応しています。(但し、「2/10/20」の様に、「年」、「月」、「日」の何れの文字も含まれていない場合には対応していません)  それから、もし、質問者様が御使用されているExcelのバージョンが、Excel2007以降のバージョンである場合には、関数を入れ子に出来る限界が、64重にもなりますから、A3セルの関数と、A4セルの関数を一纏めにして、A4セルは使用せずに、A3セルだけでアラートを表示させる事も可能です。  その場合のA3セルの関数は、次の様なものとなります。 =IF(AND(ISNUMBER(A$1),OR(ISNUMBER(FIND("年",A$2)),ISNUMBER(FIND("月",A$2)),ISNUMBER(FIND("日",A$2)))),IF(TODAY()<DATE(YEAR(DATE(YEAR(A$1)-IF(ISNUMBER(FIND("年",A$2)),LEFT(A$2,FIND("年",A$2)-1)+0,0),MONTH(A$1)-IF(ISNUMBER(FIND("月",A$2)),SUBSTITUTE(MID("年"&A$2,FIND("月",A$2)-2+ISNUMBER(MID(A$2,FIND("月",A$2)-1,1)+0),2),"年",)+0,0),DAY(A$1)-IF(ISNUMBER(FIND("日",A$2)),MID(A$2,IF(ISNUMBER(FIND("月",A$2)),FIND("月",A$2),IF(ISNUMBER(FIND("年",A$2)),FIND("年",A$2),0))+1,LEN(A$2)-IF(ISNUMBER(FIND("月",A$2)),FIND("月",A$2),IF(ISNUMBER(FIND("年",A$2)),FIND("年",A$2),0))-1)+0,0))+1),MONTH(DATE(YEAR(A$1)-IF(ISNUMBER(FIND("年",A$2)),LEFT(A$2,FIND("年",A$2)-1)+0,0),MONTH(A$1)-IF(ISNUMBER(FIND("月",A$2)),SUBSTITUTE(MID("年"&A$2,FIND("月",A$2)-2+ISNUMBER(MID(A$2,FIND("月",A$2)-1,1)+0),2),"年",)+0,0),DAY(A$1)-IF(ISNUMBER(FIND("日",A$2)),MID(A$2,IF(ISNUMBER(FIND("月",A$2)),FIND("月",A$2),IF(ISNUMBER(FIND("年",A$2)),FIND("年",A$2),0))+1,LEN(A$2)-IF(ISNUMBER(FIND("月",A$2)),FIND("月",A$2),IF(ISNUMBER(FIND("年",A$2)),FIND("年",A$2),0))-1)+0,0))+1)-1,DAY(DATE(YEAR(A$1)-IF(ISNUMBER(FIND("年",A$2)),LEFT(A$2,FIND("年",A$2)-1)+0,0),MONTH(A$1)-IF(ISNUMBER(FIND("月",A$2)),SUBSTITUTE(MID("年"&A$2,FIND("月",A$2)-2+ISNUMBER(MID(A$2,FIND("月",A$2)-1,1)+0),2),"年",)+0,0),DAY(A$1)-IF(ISNUMBER(FIND("日",A$2)),MID(A$2,IF(ISNUMBER(FIND("月",A$2)),FIND("月",A$2),IF(ISNUMBER(FIND("年",A$2)),FIND("年",A$2),0))+1,LEN(A$2)-IF(ISNUMBER(FIND("月",A$2)),FIND("月",A$2),IF(ISNUMBER(FIND("年",A$2)),FIND("年",A$2),0))-1)+0,0))+1)),"","○"),"")

poprockj
質問者

お礼

すごいっ!確かにできました!ありがとうございました。

その他の回答 (5)

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.5

No.4です! たびたびごめんなさい。 投稿した後で数式の間違いに気づきました。 せっかくA2セルに数値を入力するようにしているのに、それを利用していませんでした。 =IF(COUNTBLANK(A1:A2),"",IF(TODAY()>=EDATE(A1,-A2),"!","")) に訂正してみてください。 何度も失礼しました。m(_ _)m

poprockj
質問者

お礼

とんでもないです。こちらも非常に参考になりました。ありがとうございます!

  • tom04
  • ベストアンサー率49% (2537/5117)
回答No.4

こんばんは! 横からお邪魔します。 こういうコトですかね? A2セルには月数(単に数値のみ)を入力します。 A3セルを =IF(COUNTBLANK(A1:A2),"",IF(TODAY()>=EDATE(A1,-1),"!","")) としてみてはどうでしょうか? 尚、EDATE関数を使用するにあたって当方使用のExcel2003以前のバージョンでは メニュー → ツール → アドイン → 「分析ツール」にチェックを入れておく必要があります。 的外れならごめんなさいね。m(_ _)m

poprockj
質問者

お礼

ありがとうございます!参考になりました。

  • KURUMITO
  • ベストアンサー率42% (1835/4283)
回答No.3

ご質問の意味がよくわかりませんがA3セルには次の式を入力してはどうでしょう。 =IF(A2="","",IF(TODAY()>=DATE(YEAR(A2),MONTH(A2)-1,DAY(A2)),"○",""))

  • hallo-2007
  • ベストアンサー率41% (888/2115)
回答No.2

エクセルには Today()関数というのがあります。 仮に A4セルに =today() と入れてみてください。 今日の日付が出ます。明日、ファイルと開くと明日の日付です。 1月前の日付ですが A5セルに =DATE(YEAR(A1),MONTH(A1)-A2,DAY(A1)) となります。 アラートのセルですが =IF(A4>A5,"○","") となります。この式を一つにまとめると =IF(TODAY()>DATE(YEAR(A1),MONTH(A1)-A2,DAY(A1)),"○","") A1,A2セルが未入力の場合を考慮すると =IF(OR(A1="",A2=""),"",IF(TODAY()>DATE(YEAR(A1),MONTH(A1)-A2,DAY(A1)),"○","")) とかになります。 式の組み立てを理解して自分ものにしてください。

poprockj
質問者

お礼

わかりやすい解説、ありがとうございます。教わるだけではだめですね、勉強いたします!

  • kagakusuki
  • ベストアンサー率51% (2610/5101)
回答No.1

 A3セルに次の関数を入力されると良いと思います。 =IF(ISNUMBER(A2),IF(A1>DATE(YEAR(A2),MONTH(A2)+1,DAY(A2)),"","○"),"")

poprockj
質問者

補足

早速ご回答頂きありがとうございます! そして、ごめんなさい。こちらの質問が、わかり難かったみたいです。 (A1)2011年7月30日、(A2)1ヶ月、と入れておけば、2011年6月1日以降は(A3)上で自動でアラートがずっと表示される、という感じにできたらと思ってます。(A2)は、具体的な日付でもかまいません。 kagakusukiさんからご教示頂いた方法を試したところ、(A1)に2011年10月30日、(A2)に1ヶ月前の日付である2011年10月1日、と入れたら、本日(2011/7/19)の時点でアラートが出てしまいました。この場合は、2011年9月1日にアラートが表示されるようにしたいです・・。 操作が間違っていればご指摘頂ければと存じます。 わがままを言ってすみません、よろしくお願いいたします。

関連するQ&A

  • Excelで期限を設定したいのですが・・・

    Excelで期限を設定したいのですが・・・ はじめまして。 エクセルが不得手で、ネットで検索していてもいまいち方法がわからなかったので、 こちらで質問させていただきました。 下記のように、案件ごとに期限の設定が決まっており、 メイン表の使用日の欄に日付を入力すると、申込期限月に その案件の期限が表示されるようにしたいのですが、 どのような方法がありますでしょうか?(※案件の種類は10種類ぐらいあります。) 恐縮ですが、お分かりになりましたらお答えいただければ 幸いです。宜しくお願い致します。 メイン表 (案件)   (使用日)  (申込期限月)○ 案件1   2010/10/15   2010/2 案件2   2010/11/15   2010/4 案件3   2010/12/15   2009/10 ・ ・ ・ 別表 (案件) 案件1   8ヶ月前 案件2   7ヶ月前 案件3   14ヶ月前 

  • Excelで在職年月数が表示されるように設定したい

    Excelで質問です。 ある日付から年数と月数を出したいのですがうまくいきません。 例えば、セルA1に入社した日付(例えば2000年4月)があり、B1に○年○ヶ月(例えば7年1ヶ月)と在職年月数が表示されるように設定したいのですが、うまくいきません。 DATEDIF関数を使ったら年数は表示されても月数は出ません。 何か良い方法はあるのでしょうか?

  • エクセルの指定日付をアラート表示したい

    エクセルの指定したセルに日付(未来日)が入っています。その日付になったらアラート表示をしたいのですが、これは可能でしょうか? 【したい事】 (1);Sheet1にSheet2~Sheet10までのデータのサマリー情報があります。 (2);Sheet2~Sheet10のC列に日付(過去日・本日・未来日)が入っています。 (3);(2)のC列に入っている未来日日付が本日になったら、(1)のサマリーデータにアラート表示をしたいです。Sheet1内のSheet2名情報にアラートされていれば問題ないです。 表現の仕方も解らず、ちんぷんかんぷんで誠に恐れ入りますが、宜しくお願い申し上げます。

  • <エクセル>計算式の設定の仕方

    WindowsXPを使っています。 エクセル2003のソフトを使っています。 エクセルでの計算式の設定の仕方が分からないので、教えて下さい。 エクセルで明細書を作成しているのですが、その明細書の中で日付を設定 した時に、他の所にも表示出来るように設定をしたいです。 明細書の左上部分に作成した日付を記入すると、タイトルになっている○月 入金明細書と表示されて、他の○月と○月にも自動的に表示されるように したいです。 また、作成した日付を入力されると、 (平成○年○月○日~平成○年○月○日入金分)と自動的に表示されるように 設定したいです。 設定の仕方が分からないので、詳しく教えて下さい。

  • エクセルのセルの書式設定の日付について

    エクセルのセルの書式設定の日付について セルの書式設定が「標準」でセルに20080825と入っています。 セルの書式設定で「日付」を選択し ・平成**年**月**日 とか ・****/**/** とか ・**年**月**日 にを選択しても セル表示は##############と表示されます。 どうすると 「日付」で選択した日付表示にできますか? お願いします。

  • エクセルで平成元年と表示させるには

    エクセルの日付で平成元年2月1日と表示させたいのですが、平成1年2月1日となってしまいます。セルの書式設定→ユーザー定義などを使って「元年」と表示できるようにできないものでしょうか。

  • エクセルの日付計算

    エクセルの日付計算 A1に1ヶ月、2ヶ月と、プラスしたい月や年を記載します。 A2には、ある日の日付が入っています。 A3には、A1+A3で表示させたいのですが・・・・。 1ヶ月=何日ではなく、A2の日付プラス1月で月だけをプラスさせたいのです。 日はそのままで、月だけをかえるにはどうしたらいいでしょうか? おしえてください。

  • EXCELでの日付付与

    EXCELでたとえば、一つの様式に毎日とある物品を授受する為の様式を作りました。 それは一ヶ月で一枚を使うようになっています。 その様式の欄にその付毎の日付を一ヶ月分入れるようにしたいのです。 別なセルにてプルダウンにて1月などと選択するようになっていて、それも閏年に対応したいのですが。 A1に1日を入力しA2に=A1+1とすれば次の日の日付が表示されますが、これですと月をまたいで表示される日もあるということになります。要は1月31日の次の日である2月1日が表示されることもあるはずです。 そうではなく1月分だけが欲しいときは1月31日以降は表示されないようにしたいのです。 うまく説明出来なく申し訳ありませんがご回答いただければ幸いです。

  • エクセルファイルの使用期限の設定について

    こんにちわ。 VBAを現在、勉強中です。 エクセルのVBAを使ってファイルに使用期限を設定できるのでしょうか? 出来れば設定日付以降は開かないようにしたいのですが、どうでしょうか? そうした場合、パソコンの日付を変更するとやはり開いてしまうのでしょうか? 皆様のお力をぜひお貸し頂ければ幸いです。

  • Excelの書式設定

    Excelの書式設定のダイアログボックスの中の「表示形式」→「日付」→*2001年3月14日の先頭についている「*」って意味があるんですか?ついているものとついていないものと何か違いはあるのでしょうか?どなたかお教え頂きたいと思います。

専門家に質問してみよう