Funtion
- Funtion von Gregor vom 20.09.2004 13:29:25
Betrifft: Funtion
von: Gregor
Geschrieben am: 20.09.2004 13:29:25
Hallo
Ich möchte mit einer Function-Funktion die Zeilen Y3 bis Y intlastRow zusammenzählen und durch die Anzahl Zeilen dividieren und diesen Wert einer Variablen übergeben. Soweit bin ich gekommen:
Function Summe()
Dim intlastRow, Wert
intlastRow = Cells(Rows.Count, 7).End(xlUp).Row
Cells(61, 25).FormulaLocal = "=SUMME(Y3:Y" & intlastRow & ")/" & "Anzahl(Y3:Y" & intlastRow & ")"
End Function
Ich will die Summe aber nicht in eine Zelle schreiben(hier Y61), sondern der Variablen Wert zuweisen. Wie gehe ich weiter vor?
Wie löse ich die
Function Summe in der
Sub Prozedur aus?
Vielen Dank Gregor
Betrifft: AW: Funtion
von: harry
Geschrieben am: 20.09.2004 13:44:56
hi,
versuch mal
intlastRow = Cells(Rows.Count, 25).End(xlUp).Row
For i = 3 To intlastRow
wert = wert + Cells(i, 25).Value
Next i
mittelwert = wert / (i - 1)
liebe grüße,
harry
Betrifft: AW: Funtion
von: gregor
Geschrieben am: 20.09.2004 14:16:37
Hallo Harry
Klappt natürlich wunderbar und ist viel einfacher als mit einer Formel.
Vielen Dank für die rasche Antwort
Gregotr
Betrifft: AW: Function
von: Christian
Geschrieben am: 20.09.2004 13:55:28
so zB:
Function Schnitt()
Dim intlastRow As Integer, Wert As Double
intlastRow = Cells(Rows.Count, 1).End(xlUp).Row
Wert = Application.Sum(Range("A1:A" & intlastRow)) / _
Application.CountA(Range("A1:A" & intlastRow))
MsgBox Wert
End Function
Betrifft: AW: Function
von: Gregor
Geschrieben am: 20.09.2004 15:56:30
Christian vielen Dank
Ich habe nun gemerkt, dass die Lösung von Harry nur mit ganzen Zahlen rechnet, bei meiner Aufgabe habe ich aber genaue Ergebnisse mit Kommastellen. Deine Lösung rechnet da genau.
Noch eine Frage zu CountA
Welchen Befehl muss ich nehmen, dass für den Divisor nur die Zellen mit Wert grösser Null (es gibt leere Zellen und Zellen mit 0.000) genommen wird?
Gruss Gregor
Betrifft: AW: Function
von: Christian
Geschrieben am: 21.09.2004 09:50:34
Hallo Gregor,
wenn jetzt nur die positiven Zahlen in die Rechnung einfließen sollen, dann kannst du die Excelfunktionen "Zählenwenn" verwenden. (in VBA: CountIF)
Function Schnitt_II()
Dim intlastRow As Integer, Wert As Double
intlastRow = Cells(Rows.Count, 1).End(xlUp).Row
Wert = Application.Sum(Range("A1:A" & intlastRow)) / _
Application.CountIf(Range("A1:A" & intlastRow), ">0")
End Function
Gruß
Christian