Generieren von zufälligen Testdaten (Microsoft Excel)
Wenn Sie Arbeitsblätter entwickeln, die von anderen Personen verwendet werden, sollten Sie diese Arbeitsblätter testen, um sicherzustellen, dass sie wie erwartet funktionieren.
Dies gilt insbesondere für Arbeitsblätter, die komplexe Formeln enthalten oder für kritische Zwecke verwendet werden. Das Konzept des Testens eines Arbeitsblatts bedeutet, dass Sie Daten generieren müssen, um das Arbeitsblatt testen zu können.
Es wurden ganze Bücher über die Zusammenstellung von Testsuiten für Software geschrieben. Wie streng Sie beim Zusammenstellen von Testdaten sind, hängt zum großen Teil von den Bedürfnissen Ihres Publikums und der Art Ihres Arbeitsblatts ab.
Leider gibt es kein schnelles Allheilmittel, das automatisch herausfindet, was Sie benötigen, und die Daten für Sie generiert. Es gibt jedoch Tools in Excel, die Sie zu diesem Zweck verwenden können.
Wenn Sie zufällige numerische Werte generieren müssen, können Sie zunächst die Arbeitsblattfunktionen RAND oder RANDBETWEEN verwenden. Der Unterschied besteht darin, dass RAND einen Wert zwischen 0 und 1 generiert und RANDBETWEEN ganzzahlige Werte zwischen den von Ihnen festgelegten Grenzen generiert.
Zufällige Daten sind jedoch möglicherweise nicht für Ihre Testanforderungen geeignet. Dies gilt insbesondere dann, wenn Sie die Grenzen Ihrer Formeln testen.
Zum Beispiel Testen mit großen Werten, kleinen Werten oder einer Kombination aus großen und kleinen Werten. Ebenso möchten Sie möglicherweise auf unangemessene Werte testen, z. B. die Verwendung von Text als Eingabe anstelle von Zahlen (oder umgekehrt). Es gibt eine ganze Reihe von Bedingungen, die Sie durchdenken und dann die Art von Daten auswählen müssen, die für Ihre Anforderungen geeignet ist.
Wenn Sie möchten, können Sie Makros verwenden, um Testdaten zu generieren. Das folgende Makro füllt einen ausgewählten Zellbereich mit einem zufälligen numerischen Wert zwischen den von Ihnen festgelegten Grenzen (Minimum und Maximum).
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
Um das Makro zu verwenden, wählen Sie einfach einen Zellbereich aus, der zufällige numerische Werte enthalten soll, und führen Sie das Makro aus. Wenn Sie in den Zellen ganzzahlige Werte verwenden müssen, können Sie die notierte Zeile im Makro „auskommentieren“.
Wenn Sie einen Zellbereich mit zufälligen Daten füllen möchten, führt eine geringfügige Änderung des RandNums-Makros zu folgenden Ergebnissen.
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
Wählen Sie erneut einfach einen Bereich aus und führen Sie das Makro aus. Sie können die auf die Variablen dtMin und dtMax festgelegten Anfangswerte ändern, um die Grenzen für die gewünschten Daten festzulegen. Falls gewünscht, können Sie auch die Formatierung ändern, die auf die Zellen angewendet wird, nachdem das zufällige Datum in den Zellen gespeichert wurde.
_Hinweis: _
Wenn Sie wissen möchten, wie die auf dieser Seite (oder auf einer anderen Seite der ExcelTips-Websites) beschriebenen Makros verwendet werden, habe ich eine spezielle Seite vorbereitet, die hilfreiche Informationen enthält.
ExcelTips ist Ihre Quelle für kostengünstige Microsoft Excel-Schulungen.
Dieser Tipp (7989) gilt für Microsoft Excel 2007, 2010, 2013, 2016, 2019 und Excel in Office 365. Eine Version dieses Tipps für die ältere Menüoberfläche von Excel finden Sie hier: