Anzeige
Archiv - Navigation
1104to1108
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
Inhaltsverzeichnis

Werte in Spalte vergleichen und Mittelwert bilden

Werte in Spalte vergleichen und Mittelwert bilden
Micha2009
Hallo liebe Excel Freunde.
Ich sitze vor einem Problem und hoffe mir kann einer helfen.
Mein Problem ist folgendes.
Eine Tabelle mit 3 Spalten.
1. Datum, 2. Zeit, 3. Werte
Nun versuche ich alle Werte mit gleichem Datum zu mitteln und in eine neue Spalte G mit zugehörigem Datum in Spalte F zu schreiben.
Ich habe meine Testtabelle mal angehängt.
https://www.herber.de/bbs/user/64797.xls
Mein Vergleichsmakro sieht bisher so aus, jedoch gibt er mir die Daten bisher nicht korrekt aus.
(Ich bin bisher nur soweit, dass er erstmal alle Daten in eine Variable packt und die mir am Ende eines Datums ausgeben soll.)
Komme aber irgendwie nicht weiter. Wo liegt da nen Fehler?
Ist mein Ansatz schon falsch?
Kann mir vielleicht einer nen Tipp geben, wie ich obiges Problem mit nem Vergleichsmakro lösen kann?
Freue mich auf Antworten.
Grüße
Michael
Sub Vergleichen()
Dim iRow As Long
Dim var As Long
iRow = 2
Do Until IsEmpty(Cells(iRow, 1))
If Cells(iRow, 1) - Cells((iRow) + 1, 1) = 0 Then
var = var + Cells(iRow, 3)
Else
Cells(iRow, 5).Value = var
End If
iRow = iRow + 1
Loop
End Sub

4
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Var=0 setzen und PIVOT-Tabelle...
30.09.2009 12:23:08
NoNet
Hallo Micha,
ist es beabsichtigt, dass die Werte kumuliert werden ? Oder sollte nicht für jeden Tag ein eigener Wert berechnet werden ?
Setze Var wieder auf 0 :
      If Cells(iRow, 1) - Cells((iRow) + 1, 1) = 0 Then
var = var + Cells(iRow, 3)
Else
Cells(iRow, 5).Value = var
Var = 0
End If
Für das Problem bzgl. Spalte G und F bietet sich hervorragend eine PIVOT-Tabelle an :
Sub PivotTabelleNachDatum()
Dim piv As PivotTable
'Alle PIVOT-Tabellen zunächst löschen :
If ActiveSheet.PivotTables.Count > 0 Then
For Each piv In ActiveSheet.PivotTables
piv.TableRange1.Delete
Next
End If
ActiveWorkbook.PivotCaches.Add(SourceType:=xlDatabase, SourceData:= _
Range("A1:C" & Cells(Rows.Count, 1).End(xlUp).Row).Address(1, 1, xlR1C1, 0, 1)). _
CreatePivotTable _
TableDestination:="R3C6", TableName:="PivotTable1", DefaultVersion:= _
xlPivotTableVersion10
ActiveSheet.PivotTables(1).AddFields RowFields:="Datum"
With ActiveSheet.PivotTables(1).PivotFields("Wert")
.Orientation = xlDataField
.Caption = "Mittelwert von Wert"
.Function = xlAverage
End With
End Sub
Gruß, NoNet
Anzeige
AW: Var=0 setzen und PIVOT-Tabelle...
30.09.2009 16:20:20
Micha2009
hi Nonet.
Vielen Dank für deine Mühen.
Die Kummulation sollte schon sein, weil ich das ergebnis durch die Anzahl der Tage teilen wollte um den Mittelwert rauszubekommen.
Das mit der Pivot Tabelle schau ich mir noch genauer an.
Wird etwas dauern, bis ich das verstanden habe, aber klingt interessant für spätere Projekte, die ich angehe.
AW: Werte in Spalte vergleichen und Mittelwert bilden
30.09.2009 12:30:29
Tino
Hallo,
kannst ja mal diesen Code testen.
Sub Vergleichen()
Dim oDic, meAr
Dim A As Long
Dim Bereich As Range

With Sheets("Tabelle1")
    Set oDic = CreateObject("Scripting.Dictionary")
    Set Bereich = .Range("A2", .Cells(.Rows.Count, 1).End(xlUp))
    meAr = Bereich
    
    For A = 1 To Ubound(meAr)
     If IsDate(meAr(A, 1)) Then
      oDic(meAr(A, 1)) = 0
     End If
    Next A
    
    .Range("F2").Resize(oDic.Count) = Application.Transpose(oDic.keys)
    
    With .Range("G2").Resize(oDic.Count)
        .FormulaR1C1 = _
                    "=SUMIF(" & Bereich.Address(ReferenceStyle:=xlR1C1) & ",RC[-1]," & _
                    Bereich.Offset(0, 2).Address(ReferenceStyle:=xlR1C1) & _
                    ")/COUNTIF(" & Bereich.Address(ReferenceStyle:=xlR1C1) & ",RC[-1])"
        .Value = .Value
    End With
End With

End Sub
Gruß Tino
Anzeige
AW: Werte in Spalte vergleichen und Mittelwert bilden
30.09.2009 16:22:08
Micha2009
Vielen Dank Tino.
Ich muss da zwar noch genau hinter steigen, was wofür und so gerechnet wird, jedoch fuktioniert das genauso, wie ich es gerne hätte.
Ehrlich, ich hätte das glaub ich nie so hinbekommen.
Aber nun heißt es für mich verstehen, was du da gemacht hast. :)

363 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige