Microsoft has confirmed that Excel 2007, the newest version of its market-leading spreadsheet, returns incorrect calculation results in some cases.
The math bug first surfaced Saturday on Microsoft's own Excel support newsgroup when a user named Molham Serry reported that when he multiplied 850 by 77.1, Excel 2007 returned 100,000 rather than the correct 65,535. Others on the newsgroup quickly took up the standard, eventually posting more than 120 messages to the thread. Among their findings: Other calculations claimed 100,000 was the correct answer.
On Tuesday, the Excel team offered a mea culpa posting to a Microsoft company blog. "The majority of reports were focused on multiplication, but our testing showed that this really didn't have anything do to with multiplication," said David Gainer, lead project manager for Excel. "It manifested itself with many, but not all calculations in Excel that should have resulted in 65,535. Further testing showed a similar phenomenon with 65,536 as well."
Only Excel 2007 is a math dummy. Earlier versions of the spreadsheet, including its immediate predecessor, give the correct answers.
Gainer said that the bug isn't in Excel's calculations, but in code that takes values and formats them to be displayed in the worksheet. To prove that Excel knows its multiplication tables, he suggested entering 850*77.1 in Excel 2007 -- yielding the incorrect 100,000 -- then multiplying the result by 2. The spreadsheet will return the right value, 131,070, not 200,000.
Excel displays the wrong result in an even dozen cases, Gainer added, all involving six floating-point numbers around 65,535 and 65,536. "All other calculation results are not affected," he said.
A fix for Excel -- and for SharePoint's Excel Services, which also sports the bug -- is in the works, Gainer said. He didn't set a date for the bug fix release, saying only that "we expect [it] to happen very soon."