Crosssellingübersichten
#1
Hallo Community,

habe schon viel gegoogelt und leider keine brauchbare Lösung für mein Problem gefunden.

Ich habe eine Datenbasis die wie folgt aussieht:

[Bild: 35bgppg.png]

Ziel für eine Uploaddatei ist es, in einer Zeile jeweils in SpalteA den Hauptartikel zu haben, in SpalteB dann den entsprechenden "passendes Werkzeug" Artikel zu haben. Das ganze wiederholt sich dann, der SpalteA Artikel gepaart mit dem SpalteC usw...

Hab schon nach Sverweis mit mehreren Suchtreffen geschaut und auch einige Lösungsansätze mit Makros durchgespielt, aber irgendwie kein richtiges Ergebniss bekommen.

Herausforderung:
Es können mehr als 4 Spalten "Passende ..." sein, es muss aber für eine Systemimportdatei immer der in Spalte A der Hauptartikel sein.

Das ganze manuell gebaut sieht wie folgt aus:

[Bild: 1237c7d.png]

Ich bin echt am verzweifeln, da das ganze immer Manuell zu kopieren bei einer Tabelle mit 300 Hauptartikel und über 3000 "Passende ..." nicht realisierbar ist und weder Pivot noch Sverweis zu einem brauchbaren Ergebnis führt.
Top
#2
Hallo,

Zitat:Es können mehr als 4 Spalten "Passende ..." sein, ...
Verstehe ich das richtig, dass es aber immer 3 Gruppen sind mit jeweils 4 oder mehr Spalten ?

Dann stell mal statt eines Bildes eine Excel-Datei mit einer Beispiel-Datenbasis zur Verfügung.

Gruß
Aloys
Top
#3

.xlsx   Crossselling - Kopie.xlsx (Größe: 18,38 KB / Downloads: 4)

Anbei mal die Datei. Tabellenblatt 1 ist eine Arbeitsdatei, hier wird quasi der Quellartikel in Spalte A hinterlegt und in allen weiteren Spalten (Beliebige Anzahl von Spalten, aber immer mit dem Dropdown) dann jeweils der Typ (Werkzeug, Material,...) des Artikels und die entsprechende Artikelnummer hinterlegt.

Für einen Import in unser Tool, benötige ich das Format, wie in Tabellenblatt 2. Also quasi immer Quellartikel und dann in der selben Zeile entsprechende Artikelnummer unter der Typenbezeichnung (Werkzeug, Material,...).

Ich hoffe mit dem Beispiel ist es nun verständlich.
Top
#4
Hallo,

anbei eine VBA-Lösung als Vorschlag:

Code:
Option Explicit

Sub Crossselling()
   Dim wsZ As Worksheet    ' Ziel-Tabelle
   Dim q As Long           ' Zeilen# Quell-Tabelle
   Dim c As Long           ' Spalten# Quell-Tabelle
   Dim z As Long           ' Zeilen# Ziel-Tabelle
   Dim s As Long           ' Spalten# Ziel-Tabelle
   Dim n As Long           ' Schleifenzähler
   Dim LRow As Long        ' Nr letzte Zeile in Quell-Tabelle
   Dim LCol As Long        ' Nr letzte Spalte in Quell-Tabelle
   Dim erg As Variant      ' Ergebnis Match
   
' Initialisierung
   Set wsZ = Worksheets("Zieldatei")            ' Ziel-Tabelle
   With wsZ
       LRow = .Cells(Rows.Count, "A").End(xlUp).Row
       If LRow > 2 Then .Range("A3:E" & LRow).ClearContents
   End With
   
   With Worksheets("Quelldatei")
       LRow = .Cells(Rows.Count, "A").End(xlUp).Row            ' letzte Zeile Quell-Tabelle
       LCol = .Cells(1, Columns.Count).End(xlToLeft).Column    ' letzte Spalte in Zeile 1 der Quell-Tabelle
       z = 2                           ' Start-Zeile Ziel-Tabelle
       
' Erstellen Ziel-Tabelle
       For c = 2 To LCol               ' Spalte# Quelldatei
           erg = Application.Match(.Cells(1, c), wsZ.Range("B2:E2"), 0)
           If Not IsNumeric(erg) Then
               MsgBox "Überschrift in Sp " & c & " in Zieldatei nicht gefunden!", vbCritical
               Exit Sub
           End If
           s = erg + 1                 'Spalten# Zieldatei

'         Für jede Quelldatei-Spalte wird gesamte Hauptartikelliste gelistet
           For q = 2 To LRow
               z = z + 1
               wsZ.Range("A" & z) = .Range("A" & q)        ' Hauptartikel
               wsZ.Cells(z, s) = .Cells(q, c)
           Next q
       Next c
   End With
End Sub
[-] Folgende(r) 1 Nutzer sagt Danke an aloys78 für diesen Beitrag:
  • pschoener
Top
#5
Thumbs Up 
Hallo Aloys78

Vielen Dank für die VBA-Lösung. Funktioniert.

Grüße
pschoener
Top


Gehe zu:


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