Anwendung einer Funktion in variablen Ranges

Informationen und Beispiele zu den hier genannten Dialog-Elementen:
MsgBox
Bild

Betrifft: Anwendung einer Funktion in variablen Ranges
von: Hans Meiser
Geschrieben am: 13.02.2005 13:02:13
Guten Tag!
Ich möchte gern ein Makro schreiben, dass den Average einer Range bestimmt.
Kriterium zum Einschluss in die Range sind zwei Kriterien.
Der Datensatz ist sehr variable, so kann es einmal 7 Treffer fuer beide Kriterien geben, dann aber auch mal 12.
Der Average soll in einer Zelle q ausgegeben werden.
Die Situation sieht wie folgt aus:
1. Kriterium------2. Kriterium------wert
48---------------------i--------------8--
48---------------------i--------------10-
48---------------------i--------------1--
50---------------------i--------------3--
50---------------------i--------------6--
Ich moechte den Avereage von "Wert" zu den Kriterien "48" und "i"
Hier wuerde das bedeuten: (8+10+1)/3 = 7
"7" wird im feld q ausgegebn
Wie ich sagte, aendert sich di Anzahl des Kriteriums 1 staendig, sodass es mal 8 "48" gibt, mal aber auch nur 2 "48".
Um es noch zu verkomplizieren: Ich muss diese Routine dann auch fuer die "50" etc erweitern.
Ich suche also eine Routine die folgendes kann:
1. Parsen der Spalte "Kriterium 1" nach (zunaechst) "48" und "Kriterium 2" nach "i".
2. das Markieren der Inhalte der Spalte "Wert" zu diesen Trefern als "Range" und
3. Zufuehren der Range zu einer Funktion (zunaechst Average, dann aber auch STDEV).
Vielen Dank für die Hilfe
Hans

Bild

Betrifft: summenprodukt() / summenprodukt()
von: ransi
Geschrieben am: 13.02.2005 13:38:19
hallo hans
wenn du interesse an einer lösung ohne VBA hast, schau mal hier:
https://www.herber.de/bbs/user/17982.xls
wenn nicht kann man das bestimmt in VBA nachbilden.
ransi
Bild

Betrifft: Was ist STDEV in deutsch ?
von: ransi
Geschrieben am: 13.02.2005 13:53:04
hallo hans
hab ich vergessen zu fragen.
der objectkatalog bietet StDev an.
ist das sowas wie:
STABW
STABWA
STABWN
STABWNA ?
ransi
Bild

Betrifft: AW: Was ist STDEV in deutsch ?
von: Hans Meiser
Geschrieben am: 13.02.2005 13:55:21
Entschuldigung,
ich meine die Standardabweichung (standard deviation) mit STDEV.
Gruss
Hans
Bild

Betrifft: AW: summenprodukt() / summenprodukt()
von: Hans Meiser
Geschrieben am: 13.02.2005 13:53:17
Hallo Ransi,
vielen Dank für Deine Lösung und Deine Mühe.
Leider reicht es nicht zur Lösung meines Problems.
Ein Makro wäre gut, weil ich mir das Durchsehen der Spalte Kriterium 1 und 2 ersparen wollte. Im Anschluss sind auch zig Berechnungen nötig, die aalerdings immer zur selben Range durchgeführt werden muessen. Erst dann geht es mit dem naechsten Unterpunkt im Kriterium 1 weiter. Und so weiter und so fort.
weisst Du eine Möglichkeit, wie ich in VBA eine Range markieren kann, die die Kriterien "48" und "i" beinhalten (egal wieviele Eintraege zu finden sind)?
Gruss
Hans
Bild

Betrifft: AW: summenprodukt() / summenprodukt()
von: ransi
Geschrieben am: 13.02.2005 14:52:28
hallo hans
keine weitere idee, darum "Frage noch offen".
sorry
ransi
Bild

Betrifft: range in spalte C
von: ransi
Geschrieben am: 13.02.2005 15:27:06


      
hallo hans
habe noch ein wenig gebastelt.
ist bestimmt nicht optimal, aber markiert die zellen 
in C:C in denen  spalteA =48 und spalteB =i .
Public 
Sub w()
Dim gefunden
Dim erste
Dim alle
With Worksheets(1).Range("A:A")
    
Set gefunden = .Find(48, LookIn:=xlValues)
    
If Not gefunden Is Nothing Then
        erste = gefunden.Address
            
Do
                     
On Error Resume Next
                     
Set gefunden = .FindNext(gefunden)
                     
If gefunden.Offset(0, 1) = "i" Then alle = gefunden.Offset(0, 2).Address & "," & alle
           
Loop While Not gefunden Is Nothing And gefunden.Address <> erste
    
End If
End With
'Range(Left(alle, Len(alle) - 1)) ist deine gesuchte Range (wenn ich dich richtig verstanden habe
'MsgBox Range(Left(alle, Len(alle) - 1)).Address
Range(Left(alle, Len(alle) - 1)).Select
End Sub
ransi 

     Code eingefügt mit Syntaxhighlighter 3.0


Bild

Betrifft: AW: range in spalte C
von: hans meiser
Geschrieben am: 13.02.2005 15:42:11
Wow, was für ein Einsatz!
Danke, Ransi. Ich werde es gleich ausprobieren!
Gruss
hans
Bild

Betrifft: AW: range in spalte C
von: hans meiser
Geschrieben am: 13.02.2005 16:51:04
Lieber Ransi,
das hat soweit gut funktioniert! Danke!
wie kann ich jetzt die markierte Range in eine Funktion einfügen?
Ich möchte ja gern zum Beispiel den Durchschnitt bestimmen oder die Standardabweichung.
Die Formula verlangt ja die Adresse, doch wie kann ich diese jetzt dort einfügen.
Wenn Du mir das verraten koenntest, waere ich einen gewaltigen Scghritt weiter und koennet das auf alle Funktionen ummünzen.
Ich danke Dir im Voraus!
Dein Hans
 Bild

Beiträge aus den Excel-Beispielen zum Thema "Anwendung einer Funktion in variablen Ranges"