Solo per curiosita', io per inserire la clausola di una sola occorrenza dei valori all' interno di una colonna ho fatto cosi':
In B70 ho inserito la formula
- Codice: Seleziona tutto
=3*MAX(CONTA.SE(B45:B54;MATR.TRASPOSTA(B45:B54)))
Da confermare con Contr-Maiusc-Enter; poi copiato B70 in C70:M70
Nota: Ho usato "3*" per "amplificare" un risultato diverso da 1.
In N70 ho sommato questi valori
- Codice: Seleziona tutto
=SOMMA(B70:M70)
Ho inserito N70 nella formula in P6, che quindi e' diventata
- Codice: Seleziona tutto
=3*DEV.ST.VALORI(P13:P19)+ N70
A questo punto puoi avviare il risolutore con le impostazioni da te gia' inserite, ma dandogli "tutto il tempo che vuole" (da impostare in Opzioni, tab Evolutivo, Tempo massimo senza miglioramento).
Dopo 1000 secondi mi ha calcolato una combinazione con solo 2 colonne contenenti un duplicato; magari dopo 10000 avrebbe trovato un ulteriore miglioramento con 1 solo duplicato (non l' ho provato) e dopo 100.mila nessun duplicato ("magari").
Teoricamente si dovrebbe poter impostare un vincolo direttamente sulla cella N70, ponendolo uguale a 36 (3*12), ma non ho avuto la prova che le formule intermedie vengono correttamente valutate prima di proporre un risultato; inoltre usare B70:M70 per innalzare il risultato di P6 di cui il risolutore deve cercare il minimo aiuta a "mantenere vivo" il processo del "risolutore" stesso, che mentre cerca effettivamente ogni tanto trova un risultato migliore del precedente facendo ripartire il calcolo del timeout.
Quanto all' ulteriore vincolo sulle celle BB39 e BC39, dovresti impostare ulteriori vincoli sul risolutore; dando per scontato che esiste una situazione che rispetta anche quei vincoli.
Penso che se il processo e' ben circoscrivibile, con delle regole che consentano di applicare algoritmi di stima che non siano solo "casuali", una macro possa essere piu' efficace (ma meno generica).
Inoltre se il risultato che cerchi ha un valore commerciale, potresti valutare l' upgrade dal risolutore basic (quello inserito in Excel) a uno professionale della Frontline Systems (vedi
http://www.solver.com).
Ciao