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

Mittelwert nach Bedingung und Datensätze berechnen

Mittelwert nach Bedingung und Datensätze berechnen
08.02.2004 17:56:29
Trainmen
Hi Ihr,
ich beschäftige mich erste seit ca. zwei Wochen mit VB in Excel und bin jetzt auf ein für mich unlösbares Problem gestoßen.
Also mein Problem:
Ich hab eine Tabelle mit 20 bis später sicher mal 1000 Datensätzen.
Die sieht z.B. so aus :
A B C D E F G H I J K L
Datum: PNr. ANr. Größe Ist Menge Soll Verhältnis
01.03.2003 P011234 12333 Produkt1 9000 A014551 31122 100 29078 90.000 32,31%
01.03.2003 P011234 12333 Produkt1 9000 A014578 31123 50 59872 180.000 33,26%
01.03.2003 P011234 12333 Produkt1 9000 A014598 31122 100 28917 90.000 32,13% 97,70%
02.03.2003 P014597 12345 Produkt2 2000 F014581 31456 100 19755 20.000 98,78%
04.03.2003 P014597 12455 Produkt3 2000 F014585 31456 100 19712 20.000 98,56%
05.03.2003 P011238 17899 Produkt4 9000 A014551 31122 200 29078 45.000 64,62%
05.03.2003 P011238 17899 Produkt4 9000 A014578 31123 60 49863 150.000 33,24% 97,86%
jetzt ist das Problem das das Verhältnis immer durch Spalte I/J berechnet wird und falsche Werte entstehen, wenn das Produkt in verschiedene A Teile verpackt wird.
Daher hätte ich gern eine Methode die prüft ob die der Spalte B+C (als vermutlich ein String) mit den darunter liegenden gleich sind und die Summen jeweiligen I Felder durch ein J Feld - das obersten teilt.
Da ich aber nicht wissen kann wie viele Splittung(können zw. 2 oder 7 liegen) es gibt, macht da eine WennFormel keinen Sinn mehr.
Das nächste Problem ist noch, dass die Größen verschieden sein können und somit der Wert noch im Verhältnis zum Größten verändert werden müsste da ja sonst die Summe nicht stimmt. Das könnte ich vielleicht noch selber hin bekommen wenn ich erstmal den Rest hätte ??
Das Ergebnis soll dann rechts neben dem letzten Wert in Spalte L stehen.
Ich hoffe mir kann einer helfen.
Trainmen

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mittelwert nach Bedingung und Datensätze berechnen
09.02.2004 01:25:36
Dieter Klemke
Hallo Trainmen,
soweit ich dich verstanden habe, könnte dir das folgende Programm weiterhelfen. Zumindest kann es eine Diskussionsgrundlage für dein Problem sein.

Sub Mittelwerte()
Dim ersteZeile As Long
Dim summe As Double
Dim ws As Worksheet
Dim zeile As Long
Set ws = ThisWorkbook.Worksheets(1)
ws.Columns("M").ClearContents
zeile = 2
ersteZeile = 2
summe = 0
Do Until IsEmpty(ws.Cells(zeile, 1))
summe = summe + ws.Cells(zeile, "I")
If ws.Cells(zeile, "B") <> ws.Cells(zeile + 1, "B") Or _
ws.Cells(zeile, "C") <> ws.Cells(zeile + 1, "C") Then
' Merkmalwechsel
ws.Cells(zeile, "M") = summe / ws.Cells(ersteZeile, "J")
ersteZeile = zeile + 1
summe = 0
End If
zeile = zeile + 1
Loop
End Sub

MfG
Dieter
Anzeige
AW: Mittelwert nach Bedingung und Datensätze berechnen
10.02.2004 22:17:06
Trainmen
Hi Dieter,
vielen vielen Dank für deine schnelle Hilfe 01:25:36 ist ja keine schlechte Zeit für’ne Antwort
hab mich schon lange nicht mehr so über einen Quelltext gefreut!!!
Das war genau das nachdem ich gesucht hatte.
Bin ja erstaunt wie leicht es geht.
Ich wollt da wohl falsch an die Sache ran gehen, hatte mir nämlich gedacht den Fall der Übereinstimmung zu prüfen und nicht auf ungleich und so wäre das wohl komplizierter geworden.
Meinen zweiten Gedanken, das Verhältnis zum Wert der ersten Spalte zu waren, konnte ich auch gleich umgesetzt: Siehe QText
Also nochmals vielen Dank für deine Hilfe !!!


Sub Mittelwerte ()
Dim ersteZeile As Long
Dim summe As Double
Dim ws As Worksheet
Dim zeile As Long
Set ws = ThisWorkbook.Worksheets(1)
ws.Columns("M").ClearContents
zeile = 4
ersteZeile = 4
summe = 0
Max = 0
max1 = 0
Do Until IsEmpty(ws.Cells(zeile, 1))
maxzeile = ws.Cells(zeile, "J")
max1 = ws.Cells(ersteZeile, "J")
summe = summe + (ws.Cells(zeile, "K") * (maxzeile / max1))
If ws.Cells(zeile, "C") <> ws.Cells(zeile + 1, "C") Or _
ws.Cells(zeile, "D") <> ws.Cells(zeile + 1, "D") Then
' Merkmalwechsel
On Error Resume Next
ws.Cells(zeile, "M") = summe / ws.Cells(ersteZeile, "L")
ersteZeile = zeile + 1
summe = 0
End If
zeile = zeile + 1
Loop
End Sub

Ich hätte allerdings noch ein Problem und zwar würde ich gern die Datensätze sortieren lassen bzw. mir per AutoFilter den Mittelwert, recht unten in der letzten Zeile, für die gerade ausgewählten Werte anzeigen. lassen.
Und zwar erst nach dem Produktname, dann nach der Größe und dann noch nach der Verpackungsgröße: und dann jeweils den Mittelwert für jeweilige Auswahl berechnen lassen.
Also z.B. so als aus Sicht der Auswahlkriterien:
Produkt1 3000 200
Produkt1 3000 200 MW
Produkt1 3000 100
Produkt1 3000 100
Produkt1 3000 100 MW
Produkt1 9000 100
Produkt1 9000 100 …
Produkt1 9000 200
Produkt1 9000 200
Produkt2 2000 100
Produkt2 2000 200
Produkt2 2000 200
Und er soll nach jeder Kategorie eine Leerzeile einfügen und die anderen Werte müssen mit in die Spalte übernommen werden.
Es würde vielleicht auch erstmal reichen wenn nach jedem Produktwechsel eine Leerzeile eingefügt werden würde.
Ich denke aber mal die eleganteste Lösung wäre, wenn man per AutoFilter die Werte selektiert und dann nach dem Schema hier : https://www.herber.de/mailing/099100h.htm
=MITTELWERT(INDIREKT("A1:A"&ZEILE()))
für die ausgewählten Datensätze der Mittelwert von Spalte "K" rechts unter angezeigt wird.
Bekommen wir das hin oder sollte ich es lieber noch mal gesondert Posten ??
Schon vielen Dank für die Mühe
Trainmen
Anzeige
AW: Mittelwert nach Bedingung und Datensätze berechnen
11.02.2004 09:39:10
Dieter Klemke
Hallo Trainmen,
ich denke dein Problem sollte sich lösen lassen.
Allerdings bin ich nach deiner Überarbeitung nicht mehr sicher, wie deine Tabelle aufgebaut ist. Könntest du eine ev. abgespeckte Mappe posten? Vielleicht auch mit einer zusätzlichen Tabelle, die deine Zielvorstellung zeigt.
MfG
Dieter
AW: Mittelwert nach Bedingung und Datensätze berechnen
11.02.2004 20:08:00
Trainmen
Hallo Dieter,
hier mal meine Vorstellung als ExcelAnhang.

Die Datei https://www.herber.de/bbs/user/3580.xls wurde aus Datenschutzgründen gelöscht

Die ganzen Werte sehen zwar einwenig unübersichtlich aus aber ich hoff du siehst durch.
Die Werte sind auch alle nicht ganz richtig vom Verhältnis und Berechnung..
Ich wollt nur mal deutlich machen wie sie am besten sortiert werden sollten.
Alles weiter findest du im Sheet.
Schon mal vielen Dank für Mühe und Zeit.
Trainmen
Anzeige
AW: Mittelwert nach Bedingung und Datensätze berechnen
12.02.2004 08:06:06
Dieter Klemke
Hallo Trainmen,
ich habe dir meinen Lösungsvorschlag zum Server hochgeladen:

Die Datei https://www.herber.de/bbs/user/3585.xls wurde aus Datenschutzgründen gelöscht

Es wird jeweils eine Kopie des Blattes "Daten" angelegt. Veränderungen werden nur an dem Blatt "Kopie" durchgeführt.
MfG
Dieter
AW: Mittelwert nach Bedingung und Datensätze berechnen
12.02.2004 21:16:38
Trainmen
Hallo Dieter,
sind noch eine paar Werte dazugekommen um mein Ziel zu verdeutlichen.
Alles weitere findest du in Tabelle4 von:
https://www.herber.de/bbs/user/3598.xls
Vielen Dank
Trainmen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige