2014年11月11日火曜日

DATEDIFという関数

 Excelの問題集を解いていたところ、入社日と現在日付から勤続年数を調べるための関数を答えさせる問題に当たったのですが、まず考えたのが単純に引き算をすること。Excelは1日を数値1として扱うので、引き算でわかった勤続日数を365で割ればまぁほぼほぼ間違いのないでしょう、と。でもこれは試験でこういうあいまいな回答は許されないらしい。関数使ってないし。実際はうるう年があってここをまたいでいるとまれに間違った勤続年数になると思う。

 次にヘルプで調べるとYEARFRACという関数を知った。これはやっていることは上と同じ。でも年数の取得に関してはうるう年を含めてうまくやってくれる。実際に上の引き算と比較して微妙な日数にしても正しい解が得られる。

 で、問題集の回答を見てみると、DATEDIFというヘルプにも乗っていない関数を使えと書かれている。なにそれ?
 ググると、昔Lotus等との互換性を保つためにひっそり実装されてずっと続いている関数、と。そんなのいいの?問題集に載せちゃって。


生年月日から年齢を計算−DATEDIF関数
http://www.relief.jp/itnote/archives/000423.php

 MOSにはどちらで回答すべきなんだろうか。YEARFRACだよなぁ。多分。

0 件のコメント:

コメントを投稿