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"