2013-10-18 36 views
0

遇到問題得到一致的結果,希望能爲一些指針試圖解決這個自己撞牆Excel公式爲Javascript,工作,但不一致

Excel公式:

=IF(C15=""," ",IF(D15="O"(((ROUNDUP(((C15+0.625)/(6.25-0.5)),0)*6.25))+4.125+0.5),IF(D15="t",C15,"ERROR"))) 

C15= 100.00邏輯測試..

D15="O"第二次邏輯測試,驗證100.00可以擴展到該數字的預定結果... if D15="t"因爲被困住了,它停留在100.00 .... 我可以用「如果其他」後來,還在學習

 <html> 
     <head> 
     <title>Excel Formula to JavaScript</title> 
     </head> 
     <body> 
     <script type="text/javascript"> 

     var num1 = 170.00; 
     var acc1 = (num1 + 0.625)/(6.25-0.50); 
     var acc2 = Math.round((acc1 * 10)/10) * 6.25 + (4.125 + 0.50); 
     document.write(acc2).toFixed(3); 

     </script> 

     <div> 
     <br> 
     num1= 30.00 result should be 42.125".... incorrect result! 
     <br> 
     <br> 
     num1= 40.00 result should be 54.625".... incorrect result! 
     <br> 
     <br> 
     num1= 57.00 result should be 73.365".... incorrect result! 
     <br> 
     <br> 
     num1= 85.00 result should be 98.375"... result correct 
     <br> 
     <br> 
     when num1= 100.00 result should be 117.125"... result correct 
     <br> 
     <br> 
     seems any input under 77 result will be incorrect 
     </div> 
     </body> 
     </html> 

回答

1

在Excel公式你UP四捨五入更換邏輯測試。所以當C1530,acc15.326087和excel綜合帶來這6。 Javascript Math.Round(5.326087)四捨五入到最接近的整數,所以它的結果是5。這足以甩掉你的最終結果。


您可以更改Excel中的簡單Round代替RoundUp也可以將您的JavaScript改爲Math.ceil((acc1 * 10)/10)


IF(D15="O",

+0

尼斯開心快樂,math.ceil解決方案工作,每次測試的完美!謝謝 – bigdog

-1

不要忘了逗號如果你要到Excel轉換電子表格轉換爲Javascript,您可以使用OpenSource庫formula.js,由Stoic開發,它實現了大部分Excel功能

它在這裏:http://stoic.com/formula/

否則,我正在開發一個在線軟件,可以立即將OpenDocument Calc轉換爲HTML + JS。有演示版本適用於電子表格,少於10個公式。

它在這裏:http://appizy.com

你的項目好運氣。

BR, 薩科