Hi Gast 69709
mit "Noch nicht Optimiert!" meinst du wohl die Laufzeitfehler die z.B. in den Jahren 2019 und 2025 entstehen? Die kommen daher dass VBA von rechts nach links rechnet und bei H \ 28 * 0 die 28 * 0 zuerst ausrechnet. Dadurch entsteht eine Division durch 0. Dem kann man mit zwei zusätzlichen Klammern entgegen wirken. Richtig muss es bei I heißen: I = H - (H \ 28) * (1 - (H \ 28) * (29 \ (H + 1)) * ((21 - G) \ 11))
Das ist eine andere Berechnungsweise, die allerdings zum gleichen Ergebnis kommt wie meine Gauß' 1816er Variante. Nur dass hier die Ausnahmen schon integriert zu sein scheinen. Wo hast du die Formel her? Quelle wäre interessant.
Ob diese Formel auch schneller rechnet als meine Variante teste ich ein andermal. Geschwindigkeitsvor- oder -nachteile in Millisekunden sind hier nicht ganz so wichtig, da ich letztenendes in meinem Projekt immer nur ein Jahr berechnen will, welches aber frei wählbar ist.
Gruß
Mr. K.
|