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?

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

Suchfunktion in Excel sucht nicht in kompletter Spalte?

Ich möchte eine Spalte nach einer bestimmten Zahl durchsuchen und wenn diese vorhanden ist, dann soll "drin" ausgegeben werden und wenn nicht, dann "nicht drin".

Folgende Formel liegt dem Zugrunde:

=WENN(ISTZAHL(SUCHEN(89;Y:Y));"drin";"nicht drin")

Diese Formel steht in Der Zelle Z563. Nun soll die Formel die ganze Zeile Y nach der Zahl 89 durchsuchen.

Steht in der Zelle Y563 die Zahl 89, dann gibt mir Excel "drin" aus. Steht aber in einer anderen Zelle in Spalte Y die Zahl 89 drin, dann gibt mir Excel "nicht drin" aus.

Ich finde einfach keine logische Begründung, warum Excel nicht die ganze Zeile durchsucht.

Woran kann das liegen?

...zur Frage

Laufzeitfehler 429 in VBA (Excel Makro)?

Hallo!

Zurzeit versuche ich mich an VBA. Ich habe ein Makro erstellt, dass aus einer Excel Tabelle z.B. eine Rechnung erstellt ( durch befüllen der Texftfelder einer Vorlage )

Nun wollte ich das Makro so umändern, dass automatisch der richtige Pfad zum Speichern bzw Öffnen der Vorlage, für den jeweiligen Windows Nutzer benutzt wird. ( Das habe ich mithilfe von Workbook.Path gemacht.

Allerdings gibt er mir jetzt immer Laufzeitfehler 429 aus und ich weiß nicht was zu tun ist.

Bitte helft mir. ( Office und Word sind up to date )

Grüße

Chris

Hier mein Code: https://paste2.org/E8ZmvBXk

...zur Frage

Excel VBA. Wie kann ich eine Zelle in ein anderes Tabellenblatt in eine bestimmte Spalte einfügen?

Wie kann ich zum Beispiel aus Tabellenblatt Zelle A11 Werte in Tabellenblatt 2 kopieren und dabei Spaltte "B" hineinkopieren? Außerdem soll Excel immer in die nächste frei Zeile die Werte hineinkopieren.

...zur Frage

Excel ZÄHLENWENN mit relativen Bezug auf Zelle oberhalb der aktuellen

Hallo,
Ich habe eine Tabelle, in der ich die erste Spalte auf Duplikate überprüfen möchte.
Dazu sorteiere ich diese Spalte (alles Zahlen) in aufsteigender Reihenfolge und möchte nun die "Zählenwenn"-Funktion verwenden, um die Duplikate zu zählen.
Da die Spalte ja sortiert ist kann ich sicher sein, dass gleiche Zahlen immer übereinander liegen, sodass ich in der "Zählenwenn"-Funktion folgendes haben möchte:

=ZÄHLENWENN(Bereich;Inhalt=Inhalt der Zelle oberhalb)

Die Zählenwennfunktion durchläuft ja alle Zellen im Bereich, weshalb (theoretisch) die Funktion "Adresse()" mit "Zeile()" und "Spalte()" als Parameter die aktuelle Zelle referenzieren/sich darauf beziehen.
Das würde bedeuten, dass ich in der "Zählenwenn"-Funktion als zweiten Parameter eigentlich nur folgendes eingeben müsste:

Adresse(Zeile()-1;Spalte())

Funktioniert nicht.
In einigen Beispielen habe ich gesehen, dass Bezüge auf andere Zellen in der "Zählenwenn"-Funktion mit einem "&" beginnen, also habe ich folgendes versucht:

=ZÄHLENWENN(A2:A3000;&ADRESSE(ZEILE()-1;SPALTE()))

Wieder kein Erfolg.

Deshalb die Frage: Wie kann ich in der "Zählenwenn"-Funktion in Excel mich auf eine Zelle, relativ zur aktuellen beziehen? Das hier genannte Beispiel wird sicher auch anders zu lösen gehen, aber den genannten relativen Bezug (also relativ zur Aktuellen Zelle) könnte man in der Zählenwenn schon öfters brauchen. Danke und lg, Springrbua

...zur Frage

VBA: Verschiedene Formel je Bedingung?

Ich sitze leider schon länger dran aber mittlerweile habe ich ein Brett vor dem Kopf.

Ich versuche meine Frage mal wie folgt zu beschreiben:

Wenn in Spalte P Ein Eintrag Namens "Hans" Vorhanden ist, so soll in Spalte AF eine Formel A hintelegt werden.
Bei anderen Einträgen in Spalte P wird Formel B hinterlegt.

Ich schaffe es, die Formel A einzutragen und sie Funktioniert auch, aber Formel B wird komplett ignoriert, obwohl in Spalte P andere Namens als Hans erscheinen.

'Dim Ende As Long
'ActiveSheet.UsedRange.AutoFilter Field:=16, Criteria1:="HANS"
'Range("AF2").FormulaLocal = "=WENN(HEUTE()-AE2<=40;""OK"";""P"")"
'Ende = Cells.SpecialCells(xlCellTypeLastCell).Row
'Range("AF2").AutoFill Destination:=Range("AF2:AF" & Ende), Type:=xlFillDefault

'ActiveSheet.UsedRange.AutoFilter Field:=16, Criteria1:="<>HANS"
'Range("AF2").FormulaLocal = "=WENN(HEUTE()-AE2<=30;""OK"";""P"")"
'Ende = Cells.SpecialCells(xlCellTypeLastCell).Row
'Range("AF2").AutoFill Destination:=Range("AF2:AF" & Ende), Type:=xlFillDefault

Vorab lieben Dank und

Viele Grüße

...zur Frage

Wenn in Zelle Zahl enthalten, dann Zelle ausblenden (Excel)?

Hi,

ich habe in Excel eine Spalte mit 5.000 Urls. In einigen Zellen sind achtstellige Zahlen enthalten. Ich möchte das nun so automatisch filtern, wenn in Spalte A eine Zahl von 0 bis 1 enthalten ist, dann blende diese Zeile komplett aus.

Wie mache ich das mit der WENN-Formel ?

Vielen Dank

...zur Frage

Was möchtest Du wissen?