Formula.jsプロジェクトの一環として、 Excel のACCRINT関数を再実装しようとしています (JavaScript ですが、言語は関係ありません)。どのように機能するのか (特にパラメーターに関して) 適切な説明を見つけようとしましたが、first_interest
何も見つかりませんでした。
興味深いことに、Excel、Google Spreadsheets、Apple Numbers、Gnumeric、および OpenOffice は、Excel の 3 つのメジャー バージョン (Win、Mac、Web) がすべて互いに一致しているように見えますが、実装方法についてはすべて意見が一致していません。このブログ投稿で、さらにいくつかのコンテキストを見つけることができます。
数十のテスト ケースと現在の (欠陥のある) 実装は、ここにあります。
どんな助けでも大歓迎です!
更新: 明確にするために、この問題は5 つの基本オプションすべてをカバーする 3200 万を超えるテストで検証されたYEARFRACの David Wheeler の疑似コードを使用して実装した日カウント規則とは関係ありません。この問題は、誰も本当に理解していないように見えるパラメーターに起因します。私たちが知る限り、このパラメーターは、OpenOffice を含む多くの代替スプレッドシートでは単純に無視されます (ソース コードではコメント化されています)。そして、このパラメーターは実際には奇妙な方法で動作します。Excel を使用してその値を変更すると、ACCRINT関数によって得られる結果が変化することがわかりますが、その方法は混沌としているように見えます。を変更してみてくださいfirst_interest
first_interest
1 世紀までに日付を記入すると、未収利息が変化することがわかりますが、それほどではありません。私は本当にそれを理解することはできません。誰かができるなら、私はすべての耳です...