12.5k Aufrufe
Gefragt in Tabellenkalkulation von ahorn38 Experte (3.3k Punkte)
Hallo,

ich habe eine Zahlenreihe und möchte ermitteln welche Summanden aus dieser Reihe eine vorgegebene Summe 272,29 bilden (ggf. mehrere Möglichkeiten). Z.Bsp:

[list]A 15,00 272,29
B 17,85
C 17,85
D 107,10
E 96,99
F 46,00
G 98,00
H 64,00
I 180,00
J 35,50
K 51,00
L 38,50
M 90,00
N 30,00
O 38,00
P 56,00
Q 16,66
R 15,00
S 35,50
T 50,00
U 55,93
V 126,00
W 120,00
X 51,00
Y 51,00
Z 42,00
AA 115,50
AB 30,35
A 67,00
C 75,00
AD 42,25
AE 62,48
AF 52,00
AG 107,10
AH 55,00
AI 294,53
2446,09
[/list]
Ich kann mir eigentlich nur ineinander geschachtelte Schleifen vorstellen die alle Kombinationen prüfen müssten, was allerdings sehr schnell einen erheblichen Aufwand bedeutet. Hat jemand einen guten Tipp wie man die Sache angehen könnte?
Danke und Gruß A.

59 Antworten

0 Punkte
Beantwortet von ahorn38 Experte (3.3k Punkte)
..sorry für die Darstellung.
Die Daten stehen in drei Spalten: "A" mit den Buchstaben, "B" mit den Werten, "C" mit der gesuchten Summe.
0 Punkte
Beantwortet von m-o Profi (22.9k Punkte)
Hallo Andreas,

schau dir mal das hier an: Solver

Willst du Solver mit VBA ansprechen, dann schau dir mal das hier an: KLICK MICH!

Gruß

M.O.
0 Punkte
Beantwortet von ahorn38 Experte (3.3k Punkte)
Hallo M.O.
danke für den Tipp. Habe mir das mal angesehen aber leider keine Spur zu meinem Problem gefunden.
Gruß A.
0 Punkte
Beantwortet von m-o Profi (22.9k Punkte)
Hallo Andreas,

der erste Link bezüglich Solver betrifft doch dein Problem genau: Wie erhalte ich die Beträge einer Zahlenreihe, die eine vorgegebene Summe bilden. Allerdings funktionert die Lösung ohne VBA!.

Statt in einer Zeile müsstest du deine Zahlen in einer Spalte untereinander anordnen und dann wie im Link dargestellt vorgehen. Allerdings muss das Solver-Add-In aktiviert sein. Und die Berechnung kann etwas dauern.

Gruß

M.O.
0 Punkte
Beantwortet von ahorn38 Experte (3.3k Punkte)
Hallo M.O.
danke, ich habs doch noch gefunden, dauert ein bißchen aber bringt eine Lösung. Da ich das Problem in einem Code eingebunden habe wäre natürlich ein Ansatz für einen entsprechenden Code auch nicht schlecht... Vlt. hat noch jemand eine Idee?
Gruß A.
0 Punkte
Beantwortet von
Hallo Andreas,

ich habe vor einigen Jahren mal ein AddIn geschrieben, welches genau dieses Problem komfortabel löst. Der Trick den ich dabei anwende: Ich habe die Daten im Hintergrund sortiert und breche die Unterschleifen vorzeitig ab, sobald die vorgegebene Summe überschritten wird. Dadurch läuft das Programm recht schnell durch.
Mal sehen ob ich die Datei wiederfinde. Dann kann ich sie dir gern zur Verfügung stellen.

Auf welche Weise möchtest du denn das Ergebnis ausgeben? Was machst du z.B. wenn es mehrere Ergebnisse gibt? In meiner Version sind die Ergebnisse in einem Userform auswählbar und die gewünschte Variante wird im Excelfile markiert. Es ist aber auch eine Ausgabe in eine neue Liste vorstellbar. Es gibt viele Möglichkeiten.

Frage an Alle:Wie kann man hier nochmal was hochladen? Ich habe zwar Dropbox, möchte diese aber nicht öffentlich schalten. Gibt es Alternativen?
0 Punkte
Beantwortet von ahorn38 Experte (3.3k Punkte)
Hallo,

das klingt ja sehr vielversprechend! Die Ergebnisausgabe ist fast zweitrangig, wobei ich die Lösung über einer userform sehr gut finde. Bin gespannt auf deinen Algorithmus, habe heute schon den ganzen Tag geknobelt..... Ich hoffe, dass ich deine Gedankengänge auch nachverfolgen kann und den Code in mein Problem einbinden kann.
E gibt verschiedene Plattformen um Daten hochzuladen..
Ich habe in paar mal http://www.file-upload.net/ benutzt und keine schlechten Erfahrungen gemacht.
Gruß A.
0 Punkte
Beantwortet von
Hallo nochmal.

Ich glaube das war die Plattform die in diesem Forum des Öfteren als unsicher und schlimmer betitelt wurde. Von daher wäre mir eine andere (ähnliche) Alternative lieber.

Was den Code angeht, dürfte es schwierig für dich werden, dich da reinzudenken. Um die Anzahl der Daten variabel halten zu können, arbeite ich nicht mit Unter-Schleifen sondern mit Ebenen. Das sind normale Variablen die im Hintergrund hochzählen, auf welcher Stufe einer Unterschleife man sich befindet. Dadurch wird das Ganze aber leider auch etwas unübersichtlich. Probier's einfach mal aus.

Im Moment bin ich noch nicht an dem PC auf dem die Datei liegt. Ich melde mich sobald ich sie gefunden habe. Wird wahrscheinlich morgen, spätestens übermorgen.

L.G. Mr. K.
0 Punkte
Beantwortet von
Ach noch was. Da ich hier selbst jahrelang Gehirnschmalz reingesteckt habe, und das eins meiner besseren Produkte ist, möchte ich den Code nicht jedermann zugänglich machen. Ich werde das Tool daher zunächst mit verschlüsseltem Code hochladen. Die Nutzung des Tools ist dann selbstverständlich für jedermann frei. Wenn du dir eine Wegwerf-Emailadresse zulegst, sende ich dir gern das Passwort für das Code-Modul zu.

L.G. Mr. K.
0 Punkte
Beantwortet von ahorn38 Experte (3.3k Punkte)
Ok, aber was ist denn eine Wegwerfadresse?
...