Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Verweis mit 2 Kriterien viel zu langsam für 150k

Verweis mit 2 Kriterien viel zu langsam für 150k
24.03.2015 22:51:27
Max
Hallo liebe Community,
ich habe leider ein Problem und würde mich freuen wenn ihr mir helfen könntet :)
Und zwar hab ich eine Excel Datei mit 2 Arbeitsblättern die nach
1. Übersicht (hat 14 Spalten und 150 tausend Zeilen)
2. Vorgaben2 (hat 6 Spalten und 37094 Zeilen)
benannt wurden.
Ich muss nach 2 Kriterien aus 'Übersicht' in 'Vorgaben2' finden und den Wert in einer bestimmten Spalte dann in 'Übersicht' übertragen.
Dies habe ich mit der folgenden Formel gelöst:
=VERWEIS(2;1/(Vorgaben2!$E$2:$E$37094=K2)/(Vorgaben2!$A$2:$A$37094=H2);Vorgaben2!$G$2:$G$37094)
Doch nun soll das natürlich für alle 150k Zeilen der einen Spalte gemacht werden.
Ich habe 2 optionen:
a)Schleife mit: =VERWEIS(2;1/(Vorgaben2!E:E=K" + CStr(i) + ")/(Vorgaben2!A:A=H" + CStr(i) + ");Vorgaben2!G1:G37094)
b)Sowas: Selection.AutoFill Destination:=Range("M2:M" + CStr(letzteZeile)), Type:=xlFillDefault
Zu a) Es dauert einfach zuuuuu lange, obwohl ich das nur ein einziges mal machen muss....(habe screenupadting etc auch mit false versucht, vergebens...)
Zu b) So klappt es, dass ich für alle Zeilen die richtigen Formeln drin habe, aber ich muss es nachrechnen lassen mit sowas: Columns(2).Calculate
Aber das dauert noch länger, bzw. es hängt sich auf (Excel), keine Fehler oderso, der Code ist ja korrekt nur die 150k sind wahrscheinlich einfach zu viel.
Ich muss das ganze für nur 3 Spalten machen und das nur einmalig, wenn es bei einem mal funktioniert, werde ich den Code einfach für die 2 anderen Spalten anpassen, aber es muss erst einmal funktionieren. Ich bitte um eure Hilfe, vielen Dank im Voraus! :)

Anzeige

1
Beitrag zum Forumthread
Beitrag zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ein paar Tips zum Umgang mit grossen Tabellen
24.03.2015 23:42:15
Daniel
Hi
immer gleiche Formeln schreibt man in alle Zellen gleichzeit, dh ohne Schleife und ohne Autofill:
Range("A2:A" & Cells(Rows.Count, 11).end(xlup).Row).FormulaLocal = "=VERWEIS(2;1/(Vorgaben2!$E$ _
2:$E$37094=K2)/(Vorgaben2!$A$2:$A$37094=H2);Vorgaben2!$G$2:$G$37094)"

die relativen Zellbezüge werden schon richtig übernommen.
wenn du da sicher gehen willst, nimmst du die R1C1-Schreibweise für Formeln, da ist dann auch die ausgeschriebene Formel für jede Zeile gleich, weil die relativen Zellbezüge auch relativ beschrieben werden:
Range("A2:A" & Cells(Rows.Count, 11).end(xlup).Row).FormulaR1C1 ="=LOOKUP(2;1/(Vorgaben2!R2C5:R37094C5=RC11)/(Vorgaben2!R2C1:R37094C1=RC8);Vorgaben2!R2C7:R37094C7)"
Beschleunigen kannst du das ganze wahrscheinlich noch mit ein bisschen Vorarbeit:
1. füge in beiden Tabellen in der ersten Spalte eine Hilfsspalte ein, in der du die beiden Suchbegriffe zu einem Wert zusammenfasst.
du kannst dann normal mit dem SVerweis arbeiten
2. Sortiere die Tabelle Vorgaben2 nach der Hilfsspalte mit den Zusammengefassten Suchbegriffen aufsteigend.
du kannst dann den SVerweis mit 4. Parameter = WAHR verwenden, welcher sehr schnell ist.
3. Sortiere auch die Tabelle Übersicht nach der Hilfsspalte aufsteigend.
da diese Tabelle grösser ist, ist wahrscheinlich dass mehrere Zeilen die gleichen Suchbegriffe haben.
du musst dann die zweitauwendige SVerweissuche nicht mehrfach ausführen, sondern kannst einfach den Wert aus der Zeile obendrüber nehmen.
die Formel sieht schematisch so aus (Spalte A sei die Spalte mit den zusammengefassten Suchbegriffen, spalte X die Spalte mit der Formel:
=Wenn(A2=A1;X1;SVerweis(...))
Da Excel beim Sortieren auch mit grossen Datenmengen sehr schnell ist, kann man das gut ausnutzen um solche Aufgaben zu vereinfachen und zu beschleunigen.
Wenn die Werte wieder zurücksortiert werden müssen, muss man die Formeln vorher durch ihre Werte ersetetzen (was bei dieser Datenmenge sowieso ratsam ist)
Gruß Daniel
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Verweis mit 2 Kriterien in Excel optimieren


Schritt-für-Schritt-Anleitung

Um den SVERWEIS mit 2 Kriterien in Excel effizient zu nutzen, kannst Du die folgende Schritt-für-Schritt-Anleitung befolgen:

  1. Vorbereitung der Daten:

    • Stelle sicher, dass Deine Daten in zwei verschiedenen Arbeitsblättern korrekt formatiert sind: 'Übersicht' und 'Vorgaben2'.
    • Die Tabelle 'Übersicht' sollte 150.000 Zeilen enthalten, und 'Vorgaben2' sollte 37.094 Zeilen umfassen.
  2. Formel einfügen:

    • Verwende die Formel, um nach zwei Kriterien zu suchen. Zum Beispiel:
      =VERWEIS(2;1/(Vorgaben2!$E$2:$E$37094=K2)/(Vorgaben2!$A$2:$A$37094=H2);Vorgaben2!$G$2:$G$37094)
    • Achte darauf, dass die Zellbezüge korrekt sind.
  3. Optimierung durch Hilfsspalten:

    • Füge in beiden Tabellen eine Hilfsspalte hinzu, die die beiden Suchkriterien zu einem Wert zusammenfasst.
    • Sortiere die Tabelle 'Vorgaben2' nach dieser Hilfsspalte.
  4. Verwendung von SVERWEIS:

    • Nutze den SVERWEIS mit 2 Bedingungen, um die Suche zu beschleunigen. Bei großen Datenmengen kann dies die Performance erheblich verbessern.
  5. Berechnung und Autofill:

    • Anstelle von Schleifen oder einer zeitraubenden Autofill-Methode, setze die Formel für alle Zellen gleichzeitig ein:
      Range("A2:A" & Cells(Rows.Count, 11).End(xlUp).Row).FormulaLocal = "=VERWEIS(2;1/(Vorgaben2!$E$2:$E$37094=K2)/(Vorgaben2!$A$2:$A$37094=H2);Vorgaben2!$G$2:$G$37094)"

Häufige Fehler und Lösungen

Bei der Nutzung des SVERWEIS mit zwei Suchkriterien können verschiedene Probleme auftreten. Hier sind einige häufige Fehler und deren Lösungen:

  • Langsame Berechnungen:

    • Wenn die Berechnung zu lange dauert, überlege, ob Du Hilfsspalten nutzen kannst, um die Suche zu optimieren.
  • Formel funktioniert nicht:

    • Überprüfe die Zellbezüge in der Formel und stelle sicher, dass sie korrekt sind. Falsche Bezüge führen oft zu Fehlern.
  • Keine Ergebnisse:

    • Wenn Du keine Ergebnisse erhältst, stelle sicher, dass die Suchkriterien tatsächlich in der Tabelle vorhanden sind und dass Du die richtige Formel verwendest.

Alternative Methoden

Es gibt mehrere alternative Methoden, um einen Verweis mit 2 Kriterien durchzuführen:

  • XVERWEIS-Funktion:

    • In neueren Excel-Versionen kannst Du die XVERWEIS-Funktion verwenden, um mehrere Kriterien anzuwenden:
      =XVERWEIS(1; (Vorgaben2!$E$2:$E$37094=K2)*(Vorgaben2!$A$2:$A$37094=H2); Vorgaben2!$G$2:$G$37094)
  • INDEX und VERGLEICH:

    • Eine andere Möglichkeit ist die Kombination von INDEX und VERGLEICH mit mehreren Bedingungen:
      =INDEX(Vorgaben2!$G$2:$G$37094;VERGLEICH(1;(Vorgaben2!$E$2:$E$37094=K2)*(Vorgaben2!$A$2:$A$37094=H2);0))

Praktische Beispiele

Hier sind einige praktische Beispiele für den SVERWEIS mit 2 Kriterien:

  1. Beispiel 1:

    • Daten in 'Übersicht':
      • K2: "Produkt A"
      • H2: "2023"
    • SVERWEIS-Formel:
      =SVERWEIS(K2; Vorgaben2!$A$2:$G$37094; 7; FALSCH)
  2. Beispiel 2:

    • Wenn Du nach dem Preis eines Produkts suchst, das in einer bestimmten Region verkauft wird:
      =VERWEIS(2;1/(Vorgaben2!$E$2:$E$37094=K2)/(Vorgaben2!$A$2:$A$37094=H2);Vorgaben2!$G$2:$G$37094)

Tipps für Profis

  • Vermeide volatile Funktionen: Funktionen wie INDIREKT können die Berechnungen verlangsamen.
  • Einsatz von Makros: Automatisiere wiederkehrende Aufgaben mit VBA-Makros, um Zeit zu sparen.
  • Datenbankansatz: Bei extrem großen Datenmengen kann es hilfreich sein, Excel mit einer Datenbank (z.B. Access) zu kombinieren.
  • Regelmäßiges Speichern: Speichere Deine Arbeit regelmäßig, um Datenverluste zu vermeiden.

FAQ: Häufige Fragen

1. Wie kann ich den SVERWEIS mit 2 Kriterien in einer anderen Tabelle nutzen?
Du kannst den SVERWEIS auf eine andere Tabelle anwenden, indem Du den Tabellennamen in der Formel angibst, wie in Vorgaben2!.

2. Kann ich den XVERWEIS auch mit mehreren Kriterien verwenden?
Ja, der XVERWEIS eignet sich hervorragend für mehrere Kriterien, indem Du die Bedingungen kombinierst.

3. Warum funktioniert mein SVERWEIS manchmal nicht?
Stelle sicher, dass die Suchkriterien korrekt sind und dass Du die richtige Syntax verwendest. Falsche Zellbezüge sind häufige Fehlerquellen.

4. Was ist der Unterschied zwischen SVERWEIS und XVERWEIS?
XVERWEIS ist flexibler und leistungsfähiger, da er auch auf Daten in beliebiger Richtung zugreifen kann und keine sortierten Daten benötigt.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige