SUMIF bug in excel 2010

I've just upgraded to Excel 2010 (it was free as I bought 2009 recently). I now don't have another version of excel to test it on but I think I've discoved a SUMIF bug. Now I know the chances of me discovering a bug in excel are almost zero, so can someone tell me what I'm doing wrong, or alternatively tell me what their version of Excel does?

  1. Open a blank workbook
  2. In sheet1, put 1 (just the number) in cells C1 to D3 (6 cells - the exact number doesn't matter)
  3. In sheet2, put 2,3, and 4 in cells D1, D2, and D3 respectively
  4. Now in a cell in sheet2 put the following formula =SUMIF(Sheet1!D1:D3, 1, Sheet2!D1:D3)
  5. In another cell in sheet2 put this formula =SUMIF(Sheet1!C1:C3, 1, Sheet2!D1:D3)

As far as I can see, the cells should display the same value, but in my version of excel, the first displays 3 (incorrectly) and the second displays 9 (correctly - the sum of 2,3 and 4.)

The values 1,2,3, and 4 are irrelevant. It seems to be the fact that the letters for the columns match that causes the bug.

Before anyone argues Excel isn't programming I beg to differ.

[ I have since found another bug report on a technet forum: http://social.technet.microsoft.com/Forums/en/excel/thread/cda9fef8-8ad4-4d56-8939-49b1ae50c4e7 - so it might be real ]

Answers


Yes, it is a bug in Excel 2007 and 2010 SUMIF and SUMIFS (and related functions).


I've pursued more investigation - it is a bug in Excel 2010 (but not 2007), and Microsoft have now acknowledged it here: SUMIF bug excel 2010. See the posts from Jenny E. No word on a fix yet.


Excel 2003

No. 4 = 9

No. 5 = 0

These two formulas would return the same thing

=SUMIF(Sheet1!D1:D3,1,Sheet2!D1:D3)
=SUMIF(Sheet1!C1:C3,1,Sheet2!D1:D3)

which it seems is what you're driving at.


Need Your Help

How can I enlist an ODBC connection in an XA 2PC transaction?

jdbc transactions odbc xa 2phase-commit

Our application uses ODBC to communicate with a database (Both DB2 and Oracle, if it makes a difference), and delegates business logic to Java by way of JNI (So it uses Java and C).