Generazione di nomi univoci e sequenziali (Microsoft Excel)
Steven sta testando alcuni software e ha bisogno di inserire nel programma un mucchio di nomi “falsi”. Vorrebbe che questi nomi fossero modellati come Nameaaa, Nameaab, Nameaac e così via attraverso Namezzz. Ciò richiederebbe la creazione di 17.576 nomi (26 x 26 x 26). Si chiede se esiste un modo semplice per generare tutti questi nomi in Excel.
Questo tipo di attività ripetitiva richiede solo una macro. (Sono ottimi per svolgere attività noiose, noiose e ripetitive che non si desidera eseguire manualmente.) Il Listato 1 mostra una semplice macro che può svolgere il lavoro necessario.
Listing 1. Macro CreateNames.
Sub CreateNames() Dim i As Integer Dim x As Integer Dim y As Integer Dim z As Integer i = 1 For x = 97 To 122 For y = 97 To 122 For z = 97 To 122 Cells(i, 1) = "Name" & Chr(x) _ & Chr(y) & Chr(z) i = i + 1 Next Next Next End Sub
La macro utilizza tre variabili (x, yez) per fungere da “contatori” che controllano quale lettera dell’alfabeto viene aggiunta al “nome” inserito in una cella. Si noti che i cicli For … Next vanno da 97 a 122, che sono i codici ASCII per le lettere dalla a alla z minuscola.
Se non vuoi usare una macro per qualche motivo, digita la seguente formula nella cella A1 di un foglio di lavoro vuoto:
="Name" & CHAR((ROW()-1)/676+97)&CHAR(MOD( (ROW()-1)/26,26)+97)&CHAR(MOD(ROW()-1,26)+97)
Questa è una singola formula e risulta nella visualizzazione di “Nameaaa”.
Copia la formula fino alla riga 17.576 e avrai i tuoi nomi falsi.
_Nota: _
Se desideri sapere come utilizzare le macro descritte in questa pagina (o in qualsiasi altra pagina dei siti ExcelTips), ho preparato una pagina speciale che include informazioni utili.
ExcelTips è la tua fonte di formazione economica su Microsoft Excel.
Questo suggerimento (12129) si applica a Microsoft Excel 2007, 2010, 2013 e 2016.
Puoi trovare una versione di questo suggerimento per la vecchia interfaccia del menu di Excel qui: