Cuando desarrolle hojas de trabajo que serán utilizadas por otras personas, debe probar esas hojas de trabajo para asegurarse de que funcionen como espera.

Esto es particularmente cierto en las hojas de trabajo que contienen fórmulas complejas o que se utilizarán con fines críticos. El concepto de probar una hoja de trabajo significa que deberá generar algún tipo de datos para usar en la prueba de la hoja de trabajo.

Se han escrito libros completos sobre cómo armar conjuntos de pruebas para software. Qué tan riguroso sea usted en la compilación de datos de prueba depende, en gran parte, de las necesidades de su audiencia y la naturaleza de su hoja de trabajo.

Desafortunadamente, no existe una panacea rápida que averigüe automáticamente lo que necesita y genere los datos por usted. Sin embargo, existen herramientas en Excel que puede utilizar con este fin.

Primero, si necesita generar valores numéricos aleatorios, puede usar las funciones de la hoja de trabajo RAND o RANDBETWEEN. La diferencia es que RAND genera un valor entre 0 y 1, y RANDBETWEEN genera valores enteros entre los límites que establezca.

Sin embargo, es posible que los datos aleatorios no sean apropiados para sus necesidades de prueba. Esto es particularmente cierto cuando está probando los límites de sus fórmulas.

Por ejemplo, probar con valores grandes, valores pequeños o una combinación de valores grandes y pequeños. Del mismo modo, es posible que desee probar valores inapropiados, como usar texto como entrada en lugar de números (o viceversa). Hay todo un contingente de condiciones en las que debe pensar y luego elegir el tipo de datos que sea adecuado para sus necesidades.

Si lo prefiere, puede utilizar macros para generar datos de prueba. La siguiente macro llena un rango seleccionado de celdas con un valor numérico aleatorio, entre los límites (mínimo y máximo) que establezca.

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

Para usar la macro, simplemente seleccione un rango de celdas que desee que contengan valores numéricos aleatorios y luego ejecute la macro. Si debe usar valores enteros en las celdas, puede «descomentar» la línea anotada dentro de la macro.

Si desea llenar un rango de celdas con fechas aleatorias, una ligera modificación de la macro RandNums da como resultado lo siguiente.

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

Nuevamente, simplemente seleccione un rango y luego ejecute la macro. Puede modificar los valores iniciales establecidos en las variables dtMin y dtMax para especificar los límites de las fechas deseadas. También puede, si lo desea, cambiar el formato aplicado a las celdas después de que la fecha aleatoria se almacena dentro de las celdas.

_Nota: _

Si desea saber cómo usar las macros descritas en esta página (o en cualquier otra página de los sitios ExcelTips), he preparado una página especial que incluye información útil.

link: / excelribbon-ExcelTipsMacros [Haga clic aquí para abrir esa página especial en una nueva pestaña del navegador].

ExcelTips es su fuente de formación rentable en Microsoft Excel.

Este consejo (2077) se aplica a Microsoft Excel 97, 2000, 2002 y 2003. Puede encontrar una versión de este consejo para la interfaz de cinta de Excel (Excel 2007 y posterior) aquí:

enlace: / excelribbon-Generating_Random_Testing_Data [Generación de datos de prueba aleatorios].