Excel - Kombinieren Sie 2 Blätter basierend auf der Personen-ID zu 1 und erstellen Sie neue Zeilen, wenn die ID mehr als einmal gefunden wird

Excel - Kombinieren Sie 2 Blätter basierend auf der Personen-ID zu 1 und erstellen Sie neue Zeilen, wenn die ID mehr als einmal gefunden wird

Ich habe Personendaten und Adressdaten in zwei verschiedenen Blättern, die ich zu einem zusammenführen möchte. Das Problem besteht darin, dass jede Person mehr als eine Adresse haben kann.

Wenn ich beispielsweise die folgenden beiden Datensätze habe:

**Person Data**
PersonID         Name

1          John Smith
2          Mark Brown

**Address Data**
PersonID      Address

1                  UK
1              France
1                 USA
2                  UK

Sie müssen wie folgt verbunden werden:

**Combined Data**
PersonID      Name       Address

1       John Smith            UK
1       John Smith        France
1       John Smith           USA
2       Mark Brown            UK

Gibt es eine Möglichkeit, dies über Excel-Formeln zu tun? Danke

Antwort1

Es sieht so aus, als ob Sie einfach den Namen der Person zu jeder Zeile der Adressdatenliste hinzufügen möchten. Wenn ja, ist das ganz einfach.

Annahmen

  • Personendaten sind sortiert und fortlaufend (d. h. PersonID 1 befindet sich in Zeile 2, PersonID 100 befindet sich in Zeile 101) – wenn dies nicht zutrifft, siehe letzten Abschnitt.
  • Adressdaten werden sortiert

Lösung

**Combined Data Sheet**
PersonID          Name                            Address
=$Addresses!A2    =OFFSET($Names!$B$1, A2, 0)     =$Addresses!B2

Und natürlich die Formeln nach unten kopieren.

Erläuterung

Die erste und letzte Spalte werden einfach aus dem Adressblatt kopiert. Die OFFSETFunktion erlaubt es, einen bestimmten Betrag nach unten oder nach oben zu gehen. In diesem Fall wissen wir, dass die richtige Person in der Zeile PersonID + 1 steht. Da wir in Zeile 1 ( ) beginnen, $Names!$B$1ist das +1 unnötig.

Nicht aufeinanderfolgende Personen-IDs

Mit der VLOOKUPFunktion kann nach einer Personen-ID gesucht werden und anschließend eine weitere Spalte in derselben Zeile zurückgegeben werden. In diesem Fall etwa:

=VLOOKUP(A2, Names!$A$1:$B$1000, 2, FALSE)

verwandte Informationen