[Excel] Dynamische Mittelwertbildung

b_kannter

Well-known member
ID: 156336
L
28 April 2006
323
10
Hallo zusammen,

ich habe folgenden Mittelwert:
Code:
=MITTELWERT('100_Engstelle_Dichte'!FZ3:FZ14)
In den Spalten E und F meines aktuellen Blatts stehen die Zeilennummern drin, welche bei der Mittelwertbildung berücksichtigt werden sollen, bspw. 3 bis 8. Diese müssen irgendwie in die Abfrage übernommen werden, ungefähr so, nur so funktioniert es nicht:
Code:
=MITTELWERT('100_Engstelle_Dichte'!FZ('Dichtea'!E2):FZ('Dichtea'!F2))

Hat jemand einen Tipp für mich?
 
In VBA hättest du die Möglichkeit, anstatt die Zellen per Range anzusprechen, einfach mit .Cells() Spalten und Reihen gleich anzusprechen. Dazu ist es empfehlenswert, in den Exceloptionen die Option "Z1S1-Bezugsart" anzuschalten um statt der Spaltennamen auch die Zahlen angezeigt zu bekommen. Das ganze würde dann folgendermaßen ausschauen:

PHP:
Const SPALTE = 12
Const TABELLENNAME = "Tabelle1"

Public Function Mittelwert_Dyn(BeginRange As Integer, EndRange As Integer)
    i As Integer
    sum As Integer
    
    For i = BeginRange To EndRange Step 1
        sum = sum + Worksheets(Sheet).Cells(i, SPALTE)
    Next i
    Mittelwert_Dyn = sum / (EndRange - BeginRange + 1)
End Function

Eine Funktion für Mittelwert hab ich bei VBA auf die schnelle nicht gefunden, selber schreiben ging schneller *g*

[edit] gerade über die Funktion INDIREKT gestolpert, glaube damit wirst du glücklicher. Vereinfacht das Ganze auf:
Code:
=MITTELWERT(INDIREKT("'100_Engstelle_Dichte'!FZ" & 'Dichtea'!E2 & ":FZ" & 'Dichtea'!F2)
bastelt dir also quasi deinen String zusammen und gibt den Inhalt der Range aus.
 
Zuletzt bearbeitet:
[edit] gerade über die Funktion INDIREKT gestolpert, glaube damit wirst du glücklicher. Vereinfacht das Ganze auf:
Code:
=MITTELWERT(INDIREKT("'100_Engstelle_Dichte'!FZ" & 'Dichtea'!E2 & ":FZ" & 'Dichtea'!F2)
bastelt dir also quasi deinen String zusammen und gibt den Inhalt der Range aus.
Das funktioniert! Vielen Dank!