Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
748to752
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
748to752
748to752
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Mittelwert der letzten 3 Werte

Mittelwert der letzten 3 Werte
27.03.2006 14:01:11
AndreasB
Hallo zusammen !!!
Ich habe eine Spalte in der "unregelmäßig" Werte stehen.
z.B. in der Zelle A10 steht eine Zahl, dann kommen
vier leere Zellen und es steht in der Zelle A15 eine Zahl,
dann kommen 2 leere Zelle und es steht in der Zelle A18
eine Zahl usw...
Ich möchte mich in irgendeine Zelle der Spalte setzen
und mir per Makro den Mittelwert aus den letzten 3 beschriebenen
Zelle berechnen.
Ist das irgendwie machbar? Kann mir bitte jemand weiterhelfen?
Vielen Dank im Voraus und schöne Grüße
Andreas

11
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mittelwert der letzten 3 Werte
27.03.2006 14:15:05
ede
hallo andreas,
markiere einfach die 3 zellen und schau mal in die statuszeile unten.
dort siehst du die summe der drei zellen. mit einem rechten mausklick
auf das ergebnis kannst du weitere funktionen auswählen (mittelwert).
gruss
AW: Mittelwert der letzten 3 Werte
27.03.2006 14:20:12
Peter
Hallo Andreas,
z. B. so:
Public

Sub Mittelwert()
Dim lZeile   As Long
Dim dSumme   As Double
Dim iAnzahl  As Integer
For lZeile = Selection.Row To Range("A65536").End(xlUp).Row
If Not IsEmpty(Range("A" & lZeile).Value) And _
IsNumeric(Range("A" & lZeile).Value) Then
dSumme = dSumme + Range("A" & lZeile).Value
iAnzahl = iAnzahl + 1
End If
If iAnzahl = 3 Then Exit For
Next lZeile
MsgBox "der Mittelwert ist " & dSumme / iAnzahl, _
64, "   Mittelwert errechnen."
End Sub

Viele Grüße Peter
Eine kurze Nachricht, ob es läuft, wäre nett - danke.
Anzeige
AW: Mittelwert der letzten 3 Werte
27.03.2006 14:29:16
Harald
Hi Andreas,
von mir auch noch ein Schuß.
der Code bezieht sich auf die aktive Zelle

Sub til()
Dim i As Byte
If ActiveCell.Row < 4 Then Exit Sub
i = 3
rng = ActiveCell.Address(0, 0)
Do
bereich = Range(ActiveCell.Offset(-1, 0), ActiveCell.Offset(-i, 0))
If WorksheetFunction.CountA(bereich) < 3 Then
i = i + 1
Range(rng).Select
Else
mittelw = WorksheetFunction.Average(bereich)
ActiveCell = mittelw
Exit Do
End If
Loop
End Sub

Gruss Harald
Vielen vielen Dank
27.03.2006 14:32:12
AndreasB
Danke an alle und schöne Grüße!
Danke, ganz lieb!
Andreas
Problem
27.03.2006 15:05:18
AndreasB
Hallo nochmal!
Die Makros funktionieren wunderbar! Das Problem ist aber Folgendes:
In den Zellen oberhalb stehen bekanntlich ganz unregelmäßig Zahlen.
In manchen leeren Zellen steht eine WENN-Funktion, die die Zelle
mit einer Zahl belegt oder mit "".
Die Makros scheinen für diesen Fall nicht zu funktionieren, bzw.
sie nehmen eine Zelle welche mit "" belegt ist auch zum Mittelwert
hinzu.
Was kann ich tun?
Schöne Grüße und besten Dank
Andreas
Anzeige
AW: Problem
27.03.2006 15:26:33
Peter
Hallo Andreas,
das kann ich nicht nachvollziehen (siehe Zelle A5 im Beispiel)
https://www.herber.de/bbs/user/32323.xls
Viele Grüße Peter
Eine kurze Nachricht, ob es läuft, wäre nett - danke.
AW: Problem
27.03.2006 16:00:33
AndreasB
Danke es klappt!
War nur etwas verwirrt, weil Dein Makro nach "unten" arbeitet.
Kann man es so ändern damit es die letzten 3 Werte nimmt und nicht die
folgenden 3 Werte?
Schöne Grüße
Andreas
AW: Problem
27.03.2006 16:34:26
Peter
Hallo Andreas,
dann so: For lZeile = Selection.Row To 1 Step -1
anstelle von: For lZeile = Selection.Row To Range("A65536").End(xlUp).Row
Viele Grüße Peter
Eine kurze Nachricht, ob es läuft, wäre nett - danke.
Anzeige
1000 Dank es klappt o.T.
27.03.2006 16:39:26
AndreasB
Spielerei: Noch eine Formellösung
27.03.2006 17:49:12
{Boris}
Hi Andreas,
das Ganze kann man auch mit Formeln lösen - und zwar auch in Abhängigkeit der gerade aktiven Zelle.
Einfaches Beispiel (das Blatt heißt Tabelle1):
In A1 steht: =WENN(B1="";"";B1)
und runterkopiert bis A100.
Jetzt trag irgendwo in B1:B100 ein paar Zahlen ein.
In D1 steht: =ZELLE("Zeile")
In E1: =ADRESSE(ZELLE("Zeile");ZELLE("Spalte");4)
Jetzt definiere einen Namen (Strg+F3), Name: x
Bezieht sich auf:
=ZEILE(INDIREKT("1:"&Tabelle1!$D$1))
Schreibe jetzt in F1 diese Arrayformel:
{=MITTELWERT(BEREICH.VERSCHIEBEN(INDIREKT($E$1);;;MIN(WENN(ANZAHL(BEREICH.VERSCHIEBEN(INDIREKT($E$1);;;-x))=3;-x))))}
Den Hinweis auf den Zirkelbezug einfach mit OK übergehen.
{geschweifte Klammern} nicht eingeben, sondern Formeleingabe mit gleichzeitig Strg-Shift-Enter abschließen!
Jetzt markiere irgendeine Zelle aus A1:A100 und berechne das Blatt mit F9.
In F1 sollte jetzt Dein gewünschter Mittelwert stehen.
Funktioniert jetzt erstmal nur für Zahlen größer Null. Aber das könnte man natürlich noch abändern.
Grüße Boris
Anzeige
AW: Spielerei: Noch eine Formellösung
28.03.2006 08:38:47
AndreasB
Danke Boris!
Ich werds probieren.
Schöne Grüße
Andreas

7 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige