Curso Excel XP: Fórmulas y Matrices
Curso Excel XP: Fórmulas y Matrices
1 / 19
Capítulo: Introducción
En esta primera lección de la segunda parte del curso de Excel XP, sólo queríamos
hacerle una recomendación general sobre el buen uso de las fórmulas en Excel y que
queremos que tenga en cuenta.
Un punto importante para el trabajo continuado con Excel es tener claro que todas las
hojas que hagamos tenemos que pensar que sean lo más dinámicas y lo más
automatizadas posible. Tenemos que acostumbrarnos que la hoja con la que estamos
trabajando, si realmente nos es útil, puede ser que se vaya ampliando poco a poco, con
lo que nos tendremos que acostumbrar a utilizar fórmulas fácilmente editables y
modificables.
Ahora puedes
Un ejemplo.-Imagine que queremos hacer una suma de cuatro valores que tenemos en enseñar a más de
diferentes celdas: pongamos A1; B1; C1; D1. Para poner la suma de estos valores en la 4.000.000 de
celda F1, podemos escribirla de dos formas: =A1+B1+C1+D1 o bien =SUMA(A1:D1). usuarios
Ahora imagine que insertamos una nueva columna entre la B y la C y escribimos un
nuevo valor, que igualmente queremos que se sume en la celda F1, que ahora habrá
pasado a ser G1.
Mejora tu calidad de
Le invito a que te hagas un pequeño ejemplo con ambos casos y veas que es lo que vida con MailxMail
ocurre y que es lo más cómodo y en cual de los dos casos tenemos que tener menos
miedo de equivocarnos y de estar verificando fórmulas.
La verdad es que en el momento en el que se acostumbra a utilizar Excel cada vez busca
el realizar hojas, intentar completarlas al máximo y después al irlas completando
olvidarse de las modificaciones y que el resultado de las fórmulas esté correctamente.
Le aconsejo encarecidamente que siempre que pueda utilice los rangos de celdas en una
fórmula, aunque sean de pocas celdas. Los rangos facilitan mucho el trabajo.
Otro punto muy importante dentro de las hojas de Excel es la correcta utilización de las
celdas absolutas ($B$4). En muchas ocasiones realizamos una hoja en la que tenemos
una celda que siempre será un valor de referencia que tendremos en cuenta para una
serie de fórmulas. Normalmente, lo que nos pasa es que, en un primer momento, puede
ser que tengamos una hoja pensada de una forma concreta, no veamos una modificación
inminente y no pongamos esta celda como �absoluta�, pero después al necesitar
ampliar esta hoja, añadiendo filas y columnas, nos damos cuenta que los valores de las
fórmulas empiezan a ser diferentes de los que habían sido hasta este momento. Esto se
debe a que la referencia a la celda que hubiésemos querido sea fija se va modificando,
con lo que puede apuntar a valores que nos pueden producir un error en un resultado o
incluso un error en la fórmula en sí.
Es por esto que también le recomiendo que siempre que piense que un valor de una
celda debe actuar como un valor absoluto, no se lo piense y convierta esa celda de la
fórmula en una celda absoluta. Seguramente esto le evitará muchos problemas a la
larga.
La última recomendación que te hago antes que entres de lleno en la segunda parte del
curso es que hagas todas las hojas de Excel que puedas e inventes todos los ejemplos
que puedas por muy sencillos que te puedan parecer, seguro que poco a poco los
amplias y los complicas.
1 2345
Ahora puedes
1,1 1,2 1,3 1,4 1,5 enseñar a más de
4.000.000 de
usuarios
2,1 2,2 2,3 2,4 2,5
En Excel, las fórmulas que hacen referencia a matrices se encierran entre corchetes {}.
Hay que tener en cuenta al trabajar con matrices lo siguiente:
-No se puede cambiar el contenido de las celdas que componen la matriz
-No se puede eliminar o mover celdas que componen la matriz
-No se puede insertar nuevas celdas en el rango que compone la matriz
En la celda B4, observarás que hemos hecho una simple multiplicación para calcular el
precio total de las unidades. Lo mismo pasa con las demás fórmulas.
En vez de esto, podríamos haber combinado todos los cálculos posibles en uno solo
utilizando una fórmula matricial.
2. Borra las celdas adecuadas para que quede la hoja de la siguiente forma:
3. Sitúa el cursor en la celda B7 e introduce la fórmula:
=SUMA(B3:E3*B4:E4)
Observa cómo hemos obtenido el mismo resultado tan sólo con introducir una fórmula.
Observa la misma en la barra de fórmulas. Ahora hay que tener cuidado en editar celdas
que pertenezcan a una matriz, ya que no se pueden efectuar operaciones que afecten
sólo a un rango de datos. Cuando editamos una matriz, editamos todo el rango como si
de una sola celda se tratase.
Observa que Excel ha ido multiplicando los valores de la matriz por los números
introducidos en la fórmula:
Cuando trabajamos por fórmulas matriciales, cada uno de los elementos de la misma,
debe tener idéntico número de filas y columnas porque, de lo contrario, Excel expandiría
las fórmulas matriciales. Por ejemplo:
Observemos que Excel devuelve un mensaje de error diciendo que el rango seleccionado
es diferente al de la matriz original.
-Libro independiente: un libro que contiene vínculos con otros libros y, por lo tanto,
depende de los datos de los otros libros.
-Libro de trabajo fuente: libro que contiene los datos a los que hace referencia una
fórmula de un libro dependiente a través de una referencia externa.
Ahora tenemos dos ventanas correspondientes a los dos libros de trabajo abiertos. Para
pasar de una a otra, debemos activarla con un clik en su título o en cualquier parte de la
misma. Por ejemplo, si deseamos situar el cursor en la ventana inactiva, primero
debemos pulsar un click para activarla y después otro click para situar ya el cursor.
Observa la barra de fórmulas. Ahora no vemos el camino marcado que hace referencia a
un archivo grabado en disco. Cuando tenemos abiertos los archivos, no se observa el
camino de unidades y carpetas.
Si ahora modificamos cualquier dato del libro empresa1, se actualizarían las fórmulas
del libro empresa2.
Auditoría de hojas.- Esta sencilla opción sirve para saber a qué celdas hace referencia
una fórmula determinada, posibles errores en fórmulas, etc.
Excel nos muestra que la fórmula hace referencia al rango B2:C2 (precedentes) y que a
su vez, otra celda, la E2, depende del resultado de la celda actual (dependientes).
A través de esta opción podemos localizar qué celdas dependen de otras en sus fórmulas;
a qué celdas hace referencia la fórmula e; incluso podemos, en caso de error, localizar el
mismo (opción Rastrear error)
La hoja está protegida por completo. Imaginemos ahora que sólo deseamos proteger las
celdas que contienen las fórmulas, dejando libres de protección el resto de celdas.
Con la opción anterior (Bloqueada), hemos preparado un rango de celdas para que esté
libre de protección cuando decidamos proteger toda la hoja. De esta forma, no habrá
fallos de borrados accidentales en celdas importantes.
Si elegimos la opción Proteger libro, podemos proteger la estructura entera del libro
(formatos, anchura de columnas, colores, etc...)
Subtotales.- En listas de datos agrupados por un campo, es útil mostrar a veces, no sólo
el total general de una columna, sino también los sub-totales parciales de cada elemento
común.
[Link] el cuadro.
Observa la agrupación que ha hecho Excel, calculando las ventas por marcas y
obteniendo las sumas parciales de cada una de ellas.
[Link] la casilla Reemplazar subtotales actuales porque borraría los que ya hay
escritos.
[Link].
Si se quisiera crear subtotales por otro campo (por ejemplo el campo País), deberíamos
primero ordenar la lista por ese campo para que Excel pueda agrupar posteriormente la
tabla.
Para crear tablas dinámicas hemos de tener previamente una tabla de datos preparada y
posteriormente acceder a Datos - Informe de tablas y gráficos dinámicos.
Ahora puedes
enseñar a más de
4.000.000 de
usuarios
Mejora tu calidad de
vida con MailxMail
[Link] toda la tabla y accede a Datos - Informe de tablas y gráficos
dinámicos.
En primer lugar aparece una pantalla que representa el primer paso en el Informe de
tablas y gráficos dinámicos. Aceptaremos la tabla que hay en pantalla.
[Link] en Siguiente.
Como último paso, Excel nos propone crear la tabla en la misma hoja de trabajo a partir
de una celda determinada, o bien en una hoja completamente nueva (opción elegida por
defecto).
Se crea una hoja nueva con la estructura de lo que será la tabla dinámica. Lo que hay
que hacer es "arrastrar" los campos desde la barra que aparece en la parte inferior, hacia
la posición deseada en el interior de la tabla.
Hemos diseñado la estructura para que nos muestre los productos en su parte izquierda,
los meses en columnas, y además, el precio de cada producto en la intersección de la
columna.
Observa también que se han calculado los totales por productos y por meses.
Al actualizar una tabla, Excel compara los datos originales. Pero si se han añadido nuevas
filas, tendremos que indicar el nuevo rango accediendo al paso 2 del Asistente. Esto
podemos hacerlo accediendo nuevamente a Datos - Informe de tablas y gráficos
dinámicos y volviendo atrás un paso.
Es posible que al terminar de diseñar la tabla dinámica nos interese ocultar algún
subtotal calculado. Si es así, debemos pulsar doble click en el campo gris que representa
el nombre de algún campo, y en el cuadro de diálogo que aparece, elegir la opción
Ninguno. Desde este mismo cuadro podemos también cambiar el tipo de cálculo.
Es posible también mover los campos de sitio simplemente arrastrando su botón gris
hacia otra posición. Por ejemplo, puede ser que queramos ver la tabla con la disposición
de los campos al revés, es decir, los productos en columnas y los meses en filas.
Prueba a mover el Mes y el Producto a la parte izquierda. Verás que ahora se organiza
y suma a través del mes.
Búsqueda de objetivos.- Hay veces en las que al trabajar con fórmulas, conocemos el
resultado que se desea obtener, pero no las variables que necesita la fórmula para
alcanzar dicho resultado. Por ejemplo, imaginemos que deseamos pedir un préstamo al
bando de 2.000.000 de pts y disponemos de dos años para pagarlo. Veamos cómo se
calcula el pago mensual:
Ahora podemos variar los valores de las tres casillas superiores para comprobar
diferentes resultados. Pero vamos a lo que vamos: imaginemos que sólo disponemos de
80.000 pts para pagar cada mes. El banco actual nos ofrece un interés del 4,5%, así que
vamos a ver qué interés tendríamos que conseguir para llegar a pagar las 80.000 que
podemos pagar. Podríamos ir cambiando manualmente la celda del interés hasta
conseguir el resultado requerido, pero a veces hay cálculos complejos y nos llevaría
tiempo ir probando con decimales hasta conseguirlo.
Para ello, tenemos la opción Buscar objetivos, a través de la cual Excel nos
proporcionará el resultado buscado.
Sin embargo, si observas la celda del interés, aparece en negativo, por lo que el
resultado no ha sido el esperado (evidentemente, el banco no nos va a pagar el interés a
nosotros), por lo que nos vemos obligados a cambiar otra celda.
El capital no podemos cambiarlo. Necesitamos los 2.000.000, así que, vamos a intentarlo
con los años.
Observa que han aparecido decimales pero; ya sabemos que podemos cambiar el número
de meses a pagar si es que no podemos tocar el interés. Quita los decimales.
Necesitaremos dos años y dos meses.
Posiblemente otro banco nos ofrezca un interés más bajo, por lo que podemos volver a
buscar un nuevo valor para el período.
Para trabajar con la opción de Buscar objetivos, hay que tener presente lo siguiente:
-Una celda cambiante (variable) debe tener un valor del que dependa la fórmula para la
que se desea encontrar una solución específica.
-Tabla de una variable: utilizada cuando se quiere comprobar cómo afecta un valor
determinado a una o varias fórmulas.
-Tabla de dos variables: para comprobar cómo afectan dos valores a una fórmula.
A continuación, modificaremos la tabla de amortización del préstamo de forma que Excel calcule
varios intereses y varios años al mismo tiempo. Para crear una tabla hay que tener en cuenta:
-La celda que contiene la fórmula deberá ocupar el vértice superior izquierdo del rango que Ahora puedes
contendrá el resultado de los cálculos. enseñar a más de
4.000.000 de
-Los diferentes valores de una de las variables deberán ser introducidos en una columna, y los usuarios
valores de la otra variable en una fila, de forma que los valores queden a la derecha y debajo de
la fórmula.
-El resultado obtenido es una matriz, y deberá ser tratada como tal.
[Link] la siguiente tabla. En ella, hemos dispuesto varios tipos de interés y varios años para Mejora tu calidad de
ver distintos resultados de una sola vez. vida con MailxMail
[Link] seleccionar el rango C6:F9 y arreglarlo de forma que no se vean decimales, formato
millares y ajustar el ancho de las columnas.
De esta forma, podemos comprobar de una sola vez varios años y varios tipos de interés.
Escenarios.- Un Escenario es un grupo de celdas llamadas Celdas cambiantes que se guarda con
un nombre.
[Link] una copia de la hoja con la que estamos trabajando y en la copia, modifica los datos:
[Link]ócales el nombre:
[Link] y modifica el siguiente cuadro:
[Link].
Acabamos de crear tres escenarios con distintas celdas cambiantes para un mismo modelo de
hoja y una misma fórmula.
[Link] lo mismo para los otros dos escenarios. Muéstralos y observa el resultado.
Podemos también crear un resumen de todos los escenarios existentes en una hoja para
observar y comparar los resultados.
Observa que Excel ha creado una nueva hoja en formato de sub-totales (o en formato tabla
dinámica si se hubiera elegido la otra opción). Esta hoja puede ser tratada como una hoja de
sub-totales expandiendo y encogiendo niveles.
Capítulo: El programa solver
El programa Solver se puede utilizar para resolver problemas complejos; creando un modelo de hoja
con múltiples celdas cambiantes. Mejora tu calidad
vida con MailxMa
B9 =B4-B8 B3 =35*B2*(B6+3000)^0,5
B4 =B3*35
Hemos calculado el beneficio restando los gastos de los ingresos. Por otro lado, los ingresos son
proporcionales al número de unidades vendidas multiplicado por el precio de venta (35 pts).
Las unidades que esperamos vender en cada trimestre son el resultado de una compleja fórmula que
depende del factor estacional (en qué períodos se espera vender) y el presupuesto en publicidad
(supuestas ventas favorables). No te preocupes si no entiendes demasiado esta fórmula.
El objetivo es establecer cuál es la mejor distribución del gasto en publicidad a lo largo del año. En
todo caso, el presupuesto en publicidad no superará las 40.000 pesetas anuales.
Resumiendo: queremos encontrar el máximo beneficio posible (F9), variando el valor de unas
determinadas cedas, que representan el presupuesto en publicidad(B6:E6), teniendo en cuenta que
dicho presupuesto no debe exceder las 40.000 pesetas al año.
El campo Cambiando las celdas indicará las celdas cuyos valores se pueden cambiar para obtener el
resultado buscado. En nuestro ejemplo serán aquellas celdas donde se muestra el valor del gasto en
publicidad para un período determinado.
[Link]úa el cursor en el campo Cambiando las celdas y pulsa el botón rojo (minimizar diálogo).
A continuación vamos a añadir las restricciones que se deberán cumplir en los cálculos. Recuerda que
el presupuesto en publicidad no excederá las 40.000 pts.
[Link] las demás restricciones correspondientes a los tres períodos que faltan de la mima
forma.
Observa que Excel ha encontrado una solución que cumple todos los requisitos impuestos. Ahora
podemos aceptarla o rechazarla.
[Link] en Aceptar.
Observa que ahora la hoja de cálculo muestra el beneficio máximo que podemos conseguir jugando
con el presupuesto en publicidad.
Como detalle curioso, observa cómo no deberíamos programar ninguna partida presupuestaria para la
publicidad del primer período.
Configuración del Solver.- Desde Herramientas - Solver (botón Opciones...) tenemos varias
opciones para configurar Solver. Las más importantes son:
-Tiempo máximo: segundos transcurridos para encontrar una solución. El máximo aceptado es de
32.767 segundos.
-Iteraciones: número máximo de iteraciones o cálculos internos.
-Precisión: número fraccional entre 0 y 1 para saber si el valor de una celda alcanza su objetivo o
cumple un límite superior o inferior. Cuanto menor sea el número, mayor será la precisión.
-Tolerancia: tanto por ciento de error aceptable como solución óptima cuando la restricción es un
número entero.
-Usar escala automática: se activa si la magnitud de los valores de entrada y los de salida son muy
diferentes.
Para ello, necesitaremos una aplicación especial llamada Microsoft Query que nos
permitirá acceso a datos externos creados desde distintos programas. Mejora tu calidad de
vida con MailxMail
También es posible que sólo nos interese acceder a un conjunto de datos y no a todos los
datos de la base por completo; por lo que utilizaremos una Consulta que son
parámetros especiales donde podemos elegir qué datos queremos visualizar o importar
hacia Excel.
Si deseamos acceder a este tipo de datos, es necesario haber instalado previamente los
controladores de base de datos que permiten el acceso a dichos datos. Esto lo puedes
comprobar desde el Panel de Control y accediendo al icono:
[Link] en Seleccionar
Ahora debemos indicarle la ruta donde buscará el archivo a importar. Nosotros hemos
elegido la base de datos [Link] que viene de ejemplo en la instalación de
Microsoft Office XP. La puedes encontrar en la carpeta C:\Archivos de programa\
Microsoft Office\Office\Ejemplos. Observa la siguiente ilustración:
[Link] los cuadros de diálogo que quedan hasta que aparezca en pantalla el asistente
de creación de consultas tal y como aparece en la página siguiente:
Ahora podemos elegir de entre los campos alguna condición para la importación de los
datos. Es posible que sólo nos interesen los clientes cuya población sea Barcelona. Si no
modificamos ninguna opción, Excel importará todos los datos.
[Link] en Siguiente.
A continuación, podríamos importar los datos directamente a Excel, pero vamos a ver
cómo funciona la ventana de Query. También podríamos guardar la consulta.
[Link] en Finalizar.
Observa las partes de la pantalla, en la parte superior tenemos la típica barra de botones.
En la parte central, el nombre y los campos de la tabla que hemos elegido, así como la
Mejora tu calidad de
vida con MailxMail
ventana de criterios de selección; y en la parte inferior, los campos en forma de columna.
Devolver datos a Excel.- Ahora podemos tratar los datos como si fueran columnas
normales de Excel, pero con la ventaja que también podemos modificar algunos
parámetros desde la barra de herramientas que aparece.
También podemos indicar que se actualicen los datos externos cuando se abra el libro
que los contiene; para ello hay que activar la casilla Actualizar al abrir el archivo.
Recuerda que, para que sea posible la actualización de los datos externos, se necesita
almacenar la consulta en el mismo libro o tener la consulta guardada y ejecutarla de
nuevo.
Impresión de una hoja.- Utilizando la última hoja que tenemos en pantalla, veamos qué
hacer en el caso de impresión de una hoja. En principio, tenemos el botón Vista
preliminar situado en la barra superior de herramientas; que nos permite obtener una
visión previa del resultado de la hoja antes de imprimir.
[Link] a esta opción: observa la parte superior: tenemos varios botones para controlar
los márgenes (arrastrando), o bien para modificar las características de la impresión
(botón Configurar)
Desde este cuadro de diálogo, podemos establecer el tamaño del papel, orientación en la
impresora, cambiar la escala de impresión, colocar encabezados, etc.
Observa que en la parte superior existen unas pestañas desde donde podemos modificar
todos estos parámetros. Puedes realizar distintas pruebas y combinaciones sin llegar a
imprimir; así como, observar el resultado en la pantalla de presentación preliminar.
Selección del área de impresión.- Es posible seleccionar sólo un rango de celdas para que
se imprima. Para hacer esto, sigue estas instrucciones.
A partir de introducir una nueva palabra en el diccionario, ésta deja de ser incorrecta.
Hay que hacer notar que Excel comparte los diccionarios con otras aplicaciones de Office,
por lo que si hemos añadido palabras, éstas estarán disponibles en una futura corrección
desde Word, por ejemplo.
[Link] las teclas o tareas, una tras otra, teniendo cuidado de no equivocarnos.
Las macros también pueden ejecutarse pulsando una combinación de teclas específica,
por lo que ni siquiera debemos acceder a un menú para invocar a la macro, o bien
asignársela a un botón.
Cuando creamos una macro, en realidad Excel está creando un pequeño programa
utilizando el lenguaje común en aplicaciones Office: el Visual Basic.
A partir de estos momentos, todo lo que hagas (escribir, borrar, cambiar algo...) se irá
grabando. Debemos tener cuidado, porque cualquier fallo también se grabaría.
[Link]ócate en la Hoja2
[Link] su comportamiento.
La macro ha ido realizando paso a paso todas las acciones que hemos preparado.
Excel crea sus macros utilizando el lenguaje común de programación de los componentes
de Office: el Visual Basic; por lo que, si tenemos idea de dicho lenguaje, podremos
modificar el código de la macro manualmente.
Pero vamos a crear una macro más completa. Supongamos que queremos conseguir un
informe mensual de una tabla de datos de ventas, añadiendo columnas, clasificándolas,
imprimirlas, clasificarlas con otros criterios, etc. Tendrás que abrir el fichero que se
adjunta en esta lección y trabajar con él.
Imagina que se trata de una empresa textil que tiene que elaborar una macro que realice
tareas de fin de mes. La hoja nos muestra una clasificación por estados, canales
(minorista y mayorista), categorías, precios y cantidad. La macro automatizará el trabajo
de forma que cada mes podremos recoger un informe de los pedidos de mes anterior
extrayéndolo del sistema de proceso de pedidos.
El secreto de una macro larga es dividirla en varias macros pequeñas y luego unirlas. Si
intentamos crear toda una gran macro seguida, habrá que realizar cuatrocientos pasos,
cruzar los dedos, desearse lo mejor y; que no hayan demasiados fallos.
La hoja que hemos recuperado nos muestra las unidades y totales netos. Los pedidos del
mes anterior, Marzo de 1994, se encuentran en la hoja 2. Como vamos a crear una
macro, y estamos sometidos al riesgo de fallos, vamos a crear una copia de nuestra hoja.
De todas formas, aunque la macro funcione perfectamente, tendremos una copia para
practicar con ella.
[Link] una copia de la hoja Pedidos (arrastrándola hacia la derecha con la tecla de
control pulsada).
[Link] Ctrl + *.
[Link] la grabación.
Observa que hemos finalizado la macro sin desactivar la última selección de celdas. Con una
simple pulsación de la tecla Esc y después mover el cursor, habría bastado, pero lo hemos
hecho así para que puedas ver cómo se modifica una macro.
Si todos los pasos se han efectuado correctamente, la macro debería funcionar sin problemas.
Ver el código de la macro.- Hemos dicho que Excel trabaja sus macros básicamente en el
lenguaje común Visual Basic. Veamos qué ha sucedido al crear la macro a base de pulsaciones
de teclas y teclear texto:
-Pantalla de proyecto: es donde se almacenan los nombres de las hojas y las macros que
hay creadas.
-Pantalla de módulos: un módulo es una rutina escrita en Visual Basic que se almacena en
forma de archivo y que puede ser utilizada en cualquier programa.
-Pantalla de código: aquí es donde podemos escribir y modificar el código de la macro actual.
[Link] la pantalla de Proyecto, pulsa doble click en Módulos y luego en Módulo 1. Aparecerá el
código Visual Basic en la parte derecha.
Si ya conoces Visual Basic.- Si ya has programado con Visual Basic verás que el sistema para
Excel es prácticamente idéntico. No tendrás demasiados problemas en comprender las
sentencias de programación.
Si no conoces Visual Basic: aunque este curso no trata de programación, puede servirte
como iniciación a la misma aunque no hayas hecho nunca. De esta forma, te pones en contacto
con Visual Basic, uno de los más extendidos lenguajes mundialmente.
Normalmente, una rutina en lenguaje Visual Basic de macros, se lee de derecha a izquierda.
Fíjate que comienza con la sentencia Sub RellenarEtiquetas(), esto es, la orden Sub y el
nombre de la macro. Fíjate también que la rutina finaliza con la orden End Sub. Todas las
órdenes contenidas entre ellas son las secuencias de pulsaciones que has ido ejecutando en la
creación de la macro.
Recuerda que la primera pulsación fue ir a la primera celda con la combinación Ctrl + Inicio.
Observa la traducción en Visual Basic:
Range("A1").Select
[Link]
Selecciona la región actual de la selección original.
[Link](xlCellTypeBlanks).Select
Selecciona las celdas en blanco de la selección actual.
Selection.FormulaR1C1 = "=R[-1]C"
Significa: "La fórmula para todo lo seleccionado es...". La fórmula =L(-1) significa: "leer el
valor de la celda que se encuentra justo encima de mí".
Cuando utilizamos Ctrl + Intro para rellenar celdas, la macro tendrá la palabra Selection
delante de la palabra Fórmula. Cuando se introduce Intro para rellenar una celda, la macro
tendrá la palabra ActiveCell delante de la palabra Fórmula.
Mejora tu calidad de
[Link] la macro y pulsa en el botón Opciones.
vida con MailxMail
7.Añade al final del código y antes del fin de la rutina End Sub las siguientes líneas:
[Link] = False
Range("A1").Select
Observa que las últimas líneas hacen que el modo de Copiar se cancele y el cursor
vuelva a la celda A1. Es lo mismo que si hubiésemos pulsado la tecla Esc y Ctrl + Inicio
cuando grabábamos la macro.
Ver cómo trabaja una macro paso a paso.- La ejecución de una macro es muy rápida. A
veces nos puede interesar ver paso a paso lo que hace una macro, sobre todo cuando
hay algún fallo, para localizarlo y corregirlo.
Segunda tarea: añadir columnas de fechas.- Nuestro informe no incluye la fecha en cada
fila, por lo que vamos a añadir una nueva columna para añadir el mes de cada registro.
Pasos de la macro:
[Link] la hoja.
Evidentemente, cada vez que ejecutemos la macro, Excel rellenará las celdas recién
creadas con la palabra "mar-98". Una solución sería cambiar la macro cada mes con la
nueva fecha, pero no parece la solución más adecuada. Vamos a hacer que el programa
nos pida el mes y posteriormente lo rellene él.
[Link] del cuadro de diálogo y ejecuta la macro de [Link] alguna hoja copia el original.
En alguna hoja copia el original, o bien borra la columna A de la última hoja y ejecuta la
macro.
La orden InputBox es una función de Visual Basic que visualiza un cuadro con un
mensaje personalizado para la entrada de datos cuando se está ejecutando la macro.
Observa que en la hoja tenemos tres precios por diseño: Bajo, Medio y Alto. Si queremos comparar el
valor de los pedidos sin descuento con el de los mismos con descuento, precisaremos añadir en cada fila
la lista de precios. Una vez hayamos observado la lista de precios de cada fila, podremos calcular el
importe total de los pedidos, multiplicando las unidades por los precios.
Finalmente, convertiremos las fórmulas en valores como preparación para añadir los pedidos al archivo
histórico permanente.
En la celda H2 aparece el valor 4.5. Esta fórmula busca el precio Medio (E2) de la primera columna del
rango A2:C4 de la hoja Precios. A continuación devuelve el valor de la columna número 2 de la lista
por ser Minorista la celda C2. El precio para la venta Minorista de un diseño con un precio Medio es de
4.50 dólares.
Las fórmulas de BUSCARV son aún fórmulas. En nuestro archivo histórico de pedidos, no debemos
añadir fórmulas, sino resultados. Vamos a transformar las fórmulas en valores.
13.Cópialo al portapapeles.
Cuarta tarea: Ajustar columnas y abrir histórico de pedidos.- Finalmente, queremos añadir los nuevos
pedidos del mes al archivo histórico acumulativo de pedidos. Necesitamos asegurarnos de que las
columnas de los nuevos pedidos del mes se ajustan adecuadamente a las columnas del archivo de
pedidos.
El archivo histórico de pedidos es un archivo en formato del programa dBASE (dbf) que creó nuestro
compañero Pepito del departamento de Facturación. Vamos a abrirlo desde Excel para manipularlo.
[Link] el archivo [Link] un clic sobre el nombre de dicho archivo. Deberás elegir el tipo
de archivo dbf:
[Link] las cabeceras de las columnas del archivo histórico; son diferentes. Puedes organizarte las
dos ventanas para compararlas. Observa que el orden de las columnas Categoría y Precio no coincide
una hoja con otra. Además, las etiquetas de Unidades y Bruto son diferentes.
[Link] una nueva macro llamada: FijarColumnas.
[Link] con un click la cabecera de la columna E del libro [Link] y elige Edición - Cortar.
[Link] una vez sobre la cabecera de la columna D para seleccionarla y elige Insertar - Cortar celdas.
[Link] a la celda F1 (contiene la palabra Cantidad), escribe en su lugar: Neto y pulsas Intro.
[Link] la grabación.
[Link] el funcionamiento de la macro. Quizá debas hacer una copia de la hoja anterior.
Quinta tarea: Unificar los pedidos.- La última hoja con la macro ejecutada, posee un diseño de columnas
igual que el archivo histórico. Vamos a añadir la hoja a partir de la primera línea en blanco de la parte
inferior del archivo.
[Link]úate en la primera celda en blanco del rango pulsando las teclas Fin, Flecha abajo y de nuevo la
Flecha abajo.
[Link] pulsada la tecla Shift, pulsa las teclas: Fin, Flecha abajo, Fin, Flecha derecha.
[Link] a Insertar - Nombre - Definir para volver a definir el nombre del rango nuevo.
[Link] Base_de_datos
NOTA fíjate que no hemos elegido el mismo nombre que tenía antes pulsando sobre el nombre que
aparece en la ventana, sino que hemos definido un nuevo nombre para el rango. Si hubiéramos elegido
el mismo nombre que tenía, Excel guardaría la antigua definición.
[Link] a Cerrar del menú Archivo.
NOTA en un caso real, ahora podríamos elegir la orden de Guardar, pero en este caso, al ser una
macro de prueba, no grabaremos ningún cambio.
Enlazar todas las macros.- Llega el momento de la verdad. Vamos a crear una macro que ejecute una a
una las demás macros que hemos preparado. Si te has asegurado de que cada macro por separado
funciona, no debe haber ningún problema.
[Link] también una copia de la hoja Pedidos para probar las macros.
Pasos de la macro:
AñadirColumnas
FijarColumnas
AmpliarBaseDatos
Como ya hemos dicho, en un caso real, la última pregunta de si queremos guardar el libro [Link]
contestaríamos que sí.
Vamos a crear una tabla dinámica que muestre las unidades de los pedidos por
categorías, resaltando celdas que contengan ventas excepcionales. Más adelante
crearemos otra tabla para producir gráficos. Ahora puedes
enseñar a más de
4.000.000 de
Macro para crear una tabla dinámica de referencias cruzadas.-
usuarios
[Link] nada en pantalla, abre la hoja [Link] para abrir nuestra base de datos
histórica de pedidos que realizamos en la lección anterior.
Mejora tu calidad de
[Link] a Datos - Informe de tablas y gráficos dinámicos.
vida con MailxMail
[Link] el paso 1, pulsa en Siguiente.
[Link] en Siguiente.
[Link] el último paso, acepta de forma que la tabla se cree en una nueva hoja.
La tabla muestra una información global de los productos, pero vamos a ver la relación
que existe entre las distintas categorías de diseño. Para ello, convertiremos la tabla para
que produzca en porcentajes y así poder comparar mejor la relación existente.
Aparece el cuadro de diálogo del campo de la tabla con información sobre el campo
Suma de unidades.
Ahora nadie podrá ver que el total es el porcentaje 100% del total de la fila.
Crear una macro que marque las excepciones manualmente.- Imaginemos que queremos
marcar en color amarillo todas aquellas celdas cuya cantidad sea superior al número 30.
Manualmente, si la hoja es muy grande, puede ser un trabajo mortal.
[Link] la paleta portátil de colores y selecciona el color amarillo. (El sexto color). El fondo
se convertirá en amarillo.
[Link] hacia abajo en la columna D para la siguiente columna con valor superior al
30%, es decir, la celda D7, y cambia su fondo a amarillo igual que la celda anterior.
Dar formato a una celda para que disponga de color y un aspecto especial puede ser
divertido las dos o tres primeras veces. Pero cuando se repite la misma acción una y otra
vez, puede ser bastante aburrido.
Vamos a crear una macro que mirará si la celda es superior a un valor. Si lo es, le dará el
color amarillo de fondo.
[Link] Ctrl + K
Evidentemente, esto es como hacerlo manualmente, pero con una combinación de teclas
que llame a una macro. Veamos cómo modificarla:
[Link] la ventana del editor y sitúa el cursor sobre alguna celda cuyo valor no pase del
30%. Ejecuta la macro pulsando Ctrl + K y observa que no aparece el color de fondo.
Vamos a hacer que el cursor se desplace automáticamente una celda hacia abajo. Para
ello, utilizaremos la orden offset (fila,columna).
Procedimiento
Ahora puedes
Comienzo del bucle enseñar a más de
4.000.000 de
usuarios
Macro
Mejora tu calidad de
Fin del procedimiento vida con MailxMail
Ahora bien, ¿cómo sabe él cuando tiene que parar el bucle? Evidentemente no
continuará hasta la fila 65.536. ¿Cuándo debe parar? Cuando encuentre la
primera celda vacía. En ese momento parará.
Procedimiento
Comienzo del bucle. Repetir bucle hasta que celda activa = ""
Macro
El bucle Do Until...Loop (repetir hasta que se cumpla la condición) verifica que cada
vuelta se vaya comprobando que la condición no se cumple. En el momento en que se
cumple, es decir, en que la celda activa no contiene nada (""), se detiene el bucle.
Loop
Range("E3").Select
End Sub
Vamos a añadir líneas de código que desplacen el cursor hacia arriba y lo sitúen en la
siguiente celda con un valor numérico. Corresponde a las pulsaciones Flecha derecha,
Flecha arriba, Fin, Flecha arriba, Flecha abajo que serían las encargadas de situar
el cursor en la siguiente columna.
[Link](0, 1).Activate
[Link](-1, 0).Activate
[Link](xlUp).Select
[Link](1, 0).Activate
De esta forma, controlamos la posición del cursor de forma que se sitúe en la primera
celda numérica de la siguiente columna.
[Link] la macro.
Capítulo: Anexo
A continuación te ofrecemos ejemplos de estructuras de diferentes bucles.
End If
Loop
Loop Until Comprobar = False ' Sale inmediatamente del bucle externo.
instrucciones
Next j
-For Each...Next: repetición del grupo de instrucciones para cada uno de los
objetos de una colección.
Next
-While... Wend: ejecuta una serie de instrucciones mientras una condición sea
verdadera.
Wend ' Finaliza el bucle End While cuando Contador > 19.
=PAGO(Interés/12;Tiempo*12;Capital)
Ejemplo:
Supongamos que hemos de calcular los pagos mensuales y anuales periódicos del
siguiente supuesto:
Como ya hemos dicho, en este tipo de hojas podemos probar a cambiar cantidades de las
celdas B1,B2 y B3 y comprobar los distintos resultados. A continuación tienes un
completo e interesante ejemplo de un supuesto de crédito desglosado mes a mes. En
este ejemplo se utiliza una función nueva: =PAGOINT(), que desglosa el interés que
pagamos de la cantidad mensual.
La función =PAGO() nos muestra lo que debemos pagar, pero no nos dice cuanto
pagamos de capital real y de intereses. La función =PAGOINT() realiza esto último.
-C6 Restamos la cantidad pagada de los intereses y tenemos el capital real que pagamos
=B6-D6
-E6 El primer mes tenemos acumulado el único pago de capital real =C6
-F6 Pendiente nos queda el capital inicial menos el que hemos pagado en el primer pago
=B1-E6
Bien, ahora hemos de calcular el segundo mes. A partir de ahí, sólo habrá que copiar la
fórmula hacia abajo.
-E7 El acumulado del mes será igual al acumulado del mes anterior más el capital del
presente mes. =E6+C7
-F7 Nos queda pendiente el capital pendiente del mes anterior menos el capital que
pagamos el presente mes. =F6-C7
Ahora sólo nos queda seleccionar toda la segunda fila y copiarla hacia abajo, hasta la fila
29, donde tenemos la fila del último mes de pago.
Mejora tu calidad de
vida con MailxMail
Trabajo con botones de control.- En esta lección veremos cómo se programan botones de
control. La utilización de los controles en forma de botón agilizan el manejo de las hojas
de cálculo. Antes que nada debemos activar la barra de botones (si no lo está ya). La
barra se activa con la opción Ver - Barras de herramientas y activando la casilla
Formularios.
Vamos a diseñar una hoja de cálculo de préstamo para un coche. Supongamos que
tenemos la siguiente hoja de cálculo con las fórmulas preparadas.
B2: la reducción puede ser un adelanto en pts del precio total del coche. Se refleja en
porcentaje.
B3: Fórmula =B1-(B1*B2), es decir, lo que queda del precio menos el adelanto. Ese será
el precio.
Esta hoja sería válida y podría calcular los pagos periódicos mensuales. Tan sólo
tendríamos que introducir o variar las cantidades del precio, reducción, interés o años. El
problema viene cuando en esta misma hoja podemos:
Lo que vamos a hacer es crear la misma hoja, pero de una forma más "amigable", sobre
todo para los que no dominan mucho esto del Excel. La hoja será más atractiva a la
vista, más cómoda de manejar, y además no nos permitirá introducir barbaridades como
las anteriormente expuestas. Para ello utilizaremos los controles de diálogo.
Bien, supongamos que hemos creado una lista de coches con sus correspondientes
precios, tal que así:
Fíjate que hemos colocado el rango a partir de la columna K. Esto se debe a que cuando
tengamos la hoja preparada, este rango "no nos moleste" y no se vea. Este rango de
celdas comienza a la misma altura que el anterior, es decir, en la fila 1. Ahora haremos lo
siguiente:
[Link] doble Click (manteniendo Control pulsada) sobre el cuadro que acabamos de
crear y rellena el cuadro de diálogo que aparece con las siguientes opciones:
¿Qué hemos hecho? En la opción Rango de entrada le estamos diciendo a este cuadro de
diálogo que "mire" en el rango que hemos definido como Coche, es decir: K2:K6 o lo que
es lo mismo, los precios. De esta forma, cuando abramos esta lista que estamos creando
y escojamos un coche, aparecerá un número en la celda H2. Este número será la
posición en la lista que se encuentra el coche que hayamos escogido. Por ejemplo, si
desplegamos la lista y escogemos el coche Ford, aparecerá en la celda H2 el número 2.
Puedes probarlo. Pulsa un click fuera del cuadro de lista para poder utilizarlo. Cuando
salga el dedito, abre la lista y escoge cualquier coche. Su posición en la lista aparecerá en
la celda H2. Esta celda servirá como celda de control para hacer otro cálculo más
adelante. De igual forma, si escribiéramos un número en la celda H2, el nombre del
coche aparecería en la lista desplegable.
Observa que en la celda aparece el precio del coche escogido en la lista desplegable. Esto es
gracias a la función =INDICE. Esta función busca el número que haya en la celda H2 en el rango
Precio y nos devuelve el contenido de ese mismo rango. De esta forma sólo encontraremos
coches de una lista definida con unos precios fijos. Así no hay posibles equivocaciones.
Limitación de la reducción para validar valores.- Por desgracia aún podemos introducir un
Ahora puedes
enseñar a más de
4.000.000 de
porcentaje inadecuado para la reducción del precio. usuarios
[Link] un click en la herramienta Control de número y crea un control más o menos como éste:
Mejora tu calidad de
vida con MailxMail
[Link] la tecla de control pulsada, haz doble click sobre el control recién creado para acceder a sus
propiedades.
Valor actual: 20
Valor mínimo: 0
Valor máximo: 20
Incremento: 1
4. Acepta el cuadro y pulsa Esc para quitar la selección del control y poder utilizarlo
5. Pulsa sobre las flechas del control recién creado y observa cómo cambia el valor de la celda H3
El control se incrementa sólo con números enteros pero es preciso que la reducción se introduzca
como un porcentaje. La división entre 100 de la celda H3 permite que el control use números
enteros y a nosotros nos permite especificar la reducción como un porcentaje.
Creación de un control que incremente de cinco en cinco.- Si queremos introducir reducciones por
ejemplo del 80%, deberíamos ir pulsando la flecha arriba bastantes veces.
Observa que ahora la celda B3 va cambiando de 5 en 5. Ya puedes probar una amplia variedad de
combinaciones de modelos y de porcentajes de reducción.
Limitación del rédito para validar sus valores.- El rédito es el tanto por ciento de la reducción. Nos
van a interesar porcentajes que vayan variando de cuarto en cuarto y dentro de un rango del 0%
al 20%. Ya que posibilitan porcentajes decimales, vamos a necesitar más pasos que los que
precisamos con el pago de la reducción, y es por eso que vamos a usar una barra de
desplazamiento en vez de un control como el anterior.
Valor mínimo: 0
Incremento: 25
Prueba ahora la barra de desplazamiento. La celda B4 divide por 100 para cambiar el número a un
porcentaje y por otro 100 para poder para poder aproximar a las centésimas. Ahora sólo nos falta
el control para los años.
Valor mínimo: 1
Valor máximo: 6
Incremento: 1
[Link] este último control y verifica que los años cambian de uno en uno.
Muy bien, el modelo ya está completo. Ya podemos experimentar con varios modelos sin tener
que preocuparnos de que podamos escribir entradas que no sean válidas. De hecho, sin tener que
escribir nada en el modelo. Una de las ventajas de una interfaz gráfica de usuario es la posibilidad
de reducir las opciones para validar valores. Vamos ahora a darle un último toque:
[Link] las columnas desde la G hasta la J y ocúltalas. El aspecto final será el siguiente: