Creare lista codici casuali

Una lista codici casuali può esserci utile se vogliamo schermare le informazioni sensibili sui nostri utenti verso terzi.

Assumiamo per esempio di avere una lista di email collegata con l’età, il luogo di residenza e il sesso della persona. Magari vogliamo condividere una lista di codici che noi sappiamo essere uguali agli uomini con una certa età in una certa zona ma non vogliamo diffondere queste informazioni sensibili. Chi riceverà la lista di codici non potrà scoprire queste informazioni, che saranno solo di nostra pertinenza.

Questa parte può essere utile anche per creare statistiche di vendita nelle quali scopriamo che l’utente X!14E ha fatto 5 acquisti sul nostro e-commerce, dato che magari non vogliamo condividere con chi ci ha creato il sistema di analisi delle informazioni sensibili. Noi sappiamo che si chiama Luca, abita fuori Siena e ha 25 anni – chi analizza i dati non potrebbe mai risalire a queste informazioni, ma può comunque dirci quanti acquisti ha fatto e di che genere.

Excel ha due funzioni che sono collegate con elementi casuali. Purtroppo, CASUALE è solo un numero casuale mentre CASUALE.TRA indica solo un numero in un intervallo definito (ad esempio fra 1 e 12). Per creare codici alfanumerici, dovremo creare un sistema ad hoc.

Database di partenza

Microsoft_Excel_Codici_Casuali_Master
Questo è il nostro database di partenza.

Abbiamo quindi una lista con Nome, Sesso, Età, Email e Luogo. Ora dobbiamo creare gli elementi che andranno a comporre i codici associati ai singoli utenti.

Creazione liste per codici

Microsoft_Excel_Codici_Casuali_Alfabeto
In questo caso specifico, sono 4 elementi diversi.

Un trucco per avere una lista di tutta l’alfabeto è utilizzare la funzione CODICE.CARATT a partire dal numero 65, che corrisponde alla A.  Trascinando la formula, avremo tutti i caratteri dell’alfabeto. Questi rappresenteranno il nostro primo elemento.

Il secondo elemento sono alcuni elementi di punteggiatura e valuta.

Il terzo elemento sono i numeri da 1 a 25. Se volessimo avere tutti codici con la stessa lunghezza (numero di caratteri) dovremo limitarci ai numeri da 0 a 9.

Il quarto e ultimo elemento sono nuovamente i codici per l’alfabeto, ma potremmo inserire qualsiasi altra cosa.

Creazione codici casuali

Microsoft_Excel_Codici_Casuali_Finale
Versione finale con i codici per singolo utente.

L’artificio è quello di utilizzare la funzione CONCATENA per collegare fra di loro tutti gli elementi. Nelle versioni più recenti di Excel, è consigliato utilizzare la funzione CONCAT che ne è l’evoluzione. Per individuare gli elementi, dovremo utilizzare la combinazione delle funzioni INDICE e CASUALE.TRA. Andiamo più nel dettaglio.

CONCATENA mette assieme diversi valori. Se creo una funzione con =CONCATENA(20;10) il valore risultante sarà 2010.

INDICE individua un valore all’interno di un elenco. Per scoprire come collegarla con la funzione CONFRONTA, suggerisco questo articolo. Mettiamo di voler identificare il valore in terza posizione di un elenco.

Microsoft_Excel_Codici_Casuali_Indice_Casuale_Tra

In sostanza INDICE([intervallo];[posizione];0) è ciò che ci interessa.

Nel nostro caso dei codici il ragionamento è simile: INDICE mi individua un valore all’interno di un elenco basandosi sulla funzione CASUALE.TRA che mi segnala un numero casuale in un certo intervallo. Quindi per il primo elemento inseriremo la funzione CASUALE.TRA(1;26) per indicare che ci serve un valore fra 1 e 26 (da A a Z), mentre per il secondo elemento inseriremo CASUALE.TRA(1;5) perchè i valori sono solo 5 (! $ etc) e così via.

Microsoft_Excel_Codici_Casuali_Finale

Come sempre, ecco il file da scaricare con l’esempio proposto. Dato che le formule sono ancora attive, potresti vedere dei codici diversi da quelli indicati nelle immagini dell’articolo.

Un dettaglio per la formula:

=CONCATENA(
INDICE(LIST!$C$2:$C$27;CASUALE.TRA(1;26);0);
INDICE(LIST!$E$2:$E$6;CASUALE.TRA(1;5);0);
INDICE(LIST!$G$2:$G$26;CASUALE.TRA(1;25);0);
INDICE(LIST!$I$2:$I$27;CASUALE.TRA(1;26)))

Chiaramente l’ultimo INDICE della colonna I potrebbe essere sostituito con il primo INDICE della colonna C, dato che si parla dello stesso elenco.

Per un utente esperto di Excel un’alternativa potrebbe essere rappresentata, per rendere la funzione più scalabile, dalla combinazione fra SCARTO, CASUALE.TRA e CONTA.VALORI.

4 commenti su “Creare lista codici casuali”

  1. vittorio broll

    salve volevo chiedere come faccio a risolvere il mio problema di inserire il simbolo euro nella mia formula grazie
    =TESTO.UNISCI(” “;128;SE(SPESA!C4:C28=C10;SPESA!F4:F28;””))

    1. Ciao Vittorio,

      spero di aver capito bene – puoi o cambiare il formato della cella (consigliabile) oppure incapsulare la formula.

      Caso 1: cambi il formato in qualcosa del tipo € #,00;-€ #,00;; il che significa che hai sempre un € per il numero positivo e negativo (con due decimali), altrimenti vuoto

      Caso 2: con la funzione TESTO puoi trasformare le formule modificando la visualizzazione. Ad esempio =TESTO(C2;”€ #,00″) trasforma il contenuto in C2 in un testo che viene visualizzato con l’euro prima, ma in questo caso diventa un testo e non più un numero.

      Spero di esserti stato utile!

      A presto,

      Marco

  2. è possibile creare codici casuali avendo pero fisse le prime 4 cifre numeriche e le due finali in lettere? mi spiego meglio, dovrei sostituire i codici prodotto in una tabella di excel parecchio lunga, vorrei che i codici prodotto del fornitore fossero sostituiti dai “miei codici” prodotto che dovrebbero essere “1234aa” meglio ancora “ab” (dove AB iniziale è il codice fornitore) e poi “1234aa” come codice prodotto ..

    1. Ciao Monica,

      grazie per la domanda!

      Certo, se la prima parte è fissa e ti servono 2 caratteri testuali potresti fare:

      =CONCATENA(1234;INDICE(LIST!$I$2:$I$27;CASUALE.TRA(1;26));INDICE(LIST!$I$2:$I$27;CASUALE.TRA(1;26)))

      Se invece devi prendere dei dati da un’anagrafica, puoi combinare sempre il concatena iniziale con 1234 e poi un CERCA.VERT o INDICE CONFRONTA.

      Spero di esserti stato utile!

      A presto,

      Marco

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *