12.1k Aufrufe
Gefragt in Tabellenkalkulation von ahorn38 Experte (3.2k 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 flupo Profi (17.8k Punkte)
Ok, aber was ist denn eine Wegwerfadresse?

Viele Mailprovider bieten die Möglichkeit, neben der eigentlichen Mailadresse noch weitere, so genannte Alias-Adressen einzurichten.
Bei GMX z.B. kann man bis zu 20 Adressen mit Fundomains z.B. Flotterhengst@partyheld.de anlegen und weitere zwei mit den üblichen GMX-Domains.
Mails an diese Adressen kommen ganz normal im Posteingang an. Und wenn sie nicht mehr gebraucht werden, sind sie im Handumdrehen wieder gelöscht, ohne dass man seinen Account aufgeben muss.

Gruß Flupo
0 Punkte
Beantwortet von ahorn38 Experte (3.2k Punkte)
Hallo,
ich habe volles Verständnis dafür, dass du den Code schützen möchtest. Mir helfen vlt. schon ein paar Tipps für den Algorithmus.
Den Gedanken, das Verfahren zu kürzen, indem ich die Summenbildung beende, wenn die Zielgröße überschritten ist, hatte ich auch schon. Darüber hinaus könnte ich bei meiner Problemstellung auch die Anzahl der Summanden begrenzen, das würde die möglichen Kombinationen wesentlich reduzieren und die Lösungsmenge einschränken. Meine Algorithmen weisen aber immer noch Lücken auf, so dass ich nicht alle möglichen Binominalkoeffizienten erwische......
Gruß A.
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi Ahorn ^^

ich probier mich auch gerade :-)

ich probier es ohne solver und ohne analysefunktion
ich gehe ueber einen binärcode als dimensionsschalter(0/1)
damit sind alle möglichen werte leicht ermittelbar
und addiere dann die Dimensionen
bin ja gespannt ob es so geht,die Laufzeit komte noch nicht testen
sind 2 hauptschleifen a 2^anzahlDaten
bin aber noch am experimentieren

gruss nighty
0 Punkte
Beantwortet von ahorn38 Experte (3.2k Punkte)
Hallo,
Ich hab das Problem bisher eindeutig unterschätzt und bis jetzt zwar ein
Stück weiter aber lange nicht am Ziel. Klingt ja interessant wie du da
rangehst - drück die Daumen und bin gespannt....
Gruß A.
0 Punkte
Beantwortet von m-o Profi (22.8k Punkte)
Hallo,

vielleicht hilft ja das hier: KLICK MICH!

Gruß

M.O.
0 Punkte
Beantwortet von ahorn38 Experte (3.2k Punkte)
Hallo M.O.
oh ja, das kommt meinem Problem doch schon sehr nah auch wenn das als benutzerdefinierte Funktion geschrieben ist. Habe noch ein kleines Problem mit meinen Dezimalstellen, aber das kriege ich hin...
Vielen Dank für en Tipp!!!!
Gruß A.
0 Punkte
Beantwortet von
Hallo Andreas,

Leider hatte ich noch keine Gelegenheit mir die Variante von M.O. anzuschauen, da ich momentan zeitlich stark eingebunden bin. Klingt aber auch interessant. Und auf Nightys Ansatz freu ich mich auch schon. Falls du dennoch mal einen Blick auf mein Tool werfen möchtest, findest du das hier. Dabei handelt es sich um eine Testversion. Einige geplante Special-Functions sind noch nicht hinterlegt, aber die eigentliche Ergebnissuche funktioniert ganz gut und wirft für dein obiges Beispiel in wenigen Sekunden 28 verschiedene Lösungen aus. Natürlich werde ich im Lauf der Zeit auch Updates erstellen.

Leider fehlt mir oft die Zeit für umfangreiche Tests. Sollte dir oder jemand Anderem hier ein Bug auffallen, würde ich mich freuen, wenn er diesen hier angeben würde.

Die Datei ist ein AddIn und muss über den AddIns-Manager hinzugefügt werden. Am besten speicherst du die Datei daher unter C:\Benutzer\Name\AppData\Roaming\Microsoft\AddIns, also dem Ordner der für AddIns vorgesehen ist und bereits existieren sollte.

Um die Berechnung durchzuführen, brauchst du nur deine Daten markieren und auf das neu generierte Symbol klicken. Dann sollte sich das Startformular öffnen.

Das AddIn ist in Excel 2000 erstellt. Leider habe ich zurzeit keinen Zugriff auf Excel 2010. Sollte es Probleme geben, (das neue Symbol ist dort wahrscheinlich auf der Schnellstartleiste zu finden) meld' dich nochmal.

Gruß Mr. K.
0 Punkte
Beantwortet von nighty Experte (6.6k Punkte)
hi all ^^

ich komm erst nach weihnachten dazu ,weiter zu tuefteln

ist glaube ich auch nicht so akkut und im netz oft angesprochen und gelöst(siehe auch Mr.K und links)

wozu wird so etwas eigentlich gebraucht :-)

geht aber gut vorwaerts bei mir bisher
wenn es fertig ist waere ein laufzeitverhalten dem solver gegenueber doch recht net :-)

gruss nighty
0 Punkte
Beantwortet von ahorn38 Experte (3.2k Punkte)
Hallo Mr. K.,

Kompliment! Eine tolle und komfortable Lösung, dabei schneller und übersichtlicher als der Solver!
Ich habe nur ein kleines Problem mit der Darstellung einer Dezimalzahl mit zwei Stellen. Wenn ich das Dialogfeld anklicke erhalte ich einen Fehler. Die angebotene Lösung entspricht damit nicht korrekt der Lösung meines Problems, sondern mir wird nur eine Näherung angeboten, die aber leider nicht stimmt. Zielwert ist 272,29 bei 5 Summanden.
Die Datenreihe setzt sich aus folgenden Elementen zusammen:
15,00
17,85
17,85
107,10
96,99
46,00
98,00
64,00
180,00
35,50
51,00
38,50
90,00
30,00
38,00
56,00
16,66
15,00
35,50
50,00
55,93
126,00
120,00
51,00
51,00
42,00
115,50
30,35
67,00
75,00
42,25
62,48
52,00
107,10
55,00
294,53
32,50
Die richtige Lösung ist:
17,85
17,85
96,99
107,1
32,5
Vlt. mache ich in der Anwendung auch was falsch ??

Auf nightys Ansatz bin ich auch gespannt. Übrigens als Anwendung nutze ich es um bei Bank-Sammelüberweisungen die einzelnen Einzahlungen zu ermitteln. Vorgegeben ist dabei die Summe und die Anzahl der Summanden.
Gruß A.
0 Punkte
Beantwortet von
Hallo Andreas,

Vielen Dank für dein Feedback. Ich glaube nicht, dass du da was falsch machst. Warum allerdings jetzt grade die Variante mit 5 Summanden nicht gefunden wird, kann ich im Moment auch nicht sagen. Da muss ich wohl nochmal ran. Eigentlich war ich bisher der Meinung, dass alle Möglichkeiten durchlaufen werden. Leider setzen sich alle gefundenen Lösungen erst aus 6 bis 8 Summanden zusammen. Daher sind Testdaten wie deine so wichtig, um das Tool weiter zu verbessern. Dafür werd ich aber noch ein wenig Zeit brauchen, da auch bei mir jetzt erstmal Weihnachtsvorbereitungen anstehen.

Übrigens, auch ich habe dieses Tool begonnen um aus Sammelüberweisungen die richtigen Rechnungen zu finden. Inwiefern das bei Multiplen Ergebnissen allerdings sinnvoll anwendbar ist, bleibt jedem selbst überlassen.

Ich wünsche Euch Allen hier ein frohes Fest

Weihnachtlche Grüße Mr. K.
...