• Privacywetgeving
    Het is bij Helpmij.nl niet toegestaan om persoonsgegevens in een voorbeeld te plaatsen. Alle voorbeelden die persoonsgegevens bevatten zullen zonder opgaaf van reden verwijderd worden. In de vraag zal specifiek vermeld moeten worden dat het om fictieve namen gaat.

Excel combinaties uit reeks met vaste waarde som

Status
Niet open voor verdere reacties.

philfree

Gebruiker
Lid geworden
23 dec 2014
Berichten
11
Beste mensen,

Ik wil uit een reeks van 17 getallen alle combinaties weten van zes getallen die samen de optelsom 799 hebben. Is er een manier in excel om dit te berekenen? Ik heb al flink gezocht, maar nog niet gevonden. Vind het ook lastig de juiste termen te gebruiken hiervoor.

Alvast dank voor jullie hulp
 
Hoi Philfree,

Het is wat lastig om hier een oplossing te geven.

Het gaat altijd om 6 van 17 getallen die altijd 799 moeten vormen. Waar staan die getallen.
Wil je een formule oplossing of VBA?

Groet,
Jeroen
 
Het gestelde is correct. Ik heb de getallen onder elkaar staan in een excel tabblad. De cellen A1 t/m A17 hebben alle verschillende waarden, varierend van 35 tot 420. Waar het mij uiteindelijk om gaat is dat ik de combinaties weet die je kunt maken om de gewenste optelsom te krijgen. Waarden mogen ook meerdere keren worden gebruikt.

Ik weet eerlijk gezegd niet wat VBA is. Als dit in Excel kan, fijn. Als het met een ander programma kan, ook goed!

alvast dank!
 
Hoi Philfree,

VBA is een soort van programmeertaal achter Excel vooral bedoeld nieuwe functies te maken en om opdrachten achterelkaar uit te voeren. Zo is hier het voordeel dat je 6 telreeksen achter elkaar kan zetten en zonder formules circa 24 miljoen berekeningen kan uitvoeren. Dat wordt met 24 miljoen (zeer eenvoudige) sommen toch een heel zwaar sheet (niet te posten op deze site).

Ik ben bezig met een VBA-versie.

Groet,
Jeroen
 
is het dan handig dat ik de waardes geef?

420
280
210
168
140
120
105
93,33333333
84
70
60
56
52,5
46,66666667
42
40
35

zes waardes hiervan moeten bij elkaar opgeteld 799 zijn. ik ben benieuwd welke combinaties mogelijk zijn.

zeer veel dank!
 
Beste Jeroen,

hartelijk dank voor de moeite! Ik vrees alleen dat ik niet weet hoe ik het bestand moet gebruiken. als ik op de zes cellen klik, verspringen de waarden in de kolom steeds. Ook begrijp ik niet hoe je bij de waarden in de zes cellen J4:O4 komt.

Tot slot belangrijke voorwaarde: ook mogen de waarden niet willekeurig zijn tussen 35 en 420, maar de 17 waarden liggen vast: zie reactie hierboven.

Is het mogelijk om hieruit een combinatie te maken van waarden die opgeteld 799 zijn? Ik heb er zelf handmatig al twee gevonden, bijvoorbeeld 42,84,105,120,168,280. Opgeteld maakt deze som 799.

Mijn vraagstuk komt uit een puzzel. De 17 getallen corresponderen met letters uit het alfabet. Uiteindelijk wordt deze combinatie van zes getallen zes letters die onderdeel zijn van een zin.

Fijn als je nog even mee zou willen denken!
groet,
Philip
 
Start de oplosser in Excel.
 
Veel dank voor deze oplosser. Alleen, ik krijg nergens een 1 in kolom B! Doe ik iets verkeerd?
 
Menu Gegevens → Oplosser → druk op Oplossen.
 
ik heb de oplosser zijn ding laten doen, maar er komen in de B-kolom 17 waarden lager dan 1, varierend van 0,82 tot 0,07 (afgerond)
 
Vreemd, met welk versie werk je?
Hier krijg ik in bepaalde cellen in kolom B een 1 die samen de som van 799 maken.
 
versie 2010 14.0.7140.5002 (32bits)

Ziet er zo uit...

420 0,820338291
280 0,546892194
210 0,410169145
168 0,328135316
140 0,273446097
120 0,234382369
105 0,205084573
93,33333333 0,182297403
84 0,164067658
70 0,136723048
60 0,117191184
56 0,109378439
52,5 0,102542286
46,66666667 0,091148701
42 0,082033829
40 0,078127456
35 0,068361524
 
Ik met Excel 2007.
Zou er daar ook al verschil in zitten?
Wat staat er in cel F2?
Hier ziet het er zo uit.

Code:
[TABLE="width: 125"]
[TR]
[TD="class: xl63, width: 103, bgcolor: transparent"][FONT=Tahoma][SIZE=2][COLOR=#3e3e3e]420[/COLOR][/SIZE][/FONT]
[/TD]
[TD="width: 64, bgcolor: transparent, align: right"][FONT=Calibri][SIZE=3][COLOR=#000000]0[/COLOR][/SIZE][/FONT]
[/TD]
[/TR]
[TR]
[TD="class: xl63, bgcolor: transparent"][FONT=Tahoma][SIZE=2][COLOR=#3e3e3e]280[/COLOR][/SIZE][/FONT]
[/TD]
[TD="bgcolor: transparent, align: right"][FONT=Calibri][SIZE=3][COLOR=#000000]0[/COLOR][/SIZE][/FONT]
[/TD]
[/TR]
[TR]
[TD="class: xl63, bgcolor: transparent"][FONT=Tahoma][SIZE=2][COLOR=#3e3e3e]210[/COLOR][/SIZE][/FONT]
[/TD]
[TD="bgcolor: transparent, align: right"][FONT=Calibri][SIZE=3][COLOR=#000000]0[/COLOR][/SIZE][/FONT]
[/TD]
[/TR]
[TR]
[TD="class: xl63, bgcolor: transparent"][FONT=Tahoma][SIZE=2][COLOR=#3e3e3e]168[/COLOR][/SIZE][/FONT]
[/TD]
[TD="bgcolor: transparent, align: right"][FONT=Calibri][SIZE=3][COLOR=#000000]1[/COLOR][/SIZE][/FONT]
[/TD]
[/TR]
[TR]
[TD="class: xl63, bgcolor: transparent"][FONT=Tahoma][SIZE=2][COLOR=#3e3e3e]140[/COLOR][/SIZE][/FONT]
[/TD]
[TD="bgcolor: transparent, align: right"][FONT=Calibri][SIZE=3][COLOR=#000000]1[/COLOR][/SIZE][/FONT]
[/TD]
[/TR]
[TR]
[TD="class: xl63, bgcolor: transparent"][FONT=Tahoma][SIZE=2][COLOR=#3e3e3e]120[/COLOR][/SIZE][/FONT]
[/TD]
[TD="bgcolor: transparent, align: right"][FONT=Calibri][SIZE=3][COLOR=#000000]1[/COLOR][/SIZE][/FONT]
[/TD]
[/TR]
[TR]
[TD="class: xl63, bgcolor: transparent"][FONT=Tahoma][SIZE=2][COLOR=#3e3e3e]105[/COLOR][/SIZE][/FONT]
[/TD]
[TD="bgcolor: transparent, align: right"][FONT=Calibri][SIZE=3][COLOR=#000000]0[/COLOR][/SIZE][/FONT]
[/TD]
[/TR]
[TR]
[TD="class: xl63, bgcolor: transparent"][FONT=Tahoma][SIZE=2][COLOR=#3e3e3e]93,33333333[/COLOR][/SIZE][/FONT]
[/TD]
[TD="bgcolor: transparent, align: right"][FONT=Calibri][SIZE=3][COLOR=#000000]1[/COLOR][/SIZE][/FONT]
[/TD]
[/TR]
[TR]
[TD="class: xl63, bgcolor: transparent"][FONT=Tahoma][SIZE=2][COLOR=#3e3e3e]84[/COLOR][/SIZE][/FONT]
[/TD]
[TD="bgcolor: transparent, align: right"][FONT=Calibri][SIZE=3][COLOR=#000000]1[/COLOR][/SIZE][/FONT]
[/TD]
[/TR]
[TR]
[TD="class: xl63, bgcolor: transparent"][FONT=Tahoma][SIZE=2][COLOR=#3e3e3e]70[/COLOR][/SIZE][/FONT]
[/TD]
[TD="bgcolor: transparent, align: right"][FONT=Calibri][SIZE=3][COLOR=#000000]1[/COLOR][/SIZE][/FONT]
[/TD]
[/TR]
[TR]
[TD="class: xl63, bgcolor: transparent"][FONT=Tahoma][SIZE=2][COLOR=#3e3e3e]60[/COLOR][/SIZE][/FONT]
[/TD]
[TD="bgcolor: transparent, align: right"][FONT=Calibri][SIZE=3][COLOR=#000000]0[/COLOR][/SIZE][/FONT]
[/TD]
[/TR]
[TR]
[TD="class: xl63, bgcolor: transparent"][FONT=Tahoma][SIZE=2][COLOR=#3e3e3e]56[/COLOR][/SIZE][/FONT]
[/TD]
[TD="bgcolor: transparent, align: right"][FONT=Calibri][SIZE=3][COLOR=#000000]0[/COLOR][/SIZE][/FONT]
[/TD]
[/TR]
[TR]
[TD="class: xl63, bgcolor: transparent"][FONT=Tahoma][SIZE=2][COLOR=#3e3e3e]52,5[/COLOR][/SIZE][/FONT]
[/TD]
[TD="bgcolor: transparent, align: right"][FONT=Calibri][SIZE=3][COLOR=#000000]0[/COLOR][/SIZE][/FONT]
[/TD]
[/TR]
[TR]
[TD="class: xl63, bgcolor: transparent"][FONT=Tahoma][SIZE=2][COLOR=#3e3e3e]46,66666667[/COLOR][/SIZE][/FONT]
[/TD]
[TD="bgcolor: transparent, align: right"][FONT=Calibri][SIZE=3][COLOR=#000000]1[/COLOR][/SIZE][/FONT]
[/TD]
[/TR]
[TR]
[TD="class: xl63, bgcolor: transparent"][FONT=Tahoma][SIZE=2][COLOR=#3e3e3e]42[/COLOR][/SIZE][/FONT]
[/TD]
[TD="bgcolor: transparent, align: right"][FONT=Calibri][SIZE=3][COLOR=#000000]1[/COLOR][/SIZE][/FONT]
[/TD]
[/TR]
[TR]
[TD="class: xl63, bgcolor: transparent"][FONT=Tahoma][SIZE=2][COLOR=#3e3e3e]40[/COLOR][/SIZE][/FONT]
[/TD]
[TD="bgcolor: transparent, align: right"][FONT=Calibri][SIZE=3][COLOR=#000000]0[/COLOR][/SIZE][/FONT]
[/TD]
[/TR]
[TR]
[TD="class: xl63, bgcolor: transparent"][FONT=Tahoma][SIZE=2][COLOR=#3e3e3e]35[/COLOR][/SIZE][/FONT]
[/TD]
[TD="bgcolor: transparent, align: right"][FONT=Calibri][SIZE=3][COLOR=#000000]1[/COLOR][/SIZE][/FONT]
[/TD]
[/TR]
[/TABLE]
 
In F2 staat de waarde 799. De formule in die cel luidt: =SOMPRODUCT((A1:A17)*(B1:B17))

Overigens moet de optelsom 799 gevormd worden door slechts zes getallen. In jouw oplosser zijn het er negen. Ik heb handmatig al drie combinaties gevonden. Maar omdat ik heel veel van dit soort berekeningen moet doen om de oplossing te vinden, is een formule in excel wel zo handig.
 
Eentje in Excel 2010-uitvoering, ik zou weliswaar ook niet weten welk verschil daar kan inzitten.
In het blauw: 4 reeds gevonden combinaties.
 
Hoi Philip.

Het duurde even voordat de computer weer vrij was.

In mijn sheet heb ik 17 willekeurige getalen onder elkaar gezet in kolom H met ASELECTTUSSEN (35 en 420). Deze cijfers heb ik gebruikt om een nieuwe reeks te maken. Als je die niet nodig hebt, kun je die verwijderen.
In J2 staat de teller van het aantal gevonden combinaties en in J4-O4 de teller van de VBA-code.
In D2 staat nu 799, deze kun je ook aanpassen.

Zodra je naar Start gaat (cel D4) start de VBA code en loopt de code met dien verstande dat er in het eerdere sheet een kleine fout in zat teller i4 loopt slechts tot 14 ipv 17. De teller i4 staat in de programmeercode, die zie je dus niet in Excel. (Rechter muisklik op het tabje van het tabblad -> Kies programmeercode weergeven. Er opent nu een nieuw tabblad waarin de VBA-code staat)

Bekijk bijlage test 799-1.xlsm

Alle combinaties worden nagegaan.

Je zou in kolom B de corresponderende letters erbij kunnen zetten en dan kan de VBA-code gelijk het lettercombinatie er bij zetten. Wat niet zal lukken, mij niet in ieder geval is dat Excel controleert of de lettercombinatie een woord is.

Bij is de code nu klaar en er zijn 12.240 combinaties mogelijk.

Groet,
Jeroen
 
Laatst bewerkt:
Nog aan aanpak met VBA:

edit: in eerste versie de decimale waarden over het hoofd gezien.
 

Bijlagen

Laatst bewerkt:
mooi WHER,
en nu nog met de dubbele waarden
zo als bvb:
420 120 84 70 70 35
420 168 60 60 56 35
420 120 84 70 52,5 52,5
420 120 84 84 56 35
 
Beste mensen, hartelijk dank voor alle hulp!

@Sylvester-ponte; @WHER: hoe kan ik in het bestand van WHER de formule aanpassen zodat ook de dubbele waarden meegenomen worden?
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan