Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Sverweis mit mehreren Suchkriterien und Ergebnisse

Sverweis mit mehreren Suchkriterien und Ergebnisse
29.06.2015 10:48:27
Rene
Hallo,
Ich habe ein kleines Problemchen bei der Arbeit, welches sich glaube ich nur via VBA lösen lässt. Lasse mich aber auch gerne eines anderen belehren. Leider habe ich kaum VBA-Kenntnisse.
zum Problem:
Ich habe eine Excel-Datei mit 2 Tabelllenblättern in denen jeweils eine Tabelle mit etwa 20 tausend Zeilen steht. Sowohl in Tabelle1 als auch in Tabelle2 habe ich die Spalte "Artikelnummer" mit den jeweiligen Artikelnummern sowie die Spalte "Vorgangsnummer" ich möchte nun nach diesen 2 Kriterien die ich in Tabelle1 Zeile1 entnehme die dazugehörigen informationen aus Tabelle 2 suchen (mehrere Ergebnisse möglich)
Jetzt kommt der komplizierte Teil. Die Ergebnisse die mehrfach vorkommen müssen in neue Zeilen in Tabelle 1 eingefügt werden.
Hier ist noch eine Beispieltabelle zur berdeutlichung des Problems:
https://www.herber.de/bbs/user/98538.xlsx
Vielen Dank schonmal im Vorraus für die Hilfe.
Mit freundlichen Grüßen,
Rene

Anzeige

16
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
nachgefragt ...
29.06.2015 11:14:43
der
Hallo Rene,
... wenn das nur eine einmalige Angelegenheit ist, gäbe es eine einfache und schnelle Lösung ganz ohne Formeln und VBA, vorausgesetzt Deine Angaben z.B. F5:G5 in der Tabelle "Sollzustand" wäre in der Tabelle1 in E4:F4 schon da und analog auch für die anderen Daten?
Ist das der Fall?
Gruß Werner
.. , - ...

Anzeige
AW: nachgefragt ...
29.06.2015 11:27:43
Rene
Vielen Dank erstmal für die schnelle Antwort Werner.
Ich hoffe ich habe dich richtig verstanden, die Tabelle "Sollzustand" sollte das Endprodukt wie ich es gerne hätte darstellen ..also quasi Tabelle1 nachdem man Die Infosätze aus Tabelle 2 integriert hat. aber ja es handelt sich um eine einmalige aktion die ich aber nicht per hand durchführen kann, weil es in der Orginaldatei (20000Zeilen und 40 Spalten) zu lange dauern würde..

Anzeige
eine mögliche Variante wäre ...
29.06.2015 11:49:01
der
Hallo Rene,
... wäre unten stehender Vorschlag.
Doch wie bereits geschrieben: "...vorausgesetzt Deine Angaben z.B. F5:G5 in der Tabelle "Sollzustand" wäre in der Tabelle1 in E4:F4 schon da und analog auch für die anderen Daten"

Kopiere den gesamten Inhalt der Tabelle 1 in eine dritte neue Tabelle und kopiere unten drunter den gesamten Inhalt aus Tabelle 2. Formatiere den gesamten neuen Datenbestand mit der Funktion "Als Tabelle formatieren" und sortiere diese dann nach "Artikelnummer und Vorgangsnummer"
Dann hast Du gleich alle Daten zusammen.
Oder habe ich da Dein Anliegen falsch interpretiert und Du willst wirklich nur definierte Teile aus Tabelle 2 in Tabelle1 übernehmen? Dann käme nur eine VBA-Lösung in Frage. Das schreibe dann bitte in Dein Antwortbetreff.
Gruß Werner
.. , - ...

Anzeige
AW: eine mögliche Variante wäre ...
29.06.2015 12:56:28
Rene
Hallo Werner,
Tut mir leid, du hast recht ich habe vergessen zu erwähnen, dass ich wirklich nur die genauen Treffer übertragen will. also nur die Fälle in denen beide Suchkriterien zutreffen..
Ich habe es bereits mit einem Sverweis versucht der etwas umgeschrieben wurde und habe versucht diesen dann auf 2 Kriterien zu beziehen. Klappt aber auch nicht so ganz...
Hier ist der umgeschriebene Sverweis:

Public Function SVERWEIS2(Kriterium As String, _
Bereich As Range, _
SuchSpalte As Integer, _
ErgebnisSpalte As Integer, _
Optional Unikate As Boolean = True, _
Optional Trenner As String = ", ") As String
'Autor: Ransi
Dim arrTmp
Dim L As Long
Dim Mydic As Object
arrTmp = Bereich
Set Mydic = CreateObject("Scripting.Dictionary")
If Unikate = True Then
For L = 1 To UBound(arrTmp)
If arrTmp(L, SuchSpalte) = Kriterium Then Mydic(arrTmp(L, ErgebnisSpalte)) = 0
Next
SVERWEIS2 = Join(Mydic.keys, Trenner)
Else:
For L = 1 To UBound(arrTmp)
If arrTmp(L, SuchSpalte) = Kriterium Then Mydic(L) = arrTmp(L, ErgebnisSpalte)
Next
SVERWEIS2 = Join(Mydic.items, Trenner)
End If End Function

Den habe ich dann in der Syntax so angewendet um die 2 Kriterien abzudecken:


=SVERWEIS2(Suchkriterium1;WENN(Suchspalte2=Suchkriterium2;Suchmatrix;““);Suchspalte1;Ergebnisspalte; Wahr;"/")

Das ganze klappt aber leider nicht..Ich kriege ständig die Fehlermeldung"#WERT!".
Entschuldige nochmals die falsche Ausweisung meines Threads.
Grüße, Rene

Anzeige
mit SVERWEIS() kommst Du hier nicht weiter ...
29.06.2015 13:28:03
der
Hallo Rene,
... ich könnte Dir jedoch eine Formellösung aufzeigen, die Dir z.B. eine Matrix der Zeilenwerte übergibt, die die Treffer enthält. Aus VBA-Lösungen halt ich mich ansonsten außen vor. Deshalb stelle ich den thread auch auf offen. Sollte Dir jedoch mein Formelvorschlag schon weiterhelfen, dann melde Dich einfach noch einmal.
Gruß Werner
.. , - ...

Anzeige
AW: mit SVERWEIS() kommst Du hier nicht weiter ...
29.06.2015 13:31:14
Rene
Hallo Werner,
über den Ansatz habe ich es auch schon probiert.. kam dann aber leider nicht weiter.. vielen Dank für deine Hilfe ich hoffe einfach mal auf noch einen bereitwilligen Helfer.
Grüße, Rene

AW: eine mögliche Variante wäre ...
29.06.2015 13:36:03
Claus
Der SVERWEIS bezieht sich ja nur auf ein Kriterium.
Jedoch: Du könntest in beide Tabellen eine Hilfsspalte einfügen, in der du in etwa folgendes machst: =verketten(Krit1;Krit2) also die jeweilige Spalte und dann runterkopieren.
Jetzt kannst du deinen SVERWEIS jeweils auf diese Hilfsspalte beziehen... dann könnte es klappen.
Grüßle Claus

Anzeige
AW: eine mögliche Variante wäre ...
29.06.2015 13:51:11
Rene
Hallo Claus,
Vielen Dank für die Antwort. Das zweite Kriterium habe ich versucht über die Wennfunktion einzubauen aber deine Idee ist auch super und klappt jetzt auch!
Jetzt muss ich nurnoch herausfinden wie ich es schaffe automatisch Zeilen einzufügen und die Mehrfachergebnisse in diese Leerzeilen einzutragen...
Vielen lieben Dank!

Anzeige
AW: eine mögliche Variante wäre ...
29.06.2015 14:05:16
Claus
Hallo Rene,
Dabke für die nette Rückmeldung - prima wenns geholfen hat. Der Rest geht sicher mit VBA - und da bin ich leider nicht so gut, deshalb verabschiede ich mich hier...
Grüßle Claus

AW: eine mögliche Variante wäre ...
29.06.2015 13:38:25
Daniel
HI
sieht für moch so noch aus:
1. geiche die Spalten an, so dass in gleiche Inhalt ein gleichen Spalten stehen (dh in Tabelle2 eine Leerspalte für den Infosatz 1 einrichten)
2. kopiere Tabelle2 unter die Tabelle1
3. sortiere das ganze nach Artikel- und Vorgangsnummer
Gruß Daniel

Anzeige
AW: eine mögliche Variante wäre ...
29.06.2015 13:38:25
Daniel
HI
sieht für moch so noch aus:
1. geiche die Spalten an, so dass in gleiche Inhalt ein gleichen Spalten stehen (dh in Tabelle2 eine Leerspalte für den Infosatz 1 einrichten)
2. kopiere Tabelle2 unter die Tabelle1
3. sortiere das ganze nach Artikel- und Vorgangsnummer
Gruß Daniel

Anzeige
offensichtlich hast Du nicht gelesen ...
29.06.2015 13:42:40
der
Hallo Daniel,
... was ich Rene geschrieben habe und auch nicht, was Rene darauf geantwortet hat.
Gruß Werner
.. , - ...

AW: offensichtlich hast Du nicht gelesen ...
29.06.2015 14:01:24
Daniel
Hi
nö, hab ich nicht gelesen.
aber man kann ja in der Tabelle2 vorher diejenigen Zeilen, die nicht übernommen werden sollen, voher löschen.
Zum Kennzeichnen kann ZählenWenns verwenden.
Gruß Daniel

Anzeige
AW: offensichtlich hast Du nicht gelesen ...
29.06.2015 16:17:30
Rene
Leider ist das bei über 20000 Zeilen etwas zu viel arbeit...
Trotzdem danke für die Antwort ..

AW: offensichtlich hast Du nicht gelesen ...
29.06.2015 18:17:46
Daniel
HI
mit Zählenwenns markieren und dann löschen.
wenns von der Datenmenge her zuviel für Zählenwenns ist, dann:
per Formel Vorgangsnummer und Artikelnummer zu einem Begriff zusammenfassen
Tabelle nach diesem Zusammengefassten Suchbegriff sortieren.
Per SVerweis mit 4. Parameter = Wahr überprüfen, ob der Suchbegriff in der anderen Tabelle vorhanden ist (Suchwert = Rückgabewert).
Zum löschen eine Formel in einer Hilfsspalte erstellen, die die Werte die gelöscht werden müssen mit 0 markiert und die die stehenbleiben müssen mit der aktuellen Zeilennummer.
Dann mit Duplikate-Entfernen die Zeilen mit 0 löschen (in die Überschriftenzeile der Hilfsspalte kommt ebenfalls die 0)
Wenn man das Prinzip mal verstanden hat, hat man auch ohne Makro die grössten Listen im Griff und kann sie schnell bearbeiten und zusammenfassen.
Makro ist dann nur notwendig, wenn eine wiederholte Bearbeitung erforderlich ist.
dieses Makro ist dann aber relativ einfach erstellt, weil man ja nur noch diese Schritte nachprogrammieren muss und man dabei vom Recorder unterstützt wird.
Gruß Daniel

Anzeige
AW: offensichtlich hast Du nicht gelesen ...
29.06.2015 20:23:51
Rene
Vielen Dank!
Ich werde es gleich morgen bei der Arbeit ausprobieren aber es klingt schonmal sehr gut. Danke nochmal :-)
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
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 mit mehreren Suchkriterien und Ergebnissen


Schritt-für-Schritt-Anleitung

Um mit dem SVERWEIS in Excel mehrere Suchkriterien zu verwenden, kannst du folgende Schritte durchführen:

  1. Hilfsspalte erstellen: Füge in beiden Tabellen eine Hilfsspalte hinzu, in der du die Suchkriterien kombinierst. Zum Beispiel:

    =VERKETTEN(A2;B2)

    Dabei ist A2 die Artikelnummer und B2 die Vorgangsnummer.

  2. Daten kopieren: Kopiere die Daten aus Tabelle2 unter die Daten in Tabelle1. Achte darauf, dass die Struktur der Tabellen übereinstimmt.

  3. Sortieren der Daten: Sortiere die gesamte Datenmenge nach der Hilfsspalte, um gleiche Kriterien zusammenzuführen.

  4. SVERWEIS anwenden: Verwende den SVERWEIS auf die Hilfsspalte, um die gewünschten Informationen abzurufen:

    =SVERWEIS(VERKETTEN(Suchkriterium1;Suchkriterium2);Suchmatrix;Ergebnisspalte;FALSCH)
  5. Kopiere die Formeln nach unten: Wenn du die Formeln in der Hilfsspalte nach unten kopierst, werden die entsprechenden Werte für alle Zeilen angezeigt.


Häufige Fehler und Lösungen

  • #WERT! Fehler: Dieser Fehler tritt häufig auf, wenn die Suchmatrix nicht korrekt definiert ist. Stelle sicher, dass die Hilfsspalte die richtigen Werte kombiniert.

  • Nicht gefundene Werte: Wenn der SVERWEIS keinen Wert zurückgibt, kann es daran liegen, dass einer der Suchparameter nicht vorhanden ist. Überprüfe die Daten auf Tippfehler oder Unterschiede in der Formatierung.

  • Doppelte Werte: Der SVERWEIS gibt nur den ersten gefundenen Wert zurück. Um alle passenden Ergebnisse zu erhalten, musst du möglicherweise VBA verwenden oder die Formeln anpassen.


Alternative Methoden

Eine Alternative zum SVERWEIS ist die Verwendung von INDEX und VERGLEICH:

=INDEX(Rückgabebereich;VERGLEICH(1;(Suchbereich1=Suchkriterium1)*(Suchbereich2=Suchkriterium2);0))

Diese Methode ermöglicht es dir, mehrere Suchkriterien zu verwenden und ist flexibler als der SVERWEIS.


Praktische Beispiele

Angenommen, du hast folgende Tabellen:

Tabelle1 Artikelnummer Vorgangsnummer Info
123 456
789 012
Tabelle2 Artikelnummer Vorgangsnummer Info2
123 456 A
123 456 B
789 012 C

Mit der oben beschriebenen Anleitung kannst du die Hilfsspalte verwenden, um die Informationen aus Tabelle2 in Tabelle1 zu übertragen.


Tipps für Profis

  • VBA für komplexe Aufgaben: Wenn du regelmäßig mit mehreren Suchkriterien arbeitest, kann es sinnvoll sein, ein VBA-Skript zu erstellen, das die Arbeit automatisiert.

  • Datenvalidierung: Stelle sicher, dass die Daten in beiden Tabellen konsistent sind. Nutze Datenvalidierung, um Eingabefehler zu vermeiden.

  • Namen für Bereiche: Verwende benannte Bereiche für deine Suchmatrix, um die Formeln lesbarer zu machen.


FAQ: Häufige Fragen

1. Wie kann ich mehrere Ergebnisse mit SVERWEIS abrufen?
Der SVERWEIS gibt nur den ersten gefundenen Wert zurück. Du kannst eine Kombination aus INDEX und VERGLEICH verwenden, um mehrere Ergebnisse zu finden.

2. Welche Excel-Version benötige ich für diese Methoden?
Die beschriebenen Methoden funktionieren in Excel 2010 und höher. VBA kann in Excel 2007 und höher verwendet werden, jedoch sind einige Funktionen möglicherweise nur in neueren Versionen verfügbar.

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