Abgleich von zwei Spalten, aber kein eindeutiges V

Guten Tag!

Folgendes Problem: Ich habe zwei Tabellen mit Namen.
In der einen Tabelle steht z.B.

Peter Klausen Bau GmbH
Klaus-Dieter Pelzer-Möring Fensterbau
Jupp Schmitz Fahrradhandel

In der zweiten Tabelle steht
Peter Klausen
Pelzer Fensterbau
Josef Schmitz

Jetzt überlege ich, wie ich die Tabellen abgleichen kann.
Meine erste Idee ist, ich definiere in der zweiten Tabelle ein „Suchspalte“,
die lautet
Klausen
Pelzer
Schmitz

Jetzt suche ich nach einer Funktion, die in der ersten Tabelle hingeht und
Zeile für Zeile untersucht, ob einer der Namen aus der „Suchspalte“ vorkommt.

Wer kann mir hier helfen???

Vielen Dank

Ingo

Formel oder Makro?
wenn Makro, dann schnitz’ ich Dir eins…

dann gib mir aber gleich an…

  1. wieviele Datensätze Du maximal erwartest
  2. in welcher Spalte gesucht werden soll
  3. ob Deine suchbegriffe an einem festen Ort/Zelle (welche?) oder per eingabefeld beim starten des makros gesucht werden soll
  4. wie die suchergebnisse markiert werden sollen…

Hallo Ingo,

mit einfachen Funktion ist dies wohl nicht lösbar.

Mit folgender benutzerdefinierten Funktion geht

In Tabelle 2 muß du für die Daten (Spalte Namen bis Hilfspalte) den Namen „DatenTabelle2“ vergeben.

Function NameSuchen(Name)
 NameSuchen = ""
 For I = 1 To Range("DatenTabelle2").Rows.Count
 If InStr(1, Name, Range("DatenTabelle2").Cells(I, 5)) \> 0 Then
'Cells(I, 5)): 5 ist die Nummer der Hilfsspalte innerhalb von "Datentabelle2"
' ggf. 5 ändern
 NameSuchen = NameSuchen & Range("DatenTabelle2").Cells(I, 1)
 End If
 Next
End Function

Zur Verdeutlichung hier die von mir verwendeten Beispieltabellen

Tabellenblattname: Tabelle1

 A B C D E 
1 Name Straße PLZ Ort Name in Tabelle2 
2 Peter Klausen Bau GmbH Peter Klausen 
3 Klaus-Dieter Pelzer-Möring Fensterbau Pelzer Fensterbau 
4 Jupp Schmitz Fahrradhandel Josef SchmitzHubert Schmitz 

Benutzte Formeln:
E2: =NameSuchen(A2)
E3: =NameSuchen(A3)
E4: =NameSuchen(A4)

Tabellenblattname: Tabelle2

 A B C D E 
1 Namen Strasse PLZ Ort Hilfsspalte 
2 Peter Klausen Klausen 
3 Pelzer Fensterbau Pelzer 
4 Josef Schmitz Schmitz 
5 Fritz Maier Maier 
6 Hubert Schmitz Schmitz 

Die Funktion trägt in Tabelle 1 die Namen aus Tabelle 2 ein.

Gruß
Franz

das liest sich interessant
kannst Du mir evtl noch kurz erklären, wie ich die Rückgabe aus so einer Funktion steuere also, dass ein Zellinhalt
=Testfunktion(„Hugo“)

dann zum Beispiel „Hugo ist verrückt“ in die Zelle schreibt?

Deine Funktion ist mir so irgendwie zu komplex ums zu kapieren *g*

Hallo Munich,

Function Testfunktion(Name)
 Testfunktion = ""
 For I = 1 To Range("DatenTabelle2").Rows.Count
 If InStr(1, Name, Range("DatenTabelle2").Cells(I, 1)) \> 0 Then
 Testfunktion = Name & " ist verrückt"
 End If
 Next
End Function

In diesem Fall entspricht „DatenTabelle2“ dem Bereich in der Spalte „Hilfsdaten“, der die zu suchenden Namen in der Tabelle 2 enthält.

Diese Vereinfachung finde ich für die gewünschte Anwendung allerdings nicht sinnvoll. Meine Variante erlaubt relativ einfach den Rückgabewert der Funktion anzupassen und weitere Daten aus Tabelle2 nach Tabelle1 zu übernehmen, z.B. auch die Address-Information. Dann kann man anschließend einfach manuell, die Einträge in Tabelle1 vergleichen. Durch Anpassungen der Funktion wäre sogar ein automatischer Vergleich der Werte möglich.

Gruß
Franz

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

1 „Gefällt mir“