電子書籍の厳選無料作品が豊富!

DATEDIF関数はどうしてポップヒントに出てこないんですか?

A 回答 (1件)

DATEDIFは非標準の関数、しかもバグがある!、そうですね、、、



No.50 DATEDIFの謎を追え(1)~DATEDIF関数の真実
2007/12/30
http://www.niji.or.jp/home/toru/notes/50.html
EXCELには経過年、経過月、経過日を計算するDATEDIFという関数があります。雑誌やWEB等でも紹介されていますのでご存知の方も多いと思います。一様に経過月の計算にバグがあるので使用する際は注意した方がいいとの記述があります。なぜ、バグが存在する関数をマイクロソフトがほっらかしにしておくのでしょう?調べていくとこの関数は非公開関数であること。ロータス1-2-3との互換のために作られた一時しのぎの関数であることがわかりました。普通ならこれであーそうなんだと右から左に受け流してしまうところですが、今回はそうは問屋が卸しませんでした。
DATEDIF関数を使っていくつかテストをしてみましたがバグの全体像がつかめません。EXCELのDATEDIF関数のオリジナルは1-2-3の@DATEDIF関数です。そこで、うずもれたCDの山からスーパーオフィス98を探し出し1-2-3をインストールしてみました。

No.51 DATEDIFの謎を追え(2)~DATEDIF関数の実装(VBA編)
2007/12/30
http://www.niji.or.jp/home/toru/notes/51.html
前回ではEXCElのDATEDIF関数とそのオリジナルであるロータス1-2-3の@DATEDIFについてテスト結果を比較しいったい何が問題なのか?本来DATEDIF関数はどういった結果になるべきなのについて検討してきました。今回はその結果を踏まえてDATEDIF関数の本来あるべき姿をVBAで実装したいと思います。
ところでVBAにはFが1つ多いDATEDIFFという名前の関数が存在します。DATEDIF関数と似ているようで似ていない紛らわしい関数です。全く別物の考えた方が無難で、例えば年数をカウントする"yyyy"オプションでは1日でも年が変われば1年とカウントします。"y"オプション(および"d"オプション)は年数ではなく通算日数をカウントします。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!