Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1028to1032
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

Welche Kombinationen ergeben Summe

Welche Kombinationen ergeben Summe
09.12.2008 17:16:00
tor
Hallo zusammen,
ich bin neu hier und hab gleich eine kniffelige Frage.
Ich habe eine Tabelle mit sagen wir mal 6 Zahlen.
3
6
7
12
16
25
Wie kann ich nun per Formel oder VBA herausfinden, welche Kombinationen eine bestimmte Summe
ergeben?
Also als Beispiel mal Summe = 28
16+12
3+6+7+12
3+25
usw.
Hat da jemand eine Idee?
Gruß
tor

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Welche Kombinationen ergeben Summe
09.12.2008 19:03:45
Erich
Hallo (hier stünde dein Vorname, ( dazu schau bitte mal in die Forums-FAQ )
meinst du so etwas?
 ABCD
1KandidatenSummeTrefferSummanden
232800000111125 + 1 + 1 + 1
36 00011000012 + 16
47 0111001116 + 7 + 12 + 1 + 1 + 1
512 1000010003 + 25
616 1010100113 + 7 + 16 + 1 + 1
725 1010101013 + 7 + 16 + 1 + 1
81 1010101103 + 7 + 16 + 1 + 1
91 1100101113 + 6 + 16 + 1 + 1 + 1
101 1111000003 + 6 + 7 + 12
11    
12    
13    

Dier Ergebnisse wurden damit ermittelt:

Option Explicit
Sub Summanden_ermitteln()
Dim kk As Integer, zz As Long, erg As String, ergT As String
Dim Atst As Double, Amax As Double
Dim anzZ As Integer, ii As Long, umsch As Boolean, arrB() As Boolean
anzZ = Cells(Rows.Count, 1).End(xlUp).Row - 1
ReDim arrB(1 To anzZ)                     ' Datenfeld "An/Aus" pro Zeile in Spalte A
zz = 1
Columns("C:D").ClearContents
[C1:D1] = Split("Treffer Summanden")
For ii = 1 To 2 ^ anzZ - 1          ' Schleife über Anzahl Kombinationen
Atst = 0                           ' )
erg = ""                           ' )
umsch = True                       ' Schalter für An/Aus-Wechsel
For kk = anzZ To 1 Step -1         ' Schleife über Elemente des Datenfelds "An/Aus"
If umsch Then                     ' bis ein Element "Aus" war (Schalter auf False ist)
arrB(kk) = Not arrB(kk)        ' "An/Aus" umschalten
If arrB(kk) Then umsch = False ' wenn "An"geschaltet, aufhören
End If
Atst = Atst - arrB(kk) * Cells(kk + 1, 1) ' addieren Spalte A, Zeilen mit "An"
If Atst > Cells(2, 2) Then Exit For       ' verlassen, wenn Zielwert F1 überschritten
erg = IIf(arrB(kk), "1", "0") & erg       ' Einsen ("An") und Nullen ("Aus") verketten
Next kk
' wenn  Summe = Amax Then
If Atst > Amax Then Amax = Atst              ' neue max. Summe
If Amax = Cells(2, 2) Then
zz = zz + 1
Cells(zz, 3) = erg
ergT = ""
For kk = 1 To anzZ
If arrB(kk) Then ergT = ergT & Cells(kk + 1, 1) & " + "
Next kk
Cells(zz, 4) = Left(ergT, Len(ergT) - 3)
End If
End If
Next ii
Cells(2, 2).Select
End Sub

Rückmeldung wäre nett! - Grüße von Erich aus Kamp-Lintfort

Anzeige
AW: Summanden-Kombinationen suchen
11.12.2008 15:06:19
tor
Hi,
sorry das ich mich erst jetzt melde, ich hatte das Problem etwas aus dem Auge verloren.
Danke! Das ist echt genial. Ich bin VBA technisch auch nicht ganz unbedarft, aber das kann ich nur begrenzt
nachvollsziehen.
Das ist genau das was ich gesucht habe.
DANKE
Thorsten
Anzeige

300 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige