Nach bestimmten Zellinhalt suchen + Mittelwert

  • Excel

Es gibt 1 Antwort in diesem Thema. Der letzte Beitrag () ist von cry.baby.

    Nach bestimmten Zellinhalt suchen + Mittelwert

    Hallo,

    bin noch mit VB sehr unerfahren und brauche dringend Hilfe.
    Folgender Sachverhalt:

    Ich habe ein Excelprojekt mit ca 100 Tabellenblättern . Das erste Blatt ist sozusagen die Übersicht bzw. eine Zusammenfassung wo meine Berechnungen stattfinden sollen. Die andern Blätter sind fast identisch aufgebaut und unterscheiden sich nur an paar Testwerten und Zeilen.

    (Auschnitt aus einem Tabellenblatt)
    Die IDs sind auf jedem Blatt gleich und kommen nur ein mal vor (auf allen Tabellenblättern sind immer die gleichen IDs aber die Zeilen unterscheiden sich) und sind alle in der Spalte C. Und die Werte, die zu aus denen ich den Mittelwert berechnen muss sind alle in der Spalte E (Sind immer 2 Spalten rechts neben den dazugehörigen IDs)
    Jetzt zu meiner Frage: Ich muss den Mittelwert zu der ID 30.1.7.10 ( ca. 100 Values) , zu der ID 30.1.7.20 (ca. 100 Values) usw. bestimmen(siehe Bild). Da sich die Zeile auf jedem Tabellenblatt der IDs und Values ändert weiß ich leider nicht wie ich es machen soll. Aber die IDs sind auf jedem Blatt gleich und sind eindeutig (Auf jedem Blatt ist die gleiche ID und kommt nur einmal vor).
    Hat jemand eine Ahnung wie man die Mittelwerte aus so vielen Tabellenblättern bestimmt? Muss mich wahrscheinlich an die IDs richten und dann 2 Spalten nach rechts gehen und dann berechnen, aber weiß leider nicht wie ich es machen soll.
    Wäre für jede Hilfe dankbar, falls man mein Problem verstanden hat :D

    mfg Wolf :)
    Loop durch alle Worksheets um sie in einem neuen Sheet zusammenzufassen. Anschließend kannst Du eine Pivot-Tabelle daraus erstellen um die Mittelwerte zu ermitteln -> Pivot-Tabellen kann man auch mit VBA automatisch erstellen.

    So z.B.:

    Visual Basic-Quellcode

    1. Option Explicit
    2. Sub MittelwertBerechnen()
    3. Dim i As Integer
    4. Dim lastRow As Long
    5. Dim pc As PivotCache
    6. Dim pt As PivotTable
    7. Sheets.Add Before:=Sheets(1)
    8. With ActiveWorkbook
    9. For i = 2 To Sheets.Count
    10. lastRow = Sheets(1).Cells(Rows.Count, 3).End(xlUp).Row + 1
    11. Sheets(i).UsedRange.Copy Sheets(1).Cells(lastRow, 3)
    12. Next i
    13. 'Zusätzliche Überschriften aus Zusammenfassung der Tabellen löschen
    14. Dim r As Range
    15. For Each r In Sheets(1).Range("C3:C" & Sheets(1).Cells(Rows.Count, 3).End(xlUp).Row)
    16. If IsNumeric(r) = False Then
    17. r.EntireRow.Delete
    18. End If
    19. Next r
    20. 'Sheet für PivotTable erstellen
    21. Sheets.Add After:=Sheets(1)
    22. Set pc = .PivotCaches.Create(xlDatabase, Sheets(1).UsedRange)
    23. Set pt = pc.CreatePivotTable(Sheets(2).Range("A3"), TableName:="Pivot_Mittelwerte")
    24. pt.PivotFields("Meas ID").Orientation = xlRowField
    25. pt.AddDataField pt.PivotFields("Value"), Caption:="Mittelwert", Function:=xlAverage
    26. End With
    27. End Sub

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „cry.baby“ ()