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

Aggregat Formel sehr langsam

Aggregat Formel sehr langsam
29.04.2019 17:54:54
Curly
Guten Abend zusammen,
ich doktore aktuell an einer Formel, die mir möglichst in einer geschlossenen Datei nach einer Artikelnummer suchen soll (diese kann mehrmals vorkommen, und befindet sich in Spalte C), jede Artikelnummer hat ein Startdatum (Spate A), ein Enddatum (Spalte B) und einen Preis (Spalte D). Das sind hier ca. 1000 Datensätze
Nun habe ich eine andere Tabelle (ca. 3000 Datensätze), wo sich eben diese Teilenummer und ein Datum befindet. Nun möchte ich gerne als Ergebnis , wenn diese Teilenummer im Zeitraum vorhanden ist, den zu diesem Zeitpunkt gültigen Preis sehen.
Ich habe das mal Nachgebaut, wenn alles in einer Mappe ist bekomme ich es mit der Aggregat + Index Formel aus dem Internet hin, jedoch ist die Formel sehr langsam, da ich immer ganze Spalten prüfe. (Könnte man sowas begrenzen, wie über VBA alla UsedRange.Rows.Count).Row?)
In der Realität sind leider 2 verschiedenen Mappen und nicht wie im Beispiel nur Eine.
Formel:
=WENN(UND(A2"";B2"");WENNFEHLER(INDEX(Tabelle1!D:D;AGGREGAT(15;6;ZEILE(Tabelle1!C:C)/( _
Tabelle1!C:C=B2)
/(Tabelle1!A:A=A2);1));"Nicht vorhanden!");"")
https://www.herber.de/bbs/user/129482.xlsx
Schönen Abend und vorab danke für euere Hilfe
Danke Curly

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Aggregat Formel sehr langsam
29.04.2019 18:00:43
SF
Hola,
und warum lässt du die Formel über ganze Spalten laufen wenn die Daten nur ca 1000 Zeilen umfassen?
Gruß,
steve1da
AW: Aggregat Formel sehr langsam
29.04.2019 18:02:59
Curly
Hallo Steve,
weil die Datei wächst und es evtl auch mal mehr als 1000 Datensätze sind..
Gruß Curly
AW: Aggregat Formel sehr langsam
29.04.2019 18:17:13
SF
Hola,
dann setz den Bereich doch auf 3000 oder so. Oder erwartest du über 1 Million Datensätze?
Gruß,
steve1da
AW: Aggregat Formel sehr langsam
29.04.2019 18:23:43
Curly
Nein, das auf gar keinen Fall, ok stimmt von A1:A3000 damit habe ich dann erstmal eine Zeitlang puffer :-)
AW: das kann/sollte man aber optimieren ...
29.04.2019 19:20:59
neopa
Hallo Curly,
... dazu definiere die AGGREGAT()-Formel nicht bezogen auf einen Zelladressbereich. Sondern formatiere zuvor Deine Datentabelle in eine "intelligente" Tabelle. Danach definiere die Formel mit Bezug auf deren Feldnamen wie Start, ... Preis. Dadurch würde die Formel immer nur die wirklich in dieser vorhandenen Datensätze auswerten. Sie "wächst" quasi mit den erweiterten auszuwertenden Daten mit.
Solltest Du jedoch wirklich mal sehr viele tausende Datensätze auswerten müssen, dann ist eine solche Formel nicht optimal anwendbar. Denn auch wenn sie schneller auswertet als eine klassische Matrixformel, so ist sie doch von Haus aus eine Matrixformel, die auch noch viel PC-Ressourcen benötigt.
Gruß Werner
.. , - ...
Anzeige
AW: hierzu ergänzend noch ...
29.04.2019 19:38:49
neopa
Hallo,
... die Datentabelle in Tabelle1 ist mit [Strg]+[T] und einem Mausklick in eine solche "intelligente" Tabelle formatierbar.
Standardmäßig benennt Excel diese als "Tabelle1". Damit dies nicht verwechselt wird mit dem Tabellenblattnamen gleichen Namens hab ich diesen im Namensmanager umbenannt in Daten.
Die Formel in Tabelle2!C2 lautet dann wie folgt:

=WENNFEHLER(INDEX(Daten[Preis];AGGREGAT(15;6;(ZEILE(Daten[Preis])-1)/(Daten[Artikel]=B2)/
(Daten[Start]&lt=A2)/(Daten[Ende]&gt=A2);1));"Nicht vorhanden!")

Gruß Werner
.. , - ...
Anzeige
AW: hierzu ergänzend noch ...
29.04.2019 19:44:01
Curly
Danke Werner,
werde ich morgen früh gleich mal mit ein paar mehr Daten testen.
Intelligete Tabellen kannte ich bereits :-)
Und wenn ich diese in AGGREGAT verwenden kann umso besser.
Von euch kann ich noch viel lernen. Danke
Gruß Curly
AW: bitteschön owT
29.04.2019 20:15:09
neopa
Gruß Werner
.. , - ...
AW: bitteschön owT
29.04.2019 21:57:39
Luschi
Hallo Werner,
bei mir sieht der definierte Name so aus:
=INDEX(FKTBGRTAB_FuLi[Funktionsbaugruppe];1;):INDEX(FKTBGRTAB_FuLi[Funktionsbaugruppe]; ANZAHL2(FKTBGRTAB_FuLi[Funktionsbaugruppe]))
Gruß von Luschi
aus klein-Paris
AW: hast Dich offensichtlich im thread vertan ...
30.04.2019 09:15:26
neopa
Hallo Luschi,
... Dein Beitrag gehört nämlich hierher: https://www.herber.de/forum/archiv/1688to1692/t1689865.htm
Natürlich würde ich dort die benannte Formel auch so definieren wie von Dir hier aufgezeigt. Dies dann wenn man von der "Lage" der "intelligenten" Tabelle innerhalb des Tabellenblatt unabhängiger bleiben möchte. Ich hatte mich aber gestern für meine da aufgezeigte Variante entschieden, dies auch um die verschiedenen Möglichkeiten des INDEX()-Konstrukts aufzuzeigen.
Gruß Werner
.. , - ...
Anzeige
AW: hierzu ergänzend noch ...
29.04.2019 23:14:08
Günther
Moin Curly,
wenn es irgendwann einmal wesentlich mehr Daten werden, dann solltest du dich mit Power Query beschäftigen. Diese Aufgabe geht "mit ohne Formel / VBA" und SEHR schnell!
Muster-Lösung auf Nachfrage -> per PM/E-Mail oder in meiner Cloud, da ich meine Ordner-Struktur nicht wegen eines Forums umstelle ... => https://my.hidrive.com/lnk/FiAGDsh4
Gruß
Günther

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige