it-swarm.com.de

Inner Join in Excel (z. B. mit VLOOKUP)

Gibt es eine Möglichkeit, zwei unterschiedliche Excel-Tabellen mit VLOOKUP zu verbinden?

In SQL würde ich es so machen:

SELECT id, name
FROM Sheet1
INNER JOIN Sheet2
ON Sheet1.id = Sheet2.id;

Blatt1:

+----+------+
| ID | Name |
+----+------+
|  1 | A    |
|  2 | B    |
|  3 | C    |
|  4 | D    |
+----+------+

Sheet2:

+----+-----+
| ID | Age |
+----+-----+
|  1 |  20 |
|  2 |  21 |
|  4 |  22 |
+----+-----+

Und das Ergebnis wäre:

+----+------+
| ID | Name |
+----+------+
|  1 | A    |
|  2 | B    |
|  4 | D    |
+----+------+

Wie kann ich das in VLOOKUP machen? Oder gibt es neben VLOOKUP einen besseren Weg?

Vielen Dank.

7
PuggyLongLegs

Lassen Sie uns zunächst eine Liste der Werte abrufen, die in beiden Tabellen vorhanden sind. Wenn Sie Excel 2010 oder höher verwenden, geben Sie in Blatt 3 A2 die folgende Formel ein:

=IFERROR(AGGREGATE(15,6,Sheet2!$A$1:$A$5000/(COUNTIF(Sheet1!$A$1:$A$5000,Sheet2!$A$1:$A$5000)>0),ROW(1:1)),"")

Wenn Sie 2007 oder früher verwenden, verwenden Sie diese Array-Formel:

=IFERROR(SMALL(IF(COUNTIF(Sheet1!$A$1:$A$5000,Sheet2!$A$1:$A$5000),Sheet2!$A$1:$A$5000),ROW(1:1)),"")

Als Matrixformel kopieren und in die Formelleiste einfügen und dann Strg-Umschalt-Enter anstelle von Enter oder Tab drücken, um den Bearbeitungsmodus zu verlassen.

Kopieren Sie dann so viele Zeilen wie gewünscht. Dadurch wird eine Liste mit IDs erstellt, die in beiden Listen enthalten sind. Dies setzt voraus, dass ID eine Zahl und kein Text ist.

Dann verwenden wir mit dieser Liste vlookup:

=IF(A2<>"",VLOOKUP(A2,Sheet1!A:B,2,FALSE),"")

Dadurch wird der Wert aus Blatt 1 zurückgegeben, der übereinstimmt.

enter image description here

4
Scott Craner

Sie können dieses Ergebnis mit Microsoft Query erzielen.

Wählen Sie zuerst Data > From other sources > From Microsoft Query aus.

 enter image description here

Wählen Sie dann "Excel-Dateien *".

In den Fenstern "Arbeitsmappe auswählen" müssen Sie die aktuelle Arbeitsmappe auswählen.

Wählen Sie dann in den Abfragefenstern Wizard sheet1 $ und sheet2 $ aus und klicken Sie auf die Schaltfläche ">" .  enter image description here

Klicken Sie auf Weiter. Der Abfrage-Editor wird geöffnet.

Klicken Sie auf die SQL-Schaltfläche und fügen Sie diese Abfrage ein:

SELECT `Sheet1$`.ID, `Sheet1$`.Name, `Sheet2$`.Age
FROM`Sheet1$`, `Sheet2$`
WHERE `Sheet1$`.ID = `Sheet2$`.ID

Schließen Sie den Editor und legen Sie die Tabelle dort, wo Sie sie brauchen.

Das Ergebnis sollte so aussehen:  enter image description here

1
Seb