mehrere Suchtreffer zu einem Wert
#1
Hallo zusammen,

ich knobel seit längerem an einer Augabenstellung.

ich habe:
- 80 Zeilen        (Kunden-Nr.)
- 140 Spalten    (Artikel-Nr.)
- im Schnittpunkt die jeweilige Bedarfsmenge

Im Prinzip gibt mir die Ausgangs-Liste alle Werte, diese möchte ich in die Ziel-Liste umwandeln, sodass ich 
80x die selbe Kd.-Nr. untereinander mit den jeweils 140 unterschiedlichen Artikel-Nr. aufliste und somit 11.200 Zeilen erhalte

Ich habe ein kleineres Beispiel angehängt.
diese Liste besteht aus 
- 10 Kunde
- 4 Artikeln
= also 40 Zeilen Endergebnis

hat hier jemand für mich eine Lösung?

Besten Dank schon jetzt für eure Unterstützung und Mühe


Angehängte Dateien
.xlsx   Mappe1.xlsx (Größe: 10,63 KB / Downloads: 8)
Top
#2
Hallo,

meinst du so etwas? Klick hier

oder so? Klick hier
Gruß Conny :)
_______________________________________________________________

Die Summe der Intelligenz auf unserem Planeten ist konstant, aber die Bevölkerung wächst!
[-] Folgende(r) 1 Nutzer sagt Danke an coemm für diesen Beitrag:
  • Aqui
Top
#3
(21.01.2016, 18:43)Aqui schrieb: Hallo zusammen,

...

hat hier jemand für mich eine Lösung?

Hallo, meinst du so

J2=SUMMENPRODUKT(($A$5:$A$14=H2)*($B$3:$E$3=I2);$B$5:$E$14)

und runterziehen...
Gruß Jörg
stolzes Mitglied im ----Excel-Verein
Freund einer excellenten Power Query-Abfrage
Top
#4
Hallo Jörg,


Du beziehst Dich mit der Formel auf die Zielliste.
Die Zielliste soll aus den Werten der Ausgangsliste aber erst erstellt werden.


Coemms Vorschlag mit der Pivot ist hier zielführend und braucht nur ein Paar Klicks.
Gruß Atilla
Top
#5
(21.01.2016, 19:40)atilla schrieb: Hallo Jörg,


Du beziehst Dich mit der Formel auf die Zielliste.
...
Coemms Vorschlag mit der Pivot ist hier zielführend und braucht nur ein Paar Klicks.

Hallo, jepp, das habe ich wohl, ich hatte mir nur die Datei angesehen... ... und dachte das man aus einer Ausgangsliste eine Zielliste erstellt... so mache ich das für gewöhnlich... ... aber wenn's so nicht gemeint war, auch gut...
Gruß Jörg
stolzes Mitglied im ----Excel-Verein
Freund einer excellenten Power Query-Abfrage
Top
#6
Hallo Jörg,


Zitat:...und dachte das man aus einer Ausgangsliste eine Zielliste erstellt... so mache ich das für gewöhnlich...

verstehe ich nicht,das ist doch das, was der TE auch machen möchte.

In der Zielliste sollen die Spalten H und I auch erstellt werden. Wie machst Du das?
Gruß Atilla
Top
#7
HAMMER @ Conny ! :18:

Danke, die KREUZTABELLE hatte ich, nur nie auf der Summe Doppelklick gemacht.  Idea

Das Hilft extrem weiter   :100:
Top
#8
Guten Morgen zusammen,

vielleicht kann ich ja noch eine Challenge oben draufsetzen   :19: ... oder ihr mir eine Klasse Lösung für mein Problem anbieten 

Meine Datenbasis besteht aus zwei Tabellen.

- Ausgangs-liste 1 enthält 
  1. Auftrags Nr
  2. Kd Nr
  3. Artikel Paket
  4. Anzahl von Artikel Paket

- Ausgangs-liste 2 enthält 
  1. Paket A Artikel. Nr.
  2. Anzahl je Artikel
  3. Paket B Artikel. Nr.
  4. Anzahl je Artikel
Gerne möchte ich, 
  • die Inhalte je Paket
  • multipliziert mit der Bestellten Anzahl 
  • je Auftrag
Eine Beispieldatei hängt an

Für einen Lösungsweg oder Ansatz ... wäre ich sehr dankbar.


Greetz
Aqui


Angehängte Dateien
.xlsx   Mappe2.xlsx (Größe: 10,86 KB / Downloads: 6)
Top
#9
Hallo,


ich habe hierfür eine VBA Lösung erarbeitet:

Code:
Sub mach()
Dim i As Long, j As Long, k As Long
Dim AListe As Range
Dim PaketA As Range
Dim PaketB As Range

Set AListe = Range("A3:D10")
Set PaketA = Range("F3:G6")
Set PaketB = Range("H3:I7")

Columns("R:U").Clear
j = 3
For i = 1 To AListe.Rows.Count
 If AListe.Cells(i, 3) = "Paket A" Then
   PaketA.Copy Cells(j, 20)
   For k = 1 To PaketA.Rows.Count
     Cells(j + k - 1, 21) = AListe.Cells(i, 4).Value * PaketA.Cells(k, 2).Value
   Next k
   Range(Cells(j, 18), Cells(j + PaketA.Rows.Count - 1, 19)).Value = Range(AListe.Cells(i, 1), AListe.Cells(i, 2)).Value
   j = j + PaketA.Rows.Count
 Else
   PaketB.Copy Cells(j, 20)
   For k = 1 To PaketB.Rows.Count
     Cells(j + k - 1, 21) = AListe.Cells(i, 4).Value * PaketB.Cells(k, 2).Value
   Next k
   Range(Cells(j, 18), Cells(j + PaketB.Rows.Count - 1, 19)).Value = Range(AListe.Cells(i, 1), AListe.Cells(i, 2)).Value
   j = j + PaketB.Rows.Count
 End If
Next i

End Sub


Die Zielliste wird ab Zeile 3 (im Code: j = 3) und in die Spalten R-U (im Code werden diese gelöscht: Columns("R:U").Clear) erstellt
Gruß Atilla
Top
#10
Hallo Atilla,

besten Dank, habe ich getestet und es läuft.

Da ich nicht wirklich in VBA fit bin Blush  ... habe ich mir angeschaut was du gemacht hast und dann versucht ... es etwas anzupassen. 
Aber leider falsch, da es nicht funktioniert.

Kann ich beliebige ELSE einbauen? Dachte ich wandel es ab das es passt ..  :22: aber  :69:

meine Datei dazu im Anhang.




Code:
Sub mach()
Dim i As Long, j As Long, k As Long
Dim AListe As Range
Dim PaketA As Range
Dim PaketB As Range
Dim PaketC As Range
Dim PaketD As Range

Set AListe = Range("A3:D72")
Set PaketA = Range("F3:G5")
Set PaketB = Range("H3:I6")
Set PaketC = Range("J3:K4")
Set PaketD = Range("L3:M3")

Columns("R:U").Clear
j = 3
For i = 1 To AListe.Rows.Count
If AListe.Cells(i, 3) = "Paket A" Then
  PaketA.Copy Cells(j, 20)
  For k = 1 To PaketA.Rows.Count
    Cells(j + k - 1, 21) = AListe.Cells(i, 4).Value * PaketA.Cells(k, 2).Value
  Next k
  Range(Cells(j, 18), Cells(j + PaketA.Rows.Count - 1, 19)).Value = Range(AListe.Cells(i, 1), AListe.Cells(i, 2)).Value
  j = j + PaketA.Rows.Count
Else
  PaketB.Copy Cells(j, 20)
  For k = 1 To PaketB.Rows.Count
    Cells(j + k - 1, 21) = AListe.Cells(i, 4).Value * PaketB.Cells(k, 2).Value
  Next k
  Range(Cells(j, 18), Cells(j + PaketB.Rows.Count - 1, 19)).Value = Range(AListe.Cells(i, 1), AListe.Cells(i, 2)).Value
  j = j + PaketB.Rows.Count
Else
  PaketC.Copy Cells(j, 20)
  For k = 1 To PaketC.Rows.Count
    Cells(j + k - 1, 21) = AListe.Cells(i, 4).Value * PaketC.Cells(k, 2).Value
  Next k
  Range(Cells(j, 18), Cells(j + PaketC.Rows.Count - 1, 19)).Value = Range(AListe.Cells(i, 1), AListe.Cells(i, 2)).Value
  j = j + PaketC.Rows.Count
Else
  PaketD.Copy Cells(j, 20)
  For k = 1 To PaketD.Rows.Count
    Cells(j + k - 1, 21) = AListe.Cells(i, 4).Value * PaketD.Cells(k, 2).Value
  Next k
  Range(Cells(j, 18), Cells(j + PaketD.Rows.Count - 1, 19)).Value = Range(AListe.Cells(i, 1), AListe.Cells(i, 2)).Value
  j = j + PaketD.Rows.Count
End If
Next i

End Sub

vielleicht gibt es ja auch eine PowerPivot Möglichkeit?

Grüße und herzlichen Dank


Angehängte Dateien
.xlsx   Mappe3.xlsx (Größe: 11,71 KB / Downloads: 1)
Top


Gehe zu:


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