Generazione di dati di test casuali (Microsoft Excel)
Quando sviluppi fogli di lavoro che verranno utilizzati da altre persone, dovresti testarli per assicurarti che funzionino come previsto.
Ciò è particolarmente vero per i fogli di lavoro che contengono formule complesse o verranno utilizzati per scopi critici. Il concetto di test di un foglio di lavoro significa che sarà necessario generare una sorta di dati da utilizzare per testare il foglio di lavoro.
Sono stati scritti interi libri sulla creazione di suite di test per il software. Il livello di rigore nella compilazione dei dati dei test dipende, in gran parte, dalle esigenze del pubblico e dalla natura del foglio di lavoro.
Sfortunatamente, non esiste una soluzione rapida che capisca automaticamente di cosa hai bisogno e generi i dati per te. Tuttavia, in Excel sono disponibili strumenti che è possibile utilizzare a tal fine.
Innanzitutto, se è necessario generare valori numerici casuali, è possibile utilizzare le funzioni del foglio di lavoro RAND o RANDBETWEEN. La differenza è che RAND genera un valore compreso tra 0 e 1 e RANDBETWEEN genera valori interi tra i limiti impostati.
Tuttavia, i dati casuali potrebbero non essere appropriati per le tue esigenze di test. Ciò è particolarmente vero quando stai testando i limiti delle tue formule.
Ad esempio, test con valori grandi, piccoli o una combinazione di valori grandi e piccoli. Allo stesso modo, potresti voler testare valori inappropriati, come l’utilizzo di testo come input anziché numeri (o viceversa). Ci sono un intero contingente di condizioni su cui devi riflettere e quindi scegliere il tipo di dati adatto alle tue esigenze.
Se preferisci, puoi utilizzare le macro per generare dati di test. La macro seguente riempie un intervallo selezionato di celle con un valore numerico casuale, compreso tra i limiti (minimo e massimo) impostati.
Sub RandNums() Dim MyRange As Range Dim lMin As Long, lMax As Long Dim dRand As Double ' If selection is not Excel Range If TypeName(Selection) <> "Range" Then Exit Sub Set MyRange = Selection ' Get Min and Max value lMin = CLng(InputBox("Minimum?")) lMax = CLng(InputBox("Maximum?")) Randomize Application.ScreenUpdating = False For Each c In MyRange.Cells ' Calculate random value, where ' Value >= Min And Value <= Max dRand = Rnd * (lMax - lMin) + lMin ' Use the following line only if the random ' value should be an integer ' dRand = Int(dRand) c.Value = dRand Next c Application.ScreenUpdating = True End Sub
Per utilizzare la macro, seleziona semplicemente un intervallo di celle che desideri contenere valori numerici casuali, quindi esegui la macro. Se è necessario utilizzare valori interi nelle celle, è possibile “rimuovere il commento” dalla riga annotata all’interno della macro.
Se desideri riempire un intervallo di celle con date casuali, una leggera modifica alla macro RandNums risulta come segue.
Sub RandDates() Dim MyRange As Range Dim dtMin As Date, dtMax As Date Dim dtRand As Date ' If selection is not Excel Range If TypeName(Selection) <> "Range" Then Exit Sub Set MyRange = Selection ' Get Min and Max value ' From: 1/1/1990 (put your start Date) dtMin = #1/1/1990# ' To: Today dtMax = Date Randomize Application.ScreenUpdating = False For Each c In MyRange.Cells ' Calculate random value, where ' Value >= Min And Value <= Max dtRand = Rnd * (dtMax - dtMin) + dtMin dtRand = Int(dtRand) c.Value = dtRand ' Change format for cell, below, as desired c.NumberFormat = "m/d/yyyy" Next c Application.ScreenUpdating = True End Sub
Di nuovo, seleziona un intervallo e quindi esegui la macro. È possibile modificare i valori iniziali impostati sulle variabili dtMin e dtMax per specificare i limiti per le date desiderate. È inoltre possibile, se lo si desidera, modificare la formattazione applicata alle celle dopo che la data casuale è stata memorizzata all’interno delle celle.
_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 (2077) si applica a Microsoft Excel 97, 2000, 2002 e 2003. Puoi trovare una versione di questo suggerimento per l’interfaccia a nastro di Excel (Excel 2007 e versioni successive) qui: