Anzeige
Archiv - Navigation
1752to1756
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Zahl hochzählen bis Bedingung erfüllt

Zahl hochzählen bis Bedingung erfüllt
20.04.2020 20:02:52
Uwe
Hallo zusammen,
ich habe folgendes Problem und komme nicht weiter:
Ich habe 3 (oder mehr) Kennzahlen. Diese werden in Bandbreiten in gut (z.B. 20-30), mittel, schlecht klassifiziert.
Nun soll eine Basiszahl ermittelt werden, bei der alle Bandbreiten den Wert gut erhalten.
Ich habe es über eine Zielwertfunktion ausprobiert und bin kläglich gescheitert. Und zwar habe ich jeder Kennzahl über eine Wenn-Dann-Funktion den Wert 1 (für erfüllt) und den Wert 0 (für nicht erfüllt) zugeordnet. Bei drei Kennziffern erhalte ich somit den Wert 3. Eine Weitere Bedingung ist, dass die Basiszahl oder auch veränderbare Zahl nicht kleiner als Null sein darf, sodass ich einen Zielwert von 4 erreichen muss. Leider erhalte ich über die Zielwertfunktion falsche Ergebnisse, obwohl es bei manuellem Probieren Lösungen geben sollte. Ich gehe jedoch davon aus, das es nicht funktioniert, da es kein eindeutiges bzw. mehrere Möglichkeiten gibt, die möglich wären.
Daher hatte ich die Idee, in der veränderlichen Zelle den Wert solange hochzuzählen, bis alle Bedingungen erfüllt sind. Hier hört jedoch meine Kenntnis auf. Der Basiswert kann Werte von 3stelligen Millionenbeträgen annehmen. Die Rechenoperation sollte dennoch schnell sein.
Ich hoffe, dass mir jemand weiterhelfen kann.
Viele Grüße
Uwe

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Zahl hochzählen bis Bedingung erfüllt
20.04.2020 23:16:42
Daniel
Hallo, Uwe.
Ich bin mir nicht sicher, ob ich deine Frage richtig verstanden habe.
Um eine Zahl hochzählen zu lassen kannst du entweder einen for-next oder einen loop verwenden. in meinen Beispielen ist C7 die von dir genannte "veränderliche Zelle" und die zu erfüllende Bedingung ist D7=1 (über eine Funktion oder ähnliches in Abhängigkeit von C7 gesteuert).
Sub fornextbeispiel()
Application.ScreenUpdating = False 'Bildschirmupdate für schnellere Operation ausschalten
For i = 0 To 100000
Range("C7") = i
If Range("D7") = 1 Then GoTo blabla
Next i
blabla:
'hier dann rein was passieren soll
Application.ScreenUpdating = True
End Sub

Sub loopbeispiel()
Application.ScreenUpdating = False 'Bildschirmupdate für schnellere Operation ausschalten
i = 0
Do While Range("D7")  1
Range("C7") = i
i = i + 1
Loop
'hier dann rein, was passieren soll
Application.ScreenUpdating = True
End Sub
(Ist gerade dirty geschrieben, Variablen müssen noch vernünftig deklariert werden etc...)
Ich hoffe das beantwortet zumindest deine Frage im Betreff. Ich befürchte allerdings, dass dies nicht ganz deiner Forderung einer "schnellen Rechenoperation" entspricht. Meine for-next hat beim hochzählen bis 100.000 bereits 15 sek benötigt. Von daher glaube ich, das ist nicht der Lösungsweg, den du benötigst. Sorry.
Gruß
Daniel
Anzeige
AW: Zahl hochzählen bis Bedingung erfüllt
21.04.2020 09:41:35
Uwe
Hallo Daniel,
super! Ich habe mich für die Loop-Variante entschieden und lasse in 100er Schritten hochzählen. Wenn ich dann noch die Skalierung der Millionenbeträge verkleinere, ist die Rechenzeit passabel.
Also nochmals Vielen Dank für die Unterstützung.
Viele Grüße
Uwe

302 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige