Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
860to864
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
860to864
860to864
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Warengruppen zuordnen

Warengruppen zuordnen
20.04.2007 08:59:00
Ronny
Hallo Experten,
ich habe eine ABC/XYZ Analyse auf Grundlage der Artikel-Warennummer durchgeführt.
Die Artikel wurden nach AX, AY usw. klassifiziert. Jeder Artikel gehört zu einer bestimmten Warengruppe. Ich möchte nun ermitteln wie groß der Anteil der Warengruppe an der jeweiligen Klasse ist.
Schaut euch dazu bitte mal den Link an.
Die Kombination Klasse und Warengruppe soll in der Zieltabelle nur einmal vorkommen. Der Wert und die Menge sollen pro Kombination Klasse&Warengruppe kummuliert werden.
Wäre schön wenn das ohne VBA ginge.
Gruß Ronny
https://www.herber.de/bbs/user/41900.xls

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Warengruppen zuordnen
20.04.2007 09:52:45
Gert
Hallo Ronny,
soll das Ergebnis so aussehen ?
GruppeNr. Ges-Menge Menge_%
AX 775 39,91
AY 1022 52,63
AZ 145 7,47
Gesamt : 1942 100
Formel in Ges-Menge AX : '=SUMMEWENN($F$10:$F$15;$A19;$C$10:$C$15)
Formel in Menge_% : '=($B19/$B$23)*100
Die Zellwerte (z.B. B19 oder B23) entsprechend anpassen und nach unten kopieren, deshalb
Absolute & Gemischte Bezüge (siehe F1 "Hilfe").
mfg
Gert

AW: Warengruppen zuordnen
20.04.2007 10:11:00
Ronny
Hallo Gert,
Danke für deine schnelle Antwort. Leider ist das nicht so ganz das, was ich will. Ich benötige eine Zieltabelle in der die Klassen und die Gruppennummern in den jeweiligen Kombinationen vorkommen.
Ausgangstabelle
Artikel Klasse Warengruppe Menge
Äpfel AX 12 50
Birne AZ 11 60
Pflaume AX 11 40
Kirsche AY 11 30
Orange AZ 11 20
In der Zieltabelle soll in der ersten Spalte die Klasse aufgeführt werden
In der zweiten Spalte die Warengruppe (Die Kombination aus Warengruppe und Klasse soll nur einmal auftreten), d.h Birnen und Orangen gehören zur selben Klasse (AZ) und zur selben warengruppe (11) daher werden die Mengen addiert. Äpfel und Pflaumen habe zwar die selbe Klasse gehören jedoch zu unterschiedlichen Warengruppen und werden daher in unterschiedlichen Zeilen aufgeführt.
gruß ronny

Anzeige
AW: Warengruppen zuordnen
20.04.2007 11:00:10
ingUR
Hallo, Ronny,
wenn es der erste Schritt ist, die Werte auf dem Tabellenblatt "Zieltabelle" zu füllen, dann kannst Du folgende Zellenformeln einsetzen:
Zelle C2 (Wert je Warengruppe):
=SUMMENPRODUKT((Quelltabelle!$F$10:$F$15=A2)*(Quelltabelle!$E$10:$E$15=B2);(Quelltabelle!$D$10:$D$15) )
ZelleD2 (Menge je Warengruppe):
=SUMMENPRODUKT((Quelltabelle!$F$10:$F$15=A2)*(Quelltabelle!$E$10:$E$15=B2);(Quelltabelle!$C$10:$C$15) )
Dies sind keine Matrixformeln, brauchen also nicht mit [STRG][SHIFT][ENTER] geschlossen zu werden. Die Formeln sind über die Zellen C3:C5 bzw. D3:D5 zu ziehen.
Gruß,
Uwe

Anzeige
AW: Warengruppen zuordnen
20.04.2007 11:27:00
Ronny
Hallo Uwe,
danke für deine Hilfe. Die Berechnung von Wert und Menge klappt. Der Ablauf soll folgender Maßen sein.
1. Übernehme in die erste Spalte die Klasse (Bsp. AX oder AY usw, die neun möglichen Klassen könnte ich in einer gesonderten Tabellen hinterlegen, wenn es helfen würde)
2. wenn die warengruppe in der Klasse vorkommt, dann trage Sie in die 2 Spalte ein (Jede Warengruppe soll pro Klasse nur einmal vor)
3. Addiere alle Werte der Warengruppe/Klassenkombination ( so wie du es schon gemacht hast)
Danke

AW: Warengruppen zuordnen
20.04.2007 15:08:27
ingUR
Hallo, Ronny,
mit großer wahrscheinlichkeit gibt es eine EXCEL-Lösung für Deine Aufgabe, doch ich bin nicht der Zellenformelexperte, der mit Erfolg in angemessener Zeit Ein Anforderungsprofil an den Taberllnenaufbau umsetzen kann.
Soblad es an das Ausfiltern mit Index, Vergleich & Co. geht, meine ich mit VBA besser zu fahren, da ich hier jederzeit Anpassungen zumeist leicht realisieren kann.
Daher hier der VBA-Vorschlag (als Standardmodul eingen und mit [Alt][F8] in der Exceltabelle ausführen.
Das Programm gliedert sich in die drei Teilbereich
  • Daten einlesen,
  • Daten sortieren nach dem internen Sring Klassen&Warengruppe sortieren
  • Die Zuweisungen - Ausdruck rechts von Zuweisungszeichen (Gleichheitszeichen) - der Zeilen "Const ...."
    sind ggf. anzupassen.
    
    Option Explicit
    Const WSQUELL = "Quelltabelle"
    Const WSZIEL = "Tabelle3"
    Const MAXHEADERROWS = 9
    Type Ware
    matNR As Long
    matTxt As String
    GMenge As Long
    GWert As Long
    WGruppe As Integer
    Klasse As String
    KlasseWarengruppe As String
    End Type
    Sub Warengruppen()
    Dim wsQ As Worksheet, wsZ As Worksheet
    Dim Waren() As Ware, tempW As Ware
    Dim maxRecs As Long, irec As Long, i As Long, j As Long, r As Long
    Dim SumGMenge As Long, SumGWert As Long
    On Error Resume Next
    Set wsQ = Worksheets(WSQUELL)
    If wsQ Is Nothing Then
    MsgBox "Quelldatenblatt nicht richtig benannt bzw. fehlt!"
    Exit Sub
    End If
    On Error Resume Next
    Set wsZ = Worksheets(WSZIEL)
    If wsZ Is Nothing Then
    Set wsZ = Worksheets.Add(after:=Worksheets(WSQUELL))
    wsZ = WSZIEL
    End If
    'Richte Zieltabelle ein
    With wsZ
    .Cells.Clear
    .Cells(1, 1) = "Klasse"
    .Cells(1, 2) = "Warenguppe"
    .Cells(1, 3) = "Wert je Warengruppe"
    .Cells(1, 4) = "Mende je Warengruppe"
    End With
    'Lese Materialien ein
    With wsQ
    maxRecs = .Cells(.Rows.Count, 1).End(xlUp).Row - MAXHEADERROWS
    ReDim Waren(maxRecs)
    For irec = 1 To maxRecs
    Waren(irec).matNR = .Cells(irec + MAXHEADERROWS, 1)
    Waren(irec).matTxt = .Cells(irec + MAXHEADERROWS, 2)
    Waren(irec).GMenge = .Cells(irec + MAXHEADERROWS, 3)
    Waren(irec).GWert = .Cells(irec + MAXHEADERROWS, 4)
    Waren(irec).WGruppe = .Cells(irec + MAXHEADERROWS, 5)
    Waren(irec).Klasse = .Cells(irec + MAXHEADERROWS, 6)
    Waren(irec).KlasseWarengruppe = UCase(Waren(irec).Klasse) & Format(Waren(irec). _
    WGruppe, "00")
    Next irec
    End With
    'Sortiere Warenfeld nach Klasse & WGruppe
    '(bei großeren Datenmenge sollte hier ein anderer Alogorithmius eingesetzt werden)
    For i = 1 To maxRecs - 1
    For j = i + 1 To maxRecs
    If Waren(i).KlasseWarengruppe > Waren(j).KlasseWarengruppe Then
    tempW = Waren(i)
    Waren(i) = Waren(j)
    Waren(j) = tempW
    End If
    Next j
    Next i
    'Schreibe vorkommende Klassen und Gruppen, sowei Summen
    r = 1
    With wsZ
    For irec = 1 To maxRecs
    If Waren(irec).KlasseWarengruppe  Waren(irec - 1).KlasseWarengruppe Then
    If irec > 1 Then
    .Cells(r, 3) = SumGWert
    .Cells(r, 4) = SumGMenge
    End If
    r = r + 1
    .Cells(r, 1) = Waren(irec).Klasse
    .Cells(r, 2) = Waren(irec).WGruppe
    SumGMenge = 0
    SumGWert = 0
    End If
    SumGMenge = SumGMenge + Waren(irec).GMenge
    SumGWert = SumGWert + Waren(irec).GWert
    Next irec
    .Cells(r, 3) = SumGWert
    .Cells(r, 4) = SumGMenge
    End With
    End Sub
    


  • Daten einlesen,
    Das Programm benutzt ein benutzerdefinierten Datentyp Ware, in dem die hier relevanten Elemente (Eigenschaften) eines Datensatzes, also der Ware, beschrieben sind: Waren(i).Eigenschaft = ...
    Es wird die "Kunsteigenschaft KlasseWarengruppe vonm Datentyp String gebildet, die aus der Zusammensetzung der beiden Teileigenschaften entsteht.
  • Daten sortieren nach dem internen Sring Klassen&Warengruppe sortieren
    Nach der "Kunsteigenschaft" kann sortiert werden, so dass alle AX11-Waren vor allen AX12-Waren usw. stehen.
  • Daten schreiben und Werte berechnen
    Es werden die Klassen und Warengruppen ausgedruckt, jedoch immer nur dann, wenn sich die "Kunsteigenschft" ändert. Die Summenbildung in der Gruppe einer "Kunsteigenschaft" erfolgt ebenso in dieser FOR-Schleife.
    Sofern Verständnisfragen zum Ablauf, insbesonderen, wenn ein schnelleres Sortierverfahren notwendig wird, da die Datenmenge zu groß ist, dann bitt einfach melden.
    Gruß,
    Uwe
  • Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige

    Beliebteste Forumthreads (12 Monate)

    Anzeige
    Anzeige
    Anzeige