Clever-Excel-Forum

Normale Version: Durschnitt errechnen danach die zeilen löschen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Hallo zusammen, ich habe eine Arbeitsroutine die mir viel Zeit kostet , ich suche eine Formel / Makro  der mir dabei hilft.
Ich hoffe ich werde es hinbekommen mit der Erklärung ! ich habe in der angehängten Datei einen Screenshot gemacht es erklärt mit Zeile und Spalten was das Vorhaben ist .

DEN DURCHNITTSWERT ERRECHNEN:

SPALTE "A " GLEICHE WERT FINDEN -- DURCHNITT (B8:B9) ERRECHNEN DANN " NACH RECHTS ZIEHEN UM DEN DURCHNITT FÜR DIE 3 ZEILEN ZU HABEN DANACH KOPIEREN NACH ( B8:C8:C9 ) ZIEL IST DANN NUR EINE ZEILE ZU LASSEN MIT EINEM WERT ANDERE ZEILEN LÖSCHEN
Hallöchen,

darf's auch was mit Formeln sein?
Hier mal das Prinzip. Mit der Funktion TEILERGEBNIS kannst Du auch Mittelwerte berechnen. Du filterst die Datenspalten, TEILERGENIS bringt Dir die Mittelwerte, und dann kopierst Du die Daten z.B. auf ein anderes Blat.

Wenn es um viele Daten geht, könnte man das per VBA auf die gleiche Art und Weise lösen. Code für eine Zahl aufzeichnen, eine Schleife und noch ein paar Zeilen drumherum programmieren. Bei Wenigen Daten ist das manuell auch fix "gefiltert"...
(16.07.2015, 15:08)schauan schrieb: [ -> ]Hallöchen,

darf's auch was mit Formeln sein?
Hier mal das Prinzip. Mit der Funktion TEILERGEBNIS kannst Du auch Mittelwerte berechnen. Du filterst die Datenspalten, TEILERGENIS bringt Dir die Mittelwerte, und dann kopierst Du die Daten z.B. auf ein anderes Blat.

Wenn es um viele Daten geht, könnte man das per VBA auf die gleiche Art und Weise lösen. Code für eine Zahl aufzeichnen, eine Schleife und noch ein paar Zeilen drumherum programmieren. Bei Wenigen Daten ist das manuell auch fix "gefiltert"...

Hi Schauan, natürlich darf es auch mit formeln sein, es sind nicht viele daten maximum ca. 200 zeilen
Hallo, 

Formeln brauchen aber separate Zellen!
Hallöchen,

so könnte das mit dem Filtern aussehen. Du musst nur vor dem Filtern die kompletten Spalten A:D markieren. In Deiner Datei wurde nur der obere Bereich bis zur ersten Leerzeile gefiltert.

Die Ergebnisse in E:H kopierst Du irgendwo hin. Wenn Du alle Zahlen durch hast, kannst Du die Daten in A:D löschen und dann die Ergebnisse dort hin übertragen.

Man könnte aber auch statt der Filterlösung den Bereich E:H per Formel füllen. Die Daten  aus Spalte A kann man per Formel ohne Duplikate in Spalte E eintragen und anschliessend die zugehörigen Mittelwerte berechnen. Das wird aber bei mir heute nichts mehr, eventuell schiebt Edgar die entsprechende Lösung nach. Ich könnte mir dann morgen Abend noch was mit VBA einfallen lassen ;-) wenn bis dahin nicht auch schon jemand schneller war.



Arbeitsblatt mit dem Namen 'Sheet1'
 ABCDEFGH
1GD% W% D% L-538,33333327,7777863,88889
2-538,33333327,7777863,88889    

ZelleFormel
E1=TEILERGEBNIS(4;A:A)
F1=TEILERGEBNIS(1;B:B)
G1=TEILERGEBNIS(1;C:C)
H1=TEILERGEBNIS(1;D:D)
Diese Tabelle wurde mit Tab2Html (v2.5.0) erstellt. ©Gerd alias Bamberg
(16.07.2015, 21:08)schauan schrieb: [ -> ]so könnte das mit dem Filtern aussehen. Du musst nur vor dem Filtern die kompletten Spalten A:D markieren. In Deiner Datei wurde nur der obere Bereich bis zur ersten Leerzeile gefiltert.

Die Ergebnisse in E:H kopierst Du irgendwo hin. Wenn Du alle Zahlen durch hast, kannst Du die Daten in A:D löschen und dann die Ergebnisse dort hin übertragen.

Man könnte aber auch statt der Filterlösung den Bereich E:H per Formel füllen. Die Daten  aus Spalte A kann man per Formel ohne Duplikate in Spalte E eintragen und anschliessend die zugehörigen Mittelwerte berechnen. Das wird aber bei mir heute nichts mehr, eventuell schiebt Edgar die entsprechende Lösung nach. Ich könnte mir dann morgen Abend noch was mit VBA einfallen lassen Wink wenn bis dahin nicht auch schon jemand schneller war.

Hallo Schauan, danke für die ausführliche erkläung, ich habe das erste Teil wie Du es beschrieben hast probiert , das ergebnis ist nicht korrekt, sicher es liegt an meiner Unerfahrenheit mit Excel.(Die Daten aus Spalte A kann man per Formel ohne Duplikate in Spalte E eintragen und anschliessend die zugehörigen Mittelwerte berechnen) es hört sich gut an klar ich werde warten bis Du bischen Zeit hast , es wäre super wenn du ein Beispiel in meiner angehängter Datei einträgst , rest werde ich dann für den restlichen Zeilen machen, vielen Dank
Hallo,

1. Leerzeilen löschen.
2. Spalte A Filtern ohne Duplikate nach F2
3. Formel in G2 eintragen und nach rechts und unten ziehen:

Arbeitsblatt mit dem Namen 'Sheet1'
 ABCDEFGHI
1GD% W% D% L     
2-538,33333327,7777863,88889 -538,3333327,7777863,88889
3-515,5555562569,44444 -515,5555625,0000069,44444
4-5011,111112563,88889 -5011,1111125,0000063,88889
5-4313,8888922,2222263,88889 -4313,8888922,2222263,88889
6-4219,4444422,2222258,33333 -4219,4444422,2222258,33333
7-4127,777782547,22222 -4127,7777825,0000047,22222
8-3426,3888912,561,11111 -348,3333327,7777863,88889
9-3327,7777816,6666755,55556 -3327,7777816,6666755,55556
10-3222,222222552,77778 -3226,3888918,0555655,55556
11-3230,5555611,1111158,33333 -3120,8333326,3888952,77778
12-3116,6666730,5555652,77778 -2920,8333330,5555648,61111

ZelleFormel
G2=MITTELWERTWENN($A:$A;$F2;B:B)
H2=MITTELWERTWENN($A:$A;$F2;C:C)
I2=MITTELWERTWENN($A:$A;$F2;D:D)
Diese Tabelle wurde mit Tab2Html (v2.4.1) erstellt. ©Gerd alias Bamberg

Mit einem einfachen Makro:


Code:
Option Explicit

Sub Mittelwert()
Dim loa As Long
Dim loB As Long
Dim loC As Long
Dim loLetzte As Long
Application.ScreenUpdating = False

loC = 2
loLetzte = Cells(Rows.Count, 1).End(xlUp).Row
For loa = 2 To loLetzte
    If Cells(loa - 1, 1) <> Cells(loa, 1) Then
        Cells(loC, 6) = Cells(loa, 1)
        For loB = 7 To 9
            Cells(loC, loB) = Application.WorksheetFunction.AverageIf(Range("A2:A" & loLetzte), Cells(loa, 1), Range("B2:B" & loLetzte))
        Next
        loC = loC + 1
    End If
Next
Range("A1:D1").Copy Range("F1")
Columns("A:E").Delete
Application.ScreenUpdating = True

End Sub
(17.07.2015, 08:16)BoskoBiati schrieb: [ -> ]1. Leerzeilen löschen.
2. Spalte A Filtern ohne Duplikate nach F2
3. Formel in G2 eintragen und nach rechts und unten ziehen:

Hallo BoskoBiati, vielen Dank, es funktionniert einwandfrei super , ich wünsche euch allen ein schönes Wochenende.[/code]