我想從Excel工作表複製一個公式到一個ASP頁面,但複製了公式,我得到了不同的結果(實際上是一個錯誤,因爲ASP結束試圖平方根負數)。從Excel獲取不同的結果複製公式到ASP
當然Excel處理運算符優先級與經典ASP相同?
我試圖複製的公式是一個簡單的「T檢驗」(用於報告統計顯着性 - 我沒有創建公式)並在Excel中正常工作。在Excel中,細胞看起來像
A2 = 1098
B2 = 183
A4 = 20.4
B4 = 17.49
和細胞E4包含此公式:
=(A4-B4)/SQRT(((($A$2*A4)+($B$2*B4))/($A$2+$B$2))*
(1-((($A$2*A4)+($B$2*B4))/($A$2+$B$2)))*((1/$A$2)+(1/$B$2)))
所以,我簡單地複製/粘貼該公式爲傳統的ASP,刪除了所有的$,改變SQRT到SQR ,宣佈了4個變量A2,B2,A4,B4。這將返回一個錯誤(無效的過程調用)。
如果我在ASP中刪除公式的第一部分 - (A4-B4)/ SQRT - 代碼返回-2.41868099141296,但在Excel中它返回0.001019435。
我已經試過並嘗試先分別計算公式的某些部分,然後將其重新組合在一起準備做SQRT,但仍然面對相同的事情。
這只是一個愚蠢的錯誤? 有一次,我正在調查負數的平方根,直到我在Excel中嘗試= SQRT(-9)
我正在使用的ASP代碼是(我在第一行和最後一行插入了換行符):
A2 = cdbl(1098.0)
A4 = cdbl(20.4)
B2 = cdbl(183.0)
B4 =cdbl(17.49)
' Remove all the $, and (A4-B4)/SQRT part
response.write "<p>Result: " & ((((A2*A4)+(B2*B4))/(A2+B2))*(1-(((A2*A4)+(B2*B4))
/(A2+B2)))*((1/A2)+(1/B2))) & "</p>"`
已經發布了ASP代碼,但我從字面上對公式中的$進行搜索/替換,然後刪除第一部分,以便只剩下平方根的值。我得到的結果是-2.41868099141296 – Dan 2010-01-21 20:03:32