| | Post: 6 | Registrato il: 17/06/2019
| Città: MILANO | Età: 19 | Utente Junior | Microsoft Office 2013 | | OFFLINE | |
|
24/04/2020 18:51 | |
Salve a tutti. Volevo sapere come posso generare 8 numeri casuali (ma anche di più o meno, a scelta insomma) tra due numeri aventi tre cifre decimali, senza ripetizioni, ovvero i numeri ottenuti devono essere tutti diversi tra loro.
Ad es 8 numeri compresi tra 10,134 e 10,467.
Ho provato con la funzione casuale tra ma ottengo numeri uguali tr loro a volte.
Grazie mille a chi mi risponderà. |
|
| | Post: 703 | Registrato il: 15/01/2016
| Città: ROMA | Età: 51 | Utente Senior | 2016 | | OFFLINE |
|
24/04/2020 20:03 | |
Ciao
senza creare colonne di appoggio in B3 da trascinare in basso
=10+AGGREGA(15;6;RIF.RIGA($134:$467)/(CONTA.SE(B$2:B2;RIF.RIGA($134:$467))=0);CASUALE.TRA(1;334-CONTA.NUMERI(B$2:B2)))/1000
se la dovessi mettere in un'altra cella devi avere l'accortezza di cambiare l'intervallo del CONTA.SE(la parte in rosso cioè se la metti in A10 devi scrivere A$9:A9) e sopra la cella dove metti la formula non ci devono essere numeri
P.S. formatta in numero con 3 decimali [Modificato da DANILOFIORINI 24/04/2020 20:07] |
| | Post: 6 | Registrato il: 17/06/2019
| Città: MILANO | Età: 19 | Utente Junior | Microsoft Office 2013 | | OFFLINE | |
|
25/04/2020 08:15 | |
DANILOFIORINI, 24/04/2020 20:03:
Ciao
senza creare colonne di appoggio in B3 da trascinare in basso
=10+AGGREGA(15;6;RIF.RIGA($134:$467)/(CONTA.SE(B$2:B2;RIF.RIGA($134:$467))=0);CASUALE.TRA(1;334-CONTA.NUMERI(B$2:B2)))/1000
se la dovessi mettere in un'altra cella devi avere l'accortezza di cambiare l'intervallo del CONTA.SE(la parte in rosso cioè se la metti in A10 devi scrivere A$9:A9) e sopra la cella dove metti la formula non ci devono essere numeri
P.S. formatta in numero con 3 decimali
Ciao, grazie per la formula. Se volessi cambiare l'intervallo dei numeri? Ho visto che al posto del 10 posso mettere l'intero, ma per quanto riguarda i decimali mi sono perso, non riesco a variarli. Cambio l'intervallo in riferimento riga ma mi da errore, puoi dirmi come andare a modificare per cambiare i numeri dopo la virgola? grazie. |
| | Post: 704 | Registrato il: 15/01/2016
| Città: ROMA | Età: 51 | Utente Senior | 2016 | | OFFLINE |
|
25/04/2020 10:44 | |
Ciao
togliamo l'intero come hai capito....la richiesta era di generare casuali.tra 0,134 e 0,467 se hai bisogno di cambiare i numeri la generalizzo cosi numero A numero B
=INTERO+AGGREGA(15;6;RIF.RIGA($numA:$numB)/(CONTA.SE(B$2:B2;RIF.RIGA($numA:$numB))=0);CASUALE.TRA(1;NumB-NumA-CONTA.NUMERI(B$2:B2)))/1000 |
| | Post: 7 | Registrato il: 17/06/2019
| Città: MILANO | Età: 19 | Utente Junior | Microsoft Office 2013 | | OFFLINE | |
|
25/04/2020 11:45 | |
DANILOFIORINI, 25/04/2020 10:44:
Ciao
togliamo l'intero come hai capito....la richiesta era di generare casuali.tra 0,134 e 0,467 se hai bisogno di cambiare i numeri la generalizzo cosi numero A numero B
=INTERO+AGGREGA(15;6;RIF.RIGA($numA:$numB)/(CONTA.SE(B$2:B2;RIF.RIGA($numA:$numB))=0);CASUALE.TRA(1;NumB-NumA-CONTA.NUMERI(B$2:B2)))/1000
Buondì, grazie per la risposta. Ho provato la formula e funziona, solamente che a volte ottengo valori uguali tra loro, sbaglio io qualcosa?
|
| | Post: 706 | Registrato il: 15/01/2016
| Città: ROMA | Età: 51 | Utente Senior | 2016 | | OFFLINE |
|
25/04/2020 16:34 | |
Ciao
in effetti più sono i numeri e più c'è la possibilità di estrarre dei doppioni quindi bisogna usare una colonna di servizio e in rete se scrivi "casuale tra senza ripetizioni" trovi moltissimi esempi io propongo questa procedura in B1 e C1 mettiamo gli estremi all'interno dei quali estrarre i numeri casuali in A3 da trascinare in basso (eventualmente la colonna si può nasconderre)
=10+CASUALE.TRA(($B$1-INT($B$1))*10^3;($C$1-INT($C$1))*10^3)/10^3
Qui c'è il valore dell'intero fisso (ma eventualmente si può rendere dinamico)
in B3 da trascinare in basso
=SE.ERRORE(INDICE($A$3:$A$102;CONFRONTA(0;INDICE(CONTA.SE($B$2:B2;$A$3:$A$102&""););0));"")
ho trascinato per 100 righe ma puoi farne di meno oppure impostare un numero max di righe da visualizzare...fai sapere |
| | Post: 8 | Registrato il: 17/06/2019
| Città: MILANO | Età: 19 | Utente Junior | Microsoft Office 2013 | | OFFLINE | |
|
25/04/2020 16:51 | |
DANILOFIORINI, 25/04/2020 16:34:
Ciao
in effetti più sono i numeri e più c'è la possibilità di estrarre dei doppioni quindi bisogna usare una colonna di servizio e in rete se scrivi "casuale tra senza ripetizioni" trovi moltissimi esempi io propongo questa procedura in B1 e C1 mettiamo gli estremi all'interno dei quali estrarre i numeri casuali in A3 da trascinare in basso (eventualmente la colonna si può nasconderre)
=10+CASUALE.TRA(($B$1-INT($B$1))*10^3;($C$1-INT($C$1))*10^3)/10^3
Qui c'è il valore dell'intero fisso (ma eventualmente si può rendere dinamico)
in B3 da trascinare in basso
=SE.ERRORE(INDICE($A$3:$A$102;CONFRONTA(0;INDICE(CONTA.SE($B$2:B2;$A$3:$A$102&""););0));"")
ho trascinato per 100 righe ma puoi farne di meno oppure impostare un numero max di righe da visualizzare...fai sapere
Ho provato cambiando i numeri e così funziona a dovere!
Grazie mille per il tempo che ci hai dedicato, sei stato molto gentile. |
| | Post: 5.884 | Registrato il: 14/11/2004
| Utente Master | Office 2019 | | OFFLINE |
|
25/04/2020 17:36 | |
Ciao Per avere la sicurezza dei numeri non ripetuti dovresti usare il VBA che controlla i numeri usciti con Cstr().
un estratto del VBA
Sub trova()
Dim RndColl As New Collection, Num As Integer
Dim i As Long, rng As Range, cl, dat(1 To 60)
i = 1
Worksheets("Foglio1").Activate
Set rng = Range("E2:j10")
For Each cl In rng
dat(i) = cl.Value
i = i + 1
Next cl
i = 1
Worksheets("Foglio2").Activate
Range("A2:B6").ClearContents
Do Until RndColl.Count = 3
Randomize
Num = Int(60 * Rnd + 1)
On Error Resume Next
RndColl.Add Num, CStr(Num)
On Error GoTo 0
Cells(i, 2) = Num
Cells(i, 1) = dat(Num)
i = i + 1
Loop
End Sub
questa macro genera numeri casuali da 1 a 60 senza ripetizioni
vedi se puoi adattarla
Ciao By Sal
se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui |
| | Post: 708 | Registrato il: 15/01/2016
| Città: ROMA | Età: 51 | Utente Senior | 2016 | | OFFLINE |
|
25/04/2020 19:16 | |
Buonasera
Ciao SAL anche con la seconda procedura proposta c'è la certezza di non avere ripetizione in quanto estraggo la lista univoca dei numeri creati con CASUALE.TRA |
| | Post: 5.885 | Registrato il: 14/11/2004
| Utente Master | Office 2019 | | OFFLINE |
|
26/04/2020 08:03 | |
Ciao Danilo, la mia era solo una soluzione alternativa, le formule come ho detto altre vole per me fino ad un certo punto le comprendo ma poi diventano scrutta araba o cirillica.
Anzi sono stupito di ciò che riesci a tirare fuori con le formule vorrei esserne anche io capace, mi eviterebbe di scrivere tanto codice.
ciao By Sal
[Modificato da by sal 26/04/2020 08:04] se ti piace la soluzione sostienici con una DONAZIONE a piacere. Grazie clicca qui |
| | Post: 710 | Registrato il: 15/01/2016
| Città: ROMA | Età: 51 | Utente Senior | 2016 | | OFFLINE |
|
26/04/2020 10:52 | |
Ciao
@Sal mica voleva essere un appunto.....ci mancherebbe benvengano soluzioni alternative...nell'atrofia celebrale da quarantena avevo supposto che pensavi che con la procedura proposta si potevano sviluppare doppi....
un saluto e a presto |
|
|