Anzeige
Archiv - Navigation
996to1000
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
Inhaltsverzeichnis

Ausschließen

Ausschließen
06.08.2008 13:49:00
Engin
Hallo Leute,
ich möchte Mittelwert von A2 bis A15 bilden und dabei die Werte mit 0 ausschließen.
Wie geht das per Makro?
Danke

8
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Ausschließen
06.08.2008 13:55:22
David
eine einfache Variante:
=SUMME(A2:A15)/ZÄHLENWENN(A2:A15;"0")
Gruß
David

AW: Ausschließen
06.08.2008 13:57:45
David
eine zweite Variante:
{=MITTELWERT(WENN(A2:A150;A2:A15;""))}
(Matrixformel, {} nicht eingeben und Eingabe mit STRG-SHIFT-ENTER abschließen)
In Anbetracht deines Levels würde ich dir die erste Variante vorschlagen.
Gruß
David

AW: Ausschließen
06.08.2008 14:00:59
Roland
Hallo Engin,
und wenn´s denn unbedingt VBA sein muss: Bereich markieren und dann folgendes Makro drüber laufen lassen:

Sub MittelwertAusBereichOhneNullen()
Dim rng As Range, zaehler As Long, Zwischensumme As Double, Mittelwert As Double
For Each rng In Selection
If rng.Value  0 Then
zaehler = zaehler + 1
Zwischensumme = Zwischensumme + rng.Value
End If
Next
Mittelwert = Zwischensumme / zaehler
MsgBox Mittelwert
End Sub


Gruß
Roland Hochhäuser

Anzeige
AW: Ausschließen
07.08.2008 15:15:44
Engin
Hi Roland,
funktioniert dein Code auch ohne den bereich zu makieren?
Danke

AW: Ausschließen
07.08.2008 15:48:00
Roland
Hallo Engin,
Nein, aber er ist flexibel, weil er auf beliebige Bereiche anwendbar ist. Möchtest du stattdessen einen festen Bereich haben, nimm eine der anderen Alternativen. Möchtest du lediglich eine vorherige Selektion vermeiden, geht´s auch z.B. wie folgt:
Option Explicit

Sub MittelwertAusBereichOhneNullen()
Dim Auswahl As Range, rng As Range, zaehler As Long, Zwischensumme As Double, Mittelwert As  _
Double
Set Auswahl = Range("A1:A15, B2:B4") 'Anpassen
For Each rng In Auswahl
If rng.Value  0 Then
zaehler = zaehler + 1
Zwischensumme = Zwischensumme + rng.Value
End If
Next
If zaehler > 0 Then
Mittelwert = Zwischensumme / zaehler
MsgBox Mittelwert
Else
MsgBox "Kein Wert größer als 0 vorhanden, Mittelwert kann nicht gebildet werden"
End If
Set Auswahl = Nothing
End Sub


Gruß
Roland Hochhäuser

Anzeige
AW: Mittelwert ohne Nullen (VBA)
06.08.2008 14:12:00
Erich
Hallo Engin,
auch das ist VBA (und geht schneller als mit einer Schleife):

Sub Makro1()
Dim dblMW As Double
dblMW = Evaluate("=SUM(A2:A15)/COUNTIF(A2:A15,""0"")")
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

AW: Mittelwert ohne Nullen (VBA)
06.08.2008 14:23:00
Erich
Hallo,
noch ne VBA-Variante:

Sub Makro2()
Dim dblMW As Double
dblMW = WorksheetFunction.Sum(Range("A2:A15")) / _
WorksheetFunction.CountIf(Range("A2:A15"), "0")
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Keine Rückmeldung? (owT)
08.08.2008 18:09:00
Erich

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige