Documentos de Académico
Documentos de Profesional
Documentos de Cultura
EXCEL
AVANZADO
BIOS
Manual Excel Avanzado
BIOS
=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:
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.
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.
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.
=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.
=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.
=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.
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:
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:
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 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 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
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
Tenemos otras opciones al desplegar el cuadro Permitir, que las usaremos en algunos
ejemplos
posteriores.
Poniendo otro ejemplo:
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).
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.
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
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.
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:
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.
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.
Como vemos tenemos la opción de eliminar una de las condiciones propuestas, solo 2,
o todas las
condiciones que hayamos determinado.
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
En este caso vemos la función BUSCARV, aplicada para buscar en base al código del a
rtículo el
stock del mismo.
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.
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:
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:
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.
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).
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.
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])
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
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 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
rá
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:
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.
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.
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é.
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.
ANÁLISIS
DE
INFORMACIÓN
Módulo: Análisis de Información
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.
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:
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.
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
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
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:
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 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)
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.
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.
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):
• 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.
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
.
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.
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:
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.
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:
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:
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.
Al presionar el botón siguiente, vemos que el asistente cambia con respecto al que
veíamos en el
capítulo anterior:
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.
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.
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.
GRÁFICOS
PERSONALIZADOS
FORMULARIOS
Módulo de Gráficos Personalizados y Formularios
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
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:
•
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.
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:
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.
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.
• Á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.
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
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.
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.
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:
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.
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 %).
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.
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.
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:
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.
Para que automáticamente podamos determinar el precio de la habitación por DIA, uti
lizaremos
una función de Excel que será INDICE:
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 la celda B5, aplicaremos como fórmula una referencia a la celda H2 ya que esta c
ontendrá el
valor seleccionado en el formulario.
=SI (H3; 5; 0) * B5
• 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.
Para esto, comenzaremos por encender la grabadora, para que capte cada una de las t
areas que
vamos realizando:
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).
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 este caso el usuario que presione la combinación CTRL + t ejecutará el macro que
desarrollamos anteriormente.
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:
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
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:
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.
Conceptos esenciales.
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.
ActiveSheet.Range(“A1”).value
Sheets(1).Range(“A1”).Value
Aquí hacemos referencia a la hoja con índice 1, celda A1 del libro activo
Sheets(“Hoja1”).Range(“A1”).Value
Repetimos que en forma predeterminada Excel toma Activesheet cuando nos referimos a
una
celda determinada.
Métodos.
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.
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 procedimiento.
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
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.
Sub Primero
Application.WorkBooks(1).WorkSheets(1).Range("A1").Value = "Hola"
End Sub
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.
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
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.
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.
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.
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.
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.
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.
Valor por defecto: Es el valor que mostrará por defecto el cuadro donde el usuario
entra el valor.
Parámetro opcional.
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
Texto = InputBox("Introducir un texto " & Chr(13) & "Para la casilla A1", "Entrada
de datos")
ActiveSheet.Range("A1").Value = Texto
End Sub
Sub Entrar_Valor
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
Texto = InputBox("Introducir un texto " & Chr(13) & "Para la casilla " & Casilla ,
"Entrada de datos")
ActiveSheet.Range(Casilla).Value = Texto
End Sub
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.
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
Texto = InputBox("Introducir un texto " & Chr(13) & "Para la casilla A1", "Entrada
de datos")
ActiveSheet.Range("A1").Value = Testo
End Sub
79.228.162.514.264.337.593.543.950.335
sin punto
decimal; +/‐
7,9228162514264337593543950335 con
Ejemplo 5
Option Explicit
Sub Sumar()
End Sub
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()
End Sub
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"
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"
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,
Por Ejemplo:
Dim R As Range
Por Ejemplo
Set R= ActiveSheet.Range("A1:B10")
Set Hoja = ActiveSheet
Set Hoja = WorkSheets(1)
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.
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.
Sub Condicional()
End If
ActiveSheet.Range("A3").Value = ActiveSheet.Range("A1").Value ‐ _
ActiveSheet.Range("A2").Value
End Sub
Ejemplo 7.
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()
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()
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%
ActiveSheet.Range("A2").Value = 0,1
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
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.
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()
Else
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.
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()
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
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.
Sub Ejemplo_13()
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
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.
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()
Valor1 = ActiveSheet.Range("A1").Value
Valor2 = ActiveSheet.Range("A2").Value
Signo = ActiveSheet.Range("B1").Value
Total=0
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,
Case valores :
Instrucciones.
Case valores :
Instrucciones.
.
.
Case valores:
Instrucciones.
Case Else
End Select
Ejemplo 16.
Sub Ejemplo_16()
Valor1 = ActiveSheet.Range("A1").Value
Valor2 = ActiveSheet.Range("A2").Value
Signo = ActiveSheet.Range("A3").Value
Case "+"
Case "‐"
Case "x"
Total = Valor1 * Valor2
Case ":"
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.
Sub Ejemplo_17()
ActiveSheet.Range("A1").Value = Nota1
ActiveSheet.Range("A2").Value = Nota2
ActiveSheet.Range("A3").Value = Nota3
ActiveSheet.Range("A4").Value = 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.
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.
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).
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).
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.
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:
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.
Sub Ejemplo_19()
With ActiveSheet
.Range("A1").Value = Producto
.Range("A2").Value = Precio
.Range("A3").Value = Cantidad
.Range("A4").Value = Total
End With
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 ()
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
ActiveSheet.Range("A5").Value = 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.
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:
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.
Sentencia 1
Sentencia 2
.
.
Sentencia N
Next Variable
Ejemplo 21.
Sub Ejemplo_21()
Dim i As Integer
Dim Total As Integer
Dim Valor As Integer
For i=1 To 10
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()
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()
Fila = ActiveCell.Row
Columna = ActiveCell.Column
For i = 1 To 10
ActiveSheet.Cells(Fila, Columna).Value = i
Fila = Fila + 1
Next i
End Sub
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.
Sentencia1
Sentencia2
.
.
Sentencia N
En Visual Basic
Do While (se cumpla la condición)
Sentencia1
Sentencia2
.
.
Sentencia N
Loop
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()
‘ Activar hoja1
WorkSheets("Hoja1").Activate
‘ Activar casilla A2
ActiveSheet.Range("A2").Activate
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
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
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()
WorkSheets("Hoja1").Activate
ActiveSheet.Range("A1").Activate
‘ Buscar la primera celda vacía de la columna A y convertirla en activa
ActiveCell.Offset(1,0).Activate
Loop
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
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.
Do
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
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.
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
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()
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
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.
Sub Sumar()
Do
' Entrar un valor y convertirlo a numérico
Valor = Val(InputBox("Entrar un valor", "Entrada"))
' Si el valor es distinto de 0
End If
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.
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
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:
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
Se pide:
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
A B
1 Precio 20
2 Cantidad ?
3 Importe de ventas =B2*B3
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
Se pide:
Se pide:
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
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:
EJERCICIO 4
OBTENER:
$
14,17 300 400 500 600
15%
20%
25%
30%
35%
40%
EJERCICIO 7 (Filtros)
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:
GRÁFICOS
PERSONALIZADOS
FORMULARIOS
Ejercicios Módulo de Gráficos Personalizados y Formularios.
Ejercicio 1
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
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
Ejercicio 3
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
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
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
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
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
Ejercicio 3
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
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.
Ejercicio 5
PRUEBAS
FUNCIONES
AVANZADAS
COMPENDIO DE PRUEBAS Y EXAMENES DE PRÁCTICA
Funciones Avanzadas
Prueba Final
Ejercicio 1
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
Cedula:
Nombre:
Apellido:
Direccion:
Suma Ventas:
Cuenta de Devoluciones:
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
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.
Se Pide:
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).
Nombre de Equipo:
Participante:
Ejercicio 2
1)
Un cuadro de consulta como el siguiente, en el cual a partir del ingreso de datos c
omo el
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:
Ejercicio 3
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
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
Ejercicio 1
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
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
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
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
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á
EJERCICIO 3
Utilizando el Archivo Seminarios.xls, utilizar filtros para:
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:
PRUEBAS
GRÁFICOS
PERSONALIZADOS
Prueba Final
Módulo: “Gráficos Personalizados”
Ejercicio Nº 1
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
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
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
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
Ejercicio Nº 2
Copie la siguiente tabla a una nueva hoja del libro con el cual esta trabajando y n
ómbrela
“Pirámide Poblacional”.
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
EJERCICIO 1
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
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
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
Ventas Anuales
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
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
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
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
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)
Ejercicio Nº 4 (Opcional 2)
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.
PRUEBAS
MACROS
EN
EXCEL
Prueba Módulo de Macros en Excel
Ejercicio 1
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 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
Realice una macro que guarde en una base de datos de “Facturación de Llamadas”, los
siguientes
datos: