Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
740to744
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
740to744
740to744
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Data Join

Data Join
10.03.2006 11:31:45
Kai
Hallo zusammen,
vielleicht kennt jemand Join bei Datenbanken...
zwei Tables die Attribute oder Felder identisch haben werden so zusammengefügt, dass nur die Einträge übrig bleiben, wo der Wert der Felder gleich ist, die in beiden Tables vorkommen. Das doppelte Attribut kommt nur einmal vor und die nicht-doppelten Felder der Tables werden angefügt.
beispiel in SQL-Syntax: select * from a,b where a.a1=b.a1
Beispiel:
Table A:
Attribut 1 Attribut 2
xyc 123
xcv 245
cvb 345
Table B:
Attribut 1 Attribut 3
xcv 654
cvb 987
vbn 321
Table A join Table B:
Attribut 1 Attribut 2 Attribut 3
xcv 245 654
cvb 345 987
und genau das möchte ich mit Excel-Tabellen machen. Nur wie?

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Data Join
10.03.2006 16:20:46
Franz
Hallo Kai,
diese JOIN-Funktion kann man per Makro umsetzen.
bezogen auf die Beispieldaten könnte man dies wie folgt umsetzen:

Sub EXCELJoin()
Dim Tabelle1 As Range, Tabelle2 As Range, wks1 As Worksheet
Set Tabelle1 = ThisWorkbook.Sheets("Tab1").Range("A1:B5") 'DatenBereich in Tabelle 1
Set Tabelle2 = ThisWorkbook.Sheets("Tab2").Range("A1:B5") 'Datenbereich in Tabelle 2
Set wks1 = ThisWorkbook.Sheets("Tab3") 'Zieltabelle
wks1.Cells.ClearContents
K = 1 'Zeilenzähler in Tabelle 3
For I = 1 To Tabelle1.Rows.Count
For J = 1 To Tabelle2.Rows.Count
If Tabelle1(I, 1) = Tabelle2(J, 1) Then
wks1.Cells(K, 1) = Tabelle1(I, 1)
wks1.Cells(K, 2) = Tabelle1(I, 2)
wks1.Cells(K, 3) = Tabelle2(J, 2)
K = K + 1
End If
Next J
Next I
wks1.Activate
End Sub
oder als Variante
Sub EXCELJoin2()
Dim wks1 As Worksheet, wks2 As Worksheet, wks3 As Worksheet
Set wks1 = ThisWorkbook.Sheets("Tab1") 'Tabelle A
Set wks2 = ThisWorkbook.Sheets("Tab2") 'Tabelle B
Set wks3 = ThisWorkbook.Sheets("Tab3") 'Zieltabelle
wks3.Cells.ClearContents
StartzeileA = 1
StartzeileB = 1
K = 1 'Zeilenzähler in Tabelle 3
For I = StartzeileA To wks1.UsedRange.Rows.Count
For J = StartzeileB To wks1.UsedRange.Rows.Count
If wks1.Cells(I, 1) = wks2.Cells(J, 1) Then
wks3.Cells(K, 1) = wks1.Cells(I, 1)
wks3.Cells(K, 2) = wks1.Cells(I, 2)
wks3.Cells(K, 3) = wks2.Cells(J, 2)
K = K + 1
End If
Next J
Next I
wks3.Activate
End Sub

mfg
Franz
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige