Supportnet / Forum / Tabellenkalkulation
Automatische Suche / Filterung in Excel? DRINGEND!!!
Frage
Hallo zusammen!
Ich hab hier ein Excelproblem:
Ich habe zwei Tabellen:
[b]Tabelle 1[/b]: ca. 50 Begriffe (z.B. Riemen), untereinander in einer Spalte geschrieben, jeder in einer eigenen Zelle (A1, A2, A3…)
[b]Tabelle 2[/b]: ebenfalls Begriffe in einer Spalte. Die Begriffe sind entweder
- [u]identischen[/u] mit denen aus der ersten Tabelle (z.B. Riemen) oder
- [u]enthalten[/u] die Begriffe aus der ersten Tabelle (z.B. Zahnriemen, Riemenhalter) oder
- lauten [u]völlig anders[/u] (z.B. Stange).
Achtung: In der Tabelle 2 sind einige tausend Begriffe!
Meine Aufgabe ist es, alle Begriffe aus der Tabelle 2 zu finden, die die Begriffe aus Tabelle 1 enthalten!
Das mit dem normalen „Suchen“-Befehl manuell zu machen, ist Wahnsinn. Das würde Tage dauern.
Kennt jemand irgendeine Möglichkeit, wie ich diese Arbeit automatisieren kann? Ein Makro oder so was? Meine Excel-Kenntnisse sind in dieser Richtung eher mager. Es würde mir schon reichen, wenn die passenden Zellen markiert werden z.B. [b]fett[/b] Oder die Zelle mit einer anderen Farbe hinterlegen.
Mit dem Autofilter komme ich nicht weit. Der kann ja nur 2 ODER-Bedingungen filtern…
Also, wäre super, wenn mir jemand helfen könnte! Ist echt wichtig für mich!
Danke für Antworten! Gruß, Heiko1985
Antwort 1 von martl
Hallo Heiko,
versuchs mal mit folgendem Code:
Sub Test()
Dim i,j As Double
Range("A1").Select
For j = 1 To Cells(Rows.Count, 1).End(xlUp).Row Step 1
For i = 1 To Cells(Rows.Count, 2).End(xlUp).Row Step 1
If ActiveCell.Offset(i, 2).Value <> "" Then Exit For
ActiveCell.Offset(i, 2).FormulaR1C1 = "=IF(ISERROR(SEARCH(R" & j & "C1,RC[-1]))=TRUE,"""",RC[-1])"
Next i
Next j
End Sub
Den Code musst Du in der Entwicklungsumgebung von Excel (ALT+F11) in der Datei und der Tabelle einfügen, in der sich die zu prüfende Tabelle befindet.
Bei mir befindet sich die zu vergleichenden Spalten in einer Tabelle, in der Spalte A die zu suchenden Werte ("Riehmen") und in Spalte B die zu vergleichenden Wert ("Zahnriehmen"), wenn Excel was gefunden hat, schreibt er den Wert in die Spalte C.
Ein Problem hab ich an der Sache gefunden; aufgrund der Zählfunktion (i) funktioniert das ganze im Moment erst ab Zeile zwei, der Wert in B1 muss noch manuell abgeglichen werden... Vorab schon mal viel Erfolg.. ansonsten einfach nochmal nachfragen...
Viel Grüße
martl
versuchs mal mit folgendem Code:
Sub Test()
Dim i,j As Double
Range("A1").Select
For j = 1 To Cells(Rows.Count, 1).End(xlUp).Row Step 1
For i = 1 To Cells(Rows.Count, 2).End(xlUp).Row Step 1
If ActiveCell.Offset(i, 2).Value <> "" Then Exit For
ActiveCell.Offset(i, 2).FormulaR1C1 = "=IF(ISERROR(SEARCH(R" & j & "C1,RC[-1]))=TRUE,"""",RC[-1])"
Next i
Next j
End Sub
Den Code musst Du in der Entwicklungsumgebung von Excel (ALT+F11) in der Datei und der Tabelle einfügen, in der sich die zu prüfende Tabelle befindet.
Bei mir befindet sich die zu vergleichenden Spalten in einer Tabelle, in der Spalte A die zu suchenden Werte ("Riehmen") und in Spalte B die zu vergleichenden Wert ("Zahnriehmen"), wenn Excel was gefunden hat, schreibt er den Wert in die Spalte C.
Ein Problem hab ich an der Sache gefunden; aufgrund der Zählfunktion (i) funktioniert das ganze im Moment erst ab Zeile zwei, der Wert in B1 muss noch manuell abgeglichen werden... Vorab schon mal viel Erfolg.. ansonsten einfach nochmal nachfragen...
Viel Grüße
martl
Antwort 2 von Heiko1985
Super. Hat geklappt! Vielen Dank! :)

