AW: Excel - gewichtete Wiederholung
12.12.2023 08:16:53
MCO
Moin Chris!
Die Gewichtung hängt ja offensichtlich auch von der Häufigkeit der gehalteten Vorträge ab, daher kommt zählenwenn "Thema"*Gewichtung in Frage.
Da aber die Unterschiede so riesig sind klappt das nur mit einer feineren Justierung:
Vorschlag:
Standardgewichtung ist 1, jedesmal, wenn Vortrag eingetragen wird, kommt also 1 auf den Gesamtwert hinzu.
Der nächste Vorschlag ist der Vortrag mit dem kleinsten Gesamtwert.
Heißt also:
Vortrag soll häufigere vorkommen: Standardgewichtung 1,
Vortrag soll weniger häufig vorkommen: Standardgewichtung >1,
Damit die Zahlen eindeutig bleiben, hab ich per +Zufallszahl/10 einmalig Nachkommastellen hinzugefügt.
Die Auswahl (in I:J) greift die absolute Gewichtung ab und zeigt die jeweis 10 kleinsten Werte, also Vorträge, die mal wieder dran wären. Diese Liste wird dann zu jedem Datum in Spalte G per Datenfeld angeboten.
- | B | C | D | E | F | G | H | I | J |
---|
1 | | | | | | | | | |
2 | Thema | Gewichtung | absolute Gewichtung | | Datum | Reihenfolge | | 10 kleinste | Thema |
3 | Thema 1 | 0,55152 | 2,2061 | | 11.12.2023 | Thema 20 | | 1,363125 | Thema 18 |
4 | Thema 2 | 0,84688 | 1,6938 | | 12.12.2023 | Thema 19 | | 1,688651 | Thema 4 |
5 | Thema 3 | 0,86671 | 1,7334 | | 13.12.2023 | Thema 25 | | 1,693758 | Thema 2 |
6 | Thema 4 | 0,84433 | 1,6887 | | 14.12.2023 | Thema 1 | | 1,733424 | Thema 3 |
7 | Thema 5 | 0,99832 | 1,9966 | | 15.12.2023 | Thema 34 | | 1,879412 | Thema 6 |
- | B | C | D | E | F | G | H | I | J |
---|
1 | | | | | | | | | |
2 | Thema | Gewichtung | absolute Gewichtung | | Datum | Reihenfolge | | 10 kleinste | Thema |
3 | Thema 1 | 0,55151615 | =C3+ZÄHLENWENN($G$3:G43;B3)*C3 | | 45271 | Thema 20 | | =KKLEINSTE(WENNFEHLER($D$3:$D$36;"");ZEILE()-2) | =INDEX($B$3:$B$36;VERGLEICH(I3;$D$3:$D$36;0)) |
4 | Thema 2 | 0,846878964223023 | =C4+ZÄHLENWENN($G$3:G44;B4)*C4 | | 45272 | Thema 19 | | =KKLEINSTE(WENNFEHLER($D$3:$D$36;"");ZEILE()-2) | =INDEX($B$3:$B$36;VERGLEICH(I4;$D$3:$D$36;0)) |
5 | Thema 3 | 0,86671220933401 | =C5+ZÄHLENWENN($G$3:G45;B5)*C5 | | 45273 | Thema 25 | | =KKLEINSTE(WENNFEHLER($D$3:$D$36;"");ZEILE()-2) | =INDEX($B$3:$B$36;VERGLEICH(I5;$D$3:$D$36;0)) |
6 | Thema 4 | 0,844325320415395 | =C6+ZÄHLENWENN($G$3:G46;B6)*C6 | | 45274 | Thema 1 | | =KKLEINSTE(WENNFEHLER($D$3:$D$36;"");ZEILE()-2) | =INDEX($B$3:$B$36;VERGLEICH(I6;$D$3:$D$36;0)) |
7 | Thema 5 | 0,99832394851499 | =C7+ZÄHLENWENN($G$3:G47;B7)*C7 | | 45275 | Thema 34 | | =KKLEINSTE(WENNFEHLER($D$3:$D$36;"");ZEILE()-2) | =INDEX($B$3:$B$36;VERGLEICH(I7;$D$3:$D$36;0)) |
Schau mal, ob das ein Konzept wäre, das schon in die richtige Richtung geht.
Nebenbei:
Ich wußte nicht, ob es von dir gewünscht ist, aber zum automatischen Eintragen hab ich noch ein kleines Makro geschrieben.
Sub Vorträge_eintragen()
Dim thm As String
Dim cl As Range
Dim kkleinste As Double
For Each cl In Range("F:F").SpecialCells(xlCellTypeConstants, xlNumbers)
kleinste = WorksheetFunction.Min(Range("D3:D36"))
them = WorksheetFunction.Index(Range("B3:B36"), WorksheetFunction.Match(kleinste, Range("D3:D36"), 0))
cl.Offset(0, 1) = them
Next
End Sub
Gesammelte Werke:
https://www.herber.de/bbs/user/165121.xlsm
Gruß, MCO