SUMIF公式部分运行

时间:2016-11-21 21:25:56

标签: if-statement excel-formula sumifs

我使用嵌套在SUMIF语句中的IF公式。有时我的公式计算我需要发生的事情,有时它表示为错误。逻辑的顺序如下:

If(Cell Value="No Change",Cost/Total Cost of No Change,
If(Cell Value="Partial Sale",Cost/Total Cost of Partial Sale,
If(Cell Value="Partial Purchase",Cost/Total Cost of Partial Purchase,
If(Cell Value="New Purchase",Cost/Total Cost of New Purchase,
False))))

我写的一个例子:

=IF(CK8="No Change",BY8/SUMIF($CK$8:$CK$4996,"No Change",$P$8:$P$4996),
 IF(CK8="Partial Sale",BY8/sumif($CK$8:$CK$4996,"Partial Sale",$P$8:$P$4996),
 IF(CK8="Partial Purchase",BY8/SUMIF($CK$8:$CK$4996,"Partial Purchase",$P$8:$P$4996),
 IF(CK8="New Purchase",BY8/SUMIF($CK$8:$CK$4996,"New Purchase",$P$8:$P$4996),FALSE))))

我的问题出现在Cell Value="Partial Sale""Partial Purchase"时,我一直收到错误消息。我检查了我的Cost列,每个单元格都有一个值(从负数到邮件的范围包括零)。我还将其转换为SUMIFS公式,但未发生任何变化。我还在文本值之前和之后使用了*,因为我看到了它需要的地方,但没有变化。可能是什么问题?

1 个答案:

答案 0 :(得分:1)

我测试了公式,它只提供错误(@ #DIV/0!,正如@Robin Mackenzie指出的那样)SUMIF($CK$8:$CK$4996,$CK8,$P$8:$P$4996)=0时你可以用这些公式检查这个条件:

=BY8/SUMIF($CK$8:$CK$4996,"Partial Sale",$P$8:$P$4996)
=BY8/SUMIF($CK$8:$CK$4996,"Partial Purchase",$P$8:$P$4996)

此外,不需要嵌套的IF,请尝试使用此公式:

=BY8/SUMIF($CK$8:$CK$4996,CK8,$P$8:$P$4996)

上面的公式只是替换了列表的值

"No Change", "Partial Sale", "Partial Purchase", "New Purchase"

使用用于比较列表的单元格的值:CK8

换句话说:

这是原始公式

=IF(CK8=[ListValueA1],BY8/SUMIF($CK$8:$CK$4996,[ListValueB1],$P$8:$P$4996),
 IF(CK8=[ListValueA2],BY8/sumif($CK$8:$CK$4996,[ListValueB2],$P$8:$P$4996),
 IF(CK8=[ListValueA3],BY8/SUMIF($CK$8:$CK$4996,[ListValueB3],$P$8:$P$4996),
 IF(CK8=[ListValueA4],BY8/SUMIF($CK$8:$CK$4996,[ListValueB4],$P$8:$P$4996),FALSE))))

其中[ListValueAx] = [ListValueBx]

如果CK8=[ListValueAx],我们可以将[ListValueBx]替换为CK8 并消除嵌套的IF