Guten Morgen zusammen, ich finde für das folgende Problem keine Lösung:
Ich kann aus zwei Programmen XLS-Listen erzeugen lassen die folgenden Eigenschaften aufweisen:
Tabelle 1 Vorname; Nachname; Klasse; Kurs
Tabelle 2 Vorname; Nachname; Mailadresse
In Tabelle 1 sind auch Daten von Personen enthalten, die aktuell nicht mehr tätig sind, somit redundante Daten die in Tabelle 2 nicht zu finden sind. In Tabelle 2 alle Personen aktuell.
Ich würde gerne mit Excel beide Tabellen zusammenführen und zwar so, dass Excel die Nachnamen aus beiden Tabellen als Referenz gegeneinander abgleicht und in einem neuen Tabellenblatt zusammenführt. Die Mailadressen aus Tabelle 2 sollen den Personen aus Tabelle 1 zugeordnet werden.
Kann mir jemand erklären, ob das geht und wenn ja, wie? Herzlichen Dank im Voraus und alles Gute! Frank
"nur" fast deswegen, weil du uns zu wenig Infos erzählst... - in welchen Zeilen/Spalten in Tabelle1 befinden sich die Daten? - in welchen Zeilen/Spalten in Tabelle2 befinden sich die Daten? - sollen die Mailadressen aus Tabelle2 in Tabelle1 oder im neuen Tabellenblatt eingetragen werden? - befinden sich Tabelle1 + Tabelle2 in der gleichen Datei, oder handelt es sich um 2 Dateien?
Am besten würd ich es finden, wenn du uns per Upload so viel wie notwendig Bsp-Dateien zeigst...in denen in den richtigen Zeilen/Spalten genügend Bsp-Daten enthalten sind.
In der Beispieldatei sind in Tabelle 1, Spalte B Nachnamen hinterlegt. Diese gelten als Bezug. In Tabelle 2 sind ebenfalls Nachnamen hinterlegt, die den Nachnamen aus Tabelle 1 zugeordnet werden sollen, so dass am Ende in Tabelle die Mailadressen mit zugeordnet werden Tabelle 1 weist redundante Inhalte auf (die letzten beiden Zeilen) die nicht mit Tabelle 2 verknüpft werden können. Diese sollen dann einfach leer bleiben.
Ich hoffe, dass ich das jetzt hilfreicher erklärt habe. Alles Gute! Frank
da braucht man doch kein VBA! Das ist ein klassischer Fall für XVERWEIS (bzw. bei älteren Excel-Versionen der SVERWEIS bzw. INDEX/VERGLEICH).
=XVERWEIS(Nachname;Spalte mit Nachnamen;Spalte mit EMail;"")
Übrigens ist der Nachname nicht die beste Option für solch eine Suche. Es könnte ja 2x "Müller" vorkommen. Daher nimmt man für so etwas besser eine Personalnummer oder wenigstens die Kombination Nachname/Vorname. Wobei es sicherlich immer noch zu viele "Andreas Müller" gibt, um hier eine Doppelung sicher auszuschließen.
29.09.2024, 15:45 (Dieser Beitrag wurde zuletzt bearbeitet: 29.09.2024, 15:45 von Spruenki.)
Hallo zusammen, ich habe das mit =sverweis ausprobiert. Da mache ich aber einen Fehler, den ich nicht finde. Mit dem Befehl
=SVERWEIS(B2;Tabelle2!A2:D7;3;WAHR)
funktioniert das nicht. Wenn ich das richtig sehe, dann greift der Befehl auf B2 in Tabelle 1 zu und vergleicht den Wert mit der Matrix Tabelle 2, Spalte B und gibt bei Übereinstimmung die Mailadresse aus. So der Plan. Funktioniert aber nicht (vgl. XLS-Datei). Da sind einige Zuodnung dann fehlerhaft. Was mache ich denn falsch? Schöne Grüße Frank
Bitte was is denn an VBA so verwerflich, dass du die Verwendung sogar mit ! am Ende verneinst? Und ja, auch ich hatte an SVERWEIS gedacht, aber ohne darauf hinzuweisen, ist mir dann auch das Problem mit Nachnamen, z Bsp Müller, eingefallen. Damit man nun per Formel Vor- UND Nachname gegeneinander prüfen kann, benötigt es eine doch komplexere Formel, als nur SVERWEIS, oder aber mind. eine zusätzliche Hilfs-Spalte, in der Vor- und Nachname zusammengeführt werden.
Aber na gut, ich bin eh nich so der Formelexperte, liebe dafür aber um so mehr weiterhin VBA, und werde auch weiterhin VBA-Ideen anbieten, auch wenn...hach...alles doch so einfach? mit Formeln lösbar wäre^^
29.09.2024, 18:23 (Dieser Beitrag wurde zuletzt bearbeitet: 29.09.2024, 18:25 von HKindler.)
Hi,
bei der Formel sollte man allerdings die $-Zeichen bei der Matrix nicht vergessen! Ansonsten funktioniert das Ziehen nicht richtig.
@Oberschlumpf: An VBA ist nichts verwerfliches. Es beludet allerdings, dass man die Datei als *.xlsm speichern und die Ausführung von Makros erlauben muss. An letzterem scheitert es aus Sicherheitsgründen bei immer mehr Firmen. Und wieso sollte man mit Kanonen auf Spatzen schießen? Oder verwendest du zur Ermittlung einer bedingten Summe auch VBA, obwohl es SUMMEWENNS und SUMMENPRODUKT gibt?
Wenn du Vornahme & Nachnahme prüfen willst, dann geht das bei XVERWEIS völlig problemlos: =XVERWEIS(B2&"|"&C2;Tabelle2!$A$2:$A$7&"|"&Tabelle2!$B$2:$B$7;Tabelle2!$C$2:$C$7;"") Den senkrechten Strich habe ich eingebaut, damit "Andrea Smart" und "Andreas Mart" unterschieden werden können. Beim SVERWEIS müsste man tatsächlich auf eine Hilfsspalte ausweichen.
Oder man verwendet gleich FILTER. Dann sind auch noch beliebige andere Kriterien einbaubar: =FILTER(Tabelle2!$C$2:$C$7;(Tabelle2!$A$2:$A$7=B2)*(Tabelle2!$B$2:$B$7=C2);"") Hier wird der senkrechte Strich nicht benötigt.
@Spruenki Wieso willst du SVERWEIS verwenden? Die Version 2021 sollte doch den XVERWEIS kennen. Und der bietet enorme Vorteile gegenüber den SVERWEIS. Z.B. die Suche nach Links oder die Unterdrückung von Fehlermeldungen - um nur die beiden wichtigsten zu nennen.
ok, VBA also doch nich verwerflich...deine 1. Antwort konnte man auch anders interpretieren.
Aber wegen xlsm + Firmen wollen das meist nicht mehr gebe ich dir doch recht. Nun gut, ja, ich würde tatsächlich auch mit Kanonen auf Spatzen schießen :- ), weil...ich erwähnte es: ich bin nich so der Formelexperte - ja, ich versuch tatsächlich fast alles mit VBA zu lösen. FILTER kennt mein MSO 2016 noch nicht.