Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Arrayformeln mit mehreren Minuten Kalkulationszeit

Arrayformeln mit mehreren Minuten Kalkulationszeit
06.08.2017 15:10:42
Oli
Hallo zusammen,
ich zerbreche mir gerade den Kopf, wie ich die Arrayformel eines Anderen etwas schlanker gestalten kann. Im Endeffekt werden dabei lediglich Rohdaten aus zwei Blättern aufsummiert. Der Aufbau sieht in etwa wie folgt aus:
{=summe(wenn(Bedingung in Spalte X*Bedingung in Spalte Y*Bedingung in Zeilenbereich Z; Wert aus gefundener Zelle;"")
+ das Gleiche noch einmal für das zweite Blatt

10 Summierungen brauchen bereits über 1 Sekunde zum berechnen, im gesamten Doc wird die Funktion leider mehrere Tausend mal gebraucht. Ich bin mir aber sicher, dass es eine Möglichkeit geben muss, das Ganze schneller zu schaffen. Die Rohdaten sind "nur" ca 15.000 Zeilen mit 12 zu durchsuchenden Spalten.
Meine erste Überlegung war nicht alle Zellen neu zu berechnen, die Rohdaten werden jedoch immer komplett neu eingespielt, daher muss jedes mal vollständig kalkuliert werden. Falls ich die Funktion SUMMEWENNS richtig verstanden habe, ist sie hierauf nicht anwendbar, da eine Matrix durchsucht wird und diese Funktion nur Zeilen oder Spalten bewältigen kann(?)
Gibt es eine andere Möglichkeit, die Summen effizienter zu bilden?
Anzeige

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Arrayformeln mit mehreren Minuten Kalkulationszeit
06.08.2017 15:20:01
SF
Hola,
zeig doch bitte eine Beispieldatei.
Gruß,
steve1da
AW: Arrayformeln mit mehreren Minuten Kalkulationszeit
06.08.2017 15:22:58
Daniel
HI
ob SummeWenns verwendbar ist, hängt davon ab wie deine Bedinungen gestaltet sind.
SummeWenns kann nur einfache Wertvergleiche mit =, Enthält, Beginnt mit, Endet mit bzw Größer und Kleiner für Zahlen.
Wenn SummeWenns anwendbar ist, ist es etwas schneller ein {=Summe()} oder Summenprodukt
bei den genannten Datenmengen ist aber eine Auswertung mit vielen Formeln nicht mehr sinnvoll.
Du solltest dir mal die Pivottabelle und deren Möglichkeiten anschauen.
Gruß Daniel
Anzeige
AW: nachgefragt ...
06.08.2017 15:23:01
...
Hallo Oli,
... wie sind denn die "Bedingung" derzeit konkret definiert? Ist die Matrixformel über den max auszuwertenden Bereich oder über den gesamten Spaltenbereich (also z.B. X:X) definiert? Im letzteren Fall den Bereich auf das max notwendige beschränken.
Eine weitere Möglichkeit der Performanceverbesserung wäre mit einfachen Formel(n) in Hilfsspalte(n) zu arbeiten und diese dann auszuwerten.
Eine auszugsweise Beispieldatei hier eingestellt könnte hilfreich sein.
Gruß Werner
.. , - ...
Anzeige
AW: nachgefragt
06.08.2017 16:54:06
Oli
Danke erstmal für die Antworten!
Die Bedingungen sind jedes mal lediglich "= Zelle XY" mit relativen Bezügen. Die Formel wird also benutzt um ein Element einer weiteren Tabelle zu generieren.
Der Bereich ist fest definiert, vorher bis 50.000, ich habe ihn bereits auf 15.000 runter gesetzt.
Pivottabellen würden für diesen Fall wahrscheinlich nicht funktionieren, da die ganzen Ergebnisse der Aufsummierungen nochmal weiter verwendet werden. Wenn die Rohdaten vollständig neu eingespielt werden würde die Pivot jedes mal anders aussehen und die Bezüge durcheinander werfen.
Am Besten ist wahrscheinlich wirklich eine Beispieldatei, die werde ich leider erst morgen liefern können.
Anzeige
Lösung gefunden!
07.08.2017 18:04:30
Oli
Um das ganze zum Abschluss zu bringen:
Ich habe es jetzt mithilfe von Pivottabellen gelöst. Das Aufsummieren löst die Pivot komplett für mich, mit einer Hilfszeile habe ich dann die Ergebnisse über eine Matrixformel wieder in die Zellen eingefügt an denen ich sie brauchte. Laufzeit liegt jetzt bei 3 Sekunden + ein paar Sekunden wenn die Pivots aktualisiert werden.
Vielen Dank an euch!
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige