Los filtros avanzados son herramientas muy útiles y rápidas de usar, aunque
cuenta con algunas limitaciones. Se usan cuando el filtro personalizado no nos
permite realizar el filtro deseado.El comando filtros Avanzados funciona
de forma diferente del comando Filtrar en varios aspectos
importantes.
Muestra el cuadro de diálogo Filtro
avanzado en vez del menú de Autofiltro.
Los criterios avanzados se escriben en un rango de
criterios independiente en la hoja de cálculo y sobre el rango de celdas o la
tabla que desee filtrar. Microsoft Office Excel utiliza el rango de criterios
independiente del cuadro de diálogo Filtro avanzado como el
origen de los criterios avanzados.
Revisando
el caso:
El vídeo adjunto muestra una manera sencilla de
realizar un filtrado de una gran cantidad de datos. Podemos simplemente
aplicando los filtros avanzados, realizar un manejo de datos de manera ordenada
sin errores. Cabe destacar que la importancia radica en ingresar de manera
inequívoca los rangos, las condiciones que quiero aplicar y si quiero o no
realizar el filtrado en una pestaña distinta a la que contiene los datos o si
quiero que el filtrado de realice en la misma pestaña.
Revisando paso a paso: Para comenzar, es necesario identificar donde
tengo los datos, para el caso del vídeo, los datos se encuentran en la pestaña Postulantes.
Luego debo identificar donde dejaré los datos, en
este caso los dejaremos en la próxima pestaña, Consultas.
Luego cuando procedemos a realizar las consultas,
se coloca un encabezado con las condiciones que queremos cumplir (en la pestaña consultas), en ese caso,
la primera consulta requería que el establecimiento sea municipal y que en la
prueba haya obtenido más de 700 puntos.Se deben recordar que para que Excel pueda reconocer que yo quiero que
el establecimiento sea Municipal y la prueba de lenguaje sea mayor a 700
puntos, el encabezado de la consulta debe ser igual a los encabezados de la
tabla donde se encuentran los datos, es decir:
Para proceder a realizar las demás consultas se
realizan de la misma manera, siguiendo los mismo procedimientos pero teniendo en cuenta, tal y como se muestra en el vídeo que algunas tienen condicional "y" y otras condicional "o".
La utilización de estos filtros, permite a
diferencia de los filtros normales, realizar filtraciones de datos con muchas
condiciones, cumpliendo también los condiciones y/o. Autores: Leslye Marinao / Yanara Molina / Francisca Ulloa.
En la siguiente entrada de este blog explicaremos de manera detallada, mediante la utilización de vídeos e imágenes, la forma de utilizar la función "Nombre Definido" en Excel, la cual, pese a ser una función bastante poco usada, entrega gran utilidad al momento de querer hacer más eficiente el manejo de grandes volúmenes de datos, ya sea para la creación de rangos y gráficos dinámicos, como para simplemente la utilización de una función que haga referencia a un rango definido previamente.
Esperamos que la información entregada aquí sea de gran utilidad, y de fácil entendimiento, el cual fue nuestro principal objetivo durante el desarrollo del blog.
Marco Apablaza
Carolina Garcia
Benjamín León
Bastián Valenzuela
Grupo 3
Computación para los negocios
Facultad de Economía y Negocios
Universidad de Chile
Cómo crear un Rango Dinámico utilizando la función "Nombre Definido”
Un rango dinámico corresponde a un rango de numérico o de texto que se ajusta automáticamente a la cantidad de elementos presentes en él. Visto desde otra perspectiva, cuando uno simplemente define un nombre para un rango, éste es estático, es decir, si se agregan nuevos elementos justo debajo de dicho rango, estos no pasan a estar dentro del rango que definimos previamente, para este problema es que existe la opción de crear rangos dinámicos, en esta ocasión, utilizando la función "Nombre definido".
En el vídeo se muestra la forma de construir rangos dinámicos, y a continuación mostraremos una secuencia de pasos a través de imágenes que busca explicar de manera detallada lo hecho en el vídeo.
Partiremos teniendo en una hoja de Excel una serie de datos, los cuales en este caso corresponde a una lista de nombres con sus respectivos promedios de notas de la Universidad.
El primer paso consta de definir un nombre para dicho rango que contiene los nombres de los alumnos, para esto nos dirigiremos al menú "Fórmulas", Sección "Nombres Definidos", y pulsaremos en "Administrador de Nombres", una vez que se haya desplegado el cuadro del administrador de nombres, debemos hacer click en la opción "Nuevo...", y debemos completar dichos campos de la siguiente forma:
En el campo "Nombre:" definimos cómo queremos llamar a dicho rango, es irrelevante el nombre que se le dé, sin embargo es recomendable escoger uno que ayude a recordar qué información estaremos almacenando en dicho rango, en este caso, utilizaremos "Nombres".
Ahora, en el campo "Hace referencia a:" es donde se encuentra la parte más compleja de la construcción, dado que es, básicamente, lo que hará que el rango sea dinámico.
Para el ejemplo llenaremos este cuadro con la siguiente fórmula:
=DESREF(Hoja1!$B$2;1;0;CONTARA(Hoja1!$B:$B)-1;1)
La cual, mediante la fórmula CONTARA, tal como su nombre lo indica, cuenta los elementos presentes en la columba B, el "-1" que se encuentra justo después de la cuenta corresponde a la sustracción del encabezado al total de la cuenta de elementos.
La fórmula DESREF devuelve una referencia de un rango, dado una cantidad de filas y columnas específico, según la estructura de dicha fórmula, es que se encuentra primero la celda a la que se hace referencia (Hoja!$B$2), luego la fila número 1, la columna 0, el alto correspondiente a la cuenta, y finalmente el ancho de 1. Personalmente esta fórmula consideramos que es poco intuitiva, sin embargo, emulando la estructura que le dimos en esta explicación y en el vídeo del inicio, no debiesen existir problemas para la construcción.
Para el siguiente rango, correspondiente a los promedios, hemos seguido prácticamente los mismos pasos, con la única diferente que al momento de hacer la cuenta, hemos utilizado la función CONTAR, dado que de esa forma sólo se incluirán los elementos numéricos, excluyendo automáticamente el encabezado. Tal como se muestra en la siguiente imagen:
Una vez hecho esto, y tal como mostramos en el vídeo, al agregar un nombre nuevo, o una nota nueva, en las columnas B o C, respectivamente, veremos cómo los rangos se actualizan automáticamente.
Como podemos ver en el vídeo, a manera de probar la efectividad de nuestra construcción de rangos dinámicos, hemos hecho 2 fórmulas que cuenten los elementos de los rangos "Nombres" y "Promedios", (de la forma =CONTARA(Nombres) y =CONTARA(Promedios)), las cuales, al agregar nuevos elementos, dichas cuentas cambian automáticamente, lo que corrobora la creación exitosa de nuestros rangos dinámicos.
Ejemplo aplicación: Creación de Gráfico Dinámico utilizando Rangos Dinámicos
Una vez que hemos creado nuestros rangos dinámicos, es posible crear gráficos que se actualicen automáticamente según la cantidad de elementos presentes en las columnas.
Para esto, tal como se puede ver en el vídeo, al momento de crear el gráfico, y seleccionar los datos, haremos lo siguiente: En los valores de la serie, escribimos "=Libro1!Promedios", para hacer referencia al rango que contiene los promedios. Mientras que en los rótulos de nombres, escribiremos "=Libro1!Nombres".
De esta forma tendremos un gráfico que cambiará automáticamente según la cantidad de elementos presentes en dichas columnas.
En el siguiente link se encuentra el archivo sobre el cual se desarrollaron los rangos dinámicos y el gráfico:
Para
desarrollar el ejemplo que exponemos en el video, utilizaremos una tabla que
contiene una lista de nombres y sus respectivas notas en cada año de
universidad –creadas aleatoriamente para la ocasión- desde la cual obtendremos
los datos con que crearemos el gráfico.
En primer
lugar, definiremos un nombre que se refiera al rango que contiene los nombres
de los alumnos. Para esto, vamos al menú “Fórmulas”, y en la sección “Nombres
Definidos” pulsamos en “Crear desde la selección”, cabe destacar que es
necesario haber seleccionado las celdas indicadas, en este caso, la columna
correspondiente a los nombres, incluyendo el encabezado (celda con el texto “Nombre”).
Luego de haber pulsado “Crear desde la selección”, aparecerá un cuadro en que se
consulta a partir de qué se desea crear el nombre, normalmente Excel detectará
qué es lo que se quiere hacer y dará como predeterminada dicha opción, la cual
en este caso corresponde a “Fila Superior”.
De la
misma forma en que creamos este nombre, ahora utilizaremos esta función para definir
un nombre para cada uno de los rangos que contienen las notas.
Una vez
creados los nombres, crearemos una lista desplegable dentro de una celda, con
el fin de escoger en dicha lista el nombre sobre el cual uno quiere consultar a
través del gráfico dinámico.
En primer
lugar seleccionamos la celda (N#1) , luego en el menú Datos, sección
Herramientas de datos pulsamos sobre “Validación de datos” y escogemos la primera opción de las que se
despliegan (N#2). Nos aparecerá el cuadro que se ve en la imagen, acá
escogeremos la opción Lista (N#3) y finalmente en la sección “Origen”, seleccionaremos
la lista de nombre, esta vez sin incluir el encabezado “Nombres” (N#4) y le
damos a Aceptar, cabe destacar que al seleccionar la columnas de nombres, en el
cuadro origen aparecerá “=nombres”, dado que fue el nombre que definimos en el primer
paso para dicho rango. Con esto tendremos creada una celda que contiene una
lista desplegable con los nombres presentes en la tabla de datos. Una vez creada la lista desplegable en la celda, debemos definir un nombre para ésta. Para esto, existen dos opciones, siendo la mostrada en la imagen la más simple: Seleccionamos la celda, y en el cuadro superior izquierdo presente en Excel definimos un nombre para dicha celda, en este caso usaremos “TituloGrafico”, dado que luego asociaremos esta celda al título del gráfico para que se actualice automáticamente a los diferentes nombres de cada alumno, cabe destacar que el nombre que uno defina es irrelevante en sí, sin embargo es conveniente escoger nombres que ayuden a recordar fácilmente para qué fueron definidos, y así hacer menos dificultoso el trabajo.
Ahora nos
enfrentamos a una de las partes menos intuitivas del proceso, correspondiente a
definir un nombre el cual se asocie a los datos de cada uno de los alumnos, el
cual será utilizado al momento de escoger los valores de la serie en el
gráfico.
Para esto, nos dirigiremos al menú “Formulas” y en la sección “Nombres definidos” pulsamos sobre “Administrador de nombres”, una vez que se muestre el cuadro que contiene todos los nombres que hemos definido en el libro de Excel actual, pulsamos en “Nuevo…” y se nos mostrará el siguiente cuadro:
Nuevamente el nombre es irrelevante, pero es necesario recordarlo fácilmente para los siguientes pasos, en este caso usamos “SerieGrafico”.
En la sección “Hace referencia a”, debemos utilizar la siguiente fórmula:
=INDIRECTO(SUSTITUIR(Hoja1!$A$15;" ";"_"))
La celda a la que se hace referencia en este caso (A15) corresponde a la cual contiene la lista desplegable. La función INDIRECTO se utiliza para interpretar el texto almacenado en dicha celda y convertirlo en el rango que definimos anteriormente.
Dado que en este caso los nombres de nuestra lista contienen espacios, es necesario utilizar la función SUSTITUIR, la cual se encargará de convertir los espacios contenidos en la celda, en guiones bajos, para que el formato sea compatible con el de la herramienta “Nombres Definidos”.
Posteriormente, debemos crear un gráfico -en este caso de líneas-. Para crearlo fácilmente seleccionamos las dos primeras filas de la tabla de datos, es decir, la fila que contiene los encabezados (Nombre, 1er Año, 2do Año, etc) y la fila correspondiente a “Marco Apablaza” con sus respectivas notas, nos vamos al menú “Insertar” y seleccionamos Gráfico de Lineas, el gráfico se construirá automáticamente de la forma que vemos en la imagen.
Luego, para que el gráfico sea dinámico, hacemos click derecho sobre la línea y pulsamos sobre la opción “Seleccionar datos…” y luego, en el siguiente cuadro que aparecerá, pulsamos en “Editar”, con lo cual nos encontraremos con el siguiente cuadro:
En la sección “Nombre de la serie” y “Valores de la serie”, estarán la celda pertenecientes a la tabla de datos originales de la cual se creó el gráfico, debemos modificar esto utilizando los nombres definidos en los pasos anteriores. De esta forma, en “Nombre de la serie” escribiremos =Libro4!TituloGrafico y en Valores de la serie =Libro4!SerieGrafico.
Cabe destacar que es necesario mantener la referencia a la hoja en la que se está trabajando, es decir en este caso, “Libro4!”, incluyendo el signo de exclamación.
Luego de esto, tendremos un gráfico dinámico tal como vimos al principio, al cual sólo le faltará pulir detalles tales como fijar los valores mínimo y máximo de los ejes, con el fin de hacer más comparables los resultados entre cada uno de los alumnos.
Hacemos click derecho sobre el eje de las ordenadas, y pulsamos sobre la opción "Dar formato a eje...". En el cuadro que aparecerá debemos fijar los valores máximo y mínimo como se ve en la siguiente imagen.
La construcción del gráfico dinámico detallada anteriormente se encuentra en el siguiente video:
A continuación se muestra la utilización de un dashboard para
medir el desempeño de la empresa XXX encargada de la elaboración de jugos. Esto es muy útil para algunos que queramos seguir el área de control de gestión, en lo que será necesario la realización de un dashboard para poder analizar los distintos datos de una empresa y poder tomar decisiones acertadas.
El
dashboard se divide en tres niveles: Táctico, operativo y Estratégico.
Para crear el dashboard se necesitan datos relacionados al desempeño de la empresa, los cuales son los indicadores de gestión que se muestran en las tablas dentro del archivo, y con eso ya podemos seleccionar datos y crear los gráficos. Para ello se realizó una lista desplegable con los años, para poder ver el avance. Esta lista está asociada a una tabla en donde a partir de los distintos años con la función BUSCARV busca los datos dependiendo del año indicado y se actualiza esta tabla ligada al gráfico, como se muestra en la imagen a continuación.
Las distintas tablas para todos los gráficos en el dashboard deben estar ligadas a la misma lista desplegable, para que al seleccionar el año se cambien los datos para todos los gráficos existentes en la hoja.
El procedimiento anterior debe ser repetido para todos los niveles existentes.
Ahora ya es posible tener el dashboard!
Pero aún no está terminado, ya que para no tener que estar cambiando de hoja en hoja para analizar los distintos niveles es posible crear un botón asociado a una macro para poder ir al dashboard siguiente.
La macro utilizada para esto es la siguiente:
Ahora que ya está creada la macro es posible asociarla a un dibujo:
Una vez que tenemos todo listo se puede agregar dibujos de fondo para que sea más personalizado dependiendo de la empresa.
Finalmente, para que al abrir el archivo se abra directamente en pantalla completa, lo que permite una mejor visualización, se grabó una macro realizando esta operación, también la eliminación de la barra de fórmulas y las líneas de cuadrícula. Luego este texto se pego en un Workbook y se seleccionó la opción Open (como se muestra en la imagen) para que así se realicen todas las acciones al momento de abrir el archivo.
Solver es parte de
una serie de comandos a veces denominados herramientas de análisis. Con Solver,
podemos buscar el valor óptimo para una fórmula determinada, la cual puede
ser secuencia de valores, referencias de celda,
funciones u operadores de una celda que producen juntos un valor nuevo.
Una formula comienza
siempre con el signo igual (=), denominada celda objetivo, en una hoja de
cálculo. Solver funciona en un grupo de celdas que estén relacionadas, directa
o indirectamente, con la fórmula de la celda objetivo.
Solver ajusta los
valores en las celdas cambiantes que se especifiquen, denominadas celdas
ajustables, para generar el resultado especificado en la fórmula de la celda
objetivo. También pueden aplicarse restricciones, o sea, limitaciones al problema, se puede aplicar
restricciones a celdas ajustables, la celda de destino u otras celdas que estén
directa o indirectamente relacionadas con la celda de destino.
Con Solver, podemos dar solución a variados problemas de optimización, entre
ellos por ejemplo la maximización de la
utilidad.
Ahora un ejemplo para
utilizar Solver y encontrar el Optimo de Pareto
¿Qué es un Óptimo de
Pareto? Profundizando los análisis de las Curvas de Indiferencia y de la Caja de Edgeworth, el economista, político y sociólogo italianoVilfredo Pareto (1848-1923) desarrolló el concepto de Óptimo para
aquella situación en la cual se cumple que no es posible beneficiar a una
persona sin perjudicar a otra. En la búsqueda de un equilibrio con mejor
bienestar, ambos agentes aceptan el intercambio hasta el punto en que este deja
de generar beneficios.
Una forma de encontrar
el óptimo de Pareto, es utilizando Microsoft Excel, utilizando la herramienta
SOLVER con la ayuda del VBA, específicamente con el uso de Macros Recursivas.
Macros Recursivas
Recursividad, es un
concepto fundamental en computación, es una alternativa diferente para implementar
estructuras de repetición (ciclos). La recursividad se puede utilizar en toda
situación en la cual la solución puede ser expresada como una secuencia de
movimientos o pasos con reglas no ambiguas.
Se dice que una
función (Function) es recursiva o que un procedimiento Sub es recursivo si se
llama a sí mismos. Un ejemplo sencillo de cómo calcular el factorial de un número
es el siguiente:
Function Factorial
(N As Integer) As Long
If N = 0 Then
Factorial = 1 ‘esto debido
a que 0!=1
Else
Factorial = N *
Factorial(N-1) ‘se llama así misma, pero en un número menor
End if
End Function
Encontrando el
optimo de Pareto:
Caso: Tenemos dos
agentes en la economía, ambos tienen la misma función de utilidad que depende de
solo dos bienes U(x1,x2) = x1*x2. Inicialmente
los consumos corresponden
Agente A (X1,X2)=(1,2)
y el Agente B (X1,X2)=(2,1). Se sabe además que los precios relativos son igual
a 1.
Utilizando Solver podemos
encontrar el óptimo de consumo de estos agentes, o sea, el óptimo de Pareto. Para
encontrar el óptimo se debe cumplir la siguiente condición, que es parte de la
celda objetivo de Solver.
La macro utilizada
para calcular lo anterior es la siguiente:
Para utilizar esta
macro, y otras macros que utilizan la herramienta Solver es necesario tener
activado las funciones de Solver, para ello deben ir al Visual Basic en parte
superior donde dice Herramientas->Referencias y activar la casilla SOLVER.
Para graficar el óptimo de
Pareto, y muchos otros tipos de gráficos, existe el complemento QIMacros para
Excel, donde fácilmente puedes obtener el grafico que necesitas. Este complemento
también debe ser activado para que pueda ser utilizado una vez se ha
descargado. Para activar sus funciones se realiza el mismo procedimiento que
para Solver:
Esta herramienta utilizando
macros permite graficar con solo seleccionar los datos correspondientes.
Volviendo al ejemplo, si
seleccionamos los datos estimados y utilizamos QImacros, específicamente, donde
dice “Pareto” obtenemos el grafico siguiente, que muestra el optimo de nuestra función
optimizada con Solver.
Al utilizar las
Macros en Excel podemos apreciar muchas de sus ventajas, algunas de ellas son:
La simulación de Monte Carlo
buscar determinar el comportamiento futuro de una variable aleatoria. A
continuación se mostrará un ejemplo en donde se quiere calcular el beneficio
total (Precio de venta – costo de venta) para distintos escenarios. Para poder
desarrollar el modelo se deben definir las siguientes fases:
1 Definir las variables no
controlables (por ejemplo unidades vendidas)
2 Definir variables no
controladas deterministas (por ejemplo precio combustible)
3 Definir variables controladas
(por ejemplo cantidad a comprar)
4 Cálculo de la función de
distribución de probabilidad de la variable en cuestión. Por ejemplo aquí tenemos la
demanda por un producto, su precio de venta y el precio de compra:
5 Realizar distribución. Para esto
se crea una tabla como la que se muestra más abajo. En ella es necesario
indicar una cantidad de sucesos que se quieren analizar, la cantidad demandada,
el precio de venta y precio de compra. Estas últimas tres columnas deben ser
números aleatorios buscados en la tabla anterior (Del punto 4) y sus resultados
van asociados a ciertos niveles de beneficios.
Luego se selecciona grabar macro
y se comienza a hacer la fórmula BUSCARV de números aleatorios buscados en las
tablas de demanda, precio de venta y de compra. Se arrastra la fórmula para
todos los sucesos y calcula el beneficio para cada nivel de compra (como se
muestra en la imagen de abajo).
A continuación, se calcula el
beneficio esperado para distintas cantidades a comprar. Con una fórmula simple
de beneficio, en donde si la cantidad comprada es mayor a la demandada se
calcule la cantidad vendida por su precio de venta menos la cantidad comprada
por su precio de compra. Luego esta fórmula se arrastra hacia abajo para todos
los sucesos y hacia el lado para todas las cantidades de a comprar.
Ahora podremos detener la macro y asignarla al dibujo azul
que dice “simulación”, para que cada vez que apretemos el botón se cree una
nueva simulación.
La macro quedó así:
Y ahora hacemos click derecho en el botón “simulación”, y
seleccionamos asignar macro, buscamos el nombre que le pusimos a la macro que
grabamos y LISTO!
Ya vimos como podíamos generar muestras estadísticas para distribuciones (Ver Generación de muestras estadísticas para distribuciones) de forma rápida y simple, pero este método tiene una limitación. Si necesitamos crear una serie de números, pero sin repetición, vamos a tener que utilizar la función aleatorio como se describió en Generación de muestras estadísticas para distribuciones y luego quitar los valores repetidos (con "Quitar Duplicados" por ej.) e ir agregando nuevos números aleatorios, volver a chequear que no hayan repetidos hasta obtener el tamaño de la muestra deseada. Este procedimiento puede no ser muy relevante si no estamos preocupados por el numero de la muestra, pero si lo estamos, esto puede ser muy complicado. Para esto mostraremos una herramienta muy similar a la función aleatorio() o aleatorio.entre(), pero que se hace con macros.
Primero debemos posicionarnos en la viñeta Programador y luego hacemos click en Visual Basic.
Luego seleccionamos Insertar y Modulo
En la pantalla blanca que se abre, colocamos el código que nos interesa:
Sub Aleatoriosunicos()
Dim i As Integer, j As Integer
Dim A() As Long
Dim esta As Boolean
Dim x As Long, y As Long, z As Long, num As Long
x = Application.InputBox(prompt:="Introduzca el rango mínimo al cual quiere que pertenezcan los números aleatorios" _
, Title:="Generador de Números Aleatorios", Default:=1, Type:=1)
y = Application.InputBox(prompt:="Introduzca el rango máximo" _
, Title:="Generador de Números Aleatorios", Default:=1000, Type:=1)
z = Application.InputBox(prompt:="Introduzca la cantidad de números aleatorios que desea generar?" _
& " (<15000)?" _
, Title:="Generador de Números Aleatorios", Default:=100, Type:=1)
If z = 0 Then Exit Sub
If z > 15000 Then z = 15000
If z > y - x + 1 Then
MsgBox "!Ha especificado más números " _
& "de los que son posibles en el rango!"
Exit Sub
End If
ReDim A(z)
Randomize
A(1) = Int((y - x + 1) * Rnd + x)
For i = 2 To z
Do
num = Int((y - x + 1) * Rnd + x)
esta = False
For j = 1 To i - 1
If num = A(j) Then esta = True: Exit For
Next j
Loop While esta
A(i) = num
Next i
For i = 1 To z
Cells(i, 2) = A(i)
Next i
End Sub
Nos quedará algo así:
Para entender que hace el código, iremos analizando paso por paso, para poder ir cambiando las propiedades más interesantes. Si nos fijamos la macro comienza con Sub Aleatoriosunicos() , si queremos cambiar el nombre de la Macro en vez de Aleatoriosunicos escribiremos el nombre que deseamos.
Luego en esta parte del código
estamos creando InputBox que nos permiten introducir el numero mínimo y máximo que queremos que aparezca en nuestra muestra y el tamaño de ella. Podemos cambiar el dialogo que aparece en los cuadros reemplazando el texto que esta entre comillas después de prompt:=. Además podemos cambiar los números minimos, máximos y tamaño de la muestra que salgan por defecto, esto lo hacemos reemplazando los números después de Default:
Por otro lado podemos ver que
si el numero que se coloca en el InputBox que corresponde al tamaño de la muestra (z) es igual a 0 la macro deja de correr, si es mayor a 15000, se reemplazará el número introducido por 15000, generando una muestra de este tamaño. Si el tamaño de la muestra introducido es mayor que el rango de los números especificados la macro devuelve un MsgBox que indica el error. Si queremos podemos cambiar este texto reeplazandolo después de MsgBox.
Finalmente el resto del código crea los valores aleatorios comprobando que no estén repetidos una y otra vez.
De esta forma cada vez que queramos crear una muestra, solo debemos hacer correr la macro. Esto lo hacemos en la viñeta Programador, Macros, seleccionando la macro y haciendo click en Ejecutar.
La macro hará que aparezcan los Input Box mencionados,
al colocar la información que nos piden nos quedará algo así. Podemos observar que la muestra se creará a partir de la celda B1.