Pagina precedente | 1 | Pagina successiva
Vota | Stampa | Notifica email    
Autore

Generare valori casuali tra due numeri decimali senza ripetizioni

Ultimo Aggiornamento: 26/04/2020 10:52
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

Re:
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

Numeri casuali
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 [SM=x423051]


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

Numeri casuali
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 [SM=x423051]

[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
Vota:
Amministra Discussione: | Chiudi | Sposta | Cancella | Modifica | Notifica email Pagina precedente | 1 | Pagina successiva
Nuova Discussione
 | 
Rispondi
Cerca nel forum
Tag discussione
Discussioni Simili   [vedi tutte]
Feed | Forum | Bacheca | Album | Utenti | Cerca | Login | Registrati | Amministra
Tutti gli orari sono GMT+01:00. Adesso sono le 05:45. Versione: Stampabile | Mobile | Regolamento | Privacy
FreeForumZone [v.6.1] - Copyright © 2000-2024 FFZ srl - www.freeforumzone.com