Generare stringhe casuali di caratteri

Nicola sta cercando di convincere Excel a scegliere 50 “codici” che contengono ciascuno otto caratteri casuali. I caratteri possono essere cifre o lettere (maiuscole o minuscole).

Se i tuoi numeri casuali dovessero essere numeri (solo cifre), generarli sarebbe facile. Tutto quello che dovresti fare è usare la funzione CASUALE.TRA in questo modo:

=CASUALE.TRA(10000000;99999999)

Questo non è ciò che vuole Nicola, però. Infatti i suoi “codici” casuali possono contenere anche lettere maiuscole e minuscole. Questo diventa un po’ più difficoltoso. Ci sono, tuttavia, diversi approcci che puoi usare.

Un approccio consiste nel mettere tutti i tuoi possibili caratteri in una singola cella, come B7:

ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789

Assegna a questa cella un nome, come Caratteri. È quindi possibile utilizzare una formula come la seguente per restituire la stringa casuale di caratteri:

=STRINGA.ESTRAI(Caratteri;CAUSALE.TRA(1;LUNGHEZZA(Caratteri));1)
& STRINGA.ESTRAI(Caratteri,CAUSALE.TRA(1;LUNGHEZZA(Caratteri));1)
& STRINGA.ESTRAI(Caratteri,CAUSALE.TRA(1;LUNGHEZZA(Caratteri));1)
& STRINGA.ESTRAI(Caratteri,CAUSALE.TRA(1;LUNGHEZZA(Caratteri));1)
& STRINGA.ESTRAI(Caratteri,CAUSALE.TRA(1;LUNGHEZZA(Caratteri));1)
& STRINGA.ESTRAI(Caratteri,CAUSALE.TRA(1;LUNGHEZZA(Caratteri));1)
& STRINGA.ESTRAI(Caratteri,CAUSALE.TRA(1;LUNGHEZZA(Caratteri));1)
& STRINGA.ESTRAI(Caratteri,CAUSALE.TRA(1;LUNGHEZZA(Caratteri));1)

La formula è lunga. E’ stata suddivisa in singole righe per chiarezza, ma è ancora un’unica formula. Concatena otto caratteri estratti dai dati che hai inserito nella cella B7.

Un altro modo per usare i Nomi definiti è definire ad esempio L come:

=STRINGA.ESTRAI("abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYD1234567890";CASUALE.TRA(1;62);1)

quindi definire, ad esempio, S come

=L&L&L&L&L&L&L&L

quindi copiare =S 50 volte e copia/incolla come valori per interromperne il ricalcolo.
Sarebbe quindi facile digitare nuovamente =S quando fossero necessarie nuove stringhe.

A meno che non si copino le formule e si incolli come valori, ciascuno degli approcci presentati finora presenta uno svantaggio: vengono rigenerati ogni volta che il foglio di lavoro viene ricalcolato. Pertanto, è difficile avere una singola stringa casuale generata che non cambierà. Il modo migliore per aggirare questo problema è utilizzare una macro, ma non si desidera necessariamente utilizzare una funzione definita dall’utente. Come mai? Perché anch’essa cambierebbe il suo risultato ogni volta che il foglio di lavoro venga ricalcolato. Invece, hai bisogno di una macro che inserirà le stringhe casuali nella tua cartella di lavoro a partire da una posizione specifica della cella. Quello che segue è un esempio di tale macro:

Questo contenuto è riservato agli abbonati

Solo gli utenti con Abbonamento VBA Coder oppure Ultimate possono visionarlo.

Se sei già abbonato Accedi per sbloccare il contenuto!

In caso contrario abbonati qui! L'abbonamento è conveniente.

E puoi interromperlo in ogni momento e in completa autonomia.

(puoi renderti conto di quanti siano i contenuti riservati

raggiungendo questa pagina)

Tags: , , , , , , , , , , , ,

Ti è stato utile?