manual excel avanzado 2010

198
MANUAL EXCEL AVANZADO BIOS

Upload: fcdarkman

Post on 06-Jun-2015

24.300 views

Category:

Education


30 download

TRANSCRIPT

Page 1: Manual excel avanzado 2010

MANUAL  

EXCEL  

AVANZADO  

BIOS  

Page 2: Manual excel avanzado 2010

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í:  

  

Page 3: Manual excel avanzado 2010

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.            

Page 4: Manual excel avanzado 2010

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. 

Page 5: Manual excel avanzado 2010

   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.         

Page 6: Manual excel avanzado 2010

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:  

  

Page 7: Manual excel avanzado 2010

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 

       

Page 8: Manual excel avanzado 2010

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.  

 

Page 9: Manual excel avanzado 2010

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  

Page 10: Manual excel avanzado 2010

 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.        

Page 11: Manual excel avanzado 2010

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.           

Page 12: Manual excel avanzado 2010

             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).         

Page 13: Manual excel avanzado 2010

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.                   

Page 14: Manual excel avanzado 2010

 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.          

Page 15: Manual excel avanzado 2010

 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:  

Page 16: Manual excel avanzado 2010

  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.       

Page 17: Manual excel avanzado 2010

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: 

Page 18: Manual excel avanzado 2010

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).  

Page 19: Manual excel avanzado 2010

  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.  

Page 20: Manual excel avanzado 2010

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. 

     

Page 21: Manual excel avanzado 2010

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.  

 

Page 22: Manual excel avanzado 2010

  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.       

Page 23: Manual excel avanzado 2010

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.  

Page 24: Manual excel avanzado 2010

  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.       

Page 25: Manual excel avanzado 2010

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.   

Page 26: Manual excel avanzado 2010

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)  

         

Page 27: Manual excel avanzado 2010

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.       

Page 28: Manual excel avanzado 2010

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: 

Page 29: Manual excel avanzado 2010

  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\ 

Page 30: Manual excel avanzado 2010

MÓDULO  

ANÁLISIS  

DE  

INFORMACIÓN   

 

Page 31: Manual excel avanzado 2010

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: 

Page 32: Manual excel avanzado 2010

  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.   

            

Page 33: Manual excel avanzado 2010

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 

Page 34: Manual excel avanzado 2010

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).  

Page 35: Manual excel avanzado 2010

  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.        

Page 36: Manual excel avanzado 2010

 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:   

 

Page 37: Manual excel avanzado 2010

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:   

         

Page 38: Manual excel avanzado 2010

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:    

        

Page 39: Manual excel avanzado 2010

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.          

Page 40: Manual excel avanzado 2010

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:  

Page 41: Manual excel avanzado 2010

   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:  

       

Page 42: Manual excel avanzado 2010

 

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:   

Page 43: Manual excel avanzado 2010

   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   

Page 44: Manual excel avanzado 2010

  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 

 

Page 45: Manual excel avanzado 2010

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:       

Page 46: Manual excel avanzado 2010

  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:  

Page 47: Manual excel avanzado 2010

   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.     

Page 48: Manual excel avanzado 2010

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):    

    

  

Page 49: Manual excel avanzado 2010

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.  

    

Page 50: Manual excel avanzado 2010

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.          

Page 51: Manual excel avanzado 2010

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: 

 

Page 52: Manual excel avanzado 2010

   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.  

Page 53: Manual excel avanzado 2010

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:     

Page 54: Manual excel avanzado 2010

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).       

Page 55: Manual excel avanzado 2010

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 

 

     

Page 56: Manual excel avanzado 2010

 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.   

Page 57: Manual excel avanzado 2010

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:   

    

Page 58: Manual excel avanzado 2010

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.  

Page 59: Manual excel avanzado 2010

   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  

          

Page 60: Manual excel avanzado 2010

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. 

Page 61: Manual excel avanzado 2010

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 

Page 62: Manual excel avanzado 2010

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.    

Page 63: Manual excel avanzado 2010

  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:  

 

 

Page 64: Manual excel avanzado 2010

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:   

   

Page 65: Manual excel avanzado 2010

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.   

Page 66: Manual excel avanzado 2010

   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:  

 

 

Page 67: Manual excel avanzado 2010

 

MÓDULO  

GRÁFICOS  

PERSONALIZADOS  Y  

FORMULARIOS  

Page 68: Manual excel avanzado 2010

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:  

Page 69: Manual excel avanzado 2010

  

 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).     

Page 70: Manual excel avanzado 2010

  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:  

 

Page 71: Manual excel avanzado 2010

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) 

             

Page 72: Manual excel avanzado 2010

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. 

Page 73: Manual excel avanzado 2010

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:  

  

Page 74: Manual excel avanzado 2010

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.  

Page 75: Manual excel avanzado 2010

   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:    

Page 76: Manual excel avanzado 2010

   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).  

Page 77: Manual excel avanzado 2010

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:   

Page 78: Manual excel avanzado 2010

  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:  

Page 79: Manual excel avanzado 2010

       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:  

Page 80: Manual excel avanzado 2010

  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:  

         

Page 81: Manual excel avanzado 2010

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:  

Page 82: Manual excel avanzado 2010

  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:  

   

Page 83: Manual excel avanzado 2010

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: 

Page 84: Manual excel avanzado 2010

  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. 

Page 85: Manual excel avanzado 2010

  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:                   

Page 86: Manual excel avanzado 2010

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:  

  

Page 87: Manual excel avanzado 2010

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. 

Page 88: Manual excel avanzado 2010

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:  

Page 89: Manual excel avanzado 2010

   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:  

  

Page 90: Manual excel avanzado 2010

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).  

Page 91: Manual excel avanzado 2010

 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:    

        

Page 92: Manual excel avanzado 2010

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:       

Page 93: Manual excel avanzado 2010

 

  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:  

Page 94: Manual excel avanzado 2010

  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. 

Page 95: Manual excel avanzado 2010

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 

Page 96: Manual excel avanzado 2010

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.  

Page 97: Manual excel avanzado 2010

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 

              

Page 98: Manual excel avanzado 2010

 

MÓDULO  

MACROS  

EN  

EXCEL  

Page 99: Manual excel avanzado 2010

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:  

  

Page 100: Manual excel avanzado 2010

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 

Page 101: Manual excel avanzado 2010

 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.  

Page 102: Manual excel avanzado 2010

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.  

 

Page 103: Manual excel avanzado 2010

 

  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.  

   

Page 104: Manual excel avanzado 2010

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.     

Page 105: Manual excel avanzado 2010

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.   

Page 106: Manual excel avanzado 2010

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.    

 

Page 107: Manual excel avanzado 2010

  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 

Page 108: Manual excel avanzado 2010

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 

Page 109: Manual excel avanzado 2010

 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, 

Page 110: Manual excel avanzado 2010

  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. 

Page 111: Manual excel avanzado 2010

  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. 

Page 112: Manual excel avanzado 2010

 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.  

Page 113: Manual excel avanzado 2010

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  

Page 114: Manual excel avanzado 2010

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  

Page 115: Manual excel avanzado 2010

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/ precisión simple) 

4 bytes  ‐3,402823E38 a ‐1,401298E‐45 para valores negativos; 1,401298E‐45 a 3,402823E38 para valores positivos 

Double (coma flotante/ precisión doble) 

8 bytes  ‐1,79769313486232E308 a ‐4,94065645841247E‐324 para valores negativos; 4,94065645841247E‐324 a 1,79769313486232E308 para valores positivos 

Currency (entero a escala) 

8 bytes  ‐922.337.203.685.477,5808 a 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 

Page 116: Manual excel avanzado 2010

9999 Object  4 bytes  Cualquier referencia a tipo Object String (longitud variable) 

10 bytes + longitud de la cadena 

Desde 0 a 2.000 millones 

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 caracteres) 

22 bytes + longitud de cadena 

El mismo intervalo que para un tipo String de longitud variable 

Definido por el usuario (utilizando Type) 

Número requerido por los elementos 

El intervalo de cada elemento es el mismo que el 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.  

Page 117: Manual excel avanzado 2010

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:  

Page 118: Manual excel avanzado 2010

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()  

Page 119: Manual excel avanzado 2010

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  

Page 120: Manual excel avanzado 2010

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 

Page 121: Manual excel avanzado 2010

 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  

Page 122: Manual excel avanzado 2010

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 

Page 123: Manual excel avanzado 2010

 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   

Page 124: Manual excel avanzado 2010

∙  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.  

Page 125: Manual excel avanzado 2010

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.      

Page 126: Manual excel avanzado 2010

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 

Page 127: Manual excel avanzado 2010

 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  

Page 128: Manual excel avanzado 2010

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" 

Page 129: Manual excel avanzado 2010

 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 

Page 130: Manual excel avanzado 2010

 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. 

Page 131: Manual excel avanzado 2010

 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.  

Page 132: Manual excel avanzado 2010

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"  

Page 133: Manual excel avanzado 2010

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  

Page 134: Manual excel avanzado 2010

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 

Page 135: Manual excel avanzado 2010

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 

Page 136: Manual excel avanzado 2010

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        

Page 137: Manual excel avanzado 2010

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 

Page 138: Manual excel avanzado 2010

 ‘ 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 

Page 139: Manual excel avanzado 2010

 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  

Page 140: Manual excel avanzado 2010

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  

Page 141: Manual excel avanzado 2010

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  

Page 142: Manual excel avanzado 2010

.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. 

Page 143: Manual excel avanzado 2010

 

∙  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  

Page 144: Manual excel avanzado 2010

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  

Page 145: Manual excel avanzado 2010

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.              

Page 146: Manual excel avanzado 2010

∙  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     

Page 147: Manual excel avanzado 2010

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.              

Page 148: Manual excel avanzado 2010

  

Repartidos  

Prácticos      

           

 

Page 149: Manual excel avanzado 2010

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. 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ó.

Exportaciones realizadas en el año 2000 en millones de

dólares

País de origen Mes Importe de

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

Page 150: Manual excel avanzado 2010

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.

Cedula Macros T.

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

Page 151: Manual excel avanzado 2010

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

Page 152: Manual excel avanzado 2010

EJERCICIO 4 – MODULO: FUNCIONES AVANZADAS

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

Extracto de ventas de la empresa "La traicionera SA"

Fecha

Número de contrato compra venta Vendedor Auto

Importe en 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 cuotas30/04/2005 1079 Paturzú Fiat Fitito 1200 La incobrable srl Entrega efect+20 cuotas

Page 153: Manual excel avanzado 2010

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 control

Trencito 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

Page 154: Manual excel avanzado 2010

Existencia Costo ( por ud, Kg. o

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

Page 155: Manual excel avanzado 2010

EJERCICIOS  

ANÁLISIS  

DE  

INFORMACIÓN  

Page 156: Manual excel avanzado 2010

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.

Page 157: Manual excel avanzado 2010

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.

Page 158: Manual excel avanzado 2010

EJERCICIO 3 DADA LA SIGUIENTE BASE DE DATOS:

ALUMNO SUCURSAL DOCENTE CLARIDAD AL

EXPLICAR

BUENA DISPOSICIÓN

BUEN USO DEL

PIZARRÓN

CONCEPTO GENERAL

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.

Page 159: Manual excel avanzado 2010

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%

Page 160: Manual excel avanzado 2010

EJERCICIO 7 (Filtros)

Copie esta tabla en cuatro hojas distintas

Distribuidor Zona Ventas 2003

Ventas 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.

         

Page 161: Manual excel avanzado 2010

EJERCICIOS  

GRÁFICOS  

PERSONALIZADOS  

Y  

FORMULARIOS 

Page 162: Manual excel avanzado 2010

Ejercicios Módulo de Gráficos Personalizados y Formularios. Ejercicio 1 Dada la siguiente tabla: Paises Años

Ventas Anuales

2004 2005 2006Australia 1680000 1230000 2000000Argentina 1200000 2250000 2100000Brasil 1800000 3500000 3200000EEUU 2000000 3500000 3400000Nueva Zelanda 1900000 2500000 3000000Uruguay 600000 1800000 1750000Mexico 1200000 1200000 1600000Paraguay 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.

Page 163: Manual excel avanzado 2010

Ejercicio 2 Dada la siguiente tabla:

Edad Poblacion

Grupo de edades

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 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

Tareas Fecha Inicio

Fecha Fin

Días Corridos

Compra de Terrenos 10/02/2006 20/02/2006 10Desmonte 21/02/2006 10/03/2006 17Confección de Plano 08/03/2006 31/03/2006 23Compra de Materiales 01/04/2006 18/04/2006 17Construcción 20/04/2006 24/08/2006 126Pintura 25/08/2006 31/08/2006 6Revisión 01/09/2006 15/09/2006 14Entrega 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.

Page 164: Manual excel avanzado 2010

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 Pais

Exp 2000

Exp 2001

Exp 2002

Exp 2003

Exp 2004

Exp 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.

Page 165: Manual excel avanzado 2010

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.                     

Page 166: Manual excel avanzado 2010

EJERCICIOS  

MACROS  

EN  

EXCEL 

Page 167: Manual excel avanzado 2010

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.

Page 168: Manual excel avanzado 2010

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.

Page 169: Manual excel avanzado 2010

Ejercicio 4 Generar una macro que guarde en una base de datos la siguiente información:

Nombre de Articulo Lote del Articulo Rubro:

Deberá figurar “Informática” solamente si se trata de un insumo de computación

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:

15% sobre Precio de costo para artículos de “Informática” con antigüedad menor a 1 año

12% sobre Precio de costo para artículos de “Informática” con antigüedad mayor o igual a 1 año

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.         

Page 170: Manual excel avanzado 2010

 

COMPENDIO  

PRUEBAS  

FUNCIONES  

AVANZADAS 

Page 171: Manual excel avanzado 2010

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.55603/01/2006 Luis Informatica Central Devolucion Contado $U 2.29405/01/2006 Marcelo Electrodomesticos Filial2 Venta Diferido 3 pagos $U 1.96609/01/2006 Esteban Alimentos Filial2 Venta Diferido 3 pagos $U 2.84311/01/2006 Andrea Informatica Filial 1 Venta Contado $U 5.46111/01/2006 Luisa Electrodomesticos Filial2 Venta Contado $U 5.68511/01/2006 Daniela Alimentos Filial2 Devolucion Contado $U 2.97111/01/2006 German Informatica Central Venta Contado $U 4.10112/01/2006 Luis Electrodomesticos Central Devolucion Contado $U 4.84712/01/2006 Marcelo Alimentos Filial2 Venta Diferido 3 pagos $U 5.03013/01/2006 Luisa Informatica Filial2 Venta Diferido 6 pagos $U 3.29616/01/2006 Daniela Alimentos Filial2 Devolucion Contado $U 1.65619/01/2006 German Informatica Central Venta Diferido 3 pagos $U 4.80020/01/2006 Luis Electrodomesticos Central Devolucion Contado $U 2.91323/01/2006 Marcelo Alimentos Filial2 Venta Contado $U 5.52625/01/2006 Luis Informatica Central Venta Diferido 6 pagos $U 3.96927/01/2006 Marcelo Alimentos Filial2 Venta Contado $U 4.76027/01/2006 Esteban Informatica Filial2 Venta Contado $U 1.49227/01/2006 Andrea Alimentos Filial 1 Devolucion Contado $U 5.28231/01/2006 Luisa Informatica Filial2 Venta Diferido 3 pagos $U 2.18931/01/2006 Daniela Alimentos Filial2 Venta Diferido 6 pagos $U 4.04203/02/2006 Daniela Informatica Filial2 Venta Contado $U 5.17603/02/2006 German Electrodomesticos Central Venta Contado $U 1.52807/02/2006 Luis Alimentos Central Devolucion Diferido 3 pagos $U 1.84607/02/2006 Esteban Informatica Filial2 Venta Diferido 6 pagos $U 2.70707/02/2006 Andrea Electrodomesticos Filial 1 Venta Contado $U 4.75410/02/2006 Luisa Alimentos Filial2 Venta Diferido 3 pagos $U 4.93615/02/2006 Daniela Informatica Filial2 Devolucion Contado $U 1.91120/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. 

Page 172: Manual excel avanzado 2010

A partir de la Cedula se deberán calcular automáticamente el resto de los datos.  Id Cliente Operación Importe3201506-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 Ventas

            

Id Cliente Nombre Apellido Edad Direccion Telefono3201506-7 Arturo Almeida 52 Rodo 2124 094-8738893501289-1 Fabiana Lopez 74 Bvr Artigas 3251 096-9438202650450-5 Leticia Gomez 48 Bvr España 1256 099-4357573456287-1 Karina Stirling 38 18 de julio 1311 099-4103761795461-8 German Torres 35 Mercedes 1565 094-2888542975468-6 Daniel Fernandez 22 Uruguay 6145 099-2391343197486-8 Milton Falcon 18 San jose 1245 094-7143562497682-3 Lourdes Gracia 62 Barbato 5475 096-5418622894657-1 Mario Victorino 18 T Gomensoro 2158 096-7872814132495-8 Anibal Troilo 21 Berro 9564 094-885641

Base de Datos Clientes

Page 173: Manual excel avanzado 2010

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 Mayorista02/02/2005 Almiron SA PC Pentium III Minorista03/02/2005 Foxy SRL TV 21 Mayorista08/02/2005 Almiron SA DVD Mayorista08/02/2005 Foxy SRL DVD Mayorista08/02/2005 Almiron SA Monitor LCD Minorista08/02/2005 Foxy SRL Mouse Optico Mayorista08/02/2005 Almiron SA PC Pentium II Minorista11/02/2005 Foxy SRL PC Pentium III Mayorista14/02/2005 Almiron SA TV 21 Minorista15/02/2005 Foxy SRL DVD Mayorista18/02/2005 Almiron SA DVD Mayorista21/02/2005 Foxy SRL Monitor LCD Minorista22/02/2005 Almiron SA Parlantes Minorista22/02/2005 Lypton SA PC Pentium II Mayorista24/02/2005 DRR Corp PC Pentium III Minorista25/02/2005 Almiron SA TV 21 Mayorista28/02/2005 Foxy SRL DVD Mayorista02/03/2005 Almiron SA DVD Mayorista04/03/2005 Foxy SRL DVD Minorista08/03/2005 Almiron SA Monitor LCD Mayorista11/03/2005 Lypton SA Mouse Optico Mayorista11/03/2005 DRR Corp Parlantes Mayorista14/03/2005 Almiron SA PC Pentium III Minorista17/03/2005 Foxy SRL Parlantes Mayorista18/03/2005 Almiron SA DVD Mayorista22/03/2005 Foxy SRL DVD Minorista25/03/2005 Almiron SA DVD Mayorista29/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:  

Page 174: Manual excel avanzado 2010

 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:53Produccion Lucila Vazquez 01/02/2006 7:47:29 6:23:34Compras Anibal Bass 02/02/2006 8:34:49 16:08:55Compras German Furia 03/02/2006 23:51:50 7:53:06Contable Ana Monje 03/02/2006 0:36:05 4:10:01Administrativo Eliana Boss 04/02/2006 0:54:53 14:32:46Produccion Andrea Guzman 04/02/2006 8:45:58 0:57:23Administrativo Luis Torres 05/02/2006 22:45:28 7:41:47Produccion Walter Lopez 05/02/2006 12:05:06 23:17:14Administrativo Hugo Prato 06/02/2006 20:29:17 15:53:44Contable Danila Estevanez 06/02/2006 7:25:26 3:32:26Produccion Julio Verdi 07/02/2006 4:19:15 12:20:00Ventas Juan Balverde 07/02/2006 0:00:45 5:30:01Produccion Esteban Samir 07/02/2006 1:18:58 2:43:36Administrativo Fernando Luisi 08/02/2006 19:14:38 3:32:01Produccion Milton Suarez 09/02/2006 18:06:46 3:47:05Produccion Diego Nion 10/02/2006 10:14:41 12:43:31Produccion Daniel Marquez 11/02/2006 5:26:43 0:34:42Ventas Miriam Rey 11/02/2006 1:25:57 23:08:40Produccion Maite Lupro 12/02/2006 17:26:05 1:33:24Ventas Damian Valente 12/02/2006 17:30:59 4:36:26Compras Jimena Duarte 13/02/2006 8:07:40 1:39:25Produccion Fernando Grassi 13/02/2006 11:17:42 13:52:30Produccion Luisa Ottospan 14/02/2006 17:53:43 11:28:25Ventas Mirta Rodriguez 14/02/2006 2:16:55 2:21:09Produccion Carla Dupuy 15/02/2006 11:49:50 21:56:34Produccion Ernesto Darlem 15/02/2006 7:11:00 2:14:06Contable Raul Abal 16/02/2006 23:02:17 23:30:23Produccion Lucila Vazquez 16/02/2006 16:29:22 20:38:22Compras Anibal Bass 16/02/2006 21:43:18 21:05:41Compras German Furia 17/02/2006 20:20:44 5:56:07Contable Ana Monje 20/02/2006 11:54:08 17:25:57Administrativo Eliana Boss 21/02/2006 0:18:22 3:57:12Produccion Andrea Guzman 22/02/2006 17:33:35 4:13:53Administrativo Luis Torres 22/02/2006 1:05:19 11:04:26Produccion Walter Lopez 22/02/2006 14:34:28 5:07:44Administrativo Hugo Prato 24/02/2006 17:09:20 6:23:08Contable Danila Estevanez 27/02/2006 17:24:19 18:06:56Produccion Julio Verdi 01/03/2006 22:12:16 4:44:52Ventas Juan Balverde 02/03/2006 9:34:09 20:30:08Produccion Esteban Samir 02/03/2006 2:52:58 4:32:00Administrativo Fernando Luisi 02/03/2006 8:20:40 14:07:48Produccion Milton Suarez 06/03/2006 15:45:04 8:10:43Produccion Diego Nion 06/03/2006 3:47:03 20:19:58Produccion Daniel Marquez 07/03/2006 8:25:54 9:54:43Ventas Miriam Rey 07/03/2006 8:02:41 16:04:13Produccion Maite Lupro 07/03/2006 23:02:35 3:08:58Ventas Damian Valente 07/03/2006 18:43:08 4:17:44

          

Empleado Fecha

Salario pagado hasta la fecha

Page 175: Manual excel avanzado 2010

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 DAdalberto Baltasar Camila DamianAlberto Bartolo Camilo DanielAlicia Basilio Carla DanielaAlison Beatriz Carlos DaniloAna Benjamin Carmen DanteAna Maria Bernardo Carol DarioAnastacia Berta Carolina DemetrioAntonio Betiana Cecilia DemostenesArmando Betina Celene DeniseArnaldo Brian Celeste DianaArturo Bruce Celia DinoAsencio 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:       

Page 176: Manual excel avanzado 2010

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: BrasilTipo de Operación: ImportacionSumaPromedioMaximoMinimo   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. 

                       

Page 177: Manual excel avanzado 2010

Base de datos:  Fecha Tipo de Operación País Importe01/01/2005 Exportacion Brasil 125015/01/2005 Exportacion Argentina 78001/02/2005 Importacion EEUU 135015/02/2005 Exportacion Australia 154001/03/2005 Importacion Paraguay 123015/03/2005 Importacion Mexico 50001/04/2005 Importacion China 145015/04/2005 Exportacion España 75001/05/2005 Exportacion Argentina 80015/05/2005 Importacion Brasil 110001/06/2005 Exportacion Argentina 100015/06/2005 Exportacion Argentina 75001/07/2005 Exportacion EEUU 120015/07/2005 Importacion EEUU 100001/08/2005 Exportacion EEUU 58015/08/2005 Exportacion España 80001/09/2005 Importacion Brasil 80015/09/2005 Importacion Brasil 75001/10/2005 Importacion España 45015/10/2005 Importacion Argentina 80001/11/2005 Exportacion Mexico 78015/11/2005 Exportacion Paraguay 45001/12/2005 Exportacion China 110015/12/2005 Importacion Argentina 800    Ejercicio 3  Factura Fecha Facturacion Productos Empresa Fecha de EntregaA001 01/01/2005 VHS La TardiaA002 02/01/2005 DVD La TempraneraA004 05/01/2005 TV 20' La TempraneraA005 07/01/2005 TV 21' La TempraneraA011 14/01/2005 DVD La TardiaA013 16/01/2005 VHS La TardiaA015 19/01/2005 TV 29' La TardiaA019 21/01/2005 VHS La TempraneraA021 23/01/2005 DVD La TempraneraA021 27/01/2005 DVD La TardiaA023 31/01/2005 DVD La TardiaA105 01/03/2005 VHS La TempraneraA205 02/04/2005 VHS La TempraneraA568 03/07/2005 TV 21' La TardiaB209 04/09/2005 TV 29' La TempraneraB524 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. 

Page 178: Manual excel avanzado 2010

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  

Nº de Circuito Desde Hasta Direccion101 1 1000 Guana 2015151 1001 5000 18 de Julio 2374201 5001 9000 21 de septiembre 2323251 9001 12000 Rodo 3111301 12001 15000 Mercedes 2173501 15001 20000 Uruguay 2158

Plan Circuital

  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 SocioNº de CircuitoDireccion    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”.                         

Page 179: Manual excel avanzado 2010

 

COMPENDIO  

PRUEBAS  

ANÁLISIS  

DE   

INFORMACIÓN 

Page 180: Manual excel avanzado 2010

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. 

Page 181: Manual excel avanzado 2010

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.    

                      

Page 182: Manual excel avanzado 2010

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. 

   

Page 183: Manual excel avanzado 2010

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%. 

                                     

Page 184: Manual excel avanzado 2010

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%). 

Page 185: Manual excel avanzado 2010

 

COMPENDIO  

PRUEBAS  

GRÁFICOS  

PERSONALIZADOS 

Page 186: Manual excel avanzado 2010

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 EEnero $U 150.000 $U 157.487 $U 125.868 $U 90.834 $U 52.481Febrero $U 271.139 $U 299.764 $U 163.736 $U 244.286 $U 127.685Marzo $U 310.874 $U 352.540 $U 194.513 $U 246.763 $U 210.303Abril $U 324.147 $U 465.699 $U 350.106 $U 361.981 $U 248.181Mayo $U 338.982 $U 489.592 $U 382.835 $U 536.825 $U 349.743Junio $U 362.883 $U 525.612 $U 529.520 $U 554.831 $U 455.638Julio $U 473.192 $U 671.261 $U 704.240 $U 693.014 $U 489.846Agosto $U 533.822 $U 802.015 $U 875.955 $U 766.389 $U 552.640Septiembre $U 653.734 $U 924.318 $U 963.160 $U 905.500 $U 722.182Octubre $U 701.385 $U 1.018.397 $U 1.089.458 $U 978.142 $U 773.879Noviembre $U 776.790 $U 1.162.809 $U 1.140.784 $U 1.072.761 $U 809.750Diciembre $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 

Page 187: Manual excel avanzado 2010

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”. 

Page 188: Manual excel avanzado 2010

• 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”.  

Total0 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 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.087Hombres 29.827 1.155 590 2.699 2.076 2.598 2.736 8.053 5.083 3.685 1.152Mujeres 39.809 1.121 566 2.743 2.303 2.982 3.221 9.945 7.430 6.563 2.935

Grupo de edades

 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 7501600 7601800 8501650 800

200 75840 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).    

Page 189: Manual excel avanzado 2010

Ejercicio Nº 4 (Opcional 2)  Para el siguiente proyecto de campaña publicitaria se cuenta con la siguiente información:  Tareas Fecha Inicial Fecha FinalPlanificacion 01/03/2006 15/03/2006Revision Primaria 16/03/2006 22/03/2006Pruebas de desarrollo 25/03/2006 15/04/20061º Proceso Productivo 16/03/2006 15/05/20062º Proceso Productivo 01/05/2006 15/06/20063º Proceso Productivo 15/05/2006 30/06/2006Evaluacion de Resultados 01/07/2006 05/07/2006Replanteo 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.       

   

                

Page 190: Manual excel avanzado 2010

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).  

Page 191: Manual excel avanzado 2010

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”.  

Martin 150 180 230Alicia 320 350 350Jaime 260 280 300Gustavo 460 620 750Elisa 750 820 600Juan 120 375 400

2002

Ventas Anuales

Vendedores 2000 2001

  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. 

  

Page 192: Manual excel avanzado 2010

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  Sexo 

Población de Artigas según sexo y grupo etario 

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.        

Page 193: Manual excel avanzado 2010

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 FinalPlanificación  01/11/2005 15/11/2005Contratación de Personal temporal 16/11/2005 30/11/2005Campañas Piloto  17/11/2005 20/11/2005Campañas Focalizadas  18/11/2005 30/12/2005Folleteria Barrial  01/12/2005 15/04/2006Folleteria no especializada  01/12/2005 15/01/2006Grafica especializada  01/01/2006 25/01/2006Radio  15/01/2006 15/02/2006Televisión  25/02/2006 15/03/2006    

Page 194: Manual excel avanzado 2010

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.      

                                   

Page 195: Manual excel avanzado 2010

  

       

 

COMPENDIO  

PRUEBAS  

MACROS  

EN  

EXCEL 

Page 196: Manual excel avanzado 2010

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.           

  

Page 197: Manual excel avanzado 2010

Prueba Final Macros en Excel 

Ejercicio 1  Realice una macro que guarde en una base de datos de “Liquidaciones de Sueldo”, los siguientes datos: 

Nombre y Apellido del Empleado  Cargo en la Empresa 

Cadete  Auxiliar  Administrativo  Encargado  Gerente 

Fecha de Pago  Días de Ausencia 

Además deberá agregarse en la base de datos nuevas columnas referidas a:  Sueldo Nominal  Aportes  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. 

Page 198: Manual excel avanzado 2010

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: 

Fecha actual, (utilice la función Now())  Región de la Sucursal desde donde se realizo la llamada 

Montevideo  Maldonado  Rocha  Rivera 

País de Destino  Argentina  España  EEUU  Brasil  Otros 

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: 

Costo por minuto  Argentina; 0,5 USD.  España; 2 USD.  EEUU; 1,5 USD.  Brasil; 1 USD.  Otros; 3 USD. 

Costo Total  Costo Total = Costo por minuto * Minutos Enteros de la llamada 

Descuento  Llamadas hechas desde la sucursal Rocha o Rivera, tienen un 5% de descuento. 

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.