• 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.

Lastig puzzeltje

Status
Niet open voor verdere reacties.

NogGeenGuru

Gebruiker
Lid geworden
5 aug 2015
Berichten
130
Ik heb hier een nog al lastig "puzzeltje" waarvan ik graag zou willen dat excel automatisch voor mij maakt aangezien ik deze nog al vaak moet maken. Als iemand een oplossing heeft hoor ik het graag.

Dit is hoe het werkt:
-Ik heb 1 tot 20 getallen tussen de 1 en de 300.
-deze getallen moeten elk worden verdeeld in colomnen. Het maximale totale getal van de colommen max maximaal 400 zijn.
-als de 1 tot 20 getallen totaal 400 zijn komt er een colom bij. Dus al zijn de (zeg 20) getallen samen 1135 dan heb ik dus beschikking over 3 colommen van elk maximum 400.
-er zijn maximaal 6 colommen van 400 beschikbaar. De 20 getallen zullen dus ook nooit hoger worden dan 2400.

Hoe zorg ik er voor dat excel deze 20 getallen zelf in de colommen indeeld?
Iemand een idee??
 
Daar is simpel een macro voor te maken.
 
Zet dat eens in een bestandje waarin je aangeeft wat je precies wil bereiken.
 
Op zich was dat wel duidelijk maar graag een voorbeeld waar de groene hokjes al zijn ingevuld zodat we dat niet zelf hoeven te verzinnen.
 
Bekijk bijlage Verdelen van getallen over kolommen.xlsx
Edit: dit heb ik zelf gemaakt voordat de werkmap in post #5 beschikbaar was.

Hierbij mijn oplossingen. 2 Stuks nog wel! Ieder in een eigen werkblad van deze Excel werkmap.

Voor beide werkbladen geldt:
In Basic!A2 wordt een willekeurig getal tussen 1 en 20 getrokken. Deze komt ook in Advanced!A2.
Vervolgens worden vanaf Basic!B2 naar beneden zoveel willekeurige getallen tussen 1 en 300 getrokken. Deze gaan ook naar Advanced!B2 en verder naar beneden.
In C2 staat de som van die getallen (ter controle). Dit kan meer dan 2400 zijn.
In D2 staat nog even het maximum (400).
Voor mijn gemak had ik ook nog even de screenprints van jouw input opgenomen.

In werkblad Basic wordt elk getal telkens in de eerste kolom geplaatst waar dit nog kan zonder dat het maximum van 400 wordt overschreden.
In werkblad Advanced wordt telkens het grootste getal gezocht dat nog niet getrokken is en dat nog in de kolom past zonder het maximum van 400 te overschrijden.
Daartoe wordt in kolom L de index bijgehouden van de reeds getrokken getallen.
Verder zit er nog wat voorwaardelijke opmaak in om te signaleren als niet alle getallen in de 6 kolommen geplaatst konden worden.
In tabblad Basic worden dan ook nog de individuele getallen gemarkeerd die niet geplaatst konden worden.

Je kunt er naar hartelust mee spelen door telkens op F9 te drukken om nieuwe getallen te trekken.
Je kunt de resultaten met elkaar vergelijken, omdat beide werkbladen dezelfde getallen hanteren.

Geen van beide is de perfecte oplossing. Daartoe moeten alle mogelijke combinaties worden bekeken en dat kan in ieder geval niet zonder VBA.
Vaak levert de "Advanced" oplossing de betere resultaten (bijvoorbeeld een kolom minder, of meer getallen plaatsen als niet alles past).
In ieder geval zijn de "Advanced" formules een stuk ingewikkelder (matrixformules) dan de "Basic" formules.

Edit: beide oplossingen werken ook goed ingeval van dubbele waarden.

Nog een edit: merk op dat de formule in kolom 1 iets afwijkt van de formule in kolom 2 t/m 5 (die zijn ingevoerd in kolom 2 en doorgevoerd naar rechts en naar beneden). Dat geldt voor beide oplossingen.
 
Laatst bewerkt:
Mooi stukje werk Marcel :D
 
dankjewel marcel!
de opslossingen hoefde ook niet perfect te zijn als ze maar onder die 400 waren.
dit is perfect en precies wat ik nodig had. bedankt!:thumb:
 
Als de 20 getallen de reeks van 281 t/m 300 is, kom je op een totaal van 5810 uit. Wat doe je dan in dat geval? ;)
 
nou ginger, de 20 getallen zijn niet helemaal random. de 20 getallen zullen samen nooit meer dan 2400 zijn. maar door nieuwe innovaties moeten de 20 (voor heen losse stukken) nu worden opgedeeld in groepjes van 400.
 
marcel ik ben heel erg blij met je programmatje maar ik heb nog een keer je hulp nodig:o
ik heb hem ge probeert toe te passen maar krijg alleen de basic aan het werk.
de advanced staat gelinkt naar de basic (en ik denk ook naar het index kolommetje) en als ik ze probeerde los halen maakte ik de advanced alleen maar stuk :confused:
ik wil graag de 20 cijfers zelf kunnen invullen in de advanced zodat de totalen wat mooier uit komen. en ik merkte dat wanneer ik de advanced gebruik hij de getallen rangschikt van hoog naar laag.
dat is opzich prachtig maar zou het mogelijk zijn dat die getallen dan wel op de zelfde horizontale lijn worden geplaast als dat ze in het lijstje met de 20 getallen stonden?

ik hoop dat je ergens de tijd (en zin:P) kunt vinden om er voor mij nog naar te kijken:d
 
Bekijk bijlage Verdelen van getallen over kolommen - v2.xlsx
Bij deze. Ik heb gewoon een blok met kolommen toegevoegd en de oospronkelijke kolommen E t/m M verborgen.
Het was niet zo moeilijk want we hadden al een index in kolom L ...

Ik heb ook de willekeurige getallen weggehaald, dus gewoon zelf getallen invullen in kolom B.
A2 geeft nu het aantal ingevulde getallen.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan