You are on page 1of 233

MANUAL

EXCEL

AVANZADO

BIOS
Manual Excel Avanzado

BIOS

Módulo Funciones Avanzadas

Primer Ejemplo – Funciones simples

Dada la siguiente planilla:

Supongamos que la nota final se calculará basándonos en el promedio de notas que ob


tuvo 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 dentr
o del
promedio tendríamos que:

=PROMEDIO (B2; D2)

En el caso de que queramos tomar rangos discontinuos esto se aplicaría de la siguie


nte forma:

=PROMEDIO (B2:D2; H2:J2)

La planilla hasta ahora quedaría así:


Además en el caso de copiar esta fórmula, podríamos realizarlo mediante la opción c
lá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 t
ener que
evaluar el conjunto de opciones de nuestro problema (conviene comenzar desde el niv
el 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 ca
sos, y
concatenar hasta 7 funciones SI (tenemos este límite).

De la misma manera que anteriormente lo hicimos, podemos copiar la fórmula sin prob
lemas. No
olvidemos que hasta ahora hemos dejado de lado el tema de Referencias Relativas y A
bsolutas ya
que no hizo falta fijar ninguna de las celdas a copiar.
Vamos a armar un cuadro adicional anexo a la planilla para implementar otras funcio
nes:

En este cuadro calcularemos cuantos fueron los alumnos que obtuvieron como califica
ción
Aprobado, Parcial y Reprobado. A su vez calcularemos con respecto al total de alumn
os, 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 argume


nto
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 c
eldas que se
evaluan tienen contenido numérico.

En el caso de querer hacer un recuento por apellidos:

=CONTARA(A2:A8)

Aquí aplica perfectamente ya que esta función nos permite evaluar celdas no vacías.
Pasando a otro tema veremos a continuación alguna aplicación adicional de la funció
n SI.

En la siguiente planilla se evaluará la calidad de los productos según su diámetro.


Si el diámetro
está comprendido entre 10 y 20 su calidad será A, y de lo contrario será B.

Vemos que en este caso no solo se aplicó la función SI, sino que se combinó con la
opción Y
(también podriamos haber aplicado la opción O), de la siguiente manera:

=SI(Y(opcion 1; opcion 2;…..); valor verdadero; valor falso)

=SI(O(opcion 1; opcion 2;…..); valor verdadero; valor falso)

En el caso de combinar con la opción Y, recordemos que estaríamos hablando de que s


i 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 s
olo si no se
cumple ninguna de las opciones se aplicaría el valor falso.
Pasemos ahora a un nuevo ejemplo y continuamos en la aplicación de funciones:

En este caso aplicamos una función de búsqueda, que se denomina BUSCARV.


Recordemos que la forma de utilizar esta función de búsqueda es la que se demuestra
a
continuación:

=BUSCARV(valor buscado; matriz; número de columna; [ordenamiento])

En el caso particular de la planilla

=BUSCARV(A13; A2:C8; 3; FALSO)

Vemos aquí que el valor buscado hace referencia a la celda donde el usuario cargará
el dato en el
que se basará la búsqueda. Este dato no debe ser parte de la matriz de búsqueda (A2
:C8) si no,
esto no tendría sentido en la búsqueda. Luego se carga la matriz, al hacer referenc
ia 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 q
ue es la del
stock (columna con dato a extraer) y por último como argumento OPCIONAL el orden de
ntro 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 signifi
cativo al
momento de aplicar la coincidencia en la búsqueda. Si este argumento es FALSO y la
busqueda no
encuentra el dato preciso retorna un error. Por ejemplo:
En este caso al no encontrar el Artículo A5565 devuelve un error del tipo #N/A, o d
ato 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 VERDA
DERO
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 inform
ación, y es por
esto que vamos a introducir el tema VALIDACIÓN DE REGISTROS.

VALIDACIÓN DE DATOS

En el caso de la planilla que presentamos anteriormente, vamos a comenzar este tema


de
validación tratando de que el usuario se limite a agregar artículos con STOCK entre
0 y 300, y no
pueda introducir un número menor a cero, ni mayor a 300.

Veamos como operar:

1.
Pintamos las celdas de stock (celdas en las que vamos a dar la regla de validación)
2. Luego vamos al menú de datos – validación
3. Establecemos la regla de validación a operar
4. Opcionalmente definimos mensaje entrante
5. Opcionalmente definimos mensaje de error
Veamos el paso en cada pantalla:
En este primer paso marcamos las celdas de Stock y luego nos dirigimos al menú de D
atos –
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 c
eldas y este
número deberá estar comprendido entre 0 y 300.

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

En este caso nos posicionamos en la celda donde la persona va a realizar la búsqued


a del stock de
determinado artículo (A13), y damos una regla de validación para que solo pueda ing
resar 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 det
erminó la regla
de validación).

Veamos como en la pantalla que se muestra a continuación, se muestra el mensaje ent


rante:

Aquí vemos el mensaje entrante al posicionarnos sobre la celda


Un comentario con respecto a esto, es el hecho de poder trabajar en las reglas de v
alidació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 respec
tivo 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 in


tegra en forma
automática al cuadro combinado en la celda que tiene la validación.
DEFINIR NOMBRES A RANGOS

En el siguiente ejemplo veremos como aplicamos en lugar de una referencia a una lis
ta 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ñal


amos 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 ARTICUL
OS 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 c
on
nombre, eliminar rangos con nombre, y también modificarlos.

Veamos que en dicha pantalla podemos asignar el nombre, y en donde define Se refier
e a:
podremos determinar la dirección de las celdas que vamos a tener dentro del rango.
En este sentido esta pantalla nos da mejor manipulación sobre los rangos, ya que no
solo
podremos asignarles nombres a determinadas celdas o rangos, sino modificar la direc
ción a la que
hacen referencias, como también eliminar determinados nombres que ya no sean de apl
icación
para nuestra planilla.

En el caso de querer asignar un rango con nombre, en una regla validación, esto que
daría:

Vemos que aquí como origen de la lista determinamos el rango con nombre que denomin
amos
ARTICULOS. (Nota: Recordar el signo = puesto que no queremos hacer referencia a un
texto sino a
un rango).
FORMATO CONDICIONAL

Este tema a tratar será interesante para aplicar dinamismo en cuanto al formato de
celdas.
También nos servirá como aviso en determinadas planillas en las que busquemos que l
a 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 po
r debajo de las
70 unidades.

Señalamos en primer lugar el rango al que le vamos a aplicar el formato condicional


, en este caso
el rango formado por las celdas que determinan el stock.
En segundo lugar vamos al menú de formato – formato condicional.
En el menú de formato condicional, en este caso la condición depende del Valor de l
a Celda, y a
este valor lo podemos condicionar con operadores lógicos (<, >, <=, >=, =) por lo t
anto 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 celd


a es menor a
70, y en caso de ser verdadera esta prueba lógica, aplicamos el formato, dándole un
a 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 condi
ciones 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á man


ejar 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 uni
dades y por
último si el artículo tiene 100 o mas unidades en su stock la celda se pintará de c
olor de fondo
verde.
En caso de que queramos aplicar dicho formato condicional con estas mismas condicio
nes pero
deseamos marcar toda la fila cuando se de las condiciones propuestas, esto lo harem
os
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 con
dición la
dependencia de una Fórmula, y dentro del rango donde se evalúa la fórmula, establec
imos una
referencia a la celda C2.

Nótese que la celda C2 la reverenciamos aplicando en forma fija la columna y variab


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


s en este
formato, pero siempre con la limitación de hasta 3 condiciones aplicadas. Como vemo
s a
continuación:
Un comentario adicional es el hecho de que para eliminar alguna de las condiciones
propuestas en
el formato condicional, simplemente volvemos a seleccionar el área a la que le quer
emos 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 qu


e celdas se
aplicó el formato condicional.
En el siguiente ejemplo se mostrará esta herramienta aplicada con fórmulas de Excel
, y la idea será
que automáticamente queden marcados los cheques vencidos a la fecha actual (la fech
a 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 defini
mos 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 fo
rma
automática la fecha actual del sistema.

BÚSQUEDAS DE INFORMACIÓN

Mencionamos en un ejemplo anterior que mediante la función BUSCARV podiamos realiza


r
búsquedas en matrices, y extraer de las mismas un dato de determinada columna en pa
rticular.
En este ejemplo veremos no solamente la aplicación de BUSCARV, sino también la func
ió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 a
rtículo el
stock del mismo.

Mediante el pegado especial realizaremos un trasporte de dicha matriz, de la siguie


nte manera:
1. Seleccionaremos mediante el Mouse toda la matriz de datos (A1:C9)
2. Botón Derecho – Copiar
3. Seleccionaremos la celda E1
4. Botón Derecho – Pegado Especial
5.
En las opciones seleccionaremos – Trasponer (como lo vemos en la pantalla a
continuación)

Veamos como queda transpuesta la matriz original:

El tema de transponer la matriz también nos servirá para ver la aplicación de la fu


nció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 u
n código de
artículo, nos obtenga la descripción del mismo (fila 2 de la matriz).
Por otro lado, una de las restricciones importantes que hay que destacar tanto en e
l BUSCARV
como en el BUSCARH es el hecho de no contar con la posibilidad de basarme en un dat
o buscado y
querer obtener una columna a la izquierda en el orden de la matriz, o una fila haci
a 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 busca


do) 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 es
te 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á indic
ando que la
coincidencia debe ser exacta con el dato buscado.
El resultado de la función COINCIDIR será 5, que es la posición del dato buscado en
la lista de
valores. O sea la devolución siempre me la da en el número de índice del dato busca
do 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 índi
ce 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 s
iguiente forma:

La función INDICE, me extrae el dato de una matriz de

acuerdo a la ubicación de este dato en dicha matriz.

Mientras tanto la función COINCIDIR lo que está

haciendo es buscando el dato en una matriz de

información, y buscando la posición de este dato, con


una coincidencia exacta.
FUNCIONES DE FECHA Y HORA

Aplicaremos en este ejemplo las funciones de fecha y hora que nos provee Excel.
Para comenzar, si yo quisiera obtener los días corridos en que se implementó cada u
na 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 fech
a actual,
supongamos 17/10/2007, en realidad el contenido REAL de la celda será el número 393
72.

Basta con cambiar el formato de la celda, a un formato numérico y vemos el resultad


o.

Entonces, si yo necesito saber los días que tomó cada tarea simplemente puedo resta
r las celdas
de columna C y columna B, y tengo el resultado esperado. (NO OLVIDAR ASIGNAR FORMAT
O
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 te


ngo que
calcular días habiles entre la fecha de inicio y fecha de fin. Para utilizar este t
ipo de funciones,
Excel nos provee de COMPLEMENTOS. En este caso debemos habilitar el COMPLEMENTO de
HERRAMIENTAS PARA ANÁLISIS, de la siguiente manera:

En el menú de Herramientas – Complementos

tendremos la posibilidad de ver los complementos

que tenemos y podremos marcar los que


necesitemos.

Recordar que todos los complementos que

marquemos quedarán habilitados de ahora en más

en TODAS las sesiones que iniciemos con Excel,


dentro de dicha PC.
En este caso habilitamos el COMPLEMENTO de HERRAMIENTAS PARA ANÁLISIS, que es el qu
e 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 tod


as 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, es


o 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órmu
la se debe
contemplar este rango como FIJO.
En el siguiente ejemplo vamos contemplar los días para la entrega de determinados p
edidos.

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 cant
idad de DIAS
HÁBILES, aquí el tema cambia, y aplicaremos para esto la función: DIA.LAB(FECHA INI
CIO; DIAS
LABORALES; [FERIADOS])

Lo que nos implementa dicha función es la posibilidad de que a cierta fecha se le a


greguen o se le
descuenten cierta cantidad de días hábiles, agregando como argumento opcional los f
eriados.

Recordar que, para estos casos, también puede resultar común querer visualizar a pa
rtir de
determinada fecha, el día de la semana a la que corresponde. Para ello tenemos la f
unción
DIASEM, que, a partir de una fecha nos dice qué día de la semana corresponde.
Veamos que la función DIASEM, nos devuelve un número correspondiente al día de la s
emana 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 D
IASEM, vamos
a Personalizada, y en el Tipo, podremos optar por DDDD para que nos de en letras el
día
correspondiente de la semana.

Nota: si hubiéramos escrito DDD, nos daría la abreviación del día de la semana.
Trabajando con HORAS

Veamos en la siguiente planilla en la que

ingresamos los horarios de entrada y salida de un


empleado a la empresa.

No se presentan problemas, al restar en cada día de

la semana las horas de salida y las de entrada.

Ahora al momento de calcular el total de horas que

este empleado realizó en toda la semana, veamos lo


que sucede:

En este caso aplicamos la función SUMA para tomar

en cuenta el rango de horas, y poder obtener el total

de horas. Pero Excel muestra un resultado que no es


del todo correcto.

En realidad el cálculo internamente lo realiza

correctamente pero el resultado lo expresa en días, y

por lo tanto esto sería 1 día, 19 horas, y 14 minutos.

Lo único que hacemos es cambiar el formato de la

celda, para que refleje el resultado en TOTAL de

horas. Veamos como realizar este paso:

Al momento de calcular el pago a realizar, tomo la celda del total de horas, multip
lico por 24 para
pasar el resultado a horas, y luego por el precio hora. Recordar que mas allá del c
ambio de
formato que hicimos, internamente Excel sigue reconociendo dicha celda en termino d
e días y no
en termino de horas.
BUSCAR OBJETIVO Y SOLVER

Estas dos herramientas nos servirán en determinadas ocasiones en las que queramos r
ealizar
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 resuelv
en 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 conti
ene 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 calcula

automáticamente la herramienta)
En este caso, yo podría haber resuelto el sistema perfectamente mediante una regla
de tres
simple, pero en casos más complejos como el que vemos a continuación el cálculo de
la
estimación sería posible con mayor esfuerzo:

En este caso planteamos un ejemplo donde se otorga un

préstamos de 20000 a una tasa anual del 8% y donde se

pagarán 12 cuotas. La función pago como vemos nos calculará

de forma automática la cuota a pagar, que en dicho caso será

de 1739 (Nota: el valor resultante será negativo ya que las

funciones financieras toman los egresos con este signo).

Ahora, veamos que sucede si en este caso quisiéramos

estimar cual sería el monto del préstamo que podríamos

obtener si se mantienen las condiciones, pero sabemos que

podemos pagar una cuota máxima de 1500. Para esto


aplicamos la Herramienta Buscar Objetivo de la siguiente manera:

El sistema nos resuelve y dirá que mediante el pago de una cuota de 1500 y mantenie
ndo las
condiciones, llegaremos a obtener un préstamo de 17243.

La herramienta siempre trabaja con una variable a calcular y una fórmula cuyo resul
tado 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 co
ndiciones,
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 h


ay que
habilitarlo, dentro del menú Herramientas – Complementos, y tildar la casilla de ve
rificación en
caso de que dicha herramienta no estuviere previamente instalada en la PC que estem
os
manejando.
SOLVER

Esta herramienta es similar a Buscar Objetivo con la salvedad de contar con la vent
aja 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 anterio
rmente. Se trata
de un restaurante que vende varios tipos de Café, entre ellos Café común, Café Cort
ado, Café
Capuchino. Aplicamos en el menú Herramientas – Solver la configuración de dicho sis
tema.

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 estimad
o para dicha
celda.

En la referencia de cambiando las celdas establecemos las celdas que se van a calcu
lar
automáticamente por la resolución del sistema, en el caso nuestro marcaremos median
te 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 agrega
r a la celda B10
que contiene el total de tazas vendidas de café capuccino, que el limite es que dic
ha celda
contenga un valor menor a 50. Podemos agregar múltiples restricciones ya que cada v
ez 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 camb
iar, 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 pantal
la:
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 R
estaurar
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íst


ica,
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 en


cuentra en
C:\Archivos de Programa\Microsoft Office\Office10\SAMPLES\
MÓDULO

ANÁLISIS

DE

INFORMACIÓN
Módulo: Análisis de Información

En este módulo se verá la aplicación de herramientas volcadas al análisis de inform


ación dentro de
Excel.
En primer lugar, con un ejemplo se aplicará el uso de los diferentes tipos de filtr
os que nos provee
la herramienta.
Veamos el siguiente ejemplo:

En esta planilla aplicaremos el primer tipo de

filtro, que será el Autofiltro y que nos permitirá

aplicar filtros automáticos en la planilla de una


forma muy sencilla.

Para aplicarlo bastará con posicionarnos en

cualquier celda de nuestra base de datos y

luego mediante el menú de Daots – Filtro –

Autofiltro comenzaremos la aplicación del


mismo.

La planilla nos quedará de la siguiente manera:

Veamos en primer lugar, que cuando

nosotros marcamos en el menú de datos –

filtros – autofiltro, este actúa como un

subrayado, donde podemos tildar y destildar

esta opción, en caso que queramos deja de

utilizar el Autofiltro en algún momento.

El autofiltro nos da esta opción del cuadro

desplegable en el título de cada campo de la


base de datos.

Bastará con pinchar en el cuadro desplegable

para poder seleccionar el criterio a aplicar


para filtrar la información sobre dicho campo.

Por ejemplo, si en esta planilla yo quisiera

solo ver las ventas del vendedor Díaz, solo

seleccionaré Díaz en las opciones del campo


Vendedores, y esto me aplicará automáticamente el filtro con dicho criterio.

A continuación se da el ejemplo de cómo aparece la planilla con el filtro aplicado:


En el caso anterior el sistema en forma automática oculta las filas del resto de ve
ndedores y deja
solo visibles las ventas del vendedor seleccionado.

Podemos a su vez aplicar otro filtro en forma simultanea sobre otro de los campos c
omo por
ejemplo el campo de Región, solo bastará con seleccionar de dicho campo la opción d
e la región
que necesitaremos visualizar y la herramienta aplicará este filtro en forma totalme
nte dinámica.

QUITAR AUTOFILTROS – RESTABLECER BASE DE DATOS

En caso de que en algún momento, apliquemos varios filtros de acuerdo a varios camp
os 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 m
enú de datos
– filtros – mostrar todos (esto muestra nuevamente todos los datos originales de la
base de datos
pero mantiene el autofiltro.
CRITERIOS PERSONALIZADOS

También muchas veces se puede dar el caso de que el criterio para filtrar la inform
ación no este
disponible en forma directa sobre el campo que queramos filtrar, y por lo tanto, de
l 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ña
lan que el
filtro será tomar únicamente Ventas 2005 con valores mayores o iguales a 80000 y me
nores o
iguales a 100000. Podemos ver a su vez que existen múltiples criterios que podemos
aplicar sobre
dicho campo.

La planilla luego de aplicar dicho filtro ser verá de la siguiente manera:

Un detalle sumamente importante a tomar en cuenta es el hecho de que si en dicha pl


anilla
quisiéramos en algún momento obtener la suma de ventas del 2005 pero únicamente de
los datos
visibles no podemos aplicar la función =SUMA (C2:C15), puesto que tomaría todas las
filas (tanto
visibles como no visibles).

Para este tipo de casos aplicamos la función =SUBTOTALES (9;C2:C15)

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

Núm_función Función
1 PROMEDIO
2 CONTAR
3 CONTARA
4 MAX
5 MIN
6 PRODUCTO
7 DESVEST
8 DESVESTP
9 SUMA
10 VAR
11 VARP

Veamos en el ejemplo dado, los resultados de la función SUMA y SUBTOTALES aplicados


para
dicho rango de celdas (C2:C15).
NOTA: También podríamos haber utilizado el botón ∑
Dicho botón aplica automáticamente la función correcta según encuentre celdas ocult
as 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 vendedore
s 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 l
etra s.
Hay una limitación en la aplicación del autofiltro y es, justamente la consigna par
a pasar al
siguiente tema. No podemos mediante el autofiltro aplicar criterios que comparen ca
mpos 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 o
pción de
autofiltro encendido. Por lo tanto si tenemos el autofiltro, debemos apagarlo yendo
a Datos –
Filtro – Autofiltro.

Para aplicar el filtro avanzado vamos a Datos – Filtro – Filtro Avanzado, y luego:
Veamos que como criterios aplicamos la comparación entre la celda C2 y D2, donde so
lo
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 ce
lda 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 f
iltro directamente
en la base de datos.

En la siguiente pantalla se expone como el filtro aplica dicho criterio directo sob
re 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 SU
BTOTALES.

Para restaurar la base de datos volvemos al menú Datos – Filtro – Mostrar Todo, com
o se presenta
en la siguiente pantalla:
En el caso de querer aplicar filtros en forma simultánea, tendremos que armar dicho
s criterios en
la misma línea. En el siguiente ejemplo veremos la aplicación de un filtro donde ve
mos las ventas
2005 superiores a las del 2006, pero solo de la Región Sur, veamos no solo la aplic
ación del filtro,
sino el armado de dichos criterios:

Aquí veamos que como Rango de Criterios marcamos F6:G7, ya que los criterios en est
e caso son
2, uno que aplica sobre el campo Región, donde se extrae solo datos que coincidan c
on 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 20
05 superan a
las del 2006:
Veamos que sucede si los criterios son los mismos pero no respetamos el tema de que
sean en la
misma línea:

Aquí se puede ver que aplicamos un filtro donde la Región es SUR, pero no hace al m
ismo tiempo
comparativo de ventas entre el año 2005 y 2006, mientras que para el resto de venta
s de otras
Regiones SÍ aplica el criterio de comparar las ventas 2005, y que dichas ventas sea
n superiores a
las del año 2006.

Podemos seguir aplicando criterios, pero siempre que apliquemos varios criterios, t
ienen que estar
armados diferenciando los campos de la base de datos, pero también en el mismo orde
n que
aparecen dichos campos en la base de datos.
Veamos ahora en un ejemplo donde apliquemos este mismo filtro pero con una extracci
ón de una
sub base de datos para no modificar la base original:

En la pantalla que nos aparece en este caso marcamos la opción de Copiar a otro lug
ar, 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 g
enerar 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ítul
os de los
campos que van a formar dicha sub base de datos:
Aquí marcamos en el cuadro, en el renglón Copiar a: F11:H11 (celdas donde se encuen
tran los
títulos de la sub base de datos que se va a armar con los datos filtrados)

A continuación vemos el resultado final de dicho filtro:


Tablas Dinámicas

Utilizando la base de datos del ejemplo anterior generaremos nuestra primera tabla
dinámica.
Esta herramienta nos permitirá cruzar de diversas formas información de una base de
datos, tanto
sea una base armada en Excel, como también en fuentes de datos externas (como archi
vos de
texto, bases de Access, SQL, DBase, etc.)

Para comenzar nos guiaremos mediante el Asistente, que encontramos en Datos – Infor
me 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 d
e los datos que
se van a tomar en la tabla dinámica, y en dicha pantalla en la parte inferior elegi
mos el tipo de
informe a obtener, y que puede ser Tabla Dinámica o Gráfico Dinámico:
En esta primera pantalla nosotros elegimos las opciones que vienen como predetermin
adas ya que
la base de datos nuestra proviene de una lista que armamos previamente en Excel y e
l informe de
salida es efectivamente una tabla dinámica.

Presionamos en el botón siguiente para pasar a la segunda pantalla:

El Rango es el que se forma por toda nuestra base de datos, recordar que en el caso
de querer
tomar solo determinados campos, mediante la tecla control presionada podemos marcar
solo
dichos campos para que formen parte de nuestra tabla dinámica.

Pasemos con el botón siguiente a la tercera pantalla de nuestro asistente


En esta tercera pantalla del asistente, podremos elegir la ubicación de nuestra tab
la dinámica, la
cual podemos establecer en una hoja de cálculo nueva, o también en una hoja de cálc
ulo
existente. Tomemos en cuenta que en el caso de que marquemos hoja de cálculo existe
nte,
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 exi
sta lugar vacío y
disponible en dicha planilla de cálculo.

Veamos el resultado que obtenemos al dar finalizar (en este caso seleccionamos la o
pción de
volcar la tabla dinámica en una hoja nueva):

Toda tabla dinámica se formará por 4 cuadrantes que serán:

• Campos de Fila
• Campos de Columna
• Campos de Datos
• Campo de Página
Podremos arrastrar cualquiera de nuestros campos de la base de datos que tenemos en
la lista
que aparece a la derecha hacia el área de nuestra tabla dinámica donde queramos dis
poner 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 tene
mos en la
base de datos.

En este primer ejemplo vamos a pedir el total de ventas del 2005 para cada uno de l
os
vendedores:

Aquí lo que hicimos fue arrastrar (con el botón izquierdo presionado) el campo de v
endedores 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 dic
ha á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 regr
eso a la
Lista de campos de tabla dinámica, y trasladar a continuación, el campo de Región n
uevamente al
área de fila:
Aquí vemos que quitamos el campo de vendedores, y ahora vamos a colocar el campo de
Región,
solo volvemos a arrastrar dicho campo al área de filas y nos queda como vemos a con
tinuación:

En dicho ejemplo vemos que lo que logramos en este último caso es totalizar las ven
tas del 2005
para cada una de las regiones.

Pero volviendo al caso anterior podríamos querer obtener ambos resultados, o sea la
s ventas de
2005 de cada vendedor y también por región, como presentamos en la siguiente pantal
la:
En este caso trasladamos el campo de Vendedores al área de FILA y el campo de Regio
nes 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 cuad


ro 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 desp
liegue las
ventas de los vendedores Morales y Vega, que son los que dejamos tildados en el cua
dro
desplegable.
Si quisiéramos obtener además de las ventas del 2005, también las del 2006, simplem
ente
agregamos este último campo en el área de datos:

Vemos que aquí obtenemos dos campos en el área de datos, y tenemos los totales tant
o 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 (S
UR por
ejemplo):
Cada filtro aplicado se refleja inmediatamente en el resultado de nuestra tabla din
ámica.

ACTUALIZACIONES EN TABLAS DINÁMICAS

Apliquemos en principio el primer tipo de actualización que se puede dar:



Cambiando datos en la base de dato original. Tomemos algún dato de la base de datos

original y modifiquemos este dato sustancialmente para que veamos reflejado este
cambio en la tabla dinámica.

Veamos que en este caso se modificó el primer registro de la base de datos, sin emb
argo cuando
regresamos a la tabla dinámica, esta permanece exactamente igual que como estaba a
ntes de
realizar el cambio.
Para que el cambio se realice y se vea reflejado en la tabla dinámica deberemos dar
clic en el
botón de actualizar (botón con el signo de !) en la barra de herramientas de tabla
dinámica.

En caso de no tener dicho botón disponible podremos recurrir al menú VER – BARRA DE
HERRAMIENTAS – TABLAS DINÁMICAS, y luego dar clic sobre este botón pare ver el camb
io
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 agrega


mos
nuevos registros en la base de datos original.
ACTUALIZACIÓN DE TABLAS DINÁMICAS (CON INSERCIÓN DE DATOS EN LA BASE DE DATOS
ORIGINAL)

En este ejemplo vamos a agregar una línea adicional en la base de datos, haremos re
ferencia 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 en
contramos que
presionando el botón de actualizar en la barra de herramientas de tabla dinámica ta
mpoco nos
refleja el cambio.

Para que el cambio se refleje en nuestra tabla dinámica realizaremos el siguiente p


rocedimiento:

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ám
ica,
y allí elegimos Asistente:
Cuando presionamos en la opción de asistente, este nos despliega la última pantalla
del asistente
de tablas dinámicas, al presionar el botón de atrás vemos que nos permite redimensi
onar la base
de datos original:

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

Agreguemos a continuación en nuestra base de datos original una nueva columna que n
os refleje
el país a donde se realizó cada una de las transacciones con lo que la base de dato
s 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 ta
bla dinámica:
Agreguemos dicho campo en el área de Página y veamos el efecto que resulta de esto:

Al agregar dicho campo en el área de página podremos resumir la tabla dinámica de a


cuerdo a
dicho campo. En el siguiente caso, al seleccionar un país (por ejemplo Argentina) v
eamos 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 A
RGENTINA
(que actúa como filtro de nuestra tabla dinámica).
CAMBIOS SOBRE LAS OPERACIONES DE CAMPOS DE DATOS

En este caso seguiremos trabajando con la base de datos de ejemplo pero vamos a apl
icar 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 2
005,
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ámi
ca y
presionamos el botón derecho del Mouse, y allí seleccionamos la opción de
CONFIGURACIÓN DE CAMPO
2.
En la pantalla que nos aparece podremos seleccionar el tipo de operación que aplica
remos
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 dich
a
operación sobre el campo de Ventas 2005.

También podremos en dicho cuadro, sobre la línea de Nombre, ajustar el nombre a ref
lejar de
dicho campo.

Tenemos la opción también de agregar el mismo campo un sin numero de veces para que
este
refleje operaciones diferentes.
Por ejemplo, si necesito que la tabla dinámica refleje la suma de ventas 2005 pero
además, nos
provea del promedio de ventas 2005 para cada vendedor. Arrastramos dos veces el cam
po 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, co


mo por
ejemplo desplegar el % de ponderación de cada venta, con respecto al total de venta
s del año
como podemos ver a continuación:
En la pantalla de configuración de campo:

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

No olvidemos que podríamos presentar los importes de ventas 2005, y luego arrastrar
nuevamente el campo para realizar esta configuración para que además de los importe
s refleje
también los porcentajes de ventas.
TABLAS DINÁMICAS CON IMPORTACION DE DATOS DESDE ACCESS

Veamos en un ejemplo los pasos que debemos cumplir si queremos armar una tabla diná
mica
para analizar información de una base de datos que la empresa tiene en Microsoft Ac
cess.

Comenzamos el asistente de la misma manera que lo hicimos antes, mediante el menú d


e Datos –
Informe de Tablas y Gráficos dinámicos
En la primera pantalla del asistente, elegimos como opción FUENTE DE DATOS EXTERNA:

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

Presionando el botón de Obtener Datos, seleccionamos el Origen de Datos (es el soft


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

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

Aquí nos refleja las diferentes tablas de las que está compuesta la base de datos,
y de la que
podremos tomar determinadas tablas, completas, por ejemplo la de CLIENTES, o tambié
n
podremos presionar en el signo + para desplegar los campos de los que está compuest
a la tabla.
En el siguiente ejemplo tomaremos determinados campos de las tablas de Clientes, Pr
oductos,
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 d


e acuerdo a uno
o varios criterios que seleccionemos.
En la siguiente pantalla podremos seleccionar un orden determinado a establecer, de
acuerdo a
un campo que seleccionemos, en forma ascendente o descendente.

En la última pantalla seleccionamos la opción que aparece en forma predeterminada,


y
devolvemos los datos directamente a Microsoft Excel, y le damos siguiente en la pan
talla del
asistente:
Llegamos en esta etapa final, a la misma pantalla, que en el capítulo anterior dond
e tendremos el
esqueleto de la tabla dinámica:

Aquí podremos armar la tabla dinámica simplemente ajustando los campos y llevándolo
s al área
de fila, área de columnas, y al área de datos.

Recordemos que desde aquí podemos lograr lo mismo que ya realizamos en el capítulo
anterior
con datos de una base de datos de Excel:
GRAFICOS DINÁMICOS

Para generar una tabla dinámica, y a partir de la misma, reflejar un gráfico dinámi
co, 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áf
ico dinámico
que se desprende de la tabla dinámica generada anteriormente.
Dentro del Gráfico dinámico podremos ajustar y cambiar de posición cualquiera de lo
s campos,
pero siempre tomando en cuenta que al cambiar el gráfico dinámico, también cambiará
en forma
simultanea la tabla dinámica de la cual depende.

El Gráfico dinámico tiene a su vez 4 áreas diferenciadas, y son:

1. Campos de categorías (en este caso vendedores)


2. Campos de serie (en este caso no tenemos)
3. Campos de página (en este caso no incluimos ninguno aún)
4. Campos de datos (en este caso el campo Ventas 2005)

En el siguiente ejemplo vemos el caso de tener un campo en cada posición:


MÓDULO

GRÁFICOS

PERSONALIZADOS

FORMULARIOS
Módulo de Gráficos Personalizados y Formularios

Dentro de este módulo se verán diferentes opciones al momento de graficar en Excel


así como
opciones de gráficos poco utilizadas, y casos prácticos donde apliquemos usos de gr
áficos para
diferentes actividades.

Comencemos con un gráfico sencillo en el que se pretenda gráficas exportaciones de


un producto
a diversos países a través de 4 años.

Nos basaremos en la siguiente planilla:

Para comenzar nos posicionamos en cualquiera de los datos de nuestra planilla y vam
os 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 po


sibilidad de
seleccionar la categoría del gráfico que generaremos y dentro de cada categoría tam
bién
podremos seleccionar la subcategoría de dicho gráfico, como vemos en la pantalla a
continuación:
Veamos que tenemos un botón de Presionar para ver muestra, que, dependiendo en que
categoría nos posicionamos nos va a dar una imagen preliminar del gráfico que gener
aremos 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 a
utomá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 apare
cerá una serie que
no contiene información (veamos en la muestra).
En este caso corrigiendo el área a graficar y tomando desde la fila 2, o sea marcan
do 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 predeter
minada Excel
marca las serien como columnas, y por lo tanto cada año formará una serie de nuestr
o gráfico, en
cambio si intercambiamos y pasamos a la opción de Series en FILAS, se verá de la si
guiente
manera:
En este caso lo que estamos representando son las ventas de cada uno de los años (1
, 2, 3,4) y
dentro de cada año las series están representadas por las exportaciones a cada país
.

A su vez si damos clic en la solapa de SERIE en esta misma pantalla veremos lo sigu
iente:

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 ra
ngo
donde encontramos los títulos de las categorías (en este caso los años)
Presionamos en siguiente y pasamos al 3er paso del asistente:

Aquí completamos en la solapa de Títulos los títulos de cada sector del gráfico, en
primer lugar el
Título General del gráfico, luego completamos el Título de Eje X, y por último el t
itulo 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 dic
hos ejes en
el gráfico.
Al pasar a la solapa de Líneas de División:

El efecto que produce las casillas de verificación en esta solapa de categorías es


el de agregar
referencias para identificar los valores en el gráfico, en un gráfico de líneas, y
a nivel estadístico
esto es fundamental para tener una referencia mas precisa de los valores que vemos
en el gráfico.

Pasando a la solapa de Leyenda:


Aquí seleccionamos la ubicación de la leyenda de referencia de series dentro del gr
áfico así como
también podemos destildar la casilla de verificación en caso de querer ocultar la l
eyenda 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 co
mplejo
para poder entender correctamente tanta sintaxis dentro del gráfico, y muchas veces
hace que el
grafico quede realmente complejo para un análisis posterior.
En esta última solapa, si nosotros pretendemos, dentro de la pantalla del gráfico a
gregar 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 Most
rar 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 entonce


s, la
ubicación que le daremos al gráfico:

Podemos ubicar el gráfico tanto en una hoja nueva, como también podemos ubicarlo co
mo un
objeto dentro de la hoja activa, o la hoja que seleccionemos.

Finalmente, vemos el gráfico dentro de nuestra hoja, el cual podremos seleccionar,


y desde los
bordes, tal cual como si fuera una imagen cambiar sus dimensiones:
AREAS DEL GRÁFICO

El gráfico está formado básicamente por diversas áreas:

• Área del gráfico (el fondo blanco que vemos dentro del gráfico)
• Área de trazado (el fondo gris en el que posicionamos las series)
• Título del gráfico (en nuestro caso exportaciones)

Series (en nuestro caso las columnas, que forman las exportaciones a cada país)
• Eje de categorías (eje x)
• Eje de valores (eje y)
• Leyenda (cuadro que tiene la representación de la series)
• Título del eje de categorías (Años en nuestro caso)
• Título del eje de valores (Importes en nuestro caso)

En el caso de querer cambiar cualquiera de las áreas del grafico recordar que simpl
emente nos
posicionamos sobre dicha área y con el botón derecho nos desplegará las opciones pr
opias del
área marcada.

Para poder recurrir a la modificación de cualquiera de los pasos que recorrimos med
iante 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áfic
o)
• 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, eje
s)

Ubicación (paso 4 del asistente – donde seleccionamos la ubicación deseada para el
gráfico).
Modificaciones de Gráficos

Para modificar el área de gráfico simplemente damos doble clic sobre dicha área y n
os 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 ef
ectos que
apliquemos sobre el fondo del gráfico, entre los que podemos:
Aplicar degradado, con diferentes efectos del mismo, con un color, o dos, con efect
os de
transparencias, y además con diversos estilos de sombreado.

Podemos aplicar también texturas:


Así como también indicarle con el botón de Otra Textura, y buscar el archivo donde
se encuentre
la textura que queramos darle al área de gráfico.

Podremos además de seleccionar un color, y efecto de degradado aplicar una trama en


particular:
Por último si nos parece conveniente, también podremos ubicar como fondo del gráfic
o una
imagen, seleccionando la misma desde su ubicación en el disco:
Este mismo tipo de efectos se puede aplicar sobre cualquier área del gráfico, por e
jemplo también
sobre las series, obteniendo entonces un gráfico como el que se refleja a continuac
ión:

Si bien no son los mismos datos que en el ejemplo visto anteriormente la idea es re
flejar no solo
los cambios del área de gráfico sino también del área de trazado, y a su vez del ár
ea 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 poblacion


al a
partir de la siguiente planilla:

En la misma encontramos un total de la muestra, en este caso del barrio MALVIN y se


parado 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 repres
ente a un
grupo etario diferente.

El resultado final se muestra a continuación y luego veremos el paso a paso a segui


r para obtener
dicho gráfico:
Para llegar a este resultado final, comenzaremos por generar con los datos un gráfi
co de barras
seleccionando el rango a graficar (en este caso desde A1:K5). Allí vamos a Insertar
– Gráfico:
Seleccionamos el gráfico de tipo BARRAS – primer subtipo que es el de BARRA AGRUPAD
A, luego
le damos clic en el botón siguiente:

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

En nuestro siguiente paso:

Aquí definimos los nombres tanto del gráfico general como también de los ejes.
Este fue el resultado final que obtuvimos, ahora veamos los criterios que tenemos q
ue 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 valore
s
correspondientes al sexo femenino, e incluimos esta serie dentro del gráfico de la
siguiente
manera:
Aquí incluimos dentro de la categoría mujeres, el rango B6:K6 en lugar del rango B5
:K5 que tenía
anteriormente valores negativos.

Recordar para reasignar las direcciones de dicho rango accedemos clickeando con el
botón
derecho sobre el área de gráfico (fondo blanco del gráfico) y seleccionando como op
ció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 aline
adas 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, selecci
onamos la opción
de Formato de Serie de Datos, y en la solapa Opciones veremos justamente dos opcion
es:
En dichas opciones cambiaremos el dato de Superposición, el cual pasaremos a un val
or 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 ed
ad:
Esto lo logramos presionando con el botón derecho del Mouse sobre el área de gráfic
o y luego
vamos a Opciones de Gráfico y luego en la solapa de Eje desmarcamos la casilla de v
erificación
correspondiente al Eje de Categorías X, como vemos a continuación:

Vemos que el efecto inmediato de esta acción es quitar la referencia al eje X.


En este siguiente paso vamos a cambiar el formato de Eje categorías con la posibili
dad 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 apar
ezcan sin
signo (ni + ni ‐).

Aplicando los retoques de Formato de área, degradados, vistos en el capítulo anteri


or, llegamos a
una imagen similar del gráfico que debíamos generar:
Gráficos con Doble Eje

Dada la siguiente planilla, generaremos un gráfico de líneas que la represente:

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


sultado:
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, seleccionam
os 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 da
mos 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 cad
a una de las
series haga referencia a un eje diferente, presionamos sobre el eje secundario agre
gado, y con el
botón derecho seleccionamos la opción Formato de Ejes – en la pestaña de Escala – C
ambiaremos
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 referenci
as a ejes
diferentes del gráfico (una al eje primario, y otra al secundario).
Gráficos de GANTT

Dada la siguiente planilla, generaremos un gráfico de GANTT que nos muestre la dura
ción de las
tareas, y nos de la opción de adaptarse automáticamente ante cambios en fechas de i
nicio, o
duración de las mismas.

Este gráfico es muy usado, en proyectos para encontrar puntos críticos, así como ta
mbié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 fi
n de cada tarea,
y mediante una formula calculamos los días que demoramos en el desarrollo de cada t
area.

A partir de allí generamos un gráfico de barras, y llegaremos al siguiente gráfico:


Formularios

Este conjunto de herramientas nos aportará en Excel, un estilo gráfico que nos perm
itirá manejar
la planilla desde un entorno visual más ameno.

En el siguiente ejemplo veremos como utilizar la barra de herramientas, personaliza


ndo 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 Her
ramientas –
Formularios, como vemos a continuación:

Esta opción nos desplegará la siguiente barra con la que trabajaremos en los siguie
ntes pasos:
La primera herramienta que aplicaremos será la de Cuadro Combinado para las propues
tas de
diferentes tipos de habitaciones con las que cuenta el hotel. Para esto, vamos a co
locar 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 selec


cionar nos
permitirá dibujar dicho cuadro sobre la planilla:
Para que dicho cuadro despliegue las opciones, de tipos de habitaciones, daremos cl
ic derecho
sobre el cuadro combinado que dibujamos, y seleccionamos la opción de Formato de Co
ntrol.

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

La vinculación con la celda la haremos con una celda arbitraria (H1), en ella mas a
delante
visualizaremos el número de índice o posición que el usuario seleccione del cuadro
combinado.
Por último en este cuadro las líneas de unión verticales representan la cantidad de
datos que se
van a visualizar por pantalla que se muestre en el cuadro combinado.

Veamos que al seleccionar en este caso la habitación SINGLE, aparecerá el número 1


en la celda
H1 que fue la celda con la que vinculamos el cuadro combinado. En caso que el usuar
io seleccione
la habitación doble, se reflejará el número 2 en H1, y número 3 en caso de seleccio
nar la SUITE.

Para que automáticamente podamos determinar el precio de la habitación por DIA, uti
lizaremos
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 formul
arios, 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 dec
ir que el
mínimo de días de estadía será 1, y el máximo de días de estadía será 30. La celda
con la cual
vincularemos será la celda H2 (celda arbitraria).

En la celda B5, aplicaremos como fórmula una referencia a la celda H2 ya que esta c
ontendrá 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 valo
res 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 nuestr


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


te marcada y cero
en caso de que no este marcada, basándose en el valor de la celda H3 que será verda
dero 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 t


ambién cada
uno lo puede adaptar a las necesidades de la planilla que este implementando.
En el siguiente caso para las formas de pago, dibujaremos un cuadro de lista, y ent
onces 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 utiliz


ados en este
ejemplo son útiles en diferentes casos como son:

• Etiqueta
• Cuadro de grupo
• Botón
• Botón de opción
• Barra desplazamiento
MÓDULO

MACROS

EN

EXCEL
Módulo Macros en Excel

Concepto General:

Macro:

Un programa escrito o grabado por el usuario que almacena una serie de comandos de
Microsoft
Excel que pueden utilizarse posteriormente como un único comando. Mediante las macr
os
pueden automatizarse las tareas complejas y pueden reducirse el número de pasos nec
esarios
para realizar las tareas que se ejecutan con más frecuencia. Las macros se graban e
n el lenguaje de
programación de Visual Basic para Aplicaciones de Microsoft. También pueden escribi
rse 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, e


n primer
lugar escribiremos Hola en la celda A1, luego pondremos Negrita y por último pintar
emos de
fondo amarillo dicha celda.

Para esto, comenzaremos por encender la grabadora, para que capte cada una de las t
areas que
vamos realizando:

La grabadora la encendemos mediante el menú de Herramientas – Macro – Grabar nueva


macro,
como vemos a continuación:
Nos aparecerá la siguiente pantalla para configurar la grabación de dicho macro:

A cada macro que grabemos le podemos asignar un nombre, en forma predeterminada la


grabadora asignará Macro1, Macro2….

Luego podremos también asignar un Método Abreviado, para que el usuario que desee e
jecutar
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 Lib
ro Personal,
que es algo así como una biblioteca de macros personales que podemos ejecutar en cu
alquier
archivo de Excel que deseemos el día de mañana.

En la descripción podemos dar pautas precisas de determinados detalles de las tarea


s que
ejecutará nuestro macro.

Cuando configuramos dicha pantalla, al presionar Aceptar, la grabadora de Macros ge


nerará un
código VBA por cada una de las tareas que vayamos realizando de ahora en mas (no ca
pta los
movimientos del Mouse, ni del cursor que realicemos, pero si el ingreso a cualquier
a 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 e
tapa
anterior.

Una de las posibilidades que tenemos es ejecutar el macro mediante el menú de Herra
mientas –
Macro – Macros
Seleccionamos el macro a ejecutar y luego presionamos sobre el botón ejecutar tal c
ual aparece
en la pantalla a continuación:

En esta pantalla no solo podemos elegir el macro a ejecutar, y luego realizar la ej


ecución sino que
también en caso que queramos dar un método abreviado bastará con seleccionar el mac
ro 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 q


ue lo hace
sobrescribiendo el contenido anterior de dicha celda.

Podríamos bien crear un macro que nos permita borrar para luego volver a ejecutar.
En el caso que deseemos cambiar el método abreviado volveremos a repetir el procedi
miento 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 t
ambién
tenemos la posibilidad de insertar un botón desde la barra de formularios, y asigna
rle 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 co


n
la cual estemos trabando.

Es importante acotar que dicho botón quedará sobre la planilla y no formando parte
de la misma en una celda en particular.

Una vez que dibujemos dicho botón de comando, al soltar el Mouse nos permitirá
asignarle un macro al mismo.

En el caso de que hayamos soltado el Mouse y nos quedemos sin asignar un macro al

mismo, podemos mediante el botón derecho sobre el botón dibujado seleccionar la


opción de Asignar Macro.
A dicho botón podremos cambiarle el nombre, modificarle el tamaño cambiar el texto
que aparece
dentro del botón.

Recordar que para seleccionar el botón simplemente con el CTRL presionado damos cli
c 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 mac
ro 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 selecc
ionar 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 m
acros 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 DERECH
O DEL
MOUSE, y seleccionamos la opción PERSONALIZAR.
Nos aparecerá la siguiente pantalla:

En la solapa Comandos, buscaremos la categoría Macros y a la derecha en la lista de


comandos
veremos dos tipos que serán: Personalizar elemento de menú y Personalizar botón, es
ta última
opción será la que utilicemos para arrastrar el icono (mediante el botón izquierdo
del Mouse
presionado) hacia un lugar de la barra de herramientas estándar de Excel.

El botón nos quedó en la barra de herramientas y simplemente cuando presionemos por


primera
vez en dicho botón nos permitirá asignarle el macro correspondiente.
En caso de que nosotros queramos modificar el macro y de ahora en más deseemos camb
iar la
estructura, para que lo aplique a un conjunto de celdas, o para que nos escriba dif
erentes palabras
por cada celda, no nos quedará otra que acudir al editor de Visual Basic para Aplic
aciones 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ódulo
s 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 q


ue
anteriormente la grabadora fue escribiendo automáticamente mientras nosotros realiz
ábamos las
tareas.
CÓDIGO VBA

El código VBA se maneja en idioma inglés. En general el lenguaje básicamente se man


eja orientado
a eventos.
Cada objeto se separa mediante el . (Punto) de las diferentes propiedades que pose
e.

Conceptos esenciales.

Clase: Es una agrupación de objetos con las mismas características y propiedades.

Objeto: Son elementos que se caracterizan por poseer propiedades en común.

Método: Cualquier operación pasible de ser ejecutada sobre un objeto.

Ejemplo: Clase: Medios de Transporte (generalización)


Subclase: Autos (especialización)

Variable:

Un lugar de almacenamiento con nombre que puede contener cierto tipo de datos. Cada
variable
tiene un nombre único que la identifica. Nombres de variable deben
comenzar con un carácter
alfabético, deben ser únicos dentro del mismo ámbito, no deben contener más de 255
caracteres
y no pueden contener un punto.

Cada macro que vayamos escribiendo en el editor de visual Basic, debe comenzar con
la sentencia
Sub, y terminar con la sentencia End Sub.
Veamos en nuestro primer ejemplo. Dentro de la carpeta Módulos tenemos nuestro Mod
ulo 1 y
dentro del mismo desarrollamos dos macros.

Nuestro Macro1 fue grabado mediante el uso de la grabadora para macros y luego come
nzamos
mediante la orden Sub el macro denominado Primero que simplemente escribe la palabr
a 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 u
n 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 d
e algunos
de los objetos que nos encontraremos en Excel como WorkSheet (Objeto hoja de cálcul
o) o Range
(Objeto casilla o rango de casillas).
Un objeto Range está definido por una clase donde se definen sus propiedades, recor
demos que
una propiedad es una característica, modificable o no, de un objeto. Entre las prop
iedades de un
objeto Range están Value , que contiene el valor de la casilla , Column y Row que c
ontienen
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 d
eterminada,
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 pue
de 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 co
che, 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_co
mbustible,
mover_pistones, etc.

En Excel, el objeto WorkSheets tiene la propiedad Range que es un objeto, Range tie
ne la
propiedad Font que es también un objeto y Font tiene la propiedad Bold (negrita). T
enga esto muy
presente ya que utilizaremos frecuentemente Propiedades de un objeto que serán tamb
ién
Objetos.

Dicho de otra forma, hay propiedades que devuelven objetos, por ejemplo, la propied
ad 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 func


ión son
entidades de programación que sirven para agrupar instrucciones de código que reali
zan una
acción concreta.
Para insertar un módulo active opción del menú Insertar/ Módulo. Se activará una nu
eva 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 sir


ven para
llevar a cabo alguna tarea específica. Un procedimiento empieza siempre con la inst
rucción
Sub Nombre_Procedimiento

Y termina con la instrucción End Sub.

A continuación crearemos un procedimiento para poner el texto "Hola" en la casilla


A1.

Ejemplo 1

Sub Primero

Range("A1").Value = "Hola"

End Sub

Observe el código.

Range("A1").Value="Hola"

En esta línea estamos indicando que trabajamos con un objeto Range. Para indicarle
que nos
referimos a la casilla A1, encerramos entre paréntesis esta referencia (más adelant
e verá otra
forma de referirnos a las casillas). De este objeto, indicamos que queremos estable
cer un nuevo
valor para la propiedad Value, observe que para separar el objeto de su propiedad u
tilizamos la
notación punto.
Recuerde que el conjunto Range es un objeto que pende del objeto WorkSheets, así po
r 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 den
tro de la
casilla A1 de la hoja activa, mientras que en el segundo es en la casilla A1 de pri
mera hoja ( del
conjunto de hojas).

La segunda notación es más larga, pero también más recomendable ya que se especific
an todos
los objetos. En muchas ocasiones se pueden omitir algunos objetos precedentes, no l
e
aconsejamos hacerlo, sus programas perderán claridad y concisión.

Si desea hacer referencia a la hoja activa puede utilizar ActiveSheet, así, el prim
er 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 p


ropiedad (objeto)
Activecell de WorkSheets. Así para poner "Hola" en la casilla activa de la hoja act
iva seria,
Sub Primero

ActiveSheet.ActiveCell.Value = "Hola"

End Sub

Para terminar con este primer ejemplo. WorkSheets están dentro del Objeto WorkBooks
(libros
de trabajo) y WorkBooks están dentro de Application.

Application es el objeto superior, es el que representa la aplicación Excel. Así, e


l 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 WorkShe
ets, 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 pue
de 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 ej


emplo 1.
Además de escribir "Hola" en la casilla A1 de la celda A1, la pondremos en negrita
y le daremos
color al texto.
Para ello utilizaremos las propiedades Bold y Color del objeto Font.

Sub Segundo

ActiveSheet.Range("A1").Value = "Hola"
ActiveSheet.Range("A1").Font.Bold = True
ActiveSheet.Range("A1").Font.Color = RGB(255,0,0)

End Sub

True.

True, que traducido es verdadero, simplemente indica que la propiedad Bold está act
ivada. 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 aplica


r 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 con
tinuación
guardaremos ese valor en esa casilla.

Observe que el valor que ingrese el usuario debe guardarse en algún lugar para pode
r 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 r


eserva para
guardar datos, la forma general de declarar una variable es

DIM variable AS tipo.


Siendo variable el nombre que se asigna a la misma y Tipo el tipo de datos que se g
uardarán
(números, texto, fecha, booleanos,...).

En nuestro ejemplo, declararemos la variable de tipo String (tipo texto), y lo hare


mos 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 tecle
ados 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íne
a 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, conc


retamente 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, concre


tamente es la
Posición para la parte superior. Si se omite el cuadro se presenta verticalmente ce
ntrado a la
Pantalla.

Archivo Ayuda: Es el archivo que contiene la ayuda para el cuadro. Parámetro opcion
al.
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 l


a 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 pregu
ntará al usuario
mediante un segundo Inputbox sobre que casilla quiere entrar el valor del primer In
putbox. Serán
necesarias dos variables, una para guardar la casilla que escoja el usuario y otra
para guardar el
valor.

Option Explicit

Sub Entrar_Valor

Dim Casilla As String


Dim Texto As String

Casilla = InputBox("En que casilla quiere entrar el valor", "Entrar Casilla")

Texto = InputBox("Introducir un texto " & Chr(13) & "Para la casilla " & Casilla ,
"Entrada de datos")

ActiveSheet.Range(Casilla).Value = Texto
End Sub

La sentencia Option Explicit.

En visual basic no es necesario declarar las variables, por ejemplo, en el programa


anterior se
hubiera podido prescindir de las líneas

Dim Casilla As String


Dim Texto As String

A pesar de ello, le recomendamos que siempre declare las variables que


va a utilizar, de esta
forma sabrá cuales utiliza el procedimiento y qué tipo de datos guarda
cada una, piense que a
medida que vaya aprendiendo, creará procedimientos cada vez más complicados y que r
equerirá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 e
n 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 qu
e 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 ut


ilizar 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, Tex
to y Testo
son dos variables diferentes, como no se ha declarado ninguna ni se ha utilizado Op
tion Explicit
Visual Basic no da ningún tipo de error y ejecuta el programa. Pruebe el siguiente
módulo e
intente ejecutarlo.

Option Explicit
Sub Entrar_Valor

Dim Texto As String

Texto = InputBox("Introducir un texto " & Chr(13) & "Para la casilla A1", "Entrada
de datos")
ActiveSheet.Range("A1").Value = Testo

End Sub

Observe que el programa no se ejecuta, al poner Option Explicit, forzamos a que se


declaren todas
las variables. Visual Basic detecta que la variable Testo no ha sido declarada y as
í lo indica
mostrando Error, entonces es cuando es más fácil darnos cuenta del error que hemos
cometido al
teclear y cambiamos Testo por Texto. Ahora imagine que el error se produce en un pr
ograma de
cientos de líneas que necesita otras tantas variables.

Tipos de datos en Visual Basic para Excel. (Tabla copiada de la ayuda en


línea de Visual Basic para Excel).

Tipo de datos Tamaño Almacenamiento Intervalo


Byte 1 byte 0 a 255
Boolean 2 bytes True o False
Integer 2 bytes ‐32.768 a 32.767
Long(entero largo) 4 bytes ‐
2.147.483.648 a 2.147.483.647
Single (coma flotante/ 4 bytes ‐3,402823E38 a ‐1,401298E‐
45 para
precisión simple) valores negativos;
1,401298E‐
45 a 3,402823E38 para
valores positivos
Double (coma flotante/ 8 bytes ‐1,79769313486232E308 a ‐
precisión doble) 4,94065645841247E‐324
para valores negativos;
4,94065645841247E‐324 a

1,79769313486232E308 para valores


positivos
Currency (entero a 8 bytes ‐
922.337.203.685.477,5808 a
escala) 922.337.203.685.477,5807
Decimal 14 bytes +/‐

79.228.162.514.264.337.593.543.950.335
sin punto
decimal; +/‐

7,9228162514264337593543950335 con

28 posiciones a la derecha del signo


decimal; el

número más pequeño distinto de cero


es+/‐
0,0000000000000000000000000001
Date 8 bytes
1 de enero de 100 a 31 de diciembre de
9999
Object 4 bytes
Cualquier referencia a tipo Object
String (longitud 10 bytes + longitud de Desde 0 a 2.000 millones
variable) la cadena
String(longitud fija) Longitud de la cadena
Desde 1 a 65.400 aproximadamente
Variant(con números) 16 bytes
Cualquier valor numérico hasta el
intervalo de un tipo
Double
Variant(con 22 bytes + longitud de
El mismo intervalo que para un tipo
caracteres) cadena String de longitud
variable
Definido por el Número requerido por
El intervalo de cada elemento es el
usuario (utilizando los elementos mismo que el
Type)
intervalo de su tipo de datos.

Conversión de Tipos de datos.

Copie el siguiente Ejemplo. Simplemente se piden dos números, se suman y se guardan


el la casilla
A1 de la hoja activa.

Ejemplo 5

Option Explicit

Sub Sumar()

Dim Numero1 As Integer


Dim Numero2 As Integer
Numero1 = InputBox("Entrar el primer valor", "Entrada de datos")
Numero2 = InputBox("Entrar el primer valor", "Entrada de datos")
ActiveSheet.Range("A1").Value = Numero1 + Numero2

End Sub

Ejecute el procedimiento y ponga respectivamente los valores 25 y 25. Observe que t


odo 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 "Ho
la". Observe
que el programa se detiene indicando un error en el tipo de datos. Efectivamente, o
bserve que la
función InputBox devuelve siempre datos tipo String, en el primer ejemplo no ha hab
ido 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 adec
uada para los
datos que se desean guardar.
Para solucionar estos problemas se deben utilizar funciones de conversión de tipo.
Estas
funciones, como su nombre indica, convierten datos de un tipo a otro, de String a I
nteger, 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. S


i 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 qu
e 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 v
eces resulta
mucho más funcional que utilizando únicamente range. Para referirnos al rango A1:B8
,
pondremos:
Range(Cells(1, 1), Cells(8, 2)).Value = "Hola"

Otra forma interesante de Cells es la siguiente:

Range("A5:B10").Cells(2, 1).Value = "Hola"

Pondrá en la celda A6 el valor "Hola", observe que en este ejemplo Cells comienza a
contar filas y
columnas a partir del rango especificado en el objeto Range.

Variables de Objetos.

Una variable objeto sir ve para hacer referencia a un objeto, esto significa que po
dremos acceder a
las propiedades de un objeto e invocar a sus métodos a través de la variable en lug
ar de hacerlo
directamente a través del objeto. Posiblemente no se utilice demasiado esta clase d
e 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 sig
uiente,

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 es
a variable de
la misma forma que trabajaría directamente sobre el objeto.

Sub obj()
Dim R As Range
Set R = ActiveSheet.Range("A10:B15")
R.Value = "Hola"
R.Font.Bold = True

End Sub

Estructuras condicionales.

Ahora que ya ha experimentado con unos cuantos objetos y propiedades, nos detendrem
os a
estudiar las estructuras condicionales. Las estructuras condicionales son instrucci
ones 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 cond
ición, si esta se
cumple (es cierta), se ejecutan todas las sentencias que están encerradas en el blo
que, si no se
cumple la condición, se saltan estas sentencias. Esta estructura en Visual Basic ti
ene la sintaxis
siguiente:

If Condición Then
Senténcia1
Senténcia2
.
.
SenténciaN
End If

Ejemplo 6
Entrar una cantidad que representa el precio de algo por el teclado con la instrucc
ión InputBox y
guardarlo en la celda A1 de la hoja activa. Si el valor entrado desde el teclado (y
guardado en A1)
es superior a 1000, pedir descuento con otro InputBox y guardarlo en la casilla A2
de la hoja
activa.

Calcular en A3, el precio de A1 menos el descuento de A2.

Sub Condicional()

ActiveSheet.Range("A1").Value = 0 ' Poner las casillas donde se guardan los valores


0.
ActiveSheet.Range("A2").Value = 0
ActiveSheet.Range("A3").Value = 0
ActiveSheet.Range("A1").Value = Val(InputBox("Entrar el precio", "Entrar"))

' Si el valor de la casilla A1 es mayor que 1000, entonces, pedir descuento

If ActiveSheet.Range("A1").Value > 1000 Then

ActiveSheet.Range("A2").Value = Val(InputBox("Entrar Descuento", "Entrar"))

End If

ActiveSheet.Range("A3").Value = ActiveSheet.Range("A1").Value ‐ _
ActiveSheet.Range("A2").Value

End Sub

Ejemplo 7.

El mismo que el anterior pero utilizando variables.

Option Expl icit

Sub Condicional()
Dim Precio As Integer
Dim Descuento As Integer

Precio = 0
Descuento = 0
Precio = Val(InputBox("Entrar el precio", "Entrar"))

' Si el valor de la variable precio es mayor que 1000, entonces, pedir descuento
If Precio > 1000 Then
Descuento = Val(InputBox("Entrar Descuento", "Entrar"))
End If
ActiveSheet.Range("A1").Value = Precio
ActiveSheet.Range("A2").Value = Descuento
ActiveSheet.Range("A3").Value = Precio ‐ Descuento

End Sub

Viendo los dos programas anteriores puede que le surja la duda de si emplear variab
les o
directamente valores almacenados en las celdas. La solución es fácil, lo que le par
ezca más
conveniente en cada caso concreto que desee solucionar. Las variables, aunque mucha
s 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 tod
o si se da
el caso (inevitable el 99,999...% de las ocasiones) que se tenga que modificar un p
rograma 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 celd
as 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 igu
ales 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 condi
ción. Su
estructura es la siguiente.

Si Condición Entonces

Senténcia1
Senténcia2
.
.
SenténciaN
Sino

Senténcia1
Senténcia2
.
.
SenténciaN

Fin Si
Observe que, si se cumple la condición, se ejecuta el bloque de sentencias delimita
do por Si
Condición Entonces y Si no se cumple la condición se ejecuta el bloque delimitado p
or 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 instrucc
ió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 des
cuento y en A4 el
total menos el descuento.

Sub Condicional_Else()

Dim Precio As Single


Dim Descuento As Single

Precio = 0
Precio = Val(InputBox("Entrar el precio", "Entrar"))

' Si el valor de la variable precio es mayor que 1000, entonces, aplicar descuento
del 10%

If Precio > 1000 Then

Descuento = Precio * (10 / 100)

ActiveSheet.Range("A2").Value = 0,1

Else ' Sino Aplicar descuento del 5%

Descuento = Precio * (5 / 100)

ActiveSheet.Range("A2").Value = 0,05

End If

ActiveSheet.Range("A1").Value = Precio
ActiveSheet.Range("A3").Value = Descuento
ActiveSheet.Range("A4").Value = Precio ‐ Descuento

End Sub

Ejemplo 10.

Restar los valores de las casillas A1 y A2. Guardar el resultado en A3. Si el resul
tado es positivo o 0,
poner la fuente de A3 en azul, sino ponerla en rojo.

Sub Condicional_Else2()

ActiveSheet.Range("A3").Value = AvtiveSheet.Range("A1").Value ‐ _
ActiveSheet.Range("A2").Value

If ActiveSheet("A3").Value < 0 Then

ActiveSheet.Range("A3").Font.Color = RGB(255,0,0)

Else

ActiveSheet.Range("A3").Font.Color = RGB(0,0,255)

End If

End Sub
∙ Estructuras If anidadas.

No tiene que sorprenderle, dentro de una estructura if puede ir otra, y dentro de e


sta 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, esc
ribir en A3 "Los
valores de A1 y A2 son iguales", si el valor de A1 es mayor que A2, escribir "A1 ma
yor 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 prim
era 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 instru
cciones se
cumpla más de una condición. Observe que deberán cumplirse todas las condiciones. V
ea el
ejemplo siguiente.

Ejemplo 12.
Entrar el Nombre, la cantidad y el precio de un producto desde el teclado y guardar
los
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 guardarl
o en A5, luego
restar el descuento del total y guardarlo en A6.

Sub Ejemplo_12()

Dim Producto As String


Dim Cantidad As Integer
Dim Precio As Single
Dim Total As Single
Dim Descuento As Single
Dim Total_Descuento As Single

Precio = 0
Producto = InputBox("Entrar Nombre del Producto","Entrar")
Precio = Val(InputBox("Entrar el precio", "Entrar"))
Precio = Val(InputBox("Entrar la cantidad", "Entrar"))
Total = Precio * Cantidad

ActiveSheet.Range("A1").Value = Producto
ActiveSheet.Range("A2").Value = Precio
ActiveSheet.Range("A3").Value = Cantidad
ActiveSheet.Range("A4").Value = Total

' Si total mayor que 10.000 y el producto es Patatas, aplicar descuento.

If Total > 10000 And Producto = "Patatas" Then

Descuento = Val(InputBox("Entrar Descuento", "Entrar"))


Total_Descuento = Total * (Descuento / 100)
Total = Total ‐ Total_Descuento
ActiveSheet.Range("A5").Value = Total_Descuento
ActiveSheet.Range("A6").Value = Total

End If

End Sub

Observe que para que se ejecute el bloque de instrucciones entre If.. End If deben
cumplirse las
dos condiciones que se evalúan, si falla cualquiera de las dos (o las dos a la vez)
, no se ejecuta
dicho bloque.
Operador Lógico Or (O).

Utilizaremos este operador cuando sea preciso que para ejecutar un bloque de instru
cciones se
cumpla alguna de una serie de condiciones. Observe que sólo es necesario que se cum
pla 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 guarda


rlos
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 desc
uento y
guardarlo en A5, luego restar el descuento del total y guardarlo en A6.

Sub Ejemplo_13()

Dim Producto As String


Dim Cantidad As Integer
Dim Precio As Single
Dim Total As Single
Dim Descuento As Single
Dim Total_Descuento As Single

Precio = 0
Producto = InputBox("Entrar Nombre del Producto","Entrar")
Precio = Val(InputBox("Entrar el precio", "Entrar"))
Precio = Val(InputBox("Entrar la cantidad", "Entrar"))
Total = Precio * Cantidad

ActiveSheet.Range("A1").Value = Producto
ActiveSheet.Range("A2").Value = Precio
ActiveSheet.Range("A3").Value = Cantidad
ActiveSheet.Range("A4").Value = Total

' Si total mayor que 10.000 o el producto es Patatas, aplicar descuento.

If Total > 10000 Or Producto = "Patatas" Then

Descuento = Val(InputBox("Entrar Descuento", "Ent rar"))


Total_Descuento = Total * (Descuento / 100)
Total = Total ‐ Total_Descuento
ActiveSheet.Range("A5").Value = Total_Descuento
ActiveSheet.Range("A6").Value = Total

End If

End Sub
Observe que para que se ejecute el bloque de instrucciones entre If.. End If sólo e
s necesario que
se cumpla alguna de las dos condiciones que se evalúan (o las dos a la vez). Sólo c
uando 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 accio
nes 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 depe
ndiendo de si B1
contiene el signo +, ‐, x, :. El resultado lo deja en A3. Si en B1 no hay ninguno d
e los signos
anteriores en A3 debe dejarse un 0.

Sub Ejemplo_15()

Dim Signo As String


Dim Valor1 As Integer, Valor2 As Integer, Total As Integer

Valor1 = ActiveSheet.Range("A1").Value
Valor2 = ActiveSheet.Range("A2").Value
Signo = ActiveSheet.Range("B1").Value
Total=0

If Signo = "+" Then


Total = Valor1 + Valor2
End if

If Signo = "‐" Then


Total = Valor1 ‐ Valor2
End if

If Signo = "x" Then


Total = Valor1 * Valor2
End if

If Signo = ":" Then


Total = Valor1 / Valor2
End if

ActiveCell.Range("A3").Value = Total
End Sub
Observe que en el ejemplo anterior todas las instrucciones if evalúan la misma vari
able. El
programa funciona correctamente pero para estos casos es mejor utilizar la instrucc
ión Select Ca
se, el motivo principal es por legibilidad y elegancia. Select Case tiene la sintax
is siguiente,

Select Case Expresión

Case valores :

Instrucciones.

Case valores :
Instrucciones.
.
.
Case valores:

Instrucciones.

Case Else

Instrucciones en caso que no sean ninguno de los valores anteriores.

End Select

Vea el ejemplo anterior solucionado con esta estructura.

Ejemplo 16.

Sub Ejemplo_16()

Dim Signo As String


Dim Valor1 As Integer, Valor2 As Integer, Total As Integer

Valor1 = ActiveSheet.Range("A1").Value
Valor2 = ActiveSheet.Range("A2").Value
Signo = ActiveSheet.Range("A3").Value

Select Case signo

Case "+"

Total = Valor1 + Valor2

Case "‐"

Total = Valor1 ‐ Valor2

Case "x"
Total = Valor1 * Valor2

Case ":"

Total = Valor1 / Valor2

Case Else

Total = 0

End Select

ActiveCell.Range("A3").Value = Total

End Sub

Vea el ejemplo siguiente donde cada sentencia Case evalúa un rango de valores.

Ejemplo 17.

Programa que pide tres notas de un alumno mediante la función InputBox. Las notas v
an a parar
respectivamente a las casillas A1, A2 y A3 de la hoja activa. El programa calcula l
a media y la deja
en A4.

Si la media está entre 0 y 2 deja en A5 el mensaje "Muy deficiente", si la nota es


3 deja en A5 el
mensaje "Deficiente", si la nota es 4 deja "Insuficiente", si es 5 "Suficiente", si
es 6 "Bien", si está
entre 7 y 8 deja "Notable", si es mayor que 8 deja "Sobresaliente".

Sub Ejemplo_17()

Dim Nota1 As Integer, Nota2 As Integer, Nota3 As Integer


Dim Media As Single

Nota1 = Val(InputBox("Entrar Nota primera evaluación", "Nota"))


Nota2 = Val(InputBox("Entrar Nota Segunda evaluación", "Nota"))
Nota3 = Val(InputBox("Entrar Nota Tercera evaluación", "Nota"))

Media = (Nota1 + Nota2 + Nota3) / 3

ActiveSheet.Range("A1").Value = Nota1
ActiveSheet.Range("A2").Value = Nota2
ActiveSheet.Range("A3").Value = Nota3
ActiveSheet.Range("A4").Value = Media

Select Case Media

Case 0 To 2
ActiveSheet.Range("A5").Value = "Muy deficiente"

Case 3

ActiveSheet.Range("A5").Value = "Deficiente"

Case 4

ActiveSheet.Range("A5").Value = "Insuficiente"

Case 5

ActiveSheet.Range("A5").Value = "Suficiente"

Case 6

ActiveSheet.Range("A5").Value = "Bien"

Case 7 To 8

ActiveSheet.Range("A5").Value = "Notable"

Case >8

ActiveSheet.Range("A5").Value = "Sobresaliente"

End Select

End Sub

∙ La función MsgBox.

Esta función muestra un mensaje en un cuadro de diálogo hasta que el usuario pulse
un botón. La
función devuelve un dato tipo Integer en función del botón pulsado por el usuario.
A la hora de
invocar está función, se permiten diferentes tipos de botones.

Sintáxis de MsgBox.

MsgBox( Mensaje, Botones, Título, Archivo de ayuda, contexto)

Mensaje: Obligatorio, es el mensaje que se muestra dentro del cuadro de diálogo.

Botones: Opcional. Es un número o una suma de números o constantes (vea tabla Valor
es para
botones e Iconos), que sirve para mostrar determinados botones e iconos dentro del
cuadro de
diálogo. Si se omite este argumento asume valor 0 que corresponde a un único Botón
OK.
Título: Opcional. Es el texto que se mostrará en la barra del título del cuadro de
diálogo.

Archivo de Ayuda: Opcional. Si ha asignado un texto de ayuda al cuadro de diálogo,


aquí debe
especificar el nombre del archivo de ayuda donde está el texto.

Context: Opcional. Es el número que sirve para identificar el texto al tema de ayud
a
correspondiente que estará contenido en el archivo especificado en el parámetro Arc
hivo 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 most


rados 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 l
a modalidad
del cuadro de mensajes. Cuando se suman números para obtener el valor final del arg
umento
buttons, se utiliza solamente un número de cada grupo.

Nota Estas constantes las especifica Visual Basic for Applications. Por tanto, el n
ombre de las
mismas puede utilizarse en cualquier lugar del código en vez de sus valores reales.
Los valores que puede devolver la función msgbox en función del botón que pulse el
usuario se
muestran en la tabla siguiente.

Tabla de valores que puede devolver MsgBox. (Tabla copiada del archivo de ayuda de
Microsoft
Visual Basic para aplicaciones).

Constante Valor Descripción


VbOK 1 Aceptar
VbCancel 2 Cancelar
VbAbort 3 Anular
VbRetry 4 Reintentar
VbIgnore 5 Ignorar
VbYes 6 Sí
VbNo 7 No

Ejemplos de MsgBox.

Sub Tal()
.
.
' El cuadro Muestra los botones Si y No y un icono en forma de interrogante. Cuando
se pulsa
' un botón, el valor lo recoge la variable X. En este caso los valores devueltos pu
eden ser 6 o 7
' que corresponden respectivamente a las constantes VbYes y VbNo, observe la instru
cció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 mos
trar un
mensaje al usuario sin que se requiera recoger ningún valor. En este caso puede opt
ar por la forma
siguiente:

MsgBox Prompt:="Hola usuaria, Ha acabado el proceso", Buttons:=VbOkOnLy _


Title:="Mensaje"
Lo que no puede hacer porque Visual Basic daría error es poner la primera forma sin
igualarla a
ninguna variable. Por ejemplo, la expresión siguiente es incorrecta:

MsgBox ("Hola usuario, Ha acabado el proceso", VbOkOnly, "Mensaje")

Sería correcto poner:

X= MsgBox ("Hola usuario, Ha acabado el proceso", VbOkOnly, "Mensaje")

En este caso, aunque X reciba un valor, luego no se utiliza para nada, es decir sim
plemente 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 ay
udará a tener
que escribir menos código sin que por esto el programa pierda en claridad. Concreta
mente 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 guardar


los
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 desc
uento y
guardarlo en A5, luego restar el descuento del total y guardarlo en A6.

Sub Ejemplo_19()

Dim Producto As String


Dim Cantidad As Integer
Dim Precio As Single
Dim Total As Single
Dim Descuento As Single
Dim Total_Descuento As Single
Precio = 0
Producto = InputBox("Entrar Nombre del Producto","Entrar")
Precio = Val(InputBox("Entrar el precio", "Entrar"))
Precio = Val(InputBox("Entrar la cantidad", "Entrar"))
Total = Precio * Cantidad

With ActiveSheet

.Range("A1").Value = Producto
.Range("A2").Value = Precio
.Range("A3").Value = Cantidad
.Range("A4").Value = Total

End With

' Si total mayor que 10.000 o el producto es Patatas, aplicar descuento.

If Total > 10000 Or Producto = "Patatas" Then

Descuento = Val(InputBox("Entrar Descuento", "Entrar"))


Total_Descuento = Total * (Descuento / 100)
Total = Total ‐ Total_Descuento

With ActiveSheet

.Range("A5").Value = Total_Descuento
.Range("A6").Value = Total

End With

End If

End Sub

Estructuras Repetitivas.

Este tipo de estructuras permiten ejecutar más de una vez un mismo bloque de senten
cias.

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 hace
r:

Sub Ejemplo_20 ()

Dim Nota As Integer


Dim Media As Single

Media = 0
Nota = Val(InputBox("Entrar la 1 Nota : ","Entrar Nota"))
ActiveSheet.Range("A1").Value = Nota
Media = Media + Nota
Nota = Val(InputBox("Entrar la 1 Nota : ","Entrar Nota"))
ActiveSheet.Range("A2").Value = Nota
Media = Media + Nota
Nota = Val(InputBox("Entrar la 1 Nota : ","Entrar Nota"))
ActiveSheet.Range("A3").Value = Nota
Media = Media + Nota
Nota = Val(InputBox("Entrar la 1 Nota : ","Entrar Nota"))
ActiveSheet.Range("A4").Value = Nota
Media = Media + Nota
Nota = Val(InputBox("Entrar la 1 Nota : ","Entrar Nota"))
ActiveSheet.Range("A5").Value = Nota
Media = Media + Nota
Media = Media / 5
ActiveSheet.Range("A6").Value = Media

End Sub

Observe que este programa repite el siguiente bloque de sentencias, 5 veces.

Nota = Val(InputBox("Entrar la 1 Nota : ","Entrar Nota"))

ActiveSheet.Range("A5").Value = Nota

Media = Media + Nota

Para evitar esta tipo de repeticiones de código, los lenguajes de programación inco
rporan
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 senten
cias, un número
definido de veces. La estructura es la siguiente:

Para var =Valor_Inicial Hasta Valor_Final Paso Incremento Hacer

Inicio

Sentencia 1
Sentencia 2
.
.
Sentencia N
Fin

Var es una variable que la primera vez que se entra en el bucle se iguala a Valor_I
nicial, las
sentencias del bucle se ejecutan hasta que Var llega al Valor_Final, cada vez que s
e 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 e


n la casilla A1 de
la hoja activa.

Sub Ejemplo_21()

Dim i As Integer
Dim Total As Integer
Dim Valor As Integer

For i=1 To 10

Valor= Val(InputBox("Entrar un valor","Entrada"))


Total = Total + Valor

Next i

ActiveCell.Range("A1").Value = Total

End Sub
Recorrer casillas de una hoja de cálculo.

Una operación bastante habitual cuando se trabaja con Excel es el recorrido de rang
os de casillas
para llenarlas con valores, mirar su contenido, etc. Las estructuras repetitivas so
n imprescindibles
para recorrer grupos de celdas o rangos. Vea los siguientes ejemplos para ver ejemp
los 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 e
gú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 te
clado, con una
serie de 10 valores correlativos (comenzando por el 1).

Sub Ejemplo_23()

Dim Casilla_Inicial As String


Dim i As Integer
Dim Fila As Integer, Columna As Integer

Casilla_Inicial = InputBox("Introducir la casilla Inicial : ", "Casilla Inicial")


ActiveSheet.Range(Casilla_Inicial).Activate
‘ Tomar el valor de fila de la celda activa sobre la variable Fila

Fila = ActiveCell.Row

‘ Tomar el valor de columna de la celda activa sobre la variable Fila

Columna = ActiveCell.Column

For i = 1 To 10

ActiveSheet.Cells(Fila, Columna).Value = i
Fila = Fila + 1

Next i

End Sub

∙ Estructura repetitiva Do While..Loop (Hacer Mientras).

La estructura repetitiva for se adapta perfectamente a aquellas situaciones en que


se sabe
previamente el número de veces que se ha de repetir un proceso, entrar veinte valor
es, 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 cua
ntos valores
habrá (esto es, cuantas filas llenas habrá), en ocasiones puede que hayan veinte, e
n ocasiones
treinta, en ocasiones ninguna, etc. Para estos casos la estructura for no es adecua
da y deberemos
recurrir a la sentencia Do While..Loop en alguna de sus formas. Esta estructura rep
etitiva está
controlada por una o varias condiciones, la repetición del bloque de sentencias dep
enderá de si se
va cumpliendo la condición o condiciones.

Hacer Mientras (se cumpla la condición)

Sentencia1
Sentencia2
.
.
Sentencia N

Fin Hacer Mientras

En Visual Basic
Do While (se cumpla la condición)
Sentencia1
Sentencia2
.
.
Sentencia N
Loop

** Los ejemplos que veremos a continuación sobre la instrucción Do While..Loop se h


arán sobre
una base de datos.

Una base de datos en Excel es simplemente un rango de celdas en que cada fila repre
senta 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 InputBo
x. El
programa va pidiendo datos mientras se entre un valor en el InputBox correspondient
e al nombre,
es decir cuando al preguntar el nombre no se entre ningún valor, terminará la ejecu
ción del
bloque encerrado entre Do While...Loop.

Observe la utilización de la propiedad Offset para colocar los datos en las celdas
correspondientes.

Sub Ejemplo_27()

Dim Nombre As String


Dim Ciudad As String
Dim Edad As Integer
Dim fecha As Date

‘ Activar hoja1

WorkSheets("Hoja1").Activate

‘ Activar casilla A2

ActiveSheet.Range("A2").Activate

Nombre = InputBox("Entre el Nombre (Return para Terminar) : ", "Nombre")

‘ Mientras la variable Nombre sea diferente a cadena vacía


Do While Nombre <> ""

Ciudad = InputBox("Entre la Ciudad : ", "Ciudad")


Edad = Val(InputBox("Entre la Edad : ", "Edad"))
Fecha=Cdate(InputBox("Entra la Fecha : ", "Fecha"))

‘ Copiar los datos en las casillas correspondientes

With ActiveCell
.Value = Nombre
.Offset(0,1).Value = Ciudad
.Offset(0,2).Value = Edad
.Offset(0,3).Value = fecha

End With

‘Hacer activa la celda de la fila siguiente a la actual

ActiveCell.Offset(1,0).Activate
Nombre = InputBox("Entre el Nombre (Return para Terminar) : ", "Nombre")
Loop
End Sub

Ejemplo 28.

Preste especial atención a este ejemplo ya que seguro que el código que viene a con
tinuación lo
utilizará en muchas ocasiones.

Antes que nada observe el ejemplo anterior, fíjese en que siempre empezamos a llena
r el rango de
la hoja a partir de la celda A2, esto tiene una nefasta consecuencia, la segunda ve
z 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 inst
rucción
ActiveSheet.Range("A2").Activate , la referencia A2 por la que corresponde a la pri
mera casilla
vacía de la columna A. El código que le mostramos a continuación hará esto por noso
tros, es decir
recorrerá una fila de celdas a partir de A1 hasta encontrar una vacía y dejará a es
ta como celda
activa para que la entrada de datos comience a partir de ella.

Sub Ejemplo_28()
.
.
‘ Activar hoja1

WorkSheets("Hoja1").Activate
‘ Activar casilla A2
ActiveSheet.Range("A1").Activate
‘ Mientras la celda activa no esté vacía

Do While Not IsEmpty(ActiveCell)

‘ Hacer activa la celda situada una fila por debajo de la actual

ActiveCell.Offset(1,0).Activate

Loop
.
.
End Sub

Ejemplo 29.

Es la unión de los dos programas anteriores. Es decir habrá un bucle Do While que b
uscará la
primera casilla vacía de la base de datos y otro para pedir los valores de los camp
os hasta que se
pulse Enter en Nombre.

Sub Ejemplo_28()

Dim Nombre As String


Dim Ciudad As String
Dim Edad As Integer
Dim fecha As Date

WorkSheets("Hoja1").Activate
ActiveSheet.Range("A1").Activate
‘ Buscar la primera celda vacía de la columna A y convertirla en activa

Do While Not IsEmpty(ActiveCell)

ActiveCell.Offset(1,0).Activate

Loop

Nombre = InputBox("Entre el Nombre (Return para Terminar) : ", "Nombre")


‘ Mientras la variable Nombre sea diferente a cadena vacía

Do While Nombre <> ""

Ciudad = InputBox("Entre la Ciudad : ", "Ciudad")


Edad = Val(InputBox("Entre la Edad : ", "Edad"))
Fecha=Cdate(InputBox("Entra la Fecha : ", "Fecha"))

With ActiveCell
.Value = Nombre
.Offset(0,1).Value = Ciudad
.Offset(0,2).Value = Edad
.Offset(0,3).value = fecha

End With

ActiveCell.Offset(1,0).Activate
Nombre = InputBox("Entre el Nombre (Return para Terminar) : ", "Nombre")

Loop

End Sub

Cuando se tienen que entrar desde el teclado conjuntos de valores, algunos programa
dores y
usuarios prefieren la fórmula de que el programa pregunte si se desean entrar más d
atos, la típica
pregunta ¿Desea Introducir más datos ?, si el usuario contesta Sí, el programa vuel
ve a ejecutar las
instrucciones correspondientes a la entrada de datos, si contesta que no se finaliz
a 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 situacione
s.
∙ 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 cue
rpo del bucle se
ejecutaran al menos una vez. Observe que para nuestra estructura de entrada de dato
s 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 instrucci
ones 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 par
a 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 e


s distinta ya que
el bucle se va repitiendo HASTA que se cumple la condición, no MIENTRAS se cumple l
a condición.

Cuál de los dos utilizar, pues, no se sorprenda, la que entienda mejor o le guste m
ás.
La entrada de datos con este bucle quedaría:

Do
Nombre = InputBox("Entre el Nombre (Return para Terminar) : ", "Nombre")
Ciudad = InputBox("Entre la Ciudad : ", "Ciudad")
Edad = Val(InputBox("Ent re la Edad : ", "Edad")
Fecha=Cdate("InputBox("Entra la Fecha : ", "Fecha")

With ActiveCell

.Value = Nombre
.Offset(0,1).Value = Ciudad
.Offset(0,2).Value = Edad
.Offset(0,3).value = fecha

End With

ActiveCell.Offset(1,0).Activate
Mas_datos = MsgBox("Otro registro ?", vbYesNo+vbQuestion,"Entrada de datos")
‘Hasta que Mas_Datos sea igual a vbNo

Loop Until Mas_Datos=vbNo

∙ Estructura For Each.

Este bucle se utiliza básicamente para ejecutar un grupo de sentencias con los elem
entos 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 l
os 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 pon
e nombre a la
hoja, queda el que tiene.

Sub Ejemplo_29()

Dim Nuevo_Nombre As String


Dim Hoja As WorkSheet

‘ Para cada hoja del conjunto WorkSheets

For Each Hoja In WorkSheets

Nuevo_Nombre=InputBox("Nombre de la Hoja : " & Hoja.Name,"Nombrar Hojas")

If Nueva_Nombre <> "" Then


Hoja.Name=Nuevo_nombre

End if

Next

End Sub

** Hoja va referenciando cada una de las hojas del conjunto WorkSheets a cada paso
de bucle.

Ejemplo 30.

Entrar valores para las celdas del rango A1:B10 de la hoja Activa.

Sub Ejemplo_30()

Dim R As Range

‘ Para cada celda del rango A1:B10 de la hoja activa

For Each R in ActiveSheet.Range("A1:B10")

R.Value = InputBox("Entrar valor para la celda " & R.Address, "Entrada de valores")
Next

End Sub

** Observe que se ha declarado una variable tipo Range, este tipo de datos, como pu
ede imaginar
y ha visto en el ejemplo sirve para guardar Rangos de una o más casillas, estas var
iables 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 est
udiará en otro
capítulo.
∙ Insertar funciones de Microsoft Excel desde Visual Basic.

Copie el siguiente procedimiento y ejecútelo. Es un procedimiento que sencillamente


va pidiendo
números y los va colocando en las celdas de la columna A partir de A1, al final col
oca la función
=SUMA para sumar los valores introducidos y la función =PROMEDIO para hacer el prom
edio de
los mismos valores.

Sub Sumar()

Dim Valor As Integer


Dim Casilla_Inicial As String
Dim Casilla_Final As String

' Hacer activa la casilla A1 de la hoja activa


ActiveSheet.Range("A1").Activate

Do
' Entrar un valor y convertirlo a numérico
Valor = Val(InputBox("Entrar un valor", "Entrada"))
' Si el valor es distinto de 0

If Valor <> 0 Then


' Guardar el valor en la casilla activa
ActiveCell.Value = Valor
' Hacer activa la casilla de la fila siguiente
ActiveCell.Offset(1, 0).Activate

End If

Loop Until Valor = 0

' Establecer la casilla inicial del rango a sumar


Casilla_Inicial = "A1"
' Establecer la casilla final del rango a sumar.
' Coger la dirección de la casilla activa, la última
Casilla_Final = ActiveCell.Address
ActiveCell.Offset(1, 0).Activate
' Poner en la casilla activa la función SUMA
ActiveCell.Formula = "=Suma(" & Casilla_Inicial & ":" & Casilla_Final & ")"
ActiveCell.Offset(1, 0).Activate
' Poner en la casilla activa la función promedio
ActiveCell.Formula = "=Promedio(" & Casilla_Inicial & ":" & Casilla_Final & ")"

End Sub
Una vez haya ejecutado la macro, observe que en las celdas donde se han colocado
respectivamente las funciones =SUMA, =PROMEDIO aparece ¿NOMBRE? (es posible que apa
rezca
####, en ese caso amplíe la columna), esto significa que Excel no reconoce el nombr
e de la
función, que no existe. Sin embargo, estas funciones si existen y funcionan perfect
amente 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 est
a 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 SUM
A y
PROMEDIO.

De esta forma damos por terminado el módulo de Macros, que simplemente es una intro
ducción
al tema.

El estudiante puede desarrollarse mucho más, este manual pretende realizar un bosqu
ejo del
tema, e iniciar al alumno a la programación en lenguaje VBA.
Repartidos

Prácticos
EJERCICIO 1 – MODULO: FUNCIONES AVANZADAS

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


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

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

País de Importe de
Mes
origen exportación

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

Se pide:

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


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

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

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

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

Ingresar
CI Promedio Resultado
EJERCICIO 3 – MODULO: FUNCIONES AVANZADAS

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


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

COMPETENCIA INTERBARRIAL - PUNTOS POR EQUIPO Y POR ETAPA

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


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

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


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

Extracto de ventas de la empresa "La traicionera SA"


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

11/04/2005 1061 Paturzú Lamborgini Diablo 230000 T


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

Se pide:

1. Copie la siguiente tabla en dos hojas distintas


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

5. En la segunda hoja, mediante Autofiltros visualice:


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

EJERCICIO 5 – MODULO: FUNCIONES AVANZADAS


SOLVER

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

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

Unidades a producir 500 500

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


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

EJERCICIO 6 – MODULO: FUNCIONES AVANZADAS


BUSCAR OBJETIVO

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


importe
de ventas de 1200 pesos.

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

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


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

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


producir
para que el precio unitario sea igual a 15 pesos.

A B
1 Cantidad a producir ?
2 Costos variables 8.5
3 Costos fijos 1200
4 Costo total unitario =B3+B4/B2
5 Utilidad unitaria (10%) =B5*0.1
6 Precio unitario =B5+B6
EJERCICIOS

ANÁLISIS

DE

INFORMACIÓN
EJERCICIOS MÓDULO: Análisis de Información

Ejercicio 1

Dada la siguiente tabla de datos:

Año Período Ventas


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

Se pide:

Mediante Tablas Dinámicas:

1. Obtener total de ventas por año.


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

Dada la siguiente base de datos:

Año Período Tipo de cliente Ventas


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

Se pide:

Mediante Tablas Dinámicas:

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

DADA LA SIGUIENTE BASE DE DATOS:

ALUMNO SUCURSAL DOCENTE CLARIDAD BUENA BUEN USO


CONCEPTO
AL DISPOSICIÓN DEL
GENERAL
EXPLICAR PIZARRÓN
DEL

DOCENTE
3.015.665-5 BUCEO Luis 2 4 2 2
1.967.222-3 PARQUE Pedro 5 5 4 5
2.123.334-1 BUCEO Pedro 4 4 5 4
1.944.314-6 RIVERA Gabriel 1 2 3 2
3.054.365-4 BUCEO Luis 4 3 3 3
1.665.145-0 RIVERA Gabriel 3 3 4 4
1.945.328-6 PARQUE Gabriel 5 4 4 4
3.412.331-0 RIVERA Luis 2 1 2 2
4.036.365-6 RIVERA Luis 3 2 2 2
4.365.441-8 BUCEO Luis 1 1 2 1
2.966.356-4 BUCEO Pedro 5 4 4 4
1.665.324-3 PARQUE Gabriel 4 5 4 4
1.689.365-0 PARQUE Gabriel 3 4 4 3
3.554.321-4 BUCEO Luis 2 1 1 1

OBTENER:

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


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

EJERCICIO 4

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


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

OBTENER:

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


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

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


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

Obtener mediante Tablas Dinámicas:

1. Cantidad de productos por categoría


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

EJERCICIO 6 (Datos – Tabla)

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


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

Cantidad a producir 500


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

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

Copie esta tabla en cuatro hojas distintas

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

Se pide:

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


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

GRÁFICOS

PERSONALIZADOS

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

Ejercicio 1

Dada la siguiente tabla:

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

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

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

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

Dada la siguiente tabla:

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

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


dicho gráfico todos
los retoques correspondientes para su correcta visualización.

• Grabar este grafico como tipo personalizado para poder


utilizarlo a futuro.

• Aplicarle efecto de degradado a las series, y un efecto de


textura tanto al área
de trazado como al área de gráfico.

Ejercicio 3

Fecha Fecha Días


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

Generar un gráfico representando un diagrama de Gantt.


Aplicarle efecto de relleno con degradado a un color al área de gráfico
y área de
trazado.
Generar un diagrama de Gantt aplicando formato condicional con la misma
tabla.
Ejercicio 4

Dada la siguiente tabla:

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

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


producción en el transcurso de las horas.

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

Ejercicio 5

Años Exp Exp Exp Exp Exp Exp


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

Dada la tabla expuesta:

• Utilizar lista desplegable, cuadro combinado, barra desplazamiento para


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

Dic-05 PROC1 PROC2 PROC3 PROC4 PROC5


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

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

MACROS

EN

EXCEL
Módulo: MACROS EN EXCEL

Ejercicio 1

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

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

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


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

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

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

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

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

Tomar en cuenta que el SMN es de $ 1242.

Mostrar el aporte de cada empleado en una columna.

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

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


Ejercicio 2

Pedir al usuario nombre, precio unitario y descripción de artículos. Volcar estos


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

Repaso de inputbox, bucles, msgbox. Aplicar offset (o mostrar la aplicación del


mismo
en el ejercicio práctico).

Ejercicio 3

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


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

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


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

Nº Circuito Desde Hasta Dirección


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

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

Nombre Apellido Credencial Dirección

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


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

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

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


planilla.
Ejercicio 4

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

La funcionalidad de dicha macro deberá incluir:


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

Ejercicio 5

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


COMPENDIO

PRUEBAS

FUNCIONES

AVANZADAS
COMPENDIO DE PRUEBAS Y EXAMENES DE PRÁCTICA

Funciones Avanzadas
Prueba Final
Ejercicio 1

Fecha Vendedor Tipo de Producto Sucursal Tipo Operación


Forma de Pago Importe
01/01/2006 German Alimentos Central Venta
Contado $U 1.556
03/01/2006 Luis Informatica Central Devolucion
Contado $U 2.294
05/01/2006 Marcelo Electrodomesticos Filial2 Venta
Diferido 3 pagos $U 1.966
09/01/2006 Esteban Alimentos Filial2 Venta
Diferido 3 pagos $U 2.843
11/01/2006 Andrea Informatica Filial 1 Venta
Contado $U 5.461
11/01/2006 Luisa Electrodomesticos Filial2 Venta
Contado $U 5.685
11/01/2006 Daniela Alimentos Filial2 Devolucion
Contado $U 2.971
11/01/2006 German Informatica Central Venta
Contado $U 4.101
12/01/2006 Luis Electrodomesticos Central Devolucion
Contado $U 4.847
12/01/2006 Marcelo Alimentos Filial2 Venta
Diferido 3 pagos $U 5.030
13/01/2006 Luisa Informatica Filial2 Venta
Diferido 6 pagos $U 3.296
16/01/2006 Daniela Alimentos Filial2 Devolucion
Contado $U 1.656
19/01/2006 German Informatica Central Venta
Diferido 3 pagos $U 4.800
20/01/2006 Luis Electrodomesticos Central Devolucion
Contado $U 2.913
23/01/2006 Marcelo Alimentos Filial2 Venta
Contado $U 5.526
25/01/2006 Luis Informatica Central Venta
Diferido 6 pagos $U 3.969
27/01/2006 Marcelo Alimentos Filial2 Venta
Contado $U 4.760
27/01/2006 Esteban Informatica Filial2 Venta
Contado $U 1.492
27/01/2006 Andrea Alimentos Filial 1 Devolucion
Contado $U 5.282
31/01/2006 Luisa Informatica Filial2 Venta
Diferido 3 pagos $U 2.189
31/01/2006 Daniela Alimentos Filial2 Venta
Diferido 6 pagos $U 4.042
03/02/2006 Daniela Informatica Filial2 Venta
Contado $U 5.176
03/02/2006 German Electrodomesticos Central Venta
Contado $U 1.528
07/02/2006 Luis Alimentos Central Devolucion
Diferido 3 pagos $U 1.846
07/02/2006 Esteban Informatica Filial2 Venta
Diferido 6 pagos $U 2.707
07/02/2006 Andrea Electrodomesticos Filial 1 Venta
Contado $U 4.754
10/02/2006 Luisa Alimentos Filial2 Venta
Diferido 3 pagos $U 4.936
15/02/2006 Daniela Informatica Filial2 Devolucion
Contado $U 1.911
20/02/2006 German Electrodomesticos Central Devolucion
Contado $U 1.666

A partir de la siguiente base de datos, referida a ventas de nuestra Empresa, se pi


de:
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 sol


icita lo siguiente:
Genere un cuadro de consulta con las siguientes características:

Cedula:
Nombre:
Apellido:
Direccion:
Suma Ventas:
Cuenta de Devoluciones:

¾ El numero de Cedula deberá estar validado de acuerdo a los clientes.


¾
A partir de la Cedula se deberán calcular automáticamente el resto de los datos.

Base de Datos Ventas


Id Cliente Operación Importe
3201506-7 Venta 4.753 €
3501289-1 Devolucion 940 €
2650450-5 Venta 1.551 €
3456287-1 Venta 5.103 €
1795461-8 Venta 1.722 €
2975468-6 Venta 651 €
3197486-8 Venta 5.444 €
2497682-3 Venta 1.524 €
2894657-1 Venta 4.178 €
4132495-8 Devolucion 2.189 €
3201506-7 Venta 2.233 €
3501289-1 Devolucion 5.014 €
2650450-5 Venta 5.138 €
3456287-1 Devolucion 5.097 €
1795461-8 Venta 3.839 €
2975468-6 Devolucion 1.181 €
3197486-8 Venta 6.111 €
2497682-3 Devolucion 1.850 €
2894657-1 Venta 2.362 €
4132495-8 Venta 4.861 €
3201506-7 Venta 3.518 €
3501289-1 Devolucion 3.985 €
2650450-5 Venta 1.158 €
3456287-1 Venta 1.497 €
1795461-8 Venta 1.193 €
2975468-6 Devolucion 3.443 €
3197486-8 Venta 1.708 €
2497682-3 Venta 2.195 €
2894657-1 Venta 1.642 €
4132495-8 Venta 4.057 €
3201506-7 Venta 3.564 €
3501289-1 Devolucion 4.873 €
2650450-5 Venta 2.396 €
3456287-1 Venta 2.685 €
1795461-8 Venta 2.223 €
2975468-6 Venta 2.638 €
3197486-8 Venta 2.646 €
2497682-3 Devolucion 3.401 €
2894657-1 Venta 3.655 €
4132495-8 Venta 1.489 €
3201506-7 Venta 5.412 €
3501289-1 Venta 5.145 €
2650450-5 Venta 1.142 €
3456287-1 Devolucion 5.769 €
1795461-8 Venta 1.632 €
2975468-6 Venta 6.008 €
3197486-8 Venta 6.221 €
2497682-3 Venta 5.710 €

Base de Datos Clientes


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

A partir de la siguiente base de Datos referida a entrega de productos se solicita:

Fecha Empresa Producto Tipo de Cliente Fecha Entrega


02/02/2005 Foxy SRL PC Pentium II Mayorista
02/02/2005 Almiron SA PC Pentium III Minorista
03/02/2005 Foxy SRL TV 21 Mayorista
08/02/2005 Almiron SA DVD Mayorista
08/02/2005 Foxy SRL DVD Mayorista
08/02/2005 Almiron SA Monitor LCD Minorista
08/02/2005 Foxy SRL Mouse Optico Mayorista
08/02/2005 Almiron SA PC Pentium II Minorista
11/02/2005 Foxy SRL PC Pentium III Mayorista
14/02/2005 Almiron SA TV 21 Minorista
15/02/2005 Foxy SRL DVD Mayorista
18/02/2005 Almiron SA DVD Mayorista
21/02/2005 Foxy SRL Monitor LCD Minorista
22/02/2005 Almiron SA Parlantes Minorista
22/02/2005 Lypton SA PC Pentium II Mayorista
24/02/2005 DRR Corp PC Pentium III Minorista
25/02/2005 Almiron SA TV 21 Mayorista
28/02/2005 Foxy SRL DVD Mayorista
02/03/2005 Almiron SA DVD Mayorista
04/03/2005 Foxy SRL DVD Minorista
08/03/2005 Almiron SA Monitor LCD Mayorista
11/03/2005 Lypton SA Mouse Optico Mayorista
11/03/2005 DRR Corp Parlantes Mayorista
14/03/2005 Almiron SA PC Pentium III Minorista
17/03/2005 Foxy SRL Parlantes Mayorista
18/03/2005 Almiron SA DVD Mayorista
22/03/2005 Foxy SRL DVD Minorista
25/03/2005 Almiron SA DVD Mayorista
29/03/2005 Lypton SA Monitor LCD Mayorista

1. Calcule la Fecha de la Entrega de acuerdo a los siguientes criterios:


1.1.
A todos los clientes Mayoristas se les entregan los productos a los 3 días hábiles
de la
fecha de pedido.
1.2.
A los clientes Minoristas se les entrega a los 10 días hábiles, salvo para la empre
sa
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 dif
erentes
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 par
a cada
registro.
2.
Calcule en una nueva columna el pago por hora a cada trabajador de acuerdo a la sig
uiente
regla:
2.1. Si pertenece al sector “Ventas”; 20 euros por hora.
2.2. Si pertenece al sector “Compras”; 18 euros por hora.
2.3. Si pertenece al sector “Contable”; 15 euros por hora.
2.4. Si pertenece al sector “Administrativo”; 12 euros por hora.
2.5. Si pertenece al sector “Producción”; 8 euros por hora.
3. Calcule en una nueva columna el pago del salario total para cada día.
4. Genere un solo cuadro de consulta a su elección entre las siguientes opciones:
Empleado
Fecha

Salario pagado hasta la fecha

En ambos casos los de Empleado o Sector y el dato de fecha será introducido por el
usuario de la
consulta, y se deberá calcular automáticamente el 3º dato.
Si elige el primer cuadro de consulta se deberá calcular los salarios totales pagad
os a dicho
Empleado, hasta la fecha que figure en el cuadro. La celda donde se introduzca el E
mpleado
deberá validarse.
Si elige el segundo cuadro de consulta se deberá calcular los salarios totales paga
dos a dicho
Sector, hasta la fecha que figure en el cuadro. La celda donde se introduzca el Sec
tor deberá
validarse.

Sector Nombre Apellido Fecha Hora Ingreso Hora Egreso


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

A continuación se presenta la siguiente base de datos, la cual contiene los nombres


de los
participantes de los 4 equipos existentes.

Equipo A Equipo B Equipo C Equipo D


Adalberto Baltasar Camila Damian
Alberto Bartolo Camilo Daniel
Alicia Basilio Carla Daniela
Alison Beatriz Carlos Danilo
Ana Benjamin Carmen Dante
Ana Maria Bernardo Carol Dario
Anastacia Berta Carolina Demetrio
Antonio Betiana Cecilia Demostenes
Armando Betina Celene Denise
Arnaldo Brian Celeste Diana
Arturo Bruce Celia Dino
Asencio Bruno Cristian Diogenes

Dichos participantes de los equipos se encuentran agrupados por columnas, y se sabe


que cada
equipo contara con 16 participantes.

Se Pide:

Creé un cuadro de consulta similar al que se le presenta a continuación, donde a pa


rtir de la
introducción de un texto cualquiera en el campo correspondiente al “Nombre de Parti
cipante: ”, el
mismo devuelva en el campo correspondiente a “Equipo: ”, el equipo al cual correspo
nde dicho
participante. En el caso que no exista dicho participante, en dicho campo deberá fi
gurar: “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 nue
vos
participantes. Y recuerde que el nombre de dicho participante no tiene restricción
alguna (puede
comenzar con cualquier letra).

El formato del cuadro de consulta es el siguiente:

Nombre de Equipo:
Participante:
Ejercicio 2

Se cuenta con la siguiente base de datos, referida a movimientos de comercio exteri


or.
Se pide:

1)
Un cuadro de consulta como el siguiente, en el cual a partir del ingreso de datos c
omo el

“País”, “Tipo de Operación”, y “Fecha”, se nos devuelva las operaciones de “Suma”,


“Promedio”, “Máximo”, “Mínimo” referida a los datos de origen.

Fecha:
Pais: Brasil
Tipo de Operación: Importacion
Suma
Promedio
Maximo
Minimo

En el caso del campo de fecha, las operaciones deberán realizarse a partir de dicha
fecha
especificada (para fechas mayores o iguales a la fecha especificada).
Tanto el nombre de los campos “País” y “Tipo de Operación”, deberán validarse a tra
vé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 Negrit
a.

Si es Importación, deberá figurar un fondo rojo, fuente color negro, estilo Negrita
.
Base de datos:

Fecha Tipo de Operación País Importe


01/01/2005 Exportacion Brasil 1250
15/01/2005 Exportacion Argentina 780
01/02/2005 Importacion EEUU 1350
15/02/2005 Exportacion Australia 1540
01/03/2005 Importacion Paraguay 1230
15/03/2005 Importacion Mexico 500
01/04/2005 Importacion China 1450
15/04/2005 Exportacion España 750
01/05/2005 Exportacion Argentina 800
15/05/2005 Importacion Brasil 1100
01/06/2005 Exportacion Argentina 1000
15/06/2005 Exportacion Argentina 750
01/07/2005 Exportacion EEUU 1200
15/07/2005 Importacion EEUU 1000
01/08/2005 Exportacion EEUU 580
15/08/2005 Exportacion España 800
01/09/2005 Importacion Brasil 800
15/09/2005 Importacion Brasil 750
01/10/2005 Importacion España 450
15/10/2005 Importacion Argentina 800
01/11/2005 Exportacion Mexico 780
15/11/2005 Exportacion Paraguay 450
01/12/2005 Exportacion China 1100
15/12/2005 Importacion Argentina 800

Ejercicio 3

Factura Fecha Facturacion Productos Empresa Fecha de Entrega


A001 01/01/2005 VHS La Tardia
A002 02/01/2005 DVD La Tempranera
A004 05/01/2005 TV 20' La Tempranera
A005 07/01/2005 TV 21' La Tempranera
A011 14/01/2005 DVD La Tardia
A013 16/01/2005 VHS La Tardia
A015 19/01/2005 TV 29' La Tardia
A019 21/01/2005 VHS La Tempranera
A021 23/01/2005 DVD La Tempranera
A021 27/01/2005 DVD La Tardia
A023 31/01/2005 DVD La Tardia
A105 01/03/2005 VHS La Tempranera
A205 02/04/2005 VHS La Tempranera
A568 03/07/2005 TV 21' La Tardia
B209 04/09/2005 TV 29' La Tempranera
B524 05/11/2005 VHS La Tardia

A partir de la siguiente base de datos, nuestra empresa de logística que se dedica


a la entrega de
diferentes productos a diferentes empresas, desea conocer las fechas de entrega par
a cada uno de
los productos.

Se nos da a conocer la siguiente información:

Todos los Productos de la Empresa “La Tardía” se entregan a los 15 días hábiles de
la fecha de
facturación.
En cambio para la Empresa “La Tempranera” se entregan los productos a los 3 días há
biles de la
fecha de facturación, salvo los DVD que deben entregarse al siguiente día hábil.

Ejercicio 4

Plan Circuital
Nº de Circuito Desde Hasta Direccion
101 1 1000 Guana 2015
151 1001 5000 18 de Julio 2374
201 5001 9000 21 de septiembre 2323
251 9001 12000 Rodo 3111
301 12001 15000 Mercedes 2173
501 15001 20000 Uruguay 2158

Se solicita que cree un cuadro de consulta para facilitarle a los votantes de esta
institución
encontrar su circuito y local de votación.
Ellos ingresaran su Numero de Socio, y deberá visualizarse su circuito de votación
y Dirección de
dicho local.

Numero de Socio
Nº de Circuito
Direccion

El cuadro de consulta jamás podrá dar como resultado algún error, y en el caso que
no exista
ningún número de socio ingresado, los campos “Nº de Circuito” y “Dirección”, deberá
n mostrar
“No se ha ingresado Nº de Socio”.
COMPENDIO

PRUEBAS

ANÁLISIS

DE

INFORMACIÓN
Prueba Final
Tablas Dinámicas

A partir de la Base de datos ubicada en la hoja “BD_Ventas”, realice los siguientes


ejercicios:

Ejercicio 1

1.
Realice una tabla dinámica que muestre segmentado por turno; la cantidad de ventas
realizadas y el monto total de la facturación en pesos.
1.1.
Asigne un formato de pesos, sin decimales, a los datos relacionados con la facturac
ió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 facturac
ió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 vendid
as de
cada tipo .

Ejercicio 3

1.
Realice una tabla dinámica que muestre para cada empleado el promedio en pesos de s
us

ventas efectuadas. Filtre dicha información solamente para las ventas realizadas en
el
turno de la noche y efectuadas al contado.
1.1. Aplique un AutoFormato del tipo “Informe 10”.
1.2.
Asigne un formato de pesos, sin decimales, a los datos relacionados con el promedio
de la facturación total.
1.3.
Cambie el nombre del campo del área de datos a: “Promedio de Facturación por
empleado”.
1.4.
Ordene la tabla de mayor a menor, de acuerdo al promedio de la facturación de
cada empleado.
2.
Genere un grafico dinámico circular asociado a dicha tabla, donde se muestre para c
ada

vendedor el total de las ventas efectuadas, según los criterios del punto anterior.

Ejercicio 4

1.
Genere una tabla dinámica que muestre para cada tipo de pago, el monto total de la
facturación realizada.
1.1. Aplique un autoformato a dicha tabla del tipo “Informe 2”.
1.2.
Agregue un formato de pesos al total de las ventas, y el campo del área de datos se
llamara “Facturacion Total”.
1.3.
Agregue un campo calculado a dicha tabla que muestre la facturacion total + IVA en

una nueva columna. El nombre en la tabla deberá figurar “Importe + IVA”.


2.
Genere una nueva Tabla dinámica que muestre para cada tipo de pago, el monto total
de
la facturacion realizada.
2.1. Aplique un auto formato del tipo “Informe 6”.
2.2.
El campo del área de datos deberá llamarse “Facturacion por forma de pago”, y
deberá tener un formato de pesos.
2.3.
Agregue 2 elementos calculados en el campo Empleados, los mismos se llamaran:

“Visa Corregido” y “Master Card Corregido”. Y se calcularan con un porcentaje


adicional del 7% para “Visa”, y 5% para “Master Card”.
2.4.
Oculte los elementos Visa y Master Card (que se visualicen solamente los elementos
calculados).
2.5. Ordene la tabla de mayor a menor de acuerdo a la facturacion total.
Prueba Final
Tablas Dinámicas

Ejercicio 1

A partir de la Base de Datos ubicada en “BD_Mdeo”, se pide:


3.
Realice una tabla dinámica que muestre la Población de cada barrio segmentado por

sexo, además deberá filtrar dicha información para las edades comprendidas entre 15
y 29
años.
3.1.
Ordene dicha Tabla de Mayor a Menor, de acuerdo a la Población de cada Barrio de
Mdeo.
3.2. Agregue un AutoFormato a dicha Tabla del tipo “Tabla 10”.
4.
Genere un grafico dinámico de columnas asociado a dicha tabla, donde se visualice l
a

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 marz
o y
abril, para todas las ventas no efectuadas al contado.
Ejercicio 4

A partir de la Base de Datos ubicada en “BD_Ventas”, se solicita:


2.
Genere una tabla dinámica, que muestre el promedio de las ventas totales efectuadas
,

para cada tipo de producto solamente para las ventas al contado. Permita filtrar di
cha
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 Prod
ucto

en el total de las ventas efectuadas en marzo, para todas las ventas que han recibi
do un
descuento menor al 5%.
PRUEBA Análisis de Información – EXCEL AVANZADO

EJERCICIO 1

Basados en los datos existentes en la Hoja1 del archivo Ventas.xls:



Crear una tabla dinámica, en la celda F1, que muestre el máximo de ventas del año 2
004 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 Ve
ndedor del año
2003.

Aplicarle a este campo formato de número, con separador de miles y dos posiciones d
ecimales.
• 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ó e
n 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. Colocarl


e formato % con
un decimal.

Por detectarse un error deberá cambiar el valor del último registro de la lista ori
ginal. Las ventas

reales de PEREZ para el año 2004 fueron de 4765. Reflejar este cambio en la Tabla D
iná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 mos
trando 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 d
el nombre,
tema, y duración.

Crear, con la herramienta subtotales, los subtotales de alumnos que acudieron a cad
a 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 siguien


tes variaciones del
porcentaje de costo (45%; 60%; 75%; 85%; 90%).
COMPENDIO

PRUEBAS

GRÁFICOS

PERSONALIZADOS
Prueba Final
Módulo: “Gráficos Personalizados”

Ejercicio Nº 1

Copie el siguiente cuadro de datos en la 1º hoja de su libro de Excel al que llamar


a
“Prueba_GP_Nombre_Apellido”. A la hoja nómbrela como “Tabla Datos”.

Equipos de Venta
Meses Equipo A Equipo B Equipo C Equipo
D Equipo E
Enero $U 150.000 $U 157.487 $U 125.868 $U
90.834 $U 52.481
Febrero $U 271.139 $U 299.764 $U 163.736 $U
244.286 $U 127.685
Marzo $U 310.874 $U 352.540 $U 194.513 $U
246.763 $U 210.303
Abril $U 324.147 $U 465.699 $U 350.106 $U
361.981 $U 248.181
Mayo $U 338.982 $U 489.592 $U 382.835 $U
536.825 $U 349.743
Junio $U 362.883 $U 525.612 $U 529.520 $U
554.831 $U 455.638
Julio $U 473.192 $U 671.261 $U 704.240 $U
693.014 $U 489.846
Agosto $U 533.822 $U 802.015 $U 875.955 $U
766.389 $U 552.640
Septiembre $U 653.734 $U 924.318 $U 963.160 $U
905.500 $U 722.182
Octubre $U 701.385 $U 1.018.397 $U 1.089.458 $U
978.142 $U 773.879
Noviembre $U 776.790 $U 1.162.809 $U 1.140.784 $U
1.072.761 $U 809.750
Diciembre $U 913.258 $U 1.245.318 $U 1.220.691 $U
1.197.392 $U 911.762

Se Pide:

1.1)
Cree un grafico de columnas e insértelo en una nueva hoja del libro a la que llamar
a
“Grafico 11”con las siguientes especificaciones:

Se desea realizar un grafico que muestre un comparativo de las

ventas totales anuales realizadas por cada Equipo de Ventas

(deberá figurar una columna sola para cada Equipo de Ventas en

el eje X), dicho grafico debe ser creado a partir de la tabla de

datos original, sin crear una nueva columna para totales. Se

debe incluir en el grafico los rótulos de categoría del eje X.



Cada serie incluida en el grafico debe llevar su nombre a través

de una referencia a las celdas ubicadas en la tabla original



El grafico debe incluir como titulo del mismo “Ventas anuales

según Equipos de Ventas”. La leyenda de referencias no deberá


figurar en el grafico.

Cada Eje deberá llevar los siguientes títulos, en formato
“Negrita”:
ƒ X= “Equipos de Ventas”
ƒ Y= “Ventas Anuales”

La escala del eje “Y” deberá visualizarse cada 1200000 unidades

El área de trazado del grafico deberá tener como efecto de

relleno una textura de mármol verde al igual que el área del


grafico.

Asigne un formato similar a todas las series (meses) para

generar en la columna de cada equipo de venta el efecto


deseado de una columna uniforme, para ello quite bordes y
adopte un efecto de relleno a su elección.

1.2) Ubique el siguiente grafico en una nueva hoja llamada: “Grafico 12”

Asimismo se desea observar un grafico de barras con efecto 3D, donde se muestre las

ventas discriminadas por meses (para cada mes una sola barra que incluya todos los

equipos de ventas). Para ello se le solicita que genere dicho grafico a partir de l
a

información contenida en la tabla, y escoja un subtipo de grafico de barras adecuad


o 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 la
s
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 s


eccionado.
Añada un formato que incluya:
• Una imagen de fondo en el área de grafico.

El titulo de dicho grafico será: “Participación de los Equipos de
Venta en Diciembre 2006”.

Deberá figurar el nombre y el porcentaje correspondiente a
cada Equipo, separados por una nueva línea.

La leyenda con las categorías deberá figurar sobre el grafico.

Ubíquelo en nueva hoja llamándola “Grafico14”.

Ejercicio Nº 2

Copie la siguiente tabla a una nueva hoja del libro con el cual esta trabajando y n
ómbrela
“Pirámide Poblacional”.

Total Grupo de edades


0a3 4a5 6 a 14 15 a 19 20 a 24 25 a 29 30 a
49 50 a 64 65 a 79 80 o más
POCITOS 69.636 2.276 1.156 5.442 4.379 5.580 5.957
17.998 12.513 10.248 4.087
Hombres 29.827 1.155 590 2.699 2.076 2.598 2.736
8.053 5.083 3.685 1.152
Mujeres 39.809 1.121 566 2.743 2.303 2.982 3.221
9.945 7.430 6.563 2.935

A partir de la siguiente tabla de datos deberá construir un grafico personalizado q


ue 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 gr
upo etario.
El formato de las diferentes áreas del grafico debe ser del mismo color, que usted
elija.

Ejercicio Nº 3 (Opcional 1)

Consultas Inscripciones
1500 750
1600 760
1800 850
1650 800
200 75
840 550
1200 680

Se presentan los siguientes pares de Valores (Consultas sobre un Curso, Inscripcion


es 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 tr
avé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 infor


mación:

Tareas Fecha Inicial Fecha Final


Planificacion 01/03/2006 15/03/2006
Revision Primaria 16/03/2006 22/03/2006
Pruebas de desarrollo 25/03/2006 15/04/2006
1º Proceso Productivo 16/03/2006 15/05/2006
2º Proceso Productivo 01/05/2006 15/06/2006
3º Proceso Productivo 15/05/2006 30/06/2006
Evaluacion de Resultados 01/07/2006 05/07/2006
Replanteo del Proyecto 10/07/2006 15/07/2006

Se solicita que realice para el informe de presentación del desarrollo de un nuevo


producto, un
Grafico Personalizado de Gantt donde se visualicen las diferentes tareas del Proyec
to en el Eje X, y
en el Eje Y se muestren las fechas involucradas.

El grafico deberá presentar:

• Titulo del mismo, y títulos de ambos ejes (no leyenda de referencias).


• Valores de duración de cada una de las tareas en el interior de cada barra
• Formatos de área de grafico y trazado en celeste.
• Formatos del área de las series en color rojo.
PRUEBA MÓDULO DE GRAFICOS – CURSO EXCEL AVANZADO BIOS

EJERCICIO 1

Meses Equipo A Equipo B


Enero 180500 176000
Febrero 190200 120000
Marzo 170800 135000
Abril 165900 210000
Mayo 189000 180300

Se pide:

1.
Generar un gráfico de columnas que contenga las ventas de ambos equipos en cada uno

de los meses (en eje de X los meses y en eje de Y los importes de ventas de cada un
o 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 rel
leno a

eleccion del estudiante, equipo B con otro efecto de relleno a elección del estudia
nte).
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 incor
pora

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


a 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 est
udiante considere.

Grabar este grafico como personalizado para aplicarlo en futuros usos (darle como n
ombre
pirámides personalizadas).
Prueba Final
Módulo: “Gráficos Personalizados”
Ejercicio Nº 1

Copie el siguiente cuadro de datos en la 1º hoja de su libro de Excel al que llamar


a
“Prueba_GP_Nombre_Apellido”. A la hoja nómbrela como “Ejercicio 1”.

Ventas Anuales

Vendedores 2000 2001 2002


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

Se Pide:

1.1)
Cree un grafico de columnas e insértelo en una nueva hoja del libro a la que llamar
a
“Grafico 11”con las siguientes especificaciones:

Se desea realizar un comparativo para cada año por

vendedores, por lo tanto se le pide que en el Eje X figuren los

años, y además se incluyan en el mismo los rótulos de categoría.



Cada serie incluida en el grafico debe llevar su nombre a través

de una referencia a las celdas ubicadas en la tabla original



El grafico debe incluir como titulo del mismo “Ventas anuales

según vendedores” y la leyenda con las referencias a las series.

Ambos deben presentar como efecto de relleno en sus tramas el

mismo formato, un degradado a dos colores con un estilo de

sombreado diagonal. La leyenda de referencias deberá figurar a


la izquierda del grafico.

Cada Eje deberá llevar los siguientes títulos, en formato
“Cursiva”:
ƒ X= “Años”
ƒ Y= “Ventas en miles de Pesos”

La escala del eje “Y” deberá visualizarse cada 120 unidades

El área de trazado del grafico deberá tener como efecto de

relleno una textura de mármol blanco al igual que el área del


grafico

Debido a la complejidad de reconocer cada vendedor dentro de

cada año se decidió que se incluya el nombre del mismo en cada

columna correspondiente, siguiendo la alineación de la misma.


1.2)
Asimismo se desea observar un grafico de barras con efecto 3D, donde se muestre un

comparativo por vendedores para el año 2001 y 2002, con idéntico formato que el gra
fico

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 desea
do 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 ve
ntas

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

espacio). Ubíquelo en nueva hoja llamándola “Grafico14”. El titulo de dicho grafico


será
“Ventas 2001”.

Ejercicio Nº 2

Copie la siguiente tabla a una nueva hoja del libro con el cual esta trabajando y n
ómbrela
“Ejercicio 2”.

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

Sexo Total 0 a 3 4 a 5 6 a 14 15 a 19 20 a 24
25 a 29 30 a 49 50 a 64 65 a 79 80 y mas
ARTIGAS Total 78.019 5.426 3.139 14.626 7.349 5.634 4.767
19.619 10.169 5.771 1.519
Hombres 39.082 2.798 1.587 7.419 3.797 2.860 2.316
9.836 5.255 2.663 551
Mujeres 38.937 2.628 1.552 7.207 3.552 2.774 2.451
9.783 4.914 3.108 968

A partir de la siguiente tabla de datos deberá construir un grafico personalizado q


ue 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 e
l 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 gr
upo etario.
El formato de las diferentes áreas del grafico debe ser similar a las escogidas par
a el Ejercicio 1.
Ejercicio Nº 3 (Opcional 1)

Precios Ventas del Mercado


1 792
2 821
3 522
4 552
5 642
6 437
7 671
8 518
9 388
10 503
11 403
12 196
13 180

Se presentan los siguientes pares de Valores (Precios, Cantidades Transadas) que re


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


avé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 infor


mación:

Fechas
Tareas Fecha Inicio
Fecha Final
Planificación 01/11/2005 15/11/2005
Contratación de Personal temporal 16/11/2005 30/11/2005
Campañas Piloto 17/11/2005 20/11/2005
Campañas Focalizadas 18/11/2005 30/12/2005
Folleteria Barrial 01/12/2005 15/04/2006
Folleteria no especializada 01/12/2005 15/01/2006
Grafica especializada 01/01/2006 25/01/2006
Radio 15/01/2006 15/02/2006
Televisión 25/02/2006 15/03/2006
Se solicita que realice para el informe de presentación de la campaña un Grafico Pe
rsonalizado de
Gantt donde se visualicen las diferentes tareas del Proyecto en el Eje X, y en el E
je Y se muestren
las fechas involucradas.

El grafico deberá presentar:

• Titulo del mismo, y títulos de ambos ejes (no leyenda de referencias).


• Valores de duración de cada una de las tareas en el interior de cada barra
• Formatos de área de grafico y trazado idénticos.
• Formatos del área de las series en color azul.
COMPENDIO

PRUEBAS

MACROS

EN

EXCEL
Prueba Módulo de Macros en Excel

Ejercicio 1

Dado el archivo que le proporcionó el docente. En la hoja 1 se encuentra un listado


de cheques en
cartera de la empresa. Determinados cheques van venciendo, y se debe ir pintando de
rojo los que
vayan venciendo (utilizar como parámetro la fecha actual del sistema (función DATE)
).
Se pretende que mediante un macro, se obtenga la suma de los importes de cheques ve
ncidos.

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 l
a empresa.

Nota:

• Generar un botón sobre la hoja 1 para el macro del ejercicio 1.


Generar un botón en la barra de herramientas para ejecutar el macro del ejercicio 2
.
Prueba Final
Macros en Excel
Ejercicio 1

Realice una macro que guarde en una base de datos de “Liquidaciones de Sueldo”, los
siguientes
datos:
9 Nombre y Apellido del Empleado
9 Cargo en la Empresa
ƒ Cadete
ƒ Auxiliar
ƒ Administrativo
ƒ Encargado
ƒ Gerente
9 Fecha de Pago
9 Días de Ausencia
Además deberá agregarse en la base de datos nuevas columnas referidas a:
9 Sueldo Nominal
9 Aportes
9 Sueldo Liquido

Los Sueldos Nominales son los siguientes:


ƒ Cadete; $4000
ƒ Auxiliar; $5500
ƒ Administrativo; $7000
ƒ Encargado; $12000
ƒ Gerente; $25000
Los Aportes son los siguientes:
ƒ Cadete; 10% sobre Sueldo Nominal
ƒ Auxiliar; 12% sobre Sueldo Nominal
ƒ Administrativo; 15% sobre Sueldo Nominal
ƒ Encargado; 18% sobre Sueldo Nominal
ƒ Gerente; 22% sobre Sueldo Nominal
El Pago del Salario en efectivo se realiza de acuerdo a la siguiente regla:
ƒ
Si las inasistencias son nulas se lo premia con un incentivo de 5% sobre (Sueldo
Nominal‐ Aportes).
Sueldo Liquido = (Sueldo Nominal ‐ Aportes)* 1.05
ƒ
Si falto 3 o menos días tiene una penalización de 2% sobre (Sueldo Nominal ‐ Aporte
s)
Sueldo Liquido = (Sueldo Nominal ‐ Aportes)* 0.98
ƒ
Si falto mas de 3 días tiene una penalización de 5% sobre (Sueldo Nominal – Aportes
)
Sueldo Liquido = (Sueldo Nominal ‐ Aportes)* 0.95

La funcionalidad de dicha macro deberá incluir:


¾ En la primer fila de la Base de datos, los títulos de cada variable.
¾ La posibilidad de utilizar dicha macro en repetidas ocasiones y
que no se eliminen
antiguos registros
¾
La posibilidad de elegir a continuación de cada registro estas 2 opciones:
ƒ Ingresar un nuevo registró a continuación.
ƒ Dejar de ingresar nuevos registros.
Prueba Final
Macros en Excel
Ejercicio 1

Realice una macro que guarde en una base de datos de “Facturación de Llamadas”, los
siguientes
datos:

Datos que cargara el usuario a través de un InputBox:


9 Fecha actual, (utilice la función Now())
9 Región de la Sucursal desde donde se realizo la llamada
ƒ Montevideo
ƒ Maldonado
ƒ Rocha
ƒ Rivera
9 País de Destino
ƒ Argentina
ƒ España
ƒ EEUU
ƒ Brasil
ƒ Otros
9 Minutos enteros de la llamada

A partir de los anteriores datos que cargara el usuario al ejecutar la macro, se de


berán calcular los
siguientes campos automáticamente:
9 Costo por minuto
ƒ Argentina; 0,5 USD.
ƒ España; 2 USD.
ƒ EEUU; 1,5 USD.
ƒ Brasil; 1 USD.
ƒ Otros; 3 USD.
9 Costo Total
ƒ Costo Total = Costo por minuto * Minutos Enteros de la llamada
9 Descuento
ƒ
Llamadas hechas desde la sucursal Rocha o Rivera, tienen un 5% de descuento.
9 Precio Final
ƒ Precio Final = Costo Total – Descuento

La funcionalidad de dicha macro deberá incluir:


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

You might also like