Condividi:        

AIUTO. RISOLUTORE EXCEL INTERI

Vuoi potenziare i tuoi documenti Word? Non sai come si fa una macro in Excel? Devi creare una presentazione in PowerPoint?
Oppure sei passato a OpenOffice e non sei sicuro di come lavorare al meglio?

Moderatori: Anthony47, Flash30005

AIUTO. RISOLUTORE EXCEL INTERI

Postdi cico96 » 24/01/14 11:26

salve a tutti.

sto cercando di risolvere un problema con il risolutore di excel:
vorrei ottenere il minimo di un di una cella facendo variare i valori interi contenuti in una matrice.
Però voglio che nella stessa colonna della matrice non compaiano mai due interi uguali. (sulle righe i valori possono anche essere gli stessi).

sul risolutore per ora ho impostato:
tutte le celle variabili intere
tutte le celle >=1
tutte le celle <=1

come posso indicare il vincolo di univocità per le colonne?

ho bisogno di aiuto.

Grazie. (allego link excel)

https://app.box.com/s/5mkld7mx0hzzd1kpfnw1
cico96
Newbie
 
Post: 9
Iscritto il: 24/01/14 10:01

Sponsor
 

Re: AIUTO. RISOLUTORE EXCEL INTERI

Postdi cico96 » 24/01/14 11:40

scusate, c'è un errore di battitura. I vincoli che ho impostato sono
tutte le celle variabili intere
tutte le celle >=1
tutte le celle <=7
cico96
Newbie
 
Post: 9
Iscritto il: 24/01/14 10:01

Re: AIUTO. RISOLUTORE EXCEL INTERI

Postdi Flash30005 » 27/01/14 11:08

Non è molto chiaro quello che desideri ottenere
Rileggi ciò che hai scritto e dimmi se è chiaro per te
cico96 ha scritto:vorrei ottenere il minimo di un di una cella facendo variare i valori interi contenuti in una matrice


Il link non permette di scaricare il file ma solo di vedere un'immagine del foglio di Excel

ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: AIUTO. RISOLUTORE EXCEL INTERI

Postdi cico96 » 27/01/14 11:25

ciao, grazie dell'attenzione, cerco di essere più preciso.
(strano che non faccia scaricare il file, sul mio pc cliccando sul link compare l'immagine a tutto schermo ed una barra azzurra in alto con il bottone "scarica file". bisogna premere quello per ottenere il file excel...)
Guardando la sola immagine, sappi che le celle "MEDIA SOMMA" E "DEVSTD SOMMA" calcolano rispettivamente la media e la deviazione standard della colonna "SOMMA" appunto.
ciascuna cella della colonna somma calcola la sommatoria dei valori interi sulla stessa riga della tabella.
Sto impostando il risolutore di excel affinchè minimizzi la cella "DEVSTD SOMMA".
Però, come detto, vorrei che imporre la condizione al risolutore che non ci siano due numeri interi identici nella stessa COLONNA della tabella.

Qual'è la via più semplice per arrivare a tale soluzione matematica? Basta il risolutore o serve intraprendere altre vie (VBA)?

Grazie in anticipo.
cico96
Newbie
 
Post: 9
Iscritto il: 24/01/14 10:01

Re: AIUTO. RISOLUTORE EXCEL INTERI

Postdi cico96 » 27/01/14 11:28

in particolare nell'immagine in questione, su ogni colonna dovrebbero esserci tutti i seguenti numeri:
(1,2,3,4,5,6,7)

ciao.
cico96
Newbie
 
Post: 9
Iscritto il: 24/01/14 10:01

Re: AIUTO. RISOLUTORE EXCEL INTERI

Postdi Flash30005 » 27/01/14 17:25

Cioè vorresti questo? (che è una delle tante combinazioni possibili)
Immagine
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: AIUTO. RISOLUTORE EXCEL INTERI

Postdi cico96 » 27/01/14 17:28

magari !!!!! :-)
è così facile?
cico96
Newbie
 
Post: 9
Iscritto il: 24/01/14 10:01

Re: AIUTO. RISOLUTORE EXCEL INTERI

Postdi Flash30005 » 27/01/14 17:32

beh si, perché adesso puoi spostare le righe tra di loro e avere un'altra combinazione
es.: riga 9 la metti al posto della 10 a scorrere in basso e l'ultima (riga 15) la metti al posto della riga 9

Si può realizzare una macro che si fermerà tutte le volte che la Dev Standard arriva al valore 0 (zero)
ma non vedo l'utilità

ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: AIUTO. RISOLUTORE EXCEL INTERI

Postdi Flash30005 » 27/01/14 19:04

Aggiungo al post precedente che, forse, non si devono ripetere nemmeno i numeri in riga (oltre che in colonna)
allora la macro è necessaria e, a tal proposito, ho abbozzato questo codice
Codice: Seleziona tutto
Sub CompilaTab()
Rnd (Timer)
Ini0:
Contat = 0
Worksheets("Foglio1").Range("B9:E15").ClearContents
For RR = 9 To 15
IniC:
    Range(Cells(RR, 2), Cells(RR, 5)).ClearContents
    For CC = 2 To 5
Ini:
        Tr = 0
        NCas = Int(Rnd() * 7) + 1
        If Evaluate("=COUNTIF(Foglio1!B" & RR & ":E" & RR & "," & NCas & ")") > 0 Then GoTo Ini
        For RR1 = 9 To RR
            If Worksheets("Foglio1").Cells(RR1, CC).Value = NCas Then GoTo IniC
        Next RR1
        If Contat > 1000 Then GoTo Ini0
        Contat = Contat + 1
        Worksheets("Foglio1").Cells(RR, CC).Value = NCas
        If CC = 5 Then
            If Worksheets("Foglio1").Cells(RR, 6).Value <> 16 Then GoTo IniC
        End If
    Next CC
Next RR
End Sub


Ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: AIUTO. RISOLUTORE EXCEL INTERI

Postdi cico96 » 27/01/14 19:20

No.no.

Quello che ho postato è solo un esempio semplice ( forse scemo) per un problema analogo ma un po' più complesso che sto risolvendo. Le righe non possono essere cambiate tra loro. Il risolutore dovrebbe partire dalla tabella (A9:D15) vuota ed automaticamente giungere alla soluzione da te proposta (in questo caso una soluzione ovvia!! certo che si fa prima a mente che con il risolutore!).
Nel frattempo ho preso in considerazione alcune soluzioni che ho trovato su internet per risolvere automaticamente il sodoku con excel (in effetti un problema matematico simile...) ma bisogna scrivere una macro Vba...

Credi che si possa fare solo con il risolutore? O bisogna darsi alla programmazione?
(Ho voluto scocciare te perché credo che tu sia in gamba) :-)

Aspetto con curiosità cosa mi sai dire.

Intanto grazie comunque.
cico96
Newbie
 
Post: 9
Iscritto il: 24/01/14 10:01

Re: AIUTO. RISOLUTORE EXCEL INTERI

Postdi Flash30005 » 27/01/14 21:20

Forse non hai letto il mio ultimo post che propone una macro che adatterai alle nuove esigenze (range cambiato)
Se proponete una struttura dati per "semplificare" non fate altro che complicare la vita a noi e a voi stessi

comunque prova ad adattare la macro e fai sapere se incontri ostacoli

ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: AIUTO. RISOLUTORE EXCEL INTERI

Postdi cico96 » 27/01/14 22:25

Ciao.

Infatti ho risposto prima di leggere il tuo ultimo post.
Approfitto del consiglio e tenterò adattando la macro.
Intanto approfitto per fare i miei complimenti per il forum e per la tua conoscenza dei linguaggi di programmazione.
Un saluto e a presto.
cico96
Newbie
 
Post: 9
Iscritto il: 24/01/14 10:01

Re: AIUTO. RISOLUTORE EXCEL INTERI

Postdi Flash30005 » 28/01/14 04:22

l'hai letto ma non hai provato la macro, perché la macro fa proprio questo:
cico96 ha scritto:Il risolutore dovrebbe partire dalla tabella (A9:D15) vuota
ed automaticamente giungere alla soluzione ....

Pertanto prima di modificare la macro con altro schema di dati dovresti testarla sul foglio che hai inviato

ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: AIUTO. RISOLUTORE EXCEL INTERI

Postdi cico96 » 28/01/14 14:26

la macro è perfetta per risolvere l'esempio che ho postato.
l'unica pecca è che è troppo specifica per questo problema.
a questo punto provo a postare un caso simile ma più complesso. (segue link)

https://app.box.com/s/76wu6af2eqlpzjao8p37

in questo excel cerco sempre di trovare tramite il risolutore il minimo della cella Deviazione standard (P6) facendo variare le celle
B45:E47; F48:I50; J51:M51.
il risolutore utilizza il metodo evolutivo, le variabili sono solo numeri interi compresi tra 0 e 3.

Un vincolo della soluzione è che il valore "verifica monte ore giornaliere" sia uguale al valore "arrotondamento" (cioè nell'esempio: BA13=AZ13;BA14=AZ14;BA15=AZ15;BA16=AZ16)

sono ad un passo dalla soluzione (spero), manca solo di impostare un vincolo sul risolutore tale per cui i valori delle celle variabili sulla stessa colonna siano sempre diversi fra loro (es: B45 diverso da B46, diverso da B47; C45 diverso da C46, diverso da C47, ecc.)

c'è un modo per farlo funzionare senza cambiare radicalmente il procedimento di calcolo?
Scrivere una macro VBA per calcolare il tutto è ancora al di là della mia portata! :-(

Attendo consiglio.

Grazie.
cico96
Newbie
 
Post: 9
Iscritto il: 24/01/14 10:01

Re: AIUTO. RISOLUTORE EXCEL INTERI

Postdi Flash30005 » 28/01/14 15:21

Prova questa macro ma prima inserisci questa formula in N45
Codice: Seleziona tutto
=SOMMA(B45:M45)
e trascinala fino a N51

In un modulo inserisci il codice e avvialo
Codice: Seleziona tutto
Sub CompilaTab2()
RR = 47
Range("B45:M51").ClearContents
Ini0:
Rnd (Timer)
Contat = 0
If RR < 47 Then RR = 47
Range(Cells(RR - 2, 2), Cells(RR, 13)).ClearContents
For RR = 45 To 51
IniC:
    Range(Cells(RR, 2), Cells(RR, 13)).ClearContents
    For CC = 2 To 5
    CCC = CC
    If RR >= 48 And RR < 51 Then CCC = CC + 4
    If RR > 50 Then CCC = CC + 8
Ini:
        Tr = 0
        NCas = Int(Rnd() * 4)
        If Contat > 1000 Then
        GoTo Ini0
        End If
        Contat = Contat + 1
        If Application.WorksheetFunction.CountIf(Range(Cells(45, CCC), Cells(51, CCC)), NCas) > 0 Then GoTo IniC

        Cells(RR, CCC).Value = NCas
        If CC = 5 Then
            If Range("N" & RR).Value > 8 Or Range("N" & RR).Value < 1 Then GoTo IniC
        End If
    Next CC
Next RR
If Range("P6").Value > 1 Then GoTo Ini0
End Sub

Si può affinare e ottimizzare la Dev Standard ma procediamo per passi

Ciao

EDIT ore 16:00 - Modificata macro
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: AIUTO. RISOLUTORE EXCEL INTERI

Postdi cico96 » 28/01/14 16:10

il codice funziona ed è proprio carino (mi sembra di capire che bisognerà per forza creare una macro).
Certo non è la soluzione ai miei problemi: i vincoli non vengono rispettati, inoltre facendo un po' di tentativi nelle soluzioni non campare mai il numero 3...

hai voglia di provare a migliorarlo assieme?
cico96
Newbie
 
Post: 9
Iscritto il: 24/01/14 10:01

Re: AIUTO. RISOLUTORE EXCEL INTERI

Postdi Flash30005 » 28/01/14 16:12

Ho corretto, forse, dopo che hai prelevato la macro quindi copiala di nuovo e sostituisci alla precedente
Ho messo anche la nota EDIT

ciao
Flash
Win10 + Office 2010 Ita
"Fotografica" al servizio dell'immagine
Avatar utente
Flash30005
Moderatore
 
Post: 8517
Iscritto il: 27/09/07 11:44
Località: Roma +o-

Re: AIUTO. RISOLUTORE EXCEL INTERI

Postdi Anthony47 » 29/01/14 01:50

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)

Immagine

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
Avatar utente
Anthony47
Moderatore
 
Post: 19196
Iscritto il: 21/03/06 16:03
Località: Ivrea


Torna a Applicazioni Office Windows


Topic correlati a "AIUTO. RISOLUTORE EXCEL INTERI":


Chi c’è in linea

Visitano il forum: Nessuno e 36 ospiti