Wagby 自動計算機能を強化中

Wagby を利用中の SIer 様より指摘があり、ほぼ実装の目処が立ちました。現在の Wagby は Excel 互換の式を(自動計算式として)記述することができますが、あるパターンでは Excel と異なる結果を出していることがわかりました。具体的には、IF 関数の利用時に発生します。

IF (条件, 項目1の値, 項目2の値)

という式において、これまでは項目1の値と項目2の値を事前に取得したのち、条件によって値を選択する、という実装を行っていました。よって次の式

IF (条件1, IF(条件2, IF(条件3, ...)))

では、IF 内にあるすべての値をまず取得(評価)し、それから一つを選択します。

ところが Excel では、条件を先に追っていきます。そのため、項目の値はすべてを評価するのではなく、選択されたものだけを評価します。この動きの違いによって、複雑な式を書いた場合に計算結果が異なるパターンがある、ということがわかりました。

これは「Excel 互換の式が使える」とアピールしていた Wagby にとっては見過ごせない、ということになり、急遽、最優先で対応しました。結果として自動計算部はほぼ全面書き換えとなったため、再テストを含めて相当の工数を要しました。そのため次回出荷版の R6.5.2 では、当初予定していたいくつかの新機能を見送らせていただくこととなりました。それでも、基本機能をしっかり動作させることを優先させたことを、どうぞご了承ください。

この対応により、Excel に埋め込まれた相当に複雑な式であっても、そのまま Wagby に移植できるという安心感につながったと考えています。指摘にあたって詳細な報告を行ったいただいた SIer 様に感謝するとともに、大量の再テストを実施した当社開発陣にも、ごくろうさまと記しておきます。