in Excel wird die Funktion TEILERGEBNIS zur Verfügung gestellt. Nun ist in der Hilfe zu lesen, dass das Ausblenden von Spalten keine Auswirkungen auf TEILERGEBNIS hat. Warum wird sowas nicht seitens Microsoft implementiert? Ich habe etwas recherchiert aus vorhandenen VBA Code eine Funktion STABW_HC geschrieben. Sie funktioniert soweit und berechnet mir die Standardabweichung für die sichtbaren Spalten.
Das einzige wo sie nicht funktioniert ist, wenn ich vom markierten Bereich die erste Spalte ausblende. Es könnte auch mal sein das ich die ersten zwei oder drei Spalten ausblende. Hat jemand eine Idee was ich am Code ändern müsste bzw. eventuell gibt es allgemein noch Verbesserungsvorschläge?
Vielen Dank und viele Grüße Frank.
Das ist der Code:
Sub Einblenden()
Worksheets(1).Columns(1).Hidden = False
Cells(1, 20).Value = 1
End Sub
Sub Ausblenden()
Worksheets(1).Columns(1).Hidden = True
Cells(1, 20).Value = 1
End Sub
Function STABW_HC(ByVal Markierte_Zellen As Range) As Double
'Standardabweichung Hidden Columns
Dim Zelle As Range
Dim Mittelwert As Double
Dim Mittelwert_ZE As Double
Dim Anzahl As Double
Dim Quadrat_i As Double
Application.Volatile
'die Function TEILERGEBNIS liefert nur bei Zeilen nicht aber bei Spalten ein Ergebnis
'berechne die Standardabweichung, wenn bestimmte Spalten ausgeblendet worden sind
'berechne zunächst den Mittelwert
For Each Zelle In Markierte_Zellen
If IsNumeric(Zelle) Then
If Zelle.EntireColumn.Hidden = False Then 'hier wird beim Ausblenden mit 2 begonnen, da _
die erste Spalte ausgeblendet wurde
Anzahl = Anzahl + 1
Mittelwert_ZE = Mittelwert_ZE + Zelle
End If
Mittelwert = Mittelwert_ZE / Anzahl
End If
Next
'berechne die quadrierten Abstände zum Mittelwert
For Each Zelle In Markierte_Zellen
If IsNumeric(Zelle) Then
If Zelle.EntireColumn.Hidden = False Then
Quadrat_i = Quadrat_i + (Zelle - Mittelwert) ^ 2
End If
End If
Next
STABW_HC = (Quadrat_i / (Anzahl - 1)) ^ (1 / 2)
End Function