2016-04-24 2 views
0

Kannst du mir bitte mit den folgenden helfen? Das Ziel meines Excel-Projekts ist, dass jedes Mal, wenn B in Spalte A gefunden wird, minus die Mengen von A bis zum Erreichen der Menge sind.Subtrahiere einen Betrag von einer Zelle, bis er 0 erreicht, dann bewege und subtrahiere von der nächsten Menge

Nur Werte mit A sind, wo die Größen subtrahiert werden. Das nächste Mal, wenn es das nächste B findet, überprüft es alle über A mit der verbleibenden Menge und so.

enter image description here

ich die unten als gut versucht, war aber nicht erfolgreich.

=IF(A2="B",MAX(SUM($B$2:B2)-OFFSET(A2,0,1),0),"") 

Ich dachte über die Entscheidung in einem VBA-Code nach.

Beispiel:

Mit dem ersten „B“ die Sequenz oben ist, der Restbetrag gleich Null (0) 300 -100 weil verlassen Null der Menge gelassen. Die verbleibenden werden 250 abgezogen, wobei ein Rest von übrig bleibt.

Der Restbetrag auf B wird immer Null sein

+1

So, wie es mir scheint, dass alle „A“ sind positiv und alle „B“ sind negativ und die Roll Balance ist: '= SUMME ($ A $ 2: A2;" A "; $ B $ 2: B2) -SUMIF ($ A $ 2: A2;" B "; $ B $ 2: B2)' (in Zelle C2 eingeben und dann kopieren Nieder). Oder fehlt mir etwas? – Ralph

+0

@ralph Mit dem ersten "B" ist die obige Sequenz, die verbleibende Balance ist Null (0), weil 300 -100 Null der verbleibenden Menge verlassen. Die restlichen 200 werden 250 abgezogen, wobei ein Saldo von 50 übrig bleibt. – James

+1

Das ergibt für mich keinen Sinn. Von den ersten beiden "A" -Werten subtrahiert man nur den ersten "B" -Wert und hinterlässt einen Rest von 50. Aber was ist mit dem zweiten "B" -Wert. Würde dieser Rest nicht (wieder) davon konsumiert werden? Vielleicht kannst du im obigen Screenshot das erwartete Ergebnis schreiben und das Bild erneut posten, damit wir wissen, was du willst. Nach Ihrer derzeitigen Logik würde ich die folgenden Werte erwarten: '= MAX (SUMME ($ A $ 2: A2," A ", $ B $ 2: B2) -SUMIF ($ A $ 2: $ A $ 8," B ", $ B $ 2: $ B $ 8), 0) '(in Zelle C2 und dann nach unten kopiert). – Ralph

Antwort

0

Basierend auf den obigen Ausführungen scheint es, dass die Antwort die folgende Formel in Zelle C2 zu setzen ist, und kopieren Sie sie dann an den Rest der C-Säule nach unten:

=MAX(SUMIF($A$2:A2,"A",$B$2:B2)-SUMIF($A$2:$A$8,"B",$B$2:$B$8),0) 

Um die "aktuelle" Bilanz von "A" zu berechnen, kann die folgende Formel in einer separaten Spalte verwendet werden. Zum Beispiel in Zelle D2:

=SUMIF($A$2:A2,"A",$B$2:B2)-SUMIF($A$2:A2,"B",$B$2:B2) 

(und dann wieder kopiert unten für Spalte D)

Verwandte Themen