• ベストアンサー

関数

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

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

  • ベストアンサー
回答No.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"オプション)は年数ではなく通算日数をカウントします。

関連するQ&A

  • DATEDIF関数を代替する関数が無いのは何故?

     DATEDIF関数には幾つかのバグがある事が知られていますが、それならば何故Microsoft社は、DATEDIF関数を残した上で、DATEDIF関数と同じ機能を持ちながらバグが無い関数をExcelに用意しないのでしょうか?  その様な関数が無いため、バグを避けるためにDATEDIF関数を使わずに期間を求めるのが面倒です。 【参考URL】  なにぬねのーつ > 50. DATEDIFの謎を追え(1) ~ DATEDIF関数の真実 2007/12/30   http://www.niji.or.jp/home/toru/notes/50.html

  • 関数Datedifについて

    関数DATEDIFについて 2003ではありましたが2007では見当たりません しかしWindows7にある2007ではDatedifが利用できます だたし関数の一覧にはありません またXPに乗せている2007では受け付けてくれません 一体どうなっているのでしょうか、教えてください また関数のちがいがせつめいされている資料がありましたらおしえてください おねがいいたします。

  • エクセル関数

    os winxp Office2003でエクセルの関数でDATEDIFを使用したいのですがありません。 DATEDIF関数はどこにあるのでしょうか? 教えてください。

  • DATEDIF関数とDETEDIF関数

    いつもお世話になっております。Excelの問題集(?)を解いていたのですが、DETEDIF関数なるものが解説に出てきました。しかし、解説と同じように関数に入力しても#NAME?となってしまいます。日付に関する問題なので私個人としてはDATEDIF関数を使えばいいと思ってたのですが、やはり解説どおりDETEDIF関数が正しくて、#NAME?となるのは私の関数の使い方がどこか変だからなのでしょうか? そもそもDETEDIF関数というのを初めて見たのですが、[DETEDIFとDATEDIFの違い」ってどこにあるのでしょうか。 DATEDIF関数はLotus1-2-3独自の関数だと記憶しておりますが、DETEDIFもそうなのでしょうか? 質問ばかりになってしまいましたが、宜しくお願いいたしますm(__)m

  • 関数のDATEDIFに替わるものについて教えてください。

    関数のDATEDIFに替わるものについて教えてください。 入社年月日から今現在の勤続年数を『何年何ヶ月』と表示したいのですが、 エクセル2000にDATEDIF関数がありませんでした。 関数が苦手なので分かりやすく教えてください。 よろしくお願いします。

  • エクセル2002の関数

    エクセル2002を利用しているのですが、関数一覧、ヘルプにも、DATEDIF関数が表示がありませんが、なぜ関数一覧、ヘルプに表示が無いのでしょうか、またほかにもこのようになっている関数があるのでしょうか??? 経過年数などのDATEDIF関数を知っていたから良かったですが、知らなければ関数一覧、ヘルプを検索していたでしょう、適当な関数が見当たらなかったでしょう。

  • DATEDIF関数について

    先程、エクセルについて質問し、DATEDIF関数というものを教えて頂きました。 問題は解決したのですが、関数の一覧を見ても「DATEDIF」という名前のものは見つかりません。先ほどの問題は、手入力でなんとかなったのですが、この関数を使うには手入力するしかないのでしょうか?宜しくお願いします。

  • エクセル2007で、DATEDIF関数が認識しない

    現在、パソコンにエクセル2007が入っています。 本(よくわかるエクセル2007)を参照に、勉強しているのですが、DATEDIF関数が認識しないようなのです… =DATE まで、直接入力すると、選択できる関数として、「=DATE」と「=DATEVALUE」しか表示されません。 ※ 添付画像は、=DAまでを入力した時の選択できる関数です。 =DATEDIFが出てこないので、直接、=DATEDIFまで入力し、=DATEDIF(開始日,終了日,"単位")を入れて、実行キーを押すと、当然ながら?#NAME?と出てしまいます。 そこから想像するに、自分のエクセル2007には、=DATEDIF関数は入っていないのか、又は、=DATEDIF関数が使えるようになっていない?と想像したのですが、解決方法が解りません。 原因と解決策の解る方、是非、アドバイスください。 ※ 解決策…自分のエクセル2007には、=DATEDIF関数は入っていない場合、=DATEDIF関数を追加する方法 ※ 解決策…、=DATEDIF関数が使えるようになっていない場合、使えるようにする方法 ※ 現在、OS:Windows7、エクセル2007を使用しています。

  • 関数について

    こんにちは。 先日こちらでDATEDIF("入院日","退院日","D")+1での関数の方法を教えてもらい、職場でやってみようと思ったのですが、関数にDATEDIFが入ってませんでした。 その場合どうしたらよいのでしょうか? 質問内容 例えば【4月1日~4月3日】まで入院したとします。通常であれば2日と表示されますが、3日と表示させたい時。 どなたか関数に詳しい方、知っている方がいたら教えて下さい。 よろしくお願いします。

  • ExcelのDATEDIF関数にて

    Excel2002です。 DATEDIF関数とTODAY()関数を使って 2004/1/1から今日までの日数を出すにはどのようにセルに書けばよいのでしょうか教えて下さい。 =DATEDIF(2004/01/01,today(),"D") と書くと36173と言う数字が帰ってきてしまいます。 よろしくお願いします。