You are on page 1of 198

MANUAL 

 
EXCEL 
 
AVANZADO 
 
BIOS 
 
Manual Excel Avanzado 
 
BIOS 
 
Módulo Funciones Avanzadas 
 
Primer Ejemplo – Funciones simples 
 
Dada la siguiente planilla: 
 
 

 
 
Supongamos que la nota final se calculará basándonos en el promedio de notas que obtuvo cada 
estudiante en sus parciales. 
Por lo tanto aplicaremos la función promedio: 
 
=PROMEDIO (B2:D2) 
 
Recordemos que cualquier función que vayamos a aplicar debemos posicionarnos sobre la celda, y 
comenzar con el signo = o en su defecto el signo +. 
 
Por otro lado si hubiéramos querido tomar en cuenta solo dos de los parciales dentro del 
promedio tendríamos que: 
 
=PROMEDIO (B2; D2) 
 
En el caso de que queramos tomar rangos discontinuos esto se aplicaría de la siguiente forma: 
 
=PROMEDIO (B2:D2; H2:J2) 
 
La planilla hasta ahora quedaría así: 
 

 
 
Además en el caso de copiar esta fórmula, podríamos realizarlo mediante la opción clásica de dar 
sobre el botón derecho sobre la celda, seleccionar la opción copiar, y luego marcar el rango (en 
este caso de E3:E8) y darle pegar. 
 
Mas allá de esta clásica opción también se podría copiar la formula de forma simple dando DOBLE 
CLIC en el borde inferior derecho de la celda que contiene la formula a copiar. 
 
En la siguiente columna, se hará un breve repaso de la formula condicional SI. 
De acuerdo a esta formula deberá aplicarse: 
 
=SI (prueba _ lógica; valor verdadero; valor falso) 
 
En el caso de la planilla que manejamos anteriormente, esta quedaría de esta manera: 
 
=SI (E2<5; “Reprobado”; “Aprobado”) 
 
Si tuviéramos más de una función SI para establecer, recordar que siempre vamos a tener que 
evaluar el conjunto de opciones de nuestro problema (conviene comenzar desde el nivel mas bajo) 
y haremos una función menos que opciones de nuestro caso. 
 
=SI (E2<5; “Reprobado”; SI (E2<=7; “Parcial”; “Aprobado”) 
 

 
 
No debemos perder de vista que la función SI puede ser utilizada en este tipo de casos, y 
concatenar hasta 7 funciones SI (tenemos este límite). 
 
De la misma manera que anteriormente lo hicimos, podemos copiar la fórmula sin problemas. No 
olvidemos que hasta ahora hemos dejado de lado el tema de Referencias Relativas y Absolutas ya 
que no hizo falta fijar ninguna de las celdas a copiar. 
 
 
 
 
 
 
 
 
 
 
 
Vamos a armar un cuadro adicional anexo a la planilla para implementar otras funciones: 
 

 
 
En este cuadro calcularemos cuantos fueron los alumnos que obtuvieron como calificación 
Aprobado, Parcial y Reprobado. A su vez calcularemos con respecto al total de alumnos, el 
porcentaje que obtuvo cada calificación. 
 
Lo haremos aplicando la función CONTAR.SI, de la siguiente manera: 
 
=CONTAR.SI (F2:F8; “Aprobado”) 
 
También podríamos haber escrito: 
 
=CONTAR.SI (F2:F8; A12) 
 
Veamos a su vez que si pensáramos en copiar esta fórmula debería quedar: 
 
=CONTAR.SI($F$2:$F$8;A12) 
 
La razón del signo $ es el hecho de fijar el rango F2:F8 ya que las calificaciones son fijas, mientras 
que la celda A12 es relativa ya que cambiará de fila al copiar. 
 
En la función CONTAR.SI tenemos en cuenta el rango a evaluar, y como segundo argumento 
tenemos el criterio a tomar en cuenta para copiar. 
 
Si aplicamos la funcion CONTAR, o también CONTARA, podremos saber cuantos alumnos 
tendremos. 
 
=CONTAR (E2:E8) 
 
En este caso la función CONTAR aplica perfectamente para este caso puesto que las celdas que se 
evaluan tienen contenido numérico. 
 
En el caso de querer hacer un recuento por apellidos: 
 
=CONTARA(A2:A8) 
 
Aquí aplica perfectamente ya que esta función nos permite evaluar celdas no vacías. 
 
 
 
Pasando a otro tema veremos a continuación alguna aplicación adicional de la función SI. 
 
En la siguiente planilla se evaluará la calidad de los productos según su diámetro. Si el diámetro 
está comprendido entre 10 y 20 su calidad será A, y de lo contrario será B. 
 

 
 
Vemos que en este caso no solo se aplicó la función SI, sino que se combinó con la opción Y 
(también podriamos haber aplicado la opción O), de la siguiente manera: 
 
=SI(Y(opcion 1; opcion 2;…..); valor verdadero; valor falso) 
 
=SI(O(opcion 1; opcion 2;…..); valor verdadero; valor falso) 
 
En el caso de combinar con la opción Y, recordemos que estaríamos hablando de que si se 
cumplen UNA Y CADA UNA DE LAS OPCIONES EN FORMA SIMULTANEA se aplicaría la opción 
verdadera, y en el caso que no fuera así se aplica la opción falsa. 
 
Mientras que en el caso de las opciones que damos mediante el O, con que una de las opciones 
fuere verdadera, ya se aplicaría la opción del valor verdadero en la condición, y solo si no se 
cumple ninguna de las opciones se aplicaría el valor falso. 
 
 
 
 
 
 
 
 
Pasemos ahora a un nuevo ejemplo y continuamos en la aplicación de funciones: 
 

 
 
En este caso aplicamos una función de búsqueda, que se denomina BUSCARV. 
Recordemos que la forma de utilizar esta función de búsqueda es la que se demuestra a 
continuación: 
 
=BUSCARV(valor buscado; matriz; número de columna; [ordenamiento]) 
 
En el caso particular de la planilla 
 
=BUSCARV(A13; A2:C8; 3; FALSO) 
 
Vemos aquí que el valor buscado hace referencia a la celda donde el usuario cargará el dato en el 
que se basará la búsqueda. Este dato no debe ser parte de la matriz de búsqueda (A2:C8) si no, 
esto no tendría sentido en la búsqueda. Luego se carga la matriz, al hacer referencia a la matriz no 
cargamos los títulos de la misma, solo el contenido (registros de la misma), luego cargamos la 
referencia al número de columna que se va a extraer, en este caso la columna 3 ya que es la del 
stock (columna con dato a extraer) y por último como argumento OPCIONAL el orden dentro de la 
matriz, en este caso falso ya que la primera columna de la matriz no está ordenada en forma 
ascendente. 
 
Además en el caso del argumento opcional de ORDEN esto tambien es realmente significativo al 
momento de aplicar la coincidencia en la búsqueda. Si este argumento es FALSO y la busqueda no 
encuentra el dato preciso retorna un error. Por ejemplo: 
 

 
 
En este caso al no encontrar el Artículo A5565 devuelve un error del tipo #N/A, o dato NO 
DISPONIBLE (Not Available). 
 
En cambio veamos que pasa cuando el argumento de orden lo cambiamos a VERDADERO. 
 

 
 
En este caso, mas allá que el producto A5565 no se encontró de todas formas retornó el valor de 
stock del artículo cuya coincidencia no era exacta, sino aproximada. 
En muchos casos cuando la búsqueda no tiene porque ser exacta, este argumento VERDADERO 
puede ayudarnos a encontrar el dato más cercano que coincida con nuestra búsqueda. 
 
En cambio anteriormente cuando el argumento fue cambiado por FALSO, la búsqueda no nos 
retornaba ningún valor ya que el dato no lo encontraba (con coincidencia exacta) en la matriz de 
registros. 
 
En otro ambito también sería bueno en una planilla controlar los ingresos de información, y es por 
esto que vamos a introducir el tema VALIDACIÓN DE REGISTROS. 
 
VALIDACIÓN DE DATOS 
 
En el caso de la planilla que presentamos anteriormente, vamos a comenzar este tema de 
validación tratando de que el usuario se limite a agregar artículos con STOCK entre 0 y 300, y no 
pueda introducir un número menor a cero, ni mayor a 300. 
 
Veamos como operar: 
 
1. Pintamos las celdas de stock (celdas en las que vamos a dar la regla de validación) 
2. Luego vamos al menú de datos – validación 
3. Establecemos la regla de validación a operar 
4. Opcionalmente definimos mensaje entrante 
5. Opcionalmente definimos mensaje de error 
 
 
 
 
 
 
 
Veamos el paso en cada pantalla: 
En este primer paso marcamos las celdas de Stock y luego nos dirigimos al menú de Datos – 
Validación 
 

 
 
En el segundo paso definimos la regla de validación: 
En este caso, definimos que lo que vamos a permitir es un número entero en dichas celdas y este 
número deberá estar comprendido entre 0 y 300. 
 

 
 
Tenemos otras opciones al desplegar el cuadro Permitir, que las usaremos en algunos ejemplos 
posteriores. 
 

 
Poniendo otro ejemplo: 
 
En este caso nos posicionamos en la celda donde la persona va a realizar la búsqueda del stock de 
determinado artículo (A13), y damos una regla de validación para que solo pueda ingresar códigos 
de artículos existentes en la matriz de datos: 
 

 
 
Veamos que sucede cuando aplicamos también el uso de la solapa de Mensaje Entrante 
 

 
 
Esto resultará cuando la persona se posicione sobre la celda A13 (en la cual se determinó la regla 
de validación). 
 
Veamos como en la pantalla que se muestra a continuación, se muestra el mensaje entrante: 
 
 
 
   
 
 
 
 
  Aquí vemos el mensaje entrante al posicionarnos sobre la celda  
 
Un comentario con respecto a esto, es el hecho de poder trabajar en las reglas de validación, tanto 
con rangos dinámicos como también con rangos con un nombre determinado. 
 
Veamos como funciona: 
 

 
 
En este caso, al dar como origen de la lista la selección: =$A:$A  (referencia a la columna A) 
 
La ventaja que se logra es el hecho de poder incorporar mas artículos con su respectivo stock a la 
matriz  de esa manera integrarlos a la regla de validación de forma automática. 
 
Aplicando lo que comentabamos: 
 

 
 
En este caso agregamos un artículo a la lista, y luego vemos como el artículo se integra en forma 
automática al cuadro combinado en la celda que tiene la validación. 
 
 
 
 
 
 
 
DEFINIR NOMBRES A RANGOS 
 
En el siguiente ejemplo veremos como aplicamos en lugar de una referencia a una lista formada 
por determinadas celdas, a un rango con un nombre preasignado 
 
En primer término asignaremos al rango, un nombre como por ejemplo ARTICULOS 
 
 
 
 
 
 
 
 
 
 
 
En el área señalada asignamos el nombre al rango de artículos. O sea primero, señalamos el rango 
de artículos (A2:A9) y luego le designamos un nombre a este rango. De ahora en mas cuando yo 
quiera hacer referencia a las celdas A2:A9 ya podremos escribir simplemente ARTICULOS que Excel 
entenderá las direcciones a las que se hacer referencia. 
 
Otra manera de plantear las referencias de rangos a los que se le aplica un nombre sería: 
 

 
 
Mediante el menú Insertar – Nombre – Definir, también podremos tanto crear rangos con 
nombre, eliminar rangos con nombre, y también modificarlos. 
 
 
Veamos que en dicha pantalla podemos asignar el nombre, y en donde define Se refiere a: 
podremos determinar la dirección de las celdas que vamos a tener dentro del rango. 
 
 
 
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
En este sentido esta pantalla nos da mejor manipulación sobre los rangos, ya que no solo 
podremos asignarles nombres a determinadas celdas o rangos, sino modificar la dirección a la que 
hacen referencias, como también eliminar determinados nombres que ya no sean de aplicación 
para nuestra planilla. 
 
En el caso de querer asignar un rango con nombre, en una regla validación, esto quedaría: 
 

 
 
Vemos que aquí como origen de la lista determinamos el rango con nombre que denominamos 
ARTICULOS. (Nota: Recordar el signo = puesto que no queremos hacer referencia a un texto sino a 
un rango). 
 
 
 
 
 
 
 
 
FORMATO CONDICIONAL 
 
Este tema a tratar será interesante para aplicar dinamismo en cuanto al formato de celdas. 
También nos servirá como aviso en determinadas planillas en las que busquemos que la misma 
cambie cuando un factor se cumpla. 
 
Esto se trata de una combinación entre la función condicional SI y la aplicación de formatos 
(bordes, sombreados, subrayado) en celdas y rangos. 
 
Tenemos básicamente dos maneras de aplicar este tema: 
 
1. Aplicación del formato condicional de acuerdo al valor de una celda 
2. Aplicación del formato condicional vinculado a una formula. 
 
Aplicaremos en primer lugar un formato condicional de acuerdo al valor de una celda. 
Por ejemplo si queremos que la planilla nos señale todo artículo cuyo Stock este por debajo de las 
70 unidades. 
 

 
 
Señalamos en primer lugar el rango al que le vamos a aplicar el formato condicional, en este caso 
el rango formado por las celdas que determinan el stock.  
En segundo lugar vamos al menú de formato – formato condicional. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
En el menú de formato condicional, en este caso la condición depende del Valor de la Celda, y a 
este valor lo podemos condicionar con operadores lógicos (<, >, <=, >=, =) por lo tanto podremos 
comparar los valores de las celdas con dichos operadores. 
 
En el caso que veíamos anteriormente determinamos que evalúe si el valor de la celda es menor a 
70, y en caso de ser verdadera esta prueba lógica, aplicamos el formato, dándole una trama con 
color rojo, lo que señalará la celda de este color cuando se cumpla esta condición. 
 
En el caso que queramos aplicar más de una condición podremos agregar hasta 3 condiciones en 
el formato condicional, como se muestra en el ejemplo a continuación: 
 

 
 
La opción de agregar nos permitirá ir agregando condiciones, con dicho límite de 3 condiciones en 
esta herramienta. 
 
 
NOTA: La posibilidad de agregar más condiciones en formato condicional se podrá manejar desde 
Macros en VBA. 
 
 
 
En el ejemplo visto anteriormente estamos aplicando color rojo a los artículos cuyo stock este por 
debajo de las 70 unidades, aplicaremos color azul a los artículos entre 70 y 99 unidades y por 
último si el artículo tiene 100 o mas unidades en su stock la celda se pintará de color de fondo 
verde. 
 
 
 
 
 
 
 
 
 
 
En caso de que queramos aplicar dicho formato condicional con estas mismas condiciones pero 
deseamos marcar toda la fila cuando se de las condiciones propuestas, esto lo haremos 
seleccionando en primer lugar toda la matriz de datos (desde A2:C9). 
 

 
 
Veamos que aquí comenzamos señalando el área (A2:C9), luego fuimos al menú formato – 
formato condicional, y dentro del área de definición de formato, aplicamos como condición la 
dependencia de una Fórmula, y dentro del rango donde se evalúa la fórmula, establecimos una 
referencia a la celda C2. 
 
Nótese que la celda C2 la reverenciamos aplicando en forma fija la columna y variable para la fila 
($C2) ya que el formato condicional lo aplicará para cada una de las filas marcadas (desde fila 2 a 
fila 9) pero lo aplicará siempre basándose en el valor de la columna C. 
 
A su vez es importante notar que la celda a la que refiere toda formula del formato condicional 
DEBERÁ SER SEÑALADA CON EL MOUSE PARA QUE NO LO TOME EN FORMATO TEXTO Y 
AGREGUE AUTOMATICAMENTE COMILLAS A LA SINTAXIS. 
 
De la misma manera que la vista anteriormente podríamos aplicar varias condicionales en este 
formato, pero siempre con la limitación de hasta 3 condiciones aplicadas. Como vemos a 
continuación: 
 
 
 
Un comentario adicional es el hecho de que para eliminar alguna de las condiciones propuestas en 
el formato condicional, simplemente volvemos a seleccionar el área a la que le queremos quitar en 
este caso el formato (A2:C9) y luego nos dirigimos nuevamente al menú de formato – formato 
condicional, y seleccionamos sobre el botón eliminar: 
 

 
 
 
Como vemos tenemos la opción de eliminar una de las condiciones propuestas, solo 2, o todas las 
condiciones que hayamos determinado. 
 
Es importante señalar el rango de antemano ya que si no, Excel no encontraría en que celdas se 
aplicó el formato condicional. 
 
 
 
 
 
 
En el siguiente ejemplo se mostrará esta herramienta aplicada con fórmulas de Excel, y la idea será 
que automáticamente queden marcados los cheques vencidos a la fecha actual (la fecha actual se 
calculará mediante la función HOY()). 
 

 
 
En este caso seleccionamos en primer lugar la matriz (A2:D5) y luego lo que hicimos fue aplicar el 
formato condicional, donde la condición depende de una fórmula y en la misma definimos la celda 
C2 en la cual fijamos la columna y dejamos como variable la fila ($C2) y comparamos con el 
operador menor o igual al resultado de la función HOY(), la cual nos obtendrá en forma 
automática la fecha actual del sistema. 
 
 
BÚSQUEDAS DE INFORMACIÓN 
 
Mencionamos en un ejemplo anterior que mediante la función BUSCARV podiamos realizar 
búsquedas en matrices, y extraer de las mismas un dato de determinada columna en particular. 
En este ejemplo veremos no solamente la aplicación de BUSCARV, sino también la función 
BUSCARH y las limitaciones que tenemos en el uso de dichas funciones. 
 

 
 
En este caso vemos la función BUSCARV, aplicada para buscar en base al código del artículo el 
stock del mismo. 
 
Mediante el pegado especial realizaremos un trasporte de dicha matriz, de la siguiente manera: 
1. Seleccionaremos mediante el Mouse toda la matriz de datos (A1:C9) 
2. Botón Derecho – Copiar 
3. Seleccionaremos la celda E1 
4. Botón Derecho – Pegado Especial 
5. En las opciones seleccionaremos – Trasponer (como lo vemos en la pantalla a 
continuación) 
 
 

 
 
 
Veamos como queda transpuesta la matriz original: 
 

 
 
 
El tema de transponer la matriz también nos servirá para ver la aplicación de la función BUSCARH 
que nos permitirá extraer el contenido de una FILA en particular de la matriz. 
 
En este caso en la celda E6, utilizaremos la función BUSCARH, para que al digitar un código de 
artículo, nos obtenga la descripción del mismo (fila 2 de la matriz). 
 
 
 
Por otro lado, una de las restricciones importantes que hay que destacar tanto en el BUSCARV 
como en el BUSCARH es el hecho de no contar con la posibilidad de basarme en un dato buscado y 
querer obtener una columna a la izquierda en el orden de la matriz, o una fila hacia arriba del dato 
buscado en el caso de BUSCARH. 
 
Por ejemplo si en el ejemplo anterior yo me baso en la descripción (como dato buscado) y en base 
a la descripción pretendo obtener el código de dicho artículo. 
 
Veamos por lo tanto la aplicación de dos funciones que nos permitirán solucionar este tema. Las 
funciones son INDICE y COINCIDIR. La aplicación es la siguiente: 
 
 
 
 
 
 
 
 
 
 
 
 
     El resultado será 5 (Nro de índice) 
 
 
En este caso aplicamos la función COINCIDIR, y dentro de sus argumentos colocamos, el valor 
buscado, en dicho ejemplo la celda A13, donde el usuario ingresó la descripción del artículo, como 
segundo argumento indicamos la columna B (rango B2:B9) que es donde realizaremos la búsqueda 
de dicha descripción, y por último como tercer argumento el número 0 que está indicando que la 
coincidencia debe ser exacta con el dato buscado. 
 
El resultado de la función COINCIDIR será 5, que es la posición del dato buscado en la lista de 
valores. O sea la devolución siempre me la da en el número de índice del dato buscado en la 
nomina de valores. 
 
Por otro lado si yo aplico la función INDICE de la siguiente forma: 
 

 
 
En cuanto a la función INDICE los argumentos son, la matriz de búsqueda, donde aquí señale la 
nomina de códigos de artículos, y como segundo argumento el número de fila del índice que debe 
buscar, en este caso 5. Este número 5 lo obtuve viendo el resultado obtenido por la función 
COINCIDIR en el dato anterior. 
 
Por lo tanto, y resumiendo, esto podría ser simplificado en una sola celda, de la siguiente forma: 
 
 
La función INDICE, me extrae el dato de una matriz de 
acuerdo a la ubicación de este dato en dicha matriz. 
Mientras tanto la función COINCIDIR lo que está 
haciendo es buscando el dato en una matriz de 
información, y buscando la posición de este dato, con 
una coincidencia exacta. 

 
 
 
 
 
FUNCIONES DE FECHA Y HORA 
 

 
 
Aplicaremos en este ejemplo las funciones de fecha y hora que nos provee Excel. 
Para comenzar, si yo quisiera obtener los días corridos en que se implementó cada una de las 
tareas, tenemos que entender que TODA fecha que ingresemos en Excel, esta fecha la lectura que 
tendrá será en número de días, comenzando con el número 1 correspondiente al 01/01/1900. 
 
Por lo tanto si en una celda yo coloco la función =HOY() y esta me devuelve la fecha actual, 
supongamos 17/10/2007, en realidad el contenido REAL de la celda será el número 39372. 
 
Basta con cambiar el formato de la celda, a un formato numérico y vemos el resultado. 
 
Entonces, si yo necesito saber los días que tomó cada tarea simplemente puedo restar las celdas 
de columna C y columna B, y tengo el resultado esperado. (NO OLVIDAR ASIGNAR FORMATO 
NUMÉRICO A LA COLUMNA D, para obtener en cantidad de días). 
 

 
 
Hasta aquí no hemos aplicado ninguna función en particular. El tema se da cuando tengo que 
calcular días habiles entre la fecha de inicio y fecha de fin. Para utilizar este tipo de funciones, 
Excel nos provee de COMPLEMENTOS. En este caso debemos habilitar el COMPLEMENTO de 
HERRAMIENTAS PARA ANÁLISIS, de la siguiente manera: 
 
 
En el menú de Herramientas – Complementos 
tendremos la posibilidad de ver los complementos 
que tenemos y podremos marcar los que 
necesitemos. 
Recordar que todos los complementos que 
marquemos quedarán habilitados de ahora en más 
en TODAS las sesiones que iniciemos con Excel, 
dentro de dicha PC. 
 
 
 
 
En este caso habilitamos el COMPLEMENTO de HERRAMIENTAS PARA ANÁLISIS, que es el que nos 
proveerá de las funciones necesarias a aplicar. 
 
Para el cálculo de días hábiles utilizaremos la función DIAS.LAB 
En dicha función los argumentos serán =DIAS.LAB (FECHA INICIO; FECHA FIN; [FERIADOS]) 
 

 
 
El argumento de FERIADOS es opcional, ya que podríamos omitirlo y la función de todas maneras 
me realizaría el cálculo. La idea es que al tener el argumento de FERIADOS, no solo excluya de los 
días hábiles sábados y domingos sino también los feriados que aparecen en la nómina. 
 
Podríamos comprender dentro de esta nómina feriados no laborables, y laborables, eso lo 
seleccionará quien esté a cargo del desarrollo de la planilla. 
 
No olvidemos fijar el rango donde dispusimos los FERIADOS ya que al copiar la fórmula se debe 
contemplar este rango como FIJO. 
 
 
 
 
 
 
En el siguiente ejemplo vamos contemplar los días para la entrega de determinados pedidos. 
 
Si los días fueran corridos simplemente digitamos: =B2+C2 
 

 
 
Pero en el caso de que a partir de la fecha de pedido yo quiera agregar cierta cantidad de DIAS 
HÁBILES, aquí el tema cambia, y aplicaremos para esto la función: DIA.LAB(FECHA INICIO; DIAS 
LABORALES; [FERIADOS]) 
 

 
 
Lo que nos implementa dicha función es la posibilidad de que a cierta fecha se le agreguen o se le 
descuenten cierta cantidad de días hábiles, agregando como argumento opcional los feriados. 
 
Recordar que, para estos casos, también puede resultar común querer visualizar a partir de 
determinada fecha, el día de la semana a la que corresponde. Para ello tenemos la función 
DIASEM, que, a partir de una fecha nos dice qué día de la semana corresponde. 
 
 
 
Veamos que la función DIASEM, nos devuelve un número correspondiente al día de la semana que 
nos cae esa fecha, desde el 1 para domingo, hasta el 7 para sábado.  
 
Si quisiéramos que esto nos de exactamente en letras el día de la semana, basta con cambiar el 
formato de la celda para personalizarlo como vemos a continuación: 
 

 
 
Al dar botón derecho, formato sobre dichas celdas en las que aplicamos la función DIASEM, vamos 
a Personalizada, y en el Tipo, podremos optar por DDDD para que nos de en letras el día 
correspondiente de la semana. 
 
Nota: si hubiéramos escrito DDD, nos daría la abreviación del día de la semana. 
 
 
 
 
 
 
Trabajando con HORAS 
 
Veamos en la siguiente planilla en la que 
ingresamos los horarios de entrada y salida de un 
empleado a la empresa. 
No se presentan problemas, al restar en cada día de 
la semana las horas de salida y las de entrada. 
Ahora al momento de calcular el total de horas que 
este empleado realizó en toda la semana, veamos lo 
que sucede: 
 
 
 
 
 
En este caso aplicamos la función SUMA para tomar 
en cuenta el rango de horas, y poder obtener el total 
de horas. Pero Excel muestra un resultado que no es 
del todo correcto. 
En realidad el cálculo internamente lo realiza 
correctamente pero el resultado lo expresa en días, y 
por lo tanto esto sería 1 día, 19 horas, y 14 minutos. 
 
Lo único que hacemos es cambiar el formato de la 
celda, para que refleje el resultado en TOTAL de 
horas. Veamos como realizar este paso: 
 

 
 
Al momento de calcular el pago a realizar, tomo la celda del total de horas, multiplico por 24 para 
pasar el resultado a horas, y luego por el precio hora. Recordar que mas allá del cambio de 
formato que hicimos, internamente Excel sigue reconociendo dicha celda en termino de días y no 
en termino de horas. 
 
 
BUSCAR OBJETIVO  Y SOLVER 
 
Estas dos herramientas nos servirán en determinadas ocasiones en las que queramos realizar 
previsiones o estimaciones en Excel. 
Pasemos al siguiente ejemplo: 
 
En este caso manejamos un ejemplo donde un restaurante que 
vende café, tiene su precio unitario en 30 pesos, y a través de la 
cantidad de tazas vendidas genera el total de la recaudación. 
 
Debemos tomar en cuenta que esta estructura se debe contemplar 
para la aplicación de BUSCAR OBJETIVO, donde una fórmula debe 
generar la dependencia de un conjunto de factores (celdas dependientes) que resuelven el 
esquema (en este caso la recaudación depende de la cantidad de tazas vendidas y del precio 
unitario). 
 
Para utilizar la herramienta, vamos a Menú Herramientas – Buscar Objetivo: 
 

 
 
En la pantalla de configuración: Definir la celda: en este caso B3, celda que contiene fórmula 
dentro de la planilla. 
 
Con el valor: vamos a definir como valor 6000 pesos (total de recaudación estimada, o previsión de 
recaudación). 
 
Para cambiar la celda: B2 (celda que actúa como variable del sistema, y que calculará 
automáticamente la herramienta) 
 

     
 
 
 
 
En este caso, yo podría haber resuelto el sistema perfectamente mediante una regla de tres 
simple, pero en casos más complejos como el que vemos a continuación el cálculo de la 
estimación sería posible con mayor esfuerzo: 
 
En este caso planteamos un ejemplo donde se otorga un 
préstamos de 20000 a una tasa anual del 8% y donde se 
pagarán 12 cuotas. La función pago como vemos nos calculará 
de forma automática la cuota a pagar, que en dicho caso será 
de 1739 (Nota: el valor resultante será negativo ya que las 
funciones financieras toman los egresos con este signo). 
 
Ahora, veamos que sucede si en este caso quisiéramos 
estimar cual sería el monto del préstamo que podríamos 
obtener si se mantienen las condiciones, pero sabemos que 
podemos pagar una cuota máxima de 1500. Para esto 
aplicamos la Herramienta Buscar Objetivo de la siguiente manera: 
 

 
 
El sistema nos resuelve y dirá que mediante el pago de una cuota de 1500 y manteniendo las 
condiciones, llegaremos a obtener un préstamo de 17243. 
 
La herramienta siempre trabaja con una variable a calcular y una fórmula cuyo resultado final será 
estimado por el operador. 
 
Veamos que en este último ejemplo nuestro supuesto es estimar un valor de cuota de 1500 (léase 
que debe ser negativo, por tomarse como un egreso financiero), y manteniendo las condiciones, 
se calculará el montó del préstamo al que la persona podrá acceder. 
 
En el caso de la herramienta SOLVER, actúa como COMPLEMENTO de Excel por lo tanto hay que 
habilitarlo, dentro del menú Herramientas – Complementos, y tildar la casilla de verificación en 
caso de que dicha herramienta no estuviere previamente instalada en la PC que estemos 
manejando. 
 
 
 
 
 
 
SOLVER 
 
Esta herramienta es similar a Buscar Objetivo con la salvedad de contar con la ventaja de resolver 
sistemas con determinada cantidad de variables, y con la posibilidad de establecer  restricciones, 
que acerquen el sistema a una realidad planteada. 
 
Veamos el siguiente caso: 
 
 
 

   
 
En este caso establecimos una planilla similar a la planilla que trabajamos anteriormente. Se trata 
de un restaurante que vende varios tipos de Café, entre ellos Café común, Café Cortado, Café 
Capuchino. Aplicamos en el menú Herramientas – Solver la configuración de dicho sistema. 
 
Entonces: en Celda Objetivo establecemos la celda que vamos a estimar, en este caso la celda del 
total recaudado por el restaurante, luego establecemos el importe del valor estimado para dicha 
celda. 
 
En la referencia de cambiando las celdas establecemos las celdas que se van a calcular 
automáticamente por la resolución del sistema, en el caso nuestro marcaremos mediante la tecla 
CTRL cada una de las celdas que tiene la cantidad de tazas de cada tipo de café. 
 
Por último, en el área inferior izquierda de esta pantalla establecemos mediante el botón agregar, 
la/las restricciones del sistema, en este caso nuestra única restricción fue agregar a la celda B10 
que contiene el total de tazas vendidas de café capuccino, que el limite es que dicha celda 
contenga un valor menor a 50. Podemos agregar múltiples restricciones ya que cada vez que 
queramos agregar una restricción mas, solo presionaremos en el botón agregar lo que nos 
permitirá ir agregando nuevas restricciones. También tenemos la posibilidad de cambiar, y 
eliminar restricciones mediante los botones asociados. 
 
Una vez que terminamos la definición de dicha pantalla mediante el botón RESOLVER, el sistema 
nos genera una solución para el esquema propuesto y nos muestra la siguiente pantalla: 
 
 
El esquema queda resuelto y vemos la solución final en la planilla. Podemos en esta pantalla 
marcar la opción de Utilizar la solución encontrada por SOLVER, o también podemos Restaurar 
valores originales para regresar al estado inicial de la planilla antes de resolver el esquema. 
 
Las aplicaciones de dicha herramientas son muchísimas, tanto en ámbitos de estadística, 
probabilidad, como también en materia de Matemáticas, Ingeniería y Economía. 
 
Podemos ver varios ejemplos aplicados si buscamos el archivo SOLVSAMP.xls que se encuentra en 
C:\Archivos de Programa\Microsoft Office\Office10\SAMPLES\ 
MÓDULO 
 
ANÁLISIS 
 
DE 
 
INFORMACIÓN 
 
 
 
Módulo: Análisis de Información 
 
En este módulo se verá la aplicación de herramientas volcadas al análisis de información dentro de 
Excel.  
En primer lugar, con un ejemplo se aplicará el uso de los diferentes tipos de filtros que nos provee 
la herramienta. 
Veamos el siguiente ejemplo: 
 
En esta planilla aplicaremos el primer tipo de 
filtro, que será el Autofiltro y que nos permitirá 
aplicar filtros automáticos en la planilla de una 
forma muy sencilla. 
 
Para aplicarlo bastará con posicionarnos en 
cualquier celda de nuestra base de datos y 
luego mediante el menú de Daots – Filtro – 
Autofiltro comenzaremos la aplicación del 
mismo. 
 
 
 
 
 

 
La planilla nos quedará de la siguiente manera: 
 
Veamos en primer lugar, que cuando 
nosotros marcamos en el menú de datos – 
filtros – autofiltro, este actúa como un 
subrayado, donde podemos tildar y destildar 
esta opción, en caso que queramos deja de 
utilizar el Autofiltro en algún momento. 
 
El autofiltro nos da esta opción del cuadro 
desplegable en el título de cada campo de la 
base de datos. 
 
Bastará con pinchar en el cuadro desplegable 
para poder seleccionar el criterio a aplicar 
para filtrar la información sobre dicho campo.  
Por ejemplo, si en esta planilla yo quisiera 
solo ver las ventas del vendedor Díaz, solo 
seleccionaré Díaz en las opciones del campo 
Vendedores, y esto me aplicará automáticamente el filtro con dicho criterio. 
 
A continuación se da el ejemplo de cómo aparece la planilla con el filtro aplicado: 
 
 
En el caso anterior el sistema en forma automática oculta las filas del resto de vendedores y deja 
solo visibles las ventas del vendedor seleccionado. 
 
Podemos a su vez aplicar otro filtro en forma simultanea sobre otro de los campos como por 
ejemplo el campo de Región, solo bastará con seleccionar de dicho campo la opción de la región 
que necesitaremos visualizar y la herramienta aplicará este filtro en forma totalmente dinámica. 
 

 
 
QUITAR AUTOFILTROS – RESTABLECER BASE DE DATOS 
 
En caso de que en algún momento, apliquemos varios filtros de acuerdo a varios campos y en 
algún momento queramos quitar dicho filtro, existen dos opciones: podemos quitar el autofiltro 
directamente yendo al menú de datos – filtros – autofiltro, o también mediante el menú de datos 
– filtros – mostrar todos (esto muestra nuevamente todos los datos originales de la base de datos 
pero mantiene el autofiltro. 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
CRITERIOS PERSONALIZADOS 
 
También muchas veces se puede dar el caso de que el criterio para filtrar la información no este 
disponible en forma directa sobre el campo que queramos filtrar, y por lo tanto, del cuadro 
desplegable recurrimos a la opción de Personalizar, para este campo: 
 

 
 
Cuando seleccionamos la opción Personalizar, podremos aplicar criterios un poco mas avanzados 
para filtrar dicho campo: 
 

 
 
En este caso, como nos posicionamos sobre el campo Ventas 2005, y seleccionamos la opción de 
Personalizar, allí podemos ver que en nuestro caso aplicamos dos criterios que señalan que el 
filtro será tomar únicamente Ventas 2005 con valores mayores o iguales a 80000 y menores o 
iguales a 100000. Podemos ver a su vez que existen múltiples criterios que podemos aplicar sobre 
dicho campo. 
 
La planilla luego de aplicar dicho filtro ser verá de la siguiente manera: 
 

 
 
Un detalle sumamente importante a tomar en cuenta es el hecho de que si en dicha planilla 
quisiéramos en algún momento obtener la suma de ventas del 2005 pero únicamente de los datos 
visibles no podemos aplicar la función =SUMA (C2:C15), puesto que tomaría todas las filas (tanto 
visibles como no visibles). 
 
Para este tipo de casos aplicamos la función =SUBTOTALES (9;C2:C15) 
 

SUBTOTALES (núm_función; ref1, ref2,...) 

Núm_función  Función 
1  PROMEDIO 
2  CONTAR 
3  CONTARA 
4  MAX 
5  MIN 
6  PRODUCTO 
7  DESVEST 
8  DESVESTP 
9  SUMA 
10  VAR 
11  VARP 
 
 
Veamos en el ejemplo dado, los resultados de la función SUMA y SUBTOTALES aplicados para 
dicho rango de celdas (C2:C15). 
 
 
 
NOTA: También podríamos haber utilizado el botón ∑  
Dicho botón aplica automáticamente la función correcta según encuentre celdas ocultas o no en 
ese rango (aplica función SUMA en caso de que no existan filas ocultas, y aplica en forma 
predeterminada SUBTOTALES cuando encuentra filas ocultas en el rango). 
 
El autofiltro también nos permite filtros personalizados en el caso de columnas con datos tipo 
TEXTO, por ejemplo si yo quisiera obtener los datos de ventas de aquellos vendedores cuyo 
apellido termine con letra S. 
 

 
 
En dicho ejemplo se aplica sobre el campo Vendedores, el criterio de personalización y luego el 
filtro que determina que dicho campo muestre únicamente registros que termina con letra s. 
 
 
 
 
 
 
 
 
Hay una limitación en la aplicación del autofiltro y es, justamente la consigna para pasar al 
siguiente tema. No podemos mediante el autofiltro aplicar criterios que comparen campos por 
ejemplo, en el siguiente caso, vamos a aplicar un filtro que nos exponga únicamente las ventas del 
2005 superiores a las del 2006. 
 
Eso lo lograremos con el Filtro Avanzado: 
 

 
 
Recordemos que para poder aplicar el filtro avanzado debemos hacerlo sin tener la opción de 
autofiltro encendido. Por lo tanto si tenemos el autofiltro, debemos apagarlo yendo a Datos – 
Filtro – Autofiltro. 
 
Para aplicar el filtro avanzado vamos a Datos – Filtro – Filtro Avanzado, y luego: 
 
 

 
Veamos que como criterios aplicamos la comparación entre la celda C2 y D2, donde solo 
colocamos la fórmula =C2>D2 
 
En el cuadro que nos aparece cuando aplicamos el filtro: 
 
Como Rango de la lista: A1:D19 (marcamos la base de datos completa) 
 
Rango de Criterios: F7:F7 (marcamos las dos celdas, el título del criterio, y la celda que contiene el 
criterio propiamente dicho) 
 
Veamos que en dicho cuadro en este caso aplicamos la opción que aparece por defecto que es: 
Filtrar la lista sin moverla a otro lugar, ya que lo que queríamos era aplicar el filtro directamente 
en la base de datos. 
 
En la siguiente pantalla se expone como el filtro aplica dicho criterio directo sobre la base de 
datos: 
 
 

 
 
Aquí volvemos a comentar el hecho de que si queremos obtener la sumatoria de ventas de 2005 o 
2006, no debemos usar la función SUMA, puesto que deberíamos utilizar la función SUBTOTALES. 
 
Para restaurar la base de datos volvemos al menú Datos – Filtro – Mostrar Todo, como se presenta 
en la siguiente pantalla: 
 
 

 
     
 
 
 
En el caso de querer aplicar filtros en forma simultánea, tendremos que armar dichos criterios en 
la misma línea. En el siguiente ejemplo veremos la aplicación de un filtro donde vemos las ventas 
2005 superiores a las del 2006, pero solo de la Región Sur, veamos no solo la aplicación del filtro, 
sino el armado de dichos criterios: 
 

 
 
 
Aquí veamos que como Rango de Criterios marcamos F6:G7, ya que los criterios en este caso son 
2, uno que aplica sobre el campo Región, donde se extrae solo datos que coincidan con Región 
SUR, y por otro lado, el siguiente criterio (le dimos un título arbitrario, en este caso “Criterio”), 
donde hicimos la comparación de uno de los registros de ventas 2005 contra un dato de ventas 
2006. 
 
 
 
Así nos quedarían los datos filtrados, de ventas de Región SUR, donde las Ventas 2005 superan a 
las del 2006: 
 
 
 

 
 
 
 
 
 
 
 
Veamos que sucede si los criterios son los mismos pero no respetamos el tema de que sean en la 
misma línea: 
 
 
 
 

 
 
 
 
 
 
Aquí se puede ver que aplicamos un filtro donde la Región es SUR, pero no hace al mismo tiempo 
comparativo de ventas entre el año 2005 y 2006, mientras que para el resto de ventas de otras 
Regiones SÍ aplica el criterio de comparar las ventas 2005, y que dichas ventas sean superiores a 
las del año 2006. 
 
 
 
 
 
Podemos seguir aplicando criterios, pero siempre que apliquemos varios criterios, tienen que estar 
armados diferenciando los campos de la base de datos, pero también en el mismo orden que 
aparecen dichos campos en la base de datos. 
 
 
 
 
 
 
 
 
 
Veamos ahora en un ejemplo donde apliquemos este mismo filtro pero con una extracción de una 
sub base de datos para no modificar la base original: 
 
 
 

 
 
 
En la pantalla que nos aparece en este caso marcamos la opción de Copiar a otro lugar, y 
nuevamente en: 
 
Rango de la lista: A1:D19 (nuevamente marcamos toda la base de datos) 
 
Rango de criterios: F6:G8 (aquí marcamos todos los criterios, en este caso los dos criterios) 
 
Copiar a: Aquí marcamos una celda cualquiera vacía ya que a partir de ahí se va a generar la sub 
base de datos con los datos que cumplan con los criterios pautados. 
 
 
Si en dicho ejemplo planteamos que la sub base de datos solo obtenga los campos de Vendedores, 
Ventas 2005 y Ventas 2006 excluyendo la Región, deberíamos armar a priori los títulos de los 
campos que van a formar dicha sub base de datos: 
 
 
 
 
Aquí marcamos en el cuadro, en el renglón Copiar a: F11:H11 (celdas donde se encuentran los 
títulos de la sub base de datos que se va a armar con los datos filtrados) 
 
A continuación vemos el resultado final de dicho filtro: 
 

 
 
 
 
 
 
 
 
Tablas Dinámicas 
 
Utilizando la base de datos del ejemplo anterior generaremos nuestra primera tabla dinámica. 
Esta herramienta nos permitirá cruzar de diversas formas información de una base de datos, tanto 
sea una base armada en Excel, como también en fuentes de datos externas (como archivos de 
texto, bases de Access, SQL, DBase, etc.) 
 
 
 
Para comenzar nos guiaremos mediante el Asistente, que encontramos en Datos – Informe de 
Tablas y Gráficos Dinámicos, como vemos en la siguiente pantalla: 
 
 
 

 
 
 
 
 
 
En la primera pantalla del asistente tendremos las opciones para elegir el origen de los datos que 
se van a tomar en la tabla dinámica, y en dicha pantalla en la parte inferior elegimos el tipo de 
informe a obtener, y que puede ser Tabla Dinámica o Gráfico Dinámico: 
 
 
 
 
 
En esta primera pantalla nosotros elegimos las opciones que vienen como predeterminadas ya que 
la base de datos nuestra proviene de una lista que armamos previamente en Excel y el informe de 
salida es efectivamente una tabla dinámica. 
 
Presionamos en el botón siguiente para pasar a la segunda pantalla: 
 

 
 
El Rango es el que se forma por toda nuestra base de datos, recordar que en el caso de querer 
tomar solo determinados campos, mediante la tecla control presionada podemos marcar solo 
dichos campos para que formen parte de nuestra tabla dinámica. 
 
Pasemos con el botón siguiente a la tercera pantalla de nuestro asistente 
 
 
 
 
En esta tercera pantalla del asistente, podremos elegir la ubicación de nuestra tabla dinámica, la 
cual podemos establecer en una hoja de cálculo nueva, o también en una hoja de cálculo 
existente. Tomemos en cuenta que en el caso de que marquemos hoja de cálculo existente, 
debemos marcar una celda que formará el ángulo superior izquierdo de nuestra tabla dinámica 
por lo tanto tener presente que desde esta celda hacia abajo y hacia la derecha exista lugar vacío y 
disponible en dicha planilla de cálculo. 
 
Veamos el resultado que obtenemos al dar finalizar (en este caso seleccionamos la opción de 
volcar la tabla dinámica en una hoja nueva): 
 

 
 
 
Toda tabla dinámica se formará por 4 cuadrantes que serán: 
 
• Campos de Fila 
• Campos de Columna 
• Campos de Datos 
• Campo de Página 
 
Podremos arrastrar cualquiera de nuestros campos de la base de datos que tenemos en la lista 
que aparece a la derecha hacia el área de nuestra tabla dinámica donde queramos disponer dicho 
campo.  
 
Es sumamente importante tener presente en un principio cual es el resultado que se desea 
obtener, para no perdernos entre tantas opciones que tenemos en los campos que tenemos en la 
base de datos. 
 
En este primer ejemplo vamos a pedir el total de ventas del 2005 para cada uno de los 
vendedores: 
 

 
 
 
Aquí lo que hicimos fue arrastrar (con el botón izquierdo presionado) el campo de vendedores al 
área de Fila (vemos que cada vendedor aparece en una fila diferente), y llevamos el campo de 
Ventas 2005 al área de Datos (vemos que las ventas de 2005 aparecen cada una en dicha área). 
 
 
 
Hay que tener presente que Excel es realmente sensible respecto a cada una de estas áreas por lo 
tanto tratemos siempre de trasladar cada campo hacia el área correspondiente en la forma mas 
exacta posible. 
 
 
 
 
En caso de que cambiemos de opinión y nos parezca mejor obtener el total de ventas 2005 pero 
de cada región y no de cada vendedor puedo trasladar el campo de vendedores de regreso a la 
Lista de campos de tabla dinámica, y trasladar a continuación, el campo de Región nuevamente al 
área de fila: 
 
 
 
 
 
 
 
 
Aquí vemos que quitamos el campo de vendedores, y ahora vamos a colocar el campo de Región, 
solo volvemos a arrastrar dicho campo al área de filas y nos queda como vemos a continuación: 
 
 

 
 
 
 
 
En dicho ejemplo vemos que lo que logramos en este último caso es totalizar las ventas del 2005 
para cada una de las regiones. 
 
 
 
 
Pero volviendo al caso anterior podríamos querer obtener ambos resultados, o sea las ventas de 
2005 de cada vendedor y también por región, como presentamos en la siguiente pantalla: 
 
 
 
 
En este caso trasladamos el campo de Vendedores al área de FILA y el campo de Regiones al área 
de COLUMNAS. El campo de ventas 2005 quedó dispuesto como antes en el área de DATOS. 
 
FILTROS EN TABLAS DINÁMICAS 
 
 
También tenemos la opción de aplicar filtros en la tabla dinámica, mediante el cuadro desplegable 
de los títulos del campo fila (en este caso vendedores) y también en el título del campo de 
columna (en este caso Región). 
 
 

 
 
 
 
En este caso al igual que como hacíamos en el autofiltro, elegimos los criterios de filtrado que 
vamos a aplicar sobre dicho campo. En el caso anterior filtramos para que solo despliegue las 
ventas de los vendedores Morales y Vega, que son los que dejamos tildados en el cuadro 
desplegable. 
 
 
 
 
Si quisiéramos obtener además de las ventas del 2005, también las del 2006, simplemente 
agregamos este último campo en el área de datos: 
 

   
 
Vemos que aquí obtenemos dos campos en el área de datos, y tenemos los totales tanto por 
vendedor como también por región de los años 2005 y 2006. 
 
Podemos aplicar también un filtro que nos muestre por ejemplo determinada región (SUR por 
ejemplo): 
 
 
 

 
 
 
 
 
 
Cada filtro aplicado se refleja inmediatamente en el resultado de nuestra tabla dinámica.  
 
ACTUALIZACIONES EN TABLAS DINÁMICAS 
 
Apliquemos en principio el primer tipo de actualización que se puede dar: 
‐ Cambiando datos en la base de dato original. Tomemos algún dato de la base de datos 
original y modifiquemos este dato sustancialmente para que veamos reflejado este 
cambio en la tabla dinámica. 
 

 
 
Veamos que en este caso se modificó el primer registro de la base de datos, sin embargo cuando 
regresamos a la tabla dinámica, esta permanece exactamente  igual que como estaba antes de 
realizar el cambio. 
 

 
 
 
 
Para que el cambio se realice y se vea reflejado en la tabla dinámica deberemos dar clic en el 
botón de actualizar (botón con el signo de !) en la barra de herramientas de tabla dinámica. 
 
En caso de no tener dicho botón disponible podremos recurrir al menú VER – BARRA DE 
HERRAMIENTAS – TABLAS DINÁMICAS, y luego dar clic sobre este botón pare ver el cambio 
realizado: 
 

 
 
Al presionar sobre el botón vemos que la tabla dinámica recalcula los valores y nos muestra el 
detalle que vemos a continuación: 
 

 
 
 
Hay un tema muy importante a destacar, y es el hecho de que la tabla dinámica no es sensible a la 
incorporación de nuevos registros (nuevas líneas) en la base de datos original, así como a la 
inserción de columnas en la base de datos original. 
 
A continuación haremos referencia al concepto y metodología a manejar cuando agregamos 
nuevos registros en la base de datos original. 
 
 
 
 
 
 
 
 
 
ACTUALIZACIÓN DE TABLAS DINÁMICAS (CON INSERCIÓN DE DATOS EN LA BASE DE DATOS 
ORIGINAL) 
 
En este ejemplo vamos a agregar una línea adicional en la base de datos, haremos referencia a una 
venta en una región que hasta ahora no habíamos cargado: 
 

 
 
El último registro fue agregado en la base de datos, sin embargo cuando regresamos a la tabla 
dinámica, ésta no refleja el cambio que realizamos en la base de datos. Pero nos encontramos que 
presionando el botón de actualizar en la barra de herramientas de tabla dinámica tampoco nos 
refleja el cambio. 
 
 
 
 
Para que el cambio se refleje en nuestra tabla dinámica realizaremos el siguiente procedimiento: 
 
 
 
1. Vamos a la barra de herramientas tabla dinámica, mediante el menú VER – BARRA DE 
HERRAMIENTAS – TABLA DINÁMICA 
2. Una vez que tenemos la barra de herramientas disponible, vamos al botón Tabla Dinámica, 
y allí elegimos Asistente: 
 
 
 
 
Cuando presionamos en la opción de asistente, este nos despliega la última pantalla del asistente 
de tablas dinámicas, al presionar el botón de atrás vemos que nos permite redimensionar la base 
de datos original: 
 

 
 
 
En este caso marcaremos el rango A1:D20, agregando de esta manera el nuevo registro a la base 
de datos, luego presionamos en el botón siguiente, pasando a la última pantalla del asistente y por 
último finalizar. 
 
Vemos a continuación la imagen de nuestra tabla dinámica actualizada mediante el asistente de 
tablas dinámicas: 
 

 
 
 
Agreguemos a continuación en nuestra base de datos original una nueva columna que nos refleje 
el país a donde se realizó cada una de las transacciones con lo que la base de datos quedará de la 
siguiente manera: 
 

 
 
 
Al presionar el botón de actualizar en la barra de herramientas de tabla dinámica, nos aparece en 
la lista de campos, el nuevo campo PAÍS que podremos utilizar para agregar en la tabla dinámica: 
 
 
 
 
Agreguemos dicho campo en el área de Página y veamos el efecto que resulta de esto: 
 

 
 
Al agregar dicho campo en el área de página podremos resumir la tabla dinámica de acuerdo a 
dicho campo. En el siguiente caso, al seleccionar un país (por ejemplo Argentina) veamos el efecto 
que produce sobre los datos de nuestra tabla dinámica: 
 
 

 
 
 
La tabla dinámica pasa ahora a mostrar las ventas de cada vendedor de los años 2005 y 2006, 
también con la posibilidad de ver la división por región pero UNICAMENTE DEL PAÍS ARGENTINA 
(que actúa como filtro de nuestra tabla dinámica). 
 
 
 
 
 
 
CAMBIOS SOBRE LAS OPERACIONES DE CAMPOS DE DATOS 
 
En este caso seguiremos trabajando con la base de datos de ejemplo pero vamos a aplicar otra 
operación sobre el campo de ventas 2005, en lugar de pedir el total de ventas 2005 (suma de 
ventas 2005) solicitaremos el promedio de ventas 2005. 
 
Para simplificar solo trabajaremos con los campos de vendedores y ventas 2005: 
 
 

 
 
Aquí por ahora solo vemos la operación simple donde nos muestra la suma de ventas 2005, 
veamos como hacemos para cambiar la operación predeterminada del campo de datos: 
 
1. Nos posicionamos sobre cualquiera de los datos, de importes de nuestra tabla dinámica y 
presionamos el botón derecho del Mouse, y allí seleccionamos la opción de 
CONFIGURACIÓN DE CAMPO 
 

 
 
 
 
 
 
2. En la pantalla que nos aparece podremos seleccionar el tipo de operación que aplicaremos 
sobre dicho campo: 
 

 
 
Vemos que podemos aplicar como operación la SUMA, CUENTA, PROMEDIO, MÁXIMO, MÍNIMO, 
PRODUCTO…   
 
En nuestro caso vamos a seleccionar como opción PROMEDIO, para que nos aplique dicha 
operación sobre el campo de Ventas 2005. 
 
También podremos en dicho cuadro, sobre la línea de Nombre, ajustar el nombre a reflejar de 
dicho campo. 
 
 

 
 
 
Tenemos la opción también de agregar el mismo campo un sin numero de veces para que este 
refleje operaciones diferentes. 
 
 
Por ejemplo, si necesito que la tabla dinámica refleje la suma de ventas 2005 pero además, nos 
provea del promedio de ventas 2005 para cada vendedor. Arrastramos dos veces el campo de 
ventas 2005 hacia el área de datos, y simplemente a uno de los campos le cambiamos la 
configuración de campo: 
 

 
 
 
También cuando realizamos la configuración de campo podremos tener mas opciones, como por 
ejemplo desplegar el % de ponderación de cada venta, con respecto al total de ventas del año 
como podemos ver a continuación: 
 
 

 
 
 
 
En la pantalla de configuración de campo: 
 

 
 
 
La tabla dinámica nos mostrará el siguiente resultado: 
 

 
 
 
 
No olvidemos que podríamos presentar los importes de ventas 2005, y luego arrastrar 
nuevamente el campo para realizar esta configuración para que además de los importes refleje 
también los porcentajes de ventas. 
 
 
 
 
TABLAS DINÁMICAS CON IMPORTACION DE DATOS DESDE ACCESS 
 
Veamos en un ejemplo los pasos que debemos cumplir si queremos armar una tabla dinámica 
para analizar información de una base de datos que la empresa tiene en Microsoft Access. 
 
Comenzamos el asistente de la misma manera que lo hicimos antes, mediante el menú de Datos – 
Informe de Tablas y Gráficos dinámicos 
 

 
 
 
 
 
 
 
 
 
 
En la primera pantalla del asistente, elegimos como opción FUENTE DE DATOS EXTERNA: 
 

 
 
Al presionar el botón siguiente, vemos que el asistente cambia con respecto al que veíamos en el 
capítulo anterior: 
 

 
 
Presionando el botón de Obtener Datos, seleccionamos el Origen de Datos (es el software donde 
está alojada la base de datos). Muchas veces se confunde esta pantalla con la elección directa de 
la base de datos. 
Seleccionamos en este caso MS Access Database, que es el software donde tenemos la base de 
datos, y al dar aceptar, podremos recorrer las carpetas hasta encontrar la base de datos, en este 
caso recorremos C:\Archivos de Programa\Microsoft Office\Office11\Samples 
 

 
 
Cuando seleccionamos la base de datos, en este caso NEPTUNO, nos aparece la siguiente pantalla: 

 
 
Aquí nos refleja las diferentes tablas de las que está compuesta la base de datos, y de la que 
podremos tomar determinadas tablas, completas, por ejemplo la de CLIENTES, o también 
podremos presionar en el signo + para desplegar los campos de los que está compuesta la tabla. 
En el siguiente ejemplo tomaremos determinados campos de las tablas de Clientes, Productos, 
Categorías, y Productos. 
 

 
 
Cada uno de los campos que queramos incorporar en la tabla dinámica lo pasaremos al área 
derecha de la pantalla, en el área de columnas en la consulta. 
 
Cuando presionamos el botón siguiente: 
 

 
 
En esta pantalla tendremos la posibilidad de filtrar la información de los campos de acuerdo a uno 
o varios criterios que seleccionemos. 
 
 
 
 
 
En la siguiente pantalla podremos seleccionar un orden determinado a establecer, de acuerdo a 
un campo que seleccionemos, en forma ascendente o descendente. 
 

 
 
En la última pantalla seleccionamos la opción que aparece en forma predeterminada, y 
devolvemos los datos directamente a Microsoft Excel, y le damos siguiente en la pantalla del 
asistente: 
 
 

 
Llegamos en esta etapa final, a la misma pantalla, que en el capítulo anterior donde tendremos el 
esqueleto de la tabla dinámica: 
 

 
 
Aquí podremos armar la tabla dinámica simplemente ajustando los campos y llevándolos al área 
de fila, área de columnas, y al área de datos. 
 
 
Recordemos que desde aquí podemos lograr lo mismo que ya realizamos en el capítulo anterior 
con datos de una base de datos de Excel: 
 
 

 
 
 
GRAFICOS DINÁMICOS 
 
Para generar una tabla dinámica, y a partir de la misma, reflejar un gráfico dinámico, simplemente 
nos posicionamos en cualquiera de los campos de la tabla dinámica y mediante el botón derecho 
del Mouse tendremos la opción de generar el gráfico. 
 
Veamos en el siguiente ejemplo: 
 
 

 
 
 
 
 
 
Mediante la opción de Gráfico dinámico, este nos generará en una nueva hoja el gráfico dinámico 
que se desprende de la tabla dinámica generada anteriormente. 
 
 
 
 
 
Dentro del Gráfico dinámico podremos ajustar y cambiar de posición cualquiera de los campos, 
pero siempre tomando en cuenta que al cambiar el gráfico dinámico, también cambiará en forma 
simultanea la tabla dinámica de la cual depende. 
 
El Gráfico dinámico tiene a su vez 4 áreas diferenciadas, y son: 
 
1. Campos de categorías (en este caso vendedores) 
2. Campos de serie (en este caso no tenemos) 
3. Campos de página (en este caso no incluimos ninguno aún) 
4. Campos de datos (en este caso el campo Ventas 2005) 
 
En el siguiente ejemplo vemos el caso de tener un campo en cada posición: 
 
 

 
 

MÓDULO 
 
GRÁFICOS 
 
PERSONALIZADOS 
 

 
FORMULARIOS 
 
Módulo de Gráficos Personalizados y Formularios 
 
Dentro de este módulo se verán diferentes opciones al momento de graficar en Excel así como 
opciones de gráficos poco utilizadas, y casos prácticos donde apliquemos usos de gráficos para 
diferentes actividades. 
 
Comencemos con un gráfico sencillo en el que se pretenda gráficas exportaciones de un producto 
a diversos países a través de 4 años. 
 
Nos basaremos en la siguiente planilla: 
 

 
 
Para comenzar nos posicionamos en cualquiera de los datos de nuestra planilla y vamos al 
asistente para gráficos mediante el menú Insertar – Gráfico 
 

 
 
En la primera pantalla que nos despliega el asistente para gráficos tendremos la posibilidad de 
seleccionar la categoría del gráfico que generaremos y dentro de cada categoría también 
podremos seleccionar la subcategoría de dicho gráfico, como vemos en la pantalla a continuación: 
 
 
 
 
Veamos que tenemos un botón de Presionar para ver muestra, que, dependiendo en que 
categoría nos posicionamos nos va a dar una imagen preliminar del gráfico que generaremos a 
través de la lista o base de datos que tenemos seleccionada. 
 
Al presionar siguiente, y pasando al segundo paso del asistente: 
 

 
 
Aquí se destacan dos puntos, en primer lugar, el hecho de que Excel tomó en forma automática 
como Rango de datos desde A1:E6, incluyendo aquí los títulos de ambos campos, pero tomando la 
fila 1 como si fuera una serie a graficar, y esto nos genera un error, ya que aparecerá una serie que 
no contiene información (veamos en la muestra). 
 
 
 
 
 
 
En este caso corrigiendo el área a graficar y tomando desde la fila 2, o sea marcando como Rango 
de datos de origen desde A2:E6, nos quedará la muestra correspondiente al área que 
efectivamente debemos graficar. 
 
Si vemos las opciones de graficar las series en: FILAS, COLUMNAS, en forma predeterminada Excel 
marca las serien como columnas, y por lo tanto cada año formará una serie de nuestro gráfico, en 
cambio si intercambiamos y pasamos a la opción de Series en FILAS, se verá de la siguiente 
manera: 
 
 
En este caso lo que estamos representando son las ventas de cada uno de los años (1, 2, 3,4) y 
dentro de cada año las series están representadas por las exportaciones a cada país. 
 
A su vez si damos clic en la solapa de SERIE en esta misma pantalla veremos lo siguiente: 
 
 
 
 

 
 
En esta pantalla podremos definir: 
 
 
 
• Nombre: El rango (o celda) donde encontramos el nombre de cada serie (en este caso de 
cada país) 
• Valores: El rango de celdas donde encontramos los valores correspondientes a dicha serie 
(valores de exportaciones a través de los años de dicho país) 
• Rótulos del eje de categorías (X): Aquí vamos a señalar el rango B1:E1 que es el rango 
donde encontramos los títulos de las categorías (en este caso los años) 
 
 
 
 
 
 
 
 
 
 
 
 
 
Presionamos en siguiente y pasamos al 3er paso del asistente: 
 

 
 
 
Aquí completamos en la solapa de Títulos los títulos de cada sector del gráfico, en primer lugar el 
Título General del gráfico, luego completamos el Título de Eje X, y por último el titulo de Eje Y. 
 
Pasamos a la solapa de EJE: 
 

 
 
Aquí podemos marcar o desmarcar las opciones que nos permitirán visualizar los ejes de valores y 
categorías, o también podremos dejarlo desmarcado en caso de que querer ocultar dichos ejes en 
el gráfico. 
Al pasar a la solapa de Líneas de División: 
 

 
 
El efecto que produce las casillas de verificación en esta solapa de categorías es el de agregar 
referencias para identificar los valores en el gráfico, en un gráfico de líneas, y a nivel estadístico 
esto es fundamental para tener una referencia mas precisa de los valores que vemos en el gráfico. 
 
Pasando a la solapa de Leyenda: 
 

 
 
Aquí seleccionamos la ubicación de la leyenda de referencia de series dentro del gráfico así como 
también podemos destildar la casilla de verificación en caso de querer ocultar la leyenda del 
gráfico. 
 

 
 
 
 
En la solapa de Rótulo de Datos, tendremos la posibilidad de reflejar en el gráfico los Nombres de 
la series (en este caso los países), Nombres de las categoría (años en este caso), y Valores (valores 
correspondientes a cada dato graficado).  
 
 
 
Debemos tener presente que marcar todas las opciones muchas veces puede resultar complejo 
para poder entender correctamente tanta sintaxis dentro del gráfico, y muchas veces hace que el 
grafico quede realmente complejo para un análisis posterior. 
 
 
 
 
En esta última solapa, si nosotros pretendemos, dentro de la pantalla del gráfico agregar la 
información de los datos graficados, ya sea porque los mismos se encuentran en otra ubicación, o 
porque queremos tenerlos disponibles dentro del gráfico, marcamos la opción de Mostrar Tabla 
de Datos, y de esa manera nos quedan los datos incrustados dentro del gráfico. 
 
Al presionar siguiente, pasamos al paso 4 del asistente donde seleccionamos entonces, la 
ubicación que le daremos al gráfico: 
 

 
 
Podemos ubicar el gráfico tanto en una hoja nueva, como también podemos ubicarlo como un 
objeto dentro de la hoja activa, o la hoja que seleccionemos. 
 
Finalmente, vemos el gráfico dentro de nuestra hoja, el cual podremos seleccionar, y desde los 
bordes, tal cual como si fuera una imagen cambiar sus dimensiones: 
 
 
 
 
 
 
AREAS DEL GRÁFICO 
 
El gráfico está formado básicamente por diversas áreas: 
 
• Área del gráfico (el fondo blanco que vemos dentro del gráfico) 
• Área de trazado (el fondo gris en el que posicionamos las series) 
• Título del gráfico (en nuestro caso exportaciones) 
• Series (en nuestro caso las columnas, que forman las exportaciones a cada país) 
• Eje de categorías (eje x) 
• Eje de valores (eje y) 
• Leyenda (cuadro que tiene la representación de la series) 
• Título del eje de categorías (Años en nuestro caso) 
• Título del eje de valores (Importes en nuestro caso) 
 
 
En el caso de querer cambiar cualquiera de las áreas del grafico recordar que simplemente nos 
posicionamos sobre dicha área y con el botón derecho nos desplegará las opciones propias del 
área marcada. 
 
Para poder recurrir a la modificación de cualquiera de los pasos que recorrimos mediante el 
asistente, nos posicionamos sobre el Área del Gráfico (área blanca) y con el botón derecho: 
 
• Tipo de gráfico (paso 1 del asistente – donde seleccionamos la categoría del gráfico) 
• Datos de origen (paso 2 del asistente – donde indicamos el rango de datos) 
• Opciones del gráfico (paso 3 del asistente – donde indicamos títulos, leyendas, ejes) 
• Ubicación (paso 4 del asistente – donde seleccionamos la ubicación deseada para el 
gráfico). 
 
Modificaciones de Gráficos 
 
Para modificar el área de gráfico simplemente damos doble clic sobre dicha área y nos aparecerá 
la siguiente pantalla: 
 
 

 
 
 
 
 
Aquí podremos indicar no solo los bordes del área, permitiendo seleccionar el color del borde, el 
estilo del mismo, así como también el grosor, sino que también podremos cambiar la fuente (junto 
con sus propiedades), así como también el fondo del gráfico (área). 
 
 
 
 
 
También podemos presionar sobre el botón de efecto de relleno para modificar los efectos que 
apliquemos sobre el fondo del gráfico, entre los que podemos: 
 
 
 
 
Aplicar degradado, con diferentes efectos del mismo, con un color, o dos, con efectos de 
transparencias, y además con diversos estilos de sombreado. 
 
Podemos aplicar también texturas: 
 
 
 
 
 
 
 
 
Así como también indicarle con el botón de Otra Textura, y buscar el archivo donde se encuentre 
la textura que queramos darle al área de gráfico. 
 
 
 
 
Podremos además de seleccionar un color, y efecto de degradado aplicar una trama en particular: 
 
 
 
Por último si nos parece conveniente, también podremos ubicar como fondo del gráfico una 
imagen, seleccionando la misma desde su ubicación en el disco: 
 

 
 
 
 
 
 
 
 
 
Este mismo tipo de efectos se puede aplicar sobre cualquier área del gráfico, por ejemplo también 
sobre las series, obteniendo entonces un gráfico como el que se refleja a continuación: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Si bien no son los mismos datos que en el ejemplo visto anteriormente la idea es reflejar no solo 
los cambios del área de gráfico sino también del área de trazado, y a su vez del área de series, 
modificando cada serie y viendo como agregar la bandera del país como identificación de dicha 
serie. 
 
Gráficos Personalizados 
 
Generaremos en el siguiente ejemplo un Gráfico que denominaremos pirámide poblacional a 
partir de la siguiente planilla: 
 

 
 
 
En la misma encontramos un total de la muestra, en este caso del barrio MALVIN y separado por 
sexo (hombres, y mujeres) y a su vez el total dividido por grupo etario. La idea es graficar esto y 
que podamos representar las cantidades de personas de cada sexo y cada barra represente a un 
grupo etario diferente. 
 
El resultado final se muestra a continuación y luego veremos el paso a paso a seguir para obtener 
dicho gráfico: 
 
 
 
Para llegar a este resultado final, comenzaremos por generar con los datos un gráfico de barras 
seleccionando el rango a graficar (en este caso desde A1:K5). Allí vamos a Insertar – Gráfico: 
 

 
 
 
Seleccionamos el gráfico de tipo BARRAS – primer subtipo que es el de BARRA AGRUPADA,  luego 
le damos clic en el botón siguiente: 
 

 
 
 
 
 
 
 
Notemos que aquí corregimos en primer lugar el Rango de datos (A4:K5) para tomar únicamente 
los sexos y los grupos de edades, que comprenden únicamente lo que vamos a graficar, pero 
además vamos a dar clic sobre la solapa series: 
 
 
Aquí lo que hicimos fue agregar en el Rótulo del eje de categorías X el rango que va desde B2:K2 
donde indicamos los títulos de grupos de edades que formarán parte de nuestro gráfico. 
 
En nuestro siguiente paso: 
 

 
 
Aquí definimos los nombres tanto del gráfico general como también de los ejes. 
 
 
Este fue el resultado final que obtuvimos, ahora veamos los criterios que tenemos que utilizar para 
perfeccionar la pirámide poblacional. 
 
En primer lugar, para que un sexo tome valores a la derecha del corte de eje X y el otro sexo tome 
valores a la izquierda del corte de eje X debemos tomar en cuenta que lo logramos fácilmente 
cambiando el signo en la planilla original como vemos a continuación: 
 

 
 
Veamos que agregamos una línea donde simplemente le cambiamos el signo a los valores 
correspondientes al sexo femenino, e incluimos esta serie dentro del gráfico de la siguiente 
manera: 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
   
Aquí incluimos dentro de la categoría mujeres, el rango B6:K6 en lugar del rango B5:K5 que tenía 
anteriormente valores negativos. 
 
Recordar para reasignar las direcciones de dicho rango accedemos clickeando con el botón 
derecho sobre el área de gráfico (fondo blanco del gráfico) y seleccionando como opción Datos de 
Origen, y allí presionamos sobre la pestaña de Serie. 
 

 
 
Ahora cambiaremos la posición de cada una de las barras para que se dispongan alineadas y sin 
espacio sin separación entre las mismas. Esto lo logramos presionando en una de las barras del 
gráfico (cualquiera de las series), y luego con el botón derecho del Mouse, seleccionamos la opción 
de Formato de Serie de Datos, y en la solapa Opciones veremos justamente dos opciones: 
 

 
 
En dichas opciones cambiaremos el dato de Superposición, el cual pasaremos a un valor de 100, 
para que las barras queden alineadas, y el ancho de rango a valor 0, para que cada barra ocupe el 
total de área de trazado, y no existan espacios intermedios entre una barra y otra. 
 
Veamos el efecto del mismo: 
 

 
 
En este siguiente paso vamos a quitar el rótulo de las leyendas en cada grupo de edad: 
Esto lo logramos presionando con el botón derecho del Mouse sobre el área de gráfico y luego 
vamos a Opciones de Gráfico y luego en la solapa de Eje desmarcamos la casilla de verificación 
correspondiente al Eje de Categorías X, como vemos a continuación: 
 

 
   
Vemos que el efecto inmediato de esta acción es quitar la referencia al eje X. 
En este siguiente paso vamos a cambiar el formato de Eje categorías con la posibilidad de que 
podamos ver siempre dígitos positivos, pero a ambos lados del cruce del eje.  
 
Esto lo logramos seleccionando en primer lugar el eje de categorías X, y luego con el botón 
derecho del Mouse damos clic en la opción de Formato de Ejes, y allí en la pestaña Número, 
aplicamos como Tipo (0;0) para que, tanto los valores positivos como negativos aparezcan sin 
signo (ni + ni ‐). 
 
 
 

 
 
 
 
 
 
Aplicando los retoques de Formato de área, degradados, vistos en el capítulo anterior, llegamos a 
una imagen similar del gráfico que debíamos generar: 
 
 
 
 
Gráficos con Doble Eje 
 
Dada la siguiente planilla, generaremos un gráfico de líneas que la represente: 
 

 
 
Generamos entonces el gráfico de líneas correspondiente, obteniendo el siguiente resultado: 
 

 
 
Veamos que mas allá de que graficamos ambas series, Ventas y Porcentajes, al tener ambas 
valores totalmente disímiles, esto nos genera un impacto visual ya que la serie de porcentaje 
contiene valores entre 0 y 1 y por lo tanto la línea queda pegada al eje de categorías. 
 
Para que la serie de Porcentaje tome como referencia un eje secundario, seleccionamos la serie 
dando clic sobre cualquiera de los valores de la línea que representa a dicha serie en el gráfico y 
con el botón derecho accedemos a la opción Formato Serie de Datos. En este punto damos clic 
sobre la pestaña Ejes, y allí agregamos o marcamos la opción de Eje Secundario. 
 
El impacto del mismo será el siguiente: 
 

 
 
Para separar ambas series y que los valores queden distanciados, y a su vez que cada una de las 
series haga referencia a un eje diferente, presionamos sobre el eje secundario agregado, y con el 
botón derecho seleccionamos la opción Formato de Ejes – en la pestaña de Escala – Cambiaremos 
la escala para que el valor máximo este dado en el 0,5 (o sea 50 %). 
 
Pasamos entonces a obtener el siguiente gráfico: 
 
 

 
 
De esta manera, a la persona que tenga que dar una lectura del gráfico le resultará mas facil 
analizar ambas series sabiendo que ambas toman escalas diferentes y hacen referencias a ejes 
diferentes del gráfico (una al eje primario, y otra al secundario). 
 
 
Gráficos de GANTT 
 
Dada la siguiente planilla, generaremos un gráfico de GANTT que nos muestre la duración de las 
tareas, y nos de la opción de adaptarse automáticamente ante cambios en fechas de inicio, o 
duración de las mismas. 
 
Este gráfico es muy usado, en proyectos para encontrar puntos críticos, así como también 
determinar atrasos en las entregas y evaluar decisiones a tomar ante desvíos en el cronograma 
propuesto. 
 

 
 
En la siguiente planilla vemos que tenemos fecha inicial de cada tarea, fecha de fin de cada tarea, 
y mediante una formula calculamos los días que demoramos en el desarrollo de cada tarea. 
 
A partir de allí generamos un gráfico de barras, y llegaremos al siguiente gráfico: 
 
 
 

 
 
 
 
 
 
 
 
Formularios 
 
Este conjunto de herramientas nos aportará en Excel, un estilo gráfico que nos permitirá manejar 
la planilla desde un entorno visual más ameno. 
 
En el siguiente ejemplo veremos como utilizar la barra de herramientas, personalizando varias 
opciones al respecto. 
 

 
 
En la planilla aplicaremos varias herramientas del tema formularios, para esto, el primer paso será 
dejar visible dicha barra de herramientas, y para eso vamos al menú Ver – Barra Herramientas – 
Formularios, como vemos a continuación: 
 

 
 
 
 
Esta opción nos desplegará la siguiente barra con la que trabajaremos en los siguientes pasos: 
 
 
 
 
 
 
 

 
 
La primera herramienta que aplicaremos será la de Cuadro Combinado para las propuestas de 
diferentes tipos de habitaciones con las que cuenta el hotel. Para esto, vamos a colocar una 
planilla auxiliar que nos provea de la siguiente información: 
 
 

 
 
 
 
 
 
Vamos a tomar entonces de la barra de herramientas, el Cuadro Combinado, y al seleccionar nos 
permitirá dibujar dicho cuadro sobre la planilla: 
 
 
 
Para que dicho cuadro despliegue las opciones, de tipos de habitaciones, daremos clic derecho 
sobre el cuadro combinado que dibujamos, y seleccionamos la opción de Formato de Control. 
 
Esto nos desplegará la siguiente pantalla: 
 

 
 
Aquí completaremos el Rango de Entrada: en nuestro caso formado por el rango E1:E3 (los 
distintos tipos de habitaciones que se desplegarán al presionar sobre el cuadro combinado). 
 
La vinculación con la celda la haremos con una celda arbitraria (H1), en ella mas adelante 
visualizaremos el número de índice o posición que el usuario seleccione del cuadro combinado. 
Por último en este cuadro las líneas de unión verticales representan la cantidad de datos que se 
van a visualizar por pantalla que se muestre en el cuadro combinado. 
 

 
 
Veamos que al seleccionar en este caso la habitación SINGLE, aparecerá el número 1 en la celda 
H1 que fue la celda con la que vinculamos el cuadro combinado. En caso que el usuario seleccione 
la habitación doble, se reflejará el número 2 en H1, y número 3 en caso de seleccionar la SUITE. 
 
Para que automáticamente podamos determinar el precio de la habitación por DIA, utilizaremos 
una función de Excel que será INDICE: 
 
=INDICE (F1:F3; H1) 
 
Con esto obtendremos del rango F1:F3, el número de posición que se determina en la celda H1. 
 
En este siguiente paso vamos a utilizar otro de los controles de la barra de formularios, que será el 
Control de Números: 
 

 
 
En esta pantalla controlaremos nuestro formulario. Aplicaremos un valor actual. El valor mínimo lo 
estableceremos en 1, y el valor máximo en 30, y el incremento en 1. Esto quiere decir que el 
mínimo de días de estadía será 1, y el máximo de días de estadía será 30. La celda con la cual 
vincularemos será la celda H2 (celda arbitraria). 
 
En la celda B5, aplicaremos como fórmula una referencia a la celda H2 ya que esta contendrá el 
valor seleccionado en el formulario. 
 
Para el caso de la elección de cochera optaremos por un control denominado Casilla de 
Verificación (de la misma barra de formularios). Esto nos dará un checkbox con valores de 
verdadero o falso, según la casilla este marcada o no.  
 

 
 
Estableceremos el valor de la cochera en base a la celda H3, por lo tanto en nuestra celda B6 
aplicaremos la siguiente formula: 
 
=SI (H3; 5; 0) * B5 
 
Esta formula nos presentará el valor 5 en caso de que la casilla de verificación este marcada y cero 
en caso de que no este marcada, basándose en el valor de la celda H3 que será verdadero o falso, 
y esto lo multiplicamos por la celda B5 que tiene la cantidad de días de estadía en el hotel. 
 
La  idea es que mediante el ejemplo veamos el uso de diferentes formularios, pero también cada 
uno lo puede adaptar a las necesidades de la planilla que este implementando. 
 
En el siguiente caso para las formas de pago, dibujaremos un cuadro de lista, y entonces daremos 
como rango de entrada las celdas que contienen las diferentes opciones en cuanto a formas de 
pago. 
 
En el caso del porcentaje de interés nuevamente utilizaremos la función INDICE como aplicamos 
anteriormente. 
 
Veamos la planilla finalizada, e implementando los diferentes formularios: 
 

 
 
 
Existen diferentes botones de la barra de formularios que, si bien no fueron utilizados en este 
ejemplo son útiles en diferentes casos como son: 
 
 
 
• Etiqueta 
• Cuadro de grupo 
• Botón 
• Botón de opción 
• Barra desplazamiento 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

MÓDULO 
 
MACROS 
 
EN 
 
EXCEL 
 
Módulo Macros en Excel 
 
Concepto General: 
 
Macro: 
 
Un programa escrito o grabado por el usuario que almacena una serie de comandos de Microsoft 
Excel que pueden utilizarse posteriormente como un único comando. Mediante las macros 
pueden automatizarse las tareas complejas y pueden reducirse el número de pasos necesarios 
para realizar las tareas que se ejecutan con más frecuencia. Las macros se graban en el lenguaje de 
programación de Visual Basic para Aplicaciones de Microsoft. También pueden escribirse las 
macros directamente en el Editor de Visual Basic.  
 
La idea de generar macros en Microsoft Excel radica en la automatización de tareas en la planilla 
electrónica. De esta manera quedará implementada una solución en Visual Basic para aplicaciones 
(VBA) que es el lenguaje de programación que se utiliza en la suite de Office para desarrollar 
Macros. 
 
Existen básicamente dos formas de desarrollar macros: 
 
• Mediante el uso de la Grabadora de Macros 
• Mediante el Editor de Visual Basic para aplicaciones 
 
Comencemos con el uso de la grabadora en un ejemplo donde apliquemos tres tareas, en primer 
lugar escribiremos Hola en la celda A1, luego pondremos Negrita y por último pintaremos de 
fondo amarillo dicha celda. 
 
Para esto, comenzaremos por encender la grabadora, para que capte cada una de las tareas que 
vamos realizando: 
 
La grabadora la encendemos mediante el menú de Herramientas – Macro – Grabar nueva macro, 
como vemos a continuación: 
 

 
 
Nos aparecerá la siguiente pantalla para configurar la grabación de dicho macro: 
 

 
 
A cada macro que grabemos le podemos asignar un nombre, en forma predeterminada la 
grabadora asignará Macro1, Macro2…. 
 
Luego podremos también asignar un Método Abreviado, para que el usuario que desee ejecutar 
rápidamente un macro pueda acudir a este atajo de teclado (por ejemplo ctrl. + T). 
 
Podremos grabar el macro en el mismo libro en el cual estamos trabajando, podremos grabarlo en 
un libro independiente, o también como opción adicional podremos grabarlo en el Libro Personal, 
que es algo así como una biblioteca de macros personales que podemos ejecutar en cualquier 
archivo de Excel que deseemos el día de mañana. 
 
En la descripción podemos dar pautas precisas de determinados detalles de las tareas que 
ejecutará nuestro macro. 
 
Cuando configuramos dicha pantalla, al presionar Aceptar, la grabadora de Macros generará un 
código VBA por cada una de las tareas que vayamos realizando de ahora en mas (no capta los 
movimientos del Mouse, ni del cursor que realicemos, pero si el ingreso a cualquiera de las 
opciones de Excel). 
 
Realizamos a continuación las tres tareas propuestas, y luego detenemos la grabación mediante el 
menú de Herramientas – Macro – Detener Grabación. 
 

 
 
Bueno, ahora veamos como repetimos las tareas ejecutando el macro grabado en esta etapa 
anterior. 
 
Una de las posibilidades que tenemos es ejecutar el macro mediante el menú de Herramientas – 
Macro – Macros 
 
Seleccionamos el macro a ejecutar y luego presionamos sobre el botón ejecutar tal cual aparece 
en la pantalla a continuación: 

 
 
En esta pantalla no solo podemos elegir el macro a ejecutar, y luego realizar la ejecución sino que 
también en caso que queramos dar un método abreviado bastará con seleccionar el macro y con 
el botón de opciones nos aparecerá el siguiente cuadro donde asignaremos el método abreviado 
que deseemos: 
 

 
 
En este caso el usuario que presione la combinación CTRL + t ejecutará el macro que 
desarrollamos anteriormente. 
 
No olvidemos que el macro no elimina el contenido de la celda para ejecutar, sino que lo hace 
sobrescribiendo el contenido anterior de dicha celda. 
 
Podríamos bien crear un macro que nos permita borrar para luego volver a ejecutar. 
 
En el caso que deseemos cambiar el método abreviado volveremos a repetir el procedimiento de 
ir al menú Herramientas – Macro – Macros (o mediante el acceso directo de ALT + F8), 
seleccionamos el Macro al que le queramos cambiar el método abreviado y con el botón opciones 
accedemos a la misma pantalla donde reasignaremos el abreviado. 
Ahora, si nosotros quisiéramos ejecutar el macro de una forma más simple y rápida también 
tenemos la posibilidad de insertar un botón desde la barra de formularios, y asignarle al mismo un 
macro. 
 
Esto lo haremos mediante el menú Ver – Barra Herramientas – Formularios, como vemos a 
continuación: 
 

 
 
En la barra de herramientas de formularios seleccionaremos el botón de comando y lo 
dibujaremos en la planilla con la que estamos trabajando. 
 
El botón de comando nos permitirá dibujarlo sobre cualquier lugar de la planilla con 
la cual estemos trabando. 
 
Es importante acotar que dicho botón quedará sobre la planilla y no formando parte 
de la misma en una celda en particular. 
 
Una vez que dibujemos dicho botón de comando, al soltar el Mouse nos permitirá 
asignarle un macro al mismo. 
 
En el caso de que hayamos soltado el Mouse y nos quedemos sin asignar un macro al 
mismo, podemos mediante el botón derecho sobre el botón dibujado seleccionar la 
opción de Asignar Macro. 
 
 
 

 
 
A dicho botón podremos cambiarle el nombre, modificarle el tamaño cambiar el texto que aparece 
dentro del botón. 
 
Recordar que para seleccionar el botón simplemente con el CTRL presionado damos clic sobre 
dicho botón y ya pasamos al modo edición donde aparecen los puntos de agarre sobre dicho 
botón. 
 
De ahora en mas, simplemente el usuario presionará dicho botón para ejecutar el macro asignado. 
 
NOTA: Si queremos asignar un macro a una imagen o a un macro podemos hacer el mismo 
procedimiento, o sea, insertar la imagen o el gráfico y con el botón derecho seleccionar la opción 
de asignar macro para indicar que macro asignaremos a dicha imagen. 
 
Por otro lado otra manera que tenemos de generar una forma rápida de ejecución de macros es 
generando un icono en la barra de herramientas de Excel. 
 
Para esto presionaremos sobre la barra de herramientas estándar con el BOTÓN DERECHO DEL 
MOUSE, y seleccionamos la opción PERSONALIZAR. 
 

 
 
 
Nos aparecerá la siguiente pantalla: 
 

 
 
En la solapa Comandos, buscaremos la categoría Macros y a la derecha en la lista de comandos 
veremos dos tipos que serán: Personalizar elemento de menú y Personalizar botón, esta última 
opción será la que utilicemos para arrastrar el icono (mediante el botón izquierdo del Mouse 
presionado) hacia un lugar de la barra de herramientas estándar de Excel. 
 

 
 
El botón nos quedó en la barra de herramientas y simplemente cuando presionemos por primera 
vez en dicho botón nos permitirá asignarle el macro correspondiente. 
 
 
 
 
En caso de que nosotros queramos modificar el macro y de ahora en más deseemos cambiar la 
estructura, para que lo aplique a un conjunto de celdas, o para que nos escriba diferentes palabras 
por cada celda, no nos quedará otra que acudir al editor de Visual Basic para Aplicaciones para 
cambiar la sintaxis de la grabación. 
 
Con la combinación ALT+F11 pasaremos rápidamente al entorno VBA, también podríamos pasar a 
dicha pantalla mediante el menú de Herramientas – Macros – Editor Visual Basic 
 

 
 
Nos desplegará la pantalla que vemos a continuación: 
 

 
 
En esta pantalla trabajaremos escribiendo nuestros propios macros. 
 
Como vemos sobre la parte izquierda de esta pantalla, tenemos una carpeta de Módulos donde 
encontraremos los diferentes macros que se hayan desarrollado. En nuestro caso solo contamos 
con el Módulo 1 que es donde se encuentra el macro grabado anteriormente. 
 
Al dar doble clic sobre el Módulo 1 veremos a la derecha de la pantalla el código que 
anteriormente la grabadora fue escribiendo automáticamente mientras nosotros realizábamos las 
tareas. 
 
 
CÓDIGO VBA 
 
El código VBA se maneja en idioma inglés. En general el lenguaje básicamente se maneja orientado 
a eventos.  
Cada objeto se separa mediante el .  (Punto) de las diferentes propiedades que posee. 
 
Conceptos esenciales. 
 
Clase: Es una agrupación de objetos con las mismas características y propiedades. 
 
Objeto: Son elementos que se caracterizan por poseer propiedades en común. 
 
Método: Cualquier operación pasible de ser ejecutada sobre un objeto. 
 
Ejemplo:   Clase: Medios de Transporte (generalización) 
    Subclase: Autos (especialización) 
 
Variable: 
 
Un lugar de almacenamiento con nombre que puede contener cierto tipo de datos. Cada variable 
tiene  un  nombre  único  que  la  identifica.  Nombres  de  variable  deben  comenzar  con  un  carácter 
alfabético, deben ser únicos dentro del mismo ámbito, no deben contener más de 255 caracteres 
y no pueden contener un punto. 
 
Cada macro que vayamos escribiendo en el editor de visual Basic, debe comenzar con la sentencia 
Sub, y terminar con la sentencia End Sub. 
 
  

 
 
 Veamos en nuestro primer ejemplo. Dentro de la carpeta Módulos tenemos nuestro Modulo 1 y 
dentro del mismo desarrollamos dos macros. 
 
Nuestro Macro1 fue grabado mediante el uso de la grabadora para macros y luego comenzamos 
mediante la orden Sub el macro denominado Primero que simplemente escribe la palabra HOLA 
en la celda A1. 
 
En forma predeterminada cuando hacemos referencia a la celda A1, Microsoft Excel lo tomará 
sobre la hoja activa (hoja en la que estamos posicionados al ejecutar el macro). 
 
Formas de referir a la hoja: 
 
ActiveSheet.Range(“A1”).value 
 
Aquí hacemos referencia a la celda A1 de la hoja activa 
 
 
Sheets(1).Range(“A1”).Value 
 
Aquí hacemos referencia a la hoja con índice 1, celda A1 del libro activo 
 
Sheets(“Hoja1”).Range(“A1”).Value 
 
Aquí hacemos referencia a la hoja denominada Hoja1, celda A1 
 
Repetimos que en forma predeterminada Excel toma Activesheet cuando nos referimos a una 
celda determinada. 
 
Métodos. 
 
La mayoría de objetos tienen comportamientos o realizan acciones, por ejemplo, una acción 
evidente de un objeto coche es el de moverse o lo que es lo mismo, trasladarse de un punto inicial 
a un punto final. 
 
Cualquier proceso que implica una acción o pauta de comportamiento por parte de un objeto se 
define en su clase para que luego pueda manifestarse en cualquiera de sus objetos. Así, en la clase 
coche se definirían en el método mover todos los procesos necesarios para llevarlo a cabo (los 
procesos para desplazar de un punto inicial a un punto final), luego cada objeto de la clase coche 
simplemente tendría que invocar este método para trasladarse de un punto inicial a un punto 
final, cualesquiera que fueran esos puntos. 
 
Repasemos a continuación todos estos conceptos pero ahora desde el punto de vista de algunos 
de los objetos que nos encontraremos en Excel como WorkSheet (Objeto hoja de cálculo) o Range 
(Objeto casilla o rango de casillas). 
 
Un objeto Range está definido por una clase donde se definen sus propiedades, recordemos que 
una propiedad es una característica, modificable o no, de un objeto. Entre las propiedades de un 
objeto Range están Value , que contiene el valor de la casilla , Column y Row que contienen 
respectivamente la fila y la columna de la casilla, Font que contiene la fuente de los caracteres que 
muestra la casilla, etc. 
 
Range, como objeto, también tiene métodos, recordemos que los métodos sirven llevar a cabo 
una acción sobre un objeto. Por ejemplo el método Activate, hace activa una celda determinada, 
Clear, borra el contenido de una celda o rango de celdas, Copy, copia el contenido de la celda o 
rango de celdas en el portapapeles,... 
 
Conjuntos. 
 
Una conjunto es una colección de objetos del mismo tipo, para los que conozcan algún lenguaje de 
programación es un array de objetos. Por ejemplo, dentro de un libro de trabajo puede existir más 
de una hoja (WorkSheet), todas las hojas de un libro de trabajo forman un conjunto, el conjunto 
WorkSheets. 
 
Cada elemento individual de un conjunto se referencia por un índice, de esta forma, la primera, 
segunda y tercera hoja de un libro de trabajo, se referenciarán por WorkSheets(1), WorkSheets(2) 
y WorkSheets(3). 
 
Objetos de Objetos. 
 
Es muy habitual que una propiedad de un objeto sea otro objeto. Siguiendo con el coche, una de 
las propiedades del coche es el motor, y el motor es un objeto con propiedades como cubicaje, 
caballos, número de válvulas, etc. y métodos, como aumentar_revoluciones, cargar_combustible, 
mover_pistones, etc. 
 
En Excel, el objeto WorkSheets tiene la propiedad Range que es un objeto, Range tiene la 
propiedad Font que es también un objeto y Font tiene la propiedad Bold (negrita). Tenga esto muy 
presente ya que utilizaremos frecuentemente Propiedades de un objeto que serán también 
Objetos.  
 
Dicho de otra forma, hay propiedades que devuelven objetos, por ejemplo, la propiedad Range de 
un objeto WorkSheet devuelve un objeto de tipo Range. 
 
Insertar un nuevo módulo. 
 
Un módulo sirve para agrupar procedimientos y funciones. El procedimiento y la función son 
entidades de programación que sirven para agrupar instrucciones de código que realizan una 
acción concreta. 
Para insertar un módulo active opción del menú Insertar/ Módulo. Se activará una nueva ventana, 
si aparece demasiado pequeña, maximícela. 
 
Insertar un procedimiento. 
 
Ya hemos dicho que un procedimiento es un bloque de instrucciones de código que sirven para 
llevar a cabo alguna tarea específica. Un procedimiento empieza siempre con la instrucción 
 
Sub Nombre_Procedimiento 
 
Y termina con la instrucción End Sub. 
 
A continuación crearemos un procedimiento para poner el texto "Hola" en la casilla A1. 
 
Ejemplo 1 
 
Sub Primero 
 
Range("A1").Value = "Hola" 
 
End Sub 
 
Observe el código. 
 
Range("A1").Value="Hola" 
 
En esta línea estamos indicando que trabajamos con un objeto Range. Para indicarle que nos 
referimos a la casilla A1, encerramos entre paréntesis esta referencia (más adelante verá otra 
forma de referirnos a las casillas). De este objeto, indicamos que queremos establecer un nuevo 
valor para la propiedad Value, observe que para separar el objeto de su propiedad utilizamos la 
notación punto. 
Recuerde que el conjunto Range es un objeto que pende del objeto WorkSheets, así por ejemplo 
el siguiente código haría lo mismo que el anterior. 
 
WorkSheets(1).Range("A1").Value = "Hola" 
 
Bueno, de hecho no hace lo mismo, en la primera opción, el texto "Hola" se pone dentro de la 
casilla A1 de la hoja activa, mientras que en el segundo es en la casilla A1 de primera hoja ( del 
conjunto de hojas). 
 
La segunda notación es más larga, pero también más recomendable ya que se especifican todos 
los objetos. En muchas ocasiones se pueden omitir algunos objetos precedentes, no le 
aconsejamos hacerlo, sus programas perderán claridad y concisión. 
 
Si desea hacer referencia a la hoja activa puede utilizar ActiveSheet, así, el primer ejemplo lo 
dejaremos de la manera siguiente. 
 
Sub Primero 
 
ActiveSheet.Range("A1").Value = "Hola" 
 
End Sub 
 
Si desea poner "Hola" (o cualquier valor) en la casilla activa, puede utilizar la propiedad (objeto) 
Activecell de WorkSheets. Así para poner "Hola" en la casilla activa de la hoja activa seria, 
 
 
Sub Primero 
 
ActiveSheet.ActiveCell.Value = "Hola" 
 
End Sub 
 
Para terminar con este primer ejemplo. WorkSheets están dentro del Objeto WorkBooks (libros 
de trabajo) y WorkBooks están dentro de Application.  
 
Application es el objeto superior, es el que representa la aplicación Excel. Así, el primer ejemplo, 
siguiendo toda la jerarquía de objetos quedaría de la forma siguiente. 
 
Sub Primero 
 
Application.WorkBooks(1).WorkSheets(1).Range("A1").Value = "Hola" 
 
End Sub 
 
Insistiendo con la nomenclatura, Application casi nunca es necesario especificarlo, piense que 
todos los objetos penden de este, WorkBooks será necesario implementarlo si en las macros se 
trabaja con diferentes libros de trabajo (diferentes archivos), a partir de WorkSheets, es 
aconsejable incluirlo en el código, sobre todo si se quiere trabajar con diferentes hojas, verá, sin 
embargo, que en muchas ocasiones no se aplica. 
 
Ejecutar un procedimiento o función. 
 
Pruebe ejecutar el primer procedimiento de ejemplo. 
 
1. Sitúe el cursor dentro del procedimiento. 
2.  Active opción de la barra de menús Ejecutar/ Ejecutar Sub Userform. También puede hacer 
clic sobre el botón o pulsar la tecla F5. 
 
Para ejecutar el procedimiento desde la hoja de cálculo. 
 
Debe estar en una hoja, no en el editor de Visual Basic 
 
1. Active opción de la barra de menús Herramientas/ Macro/ Macros. Se despliega una 
ventana que muestra una lista donde están todas las macros incluidas en el libro de 
trabajo. 
2. Seleccione la macro de la lista y pulse sobre el botón Ejecutar. 
 
Ejemplo 2 
 
En este segundo ejemplo simplemente ampliaremos la funcionalidad de la macro del ejemplo 1. 
Además de escribir "Hola" en la casilla A1 de la celda A1, la pondremos en negrita y le daremos 
color al texto. 
 
 
Para ello utilizaremos las propiedades Bold y Color del objeto Font. 
 
Sub Segundo 
 
ActiveSheet.Range("A1").Value = "Hola" 
ActiveSheet.Range("A1").Font.Bold = True 
ActiveSheet.Range("A1").Font.Color = RGB(255,0,0) 
 
End Sub 
 
True. 
 
True, que traducido es verdadero, simplemente indica que la propiedad Bold está activada. Si se 
deseara desactivar, bastaría con igualarla al valor False. 
 
La función RGB. 
 
Observe que para establecer el color de la propiedad se utiliza la función RGB(Red, Green, Blue), 
los tres argumentos para esta función son valores del 0 a 255 que corresponden a la intensidad de 
los colores Rojo, Verde y Azul respectivamente. 
 
Referenciar un rango de celdas. 
 
Sólo tiene que cambiar a la forma Casilla_Inicial:Casilla_Final. Por ejemplo aplicar el último 
ejemplo al rango de casillas que va de la A1 a la A8, ponga. 
 
Sub Segundo 
ActiveSheet.Range("A1:A8").Value = "Hola" 
ActiveSheet.Range("A1:A8").Font.Bold = True 
ActiveSheet.Range("A1:A8").Font.Color = RGB(255,0,0) 
End Sub 
 
Variables. 
 
A continuación vamos a repetir el programa Ejemplo1, pero en lugar de poner "Hola" en la casilla 
A1 de la hoja activa, dejaremos que el usuario entre un texto desde teclado y a continuación 
guardaremos ese valor en esa casilla.  
 
Observe que el valor que ingrese el usuario debe guardarse en algún lugar para poder ponerlo 
después en la casilla A1; pues bien, ese valor se guardará en una variable.  
 
Una variable es simplemente un trozo de memoria que la función o procedimiento se reserva para 
guardar datos, la forma general de declarar una variable es 
 
DIM variable AS tipo. 
 
Siendo variable el nombre que se asigna a la misma y Tipo el tipo de datos que se guardarán 
(números, texto, fecha, booleanos,...).  
 
En nuestro ejemplo, declararemos la variable de tipo String (tipo texto), y lo haremos de la forma 
siguiente. 
 
Dim Texto As String 
 
Con esto estamos indicando que se reserve un trozo de memoria (el que sea) , que se llama Texto 
y que el tipo de datos que se guardarán ahí serán caracteres. 
 
La Función InputBox. 
 
Esta función muestra una ventana para que el usuario pueda teclear datos. Cuando se pulsa sobre 
Aceptar, los datos entrados pasan a la variable a la que se ha igualado la función. Vea la línea 
siguiente. 
 
Texto = InputBox("Introduzca el texto", "Entrada de datos"). 
 
Si en la ventana que muestra InputBox pulsa sobre el botón Aceptar, los datos tecleados se 
guardarán en la variable Texto. 
 
Sintaxis de InputBox. 
 
InputBox(Mensaje, Título, Valor por defecto, Posición horizontal, Posición Vertical, Archivo 
Ayuda, Número de contexto para la ayuda). 
 
Mensaje: Es el mensaje que se muestra en la ventana. Si desea poner más de una línea ponga 
Chr(13) para cada nueva línea, vea el ejemplo siguiente. 
 
Título: Es el título para la ventana InputBox. Es un parámetro opcional. 
 
Valor por defecto: Es el valor que mostrará por defecto el cuadro donde el usuario entra el valor. 
Parámetro opcional. 
 
Posición Horizontal: La posición X de la pantalla donde se mostrará el cuadro, concretamente es la 
posición para la parte izquierda. Si se omite el cuadro se presenta horizontalmente centrado a la 
pantalla. 
 
Posición Vertical: La posición Y de la pantalla donde se mostrará el cuadro, concretamente es la 
Posición para la parte superior. Si se omite el cuadro se presenta verticalmente centrado a la 
Pantalla. 
 
Archivo Ayuda: Es el archivo que contiene la ayuda para el cuadro. Parámetro opcional. 
 
Número de contexto para la ayuda: Número asignado que corresponde al identificador del archivo 
de ayuda, sirve para localizar el texto que se debe mostrar. Si se especifica este parámetro, debe 
especificarse obligatoriamente el parámetro Archivo Ayuda. 
 
 
Ejemplo 3 
 
Sub Entrar_Valor 
 
Dim Texto As String 
' Chr(13) sirve para que el mensaje se muestre en dos Líneas 
 
Texto = InputBox("Introducir un texto " & Chr(13) & "Para la casilla A1", "Entrada de datos") 
 
ActiveSheet.Range("A1").Value = Texto 
 
End Sub 
 
Este ejemplo también se puede hacer sin variables. 
 
Sub Entrar_Valor 
 
ActiveSheet.Range("A1").Value = InputBox("Introducir un texto " & Chr(13) & "Para la casilla 
A1", "Entrada de datos") 
 
End Sub 
 
Ejemplo 4 
 
Repetiremos el ejemplo 3, pero en lugar de entrar los valores sobre la casilla A1, haremos que el 
usuario pueda elegir en que casilla quiere entrar los dat os, es decir, se le preguntará al usuario 
mediante un segundo Inputbox sobre que casilla quiere entrar el valor del primer Inputbox. Serán 
necesarias dos variables, una para guardar la casilla que escoja el usuario y otra para guardar el 
valor. 
 
Option Explicit 
 
Sub Entrar_Valor 
 
Dim Casilla As String 
Dim Texto As String 
 
Casilla = InputBox("En que casilla quiere entrar el valor", "Entrar Casilla") 
 
Texto = InputBox("Introducir un texto " & Chr(13) & "Para la casilla " & Casilla , "Entrada de datos") 
 
ActiveSheet.Range(Casilla).Value = Texto 
 
End Sub 
 
 
 
 
La sentencia Option Explicit. 
 
En visual basic no es necesario declarar las variables, por ejemplo, en el programa anterior se 
hubiera podido prescindir de las líneas 
 
Dim Casilla As String 
Dim Texto As String 
 
A  pesar  de  ello,  le  recomendamos  que  siempre  declare  las  variables  que  va  a  utilizar,  de  esta 
forma  sabrá  cuales  utiliza  el  procedimiento  y  qué  tipo  de  datos  guarda  cada  una,  piense  que  a 
medida que vaya aprendiendo, creará procedimientos cada vez más complicados y que requerirán 
el  uso  de  más  variables,  si  no  declara  las  variables  al  principio  del  procedimiento  ocurrirán  dos 
cosas.  Primero,  las  variables  no  declaradas  son  asumidas  como  tipo  Variant  (este  es  un  tipo  de 
datos que puede almacenar cualquier valor, número, fechas, texto, etc. pero tenga en cuenta que 
ocupa  20  Bytes  y  para  guardar  una  referencia  a  una  casilla,  la  edad  de  alguien,  etc.  no  son 
necesarios  tantos  bytes);  segundo,  reducirá  considerablemente  la  legibilidad  de  sus 
procedimientos  ya  que  las  variables  las  irá  colocando  a  medida  que  las  necesite,  esto,  a  la larga 
complicará la corrección o modificación del procedimiento. 
 
Bueno, pues toda la explicación anterior es para que declare todas las variables que va a utilizar. 
La sentencia Option Explicit al principio del módulo fuerza a que se declaren todas las variables. Si 
al  ejecutar  el  programa,  se  encuentra  alguna  variable  sin  declarar  se  producirá  un  error  y  no  se 
podrá ejecutar el programa hasta que se declare. 
 
Si todavía no se ha convencido sobre la conveniencia de declarar las variables y utilizar Option 
Explicit, pruebe el procedimiento siguiente, cópielo tal cual (Texto y Testo están puestos adrede 
simulando que nos hemos equivocado al teclear). 
 
Sub Entrar_Valor 
 
Texto = InputBox("Introducir un texto " & Chr(13) & "Para la casilla A1", "Entrada de datos") 
 
ActiveSheet.Range("A1").Value = Testo 
 
End Sub 
 
Observe que el programa no hace lo que se pretendía que hiciera. Efectivamente, Texto y Testo 
son dos variables diferentes, como no se ha declarado ninguna ni se ha utilizado Option Explicit 
Visual Basic no da ningún tipo de error y ejecuta el programa. Pruebe el siguiente módulo e 
intente ejecutarlo. 
 
Option Explicit 
 
Sub Entrar_Valor 
 
Dim Texto As String 
 
Texto = InputBox("Introducir un texto " & Chr(13) & "Para la casilla A1", "Entrada de datos") 
ActiveSheet.Range("A1").Value = Testo 
 
End Sub 
 
Observe que el programa no se ejecuta, al poner Option Explicit, forzamos a que se declaren todas 
las variables. Visual Basic detecta que la variable Testo no ha sido declarada y así lo indica 
mostrando Error, entonces es cuando es más fácil darnos cuenta del error que hemos cometido al 
teclear y cambiamos Testo por Texto. Ahora imagine que el error se produce en un programa de 
cientos de líneas que necesita otras tantas variables. 
 
Tipos de datos en Visual Basic para Excel. (Tabla copiada de la ayuda en 
línea de Visual Basic para Excel). 
 
 
Tipo de datos  Tamaño Almacenamiento  Intervalo 
Byte  1 byte   0 a 255 
Boolean   2 bytes  True o False 
Integer  2 bytes  ‐32.768 a 32.767 
Long(entero largo)  4 bytes  ‐2.147.483.648 a 2.147.483.647 
Single (coma flotante/  4 bytes  ‐3,402823E38 a ‐1,401298E‐45 para 
precisión simple)  valores negativos; 
1,401298E‐45 a 3,402823E38 para 
valores positivos 
Double (coma flotante/  8 bytes  ‐1,79769313486232E308 a ‐
precisión doble)  4,94065645841247E‐324 
para valores negativos; 
4,94065645841247E‐324 a 
1,79769313486232E308 para valores 
positivos 
Currency (entero a  8 bytes  ‐922.337.203.685.477,5808 a 
escala)  922.337.203.685.477,5807 
Decimal  14 bytes  +/‐
79.228.162.514.264.337.593.543.950.335 
sin punto 
decimal; +/‐
7,9228162514264337593543950335 con 
28 posiciones a la derecha del signo 
decimal; el 
número más pequeño distinto de cero 
es+/‐ 
0,0000000000000000000000000001 
Date  8 bytes  1 de enero de 100 a 31 de diciembre de 
9999 
Object  4 bytes  Cualquier referencia a tipo Object 
String (longitud  10 bytes + longitud de  Desde 0 a 2.000 millones 
variable)  la cadena 
String(longitud fija)  Longitud de la cadena  Desde 1 a 65.400 aproximadamente 
Variant(con números)  16 bytes  Cualquier valor numérico hasta el 
intervalo de un tipo 
Double 
Variant(con  22 bytes + longitud de  El mismo intervalo que para un tipo 
caracteres)  cadena  String de longitud 
variable 
Definido por el  Número requerido por  El intervalo de cada elemento es el 
usuario (utilizando  los elementos  mismo que el 
Type)  intervalo de su tipo de datos. 
 
 
Conversión de Tipos de datos. 
 
Copie el siguiente Ejemplo. Simplemente se piden dos números, se suman y se guardan el la casilla 
A1 de la hoja activa. 
 
Ejemplo 5 
 
Option Explicit 
 
Sub Sumar() 
 
Dim Numero1 As Integer 
Dim Numero2 As Integer 
Numero1 = InputBox("Entrar el primer valor", "Entrada de datos") 
Numero2 = InputBox("Entrar el primer valor", "Entrada de datos") 
ActiveSheet.Range("A1").Value = Numero1 + Numero2 
 
End Sub 
 
Ejecute el procedimiento y ponga respectivamente los valores 25 y 25. Observe que todo ha ido 
correctamente y en la casilla A1 de la hoja activa aparece un 50. 
 
Ahora, vuelva a ejecutar el programa y cuando se le pide el primer valor teclee "Hola". Observe 
que el programa se detiene indicando un error en el tipo de datos. Efectivamente, observe que la 
función InputBox devuelve siempre datos tipo String, en el primer ejemplo no ha habido ningún 
problema, al entrar caracteres numéricos1, estos pueden asignarse a variables tipo Integer porque 
Visual Basic hace automáticamente la conversión, pero al entrar texto e intentarlo asignar a una 
variable Integer Visual Basic muestra un error indicando que la variable no es adecuada para los 
datos que se desean guardar. 
 
Para solucionar estos problemas se deben utilizar funciones de conversión de tipo. Estas 
funciones, como su nombre indica, convierten datos de un tipo a otro, de String a Integer, de 
Integer a String, de Date a String ,... Así el procedimiento anterior quedaría. 
 
 
 
 
Option Explicit 
 
Sub Sumar() 
 
Dim Numero1 As Integer 
Dim Numero2 As Integer 
Numero1 = Val(InputBox("Entrar el primer valor", "Entrada de datos")) 
Numero2 = Val(InputBox("Entrar el primer valor", "Entrada de datos")) 
ActiveSheet.Range("A1").Value = Numero1 + Numero2 
 
End Sub 
 
La función Val(Dato String), convierte una cadena de caracteres a valor numérico. Si la cadena a 
convertir contiene algún carácter no numérico devuelve 0. Así, si al pedir un valor se teclea "Hola", 
la función Val, devolverá un cero. 
 
Funciones de conversión de tipos. (Tabla copiada de la ayuda en línea de 
Visual Basic para Excel). 
 
Val(Cadena). Convierte la cadena a un valor numérico. 
Str(Número). Convierte el número a una expresión cadena. 
CDate(Fecha). Convierte cualquier cadena a fecha. 
 
Objeto Cells(fila, columna). 
 
Sirve, como el objeto range, para referenciar una casilla o rango de casillas, pero en lugar de 
utilizar la referencia de la forma A1, B1, X320,... utiliza la fila y la columna que ocupa la casilla 
dentro de la hoja (o objeto WorkSheet). Por ejemplo, para poner hola en la casilla A1 de la hoja 
activa seria: 
 
ActiveSheet.Cells(1,1).Value="Hola" 
 
Utilizar Cells para referenciar un rango. 
 
Esto sería el equivalente a Range("Casilla_Inicial:Casilla_Final").  
 
La forma que se obtiene utilizando Cells es un poco más larga, pero se verá que a veces resulta 
mucho más funcional que utilizando únicamente range. Para referirnos al rango A1:B8, 
pondremos: 
 
Range(Cells(1, 1), Cells(8, 2)).Value = "Hola" 
 
Otra forma interesante de Cells es la siguiente: 
 
Range("A5:B10").Cells(2, 1).Value = "Hola" 
 
Pondrá en la celda A6 el valor "Hola", observe que en este ejemplo Cells comienza a contar filas y 
columnas a partir del rango especificado en el objeto Range. 
 
Variables de Objetos. 
 
Una variable objeto sir ve para hacer referencia a un objeto, esto significa que podremos acceder a 
las propiedades de un objeto e invocar a sus métodos a través de la variable en lugar de hacerlo 
directamente a través del objeto. Posiblemente no se utilice demasiado esta clase de variables 
(está claro que esto dependerá de las preferencias del programador), pero hay casos en los que no 
hay más remedio que utilizarlas, por ejemplo en estructuras For Each ... Next como veremos, o 
cuando sea necesario construir funciones que devuelvan rangos, referencias a hojas, etc. 
 
Para declarar una variable objeto se utiliza también la palabra Dim de la forma siguiente, 
 
Dim Var_Objeto As Objeto 
 
Por Ejemplo: 
 
Dim R As Range 
 
Dim Hoja As WorkSheet 
 
Para asignar un objeto a una variable debe u tilizar la instrucción Set. 
 
Set Variable_Objeto = Objeto 
 
Por Ejemplo 
 
Set R= ActiveSheet.Range("A1:B10") 
Set Hoja = ActiveSheet 
Set Hoja = WorkSheets(1) 
 
Veamos a continuación un ejemplo de cómo utilizar este tipo de variables, 
 
Ejemplo 6. 
 
Algo muy simple, llenar el rango de A1 a B10 con la palabra "Hola" y después poner negrita, 
observe como se asigna una variable objeto al objeto y luego como se trabaja con esa variable de 
la misma forma que trabajaría directamente sobre el objeto. 
 
Sub obj() 
 
Dim R As Range 
Set R = ActiveSheet.Range("A10:B15") 
R.Value = "Hola" 
R.Font.Bold = True 
 
End Sub 
 
 
 
Estructuras condicionales. 
 
Ahora que ya ha experimentado con unos cuantos objetos y propiedades, nos detendremos a 
estudiar las estructuras condicionales. Las estructuras condicionales son instrucciones de 
programación que permiten controlar la ejecución de un fragmento de código en función de si se 
cumple o no una condición. 
 
Estudiaremos en primer lugar la instrucción if Condición then..End if (Si Condición Entonces...Fin 
Si) 
 
La estructura condicional que se construye con la instrucción Si Condición Entonces... Fin Si tiene 
la forma siguiente. 
 
Si Condición Entonces 
Senténcia1 
Senténcia2 


SenténciaN 
 
Fin Si 


Cuando el programa llega a la instrucción Si Condición Entonces , se evalúa la condición, si esta se 
cumple (es cierta), se ejecutan todas las sentencias que están encerradas en el bloque, si no se 
cumple la condición, se saltan estas sentencias. Esta estructura en Visual Basic tiene la sintaxis 
siguiente: 
 
If Condición Then 
Senténcia1 
Senténcia2 


SenténciaN 
End If 
 
Ejemplo 6 
 
Entrar una cantidad que representa el precio de algo por el teclado con la instrucción InputBox y 
guardarlo en la celda A1 de la hoja activa. Si el valor entrado desde el teclado (y guardado en A1) 
es superior a 1000, pedir descuento con otro InputBox y guardarlo en la casilla A2 de la hoja 
activa. 
 
Calcular en A3, el precio de A1 menos el descuento de A2. 
 
 
 
 
Sub Condicional() 
 
ActiveSheet.Range("A1").Value = 0 ' Poner las casillas donde se guardan los valores 0. 
ActiveSheet.Range("A2").Value = 0 
ActiveSheet.Range("A3").Value = 0 
ActiveSheet.Range("A1").Value = Val(InputBox("Entrar el precio", "Entrar")) 
 
' Si el valor de la casilla A1 es mayor que 1000, entonces, pedir descuento 
 
If ActiveSheet.Range("A1").Value > 1000 Then 
 
ActiveSheet.Range("A2").Value = Val(InputBox("Entrar Descuento", "Entrar")) 
 
End If 
 
ActiveSheet.Range("A3").Value = ActiveSheet.Range("A1").Value ‐ _ 
ActiveSheet.Range("A2").Value 
 
End Sub 
 
Ejemplo 7. 
 
El mismo que el anterior pero utilizando variables. 
 
Option Expl icit 
 
Sub Condicional() 
Dim Precio As Integer 
Dim Descuento As Integer 
 
Precio = 0 
Descuento = 0 
Precio = Val(InputBox("Entrar el precio", "Entrar")) 
 
' Si el valor de la variable precio es mayor que 1000, entonces, pedir descuento 
If Precio > 1000 Then 
Descuento = Val(InputBox("Entrar Descuento", "Entrar")) 
End If 
 
ActiveSheet.Range("A1").Value = Precio 
ActiveSheet.Range("A2").Value = Descuento 
ActiveSheet.Range("A3").Value = Precio ‐ Descuento 
 
End Sub 
 
Viendo los dos programas anteriores puede que le surja la duda de si emplear variables o 
directamente valores almacenados en las celdas. La solución es fácil, lo que le parezca más 
conveniente en cada caso concreto que desee solucionar. Las variables, aunque muchas veces 
"innecesarias", quizás dejan los programas más legibles y claros. Y la legibilidad de un programa es 
lo más valioso del mundo para un programador (profesionalmente hablando), sobre todo si se da 
el caso (inevitable el 99,999...% de las ocasiones) que se tenga que modificar un programa para 
dotarle de más funcionalidades, facilitar su manejo, etc. En la mayoría de ejemplos que encontrará 
en este manual verá que se utilizan variables preferentemente. Aunque muchas veces su función 
sea simplemente recoger datos de las celdas para operarlas y dejarlas en otras celdas y, 
consecuentemente, aumente el número de operaciones, creemos que con ello se gana en 
legibilidad y flexibilidad. 
 
Ejemplo 8. 
 
Macro que compara los valores de las casillas A1 y A2 de la hoja activa. Si son iguales pone el color 
de la fuente de ambas en azul. 
 
Sub Condicional2() 
 
If ActiveSheet.Range("A1").Value = ActiveSheet.Range("A2").Value Then 
 
ActiveSheet.Range("A1").Font.Color = RGB(0, 0, 255) 
ActiveSheet.Range("A2").Font.Color = RGB(0, 0, 255) 
 
End If 
 
End Sub 
 
Estructura If..Else 
 
Esta estructura se utiliza cuando se requiere una respuesta alternativa a una condición. Su 
estructura es la siguiente. 
 
Si Condición Entonces 
 
Senténcia1 
Senténcia2 


SenténciaN 
 
Sino 
 
Senténcia1 
Senténcia2 


SenténciaN 
 
Fin Si 
Observe que, si se cumple la condición, se ejecuta el bloque de sentencias delimitado por Si 
Condición Entonces y Si no se cumple la condición se ejecuta el bloque delimitado por Sino y Fin 
Si.  
 
En Visual Basic la instrucción Si Condición Entonces ... Sino ... Fin Si se expresa con las 
instrucciones siguientes. 
 
If Condición Then 
 
Senténcia1 
Senténcia2 


SenténciaN 
 
Else 
 
Senténcia1 
Senténcia2 


SenténciaN 
 
End If 
 
Ejemplo 9. 
 
Entrar una cantidad que representa el precio de algo por el teclado con la instrucción InputBox y 
guardarlo en la celda A1 de la hoja activa. Si el valor entrado desde el teclado (y guardado en A1) 
es superior a 1000, se aplica un descuento del 10% si no se aplica un descuento del 5%, el 
descuento se guarda en la casilla A2 de la hoja activa. Colocar en A3, el total descuento y en A4 el 
total menos el descuento. 
 
Sub Condicional_Else() 
 
Dim Precio As Single 
Dim Descuento As Single 
 
Precio = 0 
 
Precio = Val(InputBox("Entrar el precio", "Entrar")) 
 
' Si el valor de la variable precio es mayor que 1000, entonces, aplicar descuento del 10% 
 
If Precio > 1000 Then 
 
Descuento = Precio * (10 / 100) 
 
ActiveSheet.Range("A2").Value = 0,1 
 
Else ' Sino Aplicar descuento del 5% 
 
Descuento = Precio * (5 / 100) 
 
ActiveSheet.Range("A2").Value = 0,05 
 
End If 
 
ActiveSheet.Range("A1").Value = Precio 
ActiveSheet.Range("A3").Value = Descuento 
ActiveSheet.Range("A4").Value = Precio ‐ Descuento 
 
End Sub 
 
Ejemplo 10. 
 
Restar los valores de las casillas A1 y A2. Guardar el resultado en A3. Si el resultado es positivo o 0, 
poner la fuente de A3 en azul, sino ponerla en rojo. 
 
Sub Condicional_Else2() 
 
ActiveSheet.Range("A3").Value = AvtiveSheet.Range("A1").Value ‐ _ 
ActiveSheet.Range("A2").Value 
 
If ActiveSheet("A3").Value < 0 Then 
 
ActiveSheet.Range("A3").Font.Color = RGB(255,0,0) 
 
Else 
 
ActiveSheet.Range("A3").Font.Color = RGB(0,0,255) 
 
End If 
 
End Sub 
 
 
∙  Estructuras If anidadas. 
 
No tiene que sorprenderle, dentro de una estructura if puede ir otra, y dentro de esta otra, y 
otra... Vea el ejemplo siguiente. 
 
Ejemplo 11. 
 
Comparar los valores de las casillas A1 y A2 de la hoja activa. Si son iguales, escribir en A3 "Los 
valores de A1 y A2 son iguales", si el valor de A1 es mayor que A2, escribir "A1 mayor que A2", 
sino, escribir "A2 mayor que A1" . 
 
Sub Condicional() 
 
If ActiveSheet.Range("A1").Value = ActiveSheet.Range("A2").Value Then 
 
ActiveSheet.Range("A3").Value = "Los Valores de A1 y A2 son iguales" 
 
Else 
 
If ActiveSheet.Range("A1").Value > ActiveSheet.Range("A2").Value Then 
 
ActiveSheet.Range("A3").Value = "A1 mayor que A2" 
 
Else 
ActiveSheet.Range("A3").Value = "A2 mayor que A1" 
 
End If 
 
End If 
 
End Sub 
 
Observe que la segunda estructura If..Else..End If queda dentro del Else de la primera estructura. 
Esta es una regla general, cuando pone un End If, este cierra siempre el último If ( o Else) abierto. 
∙  Operadores lógicos. 
 
Estos operadores se utilizan cuando se necesitan evaluar dos o más condiciones para decidir si se 
ejecutan o no determinadas acciones. 
 
Operador Lógico And (Y). 
 
Utilizaremos este operador cuando sea preciso que para ejecutar un bloque de instrucciones se 
cumpla más de una condición. Observe que deberán cumplirse todas las condiciones. Vea el 
ejemplo siguiente. 
 
Ejemplo 12. 
 
Entrar el Nombre, la cantidad y el precio de un producto desde el teclado y guardarlos 
respectivamente en 
A1, A2 y A3. Calcular el total y guardarlo en A4. Si el total es superior a 10.000 y el nombre del 
producto es "Patatas", pedir un descuento, calcularlo el total descuento y guardarlo en A5, luego 
restar el descuento del total y guardarlo en A6. 
 
Sub Ejemplo_12() 
 
Dim Producto As String 
Dim Cantidad As Integer 
Dim Precio As Single 
Dim Total As Single 
Dim Descuento As Single 
Dim Total_Descuento As Single 
 
Precio = 0 
Producto = InputBox("Entrar Nombre del Producto","Entrar") 
Precio = Val(InputBox("Entrar el precio", "Entrar")) 
Precio = Val(InputBox("Entrar la cantidad", "Entrar")) 
Total = Precio * Cantidad 
 
ActiveSheet.Range("A1").Value = Producto 
ActiveSheet.Range("A2").Value = Precio 
ActiveSheet.Range("A3").Value = Cantidad 
ActiveSheet.Range("A4").Value = Total 
 
' Si total mayor que 10.000 y el producto es Patatas, aplicar descuento. 
 
If Total > 10000 And Producto = "Patatas" Then 
 
Descuento = Val(InputBox("Entrar Descuento", "Entrar")) 
Total_Descuento = Total * (Descuento / 100) 
Total = Total ‐ Total_Descuento 
ActiveSheet.Range("A5").Value = Total_Descuento 
ActiveSheet.Range("A6").Value = Total 
 
End If 
 
End Sub 
 
Observe que para que se ejecute el bloque de instrucciones entre If.. End If deben cumplirse las 
dos condiciones que se evalúan, si falla cualquiera de las dos (o las dos a la vez), no se ejecuta 
dicho bloque. 
 
 
 
 
 
Operador Lógico Or (O). 
 
Utilizaremos este operador cuando sea preciso que para ejecutar un bloque de instrucciones se 
cumpla alguna de una serie de condiciones. Observe que sólo es necesario que se cumpla alguna 
de las condiciones que se evalúan. Vea el ejemplo siguiente. 
 
Ejemplo 13. 
 
Entrar el Nombre, la cantidad y e l precio de un producto desde el teclado y guardarlos 
respectivamente en A1, A2 y A3. Calcular el total y guardarlo en A4. Si el total es superior a 10.000 
o el nombre del producto es "Patatas", pedir un descuento, calcularlo el total descuento y 
guardarlo en A5, luego restar el descuento del total y guardarlo en A6. 
 
 
 
Sub Ejemplo_13() 
 
Dim Producto As String 
Dim Cantidad As Integer 
Dim Precio As Single 
Dim Total As Single 
Dim Descuento As Single 
Dim Total_Descuento As Single 
 
Precio = 0 
Producto = InputBox("Entrar Nombre del Producto","Entrar") 
Precio = Val(InputBox("Entrar el precio", "Entrar")) 
Precio = Val(InputBox("Entrar la cantidad", "Entrar")) 
Total = Precio * Cantidad 
 
ActiveSheet.Range("A1").Value = Producto 
ActiveSheet.Range("A2").Value = Precio 
ActiveSheet.Range("A3").Value = Cantidad 
ActiveSheet.Range("A4").Value = Total 
 
' Si total mayor que 10.000 o el producto es Patatas, aplicar descuento. 
 
If Total > 10000 Or Producto = "Patatas" Then 
 
Descuento = Val(InputBox("Entrar Descuento", "Ent rar")) 
Total_Descuento = Total * (Descuento / 100) 
Total = Total ‐ Total_Descuento 
ActiveSheet.Range("A5").Value = Total_Descuento 
ActiveSheet.Range("A6").Value = Total 
 
End If 
 
End Sub 
 
Observe que para que se ejecute el bloque de instrucciones entre If.. End If sólo es necesario que 
se cumpla alguna de las dos condiciones que se evalúan (o las dos a la vez). Sólo cuando no se 
cumple ninguna de las dos no se ejecutan las instrucciones del bloque. 
 
∙  Estructura Select Case. 
 
En ocasiones se dará el caso que en función del valor o rango de valores que pueda tener una 
variable, una casilla, una expresión, etc. deberán llevarse a cabo diferentes acciones o grupos de 
acciones. Vea el ejemplo siguiente. 
 
Ejemplo 15. 
 
Macro que suma, resta, multiplica o divide los valores de las casillas A1 y A2 dependiendo de si B1 
contiene el signo +, ‐, x, :. El resultado lo deja en A3. Si en B1 no hay ninguno de los signos 
anteriores en A3 debe dejarse un 0. 
 
Sub Ejemplo_15() 
 
Dim Signo As String 
Dim Valor1 As Integer, Valor2 As Integer, Total As Integer 
 
Valor1 = ActiveSheet.Range("A1").Value 
Valor2 = ActiveSheet.Range("A2").Value 
Signo = ActiveSheet.Range("B1").Value 
Total=0 
 
If Signo = "+" Then 
Total = Valor1 + Valor2 
End if 
 
If Signo = "‐" Then 
Total = Valor1 ‐ Valor2 
End if 
 
If Signo = "x" Then 
Total = Valor1 * Valor2 
End if 
 
If Signo = ":" Then 
Total = Valor1 / Valor2 
End if 
 
ActiveCell.Range("A3").Value = Total 
End Sub 
 
Observe que en el ejemplo anterior todas las instrucciones if evalúan la misma variable. El 
programa funciona correctamente pero para estos casos es mejor utilizar la instrucción Select Ca 
se, el motivo principal es por legibilidad y elegancia. Select Case tiene la sintaxis siguiente, 
 
Select Case Expresión 
 
Case valores : 
 
Instrucciones. 
 
Case valores : 
Instrucciones. 


Case valores: 
 
Instrucciones. 
 
Case Else 
 
Instrucciones en caso que no sean ninguno de los valores anteriores. 
 
End Select 
 
Vea el ejemplo anterior solucionado con esta estructura. 
 
Ejemplo 16. 
 
Sub Ejemplo_16() 
 
Dim Signo As String 
Dim Valor1 As Integer, Valor2 As Integer, Total As Integer 
 
Valor1 = ActiveSheet.Range("A1").Value 
Valor2 = ActiveSheet.Range("A2").Value 
Signo = ActiveSheet.Range("A3").Value 
 
Select Case signo 
 
Case "+" 
 
Total = Valor1 + Valor2 
 
Case "‐" 
 
Total = Valor1 ‐ Valor2 
 
Case "x" 
 
Total = Valor1 * Valor2 
 
Case ":" 
 
Total = Valor1 / Valor2 
 
Case Else 
 
Total = 0 
 
End Select 
 
ActiveCell.Range("A3").Value = Total 
 
End Sub 
 
Vea el ejemplo siguiente donde cada sentencia Case evalúa un rango de valores. 
 
Ejemplo 17. 
 
Programa que pide tres notas de un alumno mediante la función InputBox. Las notas van a parar   
respectivamente a las casillas A1, A2 y A3 de la hoja activa. El programa calcula la media y la deja 
en A4.  
 
Si la media está entre 0 y 2 deja en A5 el mensaje "Muy deficiente", si la nota es 3 deja en A5 el 
mensaje "Deficiente", si la nota es 4 deja "Insuficiente", si es 5 "Suficiente", si es 6 "Bien", si está 
entre 7 y 8 deja "Notable", si es mayor que 8 deja "Sobresaliente". 
 
Sub Ejemplo_17() 
 
Dim Nota1 As Integer, Nota2 As Integer, Nota3 As Integer 
Dim Media As Single 
 
Nota1 = Val(InputBox("Entrar Nota primera evaluación", "Nota")) 
Nota2 = Val(InputBox("Entrar Nota Segunda evaluación", "Nota")) 
Nota3 = Val(InputBox("Entrar Nota Tercera evaluación", "Nota")) 
 
Media = (Nota1 + Nota2 + Nota3) / 3 
 
ActiveSheet.Range("A1").Value = Nota1 
ActiveSheet.Range("A2").Value = Nota2 
ActiveSheet.Range("A3").Value = Nota3 
ActiveSheet.Range("A4").Value = Media 
 
Select Case Media 
 
Case 0 To 2 
 
ActiveSheet.Range("A5").Value = "Muy deficiente" 
 
Case 3 
 
ActiveSheet.Range("A5").Value = "Deficiente" 
 
Case 4 
 
ActiveSheet.Range("A5").Value = "Insuficiente" 
 
Case 5 
 
ActiveSheet.Range("A5").Value = "Suficiente" 
 
Case 6 
 
ActiveSheet.Range("A5").Value = "Bien" 
 
Case 7 To 8 
 
ActiveSheet.Range("A5").Value = "Notable" 
 
Case >8 
 
ActiveSheet.Range("A5").Value = "Sobresaliente" 
 
End Select 
 
End Sub 
 
 
∙  La función MsgBox. 
 
Esta función muestra un mensaje en un cuadro de diálogo hasta que el usuario pulse un botón. La 
función devuelve un dato tipo Integer en función del botón pulsado por el usuario. A la hora de 
invocar está función, se permiten diferentes tipos de botones. 
 
Sintáxis de MsgBox. 
 
MsgBox( Mensaje, Botones, Título, Archivo de ayuda, contexto) 
 
Mensaje: Obligatorio, es el mensaje que se muestra dentro del cuadro de diálogo. 
 
Botones: Opcional. Es un número o una suma de números o constantes (vea tabla Valores para 
botones e Iconos), que sirve para mostrar determinados botones e iconos dentro del cuadro de 
diálogo. Si se omite este argumento asume valor 0 que corresponde a un único Botón OK. 
 
Título: Opcional. Es el texto que se mostrará en la barra del título del cuadro de diálogo. 
 
Archivo de Ayuda: Opcional. Si ha asignado un texto de ayuda al cuadro de diálogo, aquí debe 
especificar el nombre del archivo de ayuda donde está el texto. 
 
Context: Opcional. Es el número que sirve para identificar el texto al tema de ayuda 
correspondiente que estará contenido en el archivo especificado en el parámetro Archivo de 
Ayuda. 
 
 
 
Tabla para botones e iconos del cuadro MsgBox. (Tabla copiada del archivo 
de ayuda de 
Microsoft Excel). 
 
Constante  Valor  Descripción 
 VbOKOnly    0   Muestra solamente el botón Aceptar.   
 VbOKCancel    1   Muestra los botones Aceptar y Cancelar.   
 VbAbortRetryIgnore    2   Muestra los botones Anular, Reintentar e Ignorar.   
 VbYesNoCancel    3   Muestra los botones Sí, No y Cancelar.   
 VbYesNo    4   Muestra los botones Sí y No.   
 VbRetryCancel    5   Muestra los botones Reintentar y Cancelar.   
 VbCritical    16   Muestra el icono de mensaje crítico.   
 VbQuestion    32   Muestra el icono de pregunta de advertencia.   
 VbExclamation    48   Muestra el icono de mensaje de advertencia.   
 VbInformation    64   Muestra el icono de mensaje de información.   
 VbDefaultButton1    0   El primer botón es el predeterminado.   
 VbDefaultButton2    256   El segundo botón es el predeterminado.   
 VbDefaultButton3    512   El tercer botón es el predeterminado.   
 VbDefaultButton4    768   El cuarto botón es el predeterminado.   
 VbApplicationModal    0   Aplicación modal 
 VbSystemModal    4096   Sistema modal 
 
El primer grupo de valores (0 a 5) describe el número y el tipo de los botones mostrados en el 
cuadro de diálogo; el segundo grupo (16, 32, 48, 64) describe el estilo del icono, el tercer grupo (0, 
256, 512) determina el botón predeterminado y el cuarto grupo (0, 4096) determina la modalidad 
del cuadro de mensajes. Cuando se suman números para obtener el valor final del argumento 
buttons, se utiliza solamente un número de cada grupo. 
 
Nota Estas constantes las especifica Visual Basic for Applications. Por tanto, el nombre de las 
mismas puede utilizarse en cualquier lugar del código en vez de sus valores reales. 
 
Los valores que puede devolver la función msgbox en función del botón que pulse el usuario se 
muestran en la tabla siguiente. 
 
Tabla de valores que puede devolver MsgBox. (Tabla copiada del archivo de ayuda de Microsoft 
Visual Basic para aplicaciones). 
 
Constante  Valor  Descripción
 VbOK     1     Aceptar   
 VbCancel     2     Cancelar   
 VbAbort     3     Anular   
 VbRetry     4     Reintentar  
 VbIgnore     5     Ignorar   
 VbYes     6     Sí   
 VbNo     7     No   
 
 
Ejemplos de MsgBox. 
 
Sub Tal() 


' El cuadro Muestra los botones Si y No y un icono en forma de interrogante. Cuando se pulsa 
' un botón, el valor lo recoge la variable X. En este caso los valores devueltos pueden ser 6 o 7 
' que corresponden respectivamente a las constantes VbYes y VbNo, observe la instrucción If de 
'después. 
 
X = MsgBox("Desea Continuar", vbYesNo + vbQuestion, "Opción",,) 
 
' Se ha pulsado sobre botón Si 
 
If X = vbYes Then 
..... 
Else ' Se ha pulsado sobre botón No 
..... 
End If 


End Sub 
 
Algunas veces puede que le interese simplemente desplegar un cuadro MsgBox para mostrar un 
mensaje al usuario sin que se requiera recoger ningún valor. En este caso puede optar por la forma 
siguiente: 
 
MsgBox Prompt:="Hola usuaria, Ha acabado el proceso", Buttons:=VbOkOnLy _ 
Title:="Mensaje" 
 
Lo que no puede hacer porque Visual Basic daría error es poner la primera forma sin igualarla a 
ninguna variable. Por ejemplo, la expresión siguiente es incorrecta: 
 
MsgBox ("Hola usuario, Ha acabado el proceso", VbOkOnly, "Mensaje") 
 
Sería correcto poner: 
 
X= MsgBox ("Hola usuario, Ha acabado el proceso", VbOkOnly, "Mensaje") 
 
En este caso, aunque X reciba un valor, luego no se utiliza para nada, es decir simplemente se 
pone para que Visual Basic dé error. 
 
∙  La instrucción With. 
 
Suponemos que llegado a este punto le parecerá engorroso tener que referirse a los objetos 
siguiendo toda o casi toda la jerarquía. Ya hemos indicado que es mejor hacerlo de esta manera 
porque el programa gana en claridad y elegancia y, consecuentemente, el programador gana 
tiempo a la hora de hacer modificaciones o actualizaciones. La sentencia With le ayudará a tener 
que escribir menos código sin que por esto el programa pierda en claridad. Concretamente esta 
función sirve para ejecutar una serie de acciones sobre un mismo Objeto.  
 
Su sintaxis es la siguiente: 
 
With Objeto 
 
Instrucciones 
 
End With 
 
Repetiremos el ejemplo 13 utilizando esta sentencia. Observe como con With se hace referencia al 
objeto ActiveSheet. 
 
Ejemplo 19. 
 
Entrar el Nombre, la cantidad y el precio de un producto desde el teclado y guardarlos 
respectivamente en A1, A2 y A3. Calcular el total y guardarlo en A4. Si el total es superior a 10.000 
o el nombre del producto es "Patatas", pedir un descuento, calcularlo el total descuento y 
guardarlo en A5, luego restar el descuento del total y guardarlo en A6. 
 
Sub Ejemplo_19() 
 
Dim Producto As String 
Dim Cantidad As Integer 
Dim Precio As Single 
Dim Total As Single 
Dim Descuento As Single 
Dim Total_Descuento As Single 
 
Precio = 0 
Producto = InputBox("Entrar Nombre del Producto","Entrar") 
Precio = Val(InputBox("Entrar el precio", "Entrar")) 
Precio = Val(InputBox("Entrar la cantidad", "Entrar")) 
Total = Precio * Cantidad 
 
With ActiveSheet 
 
.Range("A1").Value = Producto 
.Range("A2").Value = Precio 
.Range("A3").Value = Cantidad 
.Range("A4").Value = Total 
 
End With 
 
 
' Si total mayor que 10.000 o el producto es Patatas, aplicar descuento. 
 
If Total > 10000 Or Producto = "Patatas" Then 
 
Descuento = Val(InputBox("Entrar Descuento", "Entrar")) 
Total_Descuento = Total * (Descuento / 100) 
Total = Total ‐ Total_Descuento 
 
With ActiveSheet 
 
.Range("A5").Value = Total_Descuento 
.Range("A6").Value = Total 
 
End With 
 
End If 
 
End Sub 
 
Estructuras Repetitivas. 
 
Este tipo de estructuras permiten ejecutar más de una vez un mismo bloque de sentencias. 
 
Ejemplo 20. 
 
Supongamos que tenemos que hacer un programa para entrar las notas de una clase de 5 alumnos 
que se guardaran respectivamente en las celdas de A1 a A5 de la hoja activa. Después hacer la 
media que se guardará en A6. Con las estructuras vistas hasta ahora, podríamos hacer: 
 
Sub Ejemplo_20 () 
 
Dim Nota As Integer 
Dim Media As Single 
 
Media = 0 
Nota = Val(InputBox("Entrar la 1 Nota : ","Entrar Nota")) 
ActiveSheet.Range("A1").Value = Nota 
Media = Media + Nota 
Nota = Val(InputBox("Entrar la 1 Nota : ","Entrar Nota")) 
ActiveSheet.Range("A2").Value = Nota 
Media = Media + Nota 
Nota = Val(InputBox("Entrar la 1 Nota : ","Entrar Nota")) 
ActiveSheet.Range("A3").Value = Nota 
Media = Media + Nota 
Nota = Val(InputBox("Entrar la 1 Nota : ","Entrar Nota")) 
ActiveSheet.Range("A4").Value = Nota 
Media = Media + Nota 
Nota = Val(InputBox("Entrar la 1 Nota : ","Entrar Nota")) 
ActiveSheet.Range("A5").Value = Nota 
Media = Media + Nota 
Media = Media / 5 
ActiveSheet.Range("A6").Value = Media 
 
End Sub 
 
Observe que este programa repite el siguiente bloque de sentencias, 5 veces. 
 
Nota = Val(InputBox("Entrar la 1 Nota : ","Entrar Nota")) 
 
ActiveSheet.Range("A5").Value = Nota 
 
Media = Media + Nota 
 
Para evitar esta tipo de repeticiones de código, los lenguajes de programación incorporan 
instrucciones que permiten la repetición de bloques de código. 
 
∙  Estructura repetitiva Para (for). 
 
Esta estructura sirve para repetir la ejecución de una sentencia o bloque de sentencias, un número 
definido de veces. La estructura es la siguiente: 
 
Para var =Valor_Inicial Hasta Valor_Final Paso Incremento Hacer 
 
Inicio 
 
Sentencia 1 
Sentencia 2 


Sentencia N 
Fin 
 
Var es una variable que la primera vez que se entra en el bucle se iguala a Valor_Inicial, las 
sentencias del bucle se ejecutan hasta que Var llega al Valor_Final, cada vez que se ejecutan el 
bloque de instrucciones Var se incrementa según el valor de Incremento. 
 
En Visual Basic para Excel la estructura Para se implementa con la instrucción For ... Next. 
 
For Varible = Valor_Inicial To Valor_Final Step Incremento 
 
Sentencia 1 
Sentencia 2 


Sentencia N 
 
Next Variable 
 
* Si el incremento es 1, no hace falta poner Step 1. 
 
Ejemplo 21. 
 
Entrar 10 valores utilizando la función InputBox, sumarlos y guardar el resultado en la casilla A1 de 
la hoja activa. 
 
Sub Ejemplo_21() 
 
Dim i As Integer 
Dim Total As Integer 
Dim Valor As Integer 
 
For i=1 To 10 
 
Valor= Val(InputBox("Entrar un valor","Entrada")) 
Total = Total + Valor 
 
Next i 
 
ActiveCell.Range("A1").Value = Total 
 
End Sub 
 
 
 
 
 
 
 
Recorrer casillas de una hoja de cálculo. 
 
Una operación bastante habitual cuando se trabaja con Excel es el recorrido de rangos de casillas 
para llenarlas con valores, mirar su contenido, etc. Las estructuras repetitivas son imprescindibles 
para recorrer grupos de celdas o rangos. Vea los siguientes ejemplos para ver ejemplos de 
utilización de estructuras repetitivas para recorrer rangos de casillas, observe la utilización de las 
propiedades Cells y Offset. 
 
 
 
 
Propiedad Cells. 
 
Ya conoce esta propiedad, sirve para referenciar una celda o un rango de celdas s egún 
coordenadas de fila y columna. 
 
 
Ejemplo 22 
 
Llenar el rango de las casillas A1..A5 con valores pares consecutivos empezando por el 2. 
 
Sub Ejemplo_22() 
 
Dim Fila As Integer 
Dim i As Integer 
Fila = 1 
For i=2 To 10 Step 2 
ActiveSheet.Cells(Fila,1).Value = i 
Fila = Fila+1 
 
Next i 
 
End Sub 
 
Ejemplo 23. 
 
Llenar un rango de filas, empezando por una celda, que se debe especificar desde teclado, con una 
serie de 10 valores correlativos (comenzando por el 1). 
 
Sub Ejemplo_23() 
 
Dim Casilla_Inicial As String 
Dim i As Integer 
Dim Fila As Integer, Columna As Integer 
 
Casilla_Inicial = InputBox("Introducir la casilla Inicial : ", "Casilla Inicial") 
ActiveSheet.Range(Casilla_Inicial).Activate 
 
‘ Tomar el valor de fila de la celda activa sobre la variable Fila 
 
Fila = ActiveCell.Row 
 
‘ Tomar el valor de columna de la celda activa sobre la variable Fila 
 
Columna = ActiveCell.Column 
 
For i = 1 To 10 
 
ActiveSheet.Cells(Fila, Columna).Value = i 
Fila = Fila + 1 
 
Next i 
 
End Sub 
 
 
 
∙  Estructura repetitiva Do While..Loop (Hacer Mientras). 
 
 
La estructura repetitiva for se adapta perfectamente a aquellas situaciones en que se sabe 
previamente el número de veces que se ha de repetir un proceso, entrar veinte valores, recorrer 
cincuenta celdas, etc.  
 
Pero hay ocasiones o casos en los que no se sabe previamente el número de veces que se debe 
repetir un proceso.  
 
Por ejemplo, suponga que ha de recorrer un rango de filas en los que no se sabe cuantos valores 
habrá (esto es, cuantas filas llenas habrá), en ocasiones puede que hayan veinte, en ocasiones 
treinta, en ocasiones ninguna, etc. Para estos casos la estructura for no es adecuada y deberemos 
recurrir a la sentencia Do While..Loop en alguna de sus formas. Esta estructura repetitiva está 
controlada por una o varias condiciones, la repetición del bloque de sentencias dependerá de si se 
va cumpliendo la condición o condiciones. 
 
Hacer Mientras (se cumpla la condición) 
 
Sentencia1 
Sentencia2 


Sentencia N 
 
Fin Hacer Mientras 
 
En Visual Basic 
 
Do While (se cumpla la condición) 
Sentencia1 
Sentencia2 


Sentencia N 
Loop 
 
** Los ejemplos que veremos a continuación sobre la instrucción Do While..Loop se harán sobre 
una base de datos.  
 
Una base de datos en Excel es simplemente un rango de celdas en que cada fila representa un 
registro y cada columna un campo de registro, la primera fila es la que da nombre a los campos.  
 
Para nuestra base de datos utilizaremos los campos siguientes, Nombre, Ciudad, Edad, Fecha.  
 
Ponga estos títulos en el rango A1:D1 de la Hoja1 (En A1 ponga Nombre, en B1 ponga Ciudad, en 
C1 ponga Edad y en D1 Fecha), observe que los datos se empezarán a entrar a partir de A2. 
 
Ejemplo 27. 
 
Programa para entrar registros en la base de datos. Cada campo se entra con InputBox. El 
programa va pidiendo datos mientras se entre un valor en el InputBox correspondiente al nombre, 
es decir cuando al preguntar el nombre no se entre ningún valor, terminará la ejecución del 
bloque encerrado entre Do While...Loop.  
 
Observe la utilización de la propiedad Offset para colocar los datos en las celdas correspondientes. 
 
Sub Ejemplo_27() 
 
Dim Nombre As String 
Dim Ciudad As String 
Dim Edad As Integer 
Dim fecha As Date 
 
‘ Activar hoja1 
 
WorkSheets("Hoja1").Activate 
 
‘ Activar casilla A2 
 
ActiveSheet.Range("A2").Activate 
 
Nombre = InputBox("Entre el Nombre (Return para Terminar) : ", "Nombre") 
 
‘ Mientras la variable Nombre sea diferente a cadena vacía 
 
Do While Nombre <> "" 
 
Ciudad = InputBox("Entre la Ciudad : ", "Ciudad") 
Edad = Val(InputBox("Entre la Edad : ", "Edad")) 
Fecha=Cdate(InputBox("Entra la Fecha : ", "Fecha")) 
 
‘ Copiar los datos en las casillas correspondientes 
 
With ActiveCell 
.Value = Nombre 
.Offset(0,1).Value = Ciudad 
.Offset(0,2).Value = Edad 
.Offset(0,3).Value = fecha 
 
End With 
 
‘Hacer activa la celda de la fila siguiente a la actual 
 
ActiveCell.Offset(1,0).Activate 
Nombre = InputBox("Entre el Nombre (Return para Terminar) : ", "Nombre") 
Loop 
End Sub 
 
 
Ejemplo 28. 
 
Preste especial atención a este ejemplo ya que seguro que el código que viene a continuación lo 
utilizará en muchas ocasiones.  
 
Antes que nada observe el ejemplo anterior, fíjese en que siempre empezamos a llenar el rango de 
la hoja a partir de la celda A2, esto tiene una nefasta consecuencia, la segunda vez que ejecute la 
macro machacará los datos de A2:D2 y si continua ejecutando machacará los datos de los rangos 
siguientes.  
 
Una solución sería observar cual es la casilla vacía siguiente y cambiar en la instrucción 
ActiveSheet.Range("A2").Activate , la referencia A2 por la que corresponde a la primera casilla 
vacía de la columna A. El código que le mostramos a continuación hará esto por nosotros, es decir 
recorrerá una fila de celdas a partir de A1 hasta encontrar una vacía y dejará a esta como celda 
activa para que la entrada de datos comience a partir de ella. 
 
Sub Ejemplo_28() 


‘ Activar hoja1 
 
WorkSheets("Hoja1").Activate 
‘ Activar casilla A2 
 
ActiveSheet.Range("A1").Activate 
‘ Mientras la celda activa no esté vacía 
 
Do While Not IsEmpty(ActiveCell) 
 
‘ Hacer activa la celda situada una fila por debajo de la actual 
 
ActiveCell.Offset(1,0).Activate 
 
Loop 


End Sub 
 
Ejemplo 29. 
 
Es la unión de los dos programas anteriores. Es decir habrá un bucle Do While que buscará la 
primera casilla vacía de la base de datos y otro para pedir los valores de los campos hasta que se 
pulse Enter en Nombre. 
 
Sub Ejemplo_28() 
 
Dim Nombre As String 
Dim Ciudad As String 
Dim Edad As Integer 
Dim fecha As Date 
 
WorkSheets("Hoja1").Activate 
ActiveSheet.Range("A1").Activate 
‘ Buscar la primera celda vacía de la columna A y convertirla en activa 
 
Do While Not IsEmpty(ActiveCell) 
 
ActiveCell.Offset(1,0).Activate 
 
Loop 
 
Nombre = InputBox("Entre el Nombre (Return para Terminar) : ", "Nombre") 
‘ Mientras la variable Nombre sea diferente a cadena vacía 
 
Do While Nombre <> "" 
 
Ciudad = InputBox("Entre la Ciudad : ", "Ciudad") 
Edad = Val(InputBox("Entre la Edad : ", "Edad")) 
Fecha=Cdate(InputBox("Entra la Fecha : ", "Fecha")) 
 
With ActiveCell 
 
.Value = Nombre 
.Offset(0,1).Value = Ciudad 
.Offset(0,2).Value = Edad 
.Offset(0,3).value = fecha 
 
End With 
 
ActiveCell.Offset(1,0).Activate 
Nombre = InputBox("Entre el Nombre (Return para Terminar) : ", "Nombre") 
 
Loop 
 
End Sub 
 
Cuando se tienen que entrar desde el teclado conjuntos de valores, algunos programadores y 
usuarios prefieren la fórmula de que el programa pregunte si se desean entrar más datos, la típica 
pregunta ¿Desea Introducir más datos ?, si el usuario contesta Sí, el programa vuelve a ejecutar las 
instrucciones correspondientes a la entrada de datos, si contesta que no se finaliza el proceso, 
observe como quedaría nuestro bucle de entrada de datos con este sistema. 
 
Mas_datos = vbYes 
 
Do While Mas_Datos = vbYes 
 
Nombre = InputBox("Entre el Nombre (Return para Terminar) : ", "Nombre") 
Ciudad = InputBox("Entre la Ciudad : ", "Ciudad") 
Edad = Val(InputBox("Entre la Edad : ", "Edad")) 
Fecha=Cdate(InputBox("Entra la Fecha : ", "Fecha")) 
 
With ActiveCell 
 
.Value = Nombre 
.Offset(0,1).Value = Ciudad 
.Offset(0,2).Value = Edad 
.Offset(0,3).value = fecha 
 
End With 
 
ActiveCell.Offset(1,0).Activate 
‘ Preguntar al usuario si desea entrar otro registro. 
Mas_datos = MsgBox("Otro registro ?", vbYesNo+vbQuestion,"Entrada de datos") 
 
Loop 
 
** Observe que es necesaria la línea anterior al bucle Mas_datos = vbYes, para que cuando se 
evalúe la condición por vez primera esta se cumpla y se ejecuten las sentencias de dentro del 
bucle, Mas_datos es una variable de tipo Integer. Vea la sección siguiente donde se estudia una 
variante de la estructura Do While que es más adecuada para este tipo de situaciones. 
 
∙  Estructura Do..Loop While. 
 
El funcionamiento de esta estructura repetitiva es similar a la anterior salvo que la condición se 
evalúa al final, la inmediata consecuencia de esto es que las instrucciones del cuerpo del bucle se 
ejecutaran al menos una vez. Observe que para nuestra estructura de entrada de datos vista en el 
último apartado de la sección anterior esta estructura es más conveniente, al menos más 
elegante, si vamos a entrar datos, al menos uno entraremos, por tanto las instrucciones del cuerpo 
del bucle se deben ejecutar al menos una vez, luego ya decidiremos si se repiten o no. 
 
Do 
 
Nombre = InputBox("Entre el Nombre (Return para Terminar) : ", "Nombre") 
Ciudad = InputBox("Entre la Ciudad : ", "Ciudad") 
Edad = Val(InputBox("Entre la Edad : ", "Edad")) 
Fecha=Cdate(InputBox("Entra la Fecha : ", "Fecha")) 
 
With ActiveCell 
 
.Value = Nombre 
.Offset(0,1).Value = Ciudad 
.Offset(0,2).Value = Edad 
.Offset(0,3).value = fecha 
 
End With 
 
ActiveCell.Offset(1,0).Activate 
Mas_datos = MsgBox("Otro registro ?", vbYesNo+vbQuestion,"Entrada de datos") 
‘Mientras Mas_Datos = vbYes 
 
Loop While Mas_Datos = vbYes 
 
Observe que en este caso no es necesario la línea Mas_Datos = vbYes antes de Do para forzar la 
entrada en el bucle ya que la condición va al final. 
 
 
∙  Estructura Do..Loop Until (Hacer.. Hasta que se cumpla la condición). 
 
 
Es otra estructura que evalúa la condición al final observe que la interpretación es distinta ya que 
el bucle se va repitiendo HASTA que se cumple la condición, no MIENTRAS se cumple la condición.  
 
Cuál de los dos utilizar, pues, no se sorprenda, la que entienda mejor o le guste más. 
La entrada de datos con este bucle quedaría: 
 
Do 
 
Nombre = InputBox("Entre el Nombre (Return para Terminar) : ", "Nombre") 
Ciudad = InputBox("Entre la Ciudad : ", "Ciudad") 
Edad = Val(InputBox("Ent re la Edad : ", "Edad") 
Fecha=Cdate("InputBox("Entra la Fecha : ", "Fecha") 
 
With ActiveCell 
 
.Value = Nombre 
.Offset(0,1).Value = Ciudad 
.Offset(0,2).Value = Edad 
.Offset(0,3).value = fecha 
 
End With 
 
ActiveCell.Offset(1,0).Activate 
Mas_datos = MsgBox("Otro registro ?", vbYesNo+vbQuestion,"Entrada de datos") 
‘Hasta que Mas_Datos sea igual a vbNo 
 
Loop Until Mas_Datos=vbNo 
 
 
∙  Estructura For Each. 
 
Este bucle se utiliza básicamente para ejecutar un grupo de sentencias con los elementos de una 
colección una matriz (pronto veremos los que es). Recuerde que una colección es un conjunto de 
objetos, hojas, rangos, etc. Vea el ejemplo siguiente que se utiliza para cambiar los nombres de las 
hojas de un libro de trabajo. 
 
Ejemplo 29. 
 
Programa que pregunta el nombre para cada hoja de un libro de trabajo, si no se pone nombre a la 
hoja, queda el que tiene. 
 
 
Sub Ejemplo_29() 
 
Dim Nuevo_Nombre As String 
Dim Hoja As WorkSheet 
 
‘ Para cada hoja del conjunto WorkSheets 
 
For Each Hoja In WorkSheets 
 
Nuevo_Nombre=InputBox("Nombre de la Hoja : " & Hoja.Name,"Nombrar Hojas") 
 
If Nueva_Nombre <> "" Then 
 
Hoja.Name=Nuevo_nombre 
 
End if 
 
Next 
 
End Sub 
 
** Hoja va referenciando cada una de las hojas del conjunto WorkSheets a cada paso de bucle. 
 
Ejemplo 30. 
 
Entrar valores para las celdas del rango A1:B10 de la hoja Activa. 
 
Sub Ejemplo_30() 
 
Dim R As Range 
 
‘ Para cada celda del rango A1:B10 de la hoja activa 
 
For Each R in ActiveSheet.Range("A1:B10") 
 
R.Value = InputBox("Entrar valor para la celda " & R.Address, "Entrada de valores") 
Next 
 
End Sub 
 
 
 
** Observe que se ha declarado una variable tipo Range, este tipo de datos, como puede imaginar 
y ha visto en el ejemplo sirve para guardar Rangos de una o más casillas, estas variables pueden 
luego utilizar todas las propiedades y métodos propios de los Objetos Range. Tenga en cuenta que 
la asignación de las varaibles que sirven para guardar o referenciar objetos (Range, WorkSheet, 
etc.) deben inicializarse muchas veces a través de la instrucción SET , esto se estudiará en otro 
capítulo. 
 
 
 
 
 
 
 
 
 
 
 
 
 
∙  Insertar funciones de Microsoft Excel desde Visual Basic. 
 
Copie el siguiente procedimiento y ejecútelo. Es un procedimiento que sencillamente va pidiendo 
números y los va colocando en las celdas de la columna A partir de A1, al final coloca la función 
=SUMA para sumar los valores introducidos y la función =PROMEDIO para hacer el promedio de 
los mismos valores. 
 
Sub Sumar() 
 
Dim Valor As Integer 
Dim Casilla_Inicial As String 
Dim Casilla_Final As String 
 
' Hacer activa la casilla A1 de la hoja activa 
ActiveSheet.Range("A1").Activate 
 
Do 
' Entrar un valor y convertirlo a numérico 
Valor = Val(InputBox("Entrar un valor", "Entrada")) 
' Si el valor es distinto de 0 
 
If Valor <> 0 Then 
' Guardar el valor en la casilla activa 
ActiveCell.Value = Valor 
' Hacer activa la casilla de la fila siguiente 
ActiveCell.Offset(1, 0).Activate 
 
End If 
 
Loop Until Valor = 0 
 
' Establecer la casilla inicial del rango a sumar 
Casilla_Inicial = "A1" 
' Establecer la casilla final del rango a sumar. 
' Coger la dirección de la casilla activa, la última 
Casilla_Final = ActiveCell.Address 
ActiveCell.Offset(1, 0).Activate 
' Poner en la casilla activa la función SUMA 
ActiveCell.Formula = "=Suma(" & Casilla_Inicial & ":" & Casilla_Final & ")" 
ActiveCell.Offset(1, 0).Activate 
' Poner en la casilla activa la función promedio 
ActiveCell.Formula = "=Promedio(" & Casilla_Inicial & ":" & Casilla_Final & ")" 
 
End Sub 
 
 
 
 
Una vez haya ejecutado la macro, observe que en las celdas donde se han colocado 
respectivamente las funciones =SUMA, =PROMEDIO aparece ¿NOMBRE? (es posible que aparezca 
####, en ese caso amplíe la columna), esto significa que Excel no reconoce el nombre de la 
función, que no existe. Sin embargo, estas funciones si existen y funcionan perfectamente cuando 
se teclean directamente sobre la hoja de cálculo, se preguntará el porqué cuando se colocan 
desde una macro no funcionan. Pues resulta que para que cualquier función de Excel insertada 
desde una macro NO de error debe ponerse con su nombre en inglés, la traducción se hace luego 
de forma automática. Es decir en la macro debe ponerla en inglés y luego cuando esta se inserte 
en la hoja aparecerá con su nomenclatura en el idioma que corresponda. 
 
Modifique el procedimiento del ejemplo y en lugar de poner 
 
ActiveCell.Formula = "=Suma(" & Casilla_Inicial & ":" & Casilla_Final & ")" 
 
Ponga 
 
ActiveCell.Formula = "=Sum(" & Casilla_Inicial & ":" & Casilla_Final & ")" 
 
Y ahora, en lugar de 
 
ActiveCell.Formula = "=Promedio(" & Casilla_Inicial & ":" & Casilla_Final & ")" 
 
Ponga 
 
ActiveCell.Formula = "=Average(" & Casilla_Inicial & ":" & Casilla_Final & ")" 
 
Ejecute la macro y compruebe que ahora todo funciona correctamente. Observe que en la hoja, 
las funciones se han insertado con su nombre correcto según el idioma, es decir SUMA y  
PROMEDIO. 
 
De esta forma damos por terminado el módulo de Macros, que simplemente es una introducción 
al tema. 
 
El estudiante puede desarrollarse mucho más, este manual pretende realizar un bosquejo del 
tema, e iniciar al alumno a la programación en lenguaje VBA. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repartidos 
 
Prácticos 
 
    
 
 
 
 
 
 
 
 
 
 
 
 
EJERCICIO 1 – MODULO: FUNCIONES AVANZADAS

Se presenta a continuación una tabla conteniendo las exportaciones de carne llevadas


a cabo por nuestro país en el año 2000 al resto del mundo.

Exportaciones realizadas en el
año 2000 en millones de
dólares

País de Importe de
Mes
origen exportación

Japón Febrero 26
Inglaterra Noviembre 67
China Setiembre 90
Inglaterra Enero 120
China Junio 140
Holanda Febrero 150
EEUU Diciembre 159
Bélgica Enero 200
EEUU Setiembre 200
Grecia Mayo 200
Francia Mayo 201
Inglaterra Julio 240
Holanda Julio 260
Grecia Diciembre 300
China Marzo 320
Bélgica Junio 690
EEUU Mayo 840
Japón Febrero 980
EEUU Julio 1200

Se pide:

1. Copie la siguiente tabla en un libro cuyo nombre sea exportaciones


2. Ingrese nuevos registros a través de la opción Formularios que se ubican en el
menú de Datos.
3. Ordene la tabla en función del país.
4. Obtenga la máxima y la mínima exportación realizada por Uruguay. A
continuación, mediante BDEXTRAER, obtenga los nombres de los países
destinos de dichas ventas.
5. Calcule el número de exportaciones hechas a EEUU, mediante BDCONTARA y
CONTAR.SI
6. Calcule el importe total que se le vendió a ese país mediante las funciones
BDSUMA y SUMAR.SI.
7. La máxima, la mínima y el promedio de las ventas hechas a EEUU.
8. Genere a través de una regla de validación una lista desplegable con todos los
países existentes en la BD. Luego Obtenga el total vendido al país que UD
seleccione en la lista. El fin de esto es que si nosotros cambiamos el país,
obtengamos automáticamente el importe que a él se le vendió.
EJERCICIO 2 – MODULO: FUNCIONES AVANZADAS

Se presenta a continuación una tabla con las notas obtenidas por 10 alumnos del curso
de Excel avanzado.

Se pide:
1. Aplique un color de fondo rojo y una fuente de tipo negrita y color blanca, a
aquellas celdas que presenten valores inferiores a 70 (formato condicional).
2. Obtenga el total y el promedio de puntos obtenidos por alumno.
3. En la columna de resultados deberá aparecer las leyendas Aprobado, Prueba
parcial o Examen total según los criterios de aprobación del curso.
4. Aplique nuevamente un formato condicional, tal que si el resultado es
Aprobado, este aparezca con un color de fuente verde, si es Prueba parcial, sea
azul y si es Examen total sea rojo.
5. Genere un cuadro de consulta como el siguiente tal que el al digitar la cédula de
un estudiante aparezca su promedio y su resultado.

T.
Cedula Macros Dinámicas F. Avanzadas Access Total Promedio Resultado
1.269.487-6 75 78 85 97
1.396.285-4 46 91 70 77
2.123.494-4 73 57 97 81
2.456.987-7 50 45 87 65
3.798.637-1 69 87 67 91
4.734.963-4 79 96 83 95
4.869.741-8 98 99 79 84
5.681.627-3 37 45 85 90
6.897.169-6 82 72 89 94
6.943.521-1 90 87 99 100

Ingresar
CI Promedio Resultado
EJERCICIO 3 – MODULO: FUNCIONES AVANZADAS

En la planilla que se presenta a continuación tenemos las distintas etapas de una


competencia entre 8 equipos. A medida que se va desarrollando la vamos completando
con los puntajes obtenidos por cada equipo.
Lo que se busca es que en la tabla adicional se ordenen automáticamente los equipos
cada vez que introducimos cambios en la tabla principal.
Para eso copie ambas tablas en una hoja nueva y digite como nombre Tabla de
posiciones.
Para lograr el objetivo Ud. deberá aplicar las funciones Jerarquía y BuscarV.

COMPETENCIA INTERBARRIAL - PUNTOS POR EQUIPO Y POR ETAPA

Etapa 1 Etapa 2 Etapa 3 Etapa 4 Etapa 5 Etapa 6 Total


Equipo 1 7 10 3 1 21
Equipo 2 2 1 9 1 13
Equipo 3 4 5 1 2 12
Equipo 4 4 8 6 4 22
Equipo 5 9 9 3 7 28
Equipo 6 2 5 10 7 24
Equipo 7 3 4 3 4 14
Equipo 8 3 7 8 9 27

Etapa 1 Etapa 2 Etapa 3 Etapa 4 Etapa 5 Etapa 6 Total


1
2
3
4
5
6
7
8
EJERCICIO 4 – MODULO: FUNCIONES AVANZADAS

Extracto de ventas de la empresa "La traicionera SA"


Número de
contrato
compra Importe en
Fecha venta Vendedor Auto dólares Cliente Forma de pago
04/04/2005 1053 Homero Simpson Honda Civic 16000 N Elizabelar 30 cuotas
08/04/2005 1059 Condorito Fiat Fiorino 9000 IMM 30 cuotas
16/04/2005 1065 Homero Simpson Mercedes D420 110000 Stella Donatti 30 cuotas
29/04/2005 1078 Homero Simpson Ferrari 350 290000 J Bush 30 cuotas
04/04/2005 1054 Condorito Subaru Impreza 14500 Presidencia de la Rep. 60 cuotas
06/04/2005 1057 Paturzú Fiat Fiorino 9000 IMM 60 cuotas

11/04/2005 1061 Paturzú Lamborgini Diablo 230000 T Vazquez 60 cuotas


15/04/2005 1063 Paco Casal BMW 320 58000 MSP 60 cuotas
23/04/2005 1073 Homero Simpson Fiat Fitito 1200 MSP 60 cuotas
28/04/2005 1076 Paturzú BMW 320 58000 A. Legarburo 60 cuotas
05/04/2005 1055 Chengue Morales Lamborgini Diablo 230000 J Battle 90 cuotas
01/04/2005 1051 Condorito Subaru Impreza 14500 El cuqui Contado
05/04/2005 1056 Chengue Morales BMW 320 58000 Sin Escurpulos Ltda. Contado
06/04/2005 1058 Condorito Maruti 7500 JM Sanguinetti Contado
12/04/2005 1062 Condorito Fiat Fiorino 9000 IMM Contado
15/04/2005 1064 Chengue Morales Maruti 7500 La trepadora SA Contado
18/04/2005 1067 Paturzú Mercedes D420 110000 J Bush Contado
19/04/2005 1069 Chengue Morales Fiat Fitito 1200 La incobrable srl Contado
19/04/2005 1070 Paco Casal Lamborgini Diablo 230000 La trepadora SA Contado
22/04/2005 1072 Chengue Morales Mercedes D420 110000 M. Gutiérrez Contado
29/04/2005 1077 Condorito Subaru Impreza 14500 Cedres Contado
30/04/2005 1080 Condorito Honda Civic 16000 IMM Contado
02/04/2005 1052 Paturzú Ferrari 350 290000 La trepadora SA En negociación
08/04/2005 1060 Homero Simpson Fiat Fitito 1200 Presidencia de la Rep. En negociación
18/04/2005 1066 Condorito Subaru Impreza 14500 Recoba En negociación
19/04/2005 1068 Paco Casal BMW 320 58000 Sin Escurpulos Ltda. En negociación
23/04/2005 1074 Chengue Morales Ferrari 350 290000 Loco Abreu En negociación
22/04/2005 1071 Paco Casal Subaru Impreza 14500 IMM Entrega efect+15 cuotas
23/04/2005 1075 Paco Casal Lamborgini Diablo 230000 Presidencia de la Rep. Entrega efect+20 cuotas
30/04/2005 1079 Paturzú Fiat Fitito 1200 La incobrable srl Entrega efect+20 cuotas

Se pide:

1. Copie la siguiente tabla en dos hojas distintas


2. En la primera hoja registre nuevas ventas mediante la opción Formularios del
menú de Datos.
3. Ordene la tabla según Fecha de Venta en forma ascendente, el nombre del
vendedor de forma ascendente.
4. Ordene nuevamente la BD pero ahora solamente por vendedor en forma
descendente. A través de la herramienta de subtotales obtenga:
Æ El total de ventas por vendedor
Æ La venta más alta y la más baja de cada vendedor
Æ El promedio de ventas de cada vendedor
Æ El número de ventas de cada vendedor
Saque detalle de manera de visualizar solamente los totales de venta de cada
vendedor.

5. En la segunda hoja, mediante Autofiltros visualice:


Æ las ventas realizadas por Condorito.
Æ las ventas de Condorito hechas a la IMM
Æ las ventas realizadas en la segunda quincena del mes de abril.
Æ las ventas cuyos importes estén entre los 50000 y los 150000 dólares.
Æ Las ventas cuyos importes sean menores a 10000 y mayores a 200000 dólares.
Æ las ventas hechas a la IMM o a la Presidencia de la República.
Æ las cinco ventas más grandes
Æ las cinco ventas más chicas
Æ las ventas de los vendedores cuyos nombres comiencen con la letra C.
Æ las ventas cuya forma de pago aún esté en negociación

EJERCICIO 5 – MODULO: FUNCIONES AVANZADAS


SOLVER

Esta planilla ofrece los datos de producción de dos artículos, incluyendo los detalles de
las materias primas que los componen. Con estos datos, y basándonos en la tabla
auxiliar, podemos calcular el costo de cada artículo. Suponiendo que se puede vender
el total de la producción, necesitamos calcular cuánto será lo máximo que se puede
vender sin utilizar más materia prima de la que se tiene. Todo esto teniendo en cuenta
que el precio final de cada artículo no puede superar los 16.5 pesos y que el margen
de ganancia tiene que ser de, por lo menos, el 30 por ciento.

Autito a Trencito
control eléctrico Totales
Tuercas por unidad 4 3
Tornillos por unidad 3 5
Arandelas por unidad 7 4
Plástico por unidad 0,20 kg 0,30 kg
Motor por unidad 1 1
Cable por unidad 0,50 m 0,70 m
Costo por unidad 11,65 12,18
Margen de ganancia 50% 50%
Precio unitario final $ 17,48 $ 18,27

Unidades a producir 500 500

Importe de ventas $ 8.737,50 $ 9.135,00 $ 17.872,50


Materias primas utilizadas en la producción
Total de tuercas 2000 1500 3500
Total de tornillos 1500 2500 4000
Total de arandelas 3500 2000 5500
Costo ( por ud, Kg. o
Existencia m)
Tuercas 1000 $ 0,50
Tornillos 1500 $ 0,75
Arandelas 3000 $ 0,25
Plástico 1000,00 Kg. $ 1,00
Cable 750,00 m $ 0,90
Motor 600 $ 5,00

EJERCICIO 6 – MODULO: FUNCIONES AVANZADAS


BUSCAR OBJETIVO

1. Aplicando Buscar objetivo calcule la cantidad a vender para obtener un importe


de ventas de 1200 pesos.

A B
1 Precio 20
2 Cantidad ?
3 Importe de ventas =B2*B3

2. Deseamos conocer la mayor cantidad que podemos obtener en préstamos si


estamos dispuestos a endeudarnos por 36 meses pagando una cuota máxima
de 500 pesos. La tasa de interés del mercado es del 50% anual
3.
A B
1 Préstamo ?
2 Tasa anual 50%
3 Nº de cuotas 36
4 Valor de la cuota mensual =PAGO(B2/12;B3;B1)

4. En función de los costos y utilidad del producto determine la cantidad a producir


para que el precio unitario sea igual a 15 pesos.

A B
1 Cantidad a producir ?
2 Costos variables 8.5
3 Costos fijos 1200
4 Costo total unitario =B3+B4/B2
5 Utilidad unitaria (10%) =B5*0.1
6 Precio unitario =B5+B6
EJERCICIOS 
 
ANÁLISIS 
 
DE 
 
INFORMACIÓN 
 
EJERCICIOS MÓDULO: Análisis de Información

Ejercicio 1

Dada la siguiente tabla de datos:

Año Período Ventas


2004 1 15458
2004 2 5487
2004 3 6587
2004 4 1587
2003 1 15874
2003 2 4358
2003 3 5743
2003 4 2543
2002 1 18045
2002 2 7845
2002 3 6784
2002 4 1254
2001 1 10548
2001 2 4587
2001 3 6879
2001 4 3597

Se pide:

Mediante Tablas Dinámicas:

1. Obtener total de ventas por año.


2. Obtener total de ventas por año y dentro de cada año, por período.
3. Obtener promedio de ventas por año y por período.
EJERCICICIO 2

Dada la siguiente base de datos:

Año Período Tipo de cliente Ventas


2004 1 Minorista 12924
2004 1 Mayorista 2534
2004 2 Minorista 4462
2004 2 Mayorista 1025
2004 3 Minorista 5383
2004 3 Mayorista 1204
2004 4 Minorista 745
2003 4 Mayorista 842
2003 1 Minorista 13520
2003 1 Mayorista 2354
2003 2 Minorista 3311
2003 2 Mayorista 1047
2003 3 Minorista 4708
2003 3 Mayorista 1035
2003 4 Minorista 1701
2002 4 Mayorista 842
2002 1 Minorista 13544
2002 1 Mayorista 4501
2002 2 Minorista 6589
2002 2 Mayorista 1256
2002 3 Minorista 5944
2002 3 Mayorista 840
2002 4 Minorista 929
2001 4 Mayorista 325
2001 1 Minorista 7000
2001 1 Mayorista 3548
2001 2 Minorista 3533
2001 2 Mayorista 1054
2001 3 Minorista 5426
2001 3 Mayorista 1453

Se pide:

Mediante Tablas Dinámicas:

1. Obtener total de ventas por período, y por año. Dar la posibilidad de filtrar por
cliente dicha información.
2. Obtener gráfico dinámico de dicha información.
3. Visualizar mediante tabla dinámica, porcentaje sobre el total de ventas de cada
período y de cada año.
EJERCICIO 3

DADA LA SIGUIENTE BASE DE DATOS:

ALUMNO SUCURSAL DOCENTE CLARIDAD BUENA BUEN USO CONCEPTO


AL DISPOSICIÓN DEL GENERAL
EXPLICAR PIZARRÓN DEL
DOCENTE
3.015.665-5 BUCEO Luis 2 4 2 2
1.967.222-3 PARQUE Pedro 5 5 4 5
2.123.334-1 BUCEO Pedro 4 4 5 4
1.944.314-6 RIVERA Gabriel 1 2 3 2
3.054.365-4 BUCEO Luis 4 3 3 3
1.665.145-0 RIVERA Gabriel 3 3 4 4
1.945.328-6 PARQUE Gabriel 5 4 4 4
3.412.331-0 RIVERA Luis 2 1 2 2
4.036.365-6 RIVERA Luis 3 2 2 2
4.365.441-8 BUCEO Luis 1 1 2 1
2.966.356-4 BUCEO Pedro 5 4 4 4
1.665.324-3 PARQUE Gabriel 4 5 4 4
1.689.365-0 PARQUE Gabriel 3 4 4 3
3.554.321-4 BUCEO Luis 2 1 1 1

OBTENER:

1. NOTAS GENERALES de cada DOCENTE y dividido por cada SUCURSAL.


2. Cantidad de encuestas tomadas de cada docente.
3. Máximo Concepto General alcanzado por un docente, detallando cual es el
docente y en qué sucursal obtuvo dicha nota.
4. Cantidad de encuestas que se realizaron en cada sucursal.
5. Graficar notas de cada pregunta obtenida por cada docente, y con la posibilidad
de desplegar este gráfico por sucursal.

EJERCICIO 4

IMPORTAR DESDE LA BASE DE DATOS NEPTUNO (C:\Archivos de Programa\Microsoft


Office\Office10\Samples) las tablas de Pedidos y de Clientes.

OBTENER:

1. CANTIDAD de pedidos que se tomaron por país.


2. Cantidad de pedidos tomados por empleado y por ciudad del destinatario.
3. Generar un campo calculado para saber cuántos pedidos se realizarían por país
si la empresa pensara incrementar su cantidad de pedidos en un 30 %.
4. Visualizar las unidades en existencia de cada producto que nos trae cada
proveedor.
5. Promedio de precios unitarios de los productos de cada proveedor.
6. Graficar la cantidad de pedidos que se le hayan entregado al cliente ALFKI y
ANTON en las diferentes formas de envio.
EJERCICIO 5

Importar desde MS Access, desde la base de datos NEPTUNO (se encuentra en


C:\Archivos de Programas \ Microsoft Office\Office10\Samples) las tablas de
productos y categorías.

Obtener mediante Tablas Dinámicas:

1. Cantidad de productos por categoría


2. Promedio de precios unitarios por categoría
3. Productos por categoría, y unidades en existencia
4. Calcular mediante un campo calculado el IVA de todos los precios unitarios, el
importe de cada precio con IVA incluido
5. Graficar cantidad de proveedores que existen por categoría de productos
6. Graficar en forma de torta los precios unitarios de los productos que
pertenezcan a la categoría Bebidas.

EJERCICIO 6 (Datos – Tabla)

Se presenta planilla con datos de un artículo que nuestra empresa comercializa y se


nos solicita estudiemos la sensibilidad del precio de venta frente a dos variables: el
margen de ganancia y la cantidad de artículos a producir.
Esto significa que analizaremos cuál sería el valor final para distintas combinaciones de
márgenes y cantidades.
Para hacerlo crearemos una tabla de datos que resuma esta información.

Cantidad a producir 500


Costo por unidad $ 8,50
Costos fijos $ 1.200,00
Costo total $ 5.450,00
Margen de ganancia 30%
Ventas a realizar $ 7.085,00
Valor unitario $ 14,17

$
14,17 300 400 500 600
15%
20%
25%
30%
35%
40%
EJERCICIO 7 (Filtros)

Copie esta tabla en cuatro hojas distintas

Ventas Ventas
Distribuidor Zona 2003 2004
G Fuentes Zona Este 1 100000 142000
G Fuentes Zona Este 2 230000 225000
G Fuentes Zona Este 3 59000 72000
G Fuentes Zona Este 4 186000 190000
C Rodríguez Zona Norte 1 310000 302000
C Rodríguez Zona Norte 2 98000 101000
C Rodríguez Zona Norte 3 77000 75000
C Rodríguez Zona Norte 4 160000 190000
F Pérez Zona Oeste 1 320000 350000
F Pérez Zona Oeste 2 190000 200000
F Pérez Zona Oeste 3 132000 106000
F Pérez Zona Oeste 4 148000 140000
M Carminati Zona Oeste 1 95000 52000
M Carminati Zona Oeste 2 74000 96000
M Carminati Zona Oeste 3 86000 105500
M Carminati Zona Oeste 4 110000 132000

Se pide:

Nota los se pide 1 a 3 realícelos sobre la misma base de datos.


1. Ventas del 2004 mayores a 150000 pesos.
2. Ventas menores a 60000 o mayores a 200000 pesos.
3. Ventas entre los 150000 y los 200000 pesos de aquellos distribuidores cuyo
nombre comience con la letra C.
4. Genere una nueva tabla que muestre aquellos registros en los que las ventas
del 2003 fueron mayores a las ventas del 2004.

 
 
 
 
 
 
 
 
 
EJERCICIOS 
 
GRÁFICOS 
 
PERSONALIZADOS 
 

 
FORMULARIOS 
Ejercicios Módulo de Gráficos Personalizados y Formularios.

Ejercicio 1

Dada la siguiente tabla:

Ventas Anuales
Paises
Años 2004 2005 2006
Australia 1680000 1230000 2000000
Argentina 1200000 2250000 2100000
Brasil 1800000 3500000 3200000
EEUU 2000000 3500000 3400000
Nueva
Zelanda 1900000 2500000 3000000
Uruguay 600000 1800000 1750000
Mexico 1200000 1200000 1600000
Paraguay 750000 900000 1240000

1. Generar un gráfico de columnas con las ventas de cada país según los años en
los que se hayan producido. Generar un color de fondo del gráfico basado en
una textura. Generar un efecto de relleno con degradado en el área de trazado.
Desplegar la leyenda en la parte superior del gráfico. Aplicarle efectos de
degradado a cada una de las series.

2. Generar un gráfico de columnas con las ventas de cada año para los diferentes
países. Aplicar en cada serie el efecto de colocar la imagen de la bandera
correspondiente a cada país como fondo de cada columna correspondiente a
dicho país. Aplicar en el fondo del gráfico un efecto con degradado a dos
colores.

3. Generar un gráfico de torta donde se represente las ventas del año 2004 a cada
país. Mostrar dentro del gráfico el país al que corresponde cada área y el
porcentaje correspondiente del total. Aplicarle un efecto 3D con un efecto de
elevación.
Ejercicio 2

Dada la siguiente tabla:

Edad
Grupo de edades
Poblacion 0a3 4a5 6 a 14 15 a 19 20 a 24 25 a 29 30 a 49 50 a 64 65 a 79 80 o más
MALVÍN 990 530 2.756 1.969 1.916 1.973 7.877 5.093 4.112 1.418
Hombres 487 268 1.387 1.029 947 920 3.672 2.177 1.631 438
Mujeres 503 262 1.369 940 969 1.053 4.205 2.916 2.481 980

• Generar un gráfico de tipo pirámide poblacional. Aplicarle a dicho gráfico todos


los retoques correspondientes para su correcta visualización.

• Grabar este grafico como tipo personalizado para poder utilizarlo a futuro.

• Aplicarle efecto de degradado a las series, y un efecto de textura tanto al área


de trazado como al área de gráfico.

Ejercicio 3

Fecha Fecha Días


Tareas Inicio Fin Corridos
Compra de Terrenos 10/02/2006 20/02/2006 10
Desmonte 21/02/2006 10/03/2006 17
Confección de Plano 08/03/2006 31/03/2006 23
Compra de
Materiales 01/04/2006 18/04/2006 17
Construcción 20/04/2006 24/08/2006 126
Pintura 25/08/2006 31/08/2006 6
Revisión 01/09/2006 15/09/2006 14
Entrega 18/09/2006 19/09/2006 1

Generar un gráfico representando un diagrama de Gantt.


Aplicarle efecto de relleno con degradado a un color al área de gráfico y área de
trazado.

Generar un diagrama de Gantt aplicando formato condicional con la misma tabla.


Ejercicio 4

Dada la siguiente tabla:

Hora Produccion
00:43 785
02:37 662
05:21 546
05:35 356
07:20 447
07:47 611
10:22 310
10:33 564
11:18 583

Generar un gráfico de dispersión (XY) con lineas suavizadas para representar la


producción en el transcurso de las horas.

Adaptar el eje de valores (x) para que represente una escala de horas que vaya de las
00:00 hs a las 12:00 pasando en valores de a 1 hora.

Ejercicio 5

Años Exp Exp Exp Exp Exp Exp


Pais 2000 2001 2002 2003 2004 2005
Argentina 2293660 2657911 1913896 1231816 5000000 1319296
Brasil 3863727 2616891 2210725 4650539 4000000 3951452
Uruguay 1125873 1074146 1021074 1449403 1057386 1049902
Paraguay 1028543 1134743 1166809 1143472 1195914 1093311
Peru 877385 947571 1019173 1015051 1071022 754180
Bolivia 1379161 1405565 1530906 1670229 1535585 1144279
Venezuela 2275591 3113542 3706347 4245991 1819779 1971444
Ecuador 1907308 1443472 1815317 961641 1905881 1949043
Colombia 2511773 2085069 2073359 2006935 2266457 2273786
Minimo 877385 947571 1019173 961641 1057386 754180
Maximo 3863727 3113542 3706347 4650539 5000000 3951452

Dada la tabla expuesta:

• Utilizar lista desplegable, cuadro combinado, barra desplazamiento para lograr


graficar en lineas las exportaciones de cada pais por año. La idea es que
mediante un cuadro combinado yo pueda elegir un pais y visualice el grafico de
las exportacion de ese pais (a través de los años). Lo mismo con una lista
desplegable y también con barra desplazamiento.
Ejercicio 6

Dic-05 PROC1 PROC2 PROC3 PROC4 PROC5 PROC6


Dias min M max Valores Valores Valores Valores Valores Valores
1 55 60 65 56 55 57 55 58 50
3 55 60 65 62 60 65 60 60 60
5 55 60 65 65 63 63 63 63 63
7 55 60 65 55 50 50 50 50 50
9 55 60 65 56 56 56 56 56 56
11 55 60 65 64 64 64 64 64 64
13 55 60 65 62 62 62 62 62 62
15 55 60 65 60 67 67 67 67 67
17 55 60 65 56 52 52 52 52 52
19 55 60 65 59 60 60 60 60 60
21 55 60 65 58 62 62 62 62 62
23 55 60 65 56 53 53 53 53 53
25 55 60 65 60 50 50 50 50 50
27 55 60 65 58 55 55 55 55 55
29 55 60 65 55 60 60 60 60 60
31 55 60 65 57 64 65 60 55 53

Dada la siguiente tabla, generar un gráfico de líneas que represente cada uno de los
procesos. Dichos procesos se seleccionaran con un cuadro de lista, y control de
números.

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
EJERCICIOS 
 
MACROS 
 
EN 
 
EXCEL 
Módulo: MACROS EN EXCEL

Ejercicio 1

Generar un macro que pregunte al usuario datos de empleados tales como:

™ Nombre y Apellido
™ Dirección
™ Ciudad (donde reside)
o Si la ciudad es Montevideo mostrar en la siguiente columna: “CAPITAL”
o Si la ciudad es diferente a Montevideo mostrar: “INTERIOR”
™ Sueldo nominal
™ Fecha de ingreso en la empresa

o Si el empleado tiene más de 5 años de antigüedad se le pagará un


incentivo de antigüedad de un 2 % de su sueldo nominal.
o Si el empleado tiene más de 7 años de antigüedad se le pagará un
incentivo de antigüedad de un 4 % de su sueldo nominal.
o Si el empleado tiene más de 9 años de antigüedad se le pagará un
incentivo de antigüedad de un 6 % de su sueldo nominal.
o Si el empleado tiene más de 10 años de antigüedad se le pagará un
incentivo de antigüedad de un 8 % de su sueldo nominal.
o Si el empleado tiene menos de 5 años de antigüedad no se le pagará
dicho incentivo.

(Se compara siempre con la fecha actual = función DATE)

Mostrar en una columna el incentivo por antigüedad que le corresponde al empleado.

Calcular los aportes del empleado sabiendo que, sumando Sueldo Nominal y el
incentivo de antigüedad se utilizarán las siguientes escalas:

Aportes:
™ 18 % si gana menos de 3 SMN
™ 20 % si gana menos de 6 SMN
™ 24 % si gana menos de 10 SMN
™ 26 % si gana menos de 12 SMN

Tomar en cuenta que el SMN es de $ 1242.

Mostrar el aporte de cada empleado en una columna.

Mostrar el líquido de cada empleado sumando Sueldo Nominal + Antigüedad – Aportes.

Repaso de inputbox, msgbox, bucles, uso de variables.


Ejercicio 2

Pedir al usuario nombre, precio unitario y descripción de artículos. Volcar estos datos
en la planilla.
A medida que el usuario cargue cada registro ir acumulando el total de precios, con la
finalidad de calcular el promedio de precios.
Dejar que el usuario corte el pedido de artículos cuando lo desee.
En la última instancia, con el promedio de precios calculado, marcar el promedio de
rojo si este es mayor a 500, marcarlo de verde si es mayor a 1000, y marcarlo de azul
si es mayor a 2000.

Repaso de inputbox, bucles, msgbox. Aplicar offset (o mostrar la aplicación del mismo
en el ejercicio práctico).

Ejercicio 3

Generar un macro que le pida al usuario datos de una persona:


Nombre, Apellido, y Número de Credencial (sólo número)

Basándose en la planilla que se plantea a continuación se deberá ir cargando


automáticamente con los datos de cada persona y la dirección donde le tocará
sufragar.

Nº Circuito Desde Hasta Dirección


113 1000 5000 Italia 6255
502 5001 8000 Rodó 2411
682 8001 12000 Chaná 1654
691 12001 18000 Canelones 1698

La planilla que se irá cargando tendrá el siguiente formato:

Nombre Apellido Credencial Dirección

El estudiante deberá ejecutar mediante un botón en la planilla y el usuario deberá


tener la flexibilidad de cargar tantos registros como desee, o sea por cada registro que
vaya cargando se le preguntará si se desea continuar.

Señalar de rojo solo los registros que el usuario haya ingresado y que tengan como
lugar de votación la siguiente dirección: CANELONES 1698

Cuando el usuario decida terminar, se deberá mostrar la vista preliminar de la planilla.


Ejercicio 4

Generar una macro que guarde en una base de datos la siguiente información:
ƒ Nombre de Articulo
ƒ Lote del Articulo
ƒ Rubro:
9 Deberá figurar “Informática” solamente si se trata de un insumo de
computación
9 Deberá figurar “Otros” si no se trata de un insumo de computación
ƒ Precio unitario de Costo
ƒ Fecha de Compra de dicho articulo
En función de esta información deberá calcularse el Precio de Venta Mayorista y
Minorista.
El Precio Mayorista se calcula como un 7% adicional sobre el Precio de costo, salvo
para los artículos comprados hace mas de 3 años que se calcula un adicional de 5%
sobre Precio de costo.
El Precio Minorista de cada artículo se calcula como:
9 15% sobre Precio de costo para artículos de “Informática” con antigüedad
menor a 1 año
9 12% sobre Precio de costo para artículos de “Informática” con antigüedad
mayor o igual a 1 año
9 17% para el resto de los artículos
Tanto el Precio mayorista como minorista deberán incluirse en 2 nuevas columnas
destinado a ello.

La funcionalidad de dicha macro deberá incluir:


¾ En la primer fila de la Base de datos, los títulos de cada variable.
¾ La posibilidad de utilizar dicha macro en repetidas ocasiones y que no se
eliminen antiguos registros
¾ La posibilidad de elegir a continuación de cada registro estas 3 opciones:
ƒ Ingresar un nuevo registró a continuación.
ƒ Eliminar el último registro en caso de equivocación.
ƒ Dejar de ingresar nuevos registros.

Ejercicio 5

Utilizar el asistente de Microsoft Office en la aplicación del ejercicio 4.

 
 
 
 
 
 
 
 
 

COMPENDIO 
 
PRUEBAS 
 
FUNCIONES 
 
AVANZADAS 
COMPENDIO DE PRUEBAS Y EXAMENES DE PRÁCTICA 
 
Funciones Avanzadas 
Prueba Final 
Ejercicio 1 
 
Fecha Vendedor Tipo de Producto Sucursal Tipo Operación Forma de Pago Importe
01/01/2006 German Alimentos Central Venta Contado $U 1.556
03/01/2006 Luis Informatica Central Devolucion Contado $U 2.294
05/01/2006 Marcelo Electrodomesticos Filial2 Venta Diferido 3 pagos $U 1.966
09/01/2006 Esteban Alimentos Filial2 Venta Diferido 3 pagos $U 2.843
11/01/2006 Andrea Informatica Filial 1 Venta Contado $U 5.461
11/01/2006 Luisa Electrodomesticos Filial2 Venta Contado $U 5.685
11/01/2006 Daniela Alimentos Filial2 Devolucion Contado $U 2.971
11/01/2006 German Informatica Central Venta Contado $U 4.101
12/01/2006 Luis Electrodomesticos Central Devolucion Contado $U 4.847
12/01/2006 Marcelo Alimentos Filial2 Venta Diferido 3 pagos $U 5.030
13/01/2006 Luisa Informatica Filial2 Venta Diferido 6 pagos $U 3.296
16/01/2006 Daniela Alimentos Filial2 Devolucion Contado $U 1.656
19/01/2006 German Informatica Central Venta Diferido 3 pagos $U 4.800
20/01/2006 Luis Electrodomesticos Central Devolucion Contado $U 2.913
23/01/2006 Marcelo Alimentos Filial2 Venta Contado $U 5.526
25/01/2006 Luis Informatica Central Venta Diferido 6 pagos $U 3.969
27/01/2006 Marcelo Alimentos Filial2 Venta Contado $U 4.760
27/01/2006 Esteban Informatica Filial2 Venta Contado $U 1.492
27/01/2006 Andrea Alimentos Filial 1 Devolucion Contado $U 5.282
31/01/2006 Luisa Informatica Filial2 Venta Diferido 3 pagos $U 2.189
31/01/2006 Daniela Alimentos Filial2 Venta Diferido 6 pagos $U 4.042
03/02/2006 Daniela Informatica Filial2 Venta Contado $U 5.176
03/02/2006 German Electrodomesticos Central Venta Contado $U 1.528
07/02/2006 Luis Alimentos Central Devolucion Diferido 3 pagos $U 1.846
07/02/2006 Esteban Informatica Filial2 Venta Diferido 6 pagos $U 2.707
07/02/2006 Andrea Electrodomesticos Filial 1 Venta Contado $U 4.754
10/02/2006 Luisa Alimentos Filial2 Venta Diferido 3 pagos $U 4.936
15/02/2006 Daniela Informatica Filial2 Devolucion Contado $U 1.911
20/02/2006 German Electrodomesticos Central Devolucion Contado $U 1.666

 
 
A partir de la siguiente base de datos, referida a ventas de nuestra Empresa, se pide: 
1.  
1.1) Realizar la suma de las ventas efectuadas al contado, en la sucursal Central. 
1.2) Calcule el Promedio de las ventas realizadas por el vendedor Marcelo. 
1.3) Calcule la Máxima devolución efectuada dentro del tipo de producto Alimentos. 
1.4) Realizar la suma de todas las ventas que no se efectuaron al contado. 
 
2. Aplique un formato condicional a la base de datos con la siguientes características: 
2.1) Los registros que corresponden a la sucursal central, color de fondo naranja. 
2.2) Los registros que corresponden a la sucursal Filial 1, color de fondo celeste. 
2.3) Los registros que corresponden a la sucursal Filial 2, color de fondo amarillo. 
 
Ejercicio 2 
 
A partir de las siguientes bases de datos referidas a “Clientes” y “Ventas”, se solicita lo siguiente: 
Genere un cuadro de consulta con las siguientes características: 
 
Cedula:
Nombre:
Apellido:
Direccion:
Suma Ventas:
Cuenta de Devoluciones:  
 
¾ El numero de Cedula deberá estar validado de acuerdo a los clientes. 
¾ A partir de la Cedula se deberán calcular automáticamente el resto de los datos. 
 
Base de Datos Ventas
Id Cliente Operación Importe
3201506-7 Venta 4.753 €
3501289-1 Devolucion 940 €
2650450-5 Venta 1.551 €
3456287-1 Venta 5.103 €
1795461-8 Venta 1.722 €
2975468-6 Venta 651 €
3197486-8 Venta 5.444 €
2497682-3 Venta 1.524 €
2894657-1 Venta 4.178 €
4132495-8 Devolucion 2.189 €
3201506-7 Venta 2.233 €
3501289-1 Devolucion 5.014 €
2650450-5 Venta 5.138 €
3456287-1 Devolucion 5.097 €
1795461-8 Venta 3.839 €
2975468-6 Devolucion 1.181 €
3197486-8 Venta 6.111 €
2497682-3 Devolucion 1.850 €
2894657-1 Venta 2.362 €
4132495-8 Venta 4.861 €
3201506-7 Venta 3.518 €
3501289-1 Devolucion 3.985 €
2650450-5 Venta 1.158 €
3456287-1 Venta 1.497 €
1795461-8 Venta 1.193 €
2975468-6 Devolucion 3.443 €
3197486-8 Venta 1.708 €
2497682-3 Venta 2.195 €
2894657-1 Venta 1.642 €
4132495-8 Venta 4.057 €
3201506-7 Venta 3.564 €
3501289-1 Devolucion 4.873 €
2650450-5 Venta 2.396 €
3456287-1 Venta 2.685 €
1795461-8 Venta 2.223 €
2975468-6 Venta 2.638 €
3197486-8 Venta 2.646 €
2497682-3 Devolucion 3.401 €
2894657-1 Venta 3.655 €
4132495-8 Venta 1.489 €
3201506-7 Venta 5.412 €
3501289-1 Venta 5.145 €
2650450-5 Venta 1.142 €
3456287-1 Devolucion 5.769 €
1795461-8 Venta 1.632 €
2975468-6 Venta 6.008 €
3197486-8 Venta 6.221 €
2497682-3 Venta 5.710 €

Base de Datos Clientes


Id Cliente Nombre Apellido Edad Direccion Telefono
3201506-7 Arturo Almeida 52 Rodo 2124 094-873889
3501289-1 Fabiana Lopez 74 Bvr Artigas 3251 096-943820
2650450-5 Leticia Gomez 48 Bvr España 1256 099-435757
3456287-1 Karina Stirling 38 18 de julio 1311 099-410376
1795461-8 German Torres 35 Mercedes 1565 094-288854
2975468-6 Daniel Fernandez 22 Uruguay 6145 099-239134
3197486-8 Milton Falcon 18 San jose 1245 094-714356
2497682-3 Lourdes Gracia 62 Barbato 5475 096-541862
2894657-1 Mario Victorino 18 T Gomensoro 2158 096-787281
4132495-8 Anibal Troilo 21 Berro 9564 094-885641

 
 
 
 
 
 
 
 
 
 
 
 
Ejercicio 3 
 
A partir de la siguiente base de Datos referida a entrega de productos se solicita: 
 
Fecha Empresa Producto Tipo de Cliente Fecha Entrega
02/02/2005 Foxy SRL PC Pentium II Mayorista
02/02/2005 Almiron SA PC Pentium III Minorista
03/02/2005 Foxy SRL TV 21 Mayorista
08/02/2005 Almiron SA DVD Mayorista
08/02/2005 Foxy SRL DVD Mayorista
08/02/2005 Almiron SA Monitor LCD Minorista
08/02/2005 Foxy SRL Mouse Optico Mayorista
08/02/2005 Almiron SA PC Pentium II Minorista
11/02/2005 Foxy SRL PC Pentium III Mayorista
14/02/2005 Almiron SA TV 21 Minorista
15/02/2005 Foxy SRL DVD Mayorista
18/02/2005 Almiron SA DVD Mayorista
21/02/2005 Foxy SRL Monitor LCD Minorista
22/02/2005 Almiron SA Parlantes Minorista
22/02/2005 Lypton SA PC Pentium II Mayorista
24/02/2005 DRR Corp PC Pentium III Minorista
25/02/2005 Almiron SA TV 21 Mayorista
28/02/2005 Foxy SRL DVD Mayorista
02/03/2005 Almiron SA DVD Mayorista
04/03/2005 Foxy SRL DVD Minorista
08/03/2005 Almiron SA Monitor LCD Mayorista
11/03/2005 Lypton SA Mouse Optico Mayorista
11/03/2005 DRR Corp Parlantes Mayorista
14/03/2005 Almiron SA PC Pentium III Minorista
17/03/2005 Foxy SRL Parlantes Mayorista
18/03/2005 Almiron SA DVD Mayorista
22/03/2005 Foxy SRL DVD Minorista
25/03/2005 Almiron SA DVD Mayorista
29/03/2005 Lypton SA Monitor LCD Mayorista  
 
1. Calcule la Fecha de la Entrega de acuerdo a los siguientes criterios: 
1.1. A todos los clientes Mayoristas se les entregan los productos a los 3 días hábiles de la 
fecha de pedido. 
1.2. A los clientes Minoristas se les entrega a los 10 días hábiles, salvo para la empresa 
vendedora “DRR Corp”, que se entregan a los 5 días hábiles.  
2. Aplique un formato condicional con las siguientes características: 
2.1. Fondo azul para los registros correspondientes a PC (todos los modelos). 
2.2. Fondo rojo para el resto de los registros. 
 
Ejercicio 4 
 
Se cuenta con la siguiente base de datos referida a las horas trabajadas de los diferentes 
empleados de la empresa, con 109 registros. 
En base a dicha información se solicita: 
1. Genere en una nueva columna el cálculo de las horas trabajadas de cada empleado para cada 
registro. 
2. Calcule en una nueva columna el pago por hora a cada trabajador de acuerdo a la siguiente 
regla: 
2.1. Si pertenece al sector “Ventas”; 20 euros por hora. 
2.2. Si pertenece al sector “Compras”; 18 euros por hora. 
2.3. Si pertenece al sector “Contable”; 15 euros por hora. 
2.4. Si pertenece al sector “Administrativo”; 12 euros por hora. 
2.5. Si pertenece al sector “Producción”; 8 euros por hora. 
3. Calcule en una nueva columna el pago del salario total para cada día. 
4. Genere un solo cuadro de consulta a su elección entre las siguientes opciones: 
 
Empleado
Fecha

Salario pagado hasta la fecha


 
En ambos casos los de Empleado o Sector y el dato de fecha será introducido por el usuario de la 
consulta, y se deberá calcular automáticamente el 3º dato. 
Si elige el primer cuadro de consulta se deberá calcular los salarios totales pagados a dicho 
Empleado, hasta la fecha que figure en el cuadro. La celda donde se introduzca el Empleado 
deberá validarse. 
Si elige el segundo cuadro de consulta se deberá calcular los salarios totales pagados a dicho 
Sector, hasta la fecha que figure en el cuadro. La celda donde se introduzca el Sector deberá 
validarse. 
 
Sector Nombre Apellido Fecha Hora Ingreso Hora Egreso Horas Trabajadas Pago/Hora Salario/dia
Contable Raul Abal 01/02/2006 11:11:22 5:14:53
Produccion Lucila Vazquez 01/02/2006 7:47:29 6:23:34
Compras Anibal Bass 02/02/2006 8:34:49 16:08:55
Compras German Furia 03/02/2006 23:51:50 7:53:06
Contable Ana Monje 03/02/2006 0:36:05 4:10:01
Administrativo Eliana Boss 04/02/2006 0:54:53 14:32:46
Produccion Andrea Guzman 04/02/2006 8:45:58 0:57:23
Administrativo Luis Torres 05/02/2006 22:45:28 7:41:47
Produccion Walter Lopez 05/02/2006 12:05:06 23:17:14
Administrativo Hugo Prato 06/02/2006 20:29:17 15:53:44
Contable Danila Estevanez 06/02/2006 7:25:26 3:32:26
Produccion Julio Verdi 07/02/2006 4:19:15 12:20:00
Ventas Juan Balverde 07/02/2006 0:00:45 5:30:01
Produccion Esteban Samir 07/02/2006 1:18:58 2:43:36
Administrativo Fernando Luisi 08/02/2006 19:14:38 3:32:01
Produccion Milton Suarez 09/02/2006 18:06:46 3:47:05
Produccion Diego Nion 10/02/2006 10:14:41 12:43:31
Produccion Daniel Marquez 11/02/2006 5:26:43 0:34:42
Ventas Miriam Rey 11/02/2006 1:25:57 23:08:40
Produccion Maite Lupro 12/02/2006 17:26:05 1:33:24
Ventas Damian Valente 12/02/2006 17:30:59 4:36:26
Compras Jimena Duarte 13/02/2006 8:07:40 1:39:25
Produccion Fernando Grassi 13/02/2006 11:17:42 13:52:30
Produccion Luisa Ottospan 14/02/2006 17:53:43 11:28:25
Ventas Mirta Rodriguez 14/02/2006 2:16:55 2:21:09
Produccion Carla Dupuy 15/02/2006 11:49:50 21:56:34
Produccion Ernesto Darlem 15/02/2006 7:11:00 2:14:06
Contable Raul Abal 16/02/2006 23:02:17 23:30:23
Produccion Lucila Vazquez 16/02/2006 16:29:22 20:38:22
Compras Anibal Bass 16/02/2006 21:43:18 21:05:41
Compras German Furia 17/02/2006 20:20:44 5:56:07
Contable Ana Monje 20/02/2006 11:54:08 17:25:57
Administrativo Eliana Boss 21/02/2006 0:18:22 3:57:12
Produccion Andrea Guzman 22/02/2006 17:33:35 4:13:53
Administrativo Luis Torres 22/02/2006 1:05:19 11:04:26
Produccion Walter Lopez 22/02/2006 14:34:28 5:07:44
Administrativo Hugo Prato 24/02/2006 17:09:20 6:23:08
Contable Danila Estevanez 27/02/2006 17:24:19 18:06:56
Produccion Julio Verdi 01/03/2006 22:12:16 4:44:52
Ventas Juan Balverde 02/03/2006 9:34:09 20:30:08
Produccion Esteban Samir 02/03/2006 2:52:58 4:32:00
Administrativo Fernando Luisi 02/03/2006 8:20:40 14:07:48
Produccion Milton Suarez 06/03/2006 15:45:04 8:10:43
Produccion Diego Nion 06/03/2006 3:47:03 20:19:58
Produccion Daniel Marquez 07/03/2006 8:25:54 9:54:43
Ventas Miriam Rey 07/03/2006 8:02:41 16:04:13
Produccion Maite Lupro 07/03/2006 23:02:35 3:08:58
Ventas Damian Valente 07/03/2006 18:43:08 4:17:44

 
 
 
 
 
 
 
 
 
 
Funciones Avanzadas 
Prueba Final 
Ejercicio 1 
 
A continuación se presenta la siguiente base de datos, la cual contiene los nombres de los 
participantes de los 4 equipos existentes.   
 
Equipo A Equipo B Equipo C Equipo D
Adalberto Baltasar Camila Damian
Alberto Bartolo Camilo Daniel
Alicia Basilio Carla Daniela
Alison Beatriz Carlos Danilo
Ana Benjamin Carmen Dante
Ana Maria Bernardo Carol Dario
Anastacia Berta Carolina Demetrio
Antonio Betiana Cecilia Demostenes
Armando Betina Celene Denise
Arnaldo Brian Celeste Diana
Arturo Bruce Celia Dino
Asencio Bruno Cristian Diogenes

 
 
Dichos participantes de los equipos se encuentran agrupados por columnas, y se sabe que cada 
equipo contara con 16 participantes. 
 
Se Pide: 
 
Creé un cuadro de consulta similar al que se le presenta a continuación, donde a partir de la 
introducción de un texto cualquiera en el campo correspondiente al “Nombre de Participante: ”, el 
mismo devuelva en el campo correspondiente a “Equipo: ”, el equipo al cual corresponde dicho 
participante. En el caso que no exista dicho participante, en dicho campo deberá figurar: “No 
pertenece a ningún equipo”. 
 
Tenga en cuenta que aun se encuentran cupos libres en cada equipo, y la función que usted cree 
para dicho cuadro de consulta deberá funcionar correctamente cuando se inserten nuevos 
participantes. Y recuerde que el nombre de dicho participante no tiene restricción alguna (puede 
comenzar con cualquier letra). 
 
El formato del cuadro de consulta es el siguiente: 
 
Nombre de Equipo:    
Participante:    
 
 
 
Ejercicio 2 
 
Se cuenta con la siguiente base de datos, referida a movimientos de comercio exterior. 
Se pide:  
 
1) Un cuadro de consulta como el siguiente, en el cual a partir del ingreso de datos como el 
“País”, “Tipo de Operación”, y “Fecha”, se nos devuelva las operaciones de “Suma”, 
“Promedio”, “Máximo”, “Mínimo” referida a los datos de origen.  
 
 
Fecha:
Pais: Brasil
Tipo de Operación: Importacion
Suma
Promedio
Maximo
Minimo  
 
En el caso del campo de fecha, las operaciones deberán realizarse a partir de dicha fecha 
especificada (para fechas mayores o iguales a la fecha especificada). 
Tanto el nombre de los campos “País” y “Tipo de Operación”, deberán validarse a través de una 
lista que deberán crear. 
2) Aplicar formato condicional a la Base de datos, donde se pinten las filas de la misma en función 
de los siguientes criterios 
• Si es Exportación, deberá figurar un fondo azul, fuente color blanco, estilo Negrita. 
• Si es Importación, deberá figurar un fondo rojo, fuente color negro, estilo Negrita. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Base de datos: 
 
Fecha Tipo de Operación País Importe
01/01/2005 Exportacion Brasil 1250
15/01/2005 Exportacion Argentina 780
01/02/2005 Importacion EEUU 1350
15/02/2005 Exportacion Australia 1540
01/03/2005 Importacion Paraguay 1230
15/03/2005 Importacion Mexico 500
01/04/2005 Importacion China 1450
15/04/2005 Exportacion España 750
01/05/2005 Exportacion Argentina 800
15/05/2005 Importacion Brasil 1100
01/06/2005 Exportacion Argentina 1000
15/06/2005 Exportacion Argentina 750
01/07/2005 Exportacion EEUU 1200
15/07/2005 Importacion EEUU 1000
01/08/2005 Exportacion EEUU 580
15/08/2005 Exportacion España 800
01/09/2005 Importacion Brasil 800
15/09/2005 Importacion Brasil 750
01/10/2005 Importacion España 450
15/10/2005 Importacion Argentina 800
01/11/2005 Exportacion Mexico 780
15/11/2005 Exportacion Paraguay 450
01/12/2005 Exportacion China 1100
15/12/2005 Importacion Argentina 800  
 
 
Ejercicio 3 
 
Factura Fecha Facturacion Productos Empresa Fecha de Entrega
A001 01/01/2005 VHS La Tardia
A002 02/01/2005 DVD La Tempranera
A004 05/01/2005 TV 20' La Tempranera
A005 07/01/2005 TV 21' La Tempranera
A011 14/01/2005 DVD La Tardia
A013 16/01/2005 VHS La Tardia
A015 19/01/2005 TV 29' La Tardia
A019 21/01/2005 VHS La Tempranera
A021 23/01/2005 DVD La Tempranera
A021 27/01/2005 DVD La Tardia
A023 31/01/2005 DVD La Tardia
A105 01/03/2005 VHS La Tempranera
A205 02/04/2005 VHS La Tempranera
A568 03/07/2005 TV 21' La Tardia
B209 04/09/2005 TV 29' La Tempranera
B524 05/11/2005 VHS La Tardia  
 
A partir de la siguiente base de datos, nuestra empresa de logística que se dedica a la entrega de 
diferentes productos a diferentes empresas, desea conocer las fechas de entrega para cada uno de 
los productos. 
 
Se nos da a conocer la siguiente información: 
 
Todos los Productos de la Empresa “La Tardía” se entregan a los 15 días hábiles de la fecha de 
facturación. 
En cambio para la Empresa “La Tempranera” se entregan los productos a los 3 días hábiles de la 
fecha de facturación, salvo los DVD que deben entregarse al siguiente día hábil.  
 
Ejercicio 4 
 
Plan Circuital
Nº de Circuito Desde Hasta Direccion
101 1 1000 Guana 2015
151 1001 5000 18 de Julio 2374
201 5001 9000 21 de septiembre 2323
251 9001 12000 Rodo 3111
301 12001 15000 Mercedes 2173
501 15001 20000 Uruguay 2158  
 
Se solicita que cree un cuadro de consulta para facilitarle a los votantes de esta institución 
encontrar su circuito y local de votación. 
Ellos ingresaran su Numero de Socio, y deberá visualizarse su circuito de votación y Dirección de 
dicho local. 
 
Numero de Socio
Nº de Circuito
Direccion  
 
 
El cuadro de consulta jamás podrá dar como resultado algún error, y en el caso que no exista 
ningún número de socio ingresado, los campos “Nº de Circuito” y “Dirección”, deberán mostrar 
“No se ha ingresado Nº de Socio”.   
  
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

COMPENDIO 
 
PRUEBAS 
 
ANÁLISIS 
 
DE  
 
INFORMACIÓN 
Prueba Final 
Tablas Dinámicas 
 
A partir de la Base de datos ubicada en la hoja “BD_Ventas”, realice los siguientes ejercicios: 
 
Ejercicio 1 
 
1. Realice una tabla dinámica que muestre segmentado por turno; la cantidad de ventas 
realizadas y el monto total de la facturación en pesos. 
1.1. Asigne un formato de pesos, sin decimales, a los datos relacionados con la facturación 
total. 
1.2. Cambie el nombre de los campos del área de datos a: “Cantidad de Ventas” y 
“Facturación Total”. 
1.3. Agregue un Auto formato a dicha Tabla del tipo “Informe 4”. 
1.4. Ordene la tabla de mayor a menor de acuerdo a las cantidades de ventas en cada 
turno. 
2. Realice otra nueva tabla dinámica que muestre segmentado para cada supervisor; el 
monto total de la facturación realizada. 
2.1. Asigne un formato de pesos, sin decimales, a los datos relacionados con la facturación 
total. 
2.2. Cambie el nombre del campo del área de datos a: “Ventas Totales”. 
2.3. Agregue un Auto formato a dicha Tabla del tipo “Tabla 2”. 
2.4. Ordene la tabla de mayor a menor de acuerdo a la facturación total. 
 
Ejercicio 2 
 
1. Realice otra nueva tabla dinámica que muestre segmentado por tipo de producto, las 
unidades totales vendidas. 
1.1. Asigne un auto formato del tipo “Tabla 1” 
1.2. Ordene dicha tabla de mayor a menor de acuerdo a las cantidades vendidas de cada 
tipo de producto. 
2. Genere un grafico dinámico de columnas asociado a dicha tabla, donde se muestre los 
tipos de productos (en el Eje X), con una columna que muestre las cantidades vendidas de 
cada tipo . 
 
Ejercicio 3 
 
1. Realice una tabla dinámica que muestre para cada empleado el promedio en pesos de sus 
ventas efectuadas. Filtre dicha información solamente para las ventas realizadas en el 
turno de la noche y efectuadas al contado. 
1.1. Aplique un AutoFormato del tipo  “Informe 10”. 
1.2. Asigne un formato de pesos, sin decimales, a los datos relacionados con el promedio 
de la facturación total. 
1.3. Cambie el nombre del campo del área de datos a: “Promedio de Facturación por 
empleado”. 
1.4. Ordene la tabla de mayor a menor, de acuerdo al promedio de la facturación de 
cada empleado. 
2. Genere un grafico dinámico circular asociado a dicha tabla, donde se muestre para cada 
vendedor el total de las ventas efectuadas, según los criterios del punto anterior. 
 
Ejercicio 4 
 
1. Genere una tabla dinámica que muestre para cada tipo de pago, el monto total de la 
facturación realizada. 
1.1. Aplique un autoformato a dicha tabla del tipo “Informe 2”. 
1.2. Agregue un formato de pesos al total de las ventas, y el campo del área de datos se 
llamara “Facturacion Total”. 
1.3. Agregue un campo calculado a dicha tabla que muestre la facturacion total + IVA en 
una nueva columna. El nombre en la tabla deberá figurar “Importe + IVA”. 
2. Genere una nueva Tabla dinámica que muestre para cada tipo de pago, el monto total de 
la facturacion realizada. 
2.1. Aplique un auto formato del tipo “Informe 6”. 
2.2. El campo del área de datos deberá llamarse “Facturacion por forma de pago”, y 
deberá tener un formato de pesos. 
2.3. Agregue 2 elementos calculados en el campo Empleados, los mismos se llamaran: 
“Visa Corregido” y “Master Card Corregido”. Y se calcularan con un porcentaje 
adicional del 7% para “Visa”, y 5% para “Master Card”. 
2.4. Oculte los elementos Visa y Master Card (que se visualicen solamente los elementos 
calculados). 
2.5. Ordene la tabla de mayor a menor de acuerdo a la facturacion total. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Prueba Final 
Tablas Dinámicas 
 
Ejercicio 1 
 
A partir de la Base de Datos ubicada en “BD_Mdeo”, se pide: 
3. Realice una tabla dinámica que muestre la Población de cada barrio segmentado por  
sexo, además deberá filtrar dicha información para las edades comprendidas entre 15 y 29 
años. 
3.1. Ordene dicha Tabla de Mayor a Menor, de acuerdo a la Población de cada Barrio de 
Mdeo. 
3.2. Agregue un AutoFormato a dicha Tabla del tipo “Tabla 10”. 
4. Genere un grafico dinámico de columnas asociado a dicha tabla, donde se visualice la 
población de cada Barrio en una sola columna (cada Barrio deberá figurar en el Eje X).  
En el eje X deberán aparecer solamente los Barrios: Pocitos, Cordón, Punta Carretas, 
Centro, Unión y Buceo. 
 
 
Ejercicio 2 
 
A partir de la Base de Datos ubicada en “BD_Mdeo”, se solicita: 
2. Efectúe una tabla dinámica, donde se pueda comparar por sexo y barrio, los hombres y 
mujeres que viven en los barrios de “Flor de Maroñas”, “La Teja” y “Brazo Oriental”. Pero 
filtre dicha tabla para que aparezcan solamente aquellas personas con edades entre 50 y 
79 años. 
2.1. Ordene dicha tabla de acuerdo a la población total de cada barrio de acuerdo a las 
características mencionadas. 
2.2. Agregue un AutoFormato a dicha Tabla del tipo “Tabla 3”. 
3. Genere un grafico dinámico de columnas asociado a dicha tabla, donde se muestre los 
citados Barrios (en el Eje X) y una columna para la población de cada sexo asociada al 
barrio. 
 
 
Ejercicio 3 
 
A partir de la Base de Datos ubicada en “BD_Ventas”, se solicita: 
2. Realice una tabla dinámica que muestre para cada vendedor las ventas efectuadas en los 
meses de febrero y mayo.  
Permita filtrar dicha información según Tipo de Pago, y muestre solamente los datos para 
las ventas al contado. 
2.1. Aplique un AutoFormato de “Tabla 2”. 
3. Genere un grafico dinámico circular aparte, donde se muestre para cada vendedor el total 
de ventas efectuadas, solamente deberán figurar las realizadas en los meses de marzo y 
abril, para todas las ventas no efectuadas al contado. 
 
 
 
Ejercicio 4 
 
A partir de la Base de Datos ubicada en “BD_Ventas”, se solicita: 
2. Genere una tabla dinámica, que muestre el promedio de las ventas totales efectuadas, 
para cada tipo de producto solamente para las ventas al contado. Permita filtrar dicha 
tabla de acuerdo a los vendedores que las realizaron. 
2.6. Aplique un autoformato a dicha tabla del tipo “Tabla 10”. 
2.7. Agregue un formato de euros al promedio de las ventas. 
3. Genere otra tabla dinámica que permita observar, el porcentaje de cada Tipo de Producto 
en el total de las ventas efectuadas en marzo, para todas las ventas que han recibido un 
descuento menor al 5%. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
PRUEBA Análisis de Información – EXCEL AVANZADO 
 
EJERCICIO 1 
 
Basados en los datos existentes en la Hoja1 del archivo Ventas.xls: 
• Crear una tabla dinámica, en la celda F1, que muestre el máximo de ventas del año 2004 para cada 
zona. 
• Colocarle como nombre de campo “Máximo 2004” 
• Ordenar la tabla por este campo en forma Ascendente 
• Crear otra Tabla Dinámica, en la celda F9, que indique el promedio de ventas por Vendedor del año 
2003. 
• Aplicarle a este campo formato de número, con separador de miles y dos posiciones decimales. 
• Mostrar solamente los datos correspondientes a LOPEZ y RODRIGUEZ 
• Crear otra Tabla Dinámica, en una hoja nueva, donde se muestre el total de cada año por Zona. 
• Agregar un campo calculado, llamado “Diferencia” que muestre cuanto más se vendió en el 2004 
respecto del 2003. 
• Agregar otro campo calculado, llamado “Porcentaje” que muestre cuanto representa 
porcentualmente (sobre 2003) la diferencia calculada en el punto anterior. Colocarle formato % con 
un decimal. 
• Por detectarse un error deberá cambiar el valor del último registro de la lista original. Las ventas 
reales de PEREZ para el año 2004 fueron de 4765. Reflejar este cambio en la Tabla Dinámica. 
 
 
EJERCICIO 2 
 
Trabajar sobre los datos que se encuentra en la Hoja1 del archivo Seminarios.xls 
 
• Realizar una tabla dinámica en una Hoja nueva que indique la cantidad de seminarios que tendrá 
cada profesor y colocarle al campo correspondiente el nombre “Total de Seminarios” 
• Representar la tabla del punto anterior, en un gráfico circular, pero solamente mostrando los datos 
correspondientes a “Hardware” y “Lenguajes”. 
 
EJERCICIO 3 
Utilizando el Archivo Seminarios.xls, utilizar filtros para: 
 
• Obtener los seminarios dictados en CHILE. 
• Generar una sub base de datos para obtener los seminarios dictados en CHILE y cuya duración haya 
sido mayor de 30 minutos. La nueva sub base de datos tiene que tener las columnas del nombre, 
tema, y duración. 
• Crear, con la herramienta subtotales, los subtotales de alumnos que acudieron a cada seminario 
dictado en cada país. 
 
EJERCICIO 4 
Mediante la siguiente tabla: 
 
Importe Ventas:  560000 
Porcentaje Costo:  65% 
Importe :  364000 
Utilidad:  196000 
 
Con la herramienta tabla: realizar cálculos de utilidad, dependiendo de las siguientes variaciones del 
porcentaje de costo (45%; 60%; 75%; 85%; 90%). 
 

COMPENDIO 
 
PRUEBAS 
 
GRÁFICOS 
 
PERSONALIZADOS 
Prueba Final 
Módulo: “Gráficos Personalizados” 
 
Ejercicio Nº 1 
 
Copie el siguiente cuadro de datos en la 1º hoja de su libro de Excel al que llamara 
“Prueba_GP_Nombre_Apellido”. A la hoja nómbrela como “Tabla Datos”. 
 
Equipos de Venta
Meses Equipo A Equipo B Equipo C Equipo D Equipo E
Enero $U 150.000 $U 157.487 $U 125.868 $U 90.834 $U 52.481
Febrero $U 271.139 $U 299.764 $U 163.736 $U 244.286 $U 127.685
Marzo $U 310.874 $U 352.540 $U 194.513 $U 246.763 $U 210.303
Abril $U 324.147 $U 465.699 $U 350.106 $U 361.981 $U 248.181
Mayo $U 338.982 $U 489.592 $U 382.835 $U 536.825 $U 349.743
Junio $U 362.883 $U 525.612 $U 529.520 $U 554.831 $U 455.638
Julio $U 473.192 $U 671.261 $U 704.240 $U 693.014 $U 489.846
Agosto $U 533.822 $U 802.015 $U 875.955 $U 766.389 $U 552.640
Septiembre $U 653.734 $U 924.318 $U 963.160 $U 905.500 $U 722.182
Octubre $U 701.385 $U 1.018.397 $U 1.089.458 $U 978.142 $U 773.879
Noviembre $U 776.790 $U 1.162.809 $U 1.140.784 $U 1.072.761 $U 809.750
Diciembre $U 913.258 $U 1.245.318 $U 1.220.691 $U 1.197.392 $U 911.762
 
Se Pide: 
 
1.1) Cree un grafico de columnas e insértelo en una nueva hoja del libro a la que llamara          
“Grafico 11”con las siguientes especificaciones: 
• Se desea realizar un grafico que muestre un comparativo de las 
ventas totales anuales realizadas por cada Equipo de Ventas 
(deberá figurar una columna sola para cada Equipo de Ventas en 
el eje X), dicho grafico debe ser creado a partir de la tabla de 
datos original, sin crear una nueva columna para totales. Se 
debe incluir en el grafico los rótulos de categoría del eje X. 
• Cada serie incluida en el grafico debe llevar su nombre a través 
de una referencia a las celdas ubicadas en la tabla original 
• El grafico debe incluir como titulo del mismo “Ventas anuales 
según Equipos de Ventas”. La leyenda de referencias no deberá 
figurar en el grafico. 
• Cada Eje deberá llevar los siguientes títulos, en formato 
“Negrita”: 
ƒ X= “Equipos de Ventas” 
ƒ Y= “Ventas Anuales” 
• La escala del eje “Y” deberá visualizarse cada 1200000 unidades 
• El área de trazado del grafico deberá tener como efecto de 
relleno una textura de mármol verde al igual que el área del 
grafico. 
• Asigne un formato similar a todas las series (meses) para 
generar en la columna de cada equipo de venta el efecto 
deseado de una columna uniforme, para ello quite bordes y 
adopte un efecto de relleno a su elección. 
 
 
1.2) Ubique el siguiente grafico en una nueva hoja llamada: “Grafico 12” 
Asimismo se desea observar un grafico de barras con efecto 3D, donde se muestre las 
ventas discriminadas por meses (para cada mes una sola barra que incluya todos los 
equipos de ventas). Para ello se le solicita que genere dicho grafico a partir de la 
información contenida en la tabla, y escoja un subtipo de grafico de barras adecuado a tal 
fin. Además asigne un efecto de relleno similar en todas las series incluidas en el grafico, 
para generar un efecto de homogeneidad en cada barra.  
Formatos del grafico: 
• No deberá figurar la leyenda con las diferentes series. 
• El titulo del grafico será: “Ventas Mensuales para el año 2006” 
• El titulo del Eje Z (valores) será: “Importes de Ventas” 
• Se debe incluir en el grafico los rótulos de categoría del eje X, y 
deberán figurar en Negrita, además del titulo para dicho eje: 
“Meses”. 
• El efecto de relleno de las áreas de trazado y del grafico, 
deberán incluir un color celeste y gris en degradado y ser 
similares en sus estilos de sombreado 
• El efecto de relleno de los planos laterales e inferiores del 
grafico, deberán incluir un color verde en degradado.  
 
 
 
1.3) Se desea generar un grafico de líneas donde se visualice la evolución mensual de las 
ventas para cada Equipo de Ventas. 
Realice un nuevo grafico con las siguientes características: 
• El titulo del grafico será: “Evolución mensual de las ventas 
según Equipo de Venta” 
• El titulo del eje x: “Meses” 
• El titulo del eje y: “Importe de Ventas” 
• Todos los títulos deberán figurar en negrita. 
• Deberá incluir el rotulo de categorías en negrita 
• Las áreas de; trazado, grafico, diferentes títulos y  leyenda, 
deberán tener el mismo efecto de color a su elección.  
• La escala del “Eje Y” deberá visualizarse cada $175000. 
• Ubíquelo en nueva hoja llamándola “Grafico13” 
• La leyenda deberá figurar sobre el grafico. 
 
1.4) Deseamos observar en un nuevo grafico la participación de cada Equipo de Venta para el 
total de las ventas en diciembre, a través de un grafico circular con efecto 3d y seccionado. 
Añada un formato que incluya: 
• Una imagen de fondo en el área de grafico.  
• El titulo de dicho grafico será: “Participación de los Equipos de 
Venta en Diciembre 2006”. 
• Deberá figurar el nombre y el porcentaje correspondiente a 
cada Equipo, separados por una nueva línea. 
• La leyenda con las categorías deberá figurar sobre el grafico. 
• Ubíquelo en nueva hoja llamándola “Grafico14”.  
 
 
Ejercicio Nº 2 
 
Copie la siguiente tabla a una nueva hoja del libro con el cual esta trabajando y nómbrela 
“Pirámide Poblacional”. 
 
Total Grupo de edades
0a3 4a5 6 a 14 15 a 19 20 a 24 25 a 29 30 a 49 50 a 64 65 a 79 80 o más
POCITOS 69.636 2.276 1.156 5.442 4.379 5.580 5.957 17.998 12.513 10.248 4.087
Hombres 29.827 1.155 590 2.699 2.076 2.598 2.736 8.053 5.083 3.685 1.152
Mujeres 39.809 1.121 566 2.743 2.303 2.982 3.221 9.945 7.430 6.563 2.935
 
A partir de la siguiente tabla de datos deberá construir un grafico personalizado que represente 
una “Pirámide Poblacional”. Dicho grafico deberá presentar en el Eje horizontal los Hombres a la 
izquierda y las mujeres a la derecha, recuerde que solamente deberá aparecer en el grafico los 
“grupos de edades” en el Eje vertical, y no los totales.  
 
Deben aparecer títulos en ambos ejes y fundamentalmente las categorías en el Eje X.  
En cada barra deberá figurar a la interna de la misma el valor para dicho sexo y grupo etario. 
El formato de las diferentes áreas del grafico debe ser del mismo color, que usted elija. 
 
 
Ejercicio Nº 3 (Opcional 1) 
 
 
Consultas Inscripciones
1500 750
1600 760
1800 850
1650 800
200 75
840 550
1200 680  
 
Se presentan los siguientes pares de Valores (Consultas sobre un Curso, Inscripciones a dicho 
curso). 
 
Se cree que dichas series se correlacionan de alguna manera. 
 
Se solicita si usted podría determinar el mejor ajuste lineal de dichas series a través de una línea 
de tendencia, representar gráficamente la nube de puntos y dicha estimación lineal, la ecuación de 
la misma y el coeficiente de correlación al cuadrado (R^2).  
 
 
Ejercicio Nº 4 (Opcional 2) 
 
Para el siguiente proyecto de campaña publicitaria se cuenta con la siguiente información: 
 
Tareas Fecha Inicial Fecha Final
Planificacion 01/03/2006 15/03/2006
Revision Primaria 16/03/2006 22/03/2006
Pruebas de desarrollo 25/03/2006 15/04/2006
1º Proceso Productivo 16/03/2006 15/05/2006
2º Proceso Productivo 01/05/2006 15/06/2006
3º Proceso Productivo 15/05/2006 30/06/2006
Evaluacion de Resultados 01/07/2006 05/07/2006
Replanteo del Proyecto 10/07/2006 15/07/2006  
 
Se solicita que realice para el informe de presentación del desarrollo de un nuevo producto, un 
Grafico Personalizado de Gantt donde se visualicen las diferentes tareas del Proyecto en el Eje X, y 
en el Eje Y se muestren las fechas involucradas. 
 
 
El grafico deberá presentar: 
 
• Titulo del mismo, y títulos de ambos ejes (no leyenda de referencias). 
• Valores de duración de cada una de las tareas en el interior de cada barra 
• Formatos de área de grafico y trazado en celeste. 
• Formatos del área de las series en color rojo. 
 
   
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
PRUEBA MÓDULO DE GRAFICOS – CURSO EXCEL AVANZADO BIOS

EJERCICIO 1 
 
Meses  Equipo A  Equipo B 
Enero  180500  176000 
Febrero  190200  120000 
Marzo  170800  135000 
Abril  165900  210000 
Mayo  189000  180300 
 
Se pide: 
 
1. Generar un gráfico de columnas que contenga las ventas de ambos equipos en cada uno 
de los meses (en eje de X los meses y en eje de Y los importes de ventas de cada uno de 
los equipos). 
2. Representar en el mismo gráfico (agregado posterior al primer gráfico), dos series que 
representen porcentualmente la incidencia de cada venta en cada uno de los meses, y esta 
representación de porcentajes deberá estar representada por un eje secundario. 
3. Aplicar efectos de relleno en cada una de las series (equipo A con un efecto de relleno a 
eleccion del estudiante, equipo B con otro efecto de relleno a elección del estudiante). 
4. El area de trazado tendrá como efecto de relleno una textura con efecto de marmol. 
5. Generar automatización en el gráfico. Esto se refiere a que, si el estudiante incorpora 
otros meses (junio, julio y agosto, junto con ventas para cada equipo) estos datos se 
agreguen en forma automática en el gráfico en cuestión. 
 
 
Ejercicio 2 
 
Plantas de Celulosa  
 
Se ha realizado una encuesta a determinada muestra poblacional (200 personas) acerca de su 
opinión acerca de si las plantas se instalarán en Argentina o en Uruguay. 
 
Paises/Edades  20 a 30 años  31 a 40 años  41 a 50 años  51 a 60 años 
Argentina  155  145  110  80 
Uruguay  45  55  90  120 
 
Generar un gráfico de pirámide poblacional. Adicionar al mismo un título para cada uno de los 
ejes. Mostrar los valores dentro del gráfico. Aplicar efectos de relleno que el estudiante considere. 
 
Grabar este grafico como personalizado para aplicarlo en futuros usos (darle como nombre 
pirámides personalizadas). 
 
Prueba Final 
Módulo: “Gráficos Personalizados” 
Ejercicio Nº 1 
 
Copie el siguiente cuadro de datos en la 1º hoja de su libro de Excel al que llamara 
“Prueba_GP_Nombre_Apellido”. A la hoja nómbrela como “Ejercicio 1”. 
 
Ventas Anuales

Vendedores 2000 2001 2002


Martin 150 180 230
Alicia 320 350 350
Jaime 260 280 300
Gustavo 460 620 750
Elisa 750 820 600
Juan 120 375 400  
 
Se Pide: 
 
1.1) Cree un grafico de columnas e insértelo en una nueva hoja del libro a la que llamara          
“Grafico 11”con las siguientes especificaciones: 
• Se desea realizar un comparativo para cada año por 
vendedores, por lo tanto se le pide que en el Eje X figuren los 
años, y además se incluyan en el mismo los rótulos de categoría. 
• Cada serie incluida en el grafico debe llevar su nombre a través 
de una referencia a las celdas ubicadas en la tabla original 
• El grafico debe incluir como titulo del mismo “Ventas anuales 
según vendedores” y la leyenda con las referencias a las series. 
Ambos deben presentar como efecto de relleno en sus tramas el 
mismo formato, un degradado a dos colores con un estilo de 
sombreado diagonal. La leyenda de referencias deberá figurar a 
la izquierda del grafico. 
• Cada Eje deberá llevar los siguientes títulos, en formato 
“Cursiva”: 
ƒ X= “Años” 
ƒ Y= “Ventas en miles de Pesos” 
• La escala del eje “Y” deberá visualizarse cada 120 unidades 
• El área de trazado del grafico deberá tener como efecto de 
relleno una textura de mármol blanco al igual que el área del 
grafico 
• Debido a la complejidad de reconocer cada vendedor dentro de 
cada año se decidió que se incluya el nombre del mismo en cada 
columna correspondiente, siguiendo la alineación de la misma. 
 
 
1.2) Asimismo se desea observar un grafico de barras con efecto 3D, donde se muestre un 
comparativo por vendedores para el año 2001 y 2002, con idéntico formato que el grafico 
realizado en el punto 1.1), ubíquelo en una nueva hoja a la que llamara “Grafico12”. 
 
1.3) Además nos piden realizar un nuevo grafico de columnas con formatos similar al 1.1) para 
comparar los totales de ventas para los años 2001 y 2002 entre todos los vendedores, 
pero sin generar una nueva serie en la tabla original. Para generar el efecto deseado en el 
grafico modifique el área de una o ambas series para que queden con el mismo efecto y 
generen la sensación buscada. Ubíquelo en nueva hoja llamándola “Grafico13” 
 
1.4) Deseamos observar en un nuevo grafico la participación de cada vendedor para las ventas 
del año 2001, a través de un grafico circular con efecto 3d y seccionado. Añada un formato 
similar a los gráficos anteriores para las diferentes áreas del mismo. Pero en este 
deseamos que aparezca el nombre del vendedor y el porcentaje (ambos separados por un 
espacio). Ubíquelo en nueva hoja llamándola “Grafico14”. El titulo de dicho grafico será 
“Ventas 2001”.  
 
 
 
 
Ejercicio Nº 2 
 
Copie la siguiente tabla a una nueva hoja del libro con el cual esta trabajando y nómbrela 
“Ejercicio 2”. 
 
             Edades  Población de Artigas según sexo y grupo etario 
 
Sexo  Total  0 a 3   4 a 5   6 a 14   15 a 19   20 a 24   25 a 29   30 a 49   50 a 64   65 a 79   80 y mas  
ARTIGAS Total       78.019  5.426  3.139 14.626 7.349 5.634 4.767  19.619  10.169 5.771 1.519
Hombres  39.082  2.798  1.587 7.419 3.797 2.860 2.316  9.836  5.255 2.663 551
Mujeres  38.937  2.628  1.552 7.207 3.552 2.774 2.451  9.783  4.914 3.108 968
 
A partir de la siguiente tabla de datos deberá construir un grafico personalizado que represente 
una “Pirámide Poblacional”. Dicho grafico deberá presentar en el Eje horizontal los Hombres a la 
izquierda y las mujeres a las derechas, recuerde que solamente deberá aparecer en el grafico los 
“grupos de edades” en el Eje vertical, y no los totales.  
 
Deben aparecer títulos en ambos ejes y fundamentalmente las categorías en el Eje X.  
En cada barra deberá figurar a la interna de la misma el valor para dicho sexo y grupo etario. 
El formato de las diferentes áreas del grafico debe ser similar a las escogidas para el Ejercicio 1. 
 
 
 
 
 
 
 
Ejercicio Nº 3 (Opcional 1) 
 
Precios  Ventas del Mercado 
1  792 
2  821 
3  522 
4  552 
5  642 
6  437 
7  671 
8  518 
9  388 
10  503 
11  403 
12  196 
13  180 
 
Se presentan los siguientes pares de Valores (Precios, Cantidades Transadas) que representan 
Precios y cantidades transadas en determinado mercado. Se cree que dichas series se 
correlacionan linealmente. 
 
Se solicita si usted podría determinar el mejor ajuste lineal de dichas series a través de una línea 
de tendencia, representar gráficamente la nube de puntos y dicha estimación lineal, la ecuación de 
la misma y el coeficiente de correlación al cuadrado (R^2).  
 
 
Ejercicio Nº 4 (Opcional 2) 
 
Para el siguiente proyecto de campaña publicitaria se cuenta con la siguiente información: 
 

                                            Fechas 
Tareas  Fecha Inicio Fecha Final
Planificación  01/11/2005 15/11/2005
Contratación de Personal temporal 16/11/2005 30/11/2005
Campañas Piloto  17/11/2005 20/11/2005
Campañas Focalizadas  18/11/2005 30/12/2005
Folleteria Barrial  01/12/2005 15/04/2006
Folleteria no especializada  01/12/2005 15/01/2006
Grafica especializada  01/01/2006 25/01/2006
Radio  15/01/2006 15/02/2006
Televisión  25/02/2006 15/03/2006
 
 
 
 
Se solicita que realice para el informe de presentación de la campaña un Grafico Personalizado de 
Gantt donde se visualicen las diferentes tareas del Proyecto en el Eje X, y en el Eje Y se muestren 
las fechas involucradas. 
 
El grafico deberá presentar: 
 
• Titulo del mismo, y títulos de ambos ejes (no leyenda de referencias). 
• Valores de duración de cada una de las tareas en el interior de cada barra 
• Formatos de área de grafico y trazado idénticos. 
• Formatos del área de las series en color azul. 
 
   
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

COMPENDIO 
 
PRUEBAS 
 
MACROS 
 
EN 
 
EXCEL 
Prueba Módulo de Macros en Excel 
 
 
 
Ejercicio 1 
 
 
 
 
Dado el archivo que le proporcionó el docente. En la hoja 1 se encuentra un listado de cheques en 
cartera de la empresa. Determinados cheques van venciendo, y se debe ir pintando de rojo los que 
vayan venciendo (utilizar como parámetro la fecha actual del sistema (función DATE)). 
Se pretende que mediante un macro, se obtenga la suma de los importes de cheques vencidos. 
 
 
 
 
Ejercicio 2 
 
 
 
 
En la hoja 2 del mismo archivo entregado por el docente, se encuentra una planilla de manejo de 
stock. Se pretende que el alumno desarrolle un macro, para que en dicho listado se destaque de 
color azul aquellos artículos que estén por debajo del stock mínimo requerido por la empresa. 
 
 
 
 
 
Nota: 
 
 
• Generar un botón sobre la hoja 1 para el macro del ejercicio 1. 
 
• Generar un botón en la barra de herramientas para ejecutar el macro del ejercicio 2. 
 
 
 
 
 
 
 
 
 
 
 
 
Prueba Final 
Macros en Excel 
Ejercicio 1 
 
Realice una macro que guarde en una base de datos de “Liquidaciones de Sueldo”, los siguientes 
datos: 
9 Nombre y Apellido del Empleado 
9 Cargo en la Empresa 
ƒ Cadete 
ƒ Auxiliar 
ƒ Administrativo 
ƒ Encargado 
ƒ Gerente 
9 Fecha de Pago 
9 Días de Ausencia 
Además deberá agregarse en la base de datos nuevas columnas referidas a: 
9 Sueldo Nominal 
9 Aportes 
9 Sueldo Liquido 
 
Los Sueldos Nominales son los siguientes: 
ƒ Cadete; $4000 
ƒ Auxiliar; $5500 
ƒ Administrativo; $7000 
ƒ Encargado; $12000 
ƒ Gerente; $25000 
Los Aportes son los siguientes: 
ƒ Cadete; 10% sobre Sueldo Nominal 
ƒ Auxiliar; 12% sobre Sueldo Nominal 
ƒ Administrativo; 15% sobre Sueldo Nominal 
ƒ Encargado; 18% sobre Sueldo Nominal 
ƒ Gerente; 22% sobre Sueldo Nominal 
El Pago del Salario en efectivo se realiza de acuerdo a la siguiente regla: 
ƒ Si las inasistencias son nulas se lo premia con un incentivo de 5% sobre (Sueldo 
Nominal‐ Aportes). 
Sueldo Liquido = (Sueldo Nominal ‐ Aportes)* 1.05 
ƒ Si falto 3 o menos días tiene una penalización de 2% sobre (Sueldo Nominal ‐ Aportes)  
Sueldo Liquido = (Sueldo Nominal ‐ Aportes)* 0.98 
ƒ Si falto mas de 3 días tiene una penalización de 5% sobre (Sueldo Nominal – Aportes) 
Sueldo Liquido = (Sueldo Nominal ‐ Aportes)* 0.95 
                     
La funcionalidad de dicha macro deberá incluir: 
¾ En la primer fila de la Base de datos, los títulos de cada variable. 
¾ La  posibilidad  de  utilizar  dicha  macro  en  repetidas  ocasiones  y  que  no  se  eliminen 
antiguos registros 
¾ La posibilidad de elegir a continuación de cada registro estas 2 opciones: 
ƒ Ingresar un nuevo registró a continuación.  
ƒ Dejar de ingresar nuevos registros. 
Prueba Final 
Macros en Excel 
Ejercicio 1 
 
Realice una macro que guarde en una base de datos de “Facturación de Llamadas”, los siguientes 
datos: 
 
Datos que cargara el usuario a través de un InputBox: 
9 Fecha actual, (utilice la función Now()) 
9 Región de la Sucursal desde donde se realizo la llamada 
ƒ Montevideo 
ƒ Maldonado 
ƒ Rocha 
ƒ Rivera 
9 País de Destino 
ƒ Argentina 
ƒ España 
ƒ EEUU 
ƒ Brasil 
ƒ Otros 
9 Minutos enteros de la llamada 
 
A partir de los anteriores datos que cargara el usuario al ejecutar la macro, se deberán calcular los 
siguientes campos automáticamente: 
9 Costo por minuto 
ƒ Argentina; 0,5 USD. 
ƒ España; 2 USD. 
ƒ EEUU; 1,5 USD. 
ƒ Brasil; 1 USD. 
ƒ Otros; 3 USD. 
9 Costo Total 
ƒ Costo Total = Costo por minuto * Minutos Enteros de la llamada 
9 Descuento 
ƒ Llamadas hechas desde la sucursal Rocha o Rivera, tienen un 5% de descuento. 
9 Precio Final  
ƒ Precio Final = Costo Total – Descuento 
 
La funcionalidad de dicha macro deberá incluir: 
¾ En la primer fila de la Base de datos, los títulos de cada variable. 
¾ La  posibilidad  de  utilizar  dicha  macro  en  repetidas  ocasiones  y  que  no  se  eliminen 
antiguos registros 
¾ La posibilidad de elegir a continuación de cada registro estas 2 opciones: 
ƒ Ingresar un nuevo registró a continuación.  
ƒ Dejar de ingresar nuevos registros. 
 
 
 
 

You might also like