コンサルティングは自転車に乗って⇒企業年金総合プランナーのブログです。

企業年金・退職金制度全般に関するご相談を行っています。
お気軽にご連絡下さい。

DATEDIFを使った計算の不具合・・・→マイクロソフトでの丁寧な対応で解決しました。

2009-09-29 07:36:46 | その他

退職金・企業年金制度の現状分析には、DATEDIF関数が欠かせません。
現在年齢、入社年齢、勤続年数等は、このDATEDIF関数を使って求めます。

今使っているパソコンは、エクセル2007が入っています。
ある特定の年月日を入力すると、DATEDIF(開始日、終了日、”md”)
で、『142』というあり得ない日数が計算されました。
DATEDIF(開始日、終了日、”md”)は、月に換算しきれない端数の日数
を求めるもものですので、『31』未満でないとおかしいことになります。

この不具合について、ご存知の方も多いと思いますが、私は初めての経験
でしたので、びっくりしました。

そこでマイクロソフト社に問い合わせてみました。
以下マイクロソフトの回答を掻い摘んで説明してみます。
①DATEDIFは、マイクロソフトのエクセルには入っていない。
 →そのとおりで、いちいちDATEDIFと入力する必要があります。
②DATEDIFはLotus1-2-3(ロータスワンツースリー)社のソフトにある
 関数だそうです。
③よって、マイクロソフトのエクセル上で使うと、一定の条件のもとであり得
 ない数字となるそうです。
④あり得ない数字が起こるのは、”yd”、”md”という、年数とか月数に換算
 しきれない日数を求めるときに起こります。
⑤月を跨いでの計算、月末判定といった条件の、ある特定の年月日で不具
 合が発生します。閏年の影響を受けることが原因の一つだそうです。

ということで、不具合が発生した時に使う計算式を教えてくださいました。
関数を組み合わせたもので、結構長いものです。が、あり得ない数字が出た
時には、この計算式により解決できるようです。

但し、教えていただいた不具合用の計算式は『2007』では使えるけれども、
それ以前のバージョンでは、使えないということでした。
『2007』以前のバージョンには入っていない関数を使っているためです。