Microsoft admitted yesterday that the latest and greatest version of one of its most important Office productivity applications Excel 2007 has a very serious data bug. And for a change it isn't about a security flaw ready to leave you blindsided.
Before the days of the Internet, bugs weren't usually all about security as they so frequently are today. So this week seems a lot like a flashback to pre-1995 bug sleuthing.
The bug? Late last week, users on a Google public forum for Microsoft Excel found that in some very specific instances, Excel 2007 (earlier versions of Excel are not affected) appeared to return wildly incorrect results.
According to one post on the forum:
"Simply when you try to multiply 850 by 77.1 excel displays the result to be 100000 !!!"
The correct answer is 65,535. More experimentation by users found several more cases where the correct answer should be 65,535 but what is actually displayed is 100,000. Interestingly, 65,535 is the highest you can count with an unsigned binary 16-bit number. (It's a really commonly used number in computing so I'm a bit surprised that only a handful of operations yield the apparently incorrect result.)
I won't keep you wondering Microsoft is working rapidly but does not have a fix for the problem out yet. However, a post on the Excel team blog on Tuesday says they're well along in the process of testing the patch -- it should be out shortly. So stay tuned.
And before you start worrying about your online trading or bank accounts, note that I said the bug "apparently" yields the wrong result.
For the record, Microsoft's blog post says the error is not actually in the calculation of the numbers themselves, but in their display:
"Specifically, Excel incorrectly displays the result of a calculation in 12 very specific cases ... The key here is that the issue is actually not in the calculation itself (the result of the calculation stored in Excels memory will be correct), but only in the result that is shown in the sheet."
To translate, while the cell you're looking at, which is supposed to show 65,535, is "displaying" 100,000, that's not the actual contents of the cell. So if you're relying on seeing that number on the page say for a print out, I guess it will be wrong. But if you're doing further processing, say to multiply the 65,535 result stored in that cell by 2, it will yield the correct calculation.
That said, it's still a very serious bug. Incorrect numbers of any sort whether they're caused by "display" or "math error" bugs can cost real people real money.
So the liability is there and you're going to see this one fixed pronto.
Additionally, I have to applaud Microsoft's openness to admitting a problem when it's found that's a good sign. Microsoft is not always as forthcoming.
This example shows some maturity in Microsoft's product management ranks, IMO, after watching the company for nearly 20 years. Perhaps somebody did really learn a thing or two about p.r. back in the days when Intel's then-brand-new Pentium processor had a math bug and the chip giant tried to stonewall the problem didn't work, obviously.
Meanwhile, though, there's a hint of fall in the air here in Puget Sound and the arrival of a straight ahead "bug" makes me a little nostalgic for the old days, before we were all connected to the Internet. Hot diggity dog.
A few people at the mentioned Google Groups newsgroup say that doing 850*77.1 and then adding 1 to that cell in another cell results in 100001, which is still wrong. If the description is true, this would seem to indicate that something really is corrupting the value and it's not just a display error.