[[20140531184051]] 『資格証の4年毎の更新の管理と予告』(チクリン) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『資格証の4年毎の更新の管理と予告』(チクリン)

一つのセルに二つ以上の表示形式では有り難うございました。

資格更新の管理をしたいのです。
セル A4 、2000/4/1と入っているとする。 4年毎の更新検定が必要でその予告をする。
2004 2008 2012 2016 と更新年をむかえますが、次回の2016年を予告したい。

最初の資格取得日をもとに、4年毎の更新すべきその月を算出したい。

4年後なら、=EDATE(A4,48)とすれば、2004/4/1 となります。

今年以降の近隣年の更新年を調べたいのです。
この場合、今年の年から計算する起算年を引いて4年の月数の48で割り、小数点以下を切り捨て1を足し、その数に12を掛けた数で、=EDATE(A4,??)と思ったのですが、どうも数式に不具合があり上手く計算されません。
一つのセルの式ではかなり複雑になり難しそうです。ないか、簡単な方法がありそうですがどうでしょうか。
また、更新研修を受講した人には○を入力し、次回の受講年を予告する。研修を受講していない人には無効を表示し予告しない事が出来ればと思います。

< 使用 Excel:Excel2010、使用 OS:Windows7 >


 更新日前後で誤差が出るかもしれませんが、
=DATE(YEAR(A1)+CEILING((TODAY()-A1)/365.25,4),MONTH(A1),DAY(A1))
 などでできないでしょうか。
(Mook) 2014/05/31(土) 20:12

 こんな感じかな

 =DATE(YEAR(A1)+CEILING(DATEDIF(A1,TODAY(),"y"),4),MONTH(A1),DAY(A1))

 =LOOKUP(TODAY()+1461,DATE(YEAR(A1)+ROW(A1:A20)*4,MONTH(A1),DAY(A1)))

 2100年までは こんな感じでもいいかな
 =A1+CEILING(C1-A1,1461)

(By) 2014/05/31(土) 20:40


Mookさん、Byさんありがとうございます。どれも期待している結果がだせて在り難くおもいます。
ただ、私の知識では理解ができなく、なぜそうなるのかをこれから勉強していこうと思っています。

CEILING(数値, 基準値) 関数で、
=AM4+CEILING(TODAY()-AM4,1461) とするところ。
また、
LOOKUP(検査値 ,検査範囲 ,[対応範囲])
LOOKUP(TODAY()+1461,DATE(YEAR(A1)+ROW(A1:A20)*4,MONTH(A1),DAY(A1)))
いろいろな記述法があるのですね、TODAY関数に1461を足す、これは四年分の日数うということですか?
検査範囲の ROW(A1:A20)がよく分らないのです。

しかし、取り合え目的をかなえられたので感謝します。

(チクリン) 2014/05/31(土) 21:19


 >TODAY関数に1461を足す、これは四年分の日数うということですか?
 はいそうです 1461= 365*4+1 (+1は閏年分です)

 >検査範囲の ROW(A1:A20)がよく分らないのです。
 ROW(A1:A20) は {1;2;3;4;5;6;7;8;9;10;11;12;13;14;15;16;17;18;19;20} という配列です

 DATE(YEAR(A1)+ROW(A1:A20)*4,MONTH(A1),DAY(A1)) は 
 B1 に DATE(YEAR(A$1)+ROW(A1)*4,MONTH(A$1),DAY(A$1)) といれ B20までコピー
 範囲 B1:B20 と同じことです

 ですので LOOKUP(TODAY()+1461,DATE(YEAR(A1)+ROW(A1:A20)*4,MONTH(A1),DAY(A1))) は
 LOOKUP(TODAY()+1461,B1:B20) と同じことをしています
(By) 2014/05/31(土) 22:01

 回答に問題がありましたので下記の式は使用しないで下さい

 >=DATE(YEAR(A1)+CEILING(DATEDIF(A1,TODAY(),"y"),4),MONTH(A1),DAY(A1))
 こちらに訂正下さい
 =DATE(YEAR(A1)+FLOOR(DATEDIF(A1,TODAY(),"y"),4)+4,MONTH(A1),DAY(A1))

 因みに、質問者の最初の考え方で
 >この場合、今年の年から計算する起算年を引いて4年の月数の48で割り、小数点以下を切り捨て1を足し
 >その数に12を掛けた数で、=EDATE(A4,??)と思ったのですが

 この考え方で式を作れば
 =EDATE(A1,FLOOR(DATEDIF(A1,TODAY(),"m"),48)+48)

(By) 2014/06/01(日) 07:58


わざわざ間違いの訂正回答までありがとうございます。
エクセルは奥が深いですね。勉強の手ごたえがあり過ぎるぐらいです。
(チクリン) 2014/06/01(日) 09:46

=AU4+CEILING(TODAY()-AU4,1461)
=DATE(YEAR(A1)+FLOOR(DATEDIF(A1,TODAY(),"y"),4)+4,MONTH(A1),DAY(A1))
この式で、けいさんされるのですが、空白の場合 2015/12/31が返ってきます。ここを空白にすることはできないでしょうか。

そこで、
=IF(AU6="","",DATE(YEAR(A1)+FLOOR(DATEDIF(A1,TODAY(),"y"),4)+4,MONTH(A1),DAY(A1)))
としました。これで、空白のときは、空白を返すようになりまいた。
(チクリン) 2014/06/01(日) 21:02


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.