Supportnet Computer
Planet of Tech

Supportnet / Forum / Tabellenkalkulation

Tabellen mergen - wie





Frage

Ich habe 2 Tabellen: Firmen Adressdaten (eine Zeile je Firma) Ansprechpartner (x Zeilen je Firma) Die beiden Tabellen referenzieren aufauander über eine Adressnummer. Diese Nummer ist in der Firmentabelle eindeutig, in der Ansprechpartnertabelle so oft doppelt wie Ansprechpartner zu einer Firma gehören. Wie bekomme ich diese beiden Tabellen vernünftig zusammen? Als Ergebnis bräuchte ich eine Tabelle, wo neben jedem Ansprechpartner die Firmenadresse steht. Wer weis wie? Gruß Thomas

Antwort 1 von FrankieH

Nach Access wechseln. Für derartige Relationen sind Datenbanken das geeignete Programm.

Wenn Du Sie unbedingt in Excel wieder haben möchtest, kannst Du die Tabelle ja anschließend wieder exportieren.


Antwort 2 von Teddy7

Hallo Thomas !
Das geht mit einem Makro.
In meinem Beispiel habe ich angenommen im Tabellenblatt Tabelle1 steht in Spalte A der Schlüssel und in Spalte B die Firma. Im Tabellenblatt Tabelle2 erwarte ich in Spalte A den Schlüssel und in Spalte B den Ansprechpartner.
Dann führt folgendes Makro die Daten in Tabelle3 zusammen:
----------------
Sub Makro1()
Dim i1 As Integer
Dim i2 As Integer
Dim i3 As Integer
Dim t1 As Integer
Dim xkey As String
Dim xfirma As String
Dim xanspr(1 To 50) As String
Dim lastrow1 As Integer
Dim lastrow2 As Integer


Sheets("Tabelle2").Select
With Range("A1")
lastrow2 = .SpecialCells(xlCellTypeLastCell).Row
End With

Sheets("Tabelle1").Select
With Range("A1")
lastrow1 = .SpecialCells(xlCellTypeLastCell).Row
End With

i3 = 0
For i1 = 1 To lastrow1
Sheets("Tabelle1").Select
xkey = Cells(i1, 1).Value
xfirma = Cells(i1, 2).Value
t1 = 0
Sheets("Tabelle2").Select
For i2 = 1 To lastrow2
If Cells(i2, 1) = xkey Then
t1 = t1 + 1
xanspr(t1) = Cells(i2, 2)
End If
Next i2

Sheets("Tabelle3").Select
i3 = i3 + 1
Cells(i3, 1).Value = xkey
Cells(i3, 2).Value = xfirma
Cells(i3, 3).Value = xanspr(1)
For t1 = 2 To 50
If xanspr(t1) <> "" Then
i3 = i3 + 1
Cells(i3, 3).Value = xanspr(t1)
End If
Next t1
For t1 = 1 To 50
xanspr(t1) = ""
Next t1
Next i1

End Sub
------------------
Gruß
Teddy

Ich möchte kostenlos eine Frage an die Mitglieder stellen:


Ähnliche Themen:


Suche in allen vorhandenen Beiträgen: