Generazione di nomi univoci e sequenziali (Microsoft Excel)
Steven sta testando un 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 compiti noiosi, noiosi e ripetitivi che non vuoi eseguire manualmente.) Ecco una semplice macro che può fare il lavoro necessario:
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 contatore (x, yez) per fungere da “variabili contatore” 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 (12128) si applica a Microsoft Excel 97, 2000, 2002 e 2003.
Puoi trovare una versione di questo suggerimento per l’interfaccia a barra multifunzione di Excel (Excel 2007 e versioni successive) qui: