2016-11-21 8 views
-1

Ich verwende eine SUMIF Formel verschachtelt in einer IF Anweisung. Manchmal berechnet meine Formel, was ich tun muss, manchmal zeigt es sich als ein Fehler. Die Reihenfolge der Logik ist wie folgt:SUMIF Formel läuft teilweise

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

Ein Beispiel dafür, was ich schrieb:

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

Mein Problem kommt, wenn Cell Value="Partial Sale" oder "Partial Purchase", halte ich einen Fehler. Ich überprüfe meine Cost Spalte und jede Zelle hat einen Wert (Bereich von negativen bis posties einschließlich Null). Ich habe auch dies in eine SUMIFS Formel umgewandelt und keine Änderung aufgetreten. Ich habe auch die * vor und nach meinen Textwerten verwendet, weil ich irgendwo gesehen habe, dass es erforderlich war, aber keine Änderung. Was könnte das Problem sein?

+1

Welchen Fehler erhalten Sie? '#DIV! 0'? –

Antwort

1

testete ich die Formel, und es gibt nur Fehler (#DIV/0! wie @Robin Mackenzie zeigte) wenn SUMIF($CK$8:$CK$4996,$CK8,$P$8:$P$4996)=0 Sie diese Bedingung mit diesen Formeln überprüfen:

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

Auch ist es nicht für die verschachtelte brauchen IF ‚s, versuchen Sie diese Formel stattdessen:

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

die obige Formel ersetzt nur die Werte der Liste

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

mit dem Wert der Zelle verwendet, um die Liste gegen vergleichen: CK8

Mit anderen Worten:

Dies ist die ursprüngliche Formel

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

wo [ListValueAx] = [ListValueBx]

wenn CK8=[ListValueAx] dann können wir [ListValueBx] durchersetzen 10 und beseitigen Sie die verschachtelten IF 's