Dieses Forum nutzt Cookies
Dieses Forum verwendet Cookies, um deine Login-Informationen zu speichern, wenn du registriert bist, und deinen letzten Besuch, wenn du es nicht bist. Cookies sind kleine Textdokumente, die auf deinem Computer gespeichert werden. Die von diesem Forum gesetzten Cookies werden nur auf dieser Website verwendet und stellen kein Sicherheitsrisiko dar. Cookies aus diesem Forum speichern auch die spezifischen Themen, die du gelesen hast und wann du zum letzten Mal gelesen hast. Bitte bestätige, ob du diese Cookies akzeptierst oder ablehnst.

Ein Cookie wird in deinem Browser unabhängig von der Wahl gespeichert, um zu verhindern, dass dir diese Frage erneut gestellt wird. Du kannst deine Cookie-Einstellungen jederzeit über den Link in der Fußzeile ändern.

Performance-Problem mit Formel
#1
Hallo allerseits,

ich hoffe auf euren Rat bei folgendem Problem:

2 Tabellen. Tabelle 1 enthält Flugdaten, wobei hier der Abflughafen (Origin) und das Flugdatum + Uhrzeit wichtig sind. Tabelle 2 enthält Wetterdaten, die ich heruntergeladen habe. Wetterdaten gibt es für jeden Flughafen einmal pro Stunde. Ich muss nun für jeden Flug (Flughafen/Datum) in Tabelle 1 einen passenden Eintrag in der Wettertabelle 2 (Flughafen/Wetter) finden. Gibt es für den Eintrag in Tabelle 1 keinen genauen Uhrzeiteintrag in Tabelle 2, soll der zeitlich nächstkleinere Wert gefunden werden. Mein großes Problem mit der verwendeten Formel sind die Tabellengrößen:

Tabelle 1: 800.000 Einträge
Tabelle 2: 160.000 Einträge

Die verwendete Formel tut was sie soll, ich habe aber beim Runterkopieren der Formel nach einer Stunde Laufzeit erst ein Prozent erreicht. Ich habe eine verkürzte Version meiner Daten angehängt und hoffe inständlig auf Tipps zu diesem Laufzeitproblem.

Kann übrigens auch gerne eine andere Formel sein, wenn sie ihr Soll erfüllt.

Herzlichen Dank und Grüße
Chris


Angehängte Dateien
.xlsx   Forum Beispiel.xlsx (Größe: 739,92 KB / Downloads: 9)
Antworten Top
#2
Hallo Chris,

ich habe aus reiner Neugierde mal dein Beispiel geladen und sehe im roten Feld die Buchstaben "E + D". Was bedeutet das??  Ich kenne mich mit Formeln nicht aus, sehe hier aber keinen kogischen Zusammenhang wo diese Werte herkommen?? Was hat das mit Wetterdaten zu tun??

Bei Formeln in dieser Menge stösst man technisch gesehen bestimmt von der Verarbeitungszeit her an Grenzen.  Kann man diese Datenmenge nicht um die -unbenutzten Daten- reduzieren???  Ist nur eine Frage aus reiner Neugier.  Ich habe erhebliche Zweifel das es bei der Datenmenge überhaupt praktikable Lösungen gibt??

Selbst als Volksschüler kann man berechnen wie lange das dauert, wenn du nach 1 Stunde erst 1% erreicht hast!  
Als alter Praktiker frage ich:  Muss man alle Daten für 24 Stunden haben?  Reichen nicht 2-3 Stunden aus, verteilt auf 8-12 Dateien?  

mfg  Gast 123
Antworten Top
#3
Hallo,

mein Kommentar nach 2 Minuten Datei-Durchsicht:

=aggregat() ist eine recht langsame Formel, es ist kein Wunder, dass es bei dieser Datenmenge zu langen dauert.

M.E. ist der einzige Weg, NUR die relevanten Daten in ein Array zu übertragen und dort zu berechnen. Da ich aber in der Kürze nicht verstanden habe, welche Spalten relevant sind, bedarf es noch einiger Erklärungen.

mfg
Antworten Top
#4
Exclamation 
Die AGGREGAT-Formel ist Blöd-Zinn. Die funktioniert nur bei Puppenstuben-Modellen, aber nicht im ernsthaften Betrieb. Leider gibt es hier in den Foren meist nur ebensolche, so dass die Antworter darauf angespitzt sind.

Richtig entweder per VBA, oder mittels Formeln mit Sortierung und (evtl. mehrstufigem) VERGLEICH ohne ;FALSCH). Oder per PIVOT-Tabelle!
Antworten Top
#5
(10.02.2017, 16:52)Fennek schrieb: Hallo,

mein Kommentar nach 2 Minuten Datei-Durchsicht:

=aggregat() ist eine recht langsame Formel, es ist kein Wunder, dass es bei dieser Datenmenge zu langen dauert.

M.E. ist der einzige Weg, NUR die relevanten Daten in ein Array zu übertragen und dort zu berechnen. Da ich aber in der Kürze nicht verstanden habe, welche Spalten relevant sind, bedarf es noch einiger Erklärungen.

mfg

Hallo Fennek,

vielen Dank erst einmal!

In Tabelle 1 soll aufgrund der Spalten I (ORIGIN) und M (DAY_DEP_TIME) in Tabelle 2 ein passender Eintrag gefunden werden. Die Vergleichspalte zu ORIGIN in Tabelle 2 ist Spalte A (STATION) und die Vergleichsspalte zu DAY_DEP_TIME in Tabelle 2 ist Spalte B (VALID).

--> Finde zu Flughafen und Flugdatum aus Tabelle 1 einen passenden Eintrag (gleiche Zeit oder nächstfrühere) aus Tabelle 2 und gebe mir den Buchstaben aus Spalte V der Tabelle 2 zurück.

Ich hoffe, ich konnte dir das ein wenig klarer vermitteln?

Herzlichen Dank,
Chris


Angehängte Dateien
.xlsx   Forum Beispiel.xlsx (Größe: 739,92 KB / Downloads: 3)
Antworten Top
#6
(10.02.2017, 16:55)lupo1 schrieb: Die AGGREGAT-Formel ist Blöd-Zinn. Die funktioniert nur bei Puppenstuben-Modellen, aber nicht im ernsthaften Betrieb. Leider gibt es hier in den Foren meist nur ebensolche, so dass die Antworter darauf angespitzt sind.

Richtig entweder per VBA, oder mittels Formeln mit Sortierung und (evtl. mehrstufigem) VERGLEICH ohne ;FALSCH). Oder per PIVOT-Tabelle!

Hallo Lupo,

danke dir für deine Einschätzung! Die Idee mit dem Aggregat kam von einem Forums-Kollegen. Zu seiner Ehrenrettung muss man sagen, dass er nichts über die letztendliche Datenmenge wusste. Leider kenne ich mich mit Excel nicht gut genug aus, um deine Tipps ad hoc in die Tat umzusetzen.

Herzlichen Dank und Grüße,
Chris
Antworten Top
#7
off topic...

Hallo, kann es sein, dass du nunmehr mindestens dreimal dieselbe Datei hochgeladen hast...? Muss das sein..?
Gruß Jörg
ich muss mich erst wieder ganz langsam heran robben. Also bitte ich um Nachsicht

"Wer immer tut, was er schon kann, bleibt immer das, was er schon ist." - Henry Ford
Antworten Top
#8
(10.02.2017, 17:08)Jockel schrieb: off topic...

Hallo, kann es sein, dass du nunmehr mindestens dreimal dieselbe Datei hochgeladen hast...? Muss das sein..?

Es waren 2 Uploads. Sollte dich das geärgert haben, bitte ich vielmals um Entschuldigung. \
Antworten Top
#9
Du kannst gern Dateien auch wieder löschen. Ich werde für diesen Wunsch allerdings immer belächelt.

So, nun zur Lösung (bei nach Flugh/Datumzeit sortierter Tab2):

Tabelle1!AF2: =VERGLEICH(ERSETZEN(I2;3;1;ZEICHEN(CODE(RECHTS(I2))-1));Tabelle2!A:A)+1
Tabelle1!AG2: =VERGLEICH(I2;Tabelle2!A:A)
Tabelle1!N2: =INDEX(Tabelle2!V:V;AF2-1+VERGLEICH(M2;INDEX(Tabelle2!B:B;AF2):INDEX(Tabelle2!B:B;AG2)))
Tabelle1!A1: AA

Die genannten Hilfspalten können noch entfallen, wenn Du eine Tabelle mit den Flughäfen anlegst und die beiden ersten Formeln dort nur einmal verwendest, statt in jedem Datensatz. Das bringt nochmal ein paar Körner und Dateigrößenreduktion.

Ich tippe jetzt auf eine Berechnung unter 2 Minuten.
Antworten Top
#10
(10.02.2017, 17:24)chrisl schrieb: Es waren 2 Uploads. Sollte dich das geärgert haben, bitte ich vielmals um Entschuldigung. \

Hallo, mich ärgert das nicht, ich finde nur: einmal reicht, man könnte ja auf den Beitrag verlinken. Und waren es nicht drei mit dem letzten thread. War es nicht immer die selbe Datei...?
Gruß Jörg
ich muss mich erst wieder ganz langsam heran robben. Also bitte ich um Nachsicht

"Wer immer tut, was er schon kann, bleibt immer das, was er schon ist." - Henry Ford
Antworten Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste