Restwert bestimmen, kein VBA

Bild

Betrifft: Restwert bestimmen, kein VBA
von: Stefan
Geschrieben am: 01.09.2015 19:39:20

Guten Abend zusammen!
Mein aktuelles Problem dreht sich um den Verbrauch, und den Restbestand einer Ressource. Eine Zeile besteht aus:
Datum | VerbrauchGewinn | ExternerGewinn
Verbrauch/Gewinn kann sowohl, den Bestand vermehren, als auch den Bestand verringern (positive oder negative Zahl).
Externer Gewinn ist eine unregelmäßige Bestandserhöhung (Zahl größer gleich 0).
Pro Datum existiert eine Zeile.
Soweit so einfach. Ziel ist es den aktuellen Bestand zu erfragen, wobei allerdings folgende Regeln gelten sollen:
Der aktuelle Verbrauch/Gewinn soll nicht einbezogen werden.
Überschüsse die älter als 7 Tage sind verfallen.
In der beigefügten Datei sind zwei Fallbeispiele drin, und die Sollspalte enthält das gewünschte Ergebnis. Zudem habe ich eine einfache Summierung, der jeweils betroffenen Zellen hinzugefügt, die zumindest teilweise Funktioniert, aber im entscheidenden Moment das Überschussverfalls versagt.
Das ganze programmatisch zu lösen, wäre kein Problem, aber auf Grund von Rahmenbedingungen muss auf VBA verzichtet werden, sowie die Kompatibilität mit OpenOffice Produkten erhalten bleiben.
Beispieldaten:
https://www.herber.de/bbs/user/99960.xlsx
Ich hoffe ich habe das Problem klar genug umrissen, und dass vielleicht irgendwer von euch eine zündende Idee hat.
Danke für eure Zeit
Stefan

Bild

Betrifft: AW: hier besteht mE evtl. ein Widerspruch ...
von: ... neopa C
Geschrieben am: 02.09.2015 09:22:04
Hallo Stefan,
.. zwischen Deiner verbalen Angabe: "Überschüsse die älter als 7 Tage sind verfallen" und Deinen Soll-Ergebniswerten.
Vielleicht solltest Du mal explizit die maßgeblichen Berechnungswerte für D17 beider Tabellen aufzeigen/schreiben. Vielleicht wird es dann klarer.
Gruß Werner
.. , - ...

Bild

Betrifft: AW: Habe mich wohl unklar ausgedrückt
von: Stefan
Geschrieben am: 04.09.2015 07:08:01
Hallo Werner,
danke für deine Antwort und Entschuldigung für die Unklarheit.
Ich versuche jetzt mal den Vorgang zu Beschreiben wie er ablaufen soll:
Fall 1:
Es wird ein Gewinn generiert (Quelle egal).
Dieser Gewinn kommt reiht sich in die Queue(FIFO) aller Überschüße ein.
Fall 1a:
Der Gewinn ist Extern: Er wird sofort aufgenommen.
Fall 1b:
sonst: Er wird erst am nächsten Tag berücksichtigt.
Fall 2:
Es wird ein Verbrauch generiert:
Decke den Verbrauch aus dem Verbrauch dem ersten Element der Queue und reduziere die Restkapazität des Elements. Falls Restkapazität =0 entferne Element. Wiederhole bis Verbrauch gedeckt.
Fall 3: Falls Erstes Element der Queue älter als 7 Tage: entferne ungeachtet der Restkapazität.
Fall 4: (Der Vollständigkeit halber) Falls Queue leer und Verbrauch nicht gedeckt: markiere Verbrauch als gedeckt.
Hintergrund auf Papier:
Gewinne haben Kästchen generiert, die bei Verbrauch abgestrichen werden. Man darf nur 7 Tage zurückblättern, und streicht daher zuerst die ältesten Kästchen.

Bild

Betrifft: AW: möglicherweise ist es jetzt klarer, doch ...
von: ... neopa C
Geschrieben am: 04.09.2015 08:00:34
Hallo Stefan,
... kann ich mich aus Zeitgründen nicht mehr damit auseinandersetzen. Bin jetzt auch zwei Wochen offline. Ich stell den thread deshalb auf offen.
Gruß Werner
.. , - ...

Bild

Betrifft: AW: möglicherweise ist es jetzt klarer, doch ...
von: Matthias
Geschrieben am: 04.09.2015 20:00:10
Hallo Stefan,
das kann auch so nicht funktionieren, wenn du am 01.09. zehn Einheiten (vom 24.08.) aus deiner Rechnung streichst, obwohl nur 2,5 verfallen sind. Da kommt wieder der Grundsatz der Bestandsrechnung zur Geltung:

Bestand = Summe aller vorangegangenen Eingänge - Summe aller vorangegangenen Ausgänge
Der Verfall nach n Tagen ergibt sich indem man die produzierten Einheiten an Tag X nimmt und davon die verkauften Einheiten im Zeitraum von n Tagen abzieht. Anders ausgedrückt:
Verfall = ∑Inputs vor n Tagen - ∑Outputs am Tag X.
Dabei kann der Verfall nicht negativ sein.
Ich meine ebenso wie Werner dass deine Sollspalte für den Verfall nicht ganz hinhaut. Du hast deinen Verfall erst am 8. Tag NACH Eingang (also 9 Tage im Lager liegend) herausgerechnet. Ich habe dies in der Beispieldatei auch gekennzeichnet.
Das verwirrende in deinem Beispiel ist die Tatsache, dass du 2 verschiedene Inputs hast, du zu unterschiedlichen Tagen dazugerechnet werden sollen. Das Verhalten der nicht-externen Gewinne ist aber gleich dem der Outputs, also habe ich diese einfach als negativen Wert dort mit summiert. Einfacher gehts nicht.
Wenn du das alles beachtest, kommst du auf die obere Tabelle im Blatt 2, was man auch durchaus in einer Spalte zusammenfassen kann. Jedoch ist nicht jedem das Gerechne mit den Summen ganz geheuer, darum habe ich eine zweite Tabelle darunter angelegt, wo mit Inkrementen gearbeitet wird. Vielleicht wird es dem ein oder anderem so verständlicher.
https://www.herber.de/bbs/user/100020.xlsx
Abgesehn davon dass die Aufgabe rein mathematisch interessant ist, ist das ganze jedoch in der Praxis untragbar. Ich will mich dazu nicht weiter äußern, da hier mit Geld gehandhabt wird, aber wenn es sich um reale Güter handelt, kann man diese Rechnung nicht anwenden!
lg Matthias

 Bild

Beiträge aus den Excel-Beispielen zum Thema "Pivot Filter Date Between Cell Value"