Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1336to1340
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

Geht das nicht schneller.... ???

Geht das nicht schneller.... ?
14.11.2013 20:55:05
Stefan
Hi, ich habe hier eine Tabellenberechnung, die im Prinzip funktioniert... nur benötigt die Berechnung gefühlt einen Lebenszyklus meines Rechners.
Kann ich das irgendwie effektiver gestalten?
Anbei die Testtabelle (eine Abrechnung von Amazon - gekürzt)
1. Amazon Datei: Die Rohdaten - im Beispiel gekürzt auf 13 Zeilen. Im Original sind das bis zu 15 000 Zeilen.
2. Verkäufe: das Herauslösen der wichtigen Datensätze zu den Verkäufen
3. Gutschriften: das Herauslösen der wichtigen Datensätze zu den Gutschriften
Bin für jeden Tipp dankbar!
https://www.herber.de/bbs/user/88094.zip
LG
Stefan

13
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Geht das nicht schneller.... ?
15.11.2013 10:50:53
Stefan
Ohje, keiner ne Idee?

AW: Geht das nicht schneller.... ?
15.11.2013 13:05:37
Daniel
Hi
naja, irgenwie solltest du schon genauer beschreiben, was du haben willst und was dein Makro macht (mit "wichtige Datensätze herauslösen" kann niemand was anfangen, weil niemand ausser dir weiss, was wichtige Datensätze sind)
und wenn du schon ein Makro hast, dann solltest du dieses auch mitschicken, dann kann man sich das anschaun und optimieren.
außerdem ist im Forum immer etwas Geduld angeraten, jeder antwortet hier freiwillig und du hast keinen Anspruch auf eine Antwort.
Ungeduld bewirkt oft das Gegenteil und senkt die Bereitschaft zu antworten.
Gruß Daniel

Anzeige
AW: Geht das nicht schneller.... ?
15.11.2013 13:10:36
Ralf
Hallo Stefan,
ich kann die Datei nicht runterladen, wird bei mir gesperrt.
Jedoch ein paar Tipps, was das abarbeiten von Makros erheblich verlangsamt.
* Bildschirmaktualisierung: mit application.screenupdatung=false abschalten, muss am Ende wieder eingeschaltet werden, wegen Problemen bei der Druckvorschau etc
* Druckerkommunikation: application.printercommunication=false oder besser aktiven Drucker zu XPS-Drucker wechseln und zurück am Ende
* Selectierungen im Makro sind ganz schlecht (bei aktiver Bildschirmaktualierung)
Bsp aus Aufzeichnung:
Range("A1").Select
Selection.Copy
besser: cells(1,1).copy
* Schleifen haben nicht ausreichende Abbruchbedingungen, weswegen sie ewig laufen
* Objektorientiert programmieren (for each zelle in range) statt (for n=1 to .usedrange.rows.count)
* usw, usf..
Ralf

Anzeige
AW: Geht das nicht schneller.... ?
16.11.2013 13:27:10
stefan
, Das " geht das nicht schneller " war rein funktional auf die Excelsache gemünzt. Ich bin überhaupt nicht ungeduldig.
ich hab da gar kein makro verwendet, sondern arbeite hauptsächlich mt verweisen in den zellen.
ich lade die datei montag noch einmal hoch.
derweil vielen dank und liebe grüsse
stefan

AW: Geht das nicht schneller.... ?
16.11.2013 13:38:50
Stefan
Hi, also ich bin jetzt an nem anderen Rechner und kann die Datei problemlos laden und öffnen.
Kurz nochmals tzu der Datei:
Tabelle 1. Amazon Datei: Die Rohdaten - im Beispiel gekürzt auf 13 Zeilen. Im Original sind das bis zu 15 000 Zeilen.
Tabelle 2. Verkäufe: das Herauslösen der wichtigen Datensätze zu den Verkäufen
Tabelle 3. Gutschriften: das Herauslösen der wichtigen Datensätze zu den Gutschriften
Wie gesagt, Tabelle 1 sind die Rohdaten, die mir Amazon zur Verfügung stelt.
In der Tabelle 2 werden per SVERWEIS und VERWEIS nur die wichtigsten Infos zu verkäufen aus Tabelle 1 importiert.
Tabelle 3 ist nicht sooo wichtig, aber im Prinzip wie Tabelle 2, nur eben für Gtschriften.
Das Problem ist, dass die Berechnung schon von wenigen Zeilen extrem lange dauert. Die gesamte Rohdatei ist bis zu 15000 Zeilen lang und das packt selbst mein schnelles MBP nicht wirklich.
Danke für Eure Hilfe.
Stefan

Anzeige
AW: geht viel schneller
16.11.2013 21:15:02
Daniel
Hi
bei der genannten Datenmenge sollte man die schnelle Variante des SVerweises verwenden, das ist die mit 4. Parameter = WAHR.
hierzu muss allerdings die Datenquelle/Suchmatrix (der zweite Parameter) nach der ersten Spalte aufsteigend sortiert sein.
auch liefert die Funktion dann keinen Fehler mehr, wenn der Suchbegriff nicht gefunden wird. Wenn das vorkommen kann, muss man das so abfangen:
=WENN(SVERWEIS(A2;'Amazon Datei'!K:N;1;WAHR)=A2;SVERWEIS(A2;'Amazon Datei'!K:N;4;WAHR);"")
desweiteren sollte man, wenn man in einer Zelle den selben SVerweis mehrfach verwendet und nur den Spaltenparameter ändert (so wie bei dir im Blatt Verkäufe Spalte B-F) nicht jedesmal den SVerweis verwenden, sondern zunächst in einer Hilfsspalte die Zeilennummer der Fundstelle ermitteln:
=WENN(SVERWEIS(A2;'Amazon Datei'!K:K;1;WAHR)=A2;Vergleich(A2;'Amazon Datei'!K:K;1);0)

um dann in den Ausgabespalten die Werte nur noch mit der Index-Funktion und der in der Hilfsspalte beerechneten Zeilennummer anzuzeigen.
=Wenn(B2=0;"";Index('Amazon Datei'!$K:$BZ;$B2))
das hat dann die Folge, daß die zeitaufwendige Suche nur 1x pro Zeile erfolgen muss und nicht für jede Zelle.
Gruß Daniel

Anzeige
AW: geht viel schneller
18.11.2013 09:44:25
Ralf
Hallo,
in Ergänzung zu Daniels Antwort:
ich habe auch eine Tabelle mit mehr als 20.000 Zeilen gehabt, wo in jeder Zelle eine Formel enthalten war, auch viele Spaltenverweise.
Ich hatte auch Performance-Probleme.
Bis ich eine Kleinigkeit geändert habe.
Nimm bei der Matrix nicht die ganzen Spalten "K:K", sondern nur den beschriebenen Bereich, bspw "K1:K15000" plus einer Sicherheitsreserve.
SVERWEIS schaut tatsächlich in alle Zellen, bis Zeile 1.048.576, das dauert natürlich.
Gruß
Ralf

AW: geht viel schneller
18.11.2013 20:52:52
Stefan
Hi Ralf, ich hab das mal getestet und das geht schon viiiiel schneller. Aber seltsamerweise bleibts dann ab 83% schier stehen. Ich versuche mal die Tipps von Daniel einzubauen. Danke an auch an Euch an dieser Stelle.

Anzeige
Auswertung Liste, Datenabfrage, Pivottabelle
16.11.2013 21:32:29
fcs
Hallo Stefan,
ich hab mich mal intensiv mit deinem Problem beschäfftigt,
Mit Hilfsspalten kann man die Berechnung stark beschleunigen. Allerdings müssen dann die Daten nach dem Schlüssbegriff sortiert werden.
Alterntaiv kann man die Daten auch per Datenimport aus der Amazon-Datei einlesen. Ergänzt um ein paar Formeln und als Pivottabellenbericht ausgewertet läuft das prima.
Alles weitere findest du in der ZIP-Datei.
https://www.herber.de/bbs/user/88119.zip
Gruß
Franz

AW: Auswertung Liste, Datenabfrage, Pivottabelle
18.11.2013 20:50:57
Stefan
Hi Franz, erst einmal vielen Dank! Das sieht echt interessant aus, aber ich checks nicht... Wie ist denn da überhaupt der Ansatz. Alleine diese dqy Dateien sind mir fremd.
Im Prinzip will ichs schon verstehen, aber ist das für nen ImPrinzipAnfänger machbar? Außer Sverweis und einige andere Abfragen kann ich nix.
LG
Stefan

Anzeige
AW: Auswertung Liste, Datenabfrage, Pivottabelle
19.11.2013 03:29:51
fcs
Hallo Stefan,
soweit ich das gesehen hab, hast du mit der Datei ja die Möglichkeit per XML-Import die Daten aus irgendeiner von Amazon zur Verfügung gestellten Datenquelle zu importieren. Danach hast du dann die ca. 15000 Datenzeilen. Dich interessieren für weitere Auswertungen aber nur die Inhalte von bestimmten Spalten/Datenfeldern. Für die Auswertung -und das bereitet hier die Probleme- möchtest du zusätzlich die Inhalte, die in der Quelle in einer Spalte stehen, in der Auswertung in mehreren Spalten darstellen.
Das kann man so wie du es bisher versucht hast mit Formeln machen. Hierbei stößt man aber an die Grenzen von Excel oder benötigt, um zum Ziel zu kommen, einiges an Klimmzügen (Sortieren der Quelldaten, Hilfspalten), um dies mit akzeptabler Rechenzeit umzusetzen.
Mit dem Datenimport nutzt man ein Werkzeug in Excel, das ohne die klassischen Formeln auskommt, um aus einer aus einer Datenquelle (Datenbank, Textdatei oder auch andere Exceltabelle) einen Auszug von Daten in eine Tabelle einzulesen. Die Informationen zur Datenquelle und welche Daten wie importiert werden sollen speichert Excel im Hintergrund unter den Verbindungseienschaften, des mit Importdaten gefüllten Tabellenbereichs.
Die Datenquerry-Dateien (dqy) sind ein "Abfallprodukt", wenn man den Datenimport in Excel über das Menü Daten durchführt. Man kann -muss aber nicht- sie wenn man mit dem Assistenten den Datenimport ausführt zum Schluß speichern. Die dqy-Dateien speichern die Anweisungen für einen Datenimport. Der Vorteil dieser dqy-Dateien ist, dass man sie mit einem Texteditor "einfach" anpassen kann.
Damit du Erfahrungen mit den Möglichkeiten des Datenimports sammelst solltest du die dqy-Dateien erst einmal vergessen und die Daten wie von mir beschrieben Schritt für Shritt importieren. Am Ende des Datenimports werden die gefundenen Daten dann als "Tabellen-Objekt" im Tabellenblatt dargestellt.
An diesem Tabellenobjekt hab ich dann rechts weitere Spalten angefügt, um für die anschliessende Auswertung mit einem Pivotabellenbericht per Formel die Informationen in den verschiedenen Typ-Spalten in jeweils einer Spalte darzustellen. Das besondere an den Formeln innerhalb von Tabellenobjekten ist, dass Excel hier wenn möglich nicht die Zelladressen benutzt sondern die Spaltentitel.
Beispiel für Zelle O2 im Blatt "Verkaufe":
=WENNFEHLER(INDEX(Tabelle_Amazon_Verkaufe[@[Type]:[currency8]];VERGLEICH("*";
Tabelle_Amazon_Verkaufe[@[Type]:[currency8]];0));"")
entspricht klassisch
=WENNFEHLER(INDEX(F2:N2;VERGLEICH("*";F2:N2;0));"")
Das mag auf den ersten Blick komplizierter aussehen, ist es aber nicht, wenn man es einmal verstanden hat. Der Vorteil dieser Art der Formeln: In allen Zeilen der Spalte steht die gleiche Formel.
Wenn die Daten des Imports auf diese Weise aufbereitet sind, dann kann man an den letzten Schritt der Auswertung gehen: Die Erstellung des Pivot-Tabellenberichtes via Menü "Einfügen".
Mit Pivot-Tabellenberichten werden die Daten einer Liste entsprechend den in den verschiedenen Bereichen (Bericht, Zeilen, Spalten, Daten) plazierten Datenfeldern(Spaltentitel) ausgewertet. In deinem Fall werden alle Felder, die 1:1 übernommenwerden sollen im Zeilenbereich eingefügt, die neue Spalte "TypV" im Spaltenbereich, und "BetragV" im Datenbereich.
Dadurch erreichst du die Darstellung der Typen in jeweils einer separaten Spalte. Gleichzeitg reduziert sich Anzahl der Datenzeilen, da Zeilen mit identischen Zeilenfeldern nicht mehrfach angezeigt werden. Für weitere Einstellungen bitte die Hinweise im Blatt "Info" der Datei beachten.
Ich hoffe dies hilft dir weiter.
Gruß
Franz

Anzeige
AW: Auswertung Liste, Datenabfrage, Pivottabelle
19.11.2013 16:19:17
Stefan
Hi Franz, Danke für die Ausführliche Erläuterzung. Das werd ich mir heute Abend auf dem Sofa mal reinziehen... Ich hoffe, es macht dann KLICK.
LG
Stefan

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige