2016-11-21 79 views
-1

我正在使用嵌套在语句中的SUMIF公式。有时我的公式会计算我需要发生的事情,有时候它会显示为错误。逻辑的顺序如下:SUMIF公式部分运行

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)))) 

的是我写的一个例子:当Cell Value="Partial Sale""Partial Purchase",我不断收到一个错误

=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)))) 

我的问题来了。我检查了我的Cost列,每个单元格都有一个值(范围从负数到零,包括零)。我也将其转换为SUMIFS公式,并且未发生变化。我还在文本值前后使用了*,因为我在某处看到它是必需的,但没有变化。可能是什么问题?

+1

你会得到什么错误? '#DIV!0'? –

回答

1

我测试的公式,并只给出了错误#DIV/0!为指向的@Robin麦肯)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]那么我们可以用代替并消除嵌套IF