For-Schleife in Excel Formel?

Hallo,

ich habe folgendes Problem:

ich habe ein Feld mit z.B. folgendem Inhalt: „18:10“

Der erste Teil ist ein Identifikator für ein bestimmtes Listenelement.
Der zweite Teil ist eine Angabe der Wertigkeit. Beide Werte sind veränderlich, in der Regel wird sich aber nur die Wertigkeit nach oben hin verändern.

Für jedes Listenelement gibt es einen Grundwert. Mit dem Grundwert und der Wertigkeit wird aus der Formel ein Zwischenwert für die jeweilige Stufe der Wertigkeit berechnet, und dieser Zwischenwert muss von jeder Stufe addiert werden, um einen Gesamtwert von allen Stufen zu erhalten.

Der Grundwert für obiges Beispiel lautet 3, und die Berechnung müsste 10x ausgeführt werden, für die nächste Stufe 11x usw.

Die Formel:

=WENN([Wertigkeit]=1;[Grundwert];RUNDEN((5*[Grundwert]+[Wertigkeit]-1)/10;0))

Also für obiges Beispiel sähe die erforderliche Berechnung wie folgt aus:

=WENN(1=1;3;RUNDEN((5*3+1-1)/10;0))
+WENN(2=1;3;RUNDEN((5*3+2-1)/10;0))
+WENN(3=1;3;RUNDEN((5*3+3-1)/10;0))
+WENN(4=1;3;RUNDEN((5*3+4-1)/10;0))
+WENN(5=1;3;RUNDEN((5*3+5-1)/10;0))
+WENN(6=1;3;RUNDEN((5*3+6-1)/10;0))
+WENN(7=1;3;RUNDEN((5*3+7-1)/10;0))
+WENN(8=1;3;RUNDEN((5*3+8-1)/10;0))
+WENN(9=1;3;RUNDEN((5*3+9-1)/10;0))
+WENN(10=1;3;RUNDEN((5*3+10-1)/10;0))

Programmiertechnisch lässt sich das ganze prima mit einer einfachen For-Schleife lösen, aber ich bin kein Freund von VBA und will möglichst mit Bordmitteln auskommen wenn es irgendwie geht.

Mit Hilfszellen möchte ich auch nicht arbeiten müssen, dann schon lieber mit VBA.

Excel ist doch in allen anderen Belangen so überladen mit Funktionen, gibt es keine Funktion mit der man eine Berechnung wie in einer For-Schleife mehrfach durchführen lassen kann?

Sollte es mit Excel-Bordmitteln nicht funktionieren, kann mich hier jemand auf den richtigen Weg bringen wie ich sowas in VBA hinbiegen kann? Oder muss ich dafür rüber in die VBA Abteilung?

Ich hoffe ich konnte einigermaßen verständlich rüberbringen was ich brauche :smile:

Hallo,
=RUNDEN((5*3+1-1)/10;0) bis
=RUNDEN((5*3+10-1)/10;0)

Ob ich das richtig verstanden habe?
Das Ergebnis von diesem Teil der Formel liegt zwischen 1,5 und 2,4
Da du den Wert ohne Nachkommastellen rundest kommt hier immer 2 raus!

An ansonsten könntest du eine Matrixformel verwenden:

Wertigkeit in C1
=SUMME(WENN($C$1

Für jedes Listenelement gibt es einen Grundwert. Mit dem
Grundwert und der Wertigkeit wird aus der Formel ein
Zwischenwert für die jeweilige Stufe der Wertigkeit berechnet,
und dieser Zwischenwert muss von jeder Stufe addiert werden,
um einen Gesamtwert von allen Stufen zu erhalten.
Der Grundwert für obiges Beispiel lautet 3, und die Berechnung
müsste 10x ausgeführt werden, für die nächste Stufe 11x usw.

Hallo algee,

was haste gegen Hilfsspalten? hast doch Millionen davon.

Wenn du bei Optionen Iteration auf z.B. 1 stellst kannst du in
A1 diese Formel schreiben:
=A1+1
Jedesmal bei F9 oder einer anderen Formelberechnung im Blatt
wird dann A1 um 1 erhöht.

Vieleicht hilft dir der „Solver“ auch etwas.

Vielleicht findest du auf excelformeln.de etwas was du dir zurechtschnitzen kannst.

Gruß
Reinhard

Gruß
Reinhard

Das ist schon richtig so.

Das Beispiel war vielleicht nicht das beste um mein Problem darzustellen. Bei 9 Berechnungen käme in diesem Falle immer 2 raus. Die erste Berechnung wird durch die WENN-Abfrage übergangen.

Und wie gesagt, mit Hilfsspalten mag ich nicht arbeiten, meine Tabelle ist dafür ein wenig zu komplex. Ich schau mal wie weit ich mit VBA komme.