| | Post: 738 | Registrato il: 02/04/2018
| Città: PESCARA | Età: 75 | Utente Senior | EXCEL 2016 - SPREAD32 | | ONLINE |
|
29/07/2023 16:06 | |
Ciao a tutti
in una colonna, per esempio A, ho una serie di valori numerici, OPPURE di nomi, il tutto senza un ordine preciso
nella colonna a fianco che formula si potrebbe usare che rimescoli casualmente l'ordine dei valori di A ?
Grazie
Leo
LEO
https://t.me/LordBrum |
|
| | Post: 4.942 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Master | Excel 365 | | OFFLINE |
|
29/07/2023 16:13 | |
Crea una tabella con ID e nomi.
Poi guarda qui
https://www.excelpertutti.com/estrattore-casuale-numeri-casuali-excel/
per creare una sequenza di numeri casuali senza ripetizione ed a fianco ci metti dei CERCA.VERT() che vanno a pescare sulla prima tabella.
Oppure si può fare con il VBA ma devi comunque avere una tabella dei nomi ciascuno con un suo ID univoco. [Modificato da alfrimpa 29/07/2023 16:35]
Alfredo |
| | Post: 738 | Registrato il: 02/04/2018
| Città: PESCARA | Età: 75 | Utente Senior | EXCEL 2016 - SPREAD32 | | ONLINE |
|
29/07/2023 16:36 | |
ah, grazie Alfredo
perchè non ci ho pensato prima ?
Leo
LEO
https://t.me/LordBrum |
| | Post: 739 | Registrato il: 02/04/2018
| Città: PESCARA | Età: 75 | Utente Senior | EXCEL 2016 - SPREAD32 | | ONLINE |
|
29/07/2023 16:48 | |
bene, sono andato al sito indicato e ho eseguito la prima parte
ma poichè tenevo aperta già un'altra pagina ho usato una formula con CONFRONTA
sembra che funzioni
nell'allegato premere F9
Thanks
Leo
LEO
https://t.me/LordBrum |
| | Post: 4.943 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Master | Excel 365 | | OFFLINE |
|
30/07/2023 15:48 | |
Ciao Leo
A solo scopo didattico ti propongo questa macro; in colonna A id numerici ed in colonna B dei nomi
vb Sub univociCasuali()
Dim riga As Integer
Dim casual As Integer
Dim numero As Variant
Dim I As Integer
Dim elenco As New Collection
On Error Resume Next
riga = 1
For I = 1 To 20
casual = WorksheetFunction.RandBetween(1, 10)
elenco.Add casual, CStr(casual)
Next I
For Each numero In elenco
Cells(riga, 7).Value = WorksheetFunction.VLookup(numero, Range("a1:b100"), 2, False)
riga = riga + 1
Next numero
End Sub
[Modificato da alfrimpa 30/07/2023 15:49]
Alfredo |
| | Post: 740 | Registrato il: 02/04/2018
| Città: PESCARA | Età: 75 | Utente Senior | EXCEL 2016 - SPREAD32 | | ONLINE |
|
30/07/2023 17:18 | |
grazie, pisolavo e non ho visto
ho applicato ma qualcosa non quadra
tu stesso dici in A numeri e e in B nomi
Ho fatto ma randomizza solo i nomi e non i numeri
cioè cosa deve fare ?
ti rimando il file così puoi vedere se ho scritto male, ma nella macro ho fatto piccola variazione senza esito
Leo
LEO
https://t.me/LordBrum |
| | Post: 4.944 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Master | Excel 365 | | OFFLINE |
|
30/07/2023 17:23 | |
Scusami ma non ho capito cosa c'è che non va.
A me pare che vada bene.
Scrivi solo For i = 1 to 100 e riesegui la macro
Alfredo |
| | Post: 3.543 | Registrato il: 06/04/2013
| Utente Master | 2010 | | OFFLINE |
|
30/07/2023 17:24 | |
ciao Leo
in questa istruzione:
Cells(riga, 7).Value = WorksheetFunction.VLookup(numero, Range("a1:b20"), 2, False)
sostituisci 2 con 1 per ottenere il mix della colonna 1
ma non entro nel merito del codice che mi sembra non restituisca tutto
saluti
[Modificato da dodo47 30/07/2023 17:27] Domenico
Win 10 - Excel 2016 |
| | Post: 741 | Registrato il: 02/04/2018
| Città: PESCARA | Età: 75 | Utente Senior | EXCEL 2016 - SPREAD32 | | ONLINE |
|
30/07/2023 17:29 | |
buon pomeriggio ad entrambi
Alfredo
sì , non ho immaginato di dover scrivere da 1 a 100
per Dodo
sì, mi sono accorto un attimo in ritardo della cosa furbesca
interessante
grazie
Leo
LEO
https://t.me/LordBrum |
| | Post: 3.544 | Registrato il: 06/04/2013
| Utente Master | 2010 | | OFFLINE |
|
30/07/2023 17:34 | |
ciao
potrebbe non essere sufficiente Leo
Tu hai bisogno (da esempio) di 20 numeri casuali tra 1 e 20
Piuttosto che implementare il For fino a 100, converrebbe eliminare il ciclo for e al suo posto mettere:
Do Until elenco.Count = 20
casual = WorksheetFunction.RandBetween(1, 20)
elenco.Add casual, CStr(casual)
Loop
On error GoTo 0 ' <<<<<<<<<<<<< ripristinare gli errori!!!
saluti
[Modificato da dodo47 30/07/2023 17:35] Domenico
Win 10 - Excel 2016 |
| | Post: 742 | Registrato il: 02/04/2018
| Città: PESCARA | Età: 75 | Utente Senior | EXCEL 2016 - SPREAD32 | | ONLINE |
|
30/07/2023 17:37 | |
tanto per ridere sotto il sole chiederei ad Alfredo se mai immagina perchè ho posto questo quesito stupido.
Ma non conviene approfondire il quesito perchè qualcuno in altro posto rischierebbe il crossposting, causato da me
Leo
LEO
https://t.me/LordBrum |
| | Post: 743 | Registrato il: 02/04/2018
| Città: PESCARA | Età: 75 | Utente Senior | EXCEL 2016 - SPREAD32 | | ONLINE |
|
30/07/2023 17:42 | |
dodo47, 30/07/2023 17:34:
Piuttosto che implementare il For fino a 100, converrebbe eliminare il ciclo for e al suo posto mettere:
Do Until elenco.Count = 20
casual = WorksheetFunction.RandBetween(1, 20)
elenco.Add casual, CStr(casual)
Loop
On error GoTo 0 ' <<<<<<<<<<<<< ripristinare gli errori!!!
fatto,corretto, funziona
grazie
Leo
LEO
https://t.me/LordBrum |
| | Post: 4.945 | Registrato il: 21/06/2013
| Città: NAPOLI | Età: 70 | Utente Master | Excel 365 | | OFFLINE |
|
30/07/2023 17:58 | |
@Dodo47
Domenico con i cicli Do non usandoli quasi mai ho poca dimestichezza.
Mi ci devo fare un po' le ossa.
Alfredo |
| | Post: 744 | Registrato il: 02/04/2018
| Città: PESCARA | Età: 75 | Utente Senior | EXCEL 2016 - SPREAD32 | | ONLINE |
|
30/07/2023 18:04 | |
alfrimpa, 30/07/2023 17:58:
@Dodo47
Domenico con i cicli Do non usandoli quasi mai ho poca dimestichezza.
Mi ci devo fare un po' le ossa.
basta tener presente che il ciclo FOR si usa quando ilnumero degli elementi si conosce a priori
il ciclo DO si usa quando il numero degli elementi è sconosciuto e quindi per raggiungerlo è necessario aspettare il verificarsi di una certa condizione
è piuttosto una questione di semplice allenamento a usarlo
Leo
LEO
https://t.me/LordBrum |
|
|