使用SUMIF()和SUMPRODUCT()时的结果不同

时间:2012-09-06 18:01:53

标签: excel-2007 excel-formula

这确实让我们误解了很长一段时间,即使我们已经找到了如何获得正确的结果,我们真的想知道为什么SUMIF会产生不正确的结果,而SUMPRODUCT在使用时产生精确的结果相同的条件。

以下是两个公式:

=SUMPRODUCT((Calcul!$J$2:$J$15000=Sommaire!J2)*(Calcul!$K$2:$K$15000))
=SUMIF(Calcul!$J$2:$J$15000,Sommaire!J2, Calcul!$K$2:$K$15000)

如您所见:完全相同的范围,完全相同的比较,完全相同的和范围。

关于数据的更多信息:在这两个表格中(' Sommaire'和Calcul')单元格包含的数据类似于仅包含数字但序列为文本的序列号。这个数字来自A,B,C,D,E和I列的连接数据,公式为:

=IFERROR(A2&B2&C2&D2&E2&I2, "ERREUR")

以两种不同的方式使用过滤器(直接过滤密钥或"序列号"以及第二种过滤器直接过滤密钥的每个组件),我们得到完全相同的数据集,当手动计算时,给我们的值与SUMPRODUCT返回的值相同。

有什么想法吗?我们真的无法提出返回结果不同的任何理由。

感谢。

1 个答案:

答案 0 :(得分:0)

我们终于找到了解决方案。似乎由于某种原因SUMIF强制将数字字符串处理为数字。由于我们的密钥相当大,所以它达到某种整数容量并溢出并不是不可能的。如果我们只是在它前面添加一个字母,我们会得到与使用SUMPRODUCT时相同的结果。

溢出的密钥示例:

01003046014910111616
01000145950198116308

这些键具有完全相同的公式(前面只附加了一个C),返回预期的结果:

C01003046014910111616
C01000145950198116308