nxtrex
Goto Top

Excel rollierende Berechnung Anzahl Tage

Hallo,

ich habe eine Formel in Excel die den Gesamtbestand berechnet.
Formel: =Legende!F16+SUMMEWENN($G$5:$G178;B178;$H$5:$H$172)-SUMMEWENN($C$5:$C$172;"Standard";$D$5:$D$172)*Legende!C5-SUMMEWENN($C$5:$C$172;"ZF-Great-Wall";$D$5:$D$172)*Legende!P17

Möchte ich nun das Ganze nur für die letzten 30Tage berechnen, nimmt Excel meine Formel nicht mehr an.
Formel: =SUMMEWENN(A5:A172&E5:E172;">="&"21.03.2021";Legende!F16+SUMMEWENN($G$5:$G178;B178;$H$5:$H$172)-SUMMEWENN($C$5:$C$172;"Standard";$D$5:$D$172)*Legende!C5-SUMMEWENN($C$5:$C$172;"ZF-Great-Wall";$D$5:$D$172)*Legende!P17)

Vorab vielen Dank

Nick

Content-ID: 665944

Url: https://administrator.de/contentid/665944

Ausgedruckt am: 09.11.2024 um 01:11 Uhr

HansDampf06
Lösung HansDampf06 20.04.2021 um 23:11:08 Uhr
Goto Top
I.

Ist die Syntax der nicht funktionierenden Formel überhaupt richtig? Bitte noch einmal genau prüfen! Mir scheint der Teil ab ";Legende!F16" kein korrelierender Rangebereich zu sein. Ohne Korrelation funktioniert "SUMMEWENN" schlichtweg nicht!

Hierzu gegebenenfalls die Formel im Berechnungsteil entkernen und noch einmal schrittweise aufbauen.

II.

Ich glaube, dass Dein Ansatz so auch nicht funktionieren kann, weil es quasi eine "Berechnungsschleife/-folge" voraussetzt, die Excel so nicht in einer einzigen Formel (mit SUMMEWENN) macht. Hierfür gibt es aber zwei sichere und jahrzehntelang erprobte Lösungsansätze:

1. Eine oder mehrere Hilfsspalten verwenden, um Deine "Berechnungsschleife/-folge" hinsichtlich der Bedingungen / Berechnungsschritt aufzusplitten. Dafür könnten bereits einfache WENN-Formeln reichen, z.B. für die Vorauswahl mit dem Datum. Erst mittels dieser Hilfsspalte(n) machst Du dann in einem nachfolgenden Schritt Deine abschließende Berechnung. Das wird aber nur richtig gelingen, wenn sich die Berechnung für die letzten 30 Tage "statisch" auf das jüngste/aktuelle Datum bezieht. Bei einer dynamischen Rückberechnung für jedes beliebige Datum der Auflistung wird wohl nur der zweite Ansatz tauglich sein.

2. Schlicht und ergreifend die komplizierte Formel in ein VBA-Makro auslagern. Die ganzen Wertebereiche werden dafür als Range-Parameter übergeben. Der Vorteil daran ist, dass Du viel umfangreichere Bedingungen berücksichtigen und zudem echte Berechnungsschleifen umsetzen kannst. Zudem ist eine Einzelschrittprüfung beim Testen des Makros äußerst hilfreich. Gegebenenfalls musst Du Dich etwas in VB für Applications einarbeiten, falls das Neuland sein sollte.

Gleichwohl gebe ich noch folgendes zu bedenken.
Der Erfahrung nach wird Excel sehr gerne als "Wundertüte" angesehen (/ missbraucht) mit der Verwunderung, warum die XLS-Dateien bei doch nur relativ wenig Daten schnell sehr groß und vor allem sehr langsam werden. Berechnungen sind äußerst zäh. Ein Grund ist vor allem, dass große und komplexe Formeln über hunderte oder tausende Zeilen wiederholt vorkommen, und zwar auch für viele Blätter pro Arbeitsmappe. "Kleinvieh" macht aber auch "viel Mist". Die Auslagerung in Makros kann hier ein wenig lindernd wirken, muss aber nicht.
In solchen Fällen ist viel eher die Frage zu stellen, ob die in Excel aufgelisteten Daten nicht besser in einer Datenbank aufgehoben sind und komplexe Formeln in Abfragen oder sogar in gespeicherte Prozeduren aufgelöst / ausgelagert werden. In diesem Zusammenhang können sogar Computed Columns eine deutliche Leistungssteigerung bewirken.
Jedenfalls wird dann Excel als Datenabfrage-Frontend benutzt, was Excel perfekt beherrscht, und die Kombination mit der Leistungsfähigkeit des Datenbanksystems ist ein Traum von Schnelligkeit. Dann ist es auch möglich, sich in Excel auf die eigentliche Aufgabe zu konzentrieren: die Datendarstellung/-präsentation.

Viel Erfolg
HansDampf06