• ベストアンサー

エクセルで期限が切れそうになることを知らせる関数式

はじめまして、cartonと申します。 こちらのサイトには、大変お世話になっています。 期限が切れを知らせる関数を作りたいのですがうまくいきません。 『やりたいこと』 保守期限が満了になる3ヶ月前にシートに「契約満了間近」と表示させる。期限が過ぎると「契約満了」と表示させる。 sheet1の A1 2008年12月31日 B1 空白 A2 2008年8月31日 B2 契約満了間近 A3 2008年6月31日 B3 契約満了 =if(A1-now() <=1-90 ,"契約満了間近","")(A1-now() <=0 ,"契約満了","") よろしく、お願いします。

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

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

=if(A1-now() <=1-90 ,"契約満了間近","")(A1-now() <=0 ,"契約満了","") は =IF(A1-NOW() <=90,"契約満了間近",IF(A1-NOW() <=0,"契約満了","")) 直してみてください。 NOW関数はTODAY関数でも十分かと思います。

carton
質問者

お礼

hallo-2007さま 無事解決できました。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (1)

  • keirika
  • ベストアンサー率42% (279/658)
回答No.1

=IF(A1<=TODAY(),"契約終了",IF(A1<=DATE(YEAR(TODAY()),MONTH(TODAY())+3,DAY(TODAY())),"契約終了間近","")) ではどうでしょうか。

carton
質問者

お礼

keirika さま ご連絡ありがとうございます。 上記関数にて目的が達成できました。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • エクセルで期限の計算をしたい

    エクセルで、期限表を作成しております。 A列に月/年(例:2013年5月だと「05/13」と表示させたい) B列に36か月後の期限(例:「2016年4月」と表示させたい)と何も入力されていない空白セルの場合はは空白セルのままにしたい。 現在の状況は、 A列:表示形式(ユーザー定義:mm/yy) B列:=EDATE(A1,48-1) 以上のようにしておりますが、下記のような不具合が出てきています。 A列:05/13(2013年5月)は入力できても、05/14(2014年5月)と入力すると自動的に「06/13」となってしまう。 B列:A列は空白セルなのに、なぜか「1903年11月」と入ってしまいます。 どのようにしたらできますでしょうか? よろしくお願いいたします。

  • エクセル関数の式

    sheet1       A   B    C     D    E    F   1    2008  6月 2 3    日付   1     2     3     4    5       4    曜日   sun    mon    Tue    wed 5山田太郎   出勤  出勤  欠勤 6山田次郎   出勤  欠勤  出勤 ・ ・ 22山田一郎   出勤 欠勤  出勤 ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ B1の月を変えると曜日も変わります(日付は固定です)B5、6等の 出勤・欠勤はリスト表示から選択して入力しています。 sheet3    A  B C D E F G H I J K L M N 33  日    月   火    水    木    金    土 34   1    2   3    4   5    6   7 35   8    9   10   11   12   13   14 36  15   16   17   18   19   20   21 以下省略  行は33行目から始まっています ・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・ 曜日は固定でsheet1の月を変えると日にちの位置が月ごとに変わります 日月火水木金土の間に空白のセルがあります(B列D列、FHJL列) この日にちの隣の空白セルにsheet1の出勤・欠勤などを各日にち事に表示したいです 上記のカレンダーには一人分の出欠を表示したいです(同じカレンダーが人数分あります) 月ごとにsheet3の日にちの位置がずれてしまうので、うまく表示出来ません。 いい方法はないでしょうか?よろしくお願いします。

  • エクセル 関数の結果が日付になるようにする方法

    エクセル2003を使用しています。 現在、シートAのセルT20に、1月16日と入力すると シートBのセルA5に、自動的に1月16日と表示されるようになっています。 (シートBのA5の数式は、 =シートA!T20 です。) この場合、シートAのセルT20が空白の場合、 シートBのセルA5は、1月0日 と表示されます。 シートAで空白の場合は、シートBでも空白にしたいので、 シートBのセルA5の数式を =シートA!T20&IF(シートA!T20="","",) としました。 すると、結果が、40559 となってしまいます。 セルの表示形式を日付にしても、どうしても数字になってしまいます。 どうすればよいか教えてください。 よろしくお願いいたします。

  • Excelの関数について

    タイトルの通りなんですがExcelで 例:A1に 2014/8/1   B1に =NOW()  で C1に  B1がA1より大きくなったら"期限切れ"      B1がA1より1ヵ月前になったら"注意"      上記以外は空欄 この条件を自分なりにIFでやったのですが、できませんでした。 どなたかお教えください。よろしくお願いします。

  • エクセルの関数

    エクセルの関数ですが、 シート1の1行目は見出しが入っています。 C2~C267まで、あ店~け店までの9店舗の店名がランダムに入っています。 D2~D267まで、個人名が入っています。 いろんなデータが2行目から各列に入っています。 シート1のデータは日々更新します。 シート2にシート1のデータを反映したいのです。 シート2の1行目は見出し、 シート2のA2は あ店と入っています。A3~A54は空白(シート1に入っている あ店の個人は53人だという事でA3~A54は空白空白なっています。 A55に   い店  A56~A73は空白。 A74に   う店  A75~A93は空白。 A94に   え店 A95~A144は空白。 A145に  お店 A146~A161は空白。 A162に  か店 A163~A179は空白。 A180に  き店 A181~A212は空白。 A213に  く店 A214~A228は空白。 A229に  け店 A230~A254は空白。 シート2の  C列に シート1のM2から入ってる数値 0以下の人の名前をシート2のB2~B54までに データが0以下の人を入れ込みたいのです(よって、もし 0以下の人が10人だったら、B2~B11まで個人名が入って、B12~B54は名前は入らないて事になります) よって、シート2のB2~B54は、シート1の あ店のM列の 0以下の人を反映して表示したいのです 同じ要領で、シート2のD列にシート1のX列の数値の 1以上の人         シート2のE列にシート1のI列の数値の 1以上の人         シート2のF列にシート1の列の数値の 1以上の人 を反映して表示させたいのです このシート1は日々更新します シート2に随時反映するような関数を教えてください 宜しくお願いいたします

  • 【できれば至急で】エクセル関数の式で教えてください

    画像では、1つのシートに(シート1)(シート2)と記載していますが、実際は、別々のシートになります。 シート1に画像上記のような集計表があり、日々更新をしているのですが、その時に自動的にシート2にある内容が入力されるような関数が入っています。ただ、2010年は問題なく反映されていたのですが、2011年になり入金日を「例:2011/1/4」と入力をすると、シート2の日付部分には「1/0」と表示され、「シート1」の入金日が過去未入力のものが反映されてしまいます。シート1の入金日に「例:2011/1/4」と入力したら、自動でシート2の表が完成するような式を入れるにはどのようにしたら良いのでしょうか?実際に、2010年12月末まで問題なく使われていた関数を下へ書き出します。ちなみに、シート1の入金日は、2010年、2011年が区別されて入力しています。 (シート1) H2には、 =IF(AND(F2<>"",MONTH(G2)=シート2!$A$1),G2+ROW()/1000,"") (シート2) B3セルには、 =IF($B$1="","",IF(ISERROR(INDEX(Sheet1!G:G,MATCH(SMALL(Sheet1!H:H,ROW(B1)),Sheet1!H:H,0))),"",INDEX(Sheet1!G:G,MATCH(SMALL(Sheet1!H:H,ROW(B1)),Sheet1!H:H,0)))) C3セルには、 =IF($B3="","",INDEX(Sheet1!D:D,MATCH(SMALL(Sheet1!$H:$H,ROW(B1)),Sheet1!$H:$H,0))) D3セルには、 =IF($B3="","",INDEX(Sheet1!F:F,MATCH(SMALL(Sheet1!$H:$H,ROW(G1)),Sheet1!$H:$H,0))) の数式が入っています。 12/1~12/31まではシート2の表が反映されていたのですが、シート2のB1に「1月」を入力したところ、画像のように、シート1で入金日が空白(未入金状態)の場合も、シート2に反映されてしまいました。

  • 関数で判断して、空白にするような式を組み立てかた。

    Sheet1に A B C D 1 a 2 b 3 4 5 とあります。 Sheet2のA1に関数”=Sheet1!A1”を入力し、A2,A3,A4以下へコピーするとSheet2は A B C D 1 a 2 b 3 0 4 0 5 0 となりました。これをA3,A4,A5以下に0を表示されず、空白にするためにIF関数で判断して、空白にするように式を教えていただきたく。よろしくお願いします。

  • エクセル関数式、入力範囲の一番右端の値を返すには?

    エクセル関数式質問です。 Sheet1のセルA1値、A2値、A3値、A4値を,Sheet2のセルA1に「=Sheet1!A1」,セルB1に 「=Sheet1!A2」,セルC1に「=Sheet1!A3」,セルD1に「=Sheet1!A4」という仕組みを作っ ておいて、Sheet1のセルA1からA4に人の名前をそれぞれ入力したとします。 例えば、Sheet1のセルA1に「田中」、セルA2に「中村」、A3は空白、A4も空白としたと き、Sheet2のセルA1には「田中」,セルB1には「中村」,セルC1に「空白」,セルD1に「空 白」(この場合、これらの空白は空白に見えても実際は、「Sheet1!A*」が隠されている わけですが…)となります。 以上の条件において、Sheet2の別セルに、今、Sheet2のA1からA4の範囲に表示されてい る名前のうち、常に右端の名前を表示させたい場合、この場合は「中村」です。その右 となりは空白ですので。仮にA3に「大山」と表示されたてA4は空白の場合は、もちろん 「大山」になります。この別セルに入力する関数式を教えてください。宜しくお願いし ます。

  • エクセルの使用期限の付け方

    No.361737を参照して、 エクセルに使用期限をつけようとしたのですが、 日付の反応がうまく作動しません。 下記のVBAのまま使用すると どのような日付でもロックがかかり メッセージボックスが表示され Nowのあとの【<】を【>】にすると どのような日付でもロックが解除されてしまいます。 このような場合、どこかを修正すればうまく作動するようになるでしょうか? よろしくお願いします。 下記のVBAはNo.361737よりの抜粋です。 Private Sub Workbook_Open() If Now < "02/09/19" Then 'ここで期限を決める  ActiveWorkbook.Unprotect "AAA" 'ブック保護解除   Sheets("Sheet1").Visible = True   Sheets("Sheet1").Activate   Sheets("Sheet2").Visible = False  Else'----期限後ならばメッセージを表示   MsgBox "期限切れ"  End If ActiveWorkbook.Protect "AAA" End Sub

  • エクセルの関数式で・・・

    このような表を作りました    A   B   C   D   E・・・ 1  a   a    b   a    c・・・ 2 12:00 8:00 11:00 4:00 12:30・・・ 3 (空白)PM (空白) AM (空白)・・・ A1にaと入力すれば12:00。B1にaと入力し、B3にPMと入力すれば8:00と計算できる表をVLOOKUP関数で作りました。 これに加えて、例えばA4にaを入力したらA2の値(時間です)から2時間引いた値をA2に、C4にbを入力したらC2の値から2時間引いた値をC2に表示するためにはどうしたら良いでしょうか? A4に入力したものに対応するA1の値から時間を引いていきたいのです。 よろしく御指導下さい。

専門家に質問してみよう