Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
992to996
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
992to996
992to996
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Alle Summen-Kombinationen aus 1-n Zellen

Alle Summen-Kombinationen aus 1-n Zellen
17.07.2008 20:02:10
Michi
Liebe VBA-Freaks,
ich möchte gerne folgende Aufgabe lösen. Meiner Meinung nach geht das nur über VBA und da bin ich an meine Grenzen gestossen:
Ich möchte aus 1-n Zellen jeweils die Summe aller möglichen Kombinationen bekommen, also z.B. bei 4 Zellen müssten die Ergebnisse sein:
- Jede Zelle einzeln als Summe (wohl kein Problem)
- dann alle Kombinationen aus 2 Zellen, also 1+2, 1+3, 1+4, 2+3,......
- dann alle Kombinationen aus 3 Zellen, also 1+2+3, 1+2+4, 1+3+4.......
bis zur Summe aller Zellen (hier 4)
Tja, und da das Ganze variabel sein soll bzgl. der Anzahl der Zellen, wird's kompliziert.
Ich brauch die Ergebnisse auch nicht alle aufgelistet, mir reicht, wenn ich das jeweilige Ergebnis pro Kombination bekomme und mit dem weiterarbeiten kann.
Besten Dank schon mal im voraus und viele Grüße
Michi

14
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Alle Summen-Kombinationen aus 1-n Zellen
17.07.2008 21:20:00
Michi
Hallo Rainer,
danke für den Link, aber da ist leider nichts dabei. Ich hab auch sonst schon im Archiv geschaut und nix passendes gefunden. Wenn die Anzahl der Zellen immer gleich wär, könnte ich es wohl auch selber hinbekommen, aber das ist eben das Problem, dass es variabel sein muss.
Vielleicht hat noch jemand eine andere Idee. Ich bin für jeden Lösungsvorschlag dankbar.
Viele Grüße
Michi

Anzeige
AW: Alle Summen-Kombinationen aus 1-n Zellen
17.07.2008 21:33:00
Ramses
Hallo
Der erste Beitrag macht genau das was du wilslt.
Der zweite Beitrag enthält eine Tabelle die genau das macht was du verlangst, nur nicht mit einzelnen Werten sondern mit Summenfeldern.
Daran siehst du wie aufwändig das ist und es nicht einfach mal so schnell nebenbei gemacht werden kann.
Gruss Rainer

AW: Alle Summen-Kombinationen aus 1-n Zellen
17.07.2008 21:48:00
Michi
Hallo Rainer,
ich hab mir beide angeschaut und aus dem zweiten Beitrag die Mappe auch runtergeladen. Aber es sind beide nicht das, was ich brauch, denn im ersten Beispiel ist es eine bestimmt Anzahl und im zweiten werden immer nur zwei Werte addiert. Mein Ziel/Wunsch wäre alle Kombinationen zu bekommen mit jeder möglichen Anzahl an Summanden, also z.B. bei 4 Werten alle Ergebnisse mit einem Summanden, mit 2, mit 3 und mit 4 Summanden. Ich glaub, dass das ziemlich aufwendig ist, daher hab ich's hier ins Forum gestellt, nachdem ich mir schon den ganzen Nachmittag den Kopf zerbrochen hab. Mein größtes Problem ist für mich, dass ich bestimmen muss, wieviele Schleifen durchlaufen werden sollen, da ja die Anzahl der relevanten Zellen verschieden sein kann. Vielleicht ist das auch gar nicht umsetzbar. Dann muss ich mir was anderes überlegen. Toll wär's aber schon, wenn's eine Lösung gäbe.
Viele Grüße
Michi

Anzeige
Noch offen ...
17.07.2008 21:59:00
Ramses
Hallo
"....im ersten Beispiel ist es eine bestimmt Anzahl und im zweiten werden immer nur zwei Werte addiert...."
Wenn du den Code im ersten Beispiel ansiehst, wie aufwändig das ist nur mit den "paar" Zellen, dann kannst du dir, vielleicht auch nicht, in etwas ausmalen, wie aufwändig das ist das für eine variable Anzahl von Zellen zu machen.
Sorry,... ist zwar interessant, aber dafür habe ich leider keine Zeit.
Gruss rainer

AW: Alle Summen-Kombinationen aus 1-n Zellen
17.07.2008 22:09:00
Michi
Ich kann mir gut vorstellen, wie aufwändig das ist, aber Du hast es auch gesagt: sehr interessant. Vielleicht hat ja jemand anderes Lust, sich daran zu versuchen.
Danke trotzdem für Deine Antworten.
Viele Grüße
Michi

Anzeige
AW: Alle Summen-Kombinationen aus 1-n Zellen
17.07.2008 22:34:00
mpb
Hallo Michi,
wieviel unterschiedliche Werte kan es denn geben? Die Zahl der Kombinationen ergibt sich für n Werte nach folgender Formel:
Summe von 1 bis n für n!/((n-i)!*i!)
Für n=4 sind das 19 Kombinationen
für n= 20 bereits 1048575
für n=50 schlappe 1,22487E+23 (eine 1 mit 23 Nullen)
Willst Du Dir das wirklich antun?
Gruß
Martin

AW: Alle Summen-Kombinationen aus 1-n Zellen
18.07.2008 08:00:14
Michi
Hallo Martin,
das Problem seh ich auch. Ich hatte Fälle mit 11 einzelnen Zahlen, das ist aber eher schon viel. Im Regelfall ist es im einstelligen Bereich. Ich hab auch schon überlegt, ob ich mir eine Obergrenze setze (z.B. 12) und dann die einzelnen Kombinationsmöglichkeiten über Select Case aufrufe, je nachdem wieviele einzelne Zahlen es sind. Aber schöner wär's natürlich, wenn's variabel wäre. Ich will auch keine ewigen Laufzeiten, so dass ich mir durchaus eine Obergrenze für die Anzahl der einzelnen Zahlen vorstellen kann. Das müsste ich dann sehen, wie lange die Prozedur läuft. Außerdem will ich auch abbrechen, wenn ein bestimmtes Ergebnis erreicht ist. Aber es kann auch passieren, dass ich alle Kombinationen durchlaufen muss.
Viele Grüße
Michi

Anzeige
AW: Alle Summen-Kombinationen aus 1-n Zellen
18.07.2008 14:21:00
David
Hi.
Ich habe mir mal eine Formellösung gebastelt. Bis 12 Stellen ist das noch halbwegs machbar, danach reichen die 65.000 Zeilen von Excel nicht mehr.
Allerdings kann ich die Datei hier nicht posten, da die rund 17 MB groß ist.
Gruß
David

AW: Alle Summen-Kombinationen aus 1-n Zellen
18.07.2008 15:48:52
Michi
Hallo David,
was ist an der Datei 17 MB groß? Ich kann mir momentan schwer vorstellen, was daran soviel Speicher brauchen sollte. Sind da wirklich nur Formeln drin? Kriegst Du's nicht irgendwie kleiner zum Hochladen? Ich hätte es auch ehrlich gesagt lieber in VBA, aber vielleicht kann ich mir aus den Formeln was abschauen.
Danke schon mal für Deine Mühe.
Viele Grüße
Michi

Anzeige
AW: Alle Summen-Kombinationen aus 1-n Zellen
18.07.2008 16:01:51
David
schau dir mal die hier an:
https://www.herber.de/bbs/user/53943.zip
diese ist noch auf 8 Zahlen ausgelegt. Wenn ich die auf 12 Zahlen aufbohre, brauche ich auf der Hilfstabelle zur Ermittlung der Kombinationen ca. 45 Tausend Zeilen. Ich hatte zunächst angefangen mit 15 Zahlen, hatte dann aber 24 Spalten á 65.500 Zeilen und die Datei war dann über 70 MB groß. Da hab ich dann aufgehört und bin wieder runter auf 12 Zahlen.
Gruß
David

AW: Alle Summen-Kombinationen aus 1-n Zellen
18.07.2008 16:20:00
mpb
Hallo,
nur noch mal zur Veranschaulichung: Die Zahl der Kombinationen ergibt sich bei n Summanden nach der Formel
2^n-1
und das heißt:
1 1
2 3
3 7
4 15
5 31
6 63
7 127
8 255
9 511
10 1023
11 2047
12 4095
13 8191
14 16383
15 32767
16 65535
17 131071
18 262143
19 524287
20 1048575
21 2097151
22 4194303
23 8388607
24 16777215
25 33554431
26 67108863
27 134217727
28 268435455
29 536870911
30 1073741823
Bei n=20 wird die Millionen-, bei n=30 die Milliardengrenze überschritten. Viel Spaß! ;-)
Gruß
Martin

Anzeige
AW: Alle Summen-Kombinationen aus 1-n Zellen
18.07.2008 18:17:13
Michi
Hallo David,
das ist genial. Ich hab jetzt das Prinzip verstanden und im VBA-Code ist das eigentlich dasselbe. Ich denk, damit kann ich auf jeden Fall weitermachen.
Vielen herzlichen Dank nochmal für Deine Unterstützung.
Schönes WE
Michi

AW: Alle Summen-Kombinationen aus 1-n Zellen
18.07.2008 15:50:00
David
Ich hab mich mal an einem rudimentären (also ohne Dim etc.) Makro versucht, um das Problem zu lösen. Vielleicht kann man was draus machen:

Sub kombi()
suchwert = Range("L1").Value
Count = 1
Range("A2:J100").ClearContents
If Cells(1, 1) = 0 Then a1 = 0 Else a1 = 1
If Cells(1, 2) = 0 Then b1 = 0 Else b1 = 1
If Cells(1, 3) = 0 Then c1 = 0 Else c1 = 1
If Cells(1, 4) = 0 Then d1 = 0 Else d1 = 1
If Cells(1, 5) = 0 Then e1 = 0 Else e1 = 1
If Cells(1, 6) = 0 Then f1 = 0 Else f1 = 1
If Cells(1, 7) = 0 Then g1 = 0 Else g1 = 1
If Cells(1, 8) = 0 Then h1 = 0 Else h1 = 1
If Cells(1, 9) = 0 Then i1 = 0 Else i1 = 1
If Cells(1, 10) = 0 Then j1 = 0 Else j1 = 1
For a = 0 To a1
For b = 0 To b1
For c = 0 To c1
For d = 0 To d1
For e = 0 To e1
For f = 0 To f1
For g = 0 To g1
For h = 0 To h1
For i = 0 To i1
For j = 0 To j1
summe = (Cells(1, 1) * a) + (Cells(1, 2) * b) + (Cells(1, 3) * c) + (Cells(1, 4) * d)  _
+ (Cells(1, 5) * e) + (Cells(1, 6) * f) + (Cells(1, 7) * g) + (Cells(1, 8) * h) + (Cells(1, 9) * i) + (Cells(1, 10) * j)
If summe = suchwert Then
Count = Count + 1
Cells(Count, 1) = Cells(1, 1) * a
Cells(Count, 2) = Cells(1, 2) * b
Cells(Count, 3) = Cells(1, 3) * c
Cells(Count, 4) = Cells(1, 4) * d
Cells(Count, 5) = Cells(1, 5) * e
Cells(Count, 6) = Cells(1, 6) * f
Cells(Count, 7) = Cells(1, 7) * g
Cells(Count, 8) = Cells(1, 8) * h
Cells(Count, 9) = Cells(1, 9) * i
Cells(Count, 10) = Cells(1, 10) * j
End If
Next
Next
Next
Next
Next
Next
Next
Next
Next
Next
End Sub


Gruß
David

Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige
Archiv - Verwandte Themen
Forumthread
Beiträge