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

Mittelwerte ohne Null in Makro

Mittelwerte ohne Null in Makro
07.05.2007 16:48:08
Pascal
Hallo,
ich habe folgendes Problem: Von einem großen Datensatz (50x10000 Werte) soll blockweise (alle 50x50 Werte) der Mittelwert gebildet werden. Zur Zeit wird mittels for und if Anweisungen jede Zelle durchsucht und wenn größer Null in die Rechnung mit einbezogen.
Ich habe nun die Formel { =Mittelwert(Wenn(A1:A4>0;A1:A4)) } gefunden und würde diese gerne in mein VB-Makro integrieren.
Leider weiss ich nicht wie...vielleicht kann mir jemand helfen?
Vielen Dank schonmal und viele Grüße
Pascal

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Mittelwerte ohne Null in Makro
ransi
HAllo Pascal
Versuche es mal so:
Tabelle1

 AB
175,53247588
2-55,53247588
38 
44 
5-1 
6-2 
79 
85 
95 
10-5 
115 

Formeln der Tabelle
ZelleFormel
B1{=MITTELWERT(WENN(A1:A10000>0;A1:A10000))}
B2=SUMMEWENN(A1:A10000;">0";A1:A10000)/ZÄHLENWENN(A1:A10000;">0")
Enthält Matrixformel:
Umrandende
{ } nicht miteingeben,
sondern Formel mit STRG+SHIFT+RETURN abschließen!
Matrix verstehen


Excel Tabellen im Web darstellen >> Excel Jeanie HTML 4
' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit


Public Sub test()
MsgBox WorksheetFunction.SumIf(Range("A1:A10000"), ">0", Range("A1:A10000")) / WorksheetFunction.CountIf(Range("A1:A10000"), ">0")
End Sub

ransi

Anzeige
AW: Mittelwerte ohne Null in Makro
07.05.2007 17:49:00
fcs
Hallo Pascal,
ergänzend zu Ransi's Basisformel hier zwei Vorschläge wie du die Blöcke abarbeiten kannst und das Ergebnis Zeilenweise in einer 2. Tabelle ausgibst.
Gruß
Franz
Sub MittelWerteOhne0_dieerste() 'Per Formeleintrag in eine Hilfstabelle Dim Bereich As Range, wks As Worksheet, wksZiel As Worksheet, Mittelwert As Double Set wks = Worksheets("Tabelle1") 'Tabelle mit den Werten Set wksZiel = Worksheets("Tabelle2") 'Tabelle für Ergebenis With wks ZeileZiel = 1 wksZiel.Cells(ZeileZiel, 1) = "Block Nr" wksZiel.Cells(ZeileZiel, 2) = "Mittelwert" For Zeile = 1 To 301 Step 50 Set Bereich = .Range(.Cells(Zeile, 1), .Cells(Zeile + 49, 50)) ZeileZiel = ZeileZiel + 1 wksZiel.Cells(ZeileZiel, 1) = "Zeile " & Format(Zeile, "00000") & " bis " _ & Format(Zeile + 49, "00000") 'Berechnungsformel eintragen wksZiel.Cells(1, 4).FormulaArray = "=AVERAGE(IF('" & .Name & "'!" & Bereich.Address & _ ">0,'" & .Name & "'!" & Bereich.Address & "))" Mittelwert = wksZiel.Cells(1, 4).Value 'Formel durch Wert ersetzen wksZiel.Cells(ZeileZiel, 2).Value = Mittelwert Next wksZiel.Cells(1, 4).ClearContents End With End Sub Sub MittelWerteOhne0_diezweite() 'mit Ersatzformeln innerhalb VBA Dim Bereich As Range, wks As Worksheet, wksZiel As Worksheet, Mittelwert As Double Set wks = Worksheets("Tabelle1") 'Tabelle mit den Werten Set wksZiel = Worksheets("Tabelle2") 'Tabelle für Ergebenis With wks ZeileZiel = 1 wksZiel.Cells(ZeileZiel, 1) = "Block Nr" wksZiel.Cells(ZeileZiel, 3) = "Mittelwert" For Zeile = 1 To 301 Step 50 Set Bereich = .Range(.Cells(Zeile, 1), .Cells(Zeile + 49, 50)) ZeileZiel = ZeileZiel + 1 wksZiel.Cells(ZeileZiel, 1) = "Zeile " & Format(Zeile, "00000") & " bis " _ & Format(Zeile + 49, "00000") 'Mittelwert für Zellen >0 berechnen Mittelwert = Application.WorksheetFunction.SumIf(Bereich, ">0") / _ Application.WorksheetFunction.CountIf(Bereich, ">0") wksZiel.Cells(ZeileZiel, 3) = Mittelwert Next


Anzeige
AW: Mittelwerte ohne Null in Makro
07.05.2007 18:56:10
Pascal
Vielen Dank für die Vorschläge...hat jetzt geklappt :-)

304 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige