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

Forumthread: sverweis links mehrere treffer

sverweis links mehrere treffer
23.05.2016 13:18:06
Spenski
Guten Tag
Ich suche eine Formel die einen SVERWEIS nach links macht und alle Treffer anzeigt
in Spalte B soll gesucht werden, und Spalte A soll in Spalte D untereinander ausgegeben werden
Danke fürs lesen
Christian

Anzeige

10
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: die INDEX() und AGGREGAT()-Lösung ...
23.05.2016 13:50:24
...
Hallo Christian,
... so (Formel ziehend nach unten kopieren):
 ABCD
1TextVergleichswerteSuchwertErgebnis
2Text_1abText_2
3Text_2b Text_4
4Text_3c Text_5
5Text_4b Text_9
6Text_5b  
7Text_6c  
8Text_7a  
9Text_8e  
10Text_9b  
11Text_10a  
12    

Formeln der Tabelle
ZelleFormel
D2=WENNFEHLER(INDEX(A:A;AGGREGAT(15;6;ZEILE(B$1:B99)/(B$1:B$99=C$2); ZEILE(A1))); "")


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
Gruß Werner
.. , - ...

Anzeige
nicht performant :-(
23.05.2016 14:42:20
lupo1
Die AGGREGAT-Lösung sieht SOOO hübsch aus. Vor allem kann man mit ihr auch den x-ten Eintrag ohne Vorgängerformeln ermitteln.
Aber es sieht performanceseitig überhaupt nicht gut aus (ich nehme vergleichshalber die VERGLEICH- statt SVERWEIS-Funktionalität, weil SVERWEIS keine "richtige" Datenverarbeitungsformel ist):
D2: =WENNFEHLER(AGGREGAT(15;6;ZEILE(B:B)/(B:B=C$2);ZEILE(A1));"") bis D101
D2: =VERGLEICH(C$2;B$1048576:INDEX(B:B;D1+1);)+D1 bis D10001 (also 100-mal so viele Rückgaben)
AGGREGAT braucht 40 Sekunden für 100 Datensatznummern aus 2^20 Datensätzen.
VERGLEICH braucht unter 2 Sekunden für 10.000 Datensatznummern aus 2^20 Datensätzen.
Das ist ein Verhältnis von 1:2000 bei 2^20 Datensätzen.
Bei 2^13 ist das Verhältnis scheinbar 1:1,5 ... aber AGGREGAT verwendet alle 4 Kerne, was VERGLEICH inhaltlich nicht kann (nur 1 Kern, weil vom Vorgänger abhängig). Somit ist das bereinigte Verhältnis immer noch 1:6.

Anzeige
AW: nicht performant :-(
23.05.2016 14:46:31
Spenski
Danke an alle , funktioniert wie es soll
mfg
Christian

AW: nicht performant :-(
23.05.2016 15:25:25
Daniel
Aggregat rödelt immer alle angegebenen Zellen durch.
- Verweis mit 3. Parameter = 0 bricht nach der ersten Fundstelle ab, dh je früher der Suchwert in der Liste erscheint, um so schneller ist auch die Funktion fertig berechnet.
- Verweis mit 3. Paramter = 1 verwendet aufgrund der Sortierung eine noch viel schnellere Suchmethode, die Binäre Suche.
- Verweis hat eine Automatik eingebaut, welche dafür sorgt, dass auch bei offenen Zellbezügen (A:A) nur der tatsächlich benutze Zellbereich verwendet wird, während bei Matrixformeln, Summenprodukt und wahrscheinlich auch Aggregat diese "Überlastsicherung" fehlt und bei A:A auch die ganze Spalte verarbeitet wird.
Gruß Daniel

Anzeige
Schön und gut: es heißt VERGLEICH, nicht Verweis
23.05.2016 15:43:13
lupo1
Aggregat rödelt immer alle angegebenen Zellen durch.
Richtig.
- Verweis mit 3. Parameter = 0 bricht nach der ersten Fundstelle ab, dh je früher der Suchwert in der Liste erscheint, um so schneller ist auch die Funktion fertig berechnet.
Korrekt, es geht um nichtsortierte Daten.
- Verweis mit 3. Parameter = 1 verwendet aufgrund der Sortierung eine noch viel schnellere Suchmethode, die Binäre Suche.
Dann brauchen wir das ganze nicht, weil ab erstem Fundort jeder Satz bis zum letzten Fundort ein Treffer ist.
- Verweis hat eine Automatik eingebaut, welche dafür sorgt, dass auch bei offenen Zellbezügen (A:A) nur der tatsächlich benutze Zellbereich verwendet wird, während bei Matrixformeln, Summenprodukt und wahrscheinlich auch Aggregat diese "Überlastsicherung" fehlt und bei A:A auch die ganze Spalte verarbeitet wird.
Einerseits Binsenwahrheit bei AGGREGAT (es muss ja alles durchsucht werden kraft Logik); andererseits wäre bei VERGLEICH auch echtes A:A egal, weil der Weg zum ersten Treffer der gleiche bliebe.

Anzeige
AW: Schön und gut: es heißt VERGLEICH, nicht Verwe
23.05.2016 15:51:49
Daniel
egal, Hauptsache es wird klar, dass eine Aggreagt-Formel nicht immer die beste Lösung ist.
Gruß Daniel

AW: da vergleichst Du "Äpfel mit Birnen" ...
23.05.2016 15:51:45
...
Hallo lupo,
... natürlich ist Deine Formel mit der Funktion VERGLEICH() schneller als Deine AGGREGAT()-Formel, die Du zum Vergleich angesetzt hast.
Meine Formel sah hier anders aus (beschränkter Bereich und keiner über den gesamten Spaltenbereich) und gibt im vorliegenden Fall sofort die richtigen Ergebnisse aus. Deine VERGLEICH()-Formel ermittelt zunächst nur die Ergebniszeilennummern und Fehlerwerte. Natürlich kann man diese dann als Hilfsspalte nutze, aber im vorliegenden Fall mache ich das nicht.
Eine "AGGREGAT()-Formel" beruht auf ihr innewohnenden Matrixfunktionalität und berechnet die Ergebnisse analog "echter" Matrixformeln. Bei solchen oder z.B. bei einer in der Wirkungsweise ähnlichen Formel auf Basis z.B. der SUMMENPRODUKT()-Funktion kommst Du doch sicherlich auch nicht auf die Idee, den gesamten Spaltenbereich auswerten zu wollen, wenn Du die Performance im Auge hast.
Gruß Werner
.. , - ...

Anzeige
1:6 ist also kein Argument?
23.05.2016 16:05:57
lupo1
Ich habe doch extra auch das Szenario mit 8192 Datensätzen gebracht.
Und eine einspaltige Rückgabe von Ergebniswerten reicht doch nie aus. Man will die entscheidenden Daten des Datensatzes gleich sichtbar haben. Und dann geht "SVERWEIS"-AGGREGAT gegenüber "VERGLEICH"-AGGREGAT oder gar der echten VERGLEICH-Lösung mit mitgezogenem Suchbeginn nochmal mehrfach in die Knie. Nur weil man die "Hilfszellen" angeblich nicht sehen möchte! Mich interessieren aber die Datensatznummern immer, schon aus Plausi-Gründen.
Beispiel: Ich schaue beim Online-Banking nach, welche Überweisungen an Schulze gingen. Da hilft mir als Ausgabe
Schulze
Schulze
Schulze
Schulze
wenig ;) Ich möchte auch Vornamen, Datümer, Beträge und Überweisungszwecke sehen.

Anzeige
AW: war hier erstens so nicht gefragt ...
23.05.2016 16:15:46
...
Hallo,
... und zweitens würde ich dann diesbzgl. den Autofilter nehmen. Der ist garantiert noch schneller in der Auswertung.
Gruß Werner
.. , - ...
;

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

SVERWEIS nach links mit mehreren Treffern in Excel


Schritt-für-Schritt-Anleitung

Um in Excel einen SVERWEIS nach links zu erstellen und mehrere Treffer untereinander auszugeben, kannst Du folgende Schritte befolgen:

  1. Daten vorbereiten: Stelle sicher, dass Du eine Tabelle hast, in der die Suchwerte in einer Spalte (z.B. Spalte B) und die Ergebnisse, die Du zurückgeben möchtest, in einer anderen Spalte (z.B. Spalte A) stehen.

  2. Formel eingeben: Gehe in die Zelle, in der das erste Ergebnis angezeigt werden soll (z.B. D2). Gib die folgende Formel ein:

    =WENNFEHLER(INDEX(A:A;AGGREGAT(15;6;ZEILE(B$1:B99)/(B$1:B$99=C$2);ZEILE(A1)));"")

    Diese Formel verwendet die Funktion AGGREGAT, um mehrere Ergebnisse zu finden.

  3. Formel nach unten ziehen: Ziehe die Formel nach unten, um alle möglichen Treffer anzuzeigen.

  4. Suchkriterium anpassen: Ändere den Wert in C2, um nach anderen Suchwerten zu suchen.


Häufige Fehler und Lösungen

  • Fehler 1: #NV: Dies bedeutet, dass kein Treffer gefunden wurde. Stelle sicher, dass der Suchwert in der Liste vorhanden ist.
  • Fehler 2: Formeln funktionieren nicht: Überprüfe, ob Du die Formel korrekt eingegeben hast und ob die Zellreferenzen stimmen.
  • Leistungseinbußen: Bei großen Datenmengen kann die AGGREGAT-Lösung langsam sein. In solchen Fällen ist die Verwendung der VERGLEICH-Funktion empfehlenswert.

Alternative Methoden

  1. VERGLEICH-Funktion: Verwende die VERGLEICH-Funktion, um den Index der gesuchten Werte zu finden und diese dann mit INDEX zu kombinieren. Dies kann in manchen Fällen schneller sein als die AGGREGAT-Methode.

  2. Datenfilter: Eine einfache Möglichkeit, um mehrere Ergebnisse anzuzeigen, ist die Verwendung des Autofilters in Excel. Du kannst die Daten so filtern, dass nur die relevanten Zeilen angezeigt werden.


Praktische Beispiele

Angenommen, Du hast folgende Tabelle:

A B
Name Wert
Text_1 a
Text_2 b
Text_3 c
Text_4 b
Text_5 b

Um alle Werte zu "b" untereinander in Spalte D anzuzeigen, verwende die oben genannte Formel in D2 und ziehe sie nach unten.


Tipps für Profis

  • Verwende dynamische Bereiche: Anstatt feste Zellbereiche zu verwenden, kannst Du mit dynamischen Bereichen arbeiten, um die Leistung zu verbessern.
  • Kombiniere SVERWEIS und FILTER: In neueren Excel-Versionen kannst Du die FILTER-Funktion nutzen, um direkt mehrere Ergebnisse ohne komplexe Formeln anzuzeigen.
  • Vermeide Volumen: Wenn Du mit extrem großen Datensätzen arbeitest, prüfe, ob die Verwendung von Pivot-Tabellen oder Datenmodellen effizienter ist.

FAQ: Häufige Fragen

1. Kann ich den SVERWEIS auch rückwärts verwenden?
Ja, Du kannst SVERWEIS nach links verwenden, indem Du die INDEX- und AGGREGAT-Funktionen kombinierst, wie in diesem Tutorial beschrieben.

2. Was mache ich, wenn ich mehr als zwei Treffer habe?
Die verwendete Formel gibt alle Treffer untereinander aus, solange Du die Formel nach unten ziehst. Achte darauf, dass Du genügend Zellen für die möglichen Rückgaben hast.

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