Liste aus Tabelle erstellen
#1
Hallo zusammen,

es wäre klasse, wenn mir jemand von euch bei meinem Problem helfen könnte.

Ich habe eine Liste mit 10 Spalten und 187 Zeilen, wobei Zellen jeweils verschiedene (wiederkehrende) Unternehmensnamen enthalten. Insgesamt sind es 157 Unternehmensnamen.
Nun möchte ich eine Liste aus zwei Spalten daraus generieren. In der ersten Spalte sind alle Unternehmen aufgelistet. In der zweiten Spalte sollen dann jeweils die Unternehmen gelistet werden, die mit dem Unternehmen aus Spalte A irgendwo in der Liste in derselben Zeile auftauchen. 

Wie funktioniert das in Excel?
Hier mal ein Beispiel, vielleicht ist mein Anliegen so verständlicher?
Beispiel:

die Tabelle:
ADIDAS PUMA UVEX SIEMENS
AUDI ADIDAS UVEX KPMG
DAIMLER PUMA BMW SIEMENS

die Liste sollte dann so aussehen:
Adidas Puma
Adidas Uvex
Adidas Siemens
Puma Adidas
Puma Uvex
Puma SIemens
Uvex adidas
uvex Puma
uvex siemens
uvex Audi
uvex kpmg
siemens adidas
siemens Puma
siemens uvex
.... und so weiter!

Kann mir jemand weiterhelfen? Ich wäre sooooo dankbar für Hilfe!!! LG Thesi
Top
#2
Hallo,

teste mal diesen Code:


Code:
Sub Test()
For i = 1 To Cells(Rows.Count, "A").End(xlUp).Row
    Tx = Split(Cells(i, "A"))
    For j = 0 To UBound(Tx)
        For k = 0 To UBound(Tx)
            If j <> k Then
            r = r + 1
                Cells(r, "D").Resize(, 2) = Array(Tx(j), Tx(k))
            End If
        Next k
    Next j
Next i
End Sub
In Spalte A stehen die Unternehmensnamen, Ausgabe in Spalte D und E.
mfg
[-] Folgende(r) 1 Nutzer sagt Danke an Fennek für diesen Beitrag:
  • thesithesithesi
Top
#3
Danke für die schnelle Hilfe!
Ich bin wirklich ein Excel Anfänger, daher weiß ich nicht genau an welchen Stellen im Code ich die entsprechenden Zeilen und Spalten aus meiner Datei einfügen muss? Ich hänge mal meine Beispieldatei an.
Oh man :(
Ich bin langsam wirklich verzweifelt damit ...


Angehängte Dateien
.xlsx   Präferenzdaten _ v2.xlsx (Größe: 20,45 KB / Downloads: 8)
Top
#4
Hallo,

fehlt in der Tabelle die Ausgangsliste? Es sieht eher nach dem Ergebnis aus.

mfg
Top
#5
Also die Ausgangsliste findet sich in den Spalten mit den Namen v_1 bis v_10. Und in der Spalte "employer" sind alle Unternehmensnamen gelistet die sich in der Tabelle v_1 bis v_10 befinden....
insofern istdie spalte "employer" zumindest bereits ein Teil des Ergebnisses...
Top
#6
Hallo,

ungetestet


Code:
Sub Test()

For i = 2 To Cells(Rows.Count, "C").End(xlUp).Row
T1 = trim(join(Range(cells(i,3),cells(i,12)), " "))

   Tx = Split(T1)
   For j = 0 To UBound(Tx)
       For k = 0 To UBound(Tx)
           If j <> k Then
           r = r + 1
               Cells(r, "O").Resize(, 2) = Array(Tx(j), Tx(k))
           End If
       Next k
   Next j
Next i
End Sub


Der Code muss in ein allgemeines Modul eingefügt  und dann die Datei als *.xlsm (mit Makro) gespeichert werden.

mfg
Top
#7
Moin,
schade, dass du deine "persönliche" Namensgebung für die Zellen bzw. deren Adressierung verwendest, sonst wäre konkrete Hilfe leichter. Am leichtesten wäre natürlich eine kleine Musterdatei gewesen ...  Dodgy
Ich gehe aber davon aus, dass du über Daten-Abrufen und transformieren und dann mit dem Stichwort Entpivotieren weiter kommst (ohne eine Zeile Code).
Beste Grüße
  Günther

Excel-ist-sexy.de
  …schau doch mal rein!
Der Sicherheit meiner Daten wegen lade ich keine *.xlsm bzw. *.xlsb- Files mehr herunter! -> So geht's ohne!
Top
#8
Hallo Günther,

danke für deine Antwort.
Tut mir leid, ich bin leider ein kompletter Excel Neuling... Wie muss ich denn meine Datei aufbereiten, damit ihr mir weiterhelfen könnt?
Leider kam ich mit Entpivotieren nicht weiter...

Viele Grüße
Top
#9
Moin,
ich fange einmal damit an, dass ich deine Muster-Datei nicht gesehen hatte ... Blush sorry.
Dass du nicht weiter kommst liegt wahrscheinlich / vielleicht auch daran, dass komplette Leerspalten (hier: Spalte_B) eine Tabelle zerstören. Darum habe ich erst einmal in B1 das Wort "leer" geschrieben. Obwohl ich glaube, dass du die trotzdem nicht brauchst ... Wie auch immer... (Alternativ kannst du auch gleich nur in den Bereich ab V1 klicken)
  • Danach ein Klick in die Daten und Daten-Aus Tabelle.
  • Die ersten beiden Spalten (bei Bedarf) löschen
  • Spalte V1 markieren (Überschrift)
  • Rechtsklick in die Überschrift, Andere Spalten entpivotieren
  • Spalte Attribut löschen
  • Schließen & laden
  • freuen
Beste Grüße
  Günther

Excel-ist-sexy.de
  …schau doch mal rein!
Der Sicherheit meiner Daten wegen lade ich keine *.xlsm bzw. *.xlsb- Files mehr herunter! -> So geht's ohne!
Top


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste