Ich habe ein Workbook mit zwei Worksheets (Abfrage und Quelldaten).
Im Workbook Abfrage werte ich mit einer Formel, die aus zwei Funktionen SUMMENPRODUKT besteht, Einträge im Workbook Quelldaten aus.
Zellinhalte:
A2: E.1
B2: =SUMMENPRODUKT((Ref=$A2)*((_C="C")*(_A0))*_A)+SUMMENPRODUKT((RefW=$A2)*((_C="D")*(_A0))*_A) ergibt 40
C2:
=SUMMENPRODUKT((Ref=$A2)*((_C="C")*(_V0))*_V)+SUMMENPRODUKT((RefW=$A2)*((_C="D") *(_V0))*_V) ergibt -100
Die Argumente _A, _V, _C, etc. sind benannte Bereiche im Worksheet "Quelldaten"
Nun möchte ich die Formeln mit Hilfe einer benutzerdefinierten Funktion vereinfachen und jeweils nur noch zwei Argumente übergeben, da die anderen Argumente immer fix sind.
in D2 möchte ich mit =cw(A2;"_A") zum gleichen Wert gelangen wie in B2 und in
in D2 möchte ich mit =cw(A2;"_V") zum gleichen Wert gelangen wie in C2
Stattdessen erhallte ich #WERT!
Im Moment sehe ich noch nicht, wo der Haken in der selbst gebastelten Funktion ist:
Function cw(Position As String, Periode As Name) As Single
'bei Standard wir auf Feld A2 referenziert
'bei Periode wird der Bereichname "_A" eingegeben
'Periode entspricht _A (für aktuelle Zahlen, resp. _V für Vorjahreszahlen
cw = WorksheetFunction.SumProduct(([Ref] = Position) * (([_C] = "C") * ([Periode] 0)) * [Periode]) _
+ WorksheetFunction.SumProduct(([RefW] = Position) * (([_C] = "D") * ([Periode] 0)) * [Periode])
End Function
Kann mir jemand weiterhelfen?
Ich habe die Beispieldatei hochgeladen: https://www.herber.de/bbs/user/50358.xls
Danke, Peter