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?
Meine Datentabllen wachsen und wachsen. Dennoch möchte ich die gesuchte Excel Zeile möglichst schnell finden.
Ich hatte hierfür schonmal eine Suchzeile, inder mir die Zeile mit dem Wert ausgegeben wird, welche ich für die erste Spalte als Vergleich gesucht habe.
=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!")
Also kurz erklärt, In AC4 gibt man den gesuchten Wortlaut an. In AE2 ist die varilable Beschriftung der zu durchsuchenden Spalte.
Nun möchte ich, dass in der ersten zu durchsuchenden Spalte (das Wort wird in AC4 angegeben) nach dem Wort auch innerhalb der Zelle gesucht wird. Eignet sich zB für Doppelnamen und man nur nach einem Suchen kann, weil der zweite im Schreiben nicht erwähnt ist. Es sollte ein Treffen mit dem vollständigen Inhalt der gefundenen Zelle ausgegeben werden.
Die darauf folgende Formel rechts nebendran ließt jetzt aus Zelle AC5 einen weiteren Wortteil heraus, welcher in der gleichen Zeile existieren muss wie der Wortteil aus AC4. Somit muss durch die Eingabe in Zelle AC5 (falls FALSCH) die Tabelle weiter durchsucht werden nach dem gleichen Prinzip.
Am Ende der Suchspalte ist dann ein variabler Hyperlink der mich direkt zur passenden Zeile führt, nachden ich bestätigen kann, dass es bei den angezeigten Angaben sich um den richtigen Datenzeilensatz handelt.
Theoretisch gelaube ich schon, dass das mit Excel möglich ist. Bloß ich weiß es einfach nicht :(
Vielen Lieben Dank Für Deine Hilfe !!!
Diese Paar Codezeilen würden mir Stunden an Arbeit in Zukunft sparen :)
3 Antworten
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)
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.
Ich hatte gerade einen Geistesblitz, wie ich das ohne VBA mache xD.
Naja war jetzt auch kein Geistesblitz von der großen Sorte xD.
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.
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.
Die einzelnen Tabellenblätter haben verschiedene Themen. Somit weiß ich immer in welchem ich suchen muss.
Vielleicht hilft Dir:
Vielen Dank. Der Hinweis mit dem Sternchen hilft mir auf jedenfall weiter. Führt aber leider nicht zur Lösung.
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