Generera Random Test Data

November 6

När du utvecklar arbetsblad som kommer att användas av andra människor, bör du testa dessa kalkylblad för att säkerställa att de fungerar som du förväntar dig. Detta gäller särskilt kalkylblad som innehåller komplicerade formler eller kommer att användas för kritiska ändamål. Begreppet testa ett kalkylblad innebär att du kommer att behöva generera någon form av uppgifter som ska användas i testa arbetsbladet.

Hela böcker har skrivits om att sätta ihop testa sviter för mjukvara. Hur strikt är du i sammanställningen testdata beror till stor del, på behoven hos din målgrupp och vilken typ av kalkylbladet. Tyvärr, det finns ingen snabb universalmedel som automatiskt kommer att räkna ut vad du behöver och generera uppgifter för dig. Det finns verktyg i Excel, men som du kan använda mot detta syfte.

Först, om du behöver för att generera slumpmässiga siffervärden, kan du använda RAND eller SLUMP.MELLAN kalkylbladsfunktioner. Skillnaden är att RAND genererar ett värde mellan 0 och 1, och SLUMP.MELLAN genererar heltalsvärden mellan några gränser du anger.

Slumpmässiga uppgifter kanske inte är lämpliga för dina testbehov, dock. Detta gäller särskilt när du testar gränserna för dina formler. Exempelvis testar med stora värden, små värden, eller en kombination av stora och små värden. På samma sätt kan du vill testa för olämpliga värden, som att använda text som indata snarare än siffror (eller vice versa). Det finns en hel kontingent av villkor som du behöver för att tänka igenom, och sedan plocka den typ av data som är rätt för dina behov.

Om du vill kan du använda makron för att generera testdata. Följande makro fyller ett utvalt sortiment av celler med ett slumpmässigt numeriskt värde, mellan oavsett gränser (lägsta och högsta) som du ställer in.

Sub RandNums ()
Dim MyRange Såsom Range
Dim Lmin As Long, Lmax As Long
Dim dRand As Double

"Om valet inte är Excel Range
Om Typename (Selection) <> "Range" Då Exit Sub

Ställ MyRange = Val

"Get Min och Max värde
Lmin = CLng (InputBox ("Minimum?"))
Lmax = CLng (InputBox ("Maximum?"))

Slumpa
Application.ScreenUpdating = False

För varje c I MyRange.Cells
"Beräkna slumpmässigt värde, där
"Värde> = min och värde <= Max
dRand = Rnd * (Lmax - Lmin) + Lmin

'Använd följande rad endast om slump
"Värdet bör vara ett heltal
'DRand = Int (dRand)

c.Value = dRand
Nästa c

Application.ScreenUpdating = True
End Sub

Om du vill använda makrot, välj bara ett cellområde som du vill innehålla slump numeriska värden, och sedan köra makrot. Om du måste använda heltalsvärden i cellerna, så kan du "avkommentera" den noterade linjen inom makro.

Om du vill fylla ett cellområde med slumpmässiga datum, sedan en liten ändring till RandNums makro resultat i det följande.

Sub RandDates ()
Dim MyRange Såsom Range
Dim dtMin As Date, dtMax As Date
Dim dtRand As Date

"Om valet inte är Excel Range
Om Typename (Selection) <> "Range" Då Exit Sub

Ställ MyRange = Val

"Get Min och Max värde
"Från: 1990/01/01 (sätta din startdatum)
dtMin = # 1/1/1990 #
"Till: Idag
dtMax = Datum

Slumpa
Application.ScreenUpdating = False

För varje c I MyRange.Cells
"Beräkna slumpmässigt värde, där
"Värde> = min och värde <= Max
dtRand = Rnd * (dtMax - dtMin) + dtMin
dtRand = Int (dtRand)

c.Value = dtRand
"Ändra format för cell, nedan, som önskas
c.NumberFormat = "m / d / åååå"
Nästa c

Application.ScreenUpdating = True
End Sub

Igen, bara markera ett intervall och sedan köra makrot. Du kan ändra de ursprungliga värden som till dtMin och dtMax variabler för att specificera gränserna för de datum som önskas. Man kan också, om så önskas, ändra formateringen till cellerna efter den slumpmässiga datum lagras i cellerna.

ExcelTips är din källa för kostnadseffektiv Microsoft Excel utbildning. Detta tips (2077) gäller för Microsoft Excel 97, 2000, 2002, och 2003. Du kan hitta en version av detta tips för menyfliksområdet i Excel (Excel 2007 och senare) här: Generera Random Testing Data.