AW: Komplizierte Summenformel
16.02.2004 10:16:40
Alex K.
Hallo Tobias,
für eine Formel reichen meine Kenntnisse nicht aus.
Deshalb hier eine VBA-Funktion, welche du als Formel verwendet kannst.
Hierzu erst einmal im VBA-Editor für die entsprechende Arbeitsmappe ein Modul anlegen (Menü Einfügen -> Modul).
Dort den nachfolgenden Code einfügen.
Public Function Prämie(Spielerzeile As Long, _
Gewinntafel As Range, Prämienstaffel As Range) As Double
Dim col As Long
Dim sMax As Double
Dim actRng As Range
Prämie = 0
With Gewinntafel
For col = 1 To .Columns.Count
Set actRng = ActiveSheet.Range(.Cells(1, col), .Cells(.Rows.Count, col))
sMax = Application.WorksheetFunction.Max(actRng)
If Application.WorksheetFunction.CountIf(actRng, sMax) = 1 And _
sMax = .Cells(Spielerzeile, col).Value Then
If Prämienstaffel.Rows.Count = 1 Then
Prämie = Prämie + Prämienstaffel.Cells(1, col).Value
Else
Prämie = Prämie + Prämienstaffel.Cells(col, 1).Value
End If
End If
Next col
End With
End Function
Nun in den Prämienzellen T6 bis Tn folgende Formel einfügen:
=Prämie(ZEILE()-ZEILE($T$5);$U$6:$AA$9;$D$15:$D$48)
Der erste Parameter "Spielerzeile" erwartet den Zeilenindex des aktuellen Spielers in der Gewinntafel. Also Franz hätte den Index 1, Karl 2 etc. Berechnung: die aktuelle Zeile in der Tabelle minus der Zeile vor dem ersten Spieler - also bei Franz Zeile 6 minus Zeile 5 = 1.
Der zweite Parameter Gewinntafel gibt den Bereich mit den Tagesgewinnen der einzelnen Spieler an. Also in deinem Beispiel U6 bis AA9. Musst diesen Bereich natürlich entsprechend anpassen.
Der dritte Parameter Prämienstaffel gibt den Bereich mit den Tagesprämien an. Für 34 Spieltage mit Start in D15 als D15 bis D48.
Ok, ich hoffe du kommst klar und ich habe deine Anforderungen richtig verstanden und umgesetzt.