1

这确实困扰了我们很长一段时间,即使我们已经找到了如何获得正确的结果,但我们真的很想知道为什么在使用相同的条件时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回来。

有任何想法吗 ?我们实在想不出返回结果不同的任何理由。

谢谢。

4

1 回答 1

0

我们终于找到了解决方案。似乎出于某种原因SUMIF,无论如何都会强制将数字字符串视为数字。由于我们的密钥相当大,它达到某种整数容量并溢出并非不可能。如果我们只是在它前面附加一个字母,我们会得到与使用SUMPRODUCT.

溢出的键示例:

01003046014910111616
01000145950198116308

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

C01003046014910111616
C01000145950198116308
于 2012-09-06T18:40:19.780 回答