Excel formula IFERROR不返回数组,因此会破坏SUMPRODUCT结果 我在电子表格中有一列,其中数字有时是 以文本格式存储或与文本值混合 为了把它们转换成数字,我会 通常使用值。由于同一列中的其他文本值,我将另外包装它 使用IFERROR,将结果默认为0,以防止与 转换 所有这些我都想在SUMPRODUCT中使用,我不愿意在工作表中添加任何新的中间列

Excel formula IFERROR不返回数组,因此会破坏SUMPRODUCT结果 我在电子表格中有一列,其中数字有时是 以文本格式存储或与文本值混合 为了把它们转换成数字,我会 通常使用值。由于同一列中的其他文本值,我将另外包装它 使用IFERROR,将结果默认为0,以防止与 转换 所有这些我都想在SUMPRODUCT中使用,我不愿意在工作表中添加任何新的中间列,excel-formula,Excel Formula,当IFERROR作为数组之一在SUMPRODUCT中使用时,它会返回一个值(甚至是一个#value!错误)。更糟糕的是,在“函数参数”窗口中正确计算和 我创建了一个孤立的案例,你可以在这里看到。C列中的一个数字前面带有单引号“”,C列同时包含文本值和数字值 SUMPRODUCT公式的长版本 =SUMPRODUCT(IFERROR(VALUE($C1:$C4),0),--($D1:$D4=“yes”),--NOT(iError($C1:$C4+1-1)),($C1:$C4)”,和简化的=SUMPR

当IFERROR作为数组之一在SUMPRODUCT中使用时,它会返回一个值(甚至是一个#value!错误)。更糟糕的是,在“函数参数”窗口中正确计算和

我创建了一个孤立的案例,你可以在这里看到。C列中的一个数字前面带有单引号“,C列同时包含文本值和数字值

SUMPRODUCT公式的长版本
=SUMPRODUCT(IFERROR(VALUE($C1:$C4),0),--($D1:$D4=“yes”),--NOT(iError($C1:$C4+1-1)),($C1:$C4)”,
和简化的
=SUMPRODUCT(IFERROR(VALUE(C19:C21),0))
。当在电子表格中显示#值时,它会在函数参数窗口中返回正确的数字!错误或不正确的总和

我想知道我是否错误地使用了上述函数(这里不能将IFERROR用作数组?),或者这是某种Excel错误(为什么评估值与电子表格中的结果不同?)

提前感谢您的评论和建议解决方案。

您的公式:

=SUMPRODUCT(IFERROR(VALUE($C1:$C4),0),--($D1:$D4="yes"),--NOT(ISERROR($C$1:$C$4+1-1)),--(($C1:$C4)<>""))
所有操作都需要使用
Ctrl+Shift+Enter

另一种选择,

将公式更改为:

=SUMPRODUCT(N(+$C1:$C4),--($D1:$D4="yes"),--NOT(ISERROR($C$1:$C$4+1-1)),--(($C1:$C4)<>""))
使用N(+..)而不是IFERROR(值(..)进行的更改


此外,上述两个公式不需要数组条目

欢迎使用SO!请阅读“。指向图像的链接不能替代演示此问题的电子表格的小示例。我们无法将电子表格复制并粘贴到自己的电子表格中进行测试,我们必须重新输入所有内容,并希望能够正确输入。使用IFERROR时,公式需要使用Ctrl-Shift-enter确认。@BigBen这是问题中的一个输入错误"s文本,但不在Excel中。但谢谢注意。我已经更正了它。@ScottCraner非常感谢你的建议。我发誓我以前检查过它,但我再试了一次,现在它工作了。太好了!@ScottCraner所以在Excel内部人员版本中不再需要CSE,对吗?Ctrl-Shift-Enter对我有效,正如@ScottCraner之前所建议的那样。和de一样在原始问题中,请注意C列中的一个数字前面有一个单引号。它是“'25”。对于我来说,N函数不会将该值转换为正确的数字,而是转换为0。
=SUMPRODUCT(N(+$C1:$C4),--($D1:$D4="yes"),--NOT(ISERROR($C$1:$C$4+1-1)),--(($C1:$C4)<>""))
=SUMPRODUCT(N(+C19:C21))