Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1800to1804
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

2 Fragen an die Profis

2 Fragen an die Profis
06.01.2021 10:45:28
Christoph
Ich habe einige Fragestellungen bezüglich der Arbeitsweise von Excel.
Ich arbeite beruflich mit sehr großen Datenmengen die miteinander korrelieren. Hierbei habe ich für mich zwei Arbeitsstrategien mit Excel entwickelt, wobei ich mir nicht sicher bin welche in Bezug auf die Bearbeitungsgeschwindigkeit und Größe der Tabelle (in MB), die klügere Wahl ist.
Strategie 1 folgt einfachen Formeln, die viele Feldern Filter, Tabellenblätter und Zwischenberechnungen benötigen,
Strategie 2 folgt komplexen teils sehr sehr langen Formeln, mit weniger Feldern, Tabellenblättern und Zwischenberechnungen.
Excel scheint nach jeder Änderung eine Neuberechnung aller Daten der Tabellenblätter durchzuführen. Diese Berechnung scheint jedoch erst einzusetzen wenn man die Dateneingabe für einen Moment unterbricht. Je nachdem wie groß und komplex die Tabelle ist, werden diese "Momente" irgendwann sehr zähflüssig. Kann man durch die Konstruktion der Tabelle die Berechnung beschleunigen?
Z.B. unter folgende Annahme, ist eine fächerartige Konstruktion in der verschiede Bezüge parallel bearbeitet werden klüger, als eine Kettenartige in der die Informationen nacheinander kettenartig bearbeitet werden, vorteilhafter?
Ich habe mir das meiste was ich über Excel weiß selbst beigebracht, deshalb hoffe ich das meine Fragestellungen nicht lächerlich wirken.

19
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: 2 Fragen an die Profis
06.01.2021 10:57:01
Daniel
Hi
Prinzipiell hat die Konstruktion der Tabelle schon einen Einfluss auf die Berechnungsgeschwindigkeit, bzw je nach Aufgabenstellung kann ein geschickter Tabellenaufbau dein Einsatz schneller rechnen der Formeln erlauben als ein ungeschickter.
Allerdings ist deine Fragestellung noch zu allgemein um konkret antworten zu können.
Was versteht du unter "fächerartig" und "kettenartig"?
Gruß Daniel
AW: 2 Fragen an die Profis
06.01.2021 11:31:20
ChrisL
Hi Christoph
Ich interpretiere die Frage, ob es besser ist eine Formel zu "verschachteln" oder aufzuteilen
Als Beispiel:
A1 = B1/D1
A2 = A1+1
im Gegensatz zu:
A2 = B1/D1+1
Ich denke die Verschachtelung wäre minimal vorteilhafter, da weniger "angezeigt" werden muss. Aber ich glaube nicht, dass es einen spürbaren Unterschied macht.
Ein Zwischenresultat wäre m.E. sinnvoll, wenn mehrere unterschiedliche Formeln auf das gleiche Zwischenresultat zugreifen.
Zudem wären auch Aspekte wie "Wartung" zu berücksichtigen, wo es vorteilhaft sein kann, wenn mit Zwischenresultaten gearbeitet wird, damit man sich schneller in die Berechnung eindenken kann.
Die grossen Hebel für Performance-Optimierungen sind m.E. nicht in der Fragestellung. Andere Faktoren wie z.B. eine exzessive Verwendung von volatilen Formeln wie INDIREKT oder ein geschickter Tabellenaufbau/Datenstruktur könnten mehr ins Gewicht fallen.
sehr großen Datenmengen die miteinander korrelieren
Darunter könnte man eine relationale Datenbank verstehen. Vielleicht sind auch andere Mittel wie z.B. Access oder Excel Power-Query geeignete Alternativen.
cu
Chris
Anzeige
kein Profi
06.01.2021 12:38:47
ralf_b
Für den ersten Ansatz könntest du die Automatische Berechnung auf manuell setzen. Sofern du die errechneten Werte nicht sofort benötigst. Ich gehe davon aus das du diverse Werte eingibst und erst abschließend berechnete Ergebnisse benötigst. Die Berechnungsoptionen sind im Menü Formeln im Abschnitt Berechnung anklickbar.
gruß
rb
Seriell vs. parallel: Extrem
06.01.2021 13:22:45
lupo1
1) B12[:B1010]: =A12+B11 erfordert zwar nur 1998 Berechnungen (Faktorenaufnahmen), aber 999 serielle Schritte
2) B12[:B1010]: =SUMME(A$12:A12) erfordert hingegen 1998*1997/2 (~2.000.000) Faktorenaufnahmen, aber 999 parallele Schritte (also seriell nur 1).
Entscheidung: 1) ist trotzdem auf jeden Fall vorzuziehen. Denn der letzte der parallelen Schritte in 2) ist fast so bedeutend (nämlich die Hälfte), wie alle von 1) zusammen! Da könntest Du auch mit noch so vielen "Octacores" rechnen; es wäre unsinnig.
Zwischenlösungen könnten aber durchaus je nach Rechnerumgebung effizient sein:
3) B12[:B1010]: =SUMME(
INDEX(A:A;KÜRZEN((ZEILE()-1)/10)*10+1):A12)+
INDEX(B:B;KÜRZEN((ZEILE()-1)/10)*10)

hat (inhaltlich) 100 parallel mögliche Rechnungen und gleichzeitig (inhaltlich) 100 seriell. Das lässt sich nun je nach Prozessorumgebung optimieren. Die Frage ist, ob ein Compiler das maßgeschneidert bewältigt. Hier sind es ca. 50.000 Faktorenaufrufe, also geometrisch irgendwo mittig zwischen 1.998 und 2.000.000.
Anzeige
Auslagerung
06.01.2021 14:35:07
RPP63
Mal ein beliebter rechenintensiver "Fehler":
Tabelle A:M Indizierung in Spalte A
Gewünschte Ausgabe des Datensatzes mittels
=SVERWEIS($meineSuchzelle;A:M;Spalte(B9);0)
(der Dollar ist beabsichtigt!)
das Ganze dann 12mal nach rechts ziehen!
Sehr viel günstiger ist eine Hilfsspalte mit
=VERGLEICH(meineSuchzelle;A:A;0)
Dann kann man sich auf diese Hilfszelle mittels
=INDEX(B:B;meineSuchzelle)
beziehen und diese nach rechts ziehen.
Noch besser (schneller) ist der VERGLEICH($meineSuchzelle;A:A;1)
aber dies ist meist nicht gewünscht.
Anzeige
Es könnte beim SVERWEIS sein, dass ...
06.01.2021 15:41:50
lupo1
=SVERWEIS($meineSuchzelle;A:M;Spalte(B9:M9))
(als Formelarray abgeschlossen) genauso schnell ist. Denn dann dürfte auch nur einmal gesucht werden.
Da bin ich mir sogar relativ sicher …
06.01.2021 15:59:19
RPP63
… Lupo1!
Dürfte nix anderes sein als eine Konstruktion mittels LET()
Ist aber für den TE mit seinem Excel 2016 leider Utopie!
Formelarrays gab es aber immer schon.
06.01.2021 16:07:04
lupo1
Vielleicht kann Daniel ja mal testen, da er derj. ist, der das Nicht-Neuberechnen gleicher Formelteile festgestellt hat (sowohl in einer als auch zwischen mehreren Formeln). Möglicherweise erst ab einer bestimmten Version.
AW: Formelarrays gab es aber immer schon.
06.01.2021 20:31:23
Daniel
Warum testest du nicht selber kleiner Faulpelz?
Bzw ich kann mich nicht daran erinnern das Nicht-Neuberechnen gleicher Formelteile festgestellt zu haben.
Meiner Erfahrung nach werden Formeln immer vollständig berechnet, der einzige Weg, bei sich wiederholenden Teilformeln die wiederholte Berechnung zu vermeiden ist, diese als eigenständige Formel in eine weitere Zelle auszulagern und in der Hauptformel nur den Bezug auf diese Zelle zu verwenden.
(Was in den neusten Excelversionen mit Let passiert, kann ich nicht sagen, aber wenn sich wiederhende Teilformeln nicht neu berechnet werden, dürfte LET keine Verbesserung der Performance bringen sondern würde nur den Formeltext kürzen)
Daher bitte ich dich, mal den Beitrag, aus dem du das herausgelesen haben willst herauszusuchen und hier zu verlinken, damit wir das überprüfen können.
Gruß Daniel
Anzeige
Von 'Feststellen' war mE nie direkt die Rede, ...
07.01.2021 02:58:46
Luc:?
…Lupo,
sondern wohl nur von der Möglichkeit, dass das ebenfalls zur Fml-Optimierung gehören könnte. Einigermaßen sicher scheint nur zu sein, dass plurale (u.duale) MatrixFmln nur 1× für alle Werte berechnet wdn, aber da gibt's unter bestimmten Umständen auch die Variante, dass diese Berechnung für jede von derselben Fml okkupierte Zelle wiederholt wird, was man im Ggsatz zur o.g. Optimierung eindeutig feststellen kann. 1malig sollte dann eher die Berechnung eines vergebenen Namens sein, was man ggf auch besser überprüfen kann.
Übrigens, ist LET/SEI jetzt wieder im Fktskanon enthalten? Soll ja zwischendurch wieder entfernt worden sein, wenn ich das richtig verstanden hatte.
Morhn, Luc :-?
Anzeige
Nein, LET ist weiterhin dabei ...
07.01.2021 06:44:24
lupo1
... und bisher wurden wohl systematisch noch keine neuen Funktionen zurückgezogen.
Es kann aber sein, dass durch irgendwelche Einflüsse oder Updates im Betachannel mal ein System "unbeabsichtigt" auf den vorigen Mini-Zwischenstand zurückgesetzt wird.
So habe ich bei meinen beiden Systemen mit Betachannel plötzlich nur noch auf dem einen =LAMBDA() zur Verfügung. Sollte nicht sein, ist aber so. Bei maninweb war z.B. plötzlich =BÖRSENHISTORIE() wieder verschwunden.
Ahja, habe wohl LET m.LAMBDA verwechselt! owT
07.01.2021 18:13:50
Luc:?
:-?
AW: Von 'Feststellen' war mE nie direkt die Rede, ...
07.01.2021 11:34:09
Daniel
Wie gesagt Lupo
Bitte zeige mir mal den Beitrag, aus dem du das "da er derj. ist, der das Nicht-Neuberechnen gleicher Formelteile festgestellt hat "
herausgelesen haben willst.
Ich habe das so meiner Erinnerung nach nie geschrieben, wie kommst du dazu, dies zu behaupten?
Anzeige
Beiß Dich nicht so fest ... dann ziehe ich die Be-
07.01.2021 12:15:04
lupo1
-hauptung einfach wieder zurück und sage allgemein:
Daniel hat interessante Performance-Messungen angestellt, woraus zu entnehmen sein könnte, dass Excel wiederholte Berechnungen erkennt und zeitsparend verwendet.
Suchen tue ich das nicht. Ich bin kein guter Rechercheur.
AW: Beiß Dich nicht so fest ... dann ziehe ich die Be-
07.01.2021 12:45:27
Daniel
Dann schreibe bitte in Zukunft nur folgendes:
"Daniel hat interessante Performacemessungen durchgeführt, FAS Ergebnis könnt ihr hier nachlesen:" gefolgt von Link auf den entsprechenden Beitrag.
dann bist du auf der sicheren Seite.
Sollte sich herausstellen, dass das was du über mich öffentlich schreibst nicht zutrifft, dann wäre das nicht gut für dich.
Anzeige
So so ...
07.01.2021 13:11:16
lupo1
... es war aber keinerlei Kritik, falls Du das gemerkt haben solltest ... und es war nur andersherum ausgedrückt, als wie Du es selbst gesagt hattest.
Weswegen willst Du mich jetzt also für, sagen wir 10 Jahre, wegen gutwilliger Nachrede hinter Gitter bringen?
Du Mächtiger, Du! Du Erbarmungsloser, oh, bitte habe Verständnis für die, die da Empathie besitzen.
:-)) owT
07.01.2021 18:12:07
Luc:?
:-?
Lupo, das ist zwar nett gemeint von dir
11.01.2021 15:19:00
dir
aber wenns nett gemeint und schlecht gemacht ist, ist es trotzdem nicht gut.
du verdrehst leider die Tatsachen, wenn du schreibst
"Daniel meint ja auch herausgefunden zu haben, dass Excel bei mehreren gleichen Formelbestandteilen (die sich manchnal nicht vermeiden lassen) diese nur einmal rechnet"
dann ist das schlichtweg FALSCH.
ich gehe nämlich davon das solche sich wiederholenden Formelbestandteile NICHT nur einmal berechnet werden, sondern jedesmal, wenn sie in der Formel auftauchen.
das was du schreist, ist nicht "andersrum ausgedrückt", sondern einfach nicht zutreffend.
(die Frage kommt auf, warum du das machst)
da du ja nach eigenen Angaben nicht so gut im Recherchieren bist, hier der betreffende Beitrag für dich, wo du das nochmal nachlesen kannst:
https://www.herber.de/forum/archiv/1556to1560/1558337_SVerweis_mit_Sortierung.html#1558677
solltet du einen anderen Beitrag im Kopf haben, so müsstest du ihn heraussuchen damit wir drüber reden können, denn ich kenne keinen anderen.
ansonsten, wenn du dich auf mich beziehst, dann gib meine Aussagen bitte korrekt wieder und nicht verfälscht, denn so ist das so, als würde jemand behauten, du wärest NICHT der Erfinder der GLÄ-WEX-Formeln zur Extrahierung von Teilstrings.
Anzeige
AW: Benutze gar keine Tabellenfunktionen
06.01.2021 16:48:35
Sulprobil
Hallo Christoph,
für mich käme keine Deiner Alternativen in Frage.
Allgemein empfehle ich zum Verständnis Charles Williams' Artikel (Englisch):
https://docs.microsoft.com/en-us/previous-versions/office/developer/office-2010/ff700515(v=office.14)?redirectedfrom=MSDN
Bei mehreren tausend Datensätzen würde ich normalerweise eine SQL Datenbank (MS SQL Server / Oracle) einsetzen und diese dann z. B. von Excel / VBA aus abfragen.
Falls Du darauf keinen Zugriff hast, käme ggf. die Arbeit mit csv Dateien via Excel / VBA in Betracht. Beispiel: https://berndplumhoff.gitbook.io/sulprobil/excel/excel-vba-solutions/sbdatastats
Um es etwas überspitzt für mehrere tausend Datensätze (!) zu formulieren:
1. Ausschließlich mit Tabellenfunktionen arbeiten nur Amateure, keine Profis. Bereits eine Diskussion über die Tabellenfunktion SVERWEIS verrät den Amateur (wie gesagt: überspitzt :-) ).
2. Profis setzen Datenbanken ein.
3. VBA ist insbesondere zu empfehlen, um manuelle Schritte zu automatisieren und damit den Prozess sicherer und reproduzierbar zu machen.
4. Besser als VBA mit Datenbanken ist sicherlich Python mit Datenbanken.
Viele Grüße,
Bernd
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige