Wie durchsuche ich meine Excel Datei nach bestimmten Wörtern pro Spalte, um bei der Dateneingabe und der Suche nach der richtigen Excelzeile Zeit zu sparen?

...komplette Frage anzeigen

3 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Die Erweiterung braucht vielleicht wirklich nur zwei *

=WENNFEHLER(INDEX($A$2:$Z$4400;VERGLEICH("*"&$AC$4&"*";$A$2:$A$4400;0);VERGLEICH(AE$2;$A$1:$Z$1;0));"Gib in AC4 einen Wort ein!")

Dann wird aber standardmäßig nach Wortteil gesucht. Entweder zwei Ausgaben der Suche mit exaktem und dann Wortteiltreffer oder zumindest eine Prüfung, ob Du noch eindeutige Ergebnisse hast:

=WENN(ZÄHLENWENN(A2:A4400;"*"&AC4&"*")>1;"Kein eindeutiger Treffer!";"")

Den Rest der Anforderungen verstehe ich vermutlich noch nicht richtig. AC5 könnte irgendwo in der Zeile stehen oder kennt man irgendwie die Spalte? Wenn das irgendwo in der Zeile auftaucht, fällt mir ad hoc nur eine Hilfsspalte ein, die man abfragen kann.

bspw. in AB

=VERGLEICH($AC$5;A1:Z1;0)

Die Logik, dass Excel dann weitersuchen soll, bekommt man mit Formeln so nicht hin. Da gibt es entweder einen Treffer, der alle Bedingungen erfüllt oder nicht.

Verstehe ich es richtig, dass es eine Suche mit zwei Parametern ist?

{=VERGLEICH("*"&AC4&"*"&AC5;A2:A4400&AB2:AB4400;0)} als Matrixformel

würde die Zeilennummer liefern für Teiltreffer AC4 und AC5 in der Zeile (wobei eben die Hilfsspalte abgefragt würde)

mir ist erst jetzt aufgefallen, dass in den Themen zumindest eine Makro/VBA Lösung angedacht ist. Soll das so gelöst werden, weil Du auch von "einigen Zeilen Code" sprichst?

Fertige Lösung kann ich nicht liefern, weil mir nicht klar ist, wo Du suchen und einen Zellinhalt auslesen willst und wo eine konkrete Zeile ermittelt werden soll. Beides geht, aber ich müsste wissen, was genau passieren soll.

Mein genereller Ansatz wäre:
Userform bauen, in der die Suchbegriffe eingegeben werden. Damit kannst Du besser Plausibilitäten etc. abbilden, bspw. die Suche zunächst nach genauem Treffer und dann mit *

Die notwendigen Befehle sind überschaubar:

WorksheetFunction.vlookup quasi sverweis um einen Zellinhalt zurückzuliefern

worksheetfunction.match um die Zeile zu finden

WorksheetFunction.CountIf(Range("A2:A4400"), "*" & UserForm1.TextBox1.Value & "*")um zu prüfen, ob mehr als ein Treffer gefunden wird. * - Suche geht hier wie in der Formel.

Sprung auf die Zelle geht mit Range("A1").select

1
@Ninombre

Ich habe mir das so vorgestellt.

Ich habe in Tabellenblatt1 so 50k Zeilen und in Tabellenb. 2 auch so 50k. Alle inhaltlich eben in männliche und weibliche User gespalten.

Dann habe ich auch ein Blatt Nr 3 in der die suche ist.

Aufbau sieht so aus:

A1 ist ein kurzer dropdown inder ich entscheiden muss ob ich jetzt m oder w durchsuche. Dann steht in C1 "Username". Direkt darunter (C3) trägt man den Begriff ein, welcher auch nur in der Spalte Username gefunden werden muss.

Dann daneben (D1) zB "PLZ" und darunter in D3 den zu suchenden Begriff in diesem Fall eine Zahl. 

Diese Zahl muss auch nur in der Spalte PLZ gefunden werden, aber das Problem ist ja, dass es in der gleichen Zeile auch den anderen Begriff "Username" gefunden haben muss.

Und auf diese Weise wird die Suche immer selektierter, weil ja die Ergebnisse wegfallen sollen, welche nicht auf alle eingegebenen Parameter zutreffen.

0
@Ninombre

Ich hatte gerade einen Geistesblitz, wie ich das ohne VBA mache xD.

Naja war jetzt auch kein Geistesblitz von der großen Sorte xD.

0

Warum benutzt du für die Suche nach dem Wort nicht einfach STRG+F, da das Wort rein und dann auf "alle Suchen".

Dort werden dir dann alle Zellen aufgeführt in denen sich dein Wort befindet, diese kannst du dann anklicken und sehen ob es die richtige ist.

Reicht dir das nicht so?

Weil die Tabellenblätter sehr groß sind und viele Nachnamen die ich eingebe zu vielen Vornamen gehören.

0
@Ghanasoccer

OK, reden wir hier von einem oder mehreren Tabellenblättern. In deiner Beschreibung lese ich nichts von mehreren aber hier schreibst du "Weil die Tabellenblätter sehr groß sind"

Ich würde sonst eventuell mal sehen ob man nicht per VBA eine Möglichkeit findet alle Tabellenblätter automatisch nach dem eingegebenen Begriff zu filtern.

0
@schmiddi1967

Die einzelnen Tabellenblätter haben verschiedene Themen. Somit weiß ich immer in welchem ich suchen muss.

0

Was möchtest Du wissen?