ya se excel - pero necesito mas

305

Click here to load reader

Upload: red-drago

Post on 25-Oct-2015

151 views

Category:

Documents


52 download

TRANSCRIPT

Page 1: Ya Se Excel - Pero Necesito MAS
Page 2: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

Manual avanzado de Excel, versión 2007

con indicaciones de comandos para los

menús de las versiones 2003, 2002 y 2000

www.necesitomas.com

Paco Megía

Page 3: Ya Se Excel - Pero Necesito MAS

1ª edición: noviembre de 2006 ISBN: 978-84-9821-571-7

2ª edición: diciembre de 2007 ISBN: 978-84-9821-988-3

3ª edición: mayo de 2010 ISBN: 978-84-9886-987-3

Este libro no se ha escrito solo, detrás hay muchas horas de

dedicación y trabajo.

Si bien es cierto que para mí esto es una afición, también es

cierto que una compensación económica por el esfuerzo

realizado me anima a continuar, por lo que te agradezco

haberlo comprado y que lo recomiendes a tus conocidos.

Si por el contrario conseguiste el libro en el lado oscuro de

internet, aún puedes redimir tu culpa, si lo has encontrado

interesante, invitándome a algo

www.necesitomas.com/invitar

Gracias

Francisco Megía Morales

[email protected]

Diseño de portada: María José Galián Paramio

www.mariajosegalianparamio.com

Edita: Vision Libros

C/ San Benito 21 Local. 28029 Madridwww.visionlibros.com Vision Libros es marca registrada de Vision Net

Page 4: Ya Se Excel - Pero Necesito MAS

A Tere

Page 5: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 5

Índice

Introducción ............................................................................................................. 12

He visto con mis propios ojos ............................................................................. 14

Yo siempre he trabajado así ................................................................................ 16

Convenciones ...................................................................................................... 17

Suposiciones ........................................................................................................ 19

Sobre la versión 2007 .......................................................................................... 21

Un recordatorio rápido ............................................................................................ 23

Archivos .............................................................................................................. 23

Extensiones de archivos .................................................................................. 23

Plantillas por defecto para hoja y libro ........................................................... 24

Vínculos .......................................................................................................... 24

Fórmulas .............................................................................................................. 26

Referencias absolutas y relativas .................................................................... 26

Extender fórmulas ........................................................................................... 27

Rellenar y Series ............................................................................................. 28

Nombres .......................................................................................................... 31

Complementos ..................................................................................................... 35

Moverse con el teclado ........................................................................................ 37

Edición ................................................................................................................ 39

Pegado Especial .............................................................................................. 39

Seleccionar celdas especiales .......................................................................... 42

Justificar texto ................................................................................................. 43

Comentarios ........................................................................................................ 45

Visualización ....................................................................................................... 47

Modos de ver las referencias .......................................................................... 47

Ver información en la barra de estado ............................................................ 49

Vista previa de salto de página ....................................................................... 50

Page 6: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 6

Inmovilizar / Movilizar Paneles ...................................................................... 51

Dividir ventana ............................................................................................... 52

Varias ventanas de una misma hoja de cálculo ............................................... 53

Vistas Personalizadas ...................................................................................... 55

Área de Trabajo .............................................................................................. 56

Ver los nombres de los rangos ........................................................................ 57

Ver las fórmulas .............................................................................................. 57

Ver las macros disponibles ............................................................................. 57

Ver el editor de Visual Basic .......................................................................... 58

Ver todos los comandos de los menús ............................................................ 58

Tomar fotos de celdas ..................................................................................... 59

Con estilo ............................................................................................................ 60

Estilos de celda ............................................................................................... 60

Temas .............................................................................................................. 62

Imprimir .............................................................................................................. 64

Encajar en una página ..................................................................................... 64

Centrado Horizontal / Vertical ........................................................................ 65

Repetir filas / columnas .................................................................................. 65

Imágenes en encabezados y pies de página .................................................... 66

Ayuda .................................................................................................................. 67

Grupos de funciones para no olvidar ....................................................................... 68

Búsquedas y referencias ...................................................................................... 69

Funciones de base de datos ................................................................................. 72

Convertir unidades .............................................................................................. 75

Funciones de información ................................................................................... 75

Funciones para errores ........................................................................................ 76

Funciones de texto ............................................................................................... 77

Funciones de fecha .............................................................................................. 78

Números complejos ............................................................................................. 79

Redondeo............................................................................................................. 79

Page 7: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 7

Fórmulas matriciales ........................................................................................... 81

Formato ................................................................................................................... 85

Formato de número personalizado ...................................................................... 85

Números .......................................................................................................... 88

Fechas ............................................................................................................. 92

Condicionales ................................................................................................. 94

Alineación de celda ............................................................................................. 95

Formato condicional ............................................................................................ 98

Gráficos ................................................................................................................. 101

Eje de abscisas proporcional a los valores ........................................................ 101

Eje secundario ................................................................................................... 103

Representación de valores nulos ....................................................................... 104

Línea de tendencia ............................................................................................. 107

Detectar y Corregir errores .................................................................................... 110

Auditoría de fórmulas ....................................................................................... 110

Prevención de errores ........................................................................................ 112

Acerca de los datos ................................................................................................ 114

Filtrado .............................................................................................................. 117

Ordenar .............................................................................................................. 122

Validación ......................................................................................................... 123

Esquema ............................................................................................................ 127

Subtotales .......................................................................................................... 130

Consolidar Datos ............................................................................................... 132

A mano.......................................................................................................... 133

A máquina ..................................................................................................... 134

Tablas ................................................................................................................ 137

Obtener datos externos .......................................................................................... 143

Page 8: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 8

Ventajas ............................................................................................................. 144

El proceso de obtener datos externos ................................................................ 145

Desde archivo de texto ...................................................................................... 147

Desde una página web ....................................................................................... 152

Desde Access .................................................................................................... 155

Desde un servidor SQL ..................................................................................... 156

A través de Query .............................................................................................. 159

Propiedades de un rango de datos externos ....................................................... 166

Desde texto y web ......................................................................................... 166

Desde bases de datos..................................................................................... 169

Propiedades de la conexión ............................................................................... 170

Consultas con parámetros.................................................................................. 173

Lenguaje SQL ................................................................................................... 175

Modificar una consulta existente ....................................................................... 176

Eliminar la conexión con un origen de datos .................................................... 177

Tablas dinámicas ................................................................................................... 179

Creación ............................................................................................................ 180

Configurar los campos ...................................................................................... 184

Agrupar ............................................................................................................. 187

Mostrar y ocultar detalles .................................................................................. 189

Campos calculados ............................................................................................ 191

Elementos calculados ........................................................................................ 192

Filtro de informe ............................................................................................... 194

Configuración de la tabla .................................................................................. 195

Varias tablas dinámicas con los mismos datos .................................................. 198

Gráfico dinámico ............................................................................................... 199

Análisis “y si…” .................................................................................................... 200

Tablas de 1 y 2 variables ................................................................................... 201

Escenarios ......................................................................................................... 204

Page 9: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 9

Resolver problemas ............................................................................................... 210

Cálculos iterativos ............................................................................................. 210

Buscar Objetivo ................................................................................................. 212

Solver ................................................................................................................ 215

Facilitando el trabajo a los demás .......................................................................... 221

Controles de formulario en tus hojas ................................................................. 221

Proteger el libro ................................................................................................. 224

Macros y Funciones ............................................................................................... 228

Ten confianza en ti ............................................................................................ 229

Lee esto antes de grabar una macro .................................................................. 230

VBA en dos palabras ......................................................................................... 233

El entorno de programación .............................................................................. 234

Depuración ........................................................................................................ 239

Lo básico de Visual Basic ................................................................................. 241

Tipos de procedimientos ............................................................................... 241

Variables ....................................................................................................... 245

Constantes ..................................................................................................... 249

Bucles ........................................................................................................... 252

Varias instrucciones con un mismo objeto ................................................... 256

Condicionales ............................................................................................... 256

Interactuar ..................................................................................................... 260

Tratamiento de errores .................................................................................. 267

Funciones disponibles en VBA ..................................................................... 270

Las ideas claras ................................................................................................. 272

Organización ................................................................................................. 272

Opciones del módulo .................................................................................... 273

Alcance ......................................................................................................... 274

Desplazarse por las hojas .............................................................................. 275

Nomenclatura útil ......................................................................................... 277

Page 10: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 10

Configuración regional ................................................................................. 278

Bien está lo que bien acaba ........................................................................... 278

Guarda tus procedimientos ........................................................................... 279

Añadir una descripción y categoría al procedimiento ................................... 279

Proteger el código ............................................................................................. 282

Algunos bucles y ejemplos útiles ...................................................................... 282

Recorrer todos los libros abiertos ................................................................. 283

Recorrer todos los escenarios ....................................................................... 283

Recorrer todas las vistas personalizadas ....................................................... 284

Recorrer todas las celdas del rango seleccionado ......................................... 284

Recorrer todas las hojas del libro .................................................................. 285

Recorrer las hojas seleccionadas ................................................................... 286

Recorrer una lista de datos ............................................................................ 287

Recorrer todas las hojas de gráfico ............................................................... 288

Recorrer las hojas de gráfico seleccionadas.................................................. 289

Recorrer todos los gráficos de una hoja ........................................................ 290

Abrir y cerrar libros ...................................................................................... 291

Generar escenarios ........................................................................................ 292

Ganando tiempo al tiempo ............................................................................ 297

Epílogo .................................................................................................................. 298

Índice Alfabético

Page 11: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 11

Page 12: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 12

Introducción

En la mayor parte de los libros de Excel que he consultado y en los cursos a los que

asistí como alumno, con los que he ido aprendiendo a lo largo de los años, he

notado que ciertos aspectos del programa, tal vez por más infrecuentes, no se

comentan siquiera, o no están tan explicados como otros más comunes.

Puede que no todo el mundo tenga que manejar demasiados datos y por ello

determinadas funcionalidades del programa no se consideran de interés general

para los usuarios del programa, o parece que no se les da tanta importancia pues no

está clara la ventaja de su utilización cuando se maneja un escaso volumen de

información. No comparto esta opinión, puesto que desconocer hasta dónde puede

dar de sí éste y cualquier otro programa que se utilice supone que, llegado el caso

de enfrentarse a un caso no convencional, se plantee su solución de manera

artesanal, con una pérdida de tiempo considerable en tareas que podría hacer en

este caso Excel automáticamente y con una alta posibilidad de equivocarse en estos

procesos manuales.

En este libro he tratado de recopilar esas capacidades del programa de uso no tan

habitual, que en el ejercicio de mi trabajo como Ingeniero de Caminos, para el que

Excel no es sino una herramienta más, han supuesto una mejora más notable de la

productividad, esto es, realizar más trabajo que antes en el mismo tiempo, o

realizar el mismo trabajo en menos tiempo. Excel tiene muchas capacidades, por

supuesto, pero sólo he querido incluir las que me han sido de utilidad en alguna

ocasión. Con esto quiero decir que sólo he considerado, en los capítulos que

componen este libro, funcionalidades que he probado por mí mismo, por lo que

puedo decir que he sacado provecho de las mismas y también que he conocido y a

veces sufrido sus limitaciones.

Para aquellos que estén empezando o que no lleven demasiado tiempo trabajando

con el programa, y para los que llevan tanto tiempo como para haber olvidado

algunas cosas básicas, he incluido un recordatorio rápido de los aspectos generales

más interesantes, desde mi punto de vista, tanto porque se emplearán más adelante

en este libro, como porque tienen un gran potencial en sí mismos, la mayoría de las

veces desaprovechado.

Page 13: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 13

No debes olvidar, querido lector, que salvo que seas el gurú de la informática

en tu trabajo, Excel es una herramienta más, por tanto no es el objetivo en sí

mismo, sino un medio para conseguir hacer tu trabajo de una manera más

eficiente.

Cuanto menos tiempo se dedique a la fase operativa, a las tareas repetitivas y

mecánicas, más tiempo nos queda para la fase creativa, para la innovación, para la

mejora, para la fase humana en definitiva. Es por esto que se hace fundamental

conocer lo mejor posible las herramientas que se pueden utilizar, conocer sus

posibilidades y el alcance de las mismas para, llegado el momento de implementar

una solución para un problema que se nos plantee, poder resolverlo de forma

rápida, eligiendo la herramienta adecuada para sacarle el máximo partido, sin tener

que volver atrás a hacer grandes rectificaciones posteriormente.

Con los trucos, consejos, explicaciones contenidas en este libro trato de ayudar a

los usuarios de esta poderosa arma que es Excel a conocerla mejor, a conocer unas

posibilidades más avanzadas para manejar datos, operar con ellos, resumirlos,

manipularlos, presentarlos; trato en definitiva de ayudar a que el ordenador trabaje

para ti y no al contrario.

Espero que la lectura de este libro, bien a modo de guía o manual de

formación, bien como referencia ocasional para un tema específico te sea de

utilidad y logres recuperar con creces el tiempo que inviertas con él entre tus

manos.

Page 14: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 14

He visto con mis propios ojos

Hay ocasiones en que el engranaje que une nuestra manera de pensar con el

funcionamiento del ordenador no encaja a la perfección. A lo largo del tiempo he

visto cosas que me han llamado especialmente la atención y tengo que comentar

algunas ideas al respecto:

No hay que volver a teclear algo que ya se ha introducido anteriormente en el

ordenador. Evitamos errores en la transcripción, lo más importante, pero también

es una pérdida de tiempo en algo que ya estaba hecho. Lo mismo puede decirse con

las salidas de un programa cuando queremos analizarlas con otro programa,

siempre que se pueda hay que evitar volver a teclear. He visto con mis propios ojos

cómo se imprimían hojas y hojas de papel para volver a introducir los datos

impresos.

Hay que guardar los datos una vez introducidos. Si estás introduciendo la

información en el ordenador, no está de más que la almacenes allí, porque antes o

después volverás a necesitarla. He visto con mis propios ojos cómo se escribían los

datos en una hoja Excel, se imprimía una ficha, se sobrescribían los datos, se

imprimía la siguiente ficha, así hasta el infinito, sin guardar ninguna. ¿Y si

quisiésemos un listado? Otra vez a teclear.

Hay que evitar anotar la misma información en diferentes lugares. El objetivo es

anotar el dato una sola vez, con lo que evitamos errores tipográficos, errores por

emplear una versión de los datos que no esté actualizada y, por supuesto, evitamos

pérdidas de tiempo; luego, de esos datos generaremos todos los resúmenes que

sean necesarios. He visto con mis propios ojos cómo se introducían los datos en

una hoja resumen conjunta, en otras hojas según la fecha de los datos, en otras

hojas según la procedencia de los datos, así hasta cinco o seis veces según otros

tantos criterios de ordenación. ¿Y si quisiésemos agruparlos por otro criterio? Me

ofrezco voluntario para No teclear esos datos otra vez.

No basta con tener los datos en un mismo archivo, si tienes que manejar muchos

datos con Excel (más de dos datos empiezan a ser ya muchos) júntalos todos,

organizándolos por filas: cada fila un registro diferente, cada columna un campo

diferente. He visto con mis propios ojos cómo se perdía un tiempo precioso

agrupando y reorganizando los datos para que Excel pudiera operar adecuadamente

con ellos. No haber concebido bien la hoja desde el principio, lo que requiere

pensar tan solo unos segundos, ocasiona más adelante trastornos y limitaciones a la

Page 15: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 15

hora de interpretar y representar los datos y por supuesto, acaba generando el

trabajo adicional de poner las cosas en orden.

No hay que realizar operaciones matemáticas, por sencillas que sean siempre

vamos a ser más lentos que la máquina y puede que nos equivoquemos. He visto

con mis propios ojos cómo se utilizaba Excel con una calculadora de bolsillo

encima de la mesa, en la que se realizaban las operaciones para comprobar porque

“no se fiaban” del resultado que proporcionaba el ordenador. Los errores en las

operaciones suelen deberse a equivocaciones en la introducción de las fórmulas o

de los datos, errores humanos; es muy raro encontrar un error de la máquina. El

ordenador no piensa, sólo hace lo que le mandan y muy deprisa. No digo que no

haya que asegurarse de que la hoja funciona correctamente, pero lo que hay que

comprobar no son las operaciones, sino las fórmulas que hemos introducido, para

ver si calculan lo que queríamos calcular u otra cosa diferente.

No hay que resumir los datos a mano, ni contar, ni sumar, ni hallar el máximo o el

mínimo, ni agrupar por fechas, ni por categorías, ni nada por el estilo; de eso ya se

ocupa Excel. Sólo hay que tener la precaución de tener los datos de tal modo que el

programa los pueda entender (Excel y cualquiera). He visto con mis propios ojos

cómo se sumaban y volvían a sumar a mano las cuentas de gastos de varios

trabajos similares, almacenadas en archivos diferentes, por no tener una estructura

homogénea, no sólo entre diferentes archivos, sino entre el principio y el final de

un mismo archivo, que permitiese al ordenador entender los datos para poder

sumarlos.

Hay que ser organizado y claro para facilitar la comprensión de nuestro trabajo a

los demás. Puede que una hoja para el seguimiento de los gastos de la casa sólo la

utilices tú, con lo que no tendrás problemas, pero si utilizas Excel en el trabajo,

antes o después los libros pasarán por otras manos. He visto con mis propios ojos

cómo alguien era incapaz de explicar qué era lo que presentaba en papel, qué eran

los datos y qué estaba calculado, tan sólo unos pocos días después de haber

realizado el trabajo; no quiero ni pensar qué sería capaz de recordar un año más

tarde.

Hay que documentarse, estudiar y practicar. No basta con tener un buen ordenador

con muchos programas instalados, hay que saber manejarlos y eso sólo se consigue

invirtiendo tiempo en estudiar y poner en práctica lo aprendido para resolver

problemas, y si son problemas reales mejor que ejemplos ficticios. He visto con

mis propios ojos a personas quejándose de que su equipo de música no funcionaba,

Page 16: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 16

cuando la solución al problema estaba en la segunda página del manual de

instrucciones que “aún” no habían abierto.

Yo siempre he trabajado así

El ordenador no es sólo una máquina de escribir sofisticada, con muchas fuentes y

posibilidad de incorporar colorines y dibujitos, que por cierto lo hace muy bien y

no digo que no sea para lo que más se utilice; un ordenador puede ir mucho más

allá a la hora de ayudarnos con nuestro trabajo, de hecho puede hacer la mayor

parte de muchos trabajos de oficina o gabinete. Sin embargo a veces resulta difícil

ver hasta dónde te puede ayudar la máquina, sobre todo si has estado realizando el

trabajo manualmente durante bastante tiempo. Como casi todo, pienso que es

cuestión de práctica, de prestar atención a lo que hacen los demás a tu alrededor y

de no tener miedo a dar pasos, aunque sean pequeños, hacia delante.

Muchas veces estamos acostumbrados a trabajar de una determinada manera y

somos muy reticentes a introducir cambios, aunque nos aseguren que van a

resultarnos de utilidad. Antes de contestar “No, es que yo siempre he trabajado así”

dale una oportunidad a las nuevas ideas y analiza las ventajas e inconvenientes que

conllevan (en ahorro de tiempo, en reducción de errores, en esfuerzo, en

complicación) comparándolas con tu forma actual de trabajar. Si no te aportan

nada, sigue como hasta ahora, pero no dudes en incorporarlas a tu trabajo, en

hacerlas tuyas, si suponen una mejora.

No te quedes estancado. Avanza.

Page 17: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 17

Convenciones

Puesto que en el mundo hay personas diestras y zurdas, empleo la denominación de

botón principal del ratón para referirme al que se emplea para seleccionar, y botón

secundario del ratón al utilizado para mostrar menús contextuales.

En la maquetación del libro se han empleado estos estilos para resaltar cierta

información

Consejos, trucos, textos destacados

Ruta de menús en versiones anteriores

Ruta de menús en versión 2007

Código de programación Visual Basic para Aplicaciones

Las combinaciones de teclas se mostrarán entre corchetes [Ctrl][Fin]

SUBTOTALES, nombres de las funciones en mayúsculas.

Para los ejemplos de este libro se ha empleado la versión Excel 2007 Beta 2

Technical Refresh (12.0.4407.1004) en español de España. Las funciones, figuras y

referencias al programa están en este idioma, que en la codificación que emplea

Microsoft es el 3082.

C:\Archivos de programa\Microsoft Office\Office??\3082

Se emplean las denominaciones libro y hoja del mismo modo que Excel: un libro

es un archivo, que puede contener varias hojas de cálculo. Se suele generalizar y

llamar hojas de cálculo a los archivos que utiliza Excel, supongo que debido a que

hasta la versión 4 del programa sus archivos únicamente podían contener una hoja,

existiendo un tipo de archivo diferente, denominado libro, que podía agrupar en

cierto modo varios archivos de hoja de cálculo; todo esto, claro está ya no tiene

sentido, aunque permanezca la confusión de nombres.

En español las cosas tienen género y cuando tenga que referirme a Excel lo haré

con género masculino, pensando que es un programa informático, aunque soy

consciente de que hay también bastante gente se refiere a Excel en femenino,

supongo que pensando en una hoja de cálculo.

Por último, no hay que olvidar que Microsoft es una empresa estadounidense, y

que la versión original de Excel y la concepción inicial del programa están en

Page 18: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 18

inglés, lo que saldrá a la luz antes o después, sobre todo en la programación de

macros y con los caracteres empleados para separación de decimales y millares. En

general no suele dar problemas, por eso cuando ocurre no lo esperas. En España

utilizamos la coma como separador decimal, sin embargo no hay que olvidar que la

mayor parte del Mundo emplea el punto para este fin. Excel emplea la

configuración definida en el equipo para interpretar y mostrar los números. No

obstante, en ciertas operaciones (por ejemplo mostrar escenarios), cuando una hoja

pasó por un ordenador con configuración de coma y luego por otro ordenador con

configuración de punto, es posible que Excel interprete como texto lo que

aparentemente es un número. Personalmente hace tiempo que opté por configurar

mi ordenador con punto para los decimales y espacios para separar los miles,

evitando así conflictos con programas pensados exclusivamente para funcionar con

puntos, que no es el caso de Excel.

Page 19: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 19

Suposiciones

Supongo que ya has trabajado algo con Excel, lo suficiente como para estar

familiarizado con él y como para haber tenido que enfrentarte a él en la resolución

de algún problemilla.

Es éste un manual avanzado, por lo que no va a contener explicaciones sobre

aspectos básicos comunes a la mayoría de los programas informáticos, como abrir

un archivo o guardarlo, ni tampoco sobre los conceptos básicos de Excel, como

introducir funciones o ajustar el ancho de las celdas, por poner unos ejemplos.

Supongo que todo esto ya lo conoces de sobra.

Supongo también que sabes que puedes programar macros y funciones

personalizadas en Excel mediante Visual Basic para Aplicaciones. No supongo que

sepas programar, sólo supongo que sabes que existe. Pese a que en este libro no se

trata la programación de macros en Excel de una manera exhaustiva, para

conseguir un ahorro importantísimo de tiempo en las tareas repetitivas sí resulta

útil recurrir a las macros y le dedico un amplio capítulo a ello, incluyendo algunos

ejemplos interesantes.

Dado que Excel no ha experimentado cambios sustanciales en los últimos años,

prácticamente todo lo explicado en este libro es válido, en algunos casos con

ligeras variaciones, al menos para las versiones 2000, 2002 (XP), 2003 y 2007. La

esencia del programa permanece inalterada desde hace bastante tiempo y los

cambios de una versión con la anterior se limitan a cuestiones de forma más que de

fondo. Las figuras incluidas y las indicaciones de cómo emplear los comandos se

refieren a la última versión del programa, si bien en los casos necesarios se hace

también referencia a las anteriores.

Supongo también que sabes que la apariencia de las ventanas de los programas en

Windows puede modificarse a gusto del usuario en lo que se refiere a los colores,

botones, esquinas redondeadas, animaciones, etc. No soy muy partidario de esta

personalización llevada al extremo, aunque entiendo que tiene su público.

Simplemente te comento que opté por el estilo clásico que ofrece Windows XP,

con la menor cantidad posible de abusos estéticos, y es lo que aparecerá en las

capturas de pantalla que ilustran este libro.

Page 20: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 20

Para la apariencia de Excel opté por la combinación de colores por defecto. Espero

que las diferencias que encuentres con lo que veas en tu equipo no te distraigan. No

te quedes en el continente y adéntrate en el contenido.

Page 21: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 21

Sobre la versión 2007

Como viene siendo habitual, cada pocos años nos sorprenden con una nueva

versión que se anuncia con gran entusiasmo como la solución a nuestros

problemas, la versión que mejorará sustancialmente la productividad y facilitará el

manejo de la información en la empresa. Desde mi modesto punto de vista, lo

fundamental del programa sigue siendo igual, habiéndose centrado bastantes

esfuerzos en el tema de publicar la información en servidores Share Point, facilitar

el acceso compartido a archivos, en definitiva se han añadido y mejorado

capacidades para el trabajo en red.

El cambio de imagen en la versión 2007 ha sido bastante drástico, ya que lo que

anteriormente eran menús y barras de herramientas con iconos se han fundido en

un nuevo sistema de pestañas de los que dependen una serie de grupos de

comandos, representados por iconos junto con menús desplegables.

No es sólo el cambio de aspecto, que supondría sólo desplazar el ratón en

horizontal en vez de en vertical como se hacía con los menús, sino que ha habido

una redistribución de los comandos, que llevaban en el mismo sitio desde los

inicios del programa, o casi.

Será la moda o será la búsqueda de un entorno más “amigable”, el caso es que ya

tenemos a un competidor a rebufo (spreadsheet.google.com), con aspecto de

pestañas similar a esta versión 2007, más limitado en las capacidades pero que no

Page 22: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 22

requiere instalación, pues funciona vía web ¿Será este el nuevo cambio de

Microsoft para la próxima versión de Office?

Desaparecen las barras de herramientas personalizadas, que son sustituidas por una

única barra de iconos de acceso rápido.

Sin embargo, el antiguo menú Archivo no se ha convertido en una pestaña más,

sino que ahora aparece al pulsar sobre el “botón Office”, que se sitúa en la esquina

superior izquierda de la ventana del programa (este cambio no ha debido de tener

mucho éxito, porque en la versión 2010 este botón se ha vuelto a cambiar por un

menú archivo renovado).

No todo es estética puesto que, aparte de que ahora se dispone de más colores, se

han añadido una serie de mejoras y se han rebasado algunos límites que existían

desde hace bastantes versiones. Enumero a continuación los que, por su utilidad,

me han parecido más importantes:

Se aumenta el número de filas y columnas, pasando de las 65536 filas (216

) a

1048576 (220

), y de 256 columnas (28) a 16384 (2

14).

Se elimina la limitación del número de criterios a emplear para ordenar un rango de

datos, que hasta ahora podían ser únicamente tres simultáneamente.

Se elimina la limitación del número de criterios para el formato condicional de

celdas, que anteriormente podían ser únicamente tres, más las condiciones

incorporadas en el propio formato numérico de la celda. Además se incorporan

nuevas posibilidades del formato condicional que son mucho más visuales.

Se han incorporado de manera generalizada los estilos de tabla, para lo que en la

versión 2003 se denominaron listas, que anteriormente sólo existían tímidamente

en las tablas dinámicas y autoformatos de tablas.

Se incorpora la posibilidad de guardar los archivos en formato pdf (se puede decir

que es el estándar actual para intercambio de información pre-impresa, respetando

el aspecto original) sin necesidad de otro software adicional.

Desaparece el ayudante de Office. ¡Qué descanso!

Page 23: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 23

Un recordatorio rápido

Son muchas las capacidades del programa y muchas opciones de configuración, así

que tal vez no venga mal antes de empezar un recordatorio rápido de estas cosillas

que facilitan el trabajo cotidiano. Algunas de ellas pueden parecer muy simples,

pero todas las he tenido que explicar en alguna ocasión a personas que llevaban

tiempo, a veces no poco, trabajando con el programa y desconocían su existencia.

Si todo esto ya lo sabes, léelo por encima al menos una vez y pasa por alto lo que

ya conozcas, simplemente recuerda que lo tienes aquí por si te hace falta en algún

momento.

Archivos

Extensiones de archivos

Hasta la versión 2003, los archivos de Excel tenían extensiones de tres letras, las

dos primeras siempre xl, abreviatura de Excel, y la tercera dependía del tipo de

archivo, así:

s de spreadsheet, hoja de cálculo, luego llamadas libros,

t de template, plantilla,

a de Add in, complemento,

l de library, biblioteca,

k de bacKup, copia de seguridad,

w de workspace, área de trabajo,

lo que suponía tener extensiones xls, xlt, xla, xll, xlk, xlw.

Pon nombres a tus archivos que luego te faciliten la localización de la

información. No es nada recomendable llamar a tus archivos con nombres del

tipo: el último, versión final, la definitiva, este sí que sí. Porque un archivo es

“el último” sólo hasta que creas otro posterior, con lo que únicamente

conseguirás confundirte.

En la versión 2007 a algunos de estos tipos de archivo se les añade una cuarta letra,

así tenemos:

Page 24: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 24

x para el nuevo formato de archivos, basado en XML,

b para los archivos almacenados en formato binario, especialmente indicado para

reducir el tamaño de archivos grandes,

m de macro para indicar que el libro contiene macros,

lo que se traduce en extensiones xlsx, xlsb, xlsm, xltx, xltm, xlam.

Plantillas por defecto para hoja y libro

Cada vez que abrimos Excel aparece un libro en blanco, listo para que empecemos

a trabajar, sin embargo, puede que la configuración de este libro no sea la que más

nos convenga. Si, por ejemplo, siempre utilizamos determinados encabezados y

pies de página, márgenes de impresión, estilos de celdas, etc., puede interesarnos

establecer una plantilla que se emplee por defecto para ese libro que aparece al

abrir Excel.

Esta plantilla debe llamarse Libro.xltx (Libro.xlt en las versiones anteriores) y tiene

que guardarse en la siguiente ubicación:

C:\Documents and Settings\NombreUsuario\Datos de

programa\Microsoft\Excel\XLSTART

También podemos establecer las opciones por defecto para las nuevas hojas que

insertemos en un libro existente. Para conseguirlo debe crearse una plantilla, con

una sola hoja, que se guardará con el nombre Hoja.xltx (Hoja.xlt en versiones

anteriores) en la misma ubicación anterior.

Cada vez que se arranca el programa, Excel carga todos los archivos que se

encuentren en la carpeta XLSTART (puede que en tu equipo encuentres esta

carpeta con el nombre traducido INICIAR). Aquí es donde se almacena por defecto

nuestro libro de macros personal, para que las macros del mismo estén disponibles

siempre que abramos el programa.

Vínculos

Edición>Vínculos

Datos>Conexiones>Editar vínculos

Cuando en nuestro libro hacemos referencia a información que se encuentra en

otros libros, establecemos un vínculo con dichos libros. Nuestro libro almacena la

Page 25: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 25

ubicación de los archivos vinculados para poder acceder a ellos cuando queramos

actualizar la información.

En caso de que los archivos vinculados hayan cambiado de lugar, al abrir nuestro

libro, se nos preguntará si queremos indicar la nueva ubicación para que Excel

pueda localizarlos.

En las opciones del programa podemos elegir si deseamos que se actualice la

información de los vínculos al calcular el libro, que es la opción por defecto, o por

el contrario, deseamos que la actualización no se realice de manera automática.

Dentro del formulario para editar los vínculos a otros archivos, desde la versión

2002 disponemos de la posibilidad de romper un vínculo, lo cual resulta muy útil

para liberarse definitivamente de esos vínculos a libros que ya no existen, que se

arrastran cuando trabajamos con libros aprovechados de otros trabajos anteriores.

Page 26: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 26

Al eliminar los vínculos, las celdas con fórmulas que hacían referencia a los

mismos, serán sustituidas por su valor actual.

Fórmulas

Referencias absolutas y relativas

Cuando en una fórmula se hace referencia a otra celda en modo absoluto, se sitúa la

celda con respecto a su posición en la hoja, por ejemplo, la celda de la fila 1

columna 1.

La referencia relativa sitúa una celda en relación a la celda donde se introduce la

fórmula, por ejemplo, la celda que se encuentra a la derecha de la actual, o la que

se encuentra tres filas más arriba y dos columnas a la derecha de la celda actual.

También podemos referirnos con situaciones mixtas, es decir, podemos referirnos

de manera absoluta a la fila pero de manera relativa a la columna (fila 3 de la hoja,

columna de la derecha) y al contrario (esta fila, columna 7).

En el modo de visualización de referencias en que las filas se muestran con un

número y las columnas con una letra, una referencia absoluta se representa

anteponiendo el símbolo $ a la letra de la columna, al número de la fila, o a ambos,

según corresponda:

$A$1(referencia absoluta), A$1(columna relativa, fila absoluta), $A1(columna

absoluta, fila relativa), A1(referencia relativa).

Para cambiar de una manera rápida una referencia de absoluta a relativa, en

modo de edición, o sobre la barra de fórmulas, se puede situar el cursor sobre

la referencia que se quiera cambiar y pulsar la tecla [F4]. Con cada pulsación

de esta tecla la referencia va cambiando entre las cuatro posibilidades.

En el siguiente ejemplo se han generado las tablas de multiplicar empleando

adecuadamente referencias absolutas y relativas.

Page 27: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 27

Extender fórmulas

Un método habitual para confeccionar la hoja de cálculo consiste en escribir la

fórmula en la primera celda y luego extender esa fórmula a las celdas contiguas en

vertical o en horizontal. Excel se ocupará de actualizar las referencias a la posición

de las nuevas celdas, simplemente hay que tener la precaución de haber escrito

correctamente las referencias relativas o absolutas que se van a emplear.

Para extender la fórmula debe situarse el cursor del ratón sobre la esquina inferior

derecha de la celda que contiene la fórmula que se desea extender, el ratón adopta

la forma de cruz, manteniendo pulsado el botón principal del ratón mientras se

arrastra hasta ocupar la zona que va a rellenarse con las fórmulas.

Page 28: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 28

Si hay datos en las celdas adyacentes, podemos hacer doble clic en botón

principal del ratón, sobre la esquina inferior derecha, para extender la

fórmula hacia abajo a todas las celdas que contienen datos a su izquierda.

Sólo puede extenderse una fórmula en horizontal o en vertical, si queremos

extender una fórmula desde una esquina de un área para ocuparla por completo,

tendrá que hacerse en dos pasos, primero en vertical y luego en horizontal (o

viceversa).

Rellenar y Series

Edición>Rellenar

Inicio>Modificar>Rellenar

Mediante los comandos del grupo “Rellenar” podemos extender fórmulas a un

rango, podemos dar valores a las celdas de un rango tomando como valores de

partida los valores existentes en una celda, fila o columna del rango. Podemos

rellenar un mismo rango en varias hojas diferentes, a partir de los valores y/o

formatos existentes en el rango seleccionado de la hoja activa. Podemos finalmente

generar series aritméticas y geométricas.

Previamente a seleccionar el comando rellenar, hay que seleccionar el rango que se

desea rellenar, incluyendo la celda, fila o columna con el valor o la fórmula que se

empleará para rellenar el resto de celdas del rango.

Page 29: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 29

Cuando se rellena hacia abajo, se parte de los valores de la fila superior del rango

seleccionado. Si rellenamos hacia la derecha, se parte de los valores situados en la

columna de la izquierda. Análogamente, si rellenamos hacia la izquierda se

emplean las celdas de la columna más a la derecha del rango seleccionado y si

rellenamos hacia arriba se partirá del contenido de las celdas de la fila inferior del

rango seleccionado.

Si tenemos seleccionadas varias hojas, se activará la opción de rellenar “Otras

hojas”, que permite rellenar el mismo rango que tengamos seleccionado en la hoja

activa en el resto de hojas seleccionadas, a partir de los valores, formatos o ambos,

según le indiquemos, de la hoja activa.

Otra opción para rellenar celdas es empleando el botón secundario del ratón para

extender su contenido. Selecciona las celdas de origen, apunta con el ratón a la

esquina inferior derecha del rango, el cursor adoptará la forma de una cruz negra,

entonces mantén pulsado el botón secundario del ratón para extender el contenido

de esas celdas. Al soltar el botón del ratón aparecerá un menú con diferentes

opciones para el relleno, entre las que se encuentra la posibilidad de mostrar el

cuadro de diálogo para rellenar con una serie.

Page 30: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 30

En el cuadro de diálogo Series tenemos a la vista las opciones disponibles para

generar una serie aritmética (aquí denominada lineal), una serie geométrica, una

serie cuyos valores son fechas y por último el tipo autorrellenar, que produciría el

mismo efecto que si extendemos el contenido de las celdas con el botón principal

del ratón.

Indicaremos si queremos generar la serie en filas o en columnas, el tipo de serie y

en el caso de serie cronológica indicaremos la unidad de tiempo, que puede elegirse

entre fecha (la unidad es un día), días laborables (excluyendo sábados y domingos),

meses o años.

Page 31: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 31

Con Incremento, definiremos la razón de la serie, el valor que se suma a un

elemento para obtener el siguiente en las series lineales y cronológicas, o el valor

por el que se multiplica un elemento para obtener el siguiente elemento de la serie

en las geométricas.

Como alternativa a seleccionar previamente el rango que queremos que ocupe la

serie, podemos tener seleccionada únicamente la celda con el primer valor, e

indicaremos como Límite hasta qué valor queremos calcular elementos de la serie.

Se rellenarán tantas celdas como sean necesarias para alcanzar el límite marcado.

Activando la casilla Tendencia, lo que conseguimos es sustituir una relación de

valores por los correspondientes a una serie aritmética o geométrica que mejor se

ajuste a dichos valores.

Los valores originales son reemplazados por los ajustados con la Tendencia,

así que si te interesa conservar los originales, haz una copia al lado.

Nombres

Insertar>Nombre>

Fórmulas>Nombres definidos>

Podemos asignar nombres a celdas o rangos, lo cual facilitará la introducción de

fórmulas y la compresión de las mismas. Es especialmente recomendable trabajar

con nombres si estás empleando escenarios, rangos múltiples, valores constantes

para el modelo de cálculo o si utilizas varias veces un mismo rango como

argumento de las fórmulas de tu libro.

Page 32: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 32

Al definir un nuevo nombre debemos indicar el ámbito donde va a estar disponible

ese nombre para operar con él. Hasta la versión 2003 los nombres tenían como

ámbito de aplicación el libro. Esto ocasionaba un problema cuando tratábamos de

insertar en ese libro otra hoja que tenía definido un rango con el mismo nombre. Al

poder elegir ahora el ámbito del nombre, además de nombres disponibles en todo el

libro (esta sigue siendo la opción por defecto), podemos tener varios rangos con el

mismo nombre pero en diferentes hojas.

El ámbito de un nombre no tiene por qué coincidir con la hoja a la que pertenece el

rango, es decir podemos tener un nombre con ámbito la Hoja1, pero que se refiera

a celdas de la Hoja2.

Siempre podremos, en cualquier caso, hacer referencia a un nombre que tenga

como ámbito otra hoja, sólo hay que anteponer al nombre del rango, el

nombre de la hoja con una exclamación para separarlos

NombreHoja!nombreRango.

Siempre es recomendable emplear nombres que sean descriptivos de lo que

representan, pero pensando en las personas que utilizarán la hoja en el futuro, no

viene mal incluir también un comentario explicativo, que aparecerá en el

administrador de nombres

Desde el administrador de nombres podemos editar las propiedades de un nombre,

crear nombres nuevos y eliminar los que no necesitemos (asegúrate de que no estás

utilizando el nombre en ninguna fórmula antes de eliminarlo, si no quieres obtener

Page 33: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 33

un error #¿NOMBRE?). También podemos aplicar algunos filtros predefinidos a la

lista de nombres para facilitar la localización del que nos interesa.

En muchas ocasiones ya tenemos escritos unos nombres en las celdas de al lado de

nuestros datos. En este caso no es necesario crear los nombres uno a uno, sino que

disponemos de la opción de crear nombres desde la selección, para lo cual

debemos seleccionar previamente el rango con los datos y los nombres.

Page 34: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 34

Entre las opciones disponibles relacionadas con los nombres, tenemos la opción de

pegar un nombre cuando se está introduciendo una fórmula.

También, dentro de las opciones de pegar un nombre, podemos pegar una lista con

todos los nombres definidos y el rango a que hacen referencia, por si necesitas

explicarlo a alguien.

Si hemos dado nombre a un rango después de tener escritas ya fórmulas que hacen

referencia a él, tenemos la posibilidad de aplicar ese nombre a las fórmulas ya

introducidas, Excel se ocupará mediante “aplicar nombres” de reemplazar las

referencias existentes al rango en cuestión por el nombre correspondiente.

Una manera rápida de crear un nombre para un rango consiste en, una vez

seleccionado el rango, escribir el nombre que queremos asignarle en el cuadro

combinado situado a la izquierda de la barra de fórmulas.

En la lista desplegable que se muestra en este cuadro de nombres aparecen los

nombres disponibles en la hoja activa, no aparecen los nombres que tienen como

ámbito otras hojas, ni los que se refieren a rangos 3D (ver página 133). Al

seleccionar uno de estos nombres se seleccionará el rango correspondiente.

Probablemente ya habrás comprobado que, mientras escribes una fórmula, aparece

una lista con las funciones que coinciden con lo que vas escribiendo, y entre las

funciones también aparecen los nombres definidos, con lo que el proceso de

introducir los nombres en una fórmula es bastante rápido y sencillo.

Page 35: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 35

Si sigues sin utilizar nombres, no será porque no hay facilidades.

Complementos

Herramientas>Complementos

Botón Office>Opciones de Excel>Complementos>Administrar>Complementos

de Excel>Ir…

Junto con Excel, se incluyen una serie de complementos que ofrecen

funcionalidades adicionales al programa, como un asistente para crear fórmulas de

suma condicional, para crear fórmulas de búsqueda en otros rangos, herramientas

para análisis estadísticos de datos, herramientas para la conversión de monedas a

euros y viceversa, un solucionador de ecuaciones denominado Solver, etc.

También puedes crear tus propios complementos con los procedimientos

programados que se adapten a tus necesidades o que utilices con más frecuencia.

Para cargarlos localízalos desde el cuadro de diálogo de complementos mediante el

botón examinar.

Page 36: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 36

Page 37: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 37

Los complementos que incorpora Excel, una vez cargados, aparecerán dentro de

nuevos grupos de comandos en la pestaña Fórmulas o en Datos, en el menú

Herramientas en las versiones anteriores, o bien en una nueva pestaña o menú

desde donde los podremos ejecutar. El complemento cargado también puede añadir

nuevas funciones que podremos utilizar en nuestras fórmulas.

Moverse con el teclado

En ocasiones, cuando tenemos las manos en el teclado, resulta más rápido utilizar

las teclas para desplazarse por la hoja que llevar la mano al ratón y volver a

colocarla de nuevo sobre el teclado para continuar escribiendo. Muchas de las

teclas o combinaciones de teclas son comunes al sistema operativo o son ya

práctica habitual en la mayoría de programas comerciales, por lo que no son

exclusivas de Excel.

Las combinaciones de teclas de Windows que probablemente más hayas utilizado

serán:

[Ctrl] [C] copiar.

[Ctrl] [V] pegar.

[Ctrl] [Z] deshacer.

[Alt] [Tab] cambiar a otra aplicación abierta.

[Alt] [F4] cerrar la aplicación activa.

Si eres zurdo, tal vez te interese copiar y pegar con la mano derecha mientras

mantienes el ratón en la izquierda:

[Ctrl] [Insert] copiar.

[Mays] [Insert] pegar.

Si te interesa consultar la relación completa de métodos abreviados, en la ayuda de

Windows ve al tema: "Introducción a los métodos abreviados de teclado de

Windows".

Aunque a lo largo del libro no he incluido casi ninguna, existen combinaciones de

teclas para la gran mayoría de comandos de Excel, presta atención a la información

que aparece al pasar el puntero del ratón sobre los diferentes comandos. Puedes

ahorrar bastante tiempo empleando combinaciones de teclado para las tareas que

realices con mayor frecuencia.

Page 38: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 38

De entre las combinaciones de teclas que Excel ofrece, enumero a continuación las

relativas al desplazamiento por hojas y libros.

[Inicio] activa la primera celda de la fila donde se encuentre la celda

activa

[Fin] [flechas de desplazamiento] nos desplazamos en la dirección de la flecha

hasta la última celda que contenga algún dato. En el caso de

que estuviéramos junto a una celda vacía, nos desplazaremos

hasta la primera celda con datos.

[Control] [Inicio] activa la celda de la fila 1 columna 1, celda A1, de la hoja

activa.

[Control] [Fin] activa la última celda que contiene datos en la hoja, la más

alejada de la celda A1. Si hemos tenido datos que luego

hemos eliminado, seguiremos yendo a la celda más alejada

que contuvo información.

[Control] [flechas de desplazamiento] desplaza la celda activa, en la dirección

que indica la flecha, hasta la última celda del rango en que nos

encontramos que contiene datos, o en caso de ser una celda

vacía, hasta la primera celda que contenga datos. Igual que

con [Fin][flechas], pero las combinaciones con la tecla

[Control] requieren pulsar las teclas simultáneamente,

mientras que en las combinaciones que emplean [Fin] las

teclas se pulsan consecutivamente.

[Mayúsculas] Al mantener pulsada la tecla mayúsculas simultáneamente con

otra operación de movimiento de la celda activa, las celdas

quedan seleccionadas. Se puede utilizar con las flechas de

desplazamiento solas, con lo que se avanzará celda a celda, o

conjuntamente con la tecla [Control] o la tecla [Fin] para

avanzar hasta el final del rango con datos. Empleada

simultáneamente con operaciones de movimiento de hoja

activa, se irán seleccionando las diferentes hojas que se vayan

activando.

[Bloqueo Desplazamiento] al activar esta tecla, cuando utilizamos las teclas de

desplazamiento del teclado, no cambiamos la celda activa,

sino que movemos el encuadre de la zona que aparece en

Page 39: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 39

pantalla, como si utilizásemos las flechas de las barras de

desplazamiento horizontal y vertical que aparecen en la parte

inferior y en la parte izquierda de la hoja de cálculo.

[Av. Pág.] nos desplazamos una pantalla hacia abajo.

[Re. Pág.] nos desplazamos una pantalla hacia arriba.

[Alt] [Av. Pág] nos desplazamos una pantalla hacia la derecha.

[Alt] [Re. Pág.] nos desplazamos una pantalla hacia la izquierda.

[Ctrl] [Av. Pág] activa la siguiente hoja del libro activo.

[Ctrl] [Re. Pág.] activa la hoja anterior del libro activo.

[Ctrl] [F6], o [Ctrl] [Tab] activa el siguiente libro o la siguiente ventana.

[Ctrl] [Mays] [F6], o [Ctrl] [Mays] [Tab] activa el libro o la ventana

anterior.

Si te interesa obtener más información al respecto, busca “teclas de método

abreviado” en la ayuda de Excel.

Edición

Pegado Especial

Edición>Pegado Especial

Inicio>Portapapeles>Pegar>Pegado Especial

También aparece en todas las versiones en el menú contextual de las celdas cuando

hemos copiado algo previamente.

Normalmente copiamos y pegamos información dentro de un mismo programa o

incluso entre programas diferentes, obteniendo resultados satisfactorios, pero

existen diferentes opciones a la hora de pegar la información copiada que,

normalmente, pasan desapercibidas cuando simplemente “pegamos”.

Cuando trabajamos dentro de Excel, el cuadro de diálogo de pegado especial ofrece

muchas posibilidades a la hora de pegar la información que hemos copiado.

Si hemos copiado un rango de celdas, nos permite pegar sólo las fórmulas, o sólo

los valores, podemos transponer el rango, cambiando filas por columnas. Tenemos

Page 40: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 40

la opción de pegar sólo el formato, o las reglas de validación. Podemos incluso

realizar una operación sencilla (sumar, restar, multiplicar o dividir) en todas las

celdas del rango por el valor que tengamos en el portapapeles si se trata de una

constante, o modificará las fórmulas de destino cuando la celda que hemos copiado

contiene una fórmula. Ojo con las referencias absolutas y relativas en este último

caso.

Especial interés presenta la opción de Transponer para cambiar filas por columnas

cuando nos damos cuenta de que nuestra tabla crece mejor hacia abajo que hacia la

derecha. Ojo, que copiamos y pegamos en un sitio distinto, así que las referencias

que tuviésemos en las fórmulas no se mantendrán.

También es de utilidad la posibilidad de saltar blancos, para pegar sólo aquellas

celdas que contienen información de entre todas las que tiene el rango copiado, con

lo que no se sobrescriben los valores para las celdas del destino, que en el origen se

encuentran vacías.

Podemos copiar unos datos para añadirlos a un gráfico existente como nuevos

datos de una serie existente o como una serie nueva. Para ello basta con copiar los

datos, seleccionar el gráfico y luego la opción de pegado especial, con la que nos

Page 41: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 41

aparece en pantalla un formulario preguntando cómo queremos agregar los nuevos

datos al gráfico.

Si sólo queremos pegar formatos, podemos emplear también el botón “copiar

formato”, para copiar el formato y estilo de la celda activa y poder pegarlo en otra

celda. Para pegarlo repetidas veces en diferentes lugares, haz doble clic sobre el

botón copiar formato, el formato copiado se aplicará a todas las celdas que vayas

seleccionando. Para terminar pulsa [Escape].

No siempre la opción por defecto de pegar es la que más nos interesa, por ejemplo,

si copiamos un gráfico de Excel para pegarlo en otra hoja o en un documento de

Word ¿qué te interesa más, que sea una imagen para que nadie pueda alterar el

aspecto del gráfico posteriormente, que sea un objeto que se pueda modificar, que

incluya además del gráfico toda la información de la hoja de cálculo original (y

todo su tamaño de archivo)? Haz la prueba en el programa de destino, donde vas a

pegar lo que acabas de copiar en Excel, para averiguar cuál es la opción por

defecto.

Lo mismo puede decirse cuando copiamos en otro programa para luego pegarlo en

Excel, puede que la opción por defecto no sea lo que más nos convenga. Según el

contenido del portapapeles, las opciones disponibles variarán.

Page 42: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 42

Seleccionar celdas especiales

Edición>Ir a… >Especial

Inicio>Modificar>Buscar y seleccionar>Ir a especial

Cuando existen filas o columnas ocultas en la hoja, bien manualmente, bien

mediante las opciones de agrupar y esquema, al seleccionar un rango que incluya

celda visibles con celdas ocultas entre medias, también se seleccionan estas celdas

ocultas, pero puede que sólo nos interese actuar con las celdas visibles. En este

caso debes recurrir al cuadro de diálogo Ir a Especial.

Si lo utilizas mucho, tal vez te merezca la pena añadir un botón a la barra de

herramientas personalizada, o memorizar la combinación de teclas [Alt][;]

Herramientas>Personalizar>Comandos>Edición>Seleccionar celdas visibles

Personalizar barra de herramientas de acceso rápido>Todos los

comandos>Seleccionar Celdas Visibles

El cuadro de diálogo Ir a Especial tiene muchas otras opciones, como ir a las

celdas que están comentadas, a celdas con valores constantes, a celdas con

fórmulas, a celdas vacías, …

Page 43: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 43

Podemos ir a celdas con errores, a celdas que contienen fórmulas que no son

iguales que las introducidas en la misma fila o en la misma columna, así como a

celdas precedentes o dependientes de la celda activa, lo que puede ayudar en la

localización y corrección de errores.

Por último, tenemos la opción de seleccionar aquellas celdas que contienen formato

condicional, así como celdas que tienen reglas para validación de datos.

Justificar texto

Edición>Rellenar>Justificar

Inicio>Modificar>Rellenar>Justificar

En ocasiones tenemos texto en varias celdas, con unas líneas más largas que otras,

dando un aspecto descuidado a nuestra hoja.

Excel ofrece la opción de justificar texto en una selección. Mediante esta

justificación, Excel se ocupa de cambiar parte de los textos de unas filas a otras,

para repartir todo el texto en el rango seleccionado.

Page 44: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 44

El rango en el que queramos justificar el texto debe ser lo suficientemente grande

como para que quepa todo el texto, en caso contrario se ajustaría el ancho al del

rango seleccionado, pero se necesitarían más filas de las seleccionadas,

sobrescribiendo en las celdas que haya más abajo, sin preguntar.

El texto debe estar escrito en las celdas de la primera columna del rango

seleccionado. Si hay texto en celdas de otras columnas no funciona.

No se trata de una alineación justificada del texto. Se modifica el contenido de

las celdas, repartiendo todo el texto entre ellas.

Page 45: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 45

Comentarios

Insertar>Comentario

Revisar>Comentarios>Nuevo comentario

En el menú contextual que aparece al pulsar el botón secundario del ratón sobre

una celda o un rango, tenemos la opción de añadir un comentario, donde podemos

anotar la información que resulte de interés para aclarar el funcionamiento de la

hoja.

Por defecto las celdas comentadas muestran de color rojo la esquina superior

derecha, y el comentario se hace visible al pasar el ratón sobre la celda comentada.

Esta configuración puede cambiarse en las opciones del programa para que todos

los comentarios estén visibles, o para que no sean visibles ni los comentarios ni los

indicadores en la esquina de las celdas comentadas.

Herramientas>Opciones>Ver

Botón Office>Opciones de Excel>Avanzadas>Mostrar

Page 46: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 46

En el menú contextual sobre una celda comentada, aparecerá la opción de mostrar

u ocultar ese comentario en concreto, así como la posibilidad de modificar y

eliminar dicho comentario.

Page 47: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 47

Visualización

Modos de ver las referencias

Herramientas>Opciones>General>Configuración>Estilo de Referencia L1C1

Botón Office>Opciones de Excel>Fórmulas>Trabajando con fórmulas>Estilo

de Referencia F1C1

Existen dos posibilidades para mostrar las referencias a celdas en las fórmulas, la

opción por defecto emplea letras para las columnas y números para las filas, así

tendríamos por ejemplo la celda A1; en este modo las referencias absolutas se

muestran anteponiendo el signo dólar $ delante del carácter que corresponda, por

ejemplo $A1, o $A$1.

El otro modo de visualización, denominado L1C1 hasta la versión 2002 (¿L de

línea? supongo que por una traducción equivocada del inglés Row por línea, en vez

de por Fila) y F1C1 desde la versión 2003, muestra números tanto en Filas como en

Columnas, anteponiendo F para las filas (L en versiones anteriores) y C para las

columnas. En este caso la referencia absoluta se indica como F3C8 (fila 3 columna

8), mientras que las referencias relativas se muestran con un número entre

paréntesis, indicando la posición de la referencia respecto de la celda actual, así

F(3)C(-1) hace referencia a la celda que se encuentra tres filas más abajo que la

posición actual y una columna menos, esto es, a la izquierda. Cuando la referencia

relativa es a la misma fila o a la misma columna, aparece F o C sin ningún número,

por ejemplo FC(4) se refiere a la celda de la misma fila, cuatro columnas a la

derecha.

Page 48: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 48

Cuando tenemos fórmulas con referencias relativas que se repiten a lo largo de una

columna, al visualizarlas en el modo F1C1 vemos que todas las fórmulas son

iguales, es decir, que se trata de la misma fórmula, aunque se aplique en diferentes

posiciones. Esto puede ser de utilidad para detectar algún error de una fórmula

distinta que se nos haya colado entre otras muchas iguales. Con el modo de

visualización de letras y números esto no siempre resulta evidente.

En la siguiente figura se muestra cómo en el ejemplo de la tabla de multiplicar (ver

página 27), con el modo de visualización F1C1, es obvio que la fórmula

introducida es la misma en todas las celdas.

Page 49: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 49

Ver información en la barra de estado

De entre toda la información que podemos ver en la barra de estado, tal vez la de

mayor utilidad sea la posibilidad de que Excel realice ciertos cálculos con las

celdas seleccionadas, tales como mostrar la suma, la media, el máximo o el

mínimo.

En las versiones anteriores sólo se podía mostrar uno de estos resultados, que

debíamos seleccionar en el menú contextual de la barra de estado. En Excel 2007

se pueden mostrar todos estos resultados, o los que queramos, simultáneamente.

En este menú contextual de la barra de estado disponemos de multitud de opciones

para particularizar qué información deseamos que se muestre, desde el modo en

que se encuentra la celda activa, hasta un control deslizante para el porcentaje de

zoom de visualización en pantalla, pasando por un botón para grabar macros.

Page 50: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 50

Vista previa de salto de página

Ver>Vista previa de salto de Página / Vista Normal

Vista>Vistas de libro>Vista previa de salto de página / Vista Normal

En la vista previa de salto de página se muestra el área de impresión, con el número

de página superpuesto sobre la hoja.

En este modo de visualización de la hoja, pueden moverse los saltos de página con

el ratón hasta la posición que deseemos, así como los límites del área que va a

imprimirse.

En la versión 2007 tenemos la posibilidad de ubicar unos iconos en la barra de

estado, con los que poder seleccionar el modo de visualización de la hoja. Para ello

debemos activar la opción “ver accesos directos” en el menú contextual de la barra

de estado.

También en la versión 2007, se ha añadido un nuevo modo de visualización

llamado vista diseño de página, donde se ve el documento tal y como va a quedar

impreso, hasta aquí similar a la presentación preliminar, pero con la ventaja de que

podemos escribir y retocar la hoja en este modo de visualización.

Page 51: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 51

Inmovilizar / Movilizar Paneles

Ventana>Inmovilizar / Movilizar Paneles

Vista>Ventana>Inmovilizar Paneles

Opción fundamental para mantener los encabezados de filas y o columnas fijos en

pantalla mientras te desplazas por la hoja.

Lo que se inmoviliza es lo que se encuentre encima y a la izquierda de la celda

activa.

En este ejemplo se inmovilizó desde la celda F2, con lo que por encima (fila 1) y a

la izquierda (columnas de la A a la E) permanecen en pantalla mientras nos

Page 52: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 52

desplazamos por la hoja. Las columnas A y B que estaban fuera del encuadre de la

pantalla al inmovilizar paneles permanecen sin ser visibles, pues quedan también

inmovilizadas.

La inmovilización de paneles afecta únicamente a la presentación en pantalla,

pero no afecta a la hora de la impresión de las hojas.

Dividir ventana

Ventana>Dividir / Quitar División

Vista>Ventana>Dividir

Otra buena opción para mantener visibles en pantalla diferentes partes de la hoja

simultáneamente. La diferencia respecto de inmovilizar paneles es que con la

división de la ventana pueden desplazarse todas las zonas de la hoja; no quedan

inmovilizadas. Esto se traduce en que una misma celda puede aparecer en todas las

divisiones. También permite alterar el orden en que aparecen los datos respecto de

su posición en la hoja, podemos tener en la división superior celdas que están más

abajo que las mostradas en la división inferior. Lo mismo ocurre a izquierda y

derecha.

Aparte de mediante los menús, puede dividirse la pantalla empleando las barras

que aparecen en la parte superior y a la izquierda de las flechas de las barras de

desplazamiento. El cursor del ratón adopta la forma de dos flechas opuestas

separándose perpendicularmente a la dirección en que se va a dividir la ventana.

Page 53: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 53

Las divisiones pueden modificarse también mediante el ratón después de haber

sido creadas, tanto por separado la división horizontal o la vertical, haciendo clic

sobre la división y arrastrando hasta el lugar deseado, como conjuntamente,

haciendo clic con el ratón en la intersección de ambas divisiones. Para eliminar una

división basta con hacer doble clic sobre ella.

La división de la ventana afecta únicamente a la presentación en pantalla,

pero no afecta a la hora de la impresión de las hojas.

Varias ventanas de una misma hoja de cálculo

Ventana>Nueva Ventana

Vista>Ventana>Nueva Ventana

En ocasiones es de utilidad tener varias ventanas abiertas de un mismo archivo, por

ejemplo si en nuestro libro hay muchas hojas pero en este momento estamos

trabajando sólo con un par de ellas, podemos tener dos ventanas, cada una

mostrando una hoja de las dos con las que estamos trabajando. Tiene la ventaja de

Page 54: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 54

poder tener en pantalla las dos ventanas a la vez, es decir que nos permite mirar a

dos partes del libro simultáneamente.

La visualización de una misma hoja en ventanas diferentes no tiene por qué ser la

misma. En una ventana podemos tener, por ejemplo, inmovilizados los

encabezados en vista normal, mientras que en otra ventana podemos ver la misma

hoja en vista previa de salto de página con la ventana dividida en horizontal y con

diferente zoom.

Como con casi todas las aplicaciones de Windows o Macintosh, podemos organizar

las ventanas en cascada, en mosaico, horizontal y verticalmente.

Page 55: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 55

Ventana>Ocultar / Mostrar

Vista>Ventana>Ocultar / Mostrar

Se puede ocultar una de las varias ventanas abiertas del documento, aunque la

ventana sigue existiendo y puede volver a mostrarse en cualquier momento. Para

eliminar una ventana habrá que cerrarla, sólo se cierra el archivo si tratamos de

cerrar la última ventana abierta del mismo.

Vistas Personalizadas

Ver>Vistas personalizadas

Vista>Vistas de Libro>Vistas Personalizadas

Puedes guardar en el libro diferentes vistas del mismo, que luego podrás recuperar

para ver o imprimir cuando lo necesites. Es muy útil si tenemos varias zonas en el

libro (en la misma o en diferentes hojas) entre las que nos tenemos que mover con

frecuencia, por ejemplo una zona de datos de partida y otra de resultados.

La vista puede almacenar, además de la zona que se encuadra en la pantalla para

visualización, información de filas y columnas ocultas, de filtros aplicados y de

configuración de impresión, lo que incluye encabezados, pies de página,

orientación del papel, área de impresión, etc.

Page 56: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 56

Dispón la vista de tu hoja como quieras recuperarla posteriormente, no

olvides la configuración de la impresión, y guárdala con un nombre

descriptivo.

Área de Trabajo

Archivo>Guardar área de trabajo

Vista>Ventana>Guardar Área de Trabajo

Es posible, también, guardar el área de trabajo, que nos permitirá recuperar más

adelante todos los libros que tenemos abiertos en la situación actual. Muy útil

cuando se trabaja con varios documentos simultáneamente y tienes que interrumpir

la labor para continuar dentro del suficiente tiempo como para haber olvidado

dónde te habías quedado, o incluso después de apagar el programa o el ordenador.

El área de trabajo se guarda en un archivo independiente, con extensión xlw (w de

workspace).

Page 57: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 57

Ver los nombres de los rangos

Cuando tenemos varios rangos con nombre en la hoja, reducir el porcentaje del

zoom de visualización hasta un valor inferior al 40% permite ver sobre la hoja los

nombres de los rangos que se han definido. El resultado es más o menos

satisfactorio dependiendo de si los rangos con nombre son de tamaños similares, si

no es así, tal vez no sea demasiado clarificador.

Ver las fórmulas

Herramientas>Opciones>Ver>Opciones de Ventana>Fórmulas

Fórmulas>Auditoría de Fórmulas>Mostrar Fórmulas

[Alt][º]

En ocasiones puede resultar útil que se muestren las fórmulas contenidas en las

celdas, en vez del valor resultado de las mismas, sobre todo en la fase de creación

de la hoja, o cuando tratamos de detectar algún error, para poder comprobar las

fórmulas introducidas viéndolas todas a la vez sin tener que ir seleccionándolas una

a una para verlas en la barra de fórmulas.

Ver las macros disponibles

Herramientas>Macro>Macros

Programador>Código>Macros

[Alt][F8]

Si queremos ejecutar una macro, desde este cuadro de diálogo podemos elegir entre

las macros disponibles en el propio libro, en el libro de macros personal, o en

cualquiera de los libros que tengamos abiertos en este momento.

Page 58: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 58

Ver el editor de Visual Basic

Herramientas>Macro>Editor de Visual Basic

Programador>Código>Visual Basic

[Alt][F11]

Porque cuando grabas tu primera macro no sabes cómo consultar el código que se

ha generado, para poder retocarlo o simplemente para curiosear.

El editor de Visual Basic es el lugar donde modificar, crear y depurar el código de

la programación de tu libro.

Ver todos los comandos de los menús

Uno de los fenómenos más desagradables de las versiones 2000 a 2003 era

desplegar un menú y no tener a la vista todas las opciones disponibles, sino sólo las

que el programa pensaba que, por haberlas utilizado más recientemente o más

veces, ibas a seguir utilizando eternamente. Afortunadamente, en la versión 2007

Page 59: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 59

todos los comandos están visibles y siempre en el mismo sitio, para tranquilidad de

los usuarios.

Herramientas>Personalizar>Opciones>Mostrar en los menús primero los comandos usados recientemente

Desactivando esta opción no habrá que esperar a que se despliegue el menú

completo en un segundo paso, tras unos inquietantes instantes en los que da tiempo

a preguntarse si te equivocaste de menú, si el programa se ha estropeado, o si

alguien estuvo trasteando en tu ordenador mientras fuiste al baño un momento.

Tomar fotos de celdas

Herramientas >Personalizar>Comandos>Herramientas>Cámara

Personalizar barra de herramientas de acceso rápido>Comandos disponibles

en>Todos los comandos>Cámara

Esta curiosidad puede sernos de utilidad en alguna situación. Es más rápido que

copiar las referencias a varias celdas si solamente queremos tener a la vista algunos

datos, por ejemplo los datos de origen al lado de los resultados de los cálculos.

Al seleccionar este comando, la cámara toma una imagen de las celdas

seleccionadas en el portapapeles, que podemos insertar a continuación como si de

una forma de dibujo se tratase pero, al contrario de lo que ocurre con una imagen

estática, esta imagen se actualiza si cambian las celdas originales. Guarda la

referencia a las celdas como una fórmula, así que si movemos todos los datos

originales a otro sitio con el ratón, o si insertamos celdas entre medias, se mantiene

la referencia, tanto si la imagen se encuentra en el mismo libro como si se pegó en

un libro diferente. Incluso si modificamos el tamaño de las celdas originales se

modifica el tamaño de la imagen para adaptarse a la nueva situación.

Page 60: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 60

Al igual que una imagen convencional, se puede modificar su tamaño, se puede

mover por la hoja y desde la versión 2002 podemos girarla.

Fíjate en la barra de fórmulas cuando selecciones la imagen, aparece el rango

de origen (que podrás retocar si es necesario). Si haces doble clic sobre la

imagen se seleccionará dicho rango.

Con estilo

Estilos de celda

Formato>Estilo

Inicio>Estilo>Estilos de celda

Los estilos no son territorio exclusivo de los procesadores de texto. Excel permite

la utilización de estilos de celda y desde la versión 2003 también incluye estilos de

tabla (ver página 138).

En las versiones anteriores, para facilitar la aplicación de estilos, es recomendable

habilitar en una barra de herramientas personalizada la lista desplegable donde

aparecen los estilos definidos en el libro.

Herramientas>Personalizar>Comandos>Formato>Estilo

La mayor ventaja de haber aplicado estilos en tu libro aparece cuando hay que

cambiar el aspecto de toda la información allí recogida. En vez de tener que

cambiar las celdas una a una, basta con modificar el estilo y en todos los lugares en

Page 61: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 61

los que se haya aplicado dicho estilo se actualizará el aspecto de acuerdo a la nueva

definición.

Disponemos de gran variedad de estilos predefinidos, pero por si no tenemos

bastante o ninguno se adapta a nuestros requerimientos, podemos definir nuestros

estilos personalizados.

Para crear un estilo personalizado aplica en una celda manualmente el formato que

quieras y luego, con esa celda activada, selecciona la opción de crear un estilo

nuevo. En el cuadro de diálogo que se mostrará a continuación pon un nombre

representativo a tu estilo y activa las opciones que quieres que se consideren.

Si ya habías definido unos estilos en otro libro, mediante la opción de

combinar estilos, puedes traer al libro actual los estilos personalizados

definidos en el otro libro que, para esta operación, tiene que estar abierto

también.

Page 62: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 62

Temas

Diseño de página>Temas

En la versión 2007 se incorpora el concepto de tema, que es un conjunto de estilos

de número, estilos de tabla, fuentes, colores, estilos de gráfico, efectos para las

formas…

Con la utilización de temas, toda la apariencia del libro estará en sintonía. Si

cambiamos el tema asociado a nuestro libro, se modificará la apariencia de todo el

libro.

Los temas pueden guardarse como archivos independientes (con extensión thmx)

que pueden ser utilizados por diferentes programas del paquete Office para dar un

aspecto homogéneo, independientemente del programa que creó el archivo.

También facilita que varias personas generen documentos con apariencia similar,

simplemente aplicando un mismo tema a sus documentos.

Tengo mis dudas sobre si el departamento más creativo de Microsoft es el que elige

las combinaciones de colores, o es el que inventa los nombres.

Page 63: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 63

Para crear un nuevo tema hay que definir los colores y las fuentes del mismo,

mediante las opciones en las listas desplegables de este grupo. Una vez hecho esto,

podemos guardar el tema personalizado a través de Guardar tema actual, en el

desplegable de los temas.

Page 64: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 64

Imprimir

Archivo>Configurar Página>

Diseño de página>Configurar Página>Cuadro de diálogo configurar página>

A continuación describo algunas opciones dentro de la configuración de página

para impresión que pueden resultar de interés.

Encajar en una página

>Página>Ajuste de escala>Ajustar a: – páginas de alto por – páginas de

ancho

Page 65: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 65

Activando esta opción, Excel ajustará el tamaño con que imprimirá la hoja para

encajarla en las páginas especificadas.

No es necesario indicar las dos dimensiones, si solamente indicamos una de ellas

dejando la otra en blanco, Excel ajustará el tamaño para imprimir en el número de

páginas de la dimensión señalada, mientras que el número de páginas en la otra

dimensión dependerá del tamaño del área de impresión de la hoja.

Por ejemplo, si tenemos muchos datos de los que queremos imprimir un listado,

podemos indicar en el ajuste de escala que lo encaje en una página de ancho,

dejando en blanco el número de páginas de alto, para que se impriman las hojas

necesarias.

Centrado Horizontal / Vertical

>Márgenes>Centrar en la Página>horizontalmente / verticalmente

No siempre lo que tiene mejor apariencia es imprimir nuestra hoja alineada arriba y

a la izquierda, en muchas ocasiones, sobre todo si no ocupamos la página por

completo, obtendremos un resultado más aparente si centramos la impresión

horizontal o verticalmente en la página.

En estos temas de aspecto, cada uno tiene sus gustos y preferencias.

Repetir filas / columnas

>Hoja>Imprimir títulos>Repetir filas en extremo superior

Page 66: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 66

>Hoja>Imprimir títulos>Repetir columnas a la izquierda

Con estas dos opciones seleccionamos las filas o columnas con los títulos que

queremos que aparezcan en todas las hojas impresas. Fundamental cuando nuestra

hoja de cálculo necesita más de una página para leerse cómodamente en papel.

Las opciones para repetir títulos no están disponibles cuando se accede a la

configuración de página desde la vista preliminar.

En esta pestaña Hoja de la configuración de página, tenemos también las opciones

para imprimir la cuadrícula de las celdas, para imprimir las letras y números de

filas y columnas.

Podemos indicar cómo queremos que se impriman los comentarios y cómo

queremos que se impriman los errores presentes en la hoja.

Imágenes en encabezados y pies de página

>Encabezado y pies de página>personalizar encabezado

>Encabezado y pies de página>personalizar pie de página

Desde la versión 2002 es posible incorporar imágenes dentro del encabezado o pie

de página. También es posible desde esa versión incorporar la ruta del archivo;

antes debía conseguirse esto por otros métodos, ya que desde las opciones de

personalización del encabezado y el pie sólo se podía añadir el nombre del archivo,

pero no la ruta completa hasta él.

En la versión 2007 puede establecerse que las páginas pares e impares tengan

encabezados diferentes, por ejemplo para que resulten simétricos si va a imprimirse

a doble cara o tipo libro. Asimismo es posible establecer que la primera página

tenga un encabezado y pie diferente de las demás.

Page 67: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 67

Ayuda

[F1]

El programa incorpora una completa ayuda en pantalla, con todas las funciones del

programa y ejemplos de utilización de gran parte de la información allí mostrada.

Como es lógico los ejemplos no se ajustarán siempre exactamente a tus

necesidades y puede no resultar muy cómoda de leer, pero siempre es un buen

recurso y el primer lugar donde consultar en caso de duda.

Page 68: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 68

Grupos de funciones para no olvidar

Insertar>Función

Fórmulas>Biblioteca de funciones

Aunque la mejor manera de aprender las funciones disponibles es practicando, y

recordándote que en la ayuda del programa se encuentra la explicación de todas las

funciones que Excel incorpora, me voy a permitir llamar la atención únicamente

sobre algunas de ellas, quizás no tan famosas como la función SUMA, pero

bastante útiles. No trato de explicar el funcionamiento de todas, simplemente

indicar para qué sirven o qué se puede conseguir con ellas.

Lo primero que no debes olvidar es que Excel ha agrupado las fórmulas por

categorías, para facilitarte la localización de la que se adapte a tus necesidades.

Cuando vayas a escribir o modificar una fórmula, puedes activar el asistente para

insertar funciones pulsando el botón fx, que se encuentra junto a la barra de

fórmulas.

Page 69: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 69

Si utilizas una versión anterior a la 2007, puede que requieras cargar el

complemento Herramientas para Análisis para disponer de algunas de estas

funciones, pues no se encuentran entre las funciones por defecto de Excel.

Búsquedas y referencias

Excel dispone de unas cuantas funciones para buscar información en un rango,

devolviendo como resultado la posición en el rango de la celda que coincide con el

valor buscado, o bien una celda de la misma fila o de la misma columna que la

celda coincidente.

BUSCAR busca un valor en un vector y devuelve como resultado el valor que se

encuentra en la misma posición en un segundo vector, entendiendo como vector un

rango de una dimensión, es decir un rango tipo fila o tipo columna, puede ser una

matriz con una de sus dimensiones igual a uno, o puede ser una lista de valores

introducidos manualmente, separados por puntos y comas (o el separador de listas

configurado en tu sistema operativo)

BUSCARH busca un valor en la primera fila de un rango, y devuelve un valor de

ese rango que se encuentra en la misma columna que el dato encontrado, pero en la

fila que le indiquemos.

Page 70: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 70

BUSCARV busca un valor en la primera columna de un rango, y devuelve un valor

de ese rango que se encuentra en la misma fila que el dato encontrado, pero en la

columna que le indiquemos.

COINCIDIR busca un valor en un rango de una dimensión (fila o columna) y

devuelve la posición de la celda coincidente, no devuelve el valor, sino la posición

donde se ha encontrado la coincidencia. Por ejemplo, si buscamos el valor 23 en la

lista {14;45;64;23;9;10}, el valor buscado se encuentra en la cuarta posición, por lo

tanto la función COINCIDIR devolverá como resultado 4.

Las funciones anteriores permiten elegir si la coincidencia con el valor que se

busca ha de ser exacta, o si se mostrará el valor más próximo.

ELEGIR devuelve el valor que se encuentra en una posición especificada dentro de

una lista de valores.

Asociada a estas funciones disponemos de la función INDICE, que permite

referirnos a celdas individuales, filas o columnas, dentro de un rango o incluso

dentro de varios rangos. Por ejemplo, para hacer referencia a la celda de la segunda

fila y la cuarta columna dentro de un rango habría que escribir

INDICE(Rango;2;4).

La función INDICE devuelve la referencia a una celda, por lo que puede emplearse

dentro de funciones o como parte de una referencia a un rango, por ejemplo, para

sumar un rango que comience en la celda A2 y acabe en la celda del ejemplo

anterior escribiríamos la siguiente fórmula: SUMA(A2:INDICE(Rango;2;4))

El rango que emplea la función INDICE puede estar formado por varias áreas, en

este caso habría que indicar de cuál de estas áreas queremos extraer el valor.

Por ejemplo, INDICE(RangoMúltiple;2;1;3) se refiere a la celda de la fila 2,

columna 1 del área 3, dentro del rango de nombre RangoMúltiple, que es la

representada en la figura.

Page 71: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 71

Excel incorpora un complemento denominado Asistente para búsquedas que

permite generar, de una manera sencilla, fórmulas de búsqueda de valores en una

tabla a partir de los encabezados de fila y columna, mediante las funciones INDICE

y COINCIDIR.

Funciones FILA y COLUMNA devuelven como resultado la fila o la columna que

ocupa una celda dentro de la hoja. FILA(A2) es igual a 2

Las funciones FILAS y COLUMNAS devuelven como resultado el número de filas

o columnas que tiene un rango o matriz. Si el rango proporcionado está formado

por múltiples áreas, generará el error #¡REF!

DESREF permite hacer referencia a un rango que se encuentra desplazado (su

esquina superior izquierda) respecto de una celda, un número de filas y de

columnas especificado. Podemos especificar las dimensiones del rango mediante el

alto y el ancho del mismo. Si indicamos un número de filas positivo quiere decir a

la derecha, mientras que un número negativo significa hacia la izquierda. Con las

columnas, un número positivo indica sentido hacia abajo, mientras que un número

negativo indica sentido hacia arriba.

DESREF(Celda1;2;-1;4;3) hace referencia al rango cuya esquina superior izquierda

se sitúa dos filas debajo y una columna a la izquierda de Celda1, con cuatro filas de

alto y tres columnas de ancho.

Page 72: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 72

INDIRECTO nos da la posibilidad de hacer referencia a una celda componiendo la

ruta hasta esa referencia (nombre del libro, nombre de la hoja, fila y columna) con

una cadena de texto, lo que permite generar la referencia concatenando los valores

que se encuentran en otras celdas (en una o en varias). Por ejemplo,

INDIRECTO(NombreHoja & "!A1") hace referencia a la celda A1 de la hoja cuyo

nombre se encuentra en una celda a la que se ha puesto el nombre “NombreHoja”,

si en esta celda escribimos “Hoja1”, la función INDIRECTO hará referencia a la

celda A1 de la hoja Hoja1, si posteriormente en la celda NombreHoja

escribimos”Hoja2”, la función INDIRECTO se referirá a la celda A1 de la hoja

Hoja2. Como es lógico, si la referencia no es correcta, se produce el error #¡REF!.

La función INDIRECTO puede utilizarse como argumento de cualquier otra

función que requiera una referencia.

Funciones de base de datos

Toda la serie de funciones cuyo nombre comienza por BD, permite realizar

operaciones con un subgrupo del total de datos disponibles en un listado o tabla,

que cumplan unos criterios que especifiquemos.

Para todas estas funciones, los criterios deben anotarse en celdas adicionales. En la

función BD se hace referencia a las celdas donde se encuentran esos criterios, pero

no pueden escribirse dichos criterios dentro de la propia fórmula.

En un ejemplo de un listado donde se anoten los gastos de una casa, las funciones

BD nos permiten calcular cuánto gastamos en comida entre dos fechas, o cuál es el

importe medio de las facturas de la luz, o cuántas facturas de más de 100 euros

hemos tenido en reparaciones en el último año, etc., etc.

Page 73: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 73

La estructura de todas estas funciones es la siguiente:

BDfunción(rango con los datos; campo que se desea evaluar; criterios que deben

cumplir los registros)

El modo de anotar los criterios es con el nombre de los campos en la fila superior y

en las filas bajo ese encabezado, los criterios que queremos que cumpla cada

campo. No es válido un rango múltiple, con los encabezados en un área y los

criterios en otra área, aunque coincidan las dimensiones. Debe ser un rango único,

con los nombres de los campos en la primera fila y los criterios en las filas

siguientes, en caso contrario obtendrás el error #¡VALOR!

Todos los criterios que están en una misma fila deben satisfacerse

simultáneamente, equivale a un operador lógico Y. Si tenemos criterios en distintas

filas estamos indicando que debe satisfacerse cualquiera de las condiciones de las

filas, al menos una de ellas, como un operador O booleano.

No es necesario que en el rango de criterios aparezcan los nombres de todos los

campos de la base de datos, basta con que aparezcan aquellos que queremos utilizar

como criterios. Un mismo campo puede aparecer varias veces, si debe cumplir

simultáneamente más de una condición.

Page 74: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 74

Para criterios con cadenas de texto, puedes emplear caracteres comodín, ? para un

único carácter y * para varios caracteres.

Si quieres buscar un texto que incluya un asterisco * o una interrogación ? o una

tilde ~, antepón una tilde ([Alt]+0126) a dicho carácter para que Excel no lo

interprete como un comodín. Así, por ejemplo, para aplicar un criterio que localice

los registros que contienen “¿cómo?” deberemos escribir en la celda del criterio

correspondiente el texto “¿cómo~?”. Para encontrar todos los datos que acaben en

?, tendríamos que emplear el criterio *~?

El criterio no tiene por qué ser un valor fijo para todos los registros, puede ser una

fórmula que dependa del dato y que dé como resultado verdadero o falso. Por

ejemplo, podemos indicar que la función BD actúe sobre los registros que se hayan

pagado más de treinta días después de la fecha de la factura, es decir, que la

diferencia entre ambas fechas sea superior a treinta.

Para conseguirlo, hay que escribir como criterio las fórmulas que deseemos,

referidas al primer registro, a la primera fila de datos. Excel se ocupará de ir

analizando la expresión con cada uno de los diferentes registros, para incluirlos en

el cálculo de la función BD si el criterio se evalúa como verdadero.

Como no se trata de ningún campo de la base de datos, puedes llamar a ese criterio

como mejor te parezca.

Estos son algunos ejemplos de criterios:

Page 75: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 75

Convertir unidades

La función CONVERTIR permite realizar la conversión de unidades entre

diferentes sistemas. También admite la inclusión de prefijos multiplicadores en las

unidades, desde atto (10-18

) hasta Exa (1018

).

Excel no es MathCad, así que no podemos indicar las unidades en que se

introducen los valores para que luego el programa realice la conversión

automáticamente al operar y proporcione el resultado en las unidades que

deseemos.

Funciones de información

Excel incluye una serie de funciones que permiten obtener información sobre el

tipo de valor de las celdas, si es texto, si es un número, si está en blanco, si

contiene un error, etc.

Los nombres de estas funciones son bastante descriptivos, por lo que no merecen

mucha más explicación. Cada una de ellas devolverá como resultado el valor

VERDADERO, si el argumento coincide con lo indicado en el nombre de la

función.

ES.PAR, ES.IMPAR, ESBLANCO, ESERR, ESERROR, ESLOGICO, ESNOD,

ESNOTEXTO, ESNUMERO, ESREF, ESTEXTO.

Bueno, tal vez no todos los nombres sean suficientemente autoexplicativos:

ESERR, verdadero si el argumento es un error, excepto #N/A.

ESNOD, verdadero para el error NO Disponible (#N/A, Not Available).

ESREF, verdadero cuando el argumento es una referencia a un rango, bien escrita

directamente, bien mediante un nombre.

Adicionalmente a estas funciones ES, tenemos otras funciones para obtener

información de las celdas, del tipo de datos contenido en las mismas e incluso del

libro:

CELDA suministra información como el formato o el color de una celda.

INFO suministra información concerniente al archivo, tal como la ruta del

directorio de trabajo actual, el número de hojas en el libro, el sistema operativo

instalado y algunas cosas más.

Page 76: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 76

Por último, la función TIPO devuelve un valor numérico según el tipo de dato

contenido en la celda que se le proporcione como argumento.

Número 1 Texto 2

Valor lógico 4 Error 16

Matriz 64

En algunos casos puede ser interesante aplicar una fórmula u otra según el

tipo de dato que el usuario haya introducido, lo que se realizaría empleando la

función TIPO dentro de una función condicional SI.

Funciones para errores

Disponemos de una serie de funciones para los errores en las celdas #N/A

#¡VALOR! #¡REF! #¡DIV/0! #¡NUM! #¿NOMBRE? #¡NULO!

Dentro del grupo de funciones de información, las ya comentadas

ESERR, verdadero para todos los errores excepto #N/A,

ESERROR, verdadero para todos los errores, incluido #N/A,

ESNOD, verdadero sólo si el argumento es #N/A.

No podemos aplicar la función condicional SI directamente, para comparar si una

celda contiene un error; tendremos que emplear alguna de las funciones anteriores,

o bien la función SI.ERROR (añadida en la versión 2002), condicional que evalúa

si el argumento es un error, cualquiera de ellos, y en caso afirmativo dará como

resultado el valor que le indiquemos en su segundo argumento.

Las funciones anteriores no distinguen qué error es el que se ha producido. Para

averiguarlo debes emplear la función TIPO.DE.ERROR, que devuelve un valor

numérico que depende del error

#¡NULO! 1 #¡DIV/0! 2

#¡VALOR! 3 #¡REF! 4

#¿NOMBRE? 5 #¡NUM! 6

#N/A 7

Para cualquier otro valor suministrado a esta función, ésta devuelve como resultado

el error #N/A.

Page 77: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 77

Podemos emplear este valor numérico para calcular con un valor alternativo en

caso de que se presente un determinado error, o para mostrar algún formato

condicional o algún texto descriptivo que informe al usuario del libro de las

posibles causas del error.

Funciones de texto

Cuando se opera con textos, no viene mal tener a mano este grupo de funciones,

que nos van a permitir convertir textos a mayúsculas o a minúsculas, eliminar

espacios, eliminar caracteres no imprimibles, reemplazar un texto por otro, buscar

dentro de un texto, concatenar varios textos, o convertir números a texto con un

formato especificado.

MAYUSC convierte a mayúsculas, MINUSC convierte a minúsculas,

NOMPROPIO convierte la primera letra de cada palabra a mayúsculas y el resto a

minúsculas.

ESPACIOS elimina los espacios existente al principio y al final, LIMPIAR elimina

los caracteres no imprimibles, como saltos de línea u otros caracteres procedentes

de la importación de datos de archivos con otra codificación diferente a la

empleada por defecto en tu equipo; los famosos caracteres que aparecen como un

rectángulo o como una barra vertical |.

REEMPLAZAR permite cambiar parte de una cadena de texto por otra indicando

la posición, dentro de la cadena original, y el número de caracteres que queremos

reemplazar. También disponemos de la función SUSTITUIR que busca un texto

dentro de la cadena de texto que se proporciona como argumento y lo sustituye por

otro.

IZQUIERDA y DERECHA permiten extraer un número de caracteres, empezando

a contar por el principio o por el final del texto respectivamente.

CONCATENAR une varias cadenas de texto. Excel también entiende en una

fórmula el operador & empleado para concatenar textos.

DECIMAL, MONEDA, TEXTO, convierten un número en un texto aplicándole

formato de número con decimales, de moneda, o un formato personalizado

respectivamente.

HALLAR y ENCONTRAR permiten buscar un texto dentro de otro, dando como

resultado la posición en que se ha encontrado, o un error #¡VALOR! si no lo

encuentra. La diferencia entre ambas funciones es que HALLAR no distingue entre

Page 78: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 78

mayúsculas y minúsculas, mientras que ENCONTRAR busca el texto que esté

escrito exactamente igual.

EXTRAE permite recuperar un fragmento de texto, indicado por la posición dentro

del texto original.

Funciones de fecha

Dentro de esta categoría, Excel incorpora una serie de funciones que permiten

saber, por ejemplo, a qué día de la semana corresponde una fecha, o calcular los

días laborables existentes entre dos fechas, conocer cuál es el último día del mes,

sumar o restar meses a una fecha, etc.

AHORA y HOY proporcionan la fecha del sistema con y sin hora respectivamente.

AÑO, MES, DIA, HORA, MINUTO, SEGUNDO obtienen a partir de una fecha

únicamente el número correspondiente a lo que indica el nombre de la función.

DIASEM, FIN.MES, NUM.DE.SEMANA permiten conocer a qué día de la

semana corresponde una fecha, cuál es el último día del mes, y en qué semana del

año se encuentra una fecha.

DIA.LAB, DIAS.LAB permiten operar considerando únicamente días laborables,

lo que supone no considerar ni sábados ni domingos, y además permite que

añadamos una relación de días festivos o a no tener en cuenta.

FECHA.MES permite operar contando meses enteros, especialmente indicado para

estos sucesos que ocurren siempre el mismo día de todos los meses.

DIAS360 opera considerando un año de 360 días, repartidos en doce meses de

treinta días cada uno.

FRAC.AÑO calcula la fracción de año transcurrida entre dos fechas.

FECHA, NSHORA permiten recomponer un dato que Excel entienda como fecha y

hora, a partir de los datos separados de año, mes, día y horas, minutos y segundos.

FECHANUMERO, HORANUMERO permiten obtener un dato que Excel entiende

como fecha y hora a partir de un texto donde aparezca escrita la fecha o la hora.

Bueno, tampoco hay que esperar que vaya a entender cualquier texto aunque

parezca evidente, debe tener el aspecto similar al de los formatos de fecha

sencillos, por ejemplo, “8 de enero de 2007” no lo entiende, pero “8 enero 2007”

sí.

Page 79: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 79

Estas cuatro últimas funciones son de especial utilidad cuando hemos

importado datos de otras fuentes y Excel no es capaz de interpretar

correctamente por sí mismo lo que nosotros sabemos que son fechas.

Números complejos

No es una de sus facetas más conocidas, pero Excel puede trabajar con números

complejos. Disponemos de las funciones IM, dentro de la categoría de funciones de

ingeniería, que interpretan textos del tipo “1+2i” o “1+2j” como números

complejos, permitiendo realizar operaciones con ellos.

La letra siempre en minúscula para que Excel la interprete como parte

imaginaria. Y para que no haya problemas al operar con ellos, deben estar

escritos todos de forma homogénea, o todos con i o todos con j, pero no

conviene mezclarlos.

IMAGINARIO, IM.REAL proporcionan la parte imaginaria y la parte real del

número.

COMPLEJO genera un número complejo a partir de sus partes real e imaginaria.

IM.SUM, IM.SUSTR para sumar o restar.

IM.PRODUCT, IM.DIV para multiplicar o dividir.

IM.ABS, IM.ANGULO módulo y ángulo en radianes del número.

IM.SENO, IM.COSENO seno y coseno del número.

IM.EXP, IM.LN, IM.LOG10, IM.LOG2 exponencial y logaritmos.

IM.POT, IM.RAIZ2 potencia y raíz cuadrada.

Redondeo

Disponemos de varias opciones a la hora de redondear valores a un número entero

o a un número con los decimales que establezcamos.

REDONDEAR es el redondeo tradicional, con los decimales especificados, al

número más próximo en valor absoluto.

REDONDEAR.MAS y REDONDEAR.MENOS permiten redondear al número

más próximo mayor o menor (en valor absoluto) respectivamente.

Page 80: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 80

REDONDEA.PAR y REDONDEA.IMPAR redondean al número entero par o

impar más próximo (en valor absoluto) respectivamente. No permiten decimales.

REDOND.MULT redondea al múltiplo más próximo de un número especificado.

Ambos números, el que se quiere redondear y del que será múltiplo, deben tener el

mismo signo o de lo contrario la función generará un error #¡NUM!

TRUNCAR elimina la parte decimal, no redondea, simplemente elimina los

decimales.

No sólo se puede redondear a un entero o a un número con ciertas cifras decimales,

si en el número de cifras decimales establecemos un valor negativo estaremos

indicando que redondee a decenas, centenas, etc., por ejemplo para redondear el

número 123456.45 a millares, escribiríamos REDONDEAR(123456.45;-3), lo que

daría como resultado 123000.

Una alternativa más drástica es indicar si queremos que nuestra hoja opere con los

valores que se ven en pantalla. Esta alternativa es de utilidad cuando queremos que

las operaciones con los números que vemos en pantalla o impresos sean correctas,

evitando aparentes errores como 2+2=5, que se producen porque estamos

empleando un formato sin decimales y esos números 2 que vemos pueden ser en

realidad 2.4 y dado que Excel opera, salvo que le digamos lo contrario, con los

valores de las celdas, la suma de esos números (4.8) aparece como 5, si no

mostramos los decimales.

Al activar la opción de calcular con precisión en pantalla, los números de la

hoja serán sustituidos por los valores que aparezcan en pantalla, lo cual

dependerá del formato de las celdas. Este cambio no se puede deshacer.

Herramientas>Opciones>Calcular>Opciones del libro>Precisión en pantalla

Botón Office>Opciones de Excel>Avanzadas>Al calcular este

libro>Establecer precisión en pantalla

Page 81: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 81

Fórmulas matriciales

Excel permite realizar operaciones matemáticas con matrices. Las funciones

MMULT, TRANSPONER, MINVERSA, MDETERM, son típicas de operaciones

matemáticas entre matrices, que multiplican dos matrices, transpone, halla la

inversa o el determinante de una matriz, respectivamente.

A la hora de operar con funciones matriciales únicamente hay que tener dos

precauciones: debemos tener seleccionado todo el rango que va a ocupar la matriz

resultado de la operación; y para introducir la fórmula hay que pulsar la

combinación de teclas [Ctrl][Mays][Intro].

Reconocerás las fórmulas matriciales porque aparecen en la barra de

fórmulas entre llaves { }.

La matriz es considerada como una unidad, por lo que no puede modificarse una

celda de la matriz, se debe modificar la matriz entera seleccionando todo el rango

antes de editar la fórmula, sin olvidar introducirla tras la edición con

[Ctrl][Mays][Intro] (no vale escribir las llaves a mano). Lo mismo ocurre para

eliminarla, no se pueden eliminar solamente una parte de las celdas que componen

la matriz, se debe eliminar entera.

Si queremos, por ejemplo, resolver un sistema lineal de ecuaciones con igual

número de ecuaciones que de incógnitas, expresando dicho sistema en forma

matricial, operaríamos de la siguiente manera:

Page 82: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 82

[A]·[x] = [B]

[x] = [A]-1

·[B]

Que con las funciones de Excel quedaría escrito de una forma así:

{=MMULT(MINVERSA(matrizA);matrizB)}

Si nos enfrentamos a un problema sobredimensionado, con más ecuaciones que

incógnitas, podemos emplear el cálculo matricial para obtener un ajuste por

mínimos cuadrados a la solución.

[A]·[x] = [B]

[A]t·[A]·[x] = [A]

t·[B]

[x] = ([A]t·[A])

-1·[A]

t·[B]

Es decir, empleando la nomenclatura de las funciones de Excel, la matriz [x] de

incógnitas sería:

{=MMULT(MMULT(MINVERSA(MMULT(TRANSPONER(matrizA);matrizA))

;TRANSPONER(matrizA));matrizB)}

Aparte de las operaciones convencionales entre matrices, Excel puede emplear el

concepto de matriz combinado con cualquier función que opere sobre un rango de

celdas.

La combinación de la función condicional SI, con este concepto de operación

matricial nos ofrece un gran potencial a la hora de operar con datos que cumplen

determinadas condiciones, venciendo la limitación de las funciones .SI

tradicionales (SUMAR.SI, CONTAR.SI, PROMEDIO.SI) que operan con las

celdas que cumplen o no una condición, pero no permiten operar cuando existen

varias condiciones. Las funciones .SI están pensadas, por ejemplo, para sumar

todos los valores superiores a 100, pero no sirve para sumar todos los valores de los

importes superiores a 100 y facturados entre dos fechas.

Esta limitación de comparar con varios criterios ha sido parcialmente solucionada

con las funciones .SI.CONJUNTO (SUMAR.SI.CONJUNTO,

CONTAR.SI.CONJUNTO).

También superamos el engorro de las funciones BD de base de datos (BDSUMA,

BDPRODUCTO, …), por lo poco operativo que resulta en muchas ocasiones tener

que escribir los criterios a cumplir en celdas aparte, pues no se pueden incluir en la

Page 83: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 83

propia función BD como argumentos sino mediante una referencia a las celdas

donde se encuentran los criterios.

La función SI, con cualquier función aplicada sobre un rango e introducida como

función matricial, trabaja de la siguiente manera: tanto la condición como los

valores resultado se evalúan elemento a elemento, devolviendo una matriz de la

misma dimensión que el rango utilizado como argumento de la función; este rango

se habrá rellenado con los valores de verdadero o falso según cumpliesen o no la

condición cada uno de los elementos de la matriz (rango) inicial.

Debe tenerse la precaución si se van a emplear varios rangos, de que todos

tengan las mismas dimensiones. El resultado de la función también tendrá la

misma dimensión.

Si no se introduce como función matricial, se evalúa el conjunto como una unidad,

y algunas operaciones no serán posibles.

=SI(A1:A10=B1:B10;Verdadero;Falso) devolverá verdadero si A1:A10 es igual a

B1:B10, los diez valores iguales. Compara el conjunto.

{=SI(A1:A10=B1:B10;Verdadero;Falso)} devolverá como resultado diez valores,

que serán verdadero o falso según cumpla la condición cada valor por separado, es

decir, compara elemento a elemento, A1 con B1, A2 con B2, etc.

El resultado de la función SI también puede tomarse de una matriz, no tiene por

qué ser un valor único:

{=SI(A1:A10=B1:B10;C1:C10;D1:D10)} devuelve según sea verdadero o falso,

un valor tomado de C1:C10 o de D1:D10 respectivamente.

Hasta aquí no parece mucha ventaja; si el resultado ocupa tanto como el rango de

origen puedo poner una fórmula a la derecha de mis datos y ya está. Lo bueno

viene cuando utilizamos el resultado de esta función matricial como argumento

dentro de otra función, con lo que evitamos emplear esas celdas para un resultado

intermedio.

Cualquier función que admita un rango como argumento puede tener como

argumento el resultado de una operación matricial.

Page 84: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 84

En el ejemplo anterior, podemos sumar los valores, que provienen de C1:C10 o de

D1:D10 según se cumpliese o no la condición. El resultado de esta suma aunque

sea una función matricial, es de dimensión 1x1, es una matriz con un solo número,

por lo tanto ocupará una celda

{=SUMA(SI(A1:A10=B1:B10;C1:C10;D1:D10))}

Para el caso de estas sumas condicionales, Excel incluye un complemento

denominado Asistente para suma condicional, que permite generar la fórmula en

pocos pasos de una manera bastante clara. Se puede utilizar este asistente como

ayuda para generar una función de este tipo y posteriormente editar la fórmula

matricial para reemplazar la función suma por la que nos interese (CONTAR,

PROMEDIO, PRODUCTO, etc., etc., etc.)

La parte matricial de la función puede abarcar sólo parte de una fórmula más

complicada, que puede incluir funciones de Excel y operaciones aritméticas.

{=1+5*A3+SUMA(SI(C5:C25=ESPACIOS(D5:D25);(E5:E25);0))}

Al evaluarse la función SI elemento a elemento, celda a celda, podemos aplicar una

función que normalmente sólo admite como argumento una celda, como es el caso

de la función ESPACIOS

Ten cuidado con los ceros y los vacíos. Para según qué funciones no es lo mismo

operar con ceros que no poner nada; por ejemplo, si vamos a sumar da igual tener

un cero, porque no afecta al resultado, pero si lo que vamos a obtener es la media

aritmética con la función PROMEDIO, operar con ceros para los datos que no

queremos tener en consideración generará resultados erróneos. Si no queremos

considerar ciertos registros habrá que ponerlos como vacíos "" (dobles comillas).

Lo repito una vez más: las fórmulas matriciales se introducen con la

combinación de teclas [Ctrl][Mays][Intro].

Page 85: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 85

Formato

Formato de número personalizado

Menú contextual celda>Formato de celda>Número

En la pestaña dedicada al formato del número, dentro del formato de celdas, se

muestran diferentes opciones, agrupadas por categorías para dar formato al valor

que contiene la celda, es decir, definimos aquí cómo queremos que se muestre ese

valor.

Para cada categoría (número, moneda, fecha, …) se muestran en esta pestaña

diferentes modalidades para elegir la que más se adapte a nuestras necesidades.

Page 86: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 86

Pero tal vez lo más interesante es conocer cómo se pueden generar formatos

personalizados, para poder tener un control más preciso sobre el modo de ver

nuestros datos, porque aunque disponemos de muchas posibilidades predefinidas

para los casos habituales, antes o después necesitaremos un formato que se salga de

lo normal.

Debe tenerse claro que una cosa es el formato del número y otra el valor de la

celda, que es con el que Excel opera (salvo que tengamos activada la opción de

calcular con precisión en pantalla).

Pese a lo que aparezca en pantalla, el valor de la celda no se altera al aplicar

un formato u otro.

Si por ejemplo, tras aplicar el formato a una fecha, vemos “Lunes, 1 de enero de

2007”, la celda sigue teniendo el mismo valor numérico que antes y podemos

operar con ella.

Para números con decimales, el formato hace que se muestra el valor de la celda

redondeado a tantas cifras decimales como le indiquemos, si bien el valor de la

celda no cambia.

Un formato numérico personalizado definirá cómo representar valores positivos,

valores negativos, valores cero y textos, por este orden, y separando cada una de

estas cuatro definiciones mediante el separador de listas del sistema (suele ser

punto y coma):

formato positivos; formato negativos; formato cero; formato textos

Si sólo indicamos un criterio se aplicará a todos los números, ya sean positivos o

negativos, mientras que el texto tendrá formato general de texto.

Si escribimos dos criterios, para positivos y negativos, los ceros adoptarán el

formato definido para los positivos, mientras que el texto tendrá el formato general

de texto.

Para definir el formato de un número emplearemos una serie de caracteres comodín

que representarán a los números, separadores, colores, etc.:

Page 87: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 87

Carácter

0 Siempre muestra un número

# Muestra un número, excepto cuando se trata de ceros a la

izquierda de la parte entera o a la derecha de la parte decimal.

E exponencial en base diez, diez elevado a…

/ fracción

@ el valor de la celda cuando es un texto

_- Separación

* Repite el carácter siguiente hasta llenar la celda.

\ muestra el carácter siguiente, por ejemplo cuando es una E, no

lo confunde con un exponencial, o cuando aparece el mismo

símbolo que el empleado para separar decimales.

? Un dígito cualquiera, pero cuando se trata de ceros a la

izquierda de la parte entera, o a la derecha de la parte decimal,

no muestra nada y deja el hueco.

[color] color de la fuente a aplicar; puede ser blanco, negro, rojo,

azul, verde, amarillo y en algunas versiones también fucsia y

aguamarina.

" delimitador de texto, para incluir cadenas de texto en el

formato.

Para el separador decimal y separador de miles, así como para el separador

de hora y los símbolos AM y PM, debes emplear los caracteres que hayas

definido en tu ordenador.

En los ejemplos que incluyo a continuación, el separador decimal es el punto y

como separador de miles se emplea un espacio (1 001.1). Para las horas empleo

como separador dos puntos y los caracteres AM y PM para indicar antes o después

de mediodía (11:53:15 AM).

Page 88: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 88

Números

A continuación se muestran unos ejemplos de formatos numéricos, para ilustrar el

funcionamiento de los caracteres comodín:

Podemos agregar textos al formato numérico

De hecho, podemos tener unos formatos que muestren solamente un texto

alternativo en vez del valor de la celda.

Como parte de un formato personalizado podemos emplear el formato predefinido

“General”, escribiendo en nuestro formato personalizado la palabra “Estándar” (lo

debieron traducir dos personas diferentes que no se conocían). Por ejemplo para

aplicar un formato distinto a los números negativos, pero a los positivos, ceros y

texto el formato estándar/general, se haría de la siguiente manera:

Page 89: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 89

Añadiendo colores y un formato para el texto

Con la almohadilla #, sólo aparecen las cifras cuando aportan información. La

utilización del carácter de separación de miles (en mi caso un espacio), indica a

Excel que debe mostrar dicho separador.

Mediante el empleo del símbolo ? podemos conseguir alinear los números al punto

decimal sin necesidad de mostrar ceros a la derecha (te recuerdo que deberás

sustituir el punto por tu carácter separador decimal). También podemos alinear un

prefijo que queremos que se muestre junto con el valor.

Page 90: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 90

Mediante el empleo del asterisco podemos rellenar la celda repitiendo el siguiente

carácter que aparezca a continuación del *. Esto puede ser de utilidad para mostrar

un texto a la izquierda de la celda y el número a la derecha, rellenando con

espacios entre medias. Así es cómo los formatos predefinidos de contabilidad

sitúan el signo menos a la izquierda de la celda. En este ejemplo repito el carácter

+.

Para mostrar los valores con un número fijo de decimales, multiplicados por una

potencia de 10, emplearemos la letra E, seguida del signo + o – y a continuación el

formato del exponente. Empleando el signo más, aparecerá el signo

correspondiente al exponente, tanto si es negativo como si es positivo. Si

empleamos el signo menos, sólo se mostrará el signo en el exponente cuando éste

sea negativo.

Si nos interesa mostrar nuestros números con una potencia múltiplo de tres,

emplearemos un formato que incluya tres caracteres en la parte entera.

Page 91: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 91

Tenemos la posibilidad de mostrar los números como fracciones mediante el

empleo en el formato de la barra inclinada /. Tendremos que definir formatos para

la parte entera, para el numerador y para el denominador de la fracción. Si

definimos un formato para la parte entera, se mostrará como fracción únicamente la

parte decimal del número. Si no definimos formato para la parte entera, todo el

número se mostrará como una fracción. Para separar la parte entera de la decimal

podemos emplear un separador como _- o una cadena de texto.

Si en el denominador empleamos un número en vez de un comodín, se mostrarán

las fracciones con el denominador especificado. Si empleamos almohadillas o

interrogaciones en el numerador, cuando no haya parte fraccionaria no se mostrará

la fracción, pero en el caso de las interrogaciones se mantendrá el hueco. Como en

todos los formatos, el valor mostrado procede de redondear el valor de la celda de

acuerdo a la definición del formato.

Page 92: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 92

Para facilitarte el trabajo, comienza por el formato predefinido más parecido

a lo que necesitas, luego, al seleccionar la opción de formato personalizado,

aparecerá el código correspondiente a ese formato predefinido, que podrás

retocar.

Fechas

Excel almacena las fechas como un número, en el que la parte entera representa el

día (considerando como instante 1 las 0 horas del día 1 de enero de 1900) y la parte

decimal representa la hora, como la parte del día transcurrido hasta esa hora. Por

ejemplo, las 12 de la mañana del 1 de enero de 2007 es almacenado por Excel

como 39083.5, el uno de enero de 2007 es el 39083, mientras que las 12 de la

mañana es el 0.5.

El origen de fechas, el instante 0, se sitúa a las 0 horas del 31 de diciembre de

1899, aunque Excel lo muestre como 0 de enero de 1900.

Si compartes archivos con usuarios de Mac, puedes indicar a Excel que trabaje con

el sistema de fechas 1904, que es el empleado por Macintosh, en el que el origen se

sitúa a las 0 horas del 1 de enero de 1904 (entiendo lo de las 0 horas del uno de

enero, lo que no entiendo es lo de 1904). Cambiar esta opción no cambia el valor

de la celda, pero al mostrarlo como fecha se verían diferentes.

Herramientas>Opciones>Calcular>Opciones del libro>Sistema de fechas 1904

Botón Office>Opciones de Excel>Avanzadas>Al calcular este libro>Usar

sistema de fechas 1904

Para definir formatos para las fechas se emplean las letras d, m, a, para representar

las cifras de día, mes y año respectivamente. Según repitamos estas letras, el modo

en que se representa cada uno de estos valores de la fecha es el mostrado a

continuación:

d 1 m 1 a 7

dd 01 mm 01 aa 07

Page 93: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 93

ddd lun mmm ene aaaa 2007

dddd lunes mmmm enero

Así, para mostrar una fecha como “Lun, 1 de enero de 2007”, deberíamos aplicar el

siguiente formato: ddd", "d" de "mmmm " de "aaaa

Para las representación de horas se emplean las letras H, M, S para horas minutos y

segundos respectivamente. En mayúsculas se interpreta como notación de 24 horas,

mientras que en minúsculas h, m, s, se interpreta como notación 12 horas, que

completaremos con AM/PM para que se inserte el símbolo AM o PM según

corresponda.

Para mostrar una hora como “son las 7 y 16 AM” deberíamos aplicar el formato:

"son las "h" y "mm AM/PM

Para un número que represente un punto en el tiempo, con fecha y hora, es decir

con parte entera y parte decimal, podemos aplicar un formato para verlo con el

siguiente aspecto “son las 7 y 16 AM del lunes 1 de enero de 2007”, de la siguiente

manera:

"son las "h" y "mm AM/PM " del " dddd d" de "mmmm" de "aaaa

Si queremos mostrar también como horas la parte entera de un número, sin volver a

empezar con cero horas al cambiar el día, debe ponerse en el formato el símbolo h

dentro de corchetes, de esta manera todo el número se convertirá a horas.

Análogamente, si ponemos entre corchetes la m de los minutos, todo el número se

mostrará convertido a minutos. Si empleamos la s de segundos, los números se

convertirán a segundos.

Page 94: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 94

Si queremos mostrar nuestro valor de tiempo como horas y minutos con decimales,

añadiremos al comodín m de minutos el separador decimal y el formato a aplicar a

estos decimales.

Condicionales

Por defecto, los formatos permiten establecer una diferencia entre los valores

positivos y negativos, pero puede que en alguna ocasión nos interese que esta

distinción no se produzca en el valor cero, sino en otro valor.

Esto se consigue estableciendo los intervalos para los que debe aplicarse el formato

entre corchetes [ ]

Se pueden establecer hasta dos condiciones. Se puede añadir un formato para el

caso en que no cumpla ninguna de las condiciones y un último formato más para el

caso en que la celda contenga un texto.

Por ejemplo vamos a mostrar el texto “Suspenso” en color rojo para los valores

inferiores a cinco, mientras que para los valores superiores mostraremos el valor

redondeado sin decimales.

Las condiciones se evalúan en el orden en que están escritas, cuando se cumple una

de ellas se aplica el formato y no se continúa.

Page 95: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 95

Si realmente tienes que diferenciar las celdas en función de sus valores, lo

mejor es que apliques formatos condicionales (ver página 98).

Alineación de celda

Menú contextual celda>Formato de celda>Alineación

Dentro de esta pestaña para la configuración del formato de la celda tenemos las

opciones para alinear el contenido de la misma horizontal y verticalmente.

Horizontalmente podemos alinear el texto a la izquierda o a la derecha, centrarlo o

justificarlo. Podemos centrar en contenido de una celda en el área definida por las

celdas seleccionadas. También podemos aplicar una sangría a todas las líneas que

aparezcan en la celda, para separar el texto de los bordes izquierdo y/o derecho de

la celda.

En vertical podemos alinear el texto a la parte superior de la celda, a la parte

inferior, centrarlo o distribuir el texto y justificarlo para rellenar toda la altura de la

celda.

Si activamos la opción de Ajustar texto, aquellas celdas cuyo contenido no quepa

en una línea, modificarán el alto de la fila para que todo el texto aparezca en varias

líneas dentro de la celda.

La opción reducir hasta ajustar disminuye el tamaño del texto para que todo el

contenido de la celda pueda mostrarse en una sola fila. Si cambiamos el tamaño de

la celda posteriormente también se modificará el tamaño del texto para adaptarse a

la nueva situación.

Page 96: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 96

La opción combinar celdas permite que una celda ocupe el espacio de varias celdas

y, aparte de su función estética, sirve básicamente para generarte problemas en el

futuro.

Evita combinar celdas siempre que puedas, evitarás con ello pérdidas de

tiempo y molestias posteriores. La mayoría de las veces puedes conseguir el

mismo aspecto jugando con los bordes y la alineación del texto.

Page 97: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 97

Estos ejemplos se han realizado empleando bordes de celda claros y oscuros para

conseguir el efecto de relieve, quitando los bordes interiores de las celdas sobre las

que aparece el texto que ocupa varias de ellas y alineando horizontalmente en la

selección ese texto que ocupa varias celdas, con lo que aparece visualmente como

si estuviese combinada, aunque no lo esté realmente. Con esto evitamos problemas

a la hora de copiar y pegar, porque los rangos de origen y destino no sean de la

misma dimensión y también, por ejemplo, a la hora de aplicar filtros, donde no

podemos trabajar bien si en nuestra fila de encabezado tenemos celdas combinadas.

Page 98: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 98

Formato condicional

Formato>Formato condicional

Inicio>Estilo>Formato condicional

Cuando tenemos una lista de datos considerable es difícil evaluar de una manera

rápida los valores para centrarnos únicamente en aquellos que nos interesan, bien

porque son los mayores, bien porque sobrepasan un cierto umbral, bien porque

incumplen cierto criterio, etc.

Mediante el formato condicional, Excel nos permite aplicar diferentes formatos a

las celdas según cumplan una serie de criterios que especifiquemos, de tal manera

que podemos resaltar la información que nos interese, pudiendo localizarla de un

vistazo.

Hasta la versión 2003 incluida, el formato condicional permitía aplicar diferentes

formatos solamente en fuente, bordes y tramas, pero con la versión 2007 llegó la

revolución a los formatos condicionales. Ahora, además de las opciones anteriores,

podemos poner una gradación de colores, unas barras de longitud proporcional al

valor, marcar con iconos de tipo flechas, semáforos…, destacar los n mayores

valores, o los que sobrepasen la media, un sinfín de posibilidades.

Page 99: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 99

Desde el Administrador de reglas de formato condicional podemos ver todas las

reglas definidas en la hoja activa, modificar el orden en que son evaluadas, crear

nuevas reglas, modificar las existentes y eliminar las que ya no nos sean de

utilidad.

Page 100: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 100

Por supuesto, se supera también la limitación de versiones anteriores en que sólo se

podían establecer tres condiciones para establecer los diferentes formatos, lo que en

muchas ocasiones resultaba escaso.

Ahora los formatos condicionales pueden superponerse: podemos mostrar un icono

a la vez que se aplica un color a la celda. En caso de conflicto entre dos criterios se

aplicará el que aparezca primero en la lista de reglas definidas.

En el formulario para editar o crear las reglas podemos configurar los intervalos de

valores o las condiciones que deben cumplir las celdas para aplicar un formato u

otro.

Si vas a definir las celdas a las que aplicar el formato condicional mediante

una fórmula, no olvides aplicar adecuadamente las referencias absolutas o

relativas según lo necesites.

Page 101: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 101

Gráficos

Eje de abscisas proporcional a los valores

Opciones de gráfico>Eje>Eje de categorías (X)>Escala de tiempo

Formato de Eje>Opciones del eje>Tipo de Eje>Eje de fecha

Únicamente disponemos de un tipo de gráfico en el que se representen los puntos

en dos dimensiones, es decir, con unos ejes cartesianos, estos gráficos son los

denominados por Excel de dispersión, que tan solo pueden ser de tipo puntos o

líneas.

En todos los demás gráficos con ejes, el eje horizontal o de abscisas no es

proporcional a los valores, puesto que está pensado para representar las series de

datos interpretando la x como el nombre de cada punto, por tanto representa uno a

continuación de otro como punto número uno, punto número dos, punto número

tres, etc., independientemente de que ese “nombre” del punto sea un valor distinto

del número de orden.

Sin embargo existe una opción, con limitaciones, para que el eje de abscisas sea

proporcional a los valores y poder generar, por ejemplo, un gráfico de columnas

donde cada columna se encuentre sobre el valor de x correspondiente a su dato.

No hay más que indicar a Excel (en las opciones para el eje, dentro de las opciones

del gráfico) que se trata de un eje de fecha. Esto está pensado para fechas, como su

nombre indica, aunque también se puede emplear con otros valores, si bien sólo

representa correctamente la x de números enteros positivos (que es como Excel

almacena las fechas), truncando el número a la parte entera del mismo en caso de

tener decimales.

Esto nos amplía las posibilidades de los gráficos de dispersión, pues de este modo,

aunque sea sólo para valores enteros, podemos realizar gráficos de columnas a la

vez que otra serie se representa con líneas, sin tener que recurrir a trucos como

añadir datos nulos intermedios para separar los datos auténticos.

Con fechas en el eje funciona a la perfección. Con números naturales, tal vez tardes

un rato en configurar la apariencia del eje como realmente quieres, mostrando los

valores adecuados y no múltiplos extraños procedentes de tener la unidad principal

en meses o en semanas.

Page 102: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 102

Page 103: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 103

Eje secundario

Formato de Serie de datos>Eje>Trazar serie en>Eje secundario

Opciones de serie>Trazar Eje en>Eje secundario

Cuando estamos representando dos series de valores con órdenes de magnitud

diferentes, resulta interesante poder utilizar escalas diferentes para cada una de las

series representadas, para evitar que los valores grandes hagan imperceptibles a los

valores pequeños.

Para conseguirlo, en las propiedades de la serie que deseemos, activaremos la

opción para que se dibuje en el eje secundario

Page 104: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 104

Representación de valores nulos

Herramientas>Opciones>Gráfico

Herramientas de gráfico>diseño>Selecciónar datos>Celdas ocultas y vacías

Cuando en medio de nuestros datos tenemos registros con algún valor vacío,

podemos pedir a Excel que no represente ese dato, en gráficos tipo línea esto

supone que se interrumpa el dibujo de la línea en ese dato que falta. Podemos

indicar a Excel que lo represente como un cero, en el caso anterior del gráfico de

línea se dibuja la línea en el punto sin dato pasando por el valor cero. Pero puede

interesarnos no dibujar el dato que falta, pero no interrumpir el dibujo de la línea,

es este caso, elegiríamos la opción de conectar puntos de datos con línea.

Page 105: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 105

En este mismo cuadro de configuración de celdas ocultas y vacías, podemos

también indicar a Excel si queremos que se representen en el gráfico los datos de

las celdas ocultas de la hoja, ya sea manualmente o mediante filtros o esquemas.

Para conseguir este efecto de dibujar una línea y que el gráfico no se interrumpa en

un dato que falta, también podemos llenar las celdas vacías con #N/A (sí,

escribiéndolo en la celda) para que, al no estar disponible el dato lo pase por alto

pero manteniendo la continuidad de la serie en el gráfico. En este caso, al no estar

la celda vacía, no se aplicará la configuración general del gráfico para celdas

ocultas y vacías.

Page 106: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 106

Page 107: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 107

Línea de tendencia

Excel permite ajustar diferentes tipos de curvas a los puntos que representamos en

un gráfico de dispersión. Podemos emplear para ello una línea, una función

exponencial o logarítmica, un polinomio del grado que queramos, una potencia, e

incluso una media móvil.

Podemos extrapolar nuestra curva de tendencia más adelante y más atrás de donde

tenemos datos. Es posible hacer que la curva intersecte con el eje “y” donde

queramos, mediante la opción de extraño nombre “Señalar intersección =”.

Podemos incluso mostrar sobre el gráfico la ecuación de esa curva (salvo en el caso

de la media móvil, claro).

Lo que no podemos hacer es utilizar la ecuación de esta línea de tendencia en la

hoja. Para calcular valores, tendríamos que teclearla a mano y se perderá el vínculo

con los datos originales, con lo que si añadimos nuevos datos, la ecuación que

aparece en el gráfico se actualizará, pero la ecuación que copiamos a mano seguirá

igual y seguro que se nos pasa por alto corregirla.

Page 108: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 108

Si necesitamos ajustar una curva a unos datos, pero no gráficamente, sino mediante

fórmulas, tendremos que emplear las funciones que se encuentran dentro del grupo

de funciones estadísticas de Excel: ESTIMACION.LINEAL,

ESTIMACION.LOGARITMICA, que calculan los valores que describen la recta o

la función logarítmica que se ajusta a los datos. Sólo tenemos estos dos tipos de

ajustes con funciones.

Se trata de funciones matriciales que devuelven varios valores en una matriz de una

fila por dos columnas si únicamente queremos definir la curva, o en una matriz de

cinco filas por dos columnas si queremos además una descripción estadística del

Page 109: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 109

ajuste. Como todas las funciones matriciales, hay que seleccionar primero el rango

que ocupará el resultado, e introducirlas mediante [Ctrl][Mays][Intro].

Para calcular valores con un ajuste lineal o exponencial, tenemos las funciones

TENDENCIA y CRECIMIENTO, que a partir de unos valores conocidos de x e y,

pueden calcular los valores correspondientes a la curva ajustada por mínimos

cuadrados, lineal o exponencial respectivamente.

INTERSECION.EJE calcula el valor de la ordenada en la abscisa cero, es decir la

ordenada al cortar el eje Y, para un ajuste lineal. PRONOSTICO permite calcular

el valor de la recta ajustada para cualquier valor de la abscisa.

Page 110: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 110

Detectar y Corregir errores

Auditoría de fórmulas

Herramientas>Auditoría>Mostrar barra de auditoría

Fórmulas>Auditoría de fórmulas

Es difícil acertar siempre a la primera, por lo que no vienen mal las herramientas

para investigar en las fórmulas que hemos introducido, no sólo porque generen

errores en el cálculo, sino porque no estén dando como resultado los valores

esperados. También van a ser de gran ayuda estas herramientas a la hora de

investigar el comportamiento de la hoja, si lo que queremos es modificar una hoja

existente, para comprender cómo funciona. Es lo que se denomina Auditoría de

Fórmulas.

Entre otras, tenemos posibilidad de ver las celdas de las que depende la fórmula

que nos interesa, y qué otras dependen a su vez de ella. Para ello Excel puede

dibujar unas flechas que muestran las relaciones de precedencia o dependencia con

la celda activa.

Desde la versión 2002, tenemos la posibilidad de evaluar la fórmula paso a paso

para comprobar cómo Excel calcula la fórmula que se ha introducido, y poder así

detectar más fácilmente y corregir donde hayamos cometido un error que hace que

la fórmula no proporcione el resultado que esperábamos.

Page 111: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 111

Tenemos la opción de rastrear los errores que existen en la hoja, para recorrerlos

uno a uno y poder analizar qué sucede.

Desde la versión 2003 se ha añadido una ventana de inspección, similar a la ya

existente en el editor de Visual Basic para depuración del código programado, que

permite centrarnos en el análisis de diferentes celdas, sin despistarnos por tener que

ir de un lado a otro del libro, aquí podemos tener a la vista únicamente las celdas

que nos interesen para investigar el comportamiento de la hoja.

Page 112: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 112

Prevención de errores

Una de las imágenes que peor impresión me causan es encontrar una hoja que,

cuando aún no tiene datos, está llena de errores por todas partes: #¡DIV/0!,

#¡NUM!, #N/A. Transmite un aspecto poco cuidado de la aplicación, o peor aún,

puede hacer pensar que la hoja contiene errores y desanime a un futuro usuario a

utilizarla. Si es para algo rápido que sólo vas a utilizar tú, puede valer, pero si

nuestra hoja va a tener algo más de trascendencia, va a ser utilizada por más

personas, se va a entregar impresa a otras personas, debería cuidarse un poco más

este asunto.

Disponemos de funciones para detectar el tipo de error y así ofrecer mensajes que

ayuden a solventarlos, que se muestren en lugar del error de Excel. Se pueden

incluir las funciones ESERROR, ESERR o TIPO.DE.ERROR dentro de

condicionales SI, para mostrar mensajes alternativos, mostrar celdas en blanco o

realizar operaciones alternativas ante errores previsibles (ver página 76).

Podemos comprobar si realmente hay datos antes de operar, con funciones de tipo

ESBLANCO o ESNUMERO, o podemos asegurarnos de que esos datos son

correctos, por ejemplo para no dividir por cero, incluyendo nuestras fórmulas

dentro de una función condicional SI.

Page 113: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 113

Tenemos la posibilidad de emplear los formatos condicionales para ocultar a la

vista los errores, por ejemplo dando al texto el mismo color del fondo; no resuelve

el problema, pero sí ante los ojos. En la versión 2007 viene incorporada

directamente la opción de dar formato condicional a las celdas con errores; en las

versiones anteriores se podía definir este formato condicional empleando una

fórmula con la función ESERROR, por ejemplo.

Page 114: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 114

Acerca de los datos

No hay que confundir los datos, con la presentación de los datos.

Es muy fácil para un usuario ocasional de la informática equivocar los datos con la

presentación que se le da a esos datos, ya sea en pantalla o impreso en papel. No es

preocupante si el número de datos que se manejan es muy reducido, pero deja de

ser operativo en cuanto empezamos a tener un número considerable de datos

(tampoco hacen falta demasiados).

No es raro encontrarse con hojas Excel que tienen el aspecto de un formulario para

rellenar uno o dos datos y que luego quede impreso en papel para archivarlo, sin

ningún tratamiento informático posterior. Supongo que el hecho de que Excel

presente una cuadrícula con celdas facilita el diseño de este tipo de formularios y

permite su realización en poco tiempo. ¿Pero por qué pararse ahí? Excel puede

ayudarte bastante más que eso.

Con suerte se habrá guardado un archivo diferente para cada uno de estos

“formularios impresos” y todavía se podrán aprovechar los datos cuando a alguien

se le ocurra que pueden tener alguna utilidad. En otras ocasiones el formulario se

sobrescribe una y otra vez, borrando los datos anteriores y poniendo los nuevos en

su lugar; tal vez aún se conserve una copia impresa de las hojas que se han ido

generando a lo largo de la vida del archivo, o tal vez no. Esto tampoco tendría

demasiada importancia si las personas no tuviesen curiosidad y no realizasen

preguntas del tipo “¿cuántas facturas hemos emitido a nuestro principal cliente?” o

“¿quién es nuestro principal cliente?” o “¿cuánto nos hemos gastado este año en

pitos y cuánto en flautas?”. Tampoco sería un problema si las situaciones no se

repitiesen nunca pero, a quién no se le ha presentado un caso que se resuelve igual

que aquello que ya se hizo hace unos meses (o unos años).

Si la información no tuviese esa tendencia a desaparecer del sitio donde estamos

seguros de haberla guardado para que no se perdiese jamás…

En el peor de los casos no serás capaz de responder a estas preguntas acerca de los

datos del pasado, pero lo dejarás todo preparado para poderlas responder a partir de

ahora ¿no?

Page 115: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 115

Una cosa son los datos de una factura (Fulano de Tal 15/08/07 20.15€) y otra cosa

es la presentación de esos datos con aspecto de factura, con sus logos, membretes,

encabezados, bordes y sombreados.

Tener clara la diferencia entre una cosa y otra nos evitará problemas, y por

supuesto nos evitará tener que repetir el trabajo en el futuro.

Si algo está ya introducido en el ordenador, haz lo que sea antes que imprimir para

volver a teclear. Esto no es sólo por no trabajar en balde, sino por evitar errores en

la transcripción, que luego son casi imposibles de detectar.

Mejor tener todos los datos juntos, o al menos lo más juntos posible.

Si todos nuestros datos están juntos, Excel o cualquier programa para el

tratamiento de los datos, podrá ser capaz de interpretarlos y operar con ellos para

ofrecernos información útil. Si por el contrario tenemos nuestros datos dispersos en

diferentes hojas, o incluso en distintos archivos, va a ser muy difícil que un

programa (o una persona) sea capaz de hacer nada de provecho con ellos. Tener los

datos dispersos favorece además la falta de homogeneidad de los mismos, lo que

complica aún más el proceso a la hora de agrupar los datos.

Al principio del trabajo no debes plantearte nunca la duda de si pones todos los

datos en un mismo sitio o en sitios diferentes: opta decididamente por un almacén

único para tus datos. Después podrás extraer de allí únicamente el subconjunto de

datos que te interesen, con la ventaja que si más tarde te interesa otra información

también podrás obtenerla, cosa que no resultará inmediata si tus datos están

repartidos de cualquier forma.

Es más fácil separar que unir.

Es más sencillo obtener diferentes vistas parciales, presentaciones o resúmenes a

partir de un origen único de datos, que tratar de reconstruir un conjunto único de

datos a partir de imágenes parciales de los mismos.

Hay que pensar un poco, muy poco, qué voy a necesitar para definir qué campos de

información tengo que rellenar. Si preveo que necesitaré conocer mis datos

agrupados por categorías, el ordenador será incapaz de hacerlo si yo no digo a qué

categoría pertenece cada dato, es decir, un campo de mis datos tendrá que ser la

categoría.

Page 116: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 116

También debe preverse en qué sentido va a crecer la hoja con la adición de nuevos

datos. La mayoría de los programas de ordenador, por no decir todos, trabajan con

los datos en filas: en cada fila se anota un registro, esto es, un dato, mientras que

cada columna es un campo de información. Excel no es la excepción y sus hojas

tienen muchas más filas que columnas: hasta la versión 2003 había 256 columnas y

65536 filas (relación de 1/256); en la versión 2007 estas cantidades se han

aumentado hasta 1048756 filas y 16384 columnas (relación de 1/64).

No es extraño, sin embargo, encontrarse con hojas en la que los datos se han

organizado por columnas. Suelen ser hojas que se concibieron así para facilitar la

lectura de determinada información o que se pensaron como presentación de los

datos impresos y no como almacén de los mismos (claro, en la cultura occidental

leemos primero de izquierda a derecha y luego de arriba a bajo y con pocos datos

es fácil confundir si lo que primero se lee es un registro o los campos de cada

registro). Concebidas cuando había muy pocos datos, tras un tiempo de utilización

se colapsan alcanzando la capacidad de la hoja, o bien ya no se leen tan

cómodamente como al principio, teniendo que desplazarse horizontalmente, lo que

lleva a soluciones poco prácticas como seguir anotando los nuevos datos unas filas

más abajo, o continuar en una nueva hoja, cayendo en ambos casos nuevamente en

lo que considero un error serio, que es separar los datos, romper la unidad de los

mismos.

Si aún tienes dudas, ten en cuenta que, por ejemplo, Excel sólo permite aplicar

filtros, obtener datos externos para una tabla dinámica, etc., etc., etc., si los datos

están dispuestos con los registros en filas y los campos en columnas.

No digas que no te lo advertí.

Page 117: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 117

Filtrado

Datos>Filtro>Autofiltro

Datos>Ordenar y filtrar>Filtro

Cuando tenemos una lista de datos, el filtrado de los mismos nos facilitará

centrarnos únicamente en aquellos datos que nos interesen. Pueden establecerse

criterios para cada uno de los campos, mostrándose únicamente de entre todos los

datos aquellos que cumplen todos los criterios de filtrado.

Para activar el filtrado de los datos, debemos situarnos sobre una celda del rango de

datos, Excel supondrá que la primera fila es la de los encabezados, la que contiene

los nombres de los campos. Otra opción es que seleccionemos manualmente el

rango que contiene los datos, incluida la fila de encabezados y después activemos

el filtro; en este caso Excel utiliza como encabezados la primera fila de las

seleccionadas. En cada celda de encabezado aparece un botón con una flecha hacia

abajo, del que se despliega una lista con las opciones de filtrado.

Desde la versión 2007, las opciones de la lista desplegable para el filtrado se han

completado añadiendo opciones para ordenar los datos por el campo seleccionado,

así como un cuadro donde seleccionar manualmente los datos a mostrar. También

se ofrecen, dentro de un segundo desplegable diferentes filtros de fecha, de

número, de texto, según el tipo de datos contenidos en ese campo.

Page 118: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 118

Para establecer el filtro de un campo desplegamos las opciones disponibles y

seleccionaremos uno de los filtros predefinidos, o bien personalizaremos los

criterios según nuestras necesidades, mediante un filtro personalizado.

En el filtro personalizado podemos establecer exactamente el criterio que

queremos que cumplan los datos a mostrar.

Page 119: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 119

Si tenemos aplicados formatos condicionales, ahora podemos también filtrar por el

formato, lo que permite localizar rápidamente aquellas celdas que se han resaltado

mediante el formato condicional.

Page 120: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 120

Una posibilidad adicional de realizar un filtrado de nuestros datos consiste en la

utilización de filtros avanzados

Datos>Filtro>Filtro avanzado

Datos>Ordenar y filtrar>Avanzadas

Los criterios para los filtros avanzados se definen con un rango en que se indica el

nombre de los campos a filtrar en la primera fila y debajo de esta, los criterios que

debe cumplir cada campo. Es el mismo sistema que el empleado por las funciones

de base de datos (ver página 72).

Podemos aplicar el filtro sobre la propia lista, pero también podemos hacer una

copia de los datos filtrados a otro lugar de la misma hoja.

En la definición del filtro avanzado podemos activar la opción para filtrar

únicamente registros únicos, con lo que si hay datos repetidos sólo aparecerán una

vez tras aplicar el filtro.

Debe tenerse en cuenta que si seleccionamos unas celdas de un conjunto de datos

filtrado y las copiamos, únicamente estamos copiando las celdas visibles.

Page 121: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 121

De igual modo, si escribimos una fórmula y la extendemos mientras tenemos

activo un filtro, tan sólo estamos introduciendo la fórmula en las celdas visibles y

no en las que están ocultas por el filtro. Cuando modifiquemos o quitemos el filtro

actual, las fórmulas aparecerán en unas filas sí y en otras no.

También debe tenerse la precaución de comprobar el estado de los filtros aplicados

si vamos a ejecutar una macro que se basa en los datos de la lista, para asegurarnos

de que va a funcionar correctamente en las celdas que verdaderamente queremos y

no sólo en las visibles.

Page 122: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 122

El comportamiento es diferente del caso en que tenemos filas o columnas que se

han ocultado manualmente o bien mediante las opciones de agrupar y esquema. En

estos casos al copiar, también se copian las celdas ocultas y al extender la fórmulas,

también se rellenan las celdas ocultas.

Ordenar

Datos>Ordenar

Datos>Ordenar y Filtrar>Ordenar

En las versiones anteriores a la 2007, únicamente se podía ordenar una lista de

datos por tres criterios simultáneamente. Si se quería ordenar por más de tres

criterios debía hacerse en varios pasos. Así, para ordenar por 6 criterios, primero se

ordenaba por los criterios 4, 5 y 6, y a continuación se ordenaba por los criterios 1,

2 y 3. Para los datos que tenían iguales los valores de los criterios 1, 2 y 3, Excel

mantenía el orden existente, el de la ordenación realizada antes, con lo cual el

resultado era el deseado.

En la versión 2007, se ha eliminado esta limitación y podemos añadir todos los

criterios de ordenación que queramos, mediante la opción “agregar nivel”

disponible en el cuadro de diálogo ordenar.

Page 123: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 123

También se han añadido nuevas opciones para comparar las celdas, como por

ejemplo el color de las mismas o el icono de la celda, que combinado con las

opciones de formato condicional puede ser de gran utilidad pues se podrán agrupar

los datos que cumplan una misma condición.

Validación

Datos>Validación

Datos>Herramientas de datos>Validación de datos

La mayor parte de las veces, un conjunto de datos sigue ciertos patrones comunes,

por ejemplo, los tiempos empleados por los corredores en una prueba de cien

metros lisos son del orden de 10 segundos, pueden ser 9 o pueden ser 30 segundos,

pero nunca van a ser dos horas; podemos utilizar las opciones de validación de

datos de Excel para evitar errores absurdos o de bulto en la introducción de datos.

También puede utilizarse la validación para evitar la introducción de valores

incorrectos, ofreciendo una lista con las opciones disponibles. Esta lista puede

introducirse con una referencia a las celdas que contienen los valores, o bien puede

introducirse manualmente separando los valores entre sí con punto y coma (o con

el separador de listas que emplees en tu equipo).

Page 124: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 124

El cuadro de diálogo para los criterios de validación presenta tres pestañas:

configuración, mensaje de entrada y mensaje de error.

Las opciones de Configuración establecen los criterios que han de cumplir los

datos: tipo de datos y criterios a cumplir para ser considerados válidos. Cuando se

está modificando una regla existente, podemos indicar si queremos que se

modifique en todas las celdas que tienen esa misma regla de validación, lo que

resulta útil para no tener que seleccionar previamente a la modificación todas las

celdas afectadas, evitando que olvidemos alguna celda por el camino.

Tenemos la posibilidad de mostrar a quien vaya a introducir los datos un texto

descriptivo que facilite información acerca de las condiciones que deben cumplir

los mismos. En las opciones de Mensaje de entrada definiremos en primer lugar si

queremos que se muestre o no el mensaje al seleccionar la celda; a continuación

Page 125: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 125

tenemos dos cuadros de texto para escribir el título del mensaje y el texto

explicativo.

En las opciones de Mensaje de error podemos indicar si queremos que se muestre

un mensaje cuando los datos no cumplan las condiciones establecidas. Este

mensaje puede ser de tres tipos: Grave, advertencia e información.

Page 126: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 126

Eligiendo el tipo de mensaje grave, no se permite la introducción de datos

erróneos. Con el mensaje de advertencia y con el mensaje informativo recibimos el

aviso del error, pero podemos continuar con los datos incorrectos. Deberás evaluar

en cada caso qué se adapta mejor a lo que necesitas.

Page 127: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 127

Los mensajes de validación de datos sólo se muestran al introducir datos

nuevos de uno en uno.

Si definimos las reglas de validación cuando ya existen en las celdas valores, o

introducimos varios valores a la vez, por ejemplo copiando y pegando valores en

las celdas con reglas de validación, Excel no nos avisa si algunos valores no

cumplen las reglas establecidas. En estos casos, aunque no se muestren los

mensajes, lo que sí podemos hacer es pedir a Excel que nos señale qué valores no

cumplen las reglas de validación definidas. Todas las celdas que contengan datos

que incumplan los criterios de validación se mostrarán rodeadas por una línea de

color rojo.

Barra de auditoría>Rodear con un círculo datos no válidos

Datos>herramientas de datos>validación de datos>rodear con un círculo

datos no válidos

Esquema

Datos>Agrupar y esquema

Datos>Esquema

A veces se maneja tanta información que es imposible verla en pantalla y resulta

incómodo moverse arriba y abajo en la hoja para llegar hasta el dato que nos

interesa.

Page 128: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 128

Mediante las opciones de agrupación y esquema, podemos ocultar y mostrar

fácilmente la información contenida en la hoja, pudiendo establecer una jerarquía

de hasta 8 niveles de agrupación.

Puedes crear el esquema de la información manualmente seleccionando las filas o

columnas que quieras agrupar.

Page 129: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 129

En el cuadro de diálogo de configuración de esquema se nos ofrecen varias

opciones de resumen para las filas de totales: totales arriba o debajo de las celdas

agrupadas por filas, y a la izquierda o a la derecha para los agrupamientos por

columnas.

Para facilitar la lectura de los datos y diferenciar mejor unos niveles de otros,

podemos activar la opción para que nuestro esquema aplique estilos

automáticamente a las celdas, con lo que cambiará el aspecto si cambiamos la

agrupación, o podemos simplemente aplicar los estilos a las celdas de acuerdo al

esquema actual, pero las modificaciones posteriores del esquema no cambiarán los

estilos aplicados.

Si activas la opción estilos automáticos para un esquema existente, pulsa

Crear para aplicar los estilos.

Si tenemos subtotales intercalados entre los datos, Excel puede generar un esquema

automáticamente mediante la opción autoesquema, deduciéndolo de las sumas o

funciones de resumen que operen con los datos de la lista, interpretándolas como

subtotales de los diferentes capítulos. Si tienes suerte y has sido meticuloso al

calcular manualmente los subtotales, tal vez Excel sea capaz de generar el esquema

correctamente, entendiendo por correctamente hacerlo tal y como piensas que

debería ser, aunque las irregularidades que se suelen introducir a mano se lo suelen

poner bastante difícil. En cualquier caso, casi siempre será más fácil realizar

Page 130: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 130

pequeños ajustes al esquema generado automáticamente, que crearlo a mano desde

cero.

Las fórmulas que calculan los subtotales deben estar en la misma columna que

los datos para que autoesquema las detecte.

Excel creará un agrupamiento de datos cuando detecte una función para resumir un

grupo de datos, por ejemplo SUMA, PROMEDIO o SUBTOTALES, también son

válidas otras operaciones o fórmulas. Si hay funciones que hacen referencia a otras

funciones o a datos ya incluidos en otros grupos, el autoesquema los agrupará en

un nuevo grupo de nivel superior.

Subtotales

Datos>Subtotales

Datos>Esquema>Subtotal

Dentro de las opciones de agrupación y esquema tenemos la utilidad Subtotal, que

permite agrupar automáticamente mediante un esquema la información de una

lista, creando un grupo cada vez que detecte un cambio en el campo que le

indiquemos, e introduciendo las fórmulas para el cálculo de los subtotales de este

grupo recién creado, empleando para ello la función SUBTOTALES.

Page 131: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 131

Para todos los campos se utilizará la misma función resumen, si quieres

funciones diferentes habrás de modificarlo a mano.

Excel detecta los cambios en el valor del campo que le indiquemos, así que antes

de crear los subtotales, asegúrate de que los datos están ordenados correctamente.

Page 132: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 132

La creación automática de subtotales está pensada para agrupar por un solo campo.

Si necesitas agrupar por más de uno, tendrás que repetir el proceso, indicando cada

vez por qué campo quieres agrupar.

No olvides desactivar la opción “Reemplazar subtotales actuales”, para que

los nuevos subtotales se añadan a los anteriores.

En cada paso se crearán nuevos subgrupos dentro de los grupos ya existentes, por

lo que es importante prestar atención al orden en que se dan estos pasos.

Sabiendo esto, supongo que nunca más insertarás tus subtotales a mano.

Genera los subtotales automáticamente a partir de la lista de datos y luego

retócalos, si es necesario, para dejarlo a tu gusto.

Consolidar Datos

Si hemos cometido el error de tener multitud de hojas con la misma estructura,

incluso en archivos diferentes, ahora sabes que no es la mejor manera de almacenar

la información. Sabes que es más sencillo separar unos datos que están juntos, que

juntar unos datos que están dispersos, especialmente cuando esos datos dispersos ni

siquiera están almacenados en archivos homogéneos que guarden la misma

estructura.

Si tenemos un archivo para la contabilidad de cada proyecto o de cada oficina,

luego supondrá un trabajo nada despreciable responder a una pregunta tan simple

Page 133: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 133

como cuánto he facturado en total, o cuánto gasté en teléfono en el primer

trimestre. Si vas a empezar a almacenar datos, no cometas el error de hacerlo en

hojas o libros separados.

No todo es blanco o negro, a veces no queda más remedio que emplear archivos

diferentes, para oficinas diferentes o para personas diferentes, pero de los que luego

querremos obtener cierta información en conjunto.

En cualquier caso, si el mal ya está hecho ¿qué puedes hacer para resumir la

información dispersa? Tranquilo, aún no está todo perdido.

Se denomina consolidación de datos a resumir información que se encuentra

repartida en diferentes lugares de una hoja, o en diferentes hojas, ya sea en el

mismo archivo o en archivos distintos. Es decir, se trata de obtener un resumen de

la información que se encuentra dispersa, manteniendo esa dispersión. Cuando se

habla de resumir información estamos hablando de obtener un total, la media, el

máximo, el mínimo, contar los elementos, etc.

Para los ejemplos mostrados a continuación se ha empleado un libro donde anotar

las cifras significativas de la nómina, de cara a la declaración de la renta. En este

libro tenemos una hoja para cada año, desde hace bastantes años. Las cifras que se

muestran no son reales, para que nadie se sorprenda, ni se impresione, ni se ría.

A mano

En el peor de los casos, si las hojas no tienen ni pies ni cabeza (que no es lo mismo

que encabezado y pie de página), si no comparten una estructura común, si no

tienen ninguna homogeneidad, no te va a quedar más remedio que resumir la

información a mano, indicando una a una las celdas que quieres considerar.

Si, por el contrario, tenemos hojas de un mismo libro que tienen la misma

estructura, podemos emplear el concepto de referencia en tres dimensiones o

referencia 3D, que facilitan el resumen manual, pues permite operar con un mismo

rango simultáneamente en varias hojas de un libro, por ejemplo, la fórmula

=SUMA(Hoja1:Hoja20!A1:A5), sumaría las celdas de la A1 hasta la A5, de todas

las hojas comprendidas entre la hoja llamada Hoja1 y la hoja de nombre Hoja20.

Si todas nuestras hojas tienen el total en la misma celda, mediante una

referencia 3D podremos sumar esos totales de todas la hojas de manera

sencilla.

Page 134: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 134

Las referencias 3D no permiten elegir individualmente las hojas sobre las que

actuar, sólo permiten elegir la primera y la última hoja y formarán parte de la

misma todas las hojas que se encuentren entre ambas en cada momento. Si

insertamos una hoja entre medias de ellas también será considerada en la referencia

3D; del mismo modo, si se mueve una de las hojas a otro lugar fuera del intervalo

entre la primera y la última hoja de la referencia, dejará de formar parte de la

referencia y no será tenida en cuenta en los cálculos.

A máquina

Datos>Consolidar

Datos>Herramientas de datos>Consolidar

Aparte de realizar la consolidación de datos manualmente celda a celda o con

referencias tridimensionales cuando sea posible, Excel permite realizar un resumen

de datos repartidos en diferentes libros o en diferentes hojas, siempre que estos

datos tengan una estructura de listado o tabla y compartan todos o al menos

algunos nombres de los campos, que figurarán en la primera fila de la lista.

En el cuadro de diálogo de esta herramienta, elegiremos la función a emplear para

calcular el resumen de nuestros datos. Todos los datos se resumirán del mismo

modo, es decir, que no podemos contar unos y sumar otros. Bueno, tampoco cuesta

nada realizar varias consolidaciones cambiando la función a emplear.

Page 135: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 135

Como en otras ocasiones, la utilización de nombres para referirnos a los rangos que

contienen la información a consolidar, hacen el proceso más sencillo y más fácil de

entender.

Los rótulos en la fila superior se mantendrán en el resumen, entendiendo que son

los nombres de los campos. Los rótulos de la columna izquierda se emplearán para

agrupar los datos. No se puede elegir otro campo para agrupar, ni se puede agrupar

por más de un campo.

Crear vínculos con los datos de origen generará filas donde se incluirán referencias

a los datos que provocan los totales mostrados, agrupados en un esquema, dentro

del apartado correspondiente. Si no se activa la opción de crear vínculos,

simplemente aparecerán los totales.

Page 136: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 136

Los vínculos a los datos de origen son referencias a las celdas correspondientes de

cada una de las hojas que hemos consolidado. Es decir, que este asistente hace el

trabajo por nosotros de ir hoja a hoja buscando la información para incluir una

referencia a la misma.

En el caso de incluir vínculos a la información original, en el resumen aparecen

identificados los datos con el nombre del libro. Si nuestros datos provienen de

libros diferentes no hay problema, pero puede llegar a ser algo confuso si nuestros

datos proceden de hojas diferentes de un mismo libro, puesto que aparecerán todas

identificadas con el mismo nombre. Tendremos que investigar en las celdas de

detalle a qué hojas hacen referencia.

Page 137: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 137

Tablas

Datos>Lista>Crear lista

Insertar>Tablas>Tabla

Desde la versión 2003, aunque entonces se le llamó lista, aparece el concepto de

tabla, como un conjunto de datos, al que se puede aplicar formatos, filtros, añadir

columnas con fórmulas, añadir columnas de totales, pero con la ventaja de trabajar

con ese conjunto de datos como una unidad.

Empleando referencias a rangos convencionales, que no pertenecen a una tabla, al

añadir nuevos datos a continuación de los datos existentes, en los gráficos, las

fórmulas, las tablas dinámicas, etc., no se actualizan las referencias existentes del

rango antiguo al nuevo rango de datos, es decir, no se detecta que hay más datos y

que el último registro está, por tanto, en otra posición diferente. Para evitar esto, o

se insertan filas entre la primera y la última fila del rango para los nuevos datos,

con lo cual las referencias sí se adaptan a la nueva situación, o se redefinen los

nombres de los rangos para considerar los nuevos registros, o se modifican las

referencias a los rangos de origen para las fórmulas si no se han empleado

nombres.

Trabajando con tus datos agrupados en una tabla ya no se vuelven a presentar estos

problemas, pues la tabla sí incorporará los datos escritos a continuación, y las

referencias a los datos de la tabla se actualizarán correctamente para considerar

todos los datos presentes.

Podemos, desde las opciones de estilo de la tabla, indicar si queremos que las filas

y las columnas se muestren con bandas de diferente color para facilitar la lectura, si

queremos que se diferencien también la primera columna, o la última. También si

queremos que se muestre la fila de encabezado y una fila de totales.

Page 138: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 138

En la fila de totales, para cada campo podremos definir el modo de calcular su

total, eligiendo la función a emplear de una lista desplegable.

Los colores empleados dependerán del estilo de tabla aplicado, que se puede elegir

entre una numerosa relación de estilos predefinidos, o bien podemos crear uno

personalizado que se adapte mejor a nuestras necesidades o a nuestros gustos.

El aspecto de los estilos predefinidos proviene del tema actual de nuestro libro. En

la página 62 puedes encontrar más información sobre cómo aplicar y definir temas

para los archivos de MS Office.

Page 139: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 139

Si añadimos información a continuación de la tabla, Excel considera que queremos

agregarla a la tabla existente y la incorpora a la misma. Esto no funciona así si

tenemos activada la fila de totales así que, si vamos a añadir información, primero

hay que desactivar los totales. Una vez añadidos nuestros datos podemos volver a

insertar la fila de totales que conservará la definición que hicimos para cada campo.

Desplazándonos por la tabla mediante la tecla de tabulación, al llegar a la

última columna, la celda activa pasa a la primera columna de la fila siguiente.

Al llegar a la última celda de la última fila de datos y pulsar el tabulador, se

añadirá una fila más a la tabla.

Si añadimos una fórmula a la derecha de la última columna, Excel interpretará que

deseamos insertar en la tabla una columna con un campo calculado y creará una

nueva columna con las fórmulas. Para referirnos al dato de un campo en la misma

fila donde está la fórmula, emplearemos el nombre del campo, el que aparece en el

encabezado, escrito entre corchetes [ ]. Comprobarás que al introducir la fórmula

Page 140: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 140

con el ratón, o con las flechas de desplazamiento, Excel escribe los nombres de los

campos por ti. Por ejemplo, para calcular el retraso entre la fecha de la factura y la

fecha del pago, escribiríamos la siguiente fórmula en cualquier celda de la columna

siguiente a la última de la tabla.

=[Fecha pago] – [Fecha factura]

Dentro de la tabla, el nombre del campo se refiere al mismo registro, esto es, a la

misma fila donde se encuentra la fórmula. Si escribimos una fórmula fuera de la

tabla, el nombre del campo se refiere a todos los datos de ese campo.

Todas las tablas tienen un nombre, cuyo ámbito es el libro, con el que

podemos referirnos a ella.

Si queremos hacer referencia a un campo de la tabla desde fuera de la misma,

tendremos que anteponer al nombre del campo el nombre de la tabla, para que

Excel sepa donde buscar la información que le pedimos. Por ejemplo, para contar

cuántos datos tenemos podríamos escribir la siguiente fórmula

=CONTAR(NombreDeLaTabla[Importe])

En cualquier cuadro de diálogo que solicite una referencia a un rango, podemos

emplear el nombre de la tabla y el campo del mismo modo.

Disponemos de algunos modificadores más para referirnos a la información de la

tabla. El modificador y el nombre del campo irán separados por el separador de

listas (en mi caso punto y coma) y todos ellos dentro de unos corchetes. Si no

indicamos ningún nombre de campo, el modificador hará referencia a toda la tabla.

Por ejemplo para referirnos al total del campo importe que aparece en la fila de

totales escribiríamos:

=NombreDeLaTabla[[#Totales];[importe]]

Tenemos los siguientes modificadores:

Page 141: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 141

#Todo devuelve todo el contenido, lo que incluye también el

encabezado y la fila de totales.

#Datos devuelve sólo los datos, sin encabezado ni totales.

#Encabezados devuelve la fila de encabezado.

#Totales devuelve el valor de la fila de totales.

#Esta fila devuelve el valor de la tabla que se encuentra en la misma fila

que la celda donde está la fórmula, aunque se encuentre en

distinta hoja.

Si queremos que la fórmula nos devuelva más de un valor, tenemos que

introducirla como una función matricial.

Entre las herramientas disponibles para la tabla, tenemos la posibilidad de resumir

la información de la misma mediante una tabla dinámica.

También es posible eliminar información duplicada, seleccionando los campos que

deben coincidir para que consideremos que dos datos son iguales. Esto es

especialmente útil para realizar una limpieza previa de los datos, para prevenir que

la existencia de valores repetidos distorsione el análisis posterior de la información.

Page 142: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 142

Y por supuesto, si no nos gusta, siempre podremos volver a convertir una tabla en

un rango convencional. Excel ya se ocupa de sustituir los nombres de los campos y

demás referencias a la tabla que existan en el libro por la referencia a las celdas

correspondientes.

Page 143: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 143

Obtener datos externos

Datos>Obtener datos externos

Excel ofrece una gran capacidad para analizar datos, para resumirlos, compararlos,

dibujarlos y operar con ellos. En algunos casos los datos estarán también

almacenados en Excel, pero no será extraño encontrarse con situaciones en las que

los datos se encuentran en otro archivo, bien porque han sido generados por otro

programa, bien porque los datos se almacenan en una base de datos que se adapte

mejor a la estructura que tiene la información que queremos guardar, o bien porque

los datos se encuentran en un servidor común para toda la oficina o para toda la

empresa, al que se accede desde diferentes aplicaciones.

Excel no es un programa gestor de base de datos y aunque puede almacenar datos

con estructura de listado o tabla, no permite establecer relaciones entre tablas, no es

lo que se conoce como una base de datos relacional. Tampoco permite el acceso

simultáneo (no me refiero al uso compartido del libro) de varios usuarios a los

datos guardados, que es otra de las características fundamentales de una base de

datos. Otra limitación es el número de registros, para el que Excel tiene un tope en

el número de filas (aunque lo hayan aumentado en la versión 2007).

Si para tus datos una estructura del tipo de una única tabla es suficiente, empezar

en Excel puede ser un buen punto de partida para aclarar las ideas sobre los tipos

de datos que vas a almacenar, qué campos necesitas, qué consultas vas a realizar a

esos datos, etc.

Las correcciones en Excel siempre resultan más sencillas de realizar que

mediante un programa de base de datos. Excel es más flexible y no requiere

tener las ideas tan claras desde el principio.

Si tus datos tienen una estructura más compleja que las dos dimensiones de una

tabla, con tablas relacionadas, registros repartidos en varias tablas, estructuras de

más de dos dimensiones como los llamados cubos, etc. tendrás que almacenarlos en

una base de datos. Desde Excel podrás realizar consultas a estos datos, que generen

como resultado un listado tipo tabla, bidimensional (registros en filas campos en

columnas), que sí sea capaz de interpretar.

Page 144: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 144

En las opciones del programa, dentro de la configuración del centro de

confianza, puedes definir el comportamiento cuando se abre un libro que

contiene contenido externo, como son las conexiones de datos.

Ventajas

Cuando enlazamos desde Excel con un origen externo de datos, estamos

estableciendo un vínculo con los datos originales. Si modificamos los datos

enlazados en Excel no estamos alterando el original, sino la copia.

Podemos actualizar nuestra hoja con la última versión disponible de los datos,

evitando el error de realizar un trabajo para luego descubrir que nos faltaban

algunos datos y tenemos que adaptar o rehacer el trabajo.

Los datos sólo están en un lugar, con lo que evitamos tener que introducir los

nuevos datos en varios sitios para mantener sincronizadas varias copias de los

mismos, lo que acaba degenerando en tener varios archivos con datos, ninguno de

los cuales está completo.

Los rangos modifican su tamaño de acuerdo a los datos que resultan de la consulta,

con lo que los nombres del rango, las fórmulas, los gráficos, todo lo que hiciese

referencia al rango que contiene los datos vinculados, ya sea directamente o

mediante nombres, se adapta automáticamente a la nueva cantidad de datos,

evitando errores del tipo “datos que no aparecen en el gráfico” o “fórmulas que no

operan con todos los datos existentes”, que son demasiado habituales cuando

añadimos datos en una listado de una hoja y sobrepasamos el límite que habíamos

supuesto que nunca íbamos a superar.

Page 145: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 145

Las fórmulas introducidas al lado de los datos para operar con ellos se extienden

automáticamente para adaptarse al número de datos resultado de la consulta, con lo

que no volveremos a tener que extender manualmente las fórmulas si introducimos

un dato nuevo una fila más abajo del último registro.

El proceso de obtener datos externos

Cuando se habla de obtener datos desde un origen externo debes tener claro que no

quieres abrir el archivo original directamente con Excel (si es que se puede); que

no quieres copiar los datos en otro programa y pegarlos en Excel; que no quieres

trabajar directamente con los datos originales, sino crear un enlace a los mismos.

Los pasos a dar son similares, independientemente de donde se encuentren los

datos almacenados. Variarán algunas opciones y posibilidades disponibles, pero la

idea es la misma y se puede resumir en estos pasos:

En primer lugar deberás indicar al programa dónde se encuentran los datos: en un

archivo de texto, en una base de datos de Access, en un servidor SQL, en una tabla

de una página web, en un archivo XML, en un origen para el que hayas definido un

nombre (DSN, Data Source Name, nombre de origen de datos), o en cualquier

origen de datos ODBC (Open Data Base Connectivity) para el que tengas un

controlador instalado en tu equipo, lo que incluye el caso de que tus datos se

encuentren en un libro de Excel.

En cada caso debes proporcionar la configuración necesaria para poder conectar

con el origen de datos que te interese: nombre de usuario y contraseña, base de

datos a la que conectar, ubicación del archivo, etc.

Hay que definir también qué datos queremos importar y cómo. Si queremos una

tabla entera, o datos de varias tablas, si queremos todos o sólo determinados

campos, si queremos todos los registros o sólo aquellos que cumplan unas

determinadas condiciones.

Por último definiremos qué hacer con los datos. Podemos listarlos en una hoja, o

pueden ser el origen de una tabla o gráfico dinámico.

Ahora ya tenemos los datos en nuestro libro, podemos añadir fórmulas que operen

con cada registro o con todos ellos, resumirlos, representarlos en un gráfico,

cualquier cosa que se nos ocurra, pero con la tranquilidad de saber que si en el

futuro hay datos diferentes de los que hay ahora, o se añaden nuevos registros, no

Page 146: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 146

tendremos que hacer nada, porque al actualizarse los datos el trabajo ya estará

hecho.

Page 147: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 147

Desde archivo de texto

Datos>Obtener datos externos>Importar archivo de texto

Datos>Obtener datos externos>desde texto

Si nuestros datos van a obtenerse de un archivo de texto, al indicar a Excel dónde

se encuentra dicho archivo se mostrará el asistente para importar texto, que en unos

cuantos pasos nos solicitará la información necesaria para poder interpretar

correctamente los datos.

Se importarán todos los registros. En este tipo de conexión no está permitido

establecer unos criterios de consulta para restringir el número de datos

resultado. Sí podemos elegir si importar o no alguno de los campos, pero se

importarán a Excel todos los registros (filas) del archivo.

En el primer paso del asistente indicamos cómo están separados unos campos de

otros en la misma fila del archivo, en un mismo registro, si están separados por un

determinado carácter, o si la anchura de los campos es fija, es decir, que cada

campo ocupa siempre el mismo número de caracteres.

Page 148: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 148

Indicaremos también desde qué fila queremos obtener los datos, por si al comienzo

del archivo existen líneas de encabezado que no nos interesa importar puesto que

no se trata de los datos propiamente dichos.

Disponemos de una lista para elegir el tipo de codificación del archivo. En general

Excel lo detecta automáticamente, pero podemos modificarlo manualmente por si

acaso la suposición de Excel no es la correcta.

En el segundo paso del asistente indicaremos qué carácter se emplea para separar

los campos (tabulación, coma, punto y coma, espacios, etc. ). Si los campos de

texto están delimitados por comillas u otro carácter, este es el momento de decirlo.

En el caso de que nuestro tipo de archivo fuese de ancho fijo, lo que habrá que

definir en este segundo paso será la anchura de cada campo.

Page 149: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 149

En el tercer paso, indicaremos para cada uno de los campos qué tipo de dato

contiene: General para que Excel suponga el tipo de dato en función del contenido;

Texto si queremos que el campo se importe como texto (aunque contenga números

luego no podremos operar con ellos); Fecha, podremos indicar el formato que tiene

la fecha en el archivo de texto para que no haya confusiones con el orden en que

está escrita.

Podemos no importar una columna entera si ese campo no nos interesa.

Dentro de las opciones avanzadas, a las que se accede desde el último paso del

asistente, especificaremos qué caracteres se han empleado en el archivo de texto

para separar los decimales y para separar los millares. También definimos dónde

figura el signo menos en los números negativos del archivo de datos, si delante o

detrás del número.

Esta configuración es especialmente importante para reconocer adecuadamente los

números, porque no es lo mismo interpretar el dato 1.001 como “mil uno”, que

como “uno con una milésima”. Si tenemos 1,001.10 para que entienda el número

mil uno con diez centésimas, habremos tenido que definir en las opciones

avanzadas la coma como separador de miles y el punto como separador decimal. Si

Excel no es capaz de reconocer un número lo interpretará como texto. Si tenemos

Page 150: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 150

los dos caracteres presentes en el número es más difícil cometer un error, pero

cuando sólo tenemos un símbolo de separación y tres cifras a la derecha del

separador sí es posible la ambigüedad. Si tenemos 1,000 frente a 1.000 ¿cuál de

estos números es el mil y cuál es el uno?

Tras dar todos estos pasos y finalizar el asistente, habrá que indicar dónde y cómo

queremos que aparezcan los datos en el libro. En el caso de los archivos de texto

sólo disponemos de la opción de importarlos como un rango en una hoja. Si

queremos por ejemplo crear una tabla dinámica con esos datos, tendremos que

crearla después, indicando como origen para la misma el rango donde se

encuentran los datos importados del archivo de texto y lo indicaremos con su

nombre, puesto que todos los rangos de datos importados tienen un nombre.

Page 151: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 151

El nombre del rango de datos procedente de una consulta a un archivo de

texto, que podemos definir en la hoja de propiedades del rango de datos

externo, tiene como ámbito la hoja donde están los datos.

Este asistente para la importación de texto, también puede utilizarse cuando en

nuestra hoja tengamos texto procedente de copiar y pegar, o arrastrar con el ratón,

desde otra aplicación. Si este texto pegado en Excel se amontona en una única

columna, podemos emplear el asistente para importación de archivos de texto, para

convertir este texto en columnas, aunque en este caso no existe vínculo con el

archivo original, no podremos actualizarlo más adelante.

Datos>Texto en columnas

Datos>Herramientas de datos>Convertir texto en tabla

Otra situación en que se utiliza el mismo asistente para importación de texto es

cuando abrimos con Excel un archivo de texto, o separado por comas. En este caso

el asistente se mostrará automáticamente en pantalla al abrir el archivo, para que

puedas indicar a Excel cómo interpretarlo.

Te recuerdo que dispones de unas funciones para el tratamiento de datos tipo texto,

como LIMPIAR, que elimina los caracteres no imprimibles, o ESPACIOS, que

elimina los espacios existentes al principio y al final de un texto. Consúltalas en la

página 77.

Page 152: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 152

Desde una página web

Datos>Obtener datos externos>Nueva consulta web

Datos>Obtener datos externos>desde web

Excel es capaz de recuperar información de una tabla que se encuentre en una

página web, en Internet o en cualquier otro lugar al que tengamos acceso desde

nuestro equipo. Tal vez sería más correcto decir que Excel es capaz de obtener

datos desde archivos de tipo html.

Qué te voy a contar de Internet que no sepas. Sólo recordarte que es frecuente que

una página hoy exista y mañana ya no, o mañana existe pero ha cambiado de sitio o

de aspecto, así que no tengas la confianza plena de que tus consultas web

funcionarán eternamente.

Por cierto, para que una consulta a una página web de Internet funcione, lo

primero que hay que tener es una conexión a Internet.

Page 153: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 153

En las versiones anteriores a la 2003, debíamos proporcionar el nombre de la tabla

que contenía los datos que queríamos importar dentro de la página web. Este

nombre había que consultarlo viendo el código de la página web con un editor de

texto e investigando un poco, no resultando muchas veces evidente cómo referirse

a la tabla en cuestión.

Desde la versión 2003 el asistente para la importación de datos desde páginas web

analiza la página de donde vamos a tomar los datos y nos ofrece las tablas que

contiene, con lo que resulta mucho más cómodo identificar qué tabla, de entre toda

la página, es la que realmente nos interesa.

Este cuadro de diálogo para una nueva consulta web, ofrece la opción de guardar la

consulta como archivo de texto, con extensión iqy, supongo que de “Internet

QuerY”, para poder reutilizarla en el futuro.

Pulsando sobre Opciones, se muestra un nuevo cuadro de diálogo donde

indicaremos a Excel si recupera además de los datos el formato que éstos tienen en

la web.

Definiremos a Excel cómo tratar la información que encuentre entre delimitadores

<PRE>, con formato previo.

Page 154: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 154

Por último podemos elegir si queremos que Excel trate de reconocer fechas en los

datos y si deshabilitamos los redireccionamientos hacia otras páginas web al tratar

de acceder a la página que nos interesa.

Al igual que con los datos procedentes de un archivo de texto, sólo tenemos la

opción de importar los datos como un rango dentro de una hoja del libro.

El nombre del rango de datos procedente de una consulta a una página web,

que podemos definir en la hoja de propiedades del rango de datos externo,

tiene como ámbito la hoja donde están los datos.

Page 155: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 155

Desde Access

Datos>Obtener datos externos>Desde Access

Al seleccionar esta opción, lo primero que se solicita es la ubicación del archivo

con la base de datos Access que contiene los datos que vamos a obtener.

A continuación se muestra un listado con las tablas y consultas disponibles en esa

base de datos, para seleccionar la que tiene los datos que nos interesan.

Si no queremos una tabla entera, sino una consulta más concreta, en las

propiedades de la conexión, una vez creada, podremos escribir una consulta SQL

particularizada.

No hay más que indicar ahora qué haremos con los datos que Access nos enviará

como respuesta a nuestra consulta a la base de datos. Podemos mostrarlos en el

libro como una tabla, o utilizarlo como origen para una tabla o un gráfico

dinámico.

Page 156: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 156

Desde un servidor SQL

Datos>Obtener datos externos>de otras fuentes>Desde SQL Server

Sólo hay que conocer el nombre el servidor SQL donde están nuestros datos y la

base de datos, así como las contraseñas si son necesarias para poder conectar.

Una vez conectados con el servidor, hay que especificar qué base de datos de entre

todas las del servidor es la que vamos a emplear y qué tabla dentro de ésta. Más

adelante, en las propiedades de la conexión, se puede introducir una consulta en

lenguaje SQL si lo que necesitamos no es una tabla completa sino una selección de

registros a partir de los datos de una o varias tablas.

En el siguiente paso del asistente podremos guardar la consulta en un archivo

independiente, con extensión odc (siglas de ¿Open? Database Connection,

conexión abierta de base de datos) para poder reutilizarla posteriormente.

Page 157: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 157

Es el momento de añadir un texto descriptivo de la conexión, para recordar más

adelante la finalidad de esta conexión. También se debe agregar un nombre

descriptivo, que es el que se empleará en el libro para identificar la conexión.

Se pueden añadir palabras clave para facilitar la localización posterior de la

consulta, aunque en mi opinión es mejor emplear nombres suficientemente

descriptivos para el archivo odc y para la conexión.

Podemos indicar a Excel si queremos que se intente leer el archivo odc con la

definición de la conexión cada vez que actualicemos los datos, lo que es interesante

tanto si modificamos con un editor de texto el archivo, para actualizar la consulta

con las modificaciones introducidas, como si trasteamos desde Excel en las

propiedades de la consulta, para recuperar la consulta original guardada en el

archivo.

Page 158: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 158

Por último, como en todas las importaciones de datos externos, indicaremos dónde

vamos a emplear nuestros datos

Page 159: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 159

A través de Query

Datos>Obtener datos externos>Nueva consulta de base de datos

Datos>Obtener datos externos>De otras fuentes>De Microsoft Query

Microsoft Query es un programa incluido con Office cuya finalidad es realizar

consultas a orígenes de datos de tipo ODBC (Open DataBase Connectivity,

conectividad abierta de bases de datos). Podemos acceder a datos contenidos en

una hoja de un libro Excel, podemos acceder a una base de datos Access, podemos

acceder a cualquier sistema de base de datos, siempre que dispongamos en nuestro

equipo de un software controlador adecuado para acceder a la misma.

La mayoría los fabricantes de sistemas de bases de datos, si no todos, elaboran

controladores para poder acceder a las bases de datos mediante ODBC. Si tiene ese

controlador, mediante Query podrás consultar sus datos.

Excel tiene la posibilidad de consultar datos a bases de datos a través de Query. Es

como si Excel le pidiese el favor a Query de ir a buscarle unos datos, Query se

ocupa de entenderse con la base de datos, localizar la información que le han

pedido y volver a Excel con la respuesta a su pregunta.

El primer paso para obtener los datos es indicar de dónde proceden. Desde el

cuadro de diálogo podemos definir un nuevo origen de datos, utilizar una consulta

o una definición de cubo OLAP creada anteriormente.

Page 160: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 160

Algunas versiones de Query no reconocen nombres de archivos de bases de

datos Access o Excel si éstos contienen puntos. No emplees nombres del tipo

Mis.Datos.mdb, utiliza guiones bajos u otro carácter para que Query acceda

sin problemas.

Si activamos la opción de usar el asistente para consultas, aparecerán una serie de

ventanas desde las que podremos ir paso a paso definiendo las opciones de nuestra

consulta.

Definiremos de qué campos y de qué tablas queremos obtener los datos, así como

el orden en que aparecerán estos campos.

Estableceremos, en caso necesario, los criterios que han de cumplir los datos que

queremos obtener. Mediante unas listas desplegables podemos indicar estos

criterios de una manera sencilla.

Page 161: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 161

Por último indicaremos los criterios de ordenación de los datos.

Si nuestra consulta ha quedado completamente definida tras todos estos pasos del

asistente, en el último paso se puede guardar la consulta en un archivo de texto con

extensión dqy (Data QuerY) y devolver los datos a Excel.

Si el asistente no nos ha permitido generar la consulta exactamente como la

necesitábamos, podemos abrir la interfaz de Query para retocarla a nuestro antojo.

Page 162: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 162

La apariencia de este programa muestra varias zonas diferenciadas, aparte de los

menús y botones de la barra de herramientas.

En la primera de estas zonas se muestran las tablas que forman parte de la

consulta, con las relaciones existentes entre ellas si las hay.

Según lo necesitemos quitaremos y añadiremos tablas a este panel,

eligiéndolas entre las tablas disponibles en la conexión definida. Podemos definir y

editar las relaciones existentes entre las tablas.

Page 163: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 163

En la segunda zona es donde podemos establecer los criterios de filtrado de

los datos. Se elegirá en la primera fila, mediante una lista desplegable, el campo

sobre el que queremos aplicar el filtro, y en las filas de debajo los criterios que

debe cumplir. Los criterios que estén en la misma fila se deben cumplir

simultáneamente, es una condición Y. Los criterios de filas diferentes se

corresponden con una condición O, se filtrarán los datos que cumplan los criterios

de al menos una de las filas.

Como criterio para un campo podemos escribir un valor, o una operación con

valores o con los campos, que puede ser aritmética (+, -, *, /), una operación lógica

(Y, O, NO), una comparación (< menor que, <= menor o igual que, = igual que, >=

mayor o igual que, > mayor que, <> distinto, ENTRE tal Y cual valores, COMO

'un texto'), una lista de valores (EN(valor1;valor2;valor3;…)) y valores nulos (ES

NULO, NO ES NULO).

Para delimitar los textos se emplea la comilla simple, mientras que como carácter

comodín para cualquier cadena de texto se utiliza el símbolo del tanto por ciento

%. Para representar un único carácter se emplea como comodín el guión bajo _.

Para buscar uno de los caracteres comodín, lo incluiremos dentro de corchetes, por

Page 164: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 164

ejemplo COMO '%[%]' se cumpliría en aquellos datos que acaben en un símbolo

%.

Cuando incluimos caracteres entre corchetes, se considera que cumple la condición

si está presente alguno de los caracteres, por ejemplo si nuestro criterio para un

campo de texto es COMO 'l[ao]s', obtendríamos los datos con los textos las y los.

Si queremos que no se incluya ninguno de los caracteres, antepondremos a los

caracteres, dentro del corchete, el símbolo de exclamación ! Por ejemplo, COMO

'l[!ao]s' devolvería las cadenas les, lis, lus, lbs, lxs, en fin, las cadenas que, entre

medias de la l y la s, tienen cualquier carácter excepto la a y la o. Si los datos se

obtienen desde SQL Server, en vez de la exclamación habrá que emplear el

carácter ^.

Podemos indicar un intervalo de caracteres separándolos con un guión -, por

ejemplo COMO 'l[a-d]s' nos devolvería los textos las, lbs, lcs, lds.

Continuando con el aspecto del programa, por último, en la parte inferior de Query

aparece un listado con los datos resultado de la consulta. Para elegir los campos

cuyos datos queremos obtener basta con arrastrar el campo desde la tabla de la

parte superior hasta este listado.

Haciendo doble clic con el ratón sobre el nombre del campo, se mostrará una serie

de opciones del mismo, como el nombre que aparecerá en el encabezado, o la

función empleada para resumirlo en consultas que tengan algún tipo de

agrupamiento.

Page 165: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 165

Podemos activar o desactivar la opción de actualización automática en la barra

de herramientas, para que los datos que aparecen en este listado reflejen

automáticamente, o no, cada uno de los cambios que vayamos realizando. En caso

de tenerlo desactivado, no olvides actualizar los datos manualmente cuando hayas

completado la consulta, para comprobar que la consulta funciona correctamente y

devuelve los datos que esperabas.

La definición de la consulta, realizada mediante la interfaz del programa

Query, es convertida a una sentencia SQL (Structured Query Language, lenguaje

estructurado de consultas) que podemos editar manualmente.

Una vez creada la consulta según nuestras necesidades, desde el menú Archivo

podremos guardar la consulta como archivo dqy para poder reutilizarla en el futuro.

Por último, también desde este menú, podremos devolver los datos a Excel, donde

se nos preguntará si mostramos los datos como una tabla o los empleamos como

origen para una tabla o gráfico dinámico.

Microsoft Query dispone de su propia ayuda en pantalla, independiente de la

de Excel. Pulsa [F1] desde la interfaz de Query para acceder a ella.

Si conoces Access, o algún otro programa gestor de bases de datos, habrás

comprobado que tanto el aspecto, como la manera de elaborar una consulta con

Query es muy similar a hacerlo en el modo diseño de consultas de estos programas,

si bien las posibilidades de Query son más limitadas. Si tu consulta es muy

complicada, puede que Query no sea capaz de representarla gráficamente con lo

que tendrás que editarla mediante sentencias SQL.

Si estás acostumbrado a elaborar consultas en Access u otro programa de base de

datos, o tu consulta es más complicada de lo que Query puede representar, siempre

puedes elaborar una consulta a través de estos otros programas y luego adaptar la

sentencia SQL generada, para que Query la entienda. En la página 175 se comentan

los cambios necesarios para adaptar las sentencias SQL de unos programas a otros.

Page 166: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 166

Propiedades de un rango de datos externos

Desde texto y web

Desde la ventana de propiedades del rango de datos externo, podemos cambiar el

nombre ofrecido por defecto y establecer aquel que más nos guste y mejor defina

de dónde vienen los datos o para qué los utilizamos. A este nombre se podrá hacer

referencia en fórmulas, para indicar el origen de un gráfico o una tabla dinámica.

Es un nombre de rango más, que aparecerá en el administrador de nombres junto

con los otros nombres definidos en el libro.

Para los archivos de texto, dentro del grupo para el control de las actualizaciones,

elegiremos si queremos que nos pregunte el nombre de archivo cada vez que

actualicemos los datos. Esto resulta de utilidad si tenemos varios archivos de texto

con estructura similar, definimos las opciones de importación para uno de ellos y

luego cada vez que actualicemos tendremos la posibilidad de indicar de qué

archivo se leerán los datos. En las consultas web, esta opción se ha sustituido por

“habilitar actualización en segundo plano”.

También podemos establecer un periodo de tiempo para realizar actualizaciones

automáticas, o bien seleccionar si se actualizarán los datos al abrir el libro. Si no

activamos ninguna de estas opciones, la actualización de datos será manual, bien

desde el menú contextual sobre el rango, bien desde el administrador de

conexiones.

Page 167: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 167

Una opción muy útil para reducir el tamaño de los archivos es no guardar los datos

en el libro. Si no vamos a tener problema en conectar con el origen de datos cada

vez que abramos nuestro libro, podemos seleccionar la opción de quitar los datos

de la hoja antes de cerrar, que es una opción adicional a actualizar al abrir el libro.

La opción de quitar los datos antes de cerrar estará deshabilitada hasta que

hayamos accedido a los datos por primera vez y tengamos datos en el libro.

Estableceremos los criterios respecto al ajuste del ancho de las columnas en

función del contenido recuperado, pudiendo señalar que se conserve al actualizar el

formato aplicado a las celdas.

Page 168: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 168

Definimos también el comportamiento al actualizar los datos en lo referente al

formato y la anchura de las celdas, así como con la inserción y eliminación de

datos cuando cambia el número de registros totales tras actualizar.

Si tenemos fórmulas que calculan totales debajo de los datos, cuando se recuperen

más datos, nos interesará la opción de insertar celdas o filas, para que los nuevos

datos no sobrescriban las fórmulas.

Por último, tenemos la opción de que automáticamente se extiendan las fórmulas

que se encuentran en las columnas adyacentes al rango de datos, importantísima

opción si realizamos operaciones con los datos. Esta opción nos asegura que las

fórmulas siempre se encontrarán en todas las filas donde haya datos.

Esta última opción aparece en las consultas a archivos de texto y no aparece en las

consultas a bases de datos, puesto que para el primer caso los datos se importan

como un rango convencional, mientras que para el segundo caso los datos se

importan como una tabla, y en las tablas las fórmulas de las columnas adyacentes

se extienden siempre automáticamente.

En las versiones anteriores a la 2003, al no existir aún las tablas (o listas), en las

opciones de los datos externos procedentes de bases de datos sí aparece también la

opción de extender automáticamente las fórmulas.

He dejado para el final la opción que aparece en primer lugar: guardar definición

de consulta. Si se desactiva esta opción, Excel no podrá volver a consultar los

datos, rompemos el vínculo que existe con el archivo donde se encuentran los

datos. Como consecuencia, convertimos nuestros datos vinculados en datos sin

más, sin posibilidad de actualizarlos posteriormente. Nos quedaremos con una

copia de los datos en su estado actual.

Page 169: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 169

Desde bases de datos

En las propiedades de un rango de datos externo procedente de una consulta a una

base de datos únicamente disponemos de opciones relativas al formato y al

comportamiento cuando varía el número de datos tras la actualización.

Si estás utilizando una versión de Excel anterior a la 2003, lee también el

apartado sobre las propiedades de un rango procedente de un archivo de texto

o de una página web.

En el primer grupo, especificaremos las opciones relativas a conservar el formato y

los filtros aplicados sobre el rango tras actualizar, así como sobre si se incluyen, o

no, números de fila y si se ajusta el ancho de las columnas automáticamente al

contenido.

También disponemos de las opciones necesarias para definir el comportamiento del

rango cuando aumenta o disminuye el número de registros resultado de la consulta

a la base de datos. Insertar celdas o filas para los datos nuevos, o sobrescribir las

celdas existentes. Cuando el número de datos se reduce, se eliminarán las celdas

sin usar, o simplemente se borrarán.

Page 170: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 170

Propiedades de la conexión

Datos>Conexiones>Conexiones

En la versión 2007 la información de la conexión al origen de datos está disponible

en un formulario en el que podemos editar cómodamente la información de las

propiedades de la consulta a la base de datos.

En el cuadro de diálogo conexiones figuran todas las conexiones del libro actual,

con posibilidad de seleccionar la que nos interese para ver, en la parte inferior, en

qué lugar del libro se emplea dicha conexión. La actualización de los datos puede

realizarse manualmente desde aquí y podemos también acceder al formulario de

propiedades de la conexión.

En las propiedades de la conexión, tenemos dentro de la pestaña denominada Uso,

las opciones relativas a la actualización de los datos.

Para las consultas a archivos de texto y archivos html, estas son las únicas opciones

habilitadas dentro de las propiedades de la conexión, que por otra parte, también

Page 171: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 171

están disponibles a través de las propiedades del rango de datos externos para estos

tipos de archivos.

Para reducir el tamaño del archivo, podemos seleccionar la opción de quitar los

datos antes de guardar. Esta opción no interesa activarla si sólo disponemos de

conexión con el origen de datos ocasionalmente, por ejemplo porque trabajemos

con un equipo portátil fuera de la oficina sin conexión a la red corporativa.

Tampoco interesará si la conexión con el origen de datos es muy lenta y

recuperamos un número elevado de registros, tal vez en esas condiciones no nos

merezca la pena esperar a que se actualicen los datos cada vez que se abra el libro,

aunque con las velocidades que tienen las redes hoy día esta limitación cada vez es

menos relevante.

Aunque quitemos los datos externos antes de cerrar, las fórmulas existentes en

las celdas adyacentes al rango no desaparecen. Cuando abramos de nuevo el

libro y se vuelvan a cargar los datos, ahí estarán también las fórmulas.

En la pestaña denominada Definición, se muestra la información sobre la conexión

con la base de datos, como por ejemplo la ubicación del archivo con la base de

datos, con lo que podremos corregir la localización del mismo si éste se cambió de

lugar con posterioridad a la creación de nuestra consulta.

En el caso de que nuestra consulta tenga parámetros, se podrá acceder a su

configuración desde esta pestaña, además de poder hacerlo desde el menú

contextual de los datos.

Page 172: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 172

En esta pestaña es donde podemos elegir si queremos obtener los datos de una tabla

completa o si queremos realizar una consulta mediante SQL a la base de datos para

elegir qué datos exactamente son los que nos interesan.

Page 173: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 173

Consultas con parámetros

Las consultas que realicemos a datos externos pueden incluir criterios para filtrar

los datos, por ejemplo podemos establecer que el campo fecha sea posterior al uno

de enero de 2007, o que el valor del campo importe sea superior a diez euros.

Sin embargo, si posteriormente queremos modificar estos criterios no nos quedaría

más remedio que entrar en la definición de la consulta para introducir los nuevos

valores. Si vamos a cambiar el criterio continuamente, acceder a la definición no

resulta nada operativo.

Para solucionar este problema, los criterios pueden definirse de manera

paramétrica, esto es, nuestra consulta se define con unos filtros genéricos, mediante

el empleo de parámetros, a los que habrá que dar valor antes de ejecutar la

consulta.

Por ejemplo filtramos los datos cuyo campo fecha sea mayor que un parámetro y

menor que otro parámetro. En los criterios de filtrado de Query, escribiremos los

campos sobre los que se aplicará el filtro y en las filas bajo el nombre de cada uno

de estos campos escribiremos el criterio, escribiendo entre corchetes el nombre del

parámetro.

Los nombres de los parámetros utilizados no pueden coincidir con el nombre

de ningún campo de la base de datos.

Cuando llegue el momento de actualizar la consulta, se nos preguntará por los

valores para los parámetros, empleando el nombre que hemos introducido entre

corchetes. En nuestro ejemplo, nos pedirá que introduzcamos los valores Desde y

Hasta.

Una vez en Excel, podemos establecer una serie de opciones relativas a los

parámetros. Para ello accederemos a través del menú contextual de la tabla, o bien

a través de la pestaña Definición de las propiedades de la conexión.

Page 174: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 174

Desde el formulario de definición de los parámetros de nuestra consulta

indicaremos a Excel, para cada uno de los parámetros, si queremos que se pregunte

al usuario por el valor de los mismos cada vez que se actualice, para lo cual

podremos escribir un texto personalizado que se mostrará al usuario para explicarle

lo mejor posible qué se le está pidiendo.

También podemos fijar el parámetro a un valor concreto, que se podrá modificar

posteriormente desde este mismo formulario.

Por último y más interesante, podemos tomar el valor del parámetro de una celda.

En este caso podemos indicar a Excel que actualice los datos cada vez que cambie

el valor de la celda.

En el cuadro de diálogo en que se pregunta al usuario por el parámetro, se puede

escribir directamente el valor, pero también cabe la posibilidad de indicar una

referencia a una celda. En este caso, es el usuario quien decide qué celda contiene

Page 175: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 175

el valor del parámetro y si quiere mantener esta asociación para las próximas

actualizaciones.

Lenguaje SQL

¿Es necesario estudiar este lenguaje para realizar consultas a bases de datos y, en

nuestro caso, para particularizar una consulta a un origen de datos externo? La

respuesta es NO.

Con los asistentes para realizar consultas que tienen muchas de las aplicaciones de

bases de datos, entre ellas Query, podemos crear consultas sin tener que programar

nada. Prácticamente con el ratón y escribiendo únicamente los criterios que deben

cumplir los campos, estos asistentes se ocupan de escribir los comandos SQL que

la base de datos entenderá para devolvernos los datos que queremos.

Teniendo en cuenta que con Query podemos enlazar con cualquier origen de datos

para el que tengamos el controlador ODBC instalado en nuestro ordenador, con

saber manejar un poco este programa podremos emplearlo como el intermediario

más sencillo para acceder a cualquier base de datos.

Claro, es tan sencillo que a veces no es capaz de representar gráficamente las

consultas que se salen de lo habitual y sólo permite introducir las consultas

directamente en SQL. Mediante Query tampoco podremos emplear parámetros en

las consultas que no pueda representar gráficamente.

En estos casos, podremos emplear el asistente para generar consultas de Access (o

cualquier otro programa gestor de bases de datos que conozcas), que es algo más

potente y permite realizar con la misma sencillez consultas más complicadas.

Copiaremos la sentencia SQL generada por Access y sustituiremos la sentencia

SQL de nuestra consulta, bien directamente en la ventana SQL de Query, bien en la

definición de la consulta, dentro del formulario de propiedades de la conexión

Page 176: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 176

(disponible desde la versión 2007), bien en el archivo de texto donde guardamos la

consulta original.

Sólo hay que tener algunas precauciones a la hora de utilizar código SQL de las

consultas Access en Query, ya que algunos caracteres deben cambiarse,

especialmente los comodines, puesto que estos programas utilizan diferentes

versiones del estándar ANSI para las consultas:

Query SQL Server Access

Delimitador texto ' ' "

Comodín texto % % *

Comodín un carácter _ _ ?

Exceptuar caracteres ^ o !

según origen

^ !

Parámetros ? [parámetro] [parámetro]

Modificar una consulta existente

Siempre es recomendable guardar un archivo con la definición de la consulta, por

si tenemos que reutilizarla más adelante o por si desde Excel no podemos

modificarla adecuadamente. Siempre será más cómodo reutilizarla desde el

archivo, retocando lo que haga falta, que tener que volver a crearla desde cero.

Guarda este archivo con un nombre que te permita identificar fácilmente qué datos

se obtienen con esa consulta. Nombres del tipo “consulta desde Access 1”,

“consulta desde Access 2” no son nada esclarecedores.

Si eliges guardar las contraseñas en el archivo de definición de la consulta,

ésta se almacena como texto sin cifrar, con lo que debes tener cuidado de

dónde guardas y cómo proteges estos archivos.

Page 177: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 177

Se trata de archivos de texto, por lo que puedes leerlos y editarlos fácilmente con

cualquier editor, aunque es recomendable que cuentes uno algo mejor que el bloc

de notas de Windows, sobre todo para poder ver los caracteres no imprimibles,

como espacios y tabulaciones. Si no conoces ninguno prueba con Crimson Editor

(www.crimsoneditor.com) o LopeEdit (www.lopesoft.com), ambos gratuitos.

Desde el archivo de la consulta podrás modificar fácilmente la ubicación de la base

de datos, podrás cambiar la sentencia SQL de la misma para incluir nuevos

campos. Podrás acceder a toda la información de la conexión sin intermediarios.

Eliminar la conexión con un origen de datos

Por supuesto, puede que alguna vez nos interese trabajar con una copia de los datos

en un momento concreto, que no vamos a querer actualizar nunca.

Para los archivos de texto y web, así como en versiones anteriores de Excel,

podemos romper el enlace que une la consulta con los datos originales

desactivando la opción Guardar definición de la consulta, dentro de las

propiedades del rango de datos externo.

Desde el cuadro de diálogo donde se muestran todas las conexiones a datos

externos podemos quitar las conexiones que no vayamos a utilizar. Los datos que

se encuentren en el libro procedentes de esa conexión permanecerán en el libro,

pero ya no se podrán actualizar, se habrán convertido en una copia de los datos.

Datos> Conexiones>Conexiones>Quitar

Page 178: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 178

Si los datos externos se encuentran en una tabla de nuestro libro, en la pestaña

“diseño”, dentro del grupo “Herramientas de tabla”, que aparece al situar la celda

activa sobre la tabla, hay una serie de funcionalidades relativas a los datos

externos, entre las que se encuentra la posibilidad de romper el vínculo con los

datos de origen.

Herramientas de tabla>Diseño>Datos externos de tabla>Desvincular

Page 179: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 179

Tablas dinámicas

Cuando tenemos pocos datos, o una cantidad moderada, que se pueda ver en una

pantalla o poco más, seguramente no tiene sentido hablar de resumir dichos datos

para poder obtener conclusiones de los mismos, porque de un vistazo podemos

estudiar los datos directamente, sin ayuda adicional.

Sin embargo, cuando los datos que estamos manejando empiezan a crecer, cada vez

es más incómodo y difícil leerlos uno a uno para poder extraer conclusiones,

llegará un punto en que nuestra cabeza no será capaz de analizar tanta información,

y es un punto al que se llega con gran facilidad.

Una de las herramientas más potentes y fáciles de utilizar que posee Excel a la hora

de resumir gran cantidad de datos es lo que se denomina tabla dinámica.

De las dos palabras que componen este nombre, el significado de “tabla” es el de

resumir nuestros datos, agruparlos y organizarlos ordenadamente en forma de tabla,

de manera que una persona pueda analizar cómodamente la información. El sentido

de la palabra “dinámica” es que no se trata de una representación o un resumen

inmóvil o estático, configurado la primera vez y sin posibilidad de ajustes

posteriores, como ocurre por ejemplo con la consolidación de datos, sino que se

puede modificar, reorganizar, mostrar u ocultar información a nuestro antojo,

cambiar la forma en que se agrupa y se ordena, sobre la marcha, según lo

necesitemos, empleando para ello tan solo el ratón.

Los datos no tienen por qué estar en la misma hoja de cálculo, de hecho ni siquiera

tiene que estar en una hoja de cálculo y pueden proceder de otro archivo o de una

base de datos externa. En el caso de datos externos procedentes de archivos de

texto o html, la tabla dinámica no puede leer directamente de ellos, así que habrá

que importar los datos a una hoja Excel y hacer que nuestra tabla dinámica tome

como origen los datos desde esa hoja.

Para las figuras que ilustran este apartado se han empleado como datos un listado

con información de facturas, cuyos campos son fecha de factura, fecha de pago,

importe, categoría y observaciones. A pesar de no tener demasiados campos podrás

ver claramente las ventajas que proporciona analizar la información con una tabla

dinámica.

Page 180: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 180

Creación

Al iniciar la creación se una tabla dinámica aparece un asistente para definir los

datos a emplear y la ubicación de la tabla.

Datos>Informe de tablas y gráficos dinámicos

Insertar>Tablas>Tabla dinámica

En este primer paso es donde indicamos el rango donde se encuentran nuestros

datos, siempre más claro si empleamos nombres. Podemos indicar que nuestros

datos proceden de una fuente externa, en cuyo caso se mostrará un cuadro de

diálogo para elegir la conexión a emplear de la existentes ya en el libro, o bien

crear una conexión nueva desde una consulta guardada.

Si los datos a partir de los que se alimenta la tabla dinámica están en Excel como

un rango convencional, al añadir nuevos datos hay que tener la precaución de que

la tabla dinámica considere estos nuevos registros a la hora de actualizarse. En el

caso de datos externos, esto no es problema, puesto que se tomarán todos los datos

resultado de la consulta. El problema puede surgir cuando los datos se introducen

manualmente en Excel y la tabla dinámica accede a los mismos mediante una

referencia a un rango, cuando los datos no están en una tabla, ni proceden de una

consulta de datos externos. Si introducimos datos insertando filas en medio del

rango, éste crece incluyendo los nuevos datos. Si los datos se introducen a

continuación de los datos existentes, una fila más abajo, hay que corregir el rango

Page 181: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 181

de origen de la tabla dinámica, o redefinir el nombre del rango para que incluya los

nuevos registros.

Si los datos se encuentran en Excel, es recomendable que crees una tabla con

ellos (ver página 137), que luego podrás resumir mediante una tabla dinámica.

Con esto evitarás problemas con la adición de nuevos datos.

En la versión 2007 se ha añadido un nuevo modo de disponer los datos en un lugar

o en otro de la tabla dinámica, mediante un croquis de la tabla que aparece en el

panel de tareas. En las versiones anteriores, los campos se cambian de posición

directamente sobre la propia tabla dinámica.

Podemos elegir entre diferentes modos de ver la lista de campos y las zonas donde

colocar los mismos, página, fila, columna, y resumen de valores.

Una vez que hemos indicado el origen de datos debemos elegir qué campos

queremos que aparezcan en los encabezados de filas y columnas y qué campos

queremos resumir en el cuerpo de la tabla dinámica. Para hacerlo basta con

arrastrar el campo deseado desde la lista de campos hasta el lugar de la tabla,

representado en el panel de tareas, donde queremos que aparezca. En el menú

contextual sobre el nombre del campo aparecen también opciones para agregarlo a

las diferentes partes de la tabla.

Page 182: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 182

Para aquellos que prefieran configurar la disposición de los campos directamente

sobre la tabla, existe la opción de que la tabla dinámica admita el funcionamiento

de versiones anteriores, en vez de con el panel de tareas.

Opciones de tabla dinámica>Mostrar>Diseño de tabla dinámica clásica

Esto requiere además que el diseño del informe sea tabular o en esquema, para que

cada campo se muestre en columnas diferentes. En modo compacto no podremos

arrastrar los campos directamente sobre la tabla.

Herramientas de tabla dinámica>Diseño>Diseño>Diseño de informe

Page 183: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 183

Si tenemos más de un campo para resumir en el cuerpo de la tabla, aparecerá un

nuevo rótulo, el campo “∑ Valores” (“Datos” en versiones anteriores), que

representa a los resúmenes de los campos. Cambiando la posición de este “campo”

estableceremos cómo van a aparecer los valores de resumen respecto de los rótulos

de filas y columnas. A continuación se muestran algunos ejemplos de la misma

información ordenada de maneras diferentes.

Page 184: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 184

Configurar los campos

Para cada campo podremos, a través de Configuración del campo, que aparece en

el menú contextual sobre el propio campo, establecer una serie de opciones como

el nombre que aparecerá en la tabla (también puede cambiarse en la tabla

directamente), el formato de número con que aparecerán los valores, o la función

empleada para resumirlo.

Page 185: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 185

Podemos definir cómo queremos ver ese resumen de datos eligiendo entre varias

opciones, como mostrar directamente el valor calculado con la función definida en

la pestaña Resumir por, o mostrar los valores como porcentajes de la fila (el total

de la fila es el 100% y para cada valor se muestra su contribución a ese total).

Podemos mostrar los valores como porcentaje, tomando como referencia los

valores de una determinada categoría marcada por otro campo, por ejemplo,

mostramos las sumas del importe de las facturas como porcentaje, tomando como

referencia (100%) las facturas del año 2006. En la configuración del campo

Page 186: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 186

“importe” elegimos mostrar valores como “% de”, en campo base seleccionamos

“Años” y en elemento base elegimos “2006”.

Es posible mostrar los valores como diferencias, en valor o porcentaje, respecto de

los valores que le indiquemos como referencia, que pueden ser los de una misma

categoría para todos, por ejemplo todos los datos respecto de los valores del año

2006, o pueden tomarse como referencia para una categoría los valores de la

categoría anterior o siguiente (anterior o siguiente según el orden en que tengamos

mostrados los valores). Por ejemplo, esto nos permitiría conocer lo que aumenta o

disminuye la facturación en cada año para cada categoría, respecto del año anterior.

Es también posible mostrar varias veces el mismo campo, pero empleando

diferentes formas de resumir los valores, por ejemplo para conseguir que aparezca

Page 187: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 187

el valor del importe total junto con el porcentaje de variación respecto del año

anterior.

Agrupar

La tabla dinámica permite agrupar automáticamente los datos por intervalos de

valores y también por fechas (años, meses, …), siempre que Excel reconozca que

un campo está formado exclusivamente por fechas. Para ello, en el menú

contextual que aparece sobre el campo que queramos agrupar, aparecen las

opciones de agrupar y desagrupar.

Según el tipo de dato de que se trate aparecerá uno de los siguientes cuadros de

diálogo:

Page 188: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 188

Para los datos que no se puedan agrupar automáticamente, siempre podemos

seleccionar a mano los elementos que queremos que formen parte de un grupo y

elegir en el menú contextual la opción agrupar, con lo que crearemos un nivel de

agrupación a la medida de nuestras necesidades, aunque con los inconvenientes de

todo proceso manual, puesto que cuando tengamos nuevos datos habrá que

agruparlos a mano.

Un problema presente hasta la versión 2003 inclusive a la hora de agrupar por

fechas, cuando los datos de origen estaban en un rango de Excel, es que todas las

celdas de ese campo debían contener una fecha, lo cual es lógico, pero no podían

estar en blanco, lo cual no es tan lógico. En este último caso, Excel no reconocía el

campo como fecha y no permitía la agrupación por periodos de tiempo.

Si la causa del problema consistía en que se había definido como rango de origen

para la tabla dinámica un área mayor que los datos que se tenían realmente, por

ejemplo para tener en cuenta la futura adición de nuevos registros, debía soslayarse

Page 189: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 189

esta limitación ajustando el rango origen de datos de la tabla dinámica exactamente

a las celdas con datos, sin incluir celdas vacías.

Si el origen del problema era que no conocíamos algunas fechas para los datos del

rango, no había nada que hacer salvo agrupar los datos a mano.

En la versión 2007 sí se reconoce como campo de fecha unos datos que, estando en

Excel, contienen sólo fechas aunque presenten alguna celda vacía entre medias y

permite, por tanto, la agrupación por periodos de tiempo.

Tras la agrupación aparece un nuevo campo con los grupos creados, disponible en

la tabla dinámica igual que cualquier otro campo, para emplearlo como etiqueta de

filas o de columnas, como filtro de informe, e incluso es posible resumirlo; lo

dicho, un campo más.

Sorprendentemente, los grupos de fechas no son fechas, por ejemplo al agrupar por

años, meses y días, todas los datos de fecha 1 de enero de 2007 se agruparían

primero en el año 2007 (número) y dentro de este año en el mes “ene” (texto) y

dentro de este mes en la fecha “01-ene” (texto). Debe tenerse especial precaución

con esto, fundamentalmente si tenemos campos calculados que operan con las

fechas, porque estarían operando con un texto.

Mostrar y ocultar detalles

Otra posibilidad interesante que ofrece una tabla dinámica es la de mostrar y

ocultar parte de la información, expandiendo o contrayendo un determinado grupo

o un campo completo. En el menú contextual sobre un campo o un valor de un

campo, aparecen las opciones de expandir y contraer.

Podemos hacer simplemente doble clic con el ratón sobre el elemento que

queramos expandir para que se muestren los datos. Si podemos expandir varios

campos, Excel mostrará un cuadro de diálogo preguntándonos qué información de

detalle queremos desplegar.

Page 190: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 190

Si tenemos varios niveles de agrupación en la tabla, en las opciones de la tabla

podemos elegir que se muestren o no unos botones (con los símbolos + y -) para

expandir y contraer la información.

Ocultar y mostrar parte de la información nos ayuda a centrar la atención sobre los

datos que nos interesan y queremos analizar.

Page 191: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 191

Al cambiar la disposición de la tabla dinámica, al expandir campos o al

incluir nueva información, la tabla cambiará de tamaño, así que comprueba

que no tengas nada escrito en la hoja que pueda ser sobrescrito por la tabla.

Si mostramos los detalles de un valor resumido del cuerpo de la tabla (desde el

menú contextual, o haciendo doble clic sobre el valor) se creará una nueva hoja con

los datos que han generado ese valor resumen.

Campos calculados

Menú contextual>Fórmulas>Campo calculado

Herramientas de tabla dinámica>Opciones>Herramientas>Fórmulas>Campo

calculado

Además de los campos originales de nuestros datos, podemos generar campos

nuevos calculados a partir de fórmulas que empleen como argumentos los campos

existentes. En nuestro ejemplo podemos definir un campo que calcule la diferencia

entre la fecha de pago y la fecha de la factura, para luego conocer cuál ha sido el

desfase medio en los pagos.

No emplees en campos calculados fechas que hayas agrupado.

Page 192: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 192

Ten precaución con la manera en que la tabla dinámica calcula los totales de los

campos calculados, porque no siempre lo que te parece obvio es lo que Excel va a

calcular.

Elementos calculados

Menú contextual>Fórmulas>Elemento calculado

Herramientas de tabla

dinámica>Opciones>Herramientas>Fórmulas>Elemento calculado

Dentro de un campo que se utilice como rótulo de fila o de columna, pueden

generarse elementos que operen con los valores correspondientes a ese rótulo. Por

ejemplo, en el caso de tener nuestros datos en diferentes categorías, podemos crear

un elemento calculado que proporcione resultado de dos categorías juntas.

Page 193: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 193

Los elementos calculados también se consideran a la hora de hallar los

totales. Presta atención para no considerar los datos dos veces, en el elemento

original y en el elemento calculado.

Puede darse la circunstancia de que varios elementos calculados deban aplicarse en

una misma celda, por ejemplo porque tenemos elementos calculados tanto en los

rótulos de filas como en los de columnas. En este caso se aplicará la última fórmula

que aparezca en la lista de Orden de resolución de elementos calculados. Desde

este cuadro de diálogo puedes establecer el orden en que estos cálculos se

realizarán, para que proporcionen el resultado que buscas.

Page 194: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 194

Filtro de informe

Otro concepto a tener claro es el de filtros de informe. Es como si tuviésemos una

dimensión adicional para organizar la información, aparte de las filas y columnas.

Este filtro de informe, también llamado página del informe, permite mostrar sólo la

información de los datos que cumplen el criterio del filtro. En la versión 2007 es

posible incluso filtrar por varios elementos simultáneamente.

En el ejemplo se han filtrado los datos para mostrar sólo aquellos que corresponden

al año 2006.

Page 195: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 195

Configuración de la tabla

Dentro de las opciones de configuración de la tabla dinámica, quiero destacar

algunos aspectos para ayudar a comprender mejor las posibilidades existentes.

La presentación del cuadro de diálogo con las propiedades de la tabla ha cambiado

en esta versión. Las más importantes de estas opciones ya aparecían en las

versiones anteriores, si bien amontonadas en una única pestaña.

En la pestaña de Diseño y formato podemos especificar qué valor mostrar en caso

de que se produzca un error al calcular los resúmenes. Si en nuestros datos tenemos

ceros, puede que al calcular los resúmenes como porcentajes respecto de los ceros

aparezcan errores de división por cero. Si en nuestros datos tenemos celdas con

errores, éstos se vendrán también a la tabla dinámica. Aquí podemos indicar que

los errores aparezcan como celdas en blanco o con un texto explicativo.

Análogamente, podemos indicar cómo mostrar las celdas vacías.

Page 196: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 196

En la pestaña Totales y filtros, podemos activar si queremos que se calculen totales

generales por filas y por columnas, aunque tal vez esté más claro al seleccionarlo

directamente desde la pestaña diseño, dentro del grupo de herramientas de tabla

dinámica.

En la pestaña Mostrar es donde se puede elegir si queremos que nuestra tabla

dinámica funcione con el método clásico, esto es arrastrando los campos sobre la

tabla directamente, en vez de sobre los cuadros del panel de tareas.

Page 197: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 197

En la pestaña Impresión estableceremos las opciones para repetir títulos y etiquetas

de filas en cada hoja impresa, para facilitar la lectura.

Por último, en la pestaña Datos disponemos de la posibilidad de guardar los datos

de origen con el libro o no hacerlo. Almacenar los datos con la tabla dinámica hace

que nuestro archivo aumente de tamaño de manera considerable, claro que el

Page 198: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 198

tamaño no es el único factor a tener en cuenta, pues dependerá también de las

dificultades que podamos tener a la hora de volver a conectar con los datos para

actualizarlos, por la conexión, por la velocidad, por la disponibilidad o por

cualquier otro motivo.

Si prevés que no vas a tener problemas para actualizar los datos desde el

lugar donde se encuentren, es recomendable no almacenar los datos de la

consulta con la tabla dinámica, para no aumentar el tamaño de archivo de tu

libro inútilmente.

Varias tablas dinámicas con los mismos datos

Es muy frecuente tener que realizar varios resúmenes diferentes de los mismos

datos. La tabla dinámica almacena la conexión con los datos, así como las

combinaciones de los datos, los campos y elementos calculados, la agrupación de

los campos, etc.

Si cada vez que necesites hacer un resumen creas una nueva tabla dinámica desde

el principio, aparte de que se consuman más recursos del ordenador, repetirás los

mismos pasos innecesariamente, volviendo a definir lo que ya tenías definido.

Además, cuando quieras actualizar los datos, tendrás que ir por cada una de tus

tablas dinámicas para actualizarlas, con lo que el ordenador también repetirá la

acción de tener que leer los datos.

A partir de una misma tabla dinámica, podemos mostrar la información resumida

de diferentes maneras en varios lugares del libro.

Page 199: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 199

Es posible copiar toda la tabla y pegarla en otro lugar del libro. Es posible copiar la

hoja entera. En estos casos tendremos varios resúmenes, pero que se alimentan de

una única tabla dinámica, por lo que no se ocupa memoria innecesariamente, y

cuando se cargan los datos para actualizar la información, se actualizan todos los

resúmenes a la vez.

Gráfico dinámico

La misma información que se muestra numéricamente como un resumen de tabla

dinámica, puede representarse mediante un gráfico “dinámico”. Podremos elegir

qué campo utilizar como eje de categorías, como serie, como valor. El modo de

hacerlo es similar a como se hace con un informe de tabla dinámica.

Dependiendo del tipo de gráfico será posible representar con más o menos éxito, de

una forma más o menos clarificadora, el resumen de los datos.

Page 200: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 200

Análisis “y si…”

Supón que ya hemos elaborado un modelo sofisticadísimo para resolver cierto

problema, entonces llegará alguien y nos preguntará ¿y si aquí en vez de un 2 fuese

un 3, qué resultado obtienes?¿y si pones un 4? No, me gustaba más el 3. Hazme

una comparativa con esos valores para tomar una decisión.

Seguramente te has visto más de una vez en esta situación.

A falta de otro nombre mejor, a este estudio para ver cómo varían nuestros

resultados cuando asignamos diferentes valores a los datos de partida se le llama

análisis “Y si”, aunque a mí me suena mejor con algo más de suspense: “y si…”

No estoy pensando en una simple fórmula, aunque también puede estudiarse de la

misma manera, estoy pensando en un modelo que puede ser tan complicado como

queramos. Nuestro modelo puede ser los Presupuestos Generales de Estado, en

función del precio del barril de crudo y del cambio Euro-Dólar, por poner un

ejemplo.

Para evitar tener que repetir la hoja donde están nuestros cálculos una y otra vez

cambiando únicamente unos pocos parámetros, Excel incorpora unas herramientas

que recalculan el modelo completo asignando los valores que le indiquemos a los

parámetros, y mostrando en forma resumida los resultados para las diferentes

situaciones calculadas.

Para el caso en que queramos estudiar cómo varían múltiples resultados en función

de un único parámetro, y para el caso de estudiar cómo varía un único resultado en

función de dos parámetros, Excel ofrece las tablas de una y dos variables

respectivamente.

Para el caso en que queramos estudiar cómo varían diferentes resultados

modificando varios parámetros, Excel permite almacenar cada combinación de los

parámetros como un escenario, pudiendo generar de forma sencilla un informe

resumen de los escenarios creados.

Page 201: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 201

Tablas de 1 y 2 variables

Datos>Tabla

Datos>Herramientas de datos>Análisis y si>Tablas de datos

Cuando queremos calcular una función cuyo valor sólo depende de una o dos

variables, Excel nos ofrece la posibilidad de representar en una tabla el resultado de

dicha función para diferentes valores de los parámetros.

Para el caso en que tengamos dos variables, en la esquina superior izquierda del

rango que ocupará la tabla de datos pondremos la fórmula que queremos calcular;

en la fila superior, a la derecha de esta celda, los valores que queremos que adopte

uno de los parámetros, mientras que la columna de la izquierda, debajo de la

fórmula, contendrá los valores del segundo parámetro.

Si el resultado que buscamos no es una fórmula que se calcula en una celda, sino

que es el final de un proceso más elaborado, que recorre diferentes celdas, con

diferentes fórmulas, lo que se puede poner en esta esquina superior izquierda es

una referencia a la celda que contiene el resultado final del cálculo.

En el siguiente ejemplo calcularemos el área de un grupo de barras de acero en

función de su diámetro y del número de barras. Crearemos una tabla de datos

donde se calcularán las áreas para diferentes diámetros (en la fila superior) y

diferente número de barras (en la columna izquierda).

Antes de ejecutar esta instrucción debemos seleccionar el rango que ocupará la

tabla, incluidas la fila y columna donde están la fórmula y los valores para los que

queremos evaluarla. A continuación ejecutamos el comando tabla de datos y

aparecerá un cuadro de diálogo para que le indiquemos qué celda del modelo es la

que se sustituirá por los valores que hemos dispuesto en la fila superior de la tabla,

y qué celda del modelo se sustituirá por los valores que hemos escrito en la primera

columna de la tabla de datos. Como tantas otras veces, los nombres aclaran la

lectura de las referencias.

Page 202: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 202

Sólo una precaución: las celdas que indiquemos como parámetro de entrada

de fila y columna deben estar en la misma hoja donde vamos a crear la tabla

de datos.

Al pulsar el botón aceptar, el área que habíamos seleccionado se rellenará con los

valores que adopta la fórmula para las combinaciones de los parámetros de filas y

columnas.

Para dar un aspecto más pulcro, puedes ocultar la fórmula de la esquina

dando a la fuente el mismo color que el relleno de la celda.

Page 203: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 203

La tabla de datos obtenida es una matriz, por tanto no pueden modificarse las

celdas independientemente. Esta matriz incluye únicamente los resultados, pero no

la fórmula ni los valores de los parámetros.

Si después de creada la tabla modificamos los valores de los parámetros, la tabla se

recalculará para estos nuevos valores.

Para el caso de funciones de una sola variable, el proceso de generación de una

tabla de datos es similar al caso anterior de dos variables, pero como ahora sólo

utilizamos un parámetro nos queda la otra dimensión de la tabla libre, que puede

emplearse para representar el resultado de más de una función simultáneamente, si

bien todas ellas han de depender de la misma variable.

En el siguiente ejemplo se muestran diferentes fórmulas calculadas a partir del

radio de un círculo, creándose una tabla de datos de una variable, en este caso el

radio, que calculará las fórmulas para diferentes valores del mismo anotados en la

fila superior.

Seleccionaremos el área que contiene las fórmulas y los valores del parámetro con

el que se calcularán. En este caso la esquina superior izquierda no se utiliza.

Page 204: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 204

Es posible también poner las funciones en la fila superior y los valores del

parámetro en la columna izquierda. En este caso, en el cuadro de diálogo para crear

la tabla, habría que indicar que nuestra celda de entrada para el parámetro se

encuentra en la columna.

Escenarios

Herramientas>Escenarios

Datos>Herramientas de datos>Análisis Y si>Administrador de escenarios

Cuando necesitamos estudiar cómo varía nuestra hoja al modificar varios

parámetros; cuando tenemos que realizar hojas de cálculos repetitivos, que se

diferencian entre sí únicamente en que varían unos cuantos valores; estamos

hablando de escenarios.

Podemos definir multitud de escenarios para una hoja de cálculo. Excel almacena

en el escenario los valores de las celdas que definamos como cambiantes, no

almacena toda la hoja. Al mostrar un escenario, Excel aplicará los valores

guardados a las celdas para las que se definió el escenario, el resto de celdas que no

forman parte del escenario continuarán con los mismos valores que tuviesen antes

de mostrar dicho escenario.

Al final del proceso de definición tendremos varios escenarios que representarán

diferentes valores de los datos de entrada. Aparte de poder activar cada uno de los

escenarios almacenados para mostrarlo en la hoja, lo que resulta realmente útil es la

posibilidad de generar un resumen de los mismos de forma automática, de manera

que seamos capaces de ver agrupados qué valores de los datos de partida se han

considerado en cada escenario y qué valores adoptan en cada caso las celdas de

resultados que nos interesan.

Desde el formulario de definición de un escenario nuevo, indicaremos un nombre

para el mismo. Indicaremos qué celdas se almacenarán en el escenario. Podemos

Page 205: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 205

también agregar una descripción para aclarar o explicar qué representa esa

combinación de valores.

Para emplear escenarios y que luego no resulte un jeroglífico descifrar la

comparación entre ellos es prioritario asignar nombres a las celdas

cambiantes y a las celdas de resultados que se desea incluir en un resumen de

escenarios.

Resulta fundamental asignar nombres tanto a las celdas de datos de origen como a

las celdas de resultados, no por capricho, sino para poder entender el resumen de

los escenarios o el propio escenario en el formulario de administración. No es lo

mismo ver una referencia a una celda del tipo $B$17, que ver un nombre

descriptivo de la información que contiene esa celda.

A continuación se muestra un segundo formulario donde asignaremos valores a las

celdas cambiantes.

Page 206: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 206

Podemos ir creando escenarios similares, con las mismas celdas cambiantes. Si

desde el formulario para asignar valores pulsamos “agregar”, volveremos al

formulario de creación de escenario para definir el nombre y las observaciones del

nuevo escenario, y desde ahí otra vez asignaremos valores, y así sucesivamente

hasta que hayamos definido todos los casos que nos interesen.

Como habrás comprobado, el proceso de creación de escenarios es manual, puesto

que está concebido para estudiar combinaciones puntuales de los datos de partida,

es decir, que no podemos indicarle a Excel que un primer parámetro puede adoptar

3 valores, un segundo parámetro puede adoptar 5 valores diferentes y un tercer

parámetro 8 valores diferentes, para que se creen automáticamente los escenarios

de las 120 combinaciones posibles. Este proceso, si se quiere hacer

automáticamente, debería realizarse mediante una macro. En el capítulo dedicado a

la programación de macros se incluye un ejemplo para crear escenarios de manera

automática (ver página 292).

Si tenemos libros similares con escenarios definidos, mediante el botón Combinar

del administrador de escenarios, podemos traer a nuestra hoja los escenarios

definidos en otra hoja del mismo libro, o de otro libro que tengamos abierto.

No todos los escenarios almacenados en una hoja tienen por qué tener las mismas

celdas cambiantes. Podemos tener escenarios diferentes para diferentes fines. A la

hora de resumirlos, hay que tener cuidado, pues el resumen considera todos los

escenarios definidos en la hoja. Si sólo queremos resumir una selección de ellos,

podemos utilizar una hoja auxiliar, vacía, para almacenar todos los escenarios de la

hoja mediante la opción Combinar (te recuerdo que un escenario sólo es unas

celdas con sus valores), luego eliminaremos de la hoja que contiene el modelo

aquellos escenarios que no queramos incluir en el resumen. Posteriormente,

podremos recuperar los escenarios desde la hoja auxiliar.

Page 207: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 207

Los escenarios almacenan el valor de las celdas cambiantes como texto, así

que ten cuidado si trabajas con escenarios creados en un ordenador que

emplea un separador decimal distinto, porque puede que lo que aparentemente

son números sean considerado por Excel como textos.

Mediante el botón “mostrar” del administrador de escenarios, se aplican en la hoja

los valores guardados en el escenario seleccionado, mostrándose entonces la hoja

particularizada para los datos de dicho escenario, para verlo o para imprimirlo. En

la página 283 se incluye un ejemplo de macro para imprimir todos los escenarios

de una hoja.

Una vez definidos los escenarios tienes la mitad del trabajo hecho. Ahora falta la

parte más interesante, en la que Excel resume la información de los diferentes

escenarios, bien generando un resumen en una nueva hoja, bien mediante una tabla

dinámica.

Para resumir los escenarios, habrá que indicar qué celdas contienen los resultados

que queremos reflejar en el resumen, y el tipo de informe a generar.

Las celdas de resultados deben estar en la misma hoja donde se han definido

los escenarios, aunque en los cálculos realizados entre medias haya

referencias a otras hojas.

Page 208: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 208

Para cualquiera de los tipos de informe, se insertará una nueva hoja en el libro, con

la información del resumen de los escenarios.

En las siguientes figuras se muestra un detalle de los rótulos de un resumen de

escenarios sin haber empleado nombres en las celdas y en el caso de haberlos

utilizado. Espero haber despejado cualquier duda.

¿Por qué el resumen de escenarios está con los datos en columnas, en vez de en

filas? El resumen resulta más ancho que largo, que es como se debieron quedar

quienes programaron esto, con lo que en cuanto tenemos unos pocos escenarios ya

empieza a no leerse cómodamente. Aparte de que, en las versiones anteriores de

Excel, esto supone además que no pueden resumirse más de 253 escenarios, porque

no caben en la hoja.

Si tienes muchos escenarios, muchos parámetros, o quieres reorganizar la forma de

resumir los escenarios, pensarás que decantándote por un resumen de tipo informe

de tabla dinámica lo tendrás resuelto. Pues no. La tabla dinámica resumen de

escenario no permite agrupar los resultados por los datos de partida, ya que no los

Page 209: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 209

incluye en la tabla dinámica, solamente aparece el nombre del escenario y los

resultados.

Sería realmente útil que incluyese, como campos de la tabla dinámica, las celdas

cambiantes de los escenarios para poder agrupar los resultados por sus valores. A

ver si para la próxima versión de Excel hay suerte.

Bueno, si lo que necesitas es resumir con una tabla dinámica según los datos de

partida, en unos pocos pasos puedes solucionarlo. Primero genera un resumen

convencional, luego copia este resumen y pégalo transpuesto en otra hoja para que

los datos estén en filas y no en columnas, elimina las columnas en blanco y

resúmelo con una tabla dinámica. Ahora sí puedes agrupar los resultados según los

datos de origen.

Te sugiero que desactives en la tabla dinámica los totales generales así como los

subtotales de filas y columnas. Presta también atención a la función empleada para

resumir la información, porque la suma no siempre es lo más conveniente.

Page 210: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 210

Resolver problemas

Cálculos iterativos

Herramientas>Opciones>Calcular

Botón Office>Opciones de Excel>Fórmulas>Opciones de cálculo

Normalmente, las hojas de cálculo que creamos son capaces de resolver las

funciones en un solo paso de cálculo, pero en ocasiones esto no es suficiente para

solucionar nuestro problema, por ejemplo porque el resultado de una celda se

emplea para calcularse a sí misma.

El programa, de hecho, avisa de que se ha producido un error de referencia

circular, entendiendo que lo más probable es que te hayas equivocado a la hora de

introducir las fórmulas, pero ¿qué ocurre si necesitamos calcular una fórmula de

manera iterativa, esto es, calculándola varias veces hasta alcanzar la solución?

En primer lugar, debemos activar para nuestra hoja la opción de cálculo iterativo,

indicando al programa las condiciones para detener el proceso y no estar

indefinidamente calculando. Estas condiciones son el número máximo de

iteraciones y la tolerancia de la solución, lo que llama cambio máximo.

Si la diferencia entre una pasada del cálculo y la anterior es inferior al valor del

cambio máximo especificado, el cálculo se detendrá. Si se alcanza el número

máximo de iteraciones, el cálculo también se detiene con el valor de la última

iteración.

Dependiendo del caso, de lo que varíen los valores en cada iteración y de lo lejos

que nos encontremos de la solución, el número necesario de iteraciones para llegar

a la solución será diferente.

Del mismo modo, el valor del cambio máximo especificado deberá estar en

consonancia con el orden de magnitud de los valores con que estemos operando. Te

recuerdo que Excel opera con números que tienen quince cifras, así que no será

capaz de encontrar una solución del orden de 1020

con un cambio máximo de 10-4

,

porque tenemos 24 dígitos entre uno y otro.

No tomes los valores por defecto del programa como inamovibles. Puede que

no sean válidos para tu caso.

Page 211: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 211

Para ilustrar esto con un ejemplo, supongamos que queremos calcular la media de

unos datos, pero descartando los valores más bajos, fijando el criterio de considerar

como no válidos los datos inferiores al 70% de la media.

El proceso iterativo consistiría en calcular la media de todos los valores, calcular el

70% de esa media para fijar el límite de validez. En un segundo paso volvemos a

calcular la media, pero sólo de los valores iguales o superiores a límite anterior.

Calculamos el 70% de esta segunda media para fijar el nuevo límite, y así

sucesivamente hasta que en alguno de estos pasos todos los valores quedasen ya

por encima del límite inferior.

La fórmula a poner en la celda donde calcularemos la media de los valores válidos

sería de la siguiente manera:

=PROMEDIO.SI(Datos;”>=” & 0.7*estamismacelda)

Donde he llamado “estamismacelda” a la celda donde se escribe esta fórmula, es

decir, la fórmula se hace referencia a sí misma, que es lo que fuerza a realizar el

cálculo iterativo.

La referencia a la celda no tiene que estar necesariamente en la misma celda, puede

generarse una referencia circular si desde una celda nos referimos a otras que a su

vez vuelven a referirse a la primera.

Si el proceso iterativo no converge, Excel para de calcular tras haber

completado el numero máximo de iteraciones que hayas especificado en las

opciones del programa. Es decir, que aunque Excel termine de calcular, no

significa que haya llegado a una solución. No está de más volver a calcular

[F9] para asegurarte de que con más iteraciones no varían los resultados.

Page 212: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 212

Buscar Objetivo

Herramientas>Buscar objetivo

Datos>Herramientas de datos>Análisis Y si>Buscar Objetivo

Excel no resuelve algebraicamente ecuaciones, pero ofrece una utilidad para

resolverlas numéricamente, que permite obtener una de las posibles soluciones (si

es que hay más de una) de un modelo con una incógnita.

Busca el objetivo de un modelo, no sólo de una ecuación, porque resuelve la hoja

de cálculo variando el valor de una celda, hasta conseguir que otra celda adopte un

valor que nosotros fijamos. Entre medias de estas celdas se pueden realizar todas

las operaciones que queramos, desde una simple función hasta el modelo de

cálculo más sofisticado que puedas imaginar, recordando que resuelve el sistema

en función de una única variable.

No entiendo muy bien la traducción que han hecho de este formulario, que siempre

me hace dudar sobre dónde poner la incógnita y dónde la celda con el valor que

quiero alcanzar. Creo que lo que me despista es Para cambiar la celda, si lo

hubiesen traducido al español por algo así como Cambiando la celda, quedaría

mucho más claro.

Para obtener el resultado, Excel comienza la iteración por el valor que la celda

tiene actualmente. Si hay más de una solución, Excel encontrará la más próxima a

este valor inicial de la celda. Para encontrar las otras soluciones, habrá que

proporcionar a Excel otros valores iniciales más cercanos a la solución buscada.

Vamos a plantear un ejemplo con la función parabólica y = x²-1, para la que

conocemos analíticamente los valores en los que se anula: +1 y -1.

Page 213: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 213

Partiremos, para buscar objetivo, de un valor en la celda x igual a 2.

Como en tantas otras ocasiones, poner nombres a las celdas facilita la comprensión,

porque si hemos llamado “x” a la variable, e “y” al resultado de la función, todo

queda mucho más claro: queremos calcular la “x” que hace que la función “y” se

anule.

La búsqueda de objetivo encuentra una solución, la más próxima al valor de partida

que teníamos para x. Ha encontrado la solución +1, y Excel considera que ha

alcanzado una solución cuando se cumplen los criterios de convergencia para el

cálculo iterativo (ver página 210).

Page 214: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 214

Si hubiésemos partido de un valor inicial de x igual a -2, la búsqueda de objetivo

habría localizado la solución x = -1.

¿Qué ocurre cuando la búsqueda de objetivo no encuentra una solución tras realizar

el número máximo de iteraciones establecido en la configuración del programa?

Pues aparece otro mensaje confuso: la búsqueda “puede no haber encontrado” una

solución; que no es lo mismo que: la búsqueda “no puede encontrar” una solución,

aunque esto último se parece más a la realidad de lo ocurrido.

Page 215: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 215

Esto puede deberse a varios motivos. El primero es que no exista una solución.

Pero puede que sí exista y no se alcance con los criterios de convergencia

establecidos, bien porque el número de pasos a dar debe ser mayor, bien porque el

orden de magnitud de la solución es desproporcionado respecto del valor fijado en

el “cambio máximo” en las opciones para cálculos iterativos.

Por cierto ¿cómo sé cuántas soluciones tiene mi problema? La respuesta a esa

pregunta no la proporciona Excel.

Solver

Bastante más sofisticado que “Buscar Objetivo”, el complemento llamado Solver,

que no se carga por defecto al iniciar el programa (ver página 35) permite fijar

como objetivo un valor para una celda, o bien maximizar o minimizar dicha celda,

modificando simultáneamente varias celdas de las que dependa su valor y

cumpliendo asimismo una serie de restricciones establecidas en otras celdas.

Al igual que Buscar Objetivo, Solver sólo encuentra una solución, la más

próxima a los valores iniciales de las celdas.

Page 216: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 216

Partiendo de la hoja donde tenemos nuestro modelo, al ejecutar el comando Solver,

aparece un formulario donde hemos de introducir, en primer lugar, nuestra celda

objetivo, y cuál es ese objetivo.

Para continuar definiendo el problema, indicaremos cuales son las celdas

cambiantes, las que se modificarán para buscar una solución. El botón Estimar

propone automáticamente como celdas cambiantes todas aquellas de las que

depende la celda objetivo.

En la parte inferior de este formulario es donde se muestran las restricciones

definidas para el problema, con unos botones para agregar nuevas restricciones o

editar las existentes.

En la definición de la restricción indicaremos la celda o rango sobre la que se

aplicará la restricción, un operador (menor o igual, mayor o igual, igual) y el valor

Page 217: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 217

o la referencia a la celda con que se comparará. Aparte de estos operadores, se

dispone de dos opciones más: int, de integer, para indicar que el valor será un

número entero y bin, de binario, para indicar que el valor será cero o uno.

Una misma celda puede estar afectada por varias restricciones.

Desde la ventana de definición de los parámetros de Solver, se puede acceder a las

opciones de configuración del cálculo, mediante el botón Opciones.

En primer lugar se fijan los criterios de duración máxima del cálculo, en tiempo y

número de iteraciones. Transcurrido cualquiera de ellos, si no se ha alcanzado una

solución, se detiene el cálculo para preguntar si continúa calculando o se da por

terminado el proceso.

Los criterios de convergencia se establecen indicando una precisión para las

restricciones, una tolerancia alrededor de la solución y un valor para la

convergencia entre iteraciones sucesivas.

Cuanto más cerca se encuentren los valores de partida de las celdas

cambiantes del resultado final, menor será el tiempo de cálculo necesario

hasta alcanzar la solución.

Page 218: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 218

Con la opción de Adoptar modelo lineal facilitaremos la resolución en aquellos

casos en que todas las relaciones entre las celdas sean lineales.

Mediante Asumir no negativos obligaremos a que las celdas cambiantes no sean

inferiores a cero, salvo para aquellas celdas en que se haya definido una restricción

específica fijando un límite inferior.

Activando Usar escala automática, se ajustan los órdenes de magnitud de los

valores de celdas cambiantes y objetivo.

Con la opción Mostrar resultado de iteraciones, cada vez que Solver encuentre una

solución, que puede no ser la buena, se muestran los resultados y se permite

guardar un escenario antes de continuar calculando en busca de más soluciones.

En los grupos de opciones de la parte inferior se establece el modo en que se

resolverá numéricamente el problema: en primer lugar se elige cómo se estimará el

valor del objetivo a partir de los valores actuales de las celdas cambiantes; se puede

elegir también el método utilizado para calcular las derivadas alrededor del

objetivo y de las celdas cambiantes; por último es posible indicar el método

numérico utilizado para hallar la solución.

Si vas a realizar varios tanteos o varias pruebas, puedes guardar modelos de

simulaciones de Solver para luego volver a utilizarlos más adelante, utilizando los

botones Guardar modelo y Cargar modelo situados en la parte derecha de este

formulario de opciones de Solver. Un modelo se guarda en celdas de la propia hoja,

y sólo almacena la celda objetivo, el valor de dicho objetivo y las restricciones. No

se guardan los resultados de la simulación sino la definición de la misma para

poder volver a calcularla.

Una vez completado el cálculo y obtenida la solución, se nos pregunta si queremos

mantener en las celdas cambiantes los valores obtenidos por Solver o si queremos

volver a los valores iniciales. Podemos también, desde este último cuadro de

diálogo, guardar un escenario con los valores de la celdas cambiantes, para su

utilización posterior.

Otro de los aspectos interesantes es la posibilidad de generar Informes de los

resultados obtenidos. Estos informes, para los que se crean hojas nuevas en el libro,

son de tres tipos: informe de respuestas, donde se incluye la descripción del

objetivo, de las celdas cambiantes y del cumplimiento de las restricciones; informe

de sensibilidad, donde se indica la pendiente del modelo respecto de cada celda

cambiante en el punto correspondiente a la solución obtenida (si fuese una función

Page 219: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 219

se llamaría derivada parcial, como no es una función, se llama gradiente reducido);

por último, en el informe de límites, cuando se han definido límites para las celdas

cambiantes, tanto mediante restricciones como asumiendo valores no negativos en

las opciones de Solver, se muestran los valores inferior y superior de cada celda

cambiante y el valor del objetivo en cada caso.

Si no hay definida ninguna restricción para las celdas cambiantes, en el

informe de límites aparecerán errores #N/A

Si logras reducir tu problema a un único valor, podrás utilizar Solver para

resolverlo. Ahora tu preocupación será convertir el problema para expresarlo en

una sola celda. En el caso de dinero, está claro, maximizar los beneficios o

minimizar los gastos. En el caso de un almacén, minimizar las cantidades

Page 220: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 220

almacenadas. En el caso de estar planificando unos trabajos con prisas,

minimizarás el tiempo total de ejecución. En el caso de proyectar una intervención

en un Parque Natural, minimizarás el impacto ambiental. En el caso del diseño de

un plan de evacuación de emergencia, maximizarás el número de personas

rescatadas con vida. En tu caso …

Por ejemplo, empleando Solver podemos ajustar una curva a una muestra de datos

por el método de los mínimos cuadrados, para ello nuestras celdas cambiantes

serán los coeficientes que definen la curva de ajuste, mientras que nuestro objetivo

será minimizar la suma de los cuadrados de las diferencias entre los valores reales

de la muestra de datos y los valores calculados con la curva ajustada, es decir,

minimizar la siguiente función {=SUMA((Ycalculada-Ydatos)^2)}, donde

Ycalculada e Ydatos son los nombres que he asignado al rango con los valores

calculados mediante la función de ajuste y al rango que contiene los datos

originales, respectivamente.

Solver no se inventa los modelos, simplemente resuelve el modelo que hayas

creado previamente, que no es poco. Tú defines el problema, Solver lo

resuelve.

Si quieres ver varios ejemplos de utilización de Solver, consulta el libro de

ejemplos llamado Solvsamp, que se incluye con la instalación de Office.

C:\Archivos de programa\Microsoft Office\Officexx\SAMPLES\

Page 221: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 221

Facilitando el trabajo a los demás

Controles de formulario en tus hojas

Barra de herramientas Formularios/Barra herramientas Visual Basic>Cuadro de controles

Programador>Controles>Insertar

Pensando en facilitar el trabajo a los que lleguen después para utilizar las hojas que

estás haciendo, el empleo de controles en la hoja puede simplificar el uso de la

misma. Además, puedes evitar la introducción de datos erróneos, permitiendo

elegir los valores de listas, o permitiendo cambiar los valores mediante barras

deslizantes empleando el ratón, en vez de tecleando.

La utilización de controles en la hoja evita tener que crear y programar formularios

en Visual Basic para Aplicaciones, siendo más que suficiente para la mayor parte

de los casos.

Los controles de formulario son objetos propios de Excel, se manipulan como otros

objetos que insertamos en la hoja, como una forma o una imagen, pero en la

configuración del formato del control, a la que se accede desde el menú contextual,

entre otras propiedades como el tamaño o el color de relleno, tenemos una pestaña

denominada Control con propiedades específicas para cada tipo de control y desde

donde podremos vincular su valor con el de una celda, o indicar el intervalo de

valores válidos para el mismo.

Page 222: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 222

Con un control de número, o de barra de desplazamiento, aumenta o disminuye el

valor de la celda asociada al pulsar las flechas hacia arriba o abajo. Mediante

casillas de verificación puedes asignar valores verdadero o falso a la celda

asociada, según esté o no activada.

Disponemos también de listas y cuadros combinados para elegir entre una serie de

valores, sin tener que escribirlos.

Mediante los botones de opción, de los que sólo puede estar activado uno,

elegiremos el valor de la celda asociada, que será el número de orden del botón

seleccionado.

La vinculación con una celda es bidireccional, es decir, si cambia el valor del

control, cambia el valor de la celda, pero si cambias el valor de la celda, también el

control refleja ese cambio.

Por supuesto, puedes poner botones en la hoja que ejecuten una macro, con lo que

el usuario no tendrá que saber cómo se llama la macro que debe ejecutar,

simplemente apretará un botón. Para este caso, directamente desde el menú

contextual del botón podemos asignar una macro para que se ejecute al pulsarlo.

Page 223: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 223

Para poder seleccionar y modificar un control, debe estar activo el modo

diseño.

Frente a los controles de formulario de Excel, existe otro tipo de controles que

podemos utilizar en las hojas, denominados ActiveX. Los controles ActiveX se

basan en la idea de que son independientes del programa que los utilice o del

lenguaje en que fueron programados. Están instalados en el equipo y cualquier

programa compatible con ActiveX puede utilizarlos y acceder a las propiedades

para configurarlos.

Al insertar un control ActiveX, las propiedades no se muestran en el formulario de

formato del objeto, sino que debemos activar la ventana propiedades, donde se

muestran las propiedades para el objeto seleccionado.

Barra herramientas Visual Basic>Cuadro de controles>Propiedades

Programador>Controles>Propiedades

Desde este cuadro de propiedades podemos ajustar la posición, el tamaño, la celda

vinculada, si se imprimirá o no, etc., aquí están todas las propiedades del objeto.

Page 224: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 224

Estos controles tienen asociados una serie de eventos, como hacer doble clic con el

ratón, para los que se pueden programar procedimientos, por ejemplo para ejecutar

una macro al hacer clic. El código asociado a estos controles estará en la hoja que

los contiene.

Aparte de los controles ActiveX que se muestran por defecto, podemos

acceder a la lista completa de controles instalados en el equipo para emplear el que

necesitemos en nuestro libro.

Los controles de formulario de Excel siempre estarán disponibles en un equipo

donde esté Excel instalado. Si utilizas controles ActiveX diferentes de los

proporcionados por Excel, tendrás que asegurarte de que en los equipos donde

vayan a utilizar el libro también los tengan instalados.

Proteger el libro

Cuando creas modelos en tus libros para que los utilicen otras personas, en algunas

ocasiones puede ser interesante impedir que los futuros usuarios alteren ciertas

partes “delicadas” del libro, especialmente en los casos en que solamente tienen

que particularizar algunos datos y, al calcularse el libro, todo lo demás se hace

automáticamente.

Dentro del formato de las celdas, tenemos una pestaña con opciones para proteger

las celdas. Aquí estableceremos si la celda estará bloqueada para impedir que

modifiquen su contenido o si se ocultará el contenido, en el caso de que sea una

fórmula, para que no sea visible en la barra de fórmulas y sólo veamos el resultado

de la misma.

Esta configuración de protección de las celdas se activará al proteger la hoja.

Mientras la hoja no esté protegida se podrá editar cualquier celda.

Page 225: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 225

Al pegar formato, también se pegan las opciones de protección de las celdas

copiadas.

Herramientas>Proteger>Proteger hoja

Revisar>Cambios>Proteger hoja

Al proteger la hoja aparece una lista de opciones que podemos permitir a los

usuarios (dependiendo de la versión habrá más o menos posibilidades disponibles).

Desde poder seleccionar las cedas bloqueadas, hasta permitir modificar, o no, los

escenarios existentes.

En caso necesario estableceremos una contraseña para poder desbloquear la hoja y

realizar nuevos cambios. Tal vez en la mayoría de los casos no sea necesaria una

contraseña, puesto que la simple protección impide la mayor parte de los errores

accidentales, que consisten en toquetear las cosas sin querer o sin darse cuenta.

Si sólo permitimos seleccionar las celdas desbloqueadas, al pulsar [Intro] o

[Tabulación] o desplazarnos con las flechas de dirección, la celda activa

pasará a ser la siguiente celda desbloqueada disponible en esa dirección.

Page 226: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 226

Herramientas>Proteger>Proteger libro

Revisión>Cambios>Proteger libro>Proteger estructura y ventanas

La protección de la estructura impide al usuario eliminar, mover o cambiar de

posición las hojas y por consiguiente impiden cualquier acción que genere hojas

nuevas, como resumir escenarios, mostrar datos de detalles de una tabla dinámica,

etc.. Tampoco se podrán grabar nuevas macros en un libro con estructura

protegida.

La protección de las ventanas del libro impedirá a los usuarios abrir o cerrar las

ventanas del libro, así como moverlas o cambiarlas de tamaño. Sí se puede, en

cambio, mostrar y ocultar las ventanas existentes.

Guardar como>Herramientas>Opciones generales

Respecto de la protección del archivo, en las opciones generales para el libro, a las

que se accede desde el cuadro de diálogo guardar como podremos establecer una

contraseña de apertura del libro y otra contraseña diferente para permitir la

escritura una vez el libro esté abierto. Puede establecerse cada una de estas

contraseñas independientemente de la otra.

Page 227: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 227

Mediante la opción se recomienda sólo lectura, se mostrará un aviso al abrir un

libro para recomendar que se abra como sólo lectura, así recordamos al futuro

usuario que, si no tiene intención de realizar cambios, abriéndolo como sólo lectura

evitará posibles accidentes.

También disponemos de la posibilidad de realizar copias de seguridad de los

archivos, generando una copia de la última versión guardada, cada vez que

guardemos el archivo de nuevo. Estas copias se guardan en el mismo directorio del

archivo original, con extensión xlk.

Botón Office>Preparar>Cifrar documento

Finalmente, para aumentar la seguridad del documento, podemos encriptar el

contenido del archivo, para que solo sea legible por Excel si proporcionamos la

contraseña adecuada. Especialmente pensado para documentos de alto secreto y del

tipo “sólo para sus ojos”. Antes de abrir uno de estos archivos asegúrate de que no

hay nadie escondido mirándote.

Si ha habido piratas informáticos que han accedido a la información de los

servidores del FBI o a la tarjeta de crédito de Bill Gates, si no consiguen acceder a

tus documentos protegidos, o a ese papel arrugado donde tienes anotadas tus

contraseñas secretas, será porque nadie esté especialmente interesado en hacerlo.

Page 228: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 228

Macros y Funciones

Excel permite la programación personalizada mediante el lenguaje Visual Basic

para Aplicaciones (VBA). ¿Qué quiere decir esto? pues que todo lo que realizas

manualmente con el programa puede hacerse automáticamente, explicándoselo a

Excel en este lenguaje, para que lo entienda. Si tienes que repetir los mismos pasos

varias veces, puedes dar instrucciones a Excel para que repita esas tareas por ti, y

no dudes que lo hará mucho más deprisa y, por supuesto, todas las veces igual, sin

olvidar ni un paso.

Lo primero y más importante que hay que tener bien claro es que no es necesario

saber programación para emplear macros que realicen tareas repetitivas. Excel

dispone de un grabador de macros que, una vez activado, va grabando todas las

acciones que se realizan en el programa. Cuando nos haga falta repetir las tareas

grabadas, simplemente ejecutaremos la macro. Programación cero.

El grabador de macros se ocupa de transcribir los pasos que vas dando a código

VBA. Este es el método más rápido para crear macros sencillas, posteriormente, si

es necesario, podrás retocar el código de lo que se acaba de grabar para ajustarlo

más a tus necesidades.

Puede que este lenguaje de programación no sea el mejor, informáticamente

hablando, puede que tenga bastantes limitaciones, puede que no sea el más rápido a

la hora de ejecutarse, pero a cambio tiene unas ventajas indudables: como su

nombre indica es básico, sencillo de aprender, lo cual nos facilita bastante su

aprendizaje a los que nos dedicamos indirectamente a la informática. Otra ventaja,

es que este lenguaje de programación se parece bastante a dar instrucciones al

ordenador en inglés con lo que, si sabes algo de inglés (muy poco) es más o menos

sencillo entender el código.

La otra gran ventaja es que algunos programas comerciales, además de los

fabricados por Microsoft, han optado por este sistema de programación, con lo que

resulta relativamente sencillo para alguien que sepa programar macros en Excel,

programar también macros en Corel Draw o en AutoCad, ya que el lenguaje es el

mismo, y sólo cambia el modelo de objetos de cada programa, con el que puede

hacerse referencia a cualquier funcionalidad del mismo. No tendrás que aprender

otro lenguaje, sólo tendrás que conocer cómo se llaman los objetos de esos

programas.

Page 229: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 229

La programación de macros tiene sentido cuando las tareas son repetitivas, bien

porque se ejecuta muchas veces en distintos momentos, bien porque tenemos que

repetir los mismos pasos una vez tras otra. No hay que pensar que una tarea

repetitiva es la que se repite un millón de veces, yo cada vez tengo el listón más

bajo y si intuyo que se va a repetir más de dos veces aún lo dudo, pero si son diez

veces no lo pienso y grabo una macro. Todo depende de lo engorroso de las tareas

a repetir, de la posibilidad de equivocarte al repetir varias veces los mismos pasos y

de la práctica que vayas adquiriendo con la grabación / programación.

Otra posibilidad de la programación consiste en definir funciones personalizadas,

que se adapten a una necesidad específica, funciones que pueden utilizarse en la

hoja de cálculo del mismo modo que se emplean las funciones incorporadas por

Excel.

En mi experiencia, con todas las macros he ahorrado tiempo (en bastantes casos

muchísimo tiempo), desde las macros más sencillas hasta las más complicadas, las

que más tiempo me ha llevado programar y depurar. Es una inversión que merece

la pena.

La programación de procedimientos (macros y funciones) en Excel permitiría

escribir capítulos y capítulos, pero no es el objeto de este libro. En las páginas

siguientes simplemente se explica lo más básico del lenguaje de programación y se

incluyen unos ejemplos prácticos que te ayudarán a entenderlo un poco mejor y

además, seguro que te resultarán de utilidad.

Ten confianza en ti

Por motivos de seguridad frente a virus programados como macros dentro de

archivos de Office, por defecto la ejecución de macros está deshabilitada.

Dependiendo de la versión de Excel, puede que esté deshabilitada incluso la

ejecución de macros del libro de macros personal.

Como tú vas a programar macros necesitarás decirle a Excel que confíe en las

macros que has creado, lo cual se puede hacer porque confiarás en todos los libros

con macros que se encuentren en ciertos lugares de tu ordenador o de la red, o

también se puede hacer confiando en las macros que vienen firmadas digitalmente,

por ejemplo por ti.

Page 230: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 230

Herramientas>Macro>Seguridad

Programador>Código>Seguridad de macros

En las versiones anteriores, dentro de las opciones de seguridad para macros se

podía elegir entre varias opciones, deshabilitar todas las macros, habilitarlas todas,

o preguntar al abrir un libro con macros qué hacer al respecto.

En la versión 2003 se añade el concepto de centro de confianza, con el que

podemos indicar una serie de ubicaciones de cuyo contenido nos fiamos, por

ejemplo la carpeta “Mis Trabajos” del disco duro. Los archivos que se encuentren

en esta ubicación y contengan macros no serán bloqueados.

Para firmar macros y que en otros equipos puedan indicar que se fían de lo que esté

firmado por ti, necesitarás un certificado expedido por algún organismo que se

dedique a estos temas.

Como parte del paquete Office se incluye una utilidad para firmar digitalmente las

macros que se van a utilizar en el mismo equipo, con lo cual puedes tener un

certificado que valdrá para ti, pero no para los demás, pues cualquiera podría crear

un certificado de estos con el nombre de otra persona.

Supongo que todos estos temas de las firmas digitales, contraseñas, etcétera,

tenderá a converger hacia un sistema común basado en el carnet de identidad

digital o en las huellas dactilares o alguna otra característica por el estilo.

Lee esto antes de grabar una macro

Herramientas>Macro>Grabar nueva macro

Programador>Código>Grabar macro

Antes de empezar a grabar una macro piensa qué celda quieres que sea la celda

activa, para empezar la grabación desde ese lugar.

Page 231: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 231

Elige un buen nombre para tu macro, procura que no sea un enigma. Puedes utilizar

el cuadro Descripción para agregar una explicación que aclare la finalidad de la

macro.

Según la utilización que vayas hacer de la macro posteriormente, debes elegir

dónde se guardará la macro que grabes, si en el libro actual o en tu libro de macros

personal, que estará disponible cada vez que abras Excel (ver página 24). Aunque

más adelante también lo podrás hacer, puedes asignar una combinación de teclas

personalizada para ejecutar la macro.

Durante la grabación de la macro piensa si deseas emplear referencias absolutas o

relativas a la celda activa en cada momento .

Barra detener grabación>Referencia relativa

Programador>Código>Usar referencias relativas

Si quieres escribir un valor en la celda A2, tendrás que grabar la macro con

referencias absolutas, mientras que si lo que quieres es escribir un valor en la celda

de debajo de la celda activa, tendrás que activar la opción para utilizar referencias

relativas.

Antes de terminar de grabar la macro piensa qué celda quieres que sea la celda

activa tras la ejecución de la macro, principalmente por si la vas a ejecutar varias

Page 232: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 232

veces seguidas, en cuyo caso interesará terminar en una celda que sea el punto de

partida para la siguiente ejecución de la macro.

Herramientas>Macro>Macros

Programador>Código>Macros

Para ejecutar una macro, simplemente elígela en el formulario de macros y pulsa el

botón Ejecutar. En este mismo formulario, desde el botón Opciones podrás asignar

una combinación de teclas para ejecutar cada macro.

Entre las opciones de personalización de la barra de herramientas puedes agregar

un botón para ejecutar tu macro.

Herramientas>Personalizar>Comandos>Macros

Opciones de Excel>Personalizar>Comandos disponibles en>Macros

Page 233: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 233

VBA en dos palabras

El concepto fundamental de VBA es que puedes referirte a cualquier “cosa” de

Excel siguiendo la jerarquía de objetos que han establecido los programadores de

Microsoft para este programa.

Imagina que no puedes manejar ni el ratón ni el teclado, con lo que tienes que ir

dictando a tu compañero de al lado cómo ir trabajando con tu libro. Tienes que ir

paso a paso siguiendo la jerarquía de objetos del programa, porque no es un tipo

muy brillante, aunque es muy rápido y meticuloso.

Por ejemplo, para escribir el número 3 en la celda A1 de la hoja llamada hoja1 del

libro llamado libro1, seguiríamos la siguiente descripción (empezando por lo

general, hasta llegar a lo particular):

Primero la aplicación, Excel. Entre todos los libros abiertos indicamos el que se

llama “Libro1”. Dentro de las hojas de este libro la que se llama”hoja1”. En esta

hoja, nos fijamos en el rango “A1”, que es la celda A1. Por último, de este rango

me fijo en su valor y lo hago igual a tres.

Ahora se lo vamos a decir a nuestro amigo en Inglés, separando cada parte con un

punto para no confundirlo:

Application.Workbooks(“Libro1”).Worksheets(“hoja1”).Range(“A1”).Value = 3

Pues con esto ya entiendes el lenguaje que emplea Excel. Como ves no es muy

difícil, basta con saber tanto inglés como los indios de las películas del Oeste y

tener un poco claro el concepto de la jerarquía, separando cada paso con un punto.

La jerarquía del programa viene descrita en lo que se denomina el modelo de

objetos (busca en la ayuda de Visual Basic “objetos de Microsoft Excel”) y es más

o menos sencilla de entender, puesto que es similar a describir de palabra cómo

llegar desde el nivel superior, paso a paso, hasta el elemento que nos interese.

No es necesario nombrar siempre todos los pasos hasta llegar al objeto al que

quieres referirte. Si no indicas Application se entiende que la aplicación a la que

te refieres es Excel; si no indicas a qué libro te refieres, se sobreentiende que te

refieres al libro activo; si no indicas ninguna hoja, se sobreentiende que estás

refiriéndote a la hoja activa. Es decir, que si simplemente escribimos

Range(“A1”) Excel implícitamente supone que estamos hablando de la celda A1

de la hoja activa del libro activo que tenemos en Excel en este momento.

Page 234: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 234

Como ya estarás deduciendo, el programa y todo lo que contiene está formado por

objetos , todo son objetos: la aplicación, un libro, las hojas, los gráficos, una

celda, un comentario, una tabla dinámica, todo. Cada uno de estos objetos tiene

propiedades, métodos y eventos.

Las propiedades definen al objeto, por ejemplo el nombre de una hoja, el color

de una celda, el número de hojas que hay en un libro, la columna a la que pertenece

una celda, el margen inferior de la configuración de impresión de una hoja…

Desde nuestros procedimientos podemos acceder a estas propiedades y cambiar su

valor.

Los métodos realizan una acción con el objeto, por ejemplo las hojas del libro

tienen un método que añade una nueva hoja al libro, una celda tiene un método que

borra su contenido, un libro tiene un método que lo activa, un rango tiene un

método que lo selecciona… Desde nuestros procedimientos podemos ejecutar estos

métodos, con los argumentos necesarios en cada caso, para que Excel realice las

acciones correspondientes.

Por último, cada objeto tiene asociados unos eventos , que son situaciones que

suceden con los distintos elementos del programa, por ejemplo, al abrir un libro, al

pulsar un botón, al seleccionar un gráfico, antes de cerrar, antes de imprimir…

Excel detecta los eventos y podemos programar código para que se ejecute cada

vez que se produzca un evento determinado.

El entorno de programación

El editor de Visual Basic es el lugar donde programar tus macros. En este editor,

aparte de la ventana donde editar el código propiamente dicho, pueden mostrarse

otras ventanas que ofrecen información adicional sobre dónde estamos escribiendo

este código, propiedades de los objetos, valores de variables durante la ejecución

de programa para analizar su funcionamiento, …

Page 235: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 235

El explorador de proyectos muestra los archivos que tenemos abiertos en Excel,

interpretados como proyectos de Visual Basic para Aplicaciones, esto es, como

elementos que contienen programación. Dentro de cada uno de ellos aparece una

serie de objetos: las hojas del libro, así como el propio libro . Otros objetos

que puede tener nuestro libro-proyecto de programación son formularios

personalizados , para interactuar con el usuario. Finalmente, podemos tener

módulos, que contienen exclusivamente programación, pueden ser módulos

normales y módulos de clase , que sirven para definir tus propios objetos

personalizados, con sus propiedades, métodos y eventos.

Page 236: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 236

Como ves, los procedimientos que programes pueden estar repartidos por varios

lugares de tu proyecto. El lugar en que programes dependerá del alcance que deba

tener tu procedimiento. Para programar código de respuesta a un evento, el código

debe estar contenido en el mismo lugar que el objeto que genera el evento, por

ejemplo, el código para los botones de un formulario debe estar en el formulario, el

código para ejecutarse al cambiar la selección de una hoja deberá estar en esa hoja.

Las macros y funciones que utilizarás en el libro se escriben en un módulo.

Desde el panel de propiedades podemos acceder a las propiedades del objeto

seleccionado en el editor: un módulo, una hoja, un libro, un control de un

formulario. Desde aquí puedes cambiar el nombre a un módulo, o puedes hacer que

una hoja del libro no sea visible.

Mediante el examinador de objetos podemos ver qué propiedades, métodos y

eventos tiene cada objeto definido. Si no recuerdas muy bien lo que estás

buscando, tal vez desde esta ventana puedas localizarlo.

Page 237: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 237

En la ventana de código es donde se muestra el programa propiamente dicho. En la

parte superior de esta ventana hay dos listas desplegables, en la lista de la izquierda

aparecen los objetos disponibles dentro del objeto seleccionado, por ejemplo en un

formulario aparecerían todos los controles del formulario; en una hoja aparece la

hoja y los controles que hayamos colocado en esa hoja. En la lista de la derecha

aparecen los eventos disponibles para el objeto elegido en la primera lista; si en la

lista de la izquierda hemos elegido la opción General, a la derecha se muestra las

declaraciones del módulo y los nombres de los procedimientos ya programados.

En la parte inferior de la ventana de código tenemos dos botones, para elegir

si queremos ver los procedimientos de uno en uno, o ver todos los procedimientos

del módulo uno a continuación de otro.

A la hora de escribir el código, el editor va autocompletando las palabras mientras

escribes. Al pulsar [Ctrl][J] se despliega una lista de autocompletar con los objetos,

propiedades y métodos disponibles en cada momento. También aparecen en este

listado las constantes predefinidas. La opción para que se muestre automáticamente

esta lista se activa en:

Herramientas>Opciones>Editor>Lista de miembros automática

En el caso de utilizar funciones o métodos, se muestra un texto en pantalla con

información sobre los argumentos que utiliza esa función.

Page 238: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 238

Con estas ayudas evitarás erratas al escribir, que se traducen en errores en la

ejecución del procedimiento, también evitarás tener que memorizar todas las

propiedades y métodos, o tener que estar continuamente recurriendo al examinador

de objetos.

Ya habrás comprobado que, para facilitar la lectura del código, el editor muestra

automáticamente de diferente color las funciones y comandos de VBA, así como

los comentarios, los errores de sintaxis, etc., y aunque los colores predeterminados

satisfacen todas mis expectativas artísticas, puede que desees configurar a tu gusto

el aspecto del editor:

Herramientas>Opciones>formato del editor

Si es importante comentar las celdas de tus hojas, más importante es comentar un

programa, para luego ser capaz de entenderlo si alguna vez tienes que volver a él

para retocarlo, corregirlo o mejorarlo.

Para añadir comentarios a tus programas utiliza una comilla simple. Lo que

escribas a continuación de esta comilla ' VBA entenderá que es un comentario.

Mientras editas el código, puedes disponer marcadores (Edición>Marcadores)

en las líneas que te interese, para poder llegar a ellas rápidamente desde cualquier

lugar del módulo. Las líneas marcadas aparecen con una señal azul en la barra

indicadora situada a la izquierda del código.

Los marcadores no se guardan con el archivo, están pensados para facilitar el

movimiento entre diferentes partes del código en una sesión de trabajo.

Page 239: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 239

Depuración

Las cosas no suelen salir a la primera y casi siempre requieren realizar algún tanteo

previo para probar el funcionamiento de lo que llevamos hecho hasta el momento.

En el editor de Visual Basic disponemos de una serie de utilidades pensadas para

facilitar el trabajo de depuración de errores y comprobación del funcionamiento de

los procedimientos.

Depuración>Compilar

Mediante la compilación se comprueba la sintaxis de las instrucciones, así como la

declaración de variables. Los errores más simples se detectan al compilar el

proyecto.

Depuración>Paso a paso por instrucciones ([F8])

Con esta utilidad podemos ir ejecutando instrucción a instrucción el

procedimiento en donde se encuentre el cursor. La línea que se va ejecutando en

cada momento se señala de otro color para saber dónde nos encontramos. Para

ejecutar la instrucción y pasar a la siguiente debes pulsar [F8].

Combinado con las ventanas para obtener información de las variables y

expresiones de inspección definidas, permite ir evaluando si el procedimiento se

comporta de acuerdo a lo esperado o no.

Si realizamos algún cambio y queremos volver atrás durante esta ejecución paso a

paso, podemos establecer como instrucción siguiente la línea que queramos, bien

desde el menú contextual, bien desde el menú Depuración>Establecer instrucción

siguiente. También, desde el menú contextual del código, durante la ejecución paso

a paso, disponemos de la opción de ejecutar hasta la posición del cursor

[Ctrl][F8], si no queremos detenernos en cada línea.

Cuando desde nuestro procedimiento se llama a otro, también se ejecutaría paso a

paso este segundo procedimiento. Para controlar el modo en que se realizan estas

llamadas a otros procedimientos podemos elegir la opción “paso a paso por

procedimientos” [Mays][F8], con lo que la llamada a otro procedimiento se

ejecuta como un único paso. Si nos encontramos dentro de un segundo

procedimiento y queremos terminarlo para volver al principal, elegiremos la opción

“paso a paso para salir” [Ctrl][Mays][F8].

Page 240: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 240

Para continuar la ejecución normalmente hasta el final, sin ir paso a paso, puedes

pulsar el botón de reproducción , o la tecla [F5]. Para detener la ejecución del

procedimiento puedes pulsar el botón de parada .

Depuración>Alternar punto de interrupción [F9]

Tenemos la posibilidad de establecer en nuestro código puntos de interrupción,

en los que la ejecución del programa se detendrá para que podamos estudiar la

situación. Una vez interrumpida la ejecución, nos encontraríamos en el modo paso

a paso desde esa instrucción.

Los puntos de interrupción se identifican al mostrarse con la línea de otro color y

con un punto gordo en la barra indicadora que hay a la izquierda del código. Si en

cualquier línea hacemos clic en la barra indicadora, se inserta/elimina un punto de

interrupción. Como es lógico, no podemos establecer puntos de interrupción en

líneas en blanco, ni en líneas que contienen exclusivamente un comentario.

Tampoco se puede situar un punto de interrupción en las sentencias de declaración

de variables o constantes, ni en las opciones del módulo.

Una vez tenemos la ejecución interrumpida o en el modo paso a paso, nos

interesará obtener información del estado del programa, como por ejemplo los

valores que tienen las variables, cuántas variables se están utilizando en el

procedimiento, qué procedimientos están abiertos actualmente, y cualquier otra

cosa que se nos pueda ocurrir para comprender cómo está trabajando el programa,

o cómo se espera que vaya a funcionar. Se accede a estas posibilidades desde el

menú Ver, o desde la barra de herramientas Depuración.

Mediante la ventana locales, podemos ver todas las variables a medida que se

van utilizando, con indicación del procedimiento al que pertenecen, el valor de

cada una de ellas, y el tipo de variable de que se trata.

Es posible definir expresiones para inspección, Depuración>Agregar inspección,

que se evalúan durante la ejecución del código. Desde el formulario de definición

de la expresión de inspección, podemos establecer que la ejecución del código se

interrumpa cuando esta expresión devuelva un valor verdadero, o cuando cambie

de valor. Por ejemplo, podemos interrumpir la ejecución cuando la variable k sea

igual a 15, para lo cual nuestra expresión de inspección será k=15, y activaremos la

opción de interrumpir cuando sea verdadero.

En la ventana inspección podremos ver los valores que adoptan todas las

inspecciones definidas.

Page 241: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 241

Seleccionando una expresión o variable en el código con la ejecución

interrumpida, al pulsar el botón de inspección rápida se mostrará información sobre

el valor actual de dicha expresión.

Durante la ejecución podemos realizar también una inspección rápida de los

valores simplemente pasando el ratón sobre la variable o parte del código que nos

interese. Para ello deberemos tener activada la opción

Herramientas>Opciones>Editor>Información rápida automática.

Por último, en la ventana inmediato podemos escribir funciones, ejecutar

métodos de los objetos disponibles, mostrar los valores de las variables. Podemos

probar las sentencias del programa para ver si surten el efecto esperado.

Para mostrar un valor utiliza Print o ? seguido de lo que quieras mostrar, por

ejemplo, escribiendo ?ActiveSheet.Name en la ventana inmediato y pulsando

[Intro] se mostrará el nombre de la hoja activa. Escribiendo ?2+2, se mostrará

como resultado 4. Para ejecutar una instrucción, escríbela sin más en esta ventana y

se ejecutará al pulsar la tecla [Intro]. En la ventana inmediato también está

disponible el autocompletado de métodos y propiedades [Ctrl][J]

En nuestro código podemos emplear Debug.Print para escribir información a la

ventana inmediato, que luego nos ayude a entender los pasos dados.

Lo básico de Visual Basic

Tipos de procedimientos

Podemos programar dos tipos de procedimientos: subrutinas y funciones.

Las subrutinas, que es el tipo de procedimiento de las macros, realizan una serie de

tareas de acuerdo a las instrucciones programadas. La definición de la subrutina

empieza con la instrucción Sub seguida del nombre que queramos asignarle (sin

espacios ni caracteres especiales) y finaliza, tras todas las instrucciones del

procedimiento, con End Sub.

El siguiente ejemplo es un procedimiento que muestra un mensaje en pantalla

mediante MsgBox, diciendo el título de este libro.

Sub EjemploSubrutina()

MsgBox "Ya sé Excel, pero necesito más"

End Sub

Page 242: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 242

Una función es un procedimiento que devuelve como resultado un valor, a partir de

unos parámetros o argumentos iniciales. Estas funciones personalizadas se pueden

emplear en las celdas de la hoja de cálculo igual que las funciones predefinidas de

Excel, que operan con unos argumentos y devuelven un valor.

La definición empieza con la instrucción Function seguida del nombre de la

función. Hay que indicar en esta primera línea el tipo de dato que generará como

resultado. Dentro de la función, cuando se hayan realizado las operaciones

necesarias, se debe asignar el valor que la función devolverá como resultado. Para

terminar, tras todas las instrucciones, se escribirá End Function.

En el siguiente ejemplo se define una función que devuelve como resultado un

valor entero (Integer)

Function FunciónEjemplo() As Integer

' ...Operaciones

FunciónEjemplo = 7

End Function

Ambos tipos de procedimientos pueden tener argumentos. Estos argumentos se

declaran en la instrucción inicial donde se da el nombre al procedimiento. Para

ello, entre paréntesis y a continuación del nombre del procedimiento, se indicará

cada uno de los argumentos separados por comas, especificando el tipo de dato de

cada uno de ellos.

En el siguiente ejemplo se define una función que calcula la suma de dos

argumentos que son números enteros (Integer), dando como resultado un número

entero.

Function SumarDosEnteros(A As Integer, B As Integer) As Integer

SumarDosEnteros = A + B

End Function

Las subrutinas con argumentos no pueden ejecutarse desde el selector de

macros, deben ser llamadas desde otros procedimientos.

En el siguiente ejemplo se define una subrutina con un argumento tipo texto, que

muestra un mensaje con el texto del argumento entre exclamaciones. Se utiliza el

operador & para concatenar textos.

Sub MensajeEntreExclamaciones(TextoDelMensaje As String)

Page 243: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 243

MsgBox "¡¡¡ " & TextoDelMensaje & " !!!"

End Sub

Para llamar a una subrutina desde dentro de otro procedimiento utilizaremos la

instrucción Call seguida del nombre del procedimiento. La utilización de Call es

optativa, puesto que VBA entiende también que se llame a una subrutina

escribiendo su nombre directamente.

Para utilizar una función dentro de una expresión de un procedimiento o de una

hoja de cálculo, basta con escribir su nombre.

En el siguiente ejemplo se define una subrutina que utiliza la función definida

anteriormente para realizar la suma de 3 más 15 y realiza una llamada al

procedimiento que muestra un texto entre exclamaciones para mostrar el resultado.

Sub SubrutinaQueUtilizaOtrosProcedimientos()

Call MensajeEntreExclamaciones("Resultado = " & SumarDosEnteros(3, 15))

End Sub

Cuando un procedimiento o un método tiene argumentos, éstos se introducen en el

mismo orden en que se definieron, entre paréntesis, separados por comas. Cuando

se utilizan como una instrucción independiente, no se escriben los paréntesis,

aunque se separan los argumentos por comas. También es posible introducir los

argumentos con su nombre, separando el nombre del argumento de su valor con

dos puntos seguido del signo igual := sin paréntesis, separados los distintos

argumentos por comas, y en este caso no importa el orden.

MensajeEntreExclamaciones TextoDelMensaje:="Cálculo Terminado"

La utilización de los nombres de los argumentos facilita la lectura del código,

comparado con una relación de argumentos separados por comas, aunque supone

escribir más y arriesgarse a cometer erratas, pues no está disponible la opción de

autocompletar para los nombres de los argumentos. Comprobarás que en las

macros grabadas se utiliza este sistema para facilitarte el trabajo de entender qué se

ha grabado.

Al definir un procedimiento, podemos establecer cómo se va a comportar cuando

se utilizan variables como argumentos: la variable puede pasarse al procedimiento

como una referencia a dicha variable, para lo que se antepondrá ByRef al nombre

del argumento (es la opción por defecto si no indicamos nada), con lo que si

modificamos el valor del argumento estaremos modificando la variable original.

Como alternativa, puede pasarse como argumento únicamente el valor de la

Page 244: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 244

variable, anteponiendo al nombre del argumento ByVal, en este caso el argumento

será una copia de la variable y los cambios hechos al argumento no se realizarán en

el original.

En los siguientes ejemplos se define una misma subrutina, en el primer caso

utilizando argumentos por referencia y en el segundo caso por valor.

Sub ArgumentoPorReferencia(ByRef i As Integer)

i = i + 1

End Sub

Sub ArgumentoPorValor(ByVal i As Integer)

i = i + 1

End Sub

El siguiente procedimiento define una variable y la utiliza como argumento

realizando llamadas a las dos subrutinas anteriores. Tras cada llamada se escribe en

la ventana inmediato el valor de la variable.

Sub DiferenciaPorValorPorReferencia()

Dim Variable As Integer

Variable = 7

Call ArgumentoPorReferencia(Variable)

Debug.Print Variable

Call ArgumentoPorValor(Variable)

Debug.Print Variable

End Sub

Es posible definir también argumentos opcionales para el procedimiento. Esto se

consigue anteponiendo la palabra Optional al nombre del argumento. Los

argumentos opcionales deben ser los últimos argumentos de la lista de argumentos

del procedimiento.

La función IsMissing permite saber si falta un argumento en la llamada al

procedimiento, lo que permite, por ejemplo, asignar los valores por defecto a los

parámetros opcionales que no hayan sido introducidos.

En el siguiente ejemplo se define una función que divide dos números, definidos

como tipo precisión simple (Single). Serán necesarios dos argumentos, el

dividendo y el divisor. Si no se especifica el divisor se considerará igual a 1. Se

Page 245: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 245

emplea la instrucción condicional If, junto con IsMissing para asignar el valor

por defecto.

Function Dividir(Dividendo As Single, Optional Divisor As Single) _

As Single

If IsMissing(Divisor) Then Divisor = 1

Dividir = Dividendo / Divisor

End Function

Cuando una línea de código es demasiado larga, lo que dificulta su lectura,

puedes indicar mediante un guión bajo _ que continúe en la línea siguiente. Se

interpretará como una única línea.

Finalmente, como último argumento puede utilizarse una matriz de valores. Es útil

cuando no sabemos cuántos valores vamos a tener. Por ejemplo, si queremos crear

una función que sume números, todos los que sea necesario, lo mejor es que utilice

como único argumento una matriz que contenga todos los números que queramos

sumar.

Esto se define anteponiendo al nombre del argumento la palabra ParamArray.

Sólo puede haber un argumento de este tipo en un procedimiento, y siempre tiene

que ser el último de los argumentos.

Variables

Todos los lenguajes de programación utilizan variables para almacenar valores y

poder operar posteriormente con ellos. Durante la ejecución del programa se

podrán modificar los valores de las variables. En cualquier operación, función,

instrucción podemos utilizar tanto un valor escrito a mano, como una variable (o

una constante), de la que se tomará el valor para operar.

En Visual Basic disponemos de los siguientes tipos de variables.

Booleano Verdadero(-1) o Falso (0).

Byte número entero entre 0 y 255.

Currency 15 dígitos de parte entera y 4 dígitos de parte decimal.

Date para almacenar fechas, la parte entera es el día, desde el 1 de

enero del año 100 al 31 de diciembre de 9999, mientras que la

Page 246: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 246

parte decimal es la hora. Para asignar valores de fecha, utiliza

almohadillas, por ejemplo fecha=#18 January 2007# (en

inglés).

Single números de coma flotante, precisión simple (4 bytes).

Double números de coma flotante, precisión doble (8 bytes).

Integer número entero con signo (2 bytes).

Long número entero con signo (4 bytes).

Decimal número con 29 cifras significativas (12 bytes).

Object una referencia a un objeto.

String cadena de texto.

Variant tipo de variable genérica que puede trabajar como cualquier

otro tipo de variable. Si no declaramos una variable, o en la

declaración no indicamos el tipo explícitamente, pertenecerá a

este grupo.

Aparte de estos tipos de funciones, podemos definir tipos de datos personalizados

mediante la instrucción Type. Estos tipos de variable personalizados agrupan

varios datos de los tipos predefinidos o de otros tipos definidos por el usuario

previamente.

A continuación se define como ejemplo el tipo personalizado Punto, que contiene

cuatro datos: un texto para el nombre, y tres valores numéricos para las

coordenadas. A la derecha se muestra cómo declarar una variable de este tipo

personalizado y cómo asignar los valores.

Type Punto

Nombre as String

X As Single

Y As Single

Z As Single

End Type

Dim Origen As Punto

Origen.Nombre= "Estación 1"

Origen.X = 0

Origen.Y = 0

Origen.Z = 703.42

Page 247: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 247

La declaración de variables se realiza mediante la instrucción Dim, seguida del

nombre de la variable, luego la palabra As y finalmente el tipo. En el caso de

variables de módulo, si queremos que sean públicas (ver página 274272)

emplearemos Public en vez de Dim.

Al escribir la declaración, tras la palabra As, se desplegará un listado con todos los

tipos de variables y de objetos disponibles.

La asignación de un valor a una variable se realiza mediante el signo igual. A la

izquierda del signo se pone el nombre de la variable y a la derecha el valor o una

expresión que devuelva como resultado el valor que queremos que tome dicha

variable.

A = 7*25+3^2

Es posible incluir la propia variable en la expresión que se calcula para dar un

nuevo valor a esa misma variable. La expresión se calcula con el valor actual,

asignándole como nuevo valor el resultado de la expresión.

A = A + 1

En el caso de variables de tipo objeto, la asignación se realiza mediante la

instrucción Set seguida del nombre de la variable, un signo igual y a continuación

el nombre de un objeto, o una función o método que produzcan como resultado un

objeto del mismo tipo del que se ha definido la variable.

Para liberar una variable de objeto cuando deje de ser necesaria, asignaremos al

objeto el valor Nothing, también con la instrucción Set. La variable se libera,

deja de estar asociada al objeto, pero el objeto sigue existiendo.

En el siguiente ejemplo, se declara la variable Libro como un objeto tipo

Workbook, luego se asocia a un nuevo libro que se crea mediante el método Add

de la colección Workbooks. Se muestra la propiedad nombre de la variable Libro

Page 248: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 248

(que será el nombre del libro que se acaba de crear) y finalmente se libera la

variable Libro. El libro que se ha creado se queda abierto después de terminado el

procedimiento.

Sub TrabajandoConObjetos()

Dim Libro As Workbook

Set Libro = Application.Workbooks.Add

MsgBox Libro.Name

Set Libro = Nothing

End Sub

Utilizando este tipo de variables, resulta más cómodo en el código referirse a los

distintos objetos. Por ejemplo si trabajamos continuamente con una hoja llamada

“Resumen” de un libro llamado “Data2007.xlsx”, en vez de tener que seguir la

jerarquía de objetos de Excel cada vez que hagamos referencia a esta hoja, si

definimos una variable de objeto y le asociamos esta hoja, bastará con utilizar el

nombre de la variable.

Si declaramos esta variable de objeto:

Dim HojaReferencia As Worksheet

Set HojaReferencia = Workbooks("Data2007.xlsx").Worksheets("Resumen")

En vez de escribir esto:

Workbooks("Data2007.xlsx").Worksheets("Resumen").Range("A1")="Encabezado"

Se puede escribir esto otro:

HojaReferencia.Range("A1") = "Encabezado"

Las variables, en Visual Basic, también pueden ser matriciales, esto es, una

variable puede tener varias dimensiones y almacenar diferentes valores. El modo

en que se define una variable matricial es similar a cómo se define una variable

convencional, pero indicando entre paréntesis las dimensiones de la matriz. Para

cada dimensión podemos definir el límite inferior y el límite superior. Si sólo

indicamos un valor, se interpreta como el límite superior en esa dimensión.

Dim MatrizConLímites(1 To 7, 5 To 9) As Integer

Dim MatrizSóloLímiteSuperior(3, 10, 2, 8) As Integer

Dim MatrizConYSinLímiteInferior(2 To 5, 3) As Integer

Page 249: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 249

Todos los elementos de la matriz serán del mismo tipo, del definido al declarar

la variable.

Si escribimos los paréntesis, pero no indicamos dimensiones, la variable se declara

como matricial, aunque aún no tiene asignado su tamaño, que se podrá definir más

adelante mediante la instrucción ReDim. A este tipo de matrices declaradas

inicialmente sin dimensiones se les llama dinámicas.

Dim MatrizDinámica() As Integer

...

ReDim MatrizDinámica(2, 2, 10)

A una matriz dinámica a la que ya se le asignaron dimensiones, se le pueden volver

a cambiar tanto el número de dimensiones como los límites de dichas dimensiones

mediante una nueva instrucción ReDim. En principio, al redimensionar la matriz, se

perderán los datos almacenados en la misma, salvo que agreguemos la palabra

Preserve, aunque en este caso no podremos cambiar las dimensiones a nuestro

antojo, tan solo podremos modificar la última de las dimensiones de la matriz. Por

ejemplo, con la misma matriz de antes, podríamos redimensionarla de la siguiente

manera

ReDim MatrizDinámica(5, 4)

...

ReDim MatrizDinámica(3, 6, 1)

...

ReDim Preserve MatrizDinámica(3, 6, 8) 'sólo la última dimensión

Constantes

Si vamos a utilizar en los procedimientos valores que no van a cambiar durante la

ejecución de los mismos, podemos definirlos como constantes mediante la

instrucción Const. La declaración es similar a la de las variables, pero además hay

que asignarle el valor en esa misma instrucción. Por ejemplo, vamos a declarar una

constante de tipo texto que emplearemos posteriormente como título en los

mensajes que mostremos al usuario:

Const Título As String = "Ya sé Excel, pero necesito más"

La declaración de constantes puede facilitar la adaptación posterior del código del

programa a una nueva situación. Supón, por ejemplo, que tienes un programa para

Page 250: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 250

tratar unos libros con datos que te envían periódicamente, y que entre otras cosas

lee los datos situados a partir de la fila 7 de una hoja llamada “datos” y realiza

varias operaciones con ellos en las celdas vacías que hay a partir de la columna 12

en esa misma hoja. Si posteriormente se modifica la estructura de los libros, y la

hoja con los datos se llama “registros”, la primera fila de datos es la 3, y las

columnas vacías comienzan a partir de la 14, tendrás que retocar todas y cada una

de las instrucciones de tus procedimientos en que hicieses referencia a alguno de

estos valores para cambiarlos por los nuevos (apostaría a que olvidas cambiar

alguno). Si hubieses creado constantes para estos valores, tan solo tendrías que

modificar dichos valores en las sentencias de declaración; el resto del programa,

que utiliza esas constantes, seguiría siendo válido.

Si en el ejemplo de los títulos para los mensajes quisiese añadir un punto al final,

tan solo tendré que modificar la declaración de la constante y no todos las

instrucciones que muestran un mensaje.

Al igual que con las variables, las constantes de módulo, que por defecto están

disponibles para los procedimientos de ese módulo, pueden declararse como

públicas para ser accesibles desde fuera del módulo, para lo cual antepondremos la

palabra Public a la declaración:

Public Const Título As String = "Ya sé Excel, pero necesito más."

Pueden definirse varias constantes numéricas que estén relacionadas como una

enumeración , mediante la instrucción Enum seguida del nombre que queramos

asignar a esa enumeración (puede anteponerse Private o Public para indicar el

alcance de la enumeración. La opción predeterminada es Public). En las líneas

siguientes definimos las constantes que forman parte de la enumeración, indicando

su nombre y el valor de la misma con un signo igual. Para concluir la definición de

la enumeración debe escribirse End Enum.

En el siguiente ejemplo se define una enumeración con las constantes que definen

las filas y columnas donde están los datos que deseo procesar.

Enum EnumeraciónEjemplo

FilaInicial = 2

FilaFinal = 5

ColumnaInicial = 2

ColumnaFinal = 15

End Enum

Page 251: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 251

Dentro de un procedimiento se podrá hacer uso de estas constantes como si de

cualquier otra constante se tratase.

Rows(FilaInicial).Select

Sin embargo, puede darse el caso de que dos enumeraciones diferentes tengan

constantes con el mismo nombre. En nuestro ejemplo, podríamos tener una

enumeración con filas y columnas para la hoja de datos y otra enumeración con las

filas y columnas de la hoja de resultados. En este caso, para evitar ambigüedades

en el código, habrá que referirse a la constante indicando a qué enumeración

pertenece, y esto se hace escribiendo el nombre de la enumeración, un punto y el

nombre de la constante.

Rows(EnumeraciónEjemplo.FilaInicial).Select

Las enumeraciones deben definirse a nivel de módulo y sólo admiten para sus

constantes valores numéricos.

Page 252: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 252

Bucles

A menudo, en los procedimientos suele resultar necesario repetir las mismas

instrucciones varias veces, en lo que se denomina un bucle. VBA ofrece tres tipos

de bucles:

For permite repetir las instrucciones un número determinado de

veces

Do repite las instrucciones según se cumpla o no una condición

que indiquemos.

For Each repite las instrucciones para cada elemento de un conjunto de

elementos.

A continuación se explica un poco más en detalle cada uno de ellos.

For

Mediante la instrucción For, y empleando una variable que hace de contador,

podemos repetir varias veces las mismas instrucciones. La estructura de esta

instrucción es la siguiente:

For variablecontador = valorinicial To valorfinal

Optativamente podremos añadir también el valor en que se incrementará la variable

contador en cada ejecución del bucle, mediante la palabra Step seguida del valor

del incremento (puede ser positivo o negativo). Si no se indica nada, el incremento

por defecto es uno.

El bucle asigna valores a la variable contador empezando por el valor inicial,

aumentándolo en cada ciclo. El bucle se repite mientras el contador sea menor o

igual que el valor final (igual o mayor en el caso de incremento negativo).

Al final de las instrucciones que queremos repetir, terminaremos el bucle con la

palabra Next, a la que podremos añadir a continuación (no es obligatorio) el

nombre de la variable contador, para facilitar la lectura del código.

Si en alguna situación queremos terminar el bucle antes de llegar al final, dentro de

las instrucciones del bucle podemos incluir Exit For, para salir del mismo.

En este ejemplo escribimos en la ventana inmediato los valores del contador i, que

toma los valores desde 1 hasta 10, con un incremento de dos. El contador adopta

los valores 1, 3, 5, 7, 9, tras éste último, el contador toma el valor 11, que al

Page 253: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 253

sobrepasar el límite superior finaliza el bucle, ya no se ejecutan más las

instrucciones del bloque For, continuando el programa a partir del Next. Tras la

terminación del bucle, i es igual a 11, el valor que superó el límite.

Sub BucleFor()

Dim i as Integer ' contador para el bucle

For i = 1 To 10 Step 2

Debug.Print i 'escribimos el valor de i en la ventana inmediato

Next

Debug.Print “Valor de i después del bucle: “ & i

End Sub

Do

Se repiten las instrucciones contenidas en el bucle hasta (Until) que se cumpla

una condición, o mientras (While) se cumpla una condición. El inicio del bucle se

indica con la instrucción Do, y el final del bucle con la instrucción Loop.

La condición se puede poner bien en el Do de inicio del bucle, bien en el Loop del

final del bucle (pero no en los dos sitios a la vez), dependiendo de si queremos que

la condición se evalúe antes de haber comenzado el bucle, o después de haber

realizado las instrucciones contenidas en el mismo.

Si hubiera que salir del bucle desde el interior del mismo, antes de terminar, se

puede emplear la instrucción Exit Do.

En el siguiente ejemplo se van activando las celdas desde la posición actual de la

celda activa hacia abajo, hasta encontrar una celda vacía. En este caso, la condición

la pondremos al inicio del bucle, puesto que si partimos de una celda vacía no hay

que comenzar a desplazarse hacia las celdas de abajo, ya hemos terminado.

Para saber si la celda está vacía emplearemos la función IsEmpty. Al terminar el

bucle, se muestra un mensaje informando de la posición de la celda activa. Se

utiliza la constante vbOkOnly para indicar que aparezca en el mensaje únicamente

el botón Ok. Se utiliza también la constante Título como título para este mensaje.

Page 254: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 254

Sub DesplazarHaciaAbajoHastaVacia()

Do Until IsEmpty(ActiveCell)

' Activamos la celda de abajo

ActiveCell.Offset(1, 0).Activate

Loop

MsgBox "Celda vacia: " & ActiveCell.Address, vbOKOnly, Título

End Sub

En el siguiente ejemplo se pide al usuario que introduzca un número menor que

diez, si el número introducido es mayor, se vuelve a pedir el valor, así hasta que se

introduzca un valor correcto. Esta vez se utilizará la condición al final del bucle,

puesto que nos interesa que se ejecute al menos una vez.

Se utiliza la función de conversión CSng para convertir el texto introducido por el

usuario mediante InputBox a un número de tipo Single, para poder almacenarlo

en la variable i.

Sub PreguntarHastaValorCorrecto()

Dim i As Single

Do

i = CSng(InputBox("Introduzca un valor menor que 10", Título))

Loop While i >= 10

End Sub

En la definición de la condición vemos que Until es lo contrario de While, es

decir, empleando el operador de negación antes de la condición, Until es igual

que While Not y al contrario, While es lo mismo que Until Not. En los

ejemplos anteriores se podrían haber escrito las condiciones de la siguiente manera:

Do While Not IsEmpty(ActiveCell)

Y para el segundo caso:

Loop Until Not i >= 10

Page 255: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 255

For Each

Una colección es un objeto que engloba a varios objetos de un mismo tipo. Por

ejemplo, la colección Worksheets de un libro, contiene todos los objetos

Worksheet de ese libro (ya dije que VBA está en inglés). Traduciendo todas las

palabras: la colección Hojas (plural) de un libro, contiene todos los objetos Hoja

(singular) de ese libro.

Podemos referirnos a un elemento concreto de la colección por su número de

índice Worksheets(1), o bien por su nombre si lo tiene, Worksheets(“nombre

de la hoja”).

Podemos recorrer todos los elementos de una colección con un bucle For Each,

con el que le decimos al programa, en el ejemplo de las hojas, algo así como: para

cada hoja en la colección de las hojas de este libro repite las siguientes

instrucciones …

Al igual que ocurre con los bucles For convencionales, el bucle For Each utiliza

una variable contador que va representando a cada uno de los objetos de la

colección. Este contador, por tanto, tiene que ser del mismo tipo que los objetos

que forman la colección. En el ejemplo, se declara la variable Hoja como un objeto

Worksheet.

Se ha utilizado la constante predefinida vbCrLf (visual basic Carriage return Line

feed, retorno de carro línea siguiente) para insertar un salto de línea en el mensaje

que se muestra al usuario para cada hoja del libro. Este mensaje incluye el nombre

de la hoja y el número de índice de la misma dentro de la colección.

Se emplea la constante predefinida vbInformation, añadida a vbOkOnly, para

indicar que en el mensaje se muestre el símbolo de información. Como en todos los

ejemplos con mensajes, se utiliza la constante Título.

Sub RecorrerHojasDelLibro()

Dim Hoja As Worksheet

For Each Hoja In ThisWorkbook.Worksheets

MsgBox "nombre: " & Hoja.Name & vbCrLf & _

"índice: " & Hoja.Index, vbOKOnly + vbInformation, Título

Next

End Sub

Page 256: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 256

Varias instrucciones con un mismo objeto

En muchas ocasiones debemos realizar varias instrucciones seguidas aplicadas

sobre un mismo objeto. Mediante el uso de bloques With se puede simplificar la

escritura del código, indicando algo así como: con este objeto realiza los siguientes

pasos.

Ejemplo sin With:

Sub SinBloqueWith()

ThisWorkbook.Worksheets("resumen").Range("A1").Value = 3

ThisWorkbook.Worksheets("resumen").Range("A1").Borders(xlEdgeBottom). _

Color = vbBlack

ThisWorkbook.Worksheets("resumen").Range("A1").Font.Italic = True

End Sub

Dentro del bloque With, en vez de tener que volver a escribir la descripción del

objeto, escribiremos un punto y a continuación la propiedad o el método que

queramos de ese objeto. Cuantas más cosas tengamos que hacer con un mismo

objeto, mayor será la ventaja de utilizar With.

El mismo ejemplo con With:

Sub ConBloqueWith()

With ThisWorkbook.Worksheets("resumen").Range("A1")

.Value = 3

.Borders(xlEdgeBottom).Color = vbBlack

.Font.Italic = True

End With

End Sub

Condicionales

Mediante las instrucciones condicionales indicamos al procedimiento cómo debe

comportarse, qué instrucciones debe llevar a cabo, según se cumplan ciertos

criterios o no, adaptando así la ejecución del programa a las diferentes situaciones

que pueden presentarse.

Page 257: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 257

VBA ofrece dos instrucciones condicionales: If, que permite evaluar diferentes

condiciones, y Select, que permite establecer diferentes instrucciones para

diferentes valores de una misma variable.

If

El funcionamiento de esta instrucción es como decirle al programa: Si se cumple

(If) la siguiente condición, entonces (Then) haz esto. En el siguiente ejemplo, si

se supera el valor 6, se sale del bucle.

Sub CondicionUnaLinea()

Dim i As Integer ' contador para el bucle

For i = 1 To 10 Step 2

Debug.Print i 'escribimos el valor de i en la ventana inmediato

If i > 6 Then Exit For

Next

Debug.Print "Valor de i después del bucle: " & i

End Sub

Lo habitual es que queramos realizar más de una única orden si se cumple la

condición. En este caso, repartimos la instrucción If del siguiente modo

If condición Then

' instrucciones a ejecutar si se cumple la condición.

End If

Si no se cumple la condición, pero queremos comprobar otra condición distinta,

emplearemos ElseIf seguido de la nueva condición que queremos evaluar,

seguido a su vez de Then. Pueden añadirse tantas condiciones alternativas como

queramos. En el momento que una condición se cumple, se ejecutan las

instrucciones correspondientes y no se sigue comprobando el resto de condiciones.

Si queremos que en el caso de no haber cumplido ninguna condición se ejecute otro

grupo de instrucciones, lo indicaremos al final de todas las condiciones mediante la

palabra Else.

Por último, el conjunto se cierra mediante End If.

En el siguiente ejemplo se comprueba si el valor de la variable i es negativo, si es

menor que cinco, si es menor o igual que diez, y en caso de no cumplir ninguna

Page 258: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 258

condición querría decir que es mayor que 10. En cada caso se muestra un mensaje

con el intervalo a que pertenece la variable.

Un valor negativo cumpliría la condición de ser menor que cero, y también la de

ser menor que 5 y menor que 10, pero sólo se ejecutarán las instrucciones de la

primera condición que se cumpla según el orden en que se han escrito, en este

ejemplo la condición de ser menor que cero.

Se utiliza la función de conversión CInt para convertir a entero el valor

introducido por el usuario mediante InputBox. Se utilizan también diferentes

constantes predefinidas en los mensajes (vbOkOnly, vbCritical,

vbInformation, vbExclamation, vbQuestion) además de la constante Título

para los títulos de los mismos.

Sub BloqueIf()

Dim i As Integer

i = CInt(InputBox("Introduzca un valor entero", Título))

If i < 0 Then

MsgBox "valor negativo", vbOKOnly + vbCritical, Título

ElseIf i < 5 Then

MsgBox "menor que cinco", vbOKOnly + vbQuestion, Título

ElseIf i < 10 Then

MsgBox "menor que diez", vbOKOnly + vbInformation, Título

Else

MsgBox "mayor o igual que diez", vbOKOnly + vbExclamation, Título

End If

End Sub

Select Case

Esta instrucción condicional permite elegir qué parte del programa se ejecutará a

partir del valor de una variable o de una expresión que devuelva como resultado un

número o una cadena de texto.

En primer lugar indicaremos qué variable o expresión es la que vamos a evaluar

mediante la instrucción Select Case. A continuación estableceremos, mediante la

palabra Case, los diferentes casos que pueden darse, seguido cada uno de ellos de

las instrucciones a realizar si nos encontramos en el citado caso.

Page 259: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 259

Podemos añadir una última posibilidad, para el caso de que la variable o expresión

no se encuentre en ninguno de los casos contemplados. Este sería el último caso y

se especificaría mediante Case Else.

El bloque de opciones se debe concluir con la instrucción End Select.

Los casos pueden definirse con un valor

Case 5

Con una lista de valores separados por comas

Case 5, 6, 10

Con un intervalo de valores (valor menor To valor mayor):

Case 5 To 7

Con un operador de comparación, en este caso se utilizará la palabra Is:

Case Is < 5

O con una lista que mezcle de todo un poco

Case 5, 6, 9 to 10, Is > 15

Una vez que se cumple uno de los casos, no se siguen comprobando el resto de

casos, es decir, sólo se ejecutarán las instrucciones del primer caso que sea

satisfecho por el valor de la variable o la expresión que se está comparando.

A continuación se repite el mismo ejemplo realizado antes mediante If, pero ahora

utilizando Select Case.

Page 260: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 260

Sub BloqueSelect()

Dim i As Integer

i = CInt(InputBox("Introduzca un valor entero", Título))

Select Case i

Case Is < 0

MsgBox "valor negativo", vbOKOnly + vbCritical, Título

Case Is < 5

MsgBox "menor que cinco", vbOKOnly + vbQuestion, Título

Case Is < 10

MsgBox "menor que diez", vbOKOnly + vbInformation, Título

Case Else

MsgBox "mayor o igual que diez", vbOKOnly + vbExclamation, Título

End Select

End Sub

Interactuar

Hay programas que no necesitan más que ejecutarse y ya está, pero en otros casos,

puede que la mayoría, es necesario cierto grado de interactividad con el usuario,

para preguntarle cierta información, mostrarle un resultado, preguntar si llegado a

determinado punto se quiere continuar o no, etc.

Preguntar e informar al usuario

Para obtener información del usuario durante la ejecución de una macro, lo más

sencillo es emplear InputBox. Con este método del objeto Application,

aparecerá en pantalla una ventana en la que el usuario podrá introducir la

información solicitada.

Uno de los argumentos opcionales de InputBox permite facilitar un valor por

defecto en la ventana que pregunta. También es posible indicar la posición

(horizontal y vertical) en que aparecerá el cuadro de diálogo en la pantalla.

Asimismo puede indicarse una referencia al archivo de ayuda que hayas creado

para tu aplicación.

En el siguiente ejemplo se almacena dentro de la variable Respuesta el valor

introducido por el usuario mediante InputBox. Se emplea la constante Título para

el título del cuadro de diálogo, y se proporciona como valor por defecto 7.

Page 261: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 261

Respuesta = InputBox("Introduzca un número", Título, 7)

La información recopilada por InputBox es de tipo Texto, si lo que necesitas es

un número habrá que convertir el valor introducido mediante una función de

conversión de tipo de datos (ver página 271).

Si se pulsa el botón cancelar, el resultado de InputBox será el valor lógico False

(Falso). Si almacenas el resultado de InputBox en una variable tipo texto, se

guardará la cadena “Falso” (traducida), no el valor lógico False, así que ten

cuidado si empleas la hoja con una versión de Excel en otro idioma.

Si almacenas el resultado de InputBox en una variable Variant, almacenarás un

texto cuando haya una respuesta válida, pero almacenarás un valor booleano

False si se pulsa el botón cancelar.

Para evitar errores porque no coinciden los tipos de datos, puedes emplear

Cstr(False) convierte el valor booleano False en texto traducido al idioma de

la versión de Excel instalada (en nuestro caso lo convierte en “Falso”), para

comparar con el texto obtenido de InputBox y detectar si se canceló la

introducción.

Si lo que necesitas es mostrar mensajes informativos al usuario mediante un cuadro

de diálogo, dispones del comando MsgBox.

MsgBox "Hola", , Título

Page 262: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 262

Es posible utilizar estos cuadros de mensajes para recibir información mediante

botones del tipo Sí/No, Aceptar/Cancelar, …, pues utilizando MsgBox como una

función, produce como resultado un número entero correspondiente al código de

Visual Basic para el botón pulsado. No te preocupes, no hay que aprenderse estos

códigos, puedes emplear las constantes predefinidas de la enumeración

VbMsgBoxResult: vbOk, vbCancel, vbYes, vbNo, vbRetry, etc.

(empiezan por vb, de Visual Basic, seguidos del texto del botón en inglés).

La variable donde vamos a almacenar el resultado puede definirse de la siguiente

manera:

Dim Respuesta As VbMsgBoxResult

Aparte de los botones, podemos añadir un icono al mensaje mediante las constantes

vbCritical, vbExclamation, vbInformation, vbQuestion, así como

establecer un comportamiento para el mismo, por ejemplo vbApplicationModal

para que no se pueda continuar trabajando hasta que no se conteste pulsando un

botón.

Mediante las constantes vbDefaultButton, podemos especificar qué botón, de

los mostrados en el mensaje, es la opción por defecto.

El modo de añadir todas estas opciones es sumando las constantes correspondientes

en el argumento Buttons.

Caso de que dispongas de un archivo de ayuda para tu aplicación, podrás hacer

también una referencia a un tema del mismo con los argumentos HelpFile y

Context. Para mostrar el botón de ayuda deberás añadir la constante

vbMsgBoxHelpButton a la lista de botones.

En el siguiente ejemplo se almacena en la variable Respuesta la contestación del

usuario a la pregunta sobre si desea continuar. Se muestran los botones Sí y No, en

una ventana modal, esto es, que no permite continuar trabajando con Excel hasta

que se conteste, con un icono de exclamación, y estableciendo como respuesta

predeterminada el primer botón.

Page 263: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 263

Respuesta = MsgBox("¿desea continuar?", vbYesNo + vbApplicationModal _

+ vbExclamation + vbDefaultButton1, Título)

Elegir archivos

En muchas ocasiones resulta necesario que nuestro programa permita al usuario

seleccionar un archivo para abrirlo y operar con él, o permitirle elegir con qué

nombre y en qué directorio quiere guardarlo.

Desde el código de un procedimiento podemos utilizar el método

GetOpenFilename, del objeto Application, que muestra el cuadro de diálogo

abrir archivo. El resultado de este método es una cadena de texto con la ruta hasta

el archivo que el usuario seleccione.

No se abre ningún archivo ni se hace nada con ellos, simplemente se toma nota.

Es posible habilitar la selección de varios archivos simultáneamente, en cuyo caso

el resultado de este método será una matriz con los nombres de los archivos

seleccionados.

Devuelve False si el usuario cancela la selección de archivos, tanto si pulsa el

botón cancelar como si cierra el cuadro de diálogo.

Se pueden especificar filtros de archivos para que sólo aparezcan los que tengan

determinadas extensiones o determinado nombre. El modo de hacerlo es mediante

una cadena de texto formada por un nombre que se mostrará para el filtro y la

definición del filtro, separados por una coma. Si se quieren especificar varios

filtros, se escribirán en la misma cadena de texto, “nombre, filtro, nombre,

filtro,…” uno tras otro, separados por comas.

En el siguiente ejemplo se pide al usuario que seleccione un único archivo de tipo

Excel, o de tipo texto y se almacena el nombre del archivo en la variable

NombreDelArchivo. El filtro predeterminado se fija en el primero de ellos,

archivos Excel. Se utiliza la constante Título para mostrarla como título del cuadro

de diálogo.

Page 264: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 264

NombreDelArchivo = Application.GetOpenFilename( _

"archivos Excel,*.xl*,archivos texto,*.txt", 1, Título, , False)

Para aquellos casos en que queramos obtener el nombre de un archivo que aún no

exista, por ejemplo porque aún no se ha guardado, o en el caso en que se quiera

proponer un nombre de archivo predeterminado, puede utilizarse el método

GetSaveAsFilename, también del objeto Application. Este método muestra el

cuadro de diálogo guardar como de Excel y su resultado es la ruta hasta el archivo

especificado (aunque no exista). Lógicamente, sólo se puede elegir un archivo.

No se guarda el libro, ni se crea ningún archivo, simplemente se toma nota.

La definición de los filtros es igual que en el caso anterior, una cadena de texto

separando los nombres y los filtros por comas. Si no indicamos la extensión en el

nombre del archivo, se añadirá la del filtro que se haya seleccionado. Presta

atención si en la definición del filtro utilizas caracteres comodín también para la

extensión, porque se añadirán al nombre.

Si se cancela la introducción del nombre del archivo, se obtiene como resultado

False.

En el siguiente ejemplo se muestra el cuadro guardar como para indicar un nombre

de archivo, que se guardará dentro de la variable NombreDelArchivo. Se propone

Page 265: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 265

como nombre por defecto “Mi Archivo”, y como extensión por defecto la del

segundo de los filtros indicados, txt.

NombreDelArchivo = Application.GetSaveAsFilename("Mi Archivo", _

"archivos excel, *.xl*, archivo texto,*.txt", 2, Título)

Formularios personalizados

Para ciertas aplicaciones puede que lo más indicado sea crear un formulario desde

el que introducir la información necesaria para la ejecución del programa. Tal vez

en Excel, donde la cuadrícula de las hojas se presta a la creación de formularios,

pueda emplearse para muchos casos una hoja que haga las veces de formulario,

donde se anoten los datos necesarios en celdas que luego leerá el programa

(recuerda la validación de datos en las celdas para evitar errores). Con unos

botones añadidos a la hoja para ejecutar los programas, resolveremos casi todas

nuestras necesidades.

Aparte de emplear una hoja como si fuera un formulario, podemos crear un

formulario personalizado para recopilar datos o intercambiar información con el

usuario durante la ejecución de un procedimiento.

Para agregar un formulario, seleccionaremos nuestro proyecto y bien desde el

menú contextual en el explorador de proyectos, bien desde la barra de menús,

elegiremos la opción Insertar>UserForm.

Page 266: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 266

Sobre el formulario iremos colocando, como si de un collage se tratase, los

controles que elijamos de la lista de controles disponibles. Para utilizar otros

controles instalados en tu equipo, debes seleccionarlos desde

Herramientas>Controles adicionales.

Es conveniente dar nombres significativos a los controles, para luego no

confundirse. Por defecto se asigna un nombre formado por la descripción del

control y un número correlativo siguiendo el orden en que se han insertado en el

formulario, que no aclaran gran cosa. Si no vas a hacer referencia al control, el

nombre por defecto es suficiente, pero si vas a necesitar acudir posteriormente a

algún control, es mejor un nombre más explícito.

Para cada control, desde la ventana propiedades podrás configurar su apariencia, su

nombre, su aspecto y algunas cosas más. Para definir el comportamiento frente a

un evento, deberás acceder al código del mismo, para lo que debes mostrar el

código asociado al formulario con la opción Mostrar código que aparece en el

menú contextual del formulario o de cualquiera de los controles. En el editor elige

en la lista desplegable el objeto para el que vayas a definir el comportamiento y en

la lista de la derecha el evento en que vas a agregar código.

El propio formulario también tiene eventos asociados en los que podrás añadir

código.

Si desde un procedimiento quieres mostrar un formulario debes emplear el método

Show del mismo. La ejecución del programa se detendrá hasta que se cierre el

Page 267: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 267

formulario, continuando el programa con la siguiente instrucción. Para cerrar el

formulario se empleará el método Hide del mismo.

En el siguiente ejemplo, desde una macro se muestra el formulario al que hemos

llamado FormConfiguracionInicial, para que el usuario establezca las condiciones

para la ejecución del procedimiento principal del programa.

Sub MostrarFormulario()

FormConfiguracionInicial.Show

Call ProcedimientoPrincipal

End Sub

En el siguiente ejemplo se muestra el código situado en el evento al hacer clic del

botón llamado BotónIniciar, que simplemente oculta el formulario para que

continúe la ejecución de la macro. Se utiliza la palabra clave Me para hacer

referencia al propio formulario, ya que este código está almacenado en el

formulario.

Private Sub BotónIniciar_Click()

Me.Hide

End Sub

Tratamiento de errores

Las cosas no siempre salen como las habíamos pensado y puede que durante la

ejecución se produzcan errores en nuestros procedimientos, bien porque los datos

introducidos no son correctos, bien porque no tuvimos en cuenta alguna

posibilidad, bien porque nos equivocamos con los tipos de variables; el caso es

que, casi con toda probabilidad, cuando pruebes tus procedimientos te encontrarás

que durante la ejecución se producen errores.

Que se produzca un error no quiere decir que la ejecución del programa se tenga

que detener sin más. Podemos interceptar esos errores y tomar las medidas

oportunas desde el propio programa para corregirlos o evitarlos. Solamente hay que

prever qué situaciones pueden producirse durante el uso de los procedimientos,

para programar anticipándonos al problema (corrigiendo valores, validando los

datos introducidos antes de operar con ellos), o programar esperando que se

produzca un error y, una vez producido, corregir la situación para reconducirla

hacia el buen camino.

Page 268: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 268

Para interceptar los errores de ejecución, hay que decir al principio de nuestro

procedimiento que en caso de que se produzca un error, debe realizar una

determinada acción, y esto se le indica a Visual Basic mediante la instrucción On

Error.

Las alternativas que tenemos son o continuar la ejecución del programa en la

siguiente instrucción (On Error Resume Next) como si no hubiera pasado nada,

o dirigir la ejecución del programa a una rutina de tratamiento de errores

identificada con un número de línea o con una etiqueta (On Error GoTo …).

Una etiqueta sirve para identificar con un nombre una parte del código. Se

define en una línea con un texto para el nombre, sin espacios ni caracteres

especiales, seguido de dos puntos :

Cuando se produce un error, la información acerca del mismo, como el código

asociado al error, una descripción, o una referencia a la ayuda relacionada con el

error, se almacena en el objeto Err. Es posible generar un error deliberadamente en

nuestro programa a través del método Raise de este objeto Err.

Lo más sencillo para una rutina de tratamiento de errores es utilizar la instrucción

Select Case aplicada al número del error Err.Number, para identificarlo y dar

los pasos oportunos para solventarlo.

Una vez hayamos corregido el problema, para continuar la ejecución desde donde

se produjo el error, se debe utilizar la instrucción Resume. Sin ningún argumento

adicional, la ejecución vuelve otra vez a la línea en que se generó el error. Si

queremos que vuelva a la siguiente instrucción a la que generó el error se utilizará

Resume Next. Si queremos dirigir la ejecución a otra parte del código, se puede

utilizar un número de línea o una etiqueta que identifique desde dónde queremos

continuar la ejecución del código.

Normalmente el código de tratamiento de errores se sitúa al final del

procedimiento. Para evitar que se ejecute el tratamiento de errores sin que se haya

producido ningún error, antes de la etiqueta que identifica este bloque de código,

indicaremos que debe salirse del procedimiento, mediante Exit Sub o Exit

Function, según el caso.

En el siguiente ejemplo se muestra un procedimiento con control de errores. En

caso de error se dirige la ejecución a la línea etiquetada como ControlDeErrores,

Page 269: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 269

donde se corrige el valor de la variable Resultado en el caso de que se produzca un

error de desbordamiento, error número 6. Tras corregir este valor se continúa en la

siguiente instrucción a la que generó el error.

Si se produce cualquier otro error, se mostrará un mensaje indicando el número de

error, su descripción Err.Description, y con posibilidad de acceder a la ayuda

relacionada con el mismo, mediante Err.HelpFile y Err.HelpContext.

Sub EjemploTratamientoErrores()

On Error GoTo ControlDeErrores

Dim Resultado As Integer

'

' ...código del procedimiento ...

'

Exit Sub

ControlDeErrores:

Select Case Err.Number

Case 6 'Desbordamiento

Resultado = 0

Resume Next

Case Else

' En otro caso se muestra un mensaje descriptivo del error

MsgBox "Error número " & Err.Number & vbCrLf & Err.Description, _

vbOKOnly + vbMsgBoxHelpButton, Título, Err.HelpFile, _

Err.HelpContext

End Select

End Sub

Cuando tu proyecto esté aparentemente terminado ponte en el lugar del futuro

usuario, que desconoce por completo lo que has programado, y prueba el programa

tratando de hacer que se equivoque. Toma nota si se produce algún error, para

incluir en el tratamiento de errores los pasos necesarios para corregirlo. Cuanto

mejor terminado quede el programa ahora que aún lo tienes fresco en la cabeza,

menos errores surgirán con el uso y menos tiempo perderás más adelante tratando

de recordar su funcionamiento para poder corregirlos.

Page 270: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 270

Funciones disponibles en VBA

Visual Basic incorpora muchas funciones que permiten realizar operaciones

matemáticas, trabajar con textos, realizar comparaciones, convertir tipos de datos,

operar con fechas, …

No pretendo incluir una relación exhaustiva de estas funciones, pues para eso ya

cuentas con el archivo de ayuda de Visual Basic (dentro del tema Referencia del

lenguaje de Visual Basic, Funciones), pero sí he querido destacar algunas de ellas,

las más simples y puede que a la vez las más útiles.

Dentro del código del programa se pueden emplear funciones de la hoja de

cálculo, no todas, pero sí la mayor parte de ellas. Esto se hace a través de

Application.Worksheetfunction

Matemáticas

+ - * / ^ operadores matemáticos básicos.

Sqr raíz cuadrada.

Sin, Cos, Tan, Atn funciones trigonométricas.

Abs, Sgn valor absoluto y signo.

Int, Fix, Round para redondear números.

Exp, Log exponenciación y logaritmos, ambos en base e.

Rnd generación de números aleatorios.

Page 271: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 271

Texto

& operador para concatenar cadenas de texto.

Trim, Ltrim, Rtrim para eliminar espacios.

Chr carácter a partir de su código ASCII.

Len número de caracteres del texto.

Left, Right, Mid extraer caracteres de un texto.

Instr, Instrrev, Replace buscar y reemplazar un texto dentro de otro.

Ucase, Lcase convertir a mayúsculas y minúsculas.

Val convertir una cadena en número.

Información

En muchas ocasiones es útil conocer no el valor de una variable, sino el tipo de

dato que contiene, principalmente si estás trabajando con variables tipo Variant.

También puede interesarnos conocer si se ha proporcionado un argumento o no, o

si una variable contiene un valor nulo o un número, o si una expresión produce un

error. Con las funciones de información, que comienzan por Is, obtendremos un

valor verdadero o falso según el argumento se corresponda o no con el tipo

buscado.

IsArray Matriz IsError error IsNumeric número

IsDate Fecha IsMissing falta IsObject objeto

IsEmpty Vacío IsNull nulo

Si necesitamos conocer con qué tipo de variable estamos trabajando, la función

TypeName, cuyo argumento es el nombre de una variable, da como resultado un

texto con el nombre del tipo a que pertenece el argumento. También disponemos de

la función VarType, que devuelve un entero según el tipo de variable (podemos

emplear constantes predefinidas vbString, vbInteger, vbNull, …).

Page 272: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 272

Funciones de conversión

Es frecuente tener que convertir unos tipos de datos en otros, por ejemplo para

poder compararlos entre sí, ya que si no son del mismo tipo de datos la

comparación no es posible. Todas estas funciones comienzan por la letra C de

convertir seguida de una abreviatura del tipo de dato al que se convertirá el

argumento de dicha función.

CBool Booleano CInt Integer CByte Byte

CLng Long CCur Currency CSng Single

CDate Date CStr String CDbl Double

CVar Variant CDec Decimal

Las ideas claras

Organización

Los que saben de programación, bueno, sólo los más organizados, recomiendan

seguir ciertas normas a la hora de nombrar las variables para facilitar la

comprensión posterior del código, como anteponer un prefijo al nombre que

indique de qué tipo de variable se trata (str para las tipo String, int para las tipo

Integer, etc.) aunque ni siquiera en todos los ejemplos de la ayuda de Visual

Basic se utilizan estos prefijos. Particularmente creo que es mucho más importante,

desde el punto de vista de la comprensión, utilizar nombres descriptivos de la

utilización o la finalidad de las variables, así como declararlas siempre,

comentando las declaraciones para explicar todo lo que sea necesario.

Facilita la lectura de tu código sangrando las instrucciones de un mismo bloque. A

medida que tu código va creciendo es fácil despistarse y no saber muy bien dónde

estás escribiendo, así que toda ayuda para clarificar tu programa es de agradecer.

Page 273: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 273

Sub BuclesEjemploSinSangría()

Dim i, j, k 'contadores

For i = 1 To 3

For j = 1 To 5

For k = 15 To 23

'código a repetir

Next

Next

Next

End Sub

Sub BuclesEjemploConSangría()

Dim i, j, k 'contadores

For i = 1 To 3

For j = 1 To 5

For k = 15 To 23

'código a repetir

Next

Next

Next

End Sub

Opciones del módulo

Al principio de un módulo se pueden establecer una serie de opciones que definirán

algunos aspectos del comportamiento del programa.

Option Explicit activa que la declaración de variables sea obligatoria.

Eligiendo esta opción, solamente podrás emplear en los procedimientos variables

que hayan sido definidas previamente, produciéndose un error en caso contrario al

tratar de compilar el programa. Exigiendo la declaración explícita de los nombres

de las variables garantizamos que no haya erratas al escribir sus nombres y que

todas las variables que se utilizan se hayan pensado antes, al menos una vez.

Option Base establece el límite inferior por defecto de las variables matriciales,

que se aplicará a aquellas matrices para las que al definirlas no se fije un valor para

el límite inferior. Option Base 1 hace que el primer elemento de una matriz sea

el 1. Si queremos que las matrices comiencen en el elemento 0, tendremos que

escribir en nuestro módulo Option Base 0, esta última opción es la

predeterminada si no indicamos nada. Sólo se puede establecer la base en 0 o en 1,

en ningún otro valor.

Option Private Module. Si definimos esta opción para nuestro módulo

impediremos que sean visibles los procedimientos del mismo desde fuera del

proyecto. Tiene su interés en los casos en que desde un proyecto hacemos

referencia a otro. Si no indicamos nada, por defecto, nuestros procedimientos

públicos estarán disponibles en otros proyectos que hagan referencia al nuestro.

Page 274: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 274

Option Compare establece el modo en que se compararán las cadenas de texto en

nuestro procedimiento, pudiendo elegir entre modo texto y modo binario. Si

elegimos la opción texto, Option Compare Text, se considerarán iguales las

mayúsculas y las minúsculas y, para una misma letra, se ordenará primero la letra

sin acentuar y luego la acentuada. Si elegimos la opción binaria, Option

Compare Binary, se ordenan primero todas las letras mayúsculas, luego todas las

minúsculas y luego las letras acentuadas. Si no decimos nada, la opción por defecto

es realizar la comparación en modo binario.

Alcance

Si definimos una variable dentro de un procedimiento, el ámbito de esa variable

será únicamente el procedimiento, es decir, que no podremos acceder a esa variable

desde otro procedimiento. La variable se crea al empezar el procedimiento y se

elimina al terminar el procedimiento.

Si definimos una variable al inicio del módulo, antes que cualquier procedimiento,

esa variable estará disponible para todos los procedimientos de ese mismo módulo,

pero no será accesible desde otros módulos. A esto se le conoce como variable de

ámbito privado. Al ser ésta la opción por defecto para las variables de módulo, es

lo mismo declarar una variable con Dim:

Dim nombre_variable_de_módulo As Tipo_de_variable

que declararla mediante Private:

Private nombre_variable_de_módulo As Tipo_de_variable

Si queremos declarar una variable de módulo para que sea accesible desde el resto

del proyecto, emplearemos Public.

Public nombre_variable_de_módulo As Tipo_de_variable

Al definir un procedimiento, Sub o Function, también podemos anteponer

Public o Private, según queramos que el procedimiento sea accesible

respectivamente desde fuera del módulo, o sólo desde otros procedimientos del

mismo módulo. En el caso de los procedimientos, al contrario que con las

variables, la opción por defecto si no indicamos nada es Public.

Sub ProcedimientoPúblico1()

' procedimiento accesible desde fuera del módulo

End Sub

Page 275: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 275

Public Sub ProcedimientoPúblico2()

'procedimiento accesible desde fuera del módulo

End Sub

Private Sub ProcedimientoPrivado()

' procedimiento accesible sólo desde este mismo módulo

End Sub

Desplazarse por las hojas

Trabajando a mano, sólo podemos modificar la celda activa, sólo podemos aplicar

un formato al rango seleccionado, sólo podemos eliminar una hoja seleccionándola

previamente, pero mediante un procedimiento programado no hace falta activar o

seleccionar un objeto para interactuar con él y, por ejemplo, leer o asignar un valor

a una de sus propiedades.

No hay que confundir seleccionado con activo. Podemos tener varias celdas

seleccionadas, pero sólo una de ellas será la celda activa; podemos tener

varias hojas seleccionadas, pero sólo una de ellas será la hoja activa.

Por ejemplo, cuando de rangos se trata, podemos tener seleccionada una celda y

asignar valor a otra, sin que por esto se active esa segunda celda.

Sub AsignarValoresSinSeleccionar()

' macro que selecciona una celda y asigna valor a otras celdas distintas

Range("A1").Select

Range("C3:D6").Value = 7

End Sub

Para los rangos, nos referiremos a las celdas de dentro del mismo de manera

similar a como lo hacemos con las celdas de la hoja, que no deja de ser otro rango,

el mayor de todos. Por ejemplo, si tenemos un rango seleccionado, con la siguiente

instrucción coloreamos de amarillo la celda de la segunda columna (B) y primera

fila (1) de ese rango:

Selection.Range("B1").Interior.Color=vbYellow

Lo mismo, esta vez con color azul, puede conseguirse, por ejemplo, de la siguiente

manera:

Selection.Cells(1,2).Interior.Color=vbBlue

Page 276: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 276

Esto es válido aunque la referencia de filas y columnas se salga de la selección.

Estas referencias se empiezan a contar, en filas y columnas, desde la esquina

superior izquierda de la selección.

En tu código puedes emplear las constantes predefinidas por VBA o por

Excel (como vbYellow, vbBlue para los colores de los ejemplos anteriores)

para no tener que memorizar sus valores numéricos.

Otra manera de referirse a rangos es mediante un desplazamiento relativo a otro

rango, para lo que se emplea la propiedad Offset del rango, con la que se hace

referencia a otro rango de las mismas dimensiones, pero desplazado el número de

filas y columnas que se indique como argumentos.

Por ejemplo, para que el contenido de las celdas seleccionadas sea igual al

contenido de las celdas situadas dos columnas a la izquierda, escribiríamos:

Selection.Value = Selection.Offset(0,-2).Value

Desde luego que el rango que desplacemos puede ser una única celda, en cuyo caso

el rango desplazado sería también una celda a tantas filas y columnas de la inicial

como queramos. Los valores de desplazamiento de filas y columnas tienen el cero

en la celda y son positivos hacia la derecha y hacia abajo, y negativos hacia la

izquierda y hacia arriba.

ActiveCell.Offset(-1, 0).Value = "La celda de encima de la Activa"

También es posible acceder a rangos en otras hojas, o en otros libros, sin tener que

activarlos previamente. Por ejemplo, si tenemos dos hojas en nuestro libro,

llamadas “datos” y “resumen”:

Sub AsignarValoresOtraHoja()

' macro que asigna valores a una celda que se encuentra en otra hoja

Worksheets("datos").Activate

' y ahora, sin cambiar de hoja activa

Worksheets("resumen").Range("A1").Value = _

"escrito sin estar activa la hoja"

End Sub

Si tenemos dos libros, llamados “original.xlsx” y “copia.xlsx”, vamos a asignar

valores a celdas de la hoja “datos” del libro “copia”, manteniendo activo el libro

“original”:

Page 277: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 277

Sub AsignarValoresOtroLibro()

' macro que asigna valores a una celda en otro libro, sin activarlo

Workbooks("original.xlsx").Activate ' libro original activado

Workbooks("copia.xlsx").Worksheets("resumen").Range("A1").Value = _

"escrito en copia sin estar activo el libro"

End Sub

Nomenclatura útil

No está de más conocer cierta nomenclatura para poder referirnos en nuestros

procedimientos a los elementos activos en cada momento.

ActiveCell celda activa

ActiveChart gráfico activo

ActivePrinter impresora activa

ActiveSheet hoja activa

ActiveWindow ventana activa

ActiveWorkbook libro activo

ThisWorkbook para referirnos al libro en que se encuentra el código.

ThisCell empleada en funciones personalizadas, para hacer referencia a

la celda en la que está escrita dicha función.

Todos ellos son propiedades del objeto Application.

SelectedSheets hojas seleccionadas, pertenece al objeto ventana (Window).

Selection Se refiere al objeto seleccionado en cada momento.

Dependiendo de donde se aplique se referirá a un rango, a un

gráfico, un eje, una línea, una forma,… Son muchos los

objetos que tienen esta propiedad.

Me Se refiere al objeto donde se encuentra el código, que puede

ser un formulario, una hoja, o un libro. No es aplicable a los

módulos.

Page 278: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 278

Configuración regional

Los caracteres para el separador decimal y el separador de listas en VBA no son

configurables y es independiente de la configuración del ordenador. Cuando

escribas código de programación debes tener en cuenta lo siguiente:

El separador decimal es el punto. No hay separador de miles.

El separador de listas es la coma. Esto se emplea por ejemplo para separar los

argumentos de las funciones.

El delimitador de textos es la comilla doble ".

En comparaciones de cadenas de texto, el carácter comodín para cualquier texto es

el asterisco *. Para un único carácter el comodín es la interrogación ?. Para un

dígito se emplea como comodín la almohadilla #.

Para indicar un carácter de entre una lista, se incluirán los caracteres entre

corchetes separados por comas [a,k,f]. Para considerar un carácter no incluido en la

lista, se antepondrá a la lista una exclamación[!a,k,f].

Para indicar un intervalo de caracteres, se incluirán entre corchetes el primer y el

último carácter del intervalo separados por un guión [a-f]. Para un carácter no

incluido en el intervalo se antepone una exclamación [!a-f].

Si con tus macros escribes funciones en las celdas del libro, utiliza las fórmulas

originales de Excel en inglés mediante las propiedades Formula o FormulaR1C1

del rango o celda donde vayas a escribir la fórmula para garantizar que funcionen

correctamente en cualquier equipo aunque tenga Excel instalado en otro idioma

diferente al tuyo. No utilices FormulaLocal ni FormulaR1C1Local para escribir

las fórmulas traducidas, tal como las escribirías directamente en una celda. No es

necesario que aprendas las funciones de Excel en Inglés, el grabador de macros

graba las funciones en versión original, así que puedes grabar una macro auxiliar

en la que introduzcas la fórmula que te interese en una celda, para luego comprobar

el código que ha generado el grabador.

Bien está lo que bien acaba

El ordenador no da nada por supuesto así que, salvo las sentencias que ocupan una

única línea, debes indicar el inicio y el fin de tus instrucciones para que Visual

Basic sepa dónde empiezan y dónde acaban las órdenes.

Page 279: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 279

Todo Sub tiene su End Sub, todo Function tiene su End Function, todo For

tiene su Next, todo Do tiene su Loop, todo If tiene su End If, todo Select tiene

su End Select, todo With tiene su End With.

Guarda tus procedimientos

Puedes exportar los módulos de programación que has creado a un archivo de texto

que, además de poder editarse con cualquier programa de edición de texto, facilita

la copia de seguridad de tus macros.

Puedes crear un complemento con las funciones personalizadas que vayas a utilizar

en varios libros. Esto se hace guardando el libro donde se encuentra el proyecto

como complemento, con extensión .xlam (.xla en versiones anteriores); este

archivo no tiene por qué guardarse en una ubicación específica.

Para que las funciones del complemento estén disponibles, hay que dar de alta el

complemento (ver página 35) y activarlo para que Excel lo cargue al iniciarse.

Añadir una descripción y categoría al procedimiento

Al grabar una macro, en el formulario para asignar un nombre a la misma e indicar

dónde queremos grabarla, tenemos la posibilidad de agregar una descripción a la

macro, descripción que luego aparecerá en la ventana de selección de macros. Este

comentario se almacena en unas líneas que anteceden al procedimiento, pero que el

editor de VBA oculta a la vista. Si exportamos el módulo como archivo de texto y

lo editamos, vemos el contenido de estas líneas.

No se pueden añadir estas líneas, para modificar o agregar una descripción para

nuestra macro, escribiéndolas directamente en el editor de VBA. Si queremos

añadir una descripción a una macro o función existente, seleccionaremos la macro

en la lista de macros disponibles (ver página 57) y luego pulsaremos el botón

Opciones. Si se quiere agregar una descripción a una función personalizada,

aunque no aparezca en la lista de macros, se puede escribir su nombre

manualmente en el espacio habilitado para el nombre de la macro, para luego

acceder a sus opciones.

Otra cosa que podemos hacer es exportar el módulo de código a un archivo de

texto (.bas), para poder editarlo. Para agregar comentarios a procedimientos que no

los tengan, basta con añadir una línea como la siguiente, al principio del

procedimiento, indicando el nombre del procedimiento.

Page 280: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 280

Attribute nombredelprocedimiento.VB_Description = "Texto descriptivo"

Esto es válido tanto para macros (Sub) como para funciones (Function). Para las

primeras, la descripción aparece en el formulario de selección de macros para

ejecutar, mientras que para las segundas, la descripción aparece en el asistente para

insertar funciones.

Mediante el método Application.MacroOptions, podemos establecer toda una

serie de propiedades asociadas a un procedimiento, como su descripción o la

categoría a la que pertenece una función (una categoría existente o una

personalizada). Si has creado un archivo de ayuda para tus procedimientos, con

este método se puede establecer la relación entre el procedimiento y su tema de

ayuda.

Este método se encarga de añadir al módulo las líneas no visibles Attribute, con

lo que no sería necesario recurrir a editar el archivo .bas del código.

Dado que las descripciones se almacenan en líneas ocultas dentro del código, no es

necesario ejecutar estas instrucciones cada vez que se abra Excel o el libro, basta

con haberlo ejecutado una vez, ya sea mediante un procedimiento o directamente

en la ventana inmediato, para que al cargar el proyecto Excel lea estas propiedades

de los procedimientos y estén disponibles en los formularios de selección de

macros o de insertar funciones.

Page 281: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 281

Por ejemplo, para que la función del ejemplo anterior aparezca dentro de la

categoría de funciones “Ya sé Excel, pero necesito más” (definido en la constante

Título) con una descripción de su contenido, deberíamos ejecutar la siguiente

instrucción.

Application.MacroOptions Macro:="SumarDosEnteros", Category:=Título

Para agregar una descripción utilizaríamos el argumento Description.

Expresando la instrucción sin los nombres de los argumentos:

Application.MacroOptions "SumarDosEnteros",_

"Función de ejemplo para sumar don números enteros", , , , , Título

Page 282: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 282

Proteger el código

Si vas a compartir con otras personas los procedimientos que has programado, tal

vez te interese proteger con una contraseña la visualización del código, no sólo

para que no copien tu programa, sino para evitar que accidentalmente alguien

curioso pueda alterar lo programado y deje de funcionar correctamente.

En las propiedades del proyecto, accesibles desde el menú herramientas o desde el

menú contextual en el explorador de proyectos, disponemos de una pestaña con

opciones generales del proyecto, como el nombre y descripción del mismo o el

archivo de ayuda asociado.

En la segunda pestaña, denominada Protección, es donde podremos bloquear el

proyecto para que no sea visible el código si no se introduce la contraseña

adecuada. Si se establece una contraseña pero no se activa la opción de bloquear el

código para visualización, simplemente impediremos que se acceda a las

propiedades del proyecto, pero sí se podrá modificar el código.

Algunos bucles y ejemplos útiles

Normalmente grabaremos una macro para realizar con un solo paso una tarea

repetitiva. También normalmente la macro tiene que ejecutarse muchas veces, con

lo que volvemos a tener otra tarea repetitiva: la ejecución de la macro. Si

envolvemos con un bucle la macro que hemos grabado, resolvemos la tarea

repetitiva de tener que ejecutarla una y otra vez.

A continuación se explican una serie de bucles útiles a la hora de repetir una macro

grabada, o unas instrucciones programadas. Se mostrará cómo recorrer todas las

hojas del libro, todos los objetos de gráfico dentro una hoja, todas las hojas de

gráficos del libro, todos los libros abiertos, todas las celdas que contienen datos en

una lista, todos los escenarios de una hoja, todas las vistas personalizadas de un

libro, …

Todos estos ejemplos que se incluyen a continuación son dobles: además del

bucle en sí mismo se han incluido unas instrucciones de ejemplo, también

útiles, para ilustrar esa tarea elemental, la que podemos haber grabado con el

grabador de macros y luego haber retocado ligeramente.

Page 283: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 283

Recorrer todos los libros abiertos

Si normalmente trabajas con varios libros simultáneamente, puede resultarte de

utilidad un procedimiento que permita guardar todos los libros abiertos, en vez de

tener que guardarlos uno a uno.

Recorreremos con un bucle For Each todos los libros que se encuentren abiertos,

es decir, recorreremos la colección Workbooks y los iremos guardando con el

método Save.

Sub GuardarTodosLosLibrosAbiertos()

Dim Libro As Workbook

For Each Libro In Workbooks

Libro.Save

Next

End Sub

Recorrer todos los escenarios

Si has creado varios escenarios en una hoja de tu libro, puede que tengas que

imprimir todos, pero tener que ir mostrando cada uno de ellos para imprimir la hoja

particularizada para cada grupo de valores puede resultar lento, aburrido y tal vez

olvides alguno.

Vamos a recorrer todos los escenarios definidos en la hoja activa, los mostraremos

e imprimiremos la hoja particularizada para el conjunto de valores del escenario.

Para esto utilizamos la colección Scenarios de la hoja. Para mostrar el escenario

se utiliza el método Show del escenario. Por último, para imprimir la hoja se utiliza

el método PrintOut.

Sub ImprimirEscenarios()

' Bucle para imprimir todos los escenarios de la hoja activa

Dim Escenario As Scenario

For Each Escenario In ActiveSheet.Scenarios

Escenario.Show ' mostramos el escenario

ActiveSheet.PrintOut ' imprimimos la hoja

Next

End Sub

Page 284: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 284

Recorrer todas las vistas personalizadas

Supongamos que un libro contiene vistas personalizadas, con diferentes columnas

ocultas, diferentes filtros aplicados a los datos y distintas configuraciones de

impresión. Si queremos imprimir cada una de las vistas personalizadas definidas,

habrá que mostrar cada una de las vistas e imprimir la hoja activa en cada una de

ellas.

Vamos a crear una macro que realice este trabajo por nosotros, recorriendo todas

las vistas definidas (colección CustomViews del libro), mostrándolas (método

Show) e imprimiendo la hoja activa (método PrintOut).

Sub ImprimirVistasPersonalizadas()

' Bucle que imprime todas las vistas del libro activo

Dim Vista As CustomView

For Each Vista In ActiveWorkbook.CustomViews

Vista.Show

ActiveSheet.PrintOut

Next

End Sub

Recorrer todas las celdas del rango seleccionado

Supongamos que tenemos que lidiar periódicamente con datos procedentes de otras

aplicaciones, en cuyas cadenas de texto aparecen sistemáticamente espacios antes y

después del texto que realmente interesa.

Vamos a definir un procedimiento que elimine todos los espacios al principio y al

final de los textos contenidos en cada una de las celdas seleccionadas.

Definiremos una variable de tipo Range a la que llamaremos Celda, para

representar una celda. Utilizaremos el objeto Selection, que representa a la

selección actual. Mediante un bucle recorreremos cada celda que hay en la

selección (For Each Celda in Selection … ). Para eliminar los espacios

emplearemos la función Trim, que incorpora Visual Basic entre otras funciones

para operar con textos.

Para concluir, mostraremos un mensaje mediante MsgBox para avisar que se ha

completado la macro. Como título para estos cuadros de mensaje emplearemos la

Page 285: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 285

constante Título, que definimos al principio del módulo, para que esté disponible

en todos los procedimientos del mismo.

Option Explicit

Const Título As String = "Ya sé Excel, pero Necesito Más"

Sub EliminarEspaciosCeldasSeleccionadas()

' macro que eliminará los espacios de las celdas seleccionadas

' antes de ejecutarla seleccionar las celdas sobre las que actuar

Dim Celda As Range

For Each Celda In Selection

Celda.Value = Trim(Celda.Value)

Next

MsgBox "Espacios eliminados con éxito", vbOKOnly, Título

End Sub

Recorrer todas las hojas del libro

Supongamos que tenemos que realizar las mismas tareas en todas las hojas de un

libro. Nos interesaría disponer de una macro con los pasos a dar en cada hoja, para

luego envolver estos pasos con un bucle que los repitiera en todas las hojas

existentes.

Vamos a recorrer todas las hojas de cálculo del libro activo, escribiremos en la

celda B2 de cada hoja su nombre. Para almacenar el nombre de esta celda B2 se

definirá una constante.

Definiremos una variable de tipo Worksheet para referirnos a cada hoja, y a la

que llamaremos Hoja. Luego recorreremos la colección Worksheets del objeto

ActiveWorkbook, realizando las tareas en cada uno de los elementos de la

colección.

Page 286: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 286

Sub ObtenerNombresTodasLasHojas()

' macro que recorre todas las hojas del libro

' anotamos en la celda B2 de cada hoja el nombre de la misma

Const CeldaNombre As String = "B2"

Dim Hoja As Worksheet

For Each Hoja In ActiveWorkbook.Worksheets

Hoja.Range(CeldaNombre) = Hoja.Name

Next

MsgBox "Todas las Hojas recorridas con éxito", vbOKOnly, Título

End Sub

Recorrer las hojas seleccionadas

Supongamos que tenemos una serie de hojas similares, cada una de las cuales tiene

un código en la celda B2 que identifica el contenido de la hoja. Vamos a recorrer

las hojas de cálculo seleccionadas para llamar a cada hoja con el código que figura

en esa celda.

Emplearemos, como en el ejemplo anterior, una variable de tipo Worksheet, para

recorrer con ella la colección SelectedSheets. Esta colección de hojas

seleccionadas no es una propiedad del libro, puesto que un mismo libro puede tener

varias ventanas con hojas seleccionadas diferentes, se trata de una colección que

pertenece a la ventana, que a su vez pertenece a la colección Windows del libro

activo.

De las ventanas del libro activo, la ventana activa es la número 1.

Sub NombrarHojasSeleccionadas()

' macro que recorre las hojas Seleccionadas

' llamaremos a la hoja con el valor de la celda B2

Const CeldaNombre As String = "B2"

Dim Hoja As Worksheet

For Each Hoja In ActiveWorkbook.Windows(1).SelectedSheets

Hoja.Name = Hoja.Range(CeldaNombre)

Next

MsgBox "Todas las Hojas renombradas con éxito", vbOKOnly, Título

End Sub

Page 287: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 287

Recorrer una lista de datos

Supongamos que un aparato electrónico de medida genera unos archivos de texto

separados por comas con la información que está midiendo, pero con la

particularidad de que cada registro no está en una única fila, sino que ocupa dos

filas: en la primera fila de cada registro figuran los datos identificativos del punto

leído y en la segunda fila aparecen tres datos de los parámetros medidos.

Con esta estructura del archivo, Excel no es capaz de tratar adecuadamente los

datos, puesto que se necesitaría que cada registro ocupase sólo una fila.

Vamos a resolver este problema de la siguiente manera: Abriremos el archivo de

texto con Excel, nos situaremos en la primera celda con datos y grabaremos una

macro, activando la opción de referencias relativas, que consistirá en mover los tres

datos de las lecturas que se encuentran en la fila de debajo de la actual para

colocarlos a la derecha de los datos de la fila actual. Como la segunda fila, la que

tenía las lecturas, ahora está vacía, la eliminamos. Con la intención de prepararnos

para repetir el proceso con el siguiente dato, activamos la celda de debajo de la

anterior. Detenemos la grabación. Esta macro que acabamos de grabar la vamos a

repetir ahora en todas las filas que tengan datos, y esto lo podemos saber porque en

todos los datos hay un valor en la primera columna, que es la celda activa en cada

paso de la macro, así que lo repetiremos hasta que la celda activa, que va

avanzando en cada ciclo del bucle, esté vacía Do Until

IsEmpty(ActiveCell) ¿había dicho antes que esto se parece mucho al inglés?

Sub ConvertirArchivoLecturas()

' macro que convertirá un listado con registros en dos filas

' a un listado con cada registro en una sola fila

' constante para definir la primera celda que contiene datos

Const PrimeraCeldaConDatos As String = "A1"

' seleccionamos la primera celda

Range(PrimeraCeldaConDatos).Select

' Bucle que se repite hasta que la celda activa esté vacía

Do Until IsEmpty(ActiveCell)

' Instrucciones generadas automáticamente al grabar la macro

ActiveCell.Offset(1, 1).Range("A1:C1").Select

Selection.Cut Destination:=ActiveCell.Offset(-1, 3).Range("A1:C1")

Page 288: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 288

ActiveCell.Rows("1:1").EntireRow.Select

Selection.Delete Shift:=xlUp

ActiveCell.Select

' Fin de las instrucciones grabadas

Loop

MsgBox "Datos convertidos con éxito", vbOKOnly, Título

End Sub

Recorrer todas las hojas de gráfico

Cuando tenemos muchos gráficos es fácil que tengamos escalas diferentes entre

ellos, pues por defecto se adaptan automáticamente a los valores representados.

Vistos de uno en uno no pasa nada, pero si pretendemos comparar entre sí varios

gráficos, facilitaría mucho las cosas que todos ellos dispusiesen de la misma escala

vertical.

Vamos a recorrer todas las hojas de gráfico del libro activo, colección Charts,

para igualar la escala vertical de todos los gráficos, para ello preguntaremos al

usuario mediante InputBox los valores máximo y mínimo a aplicar.

Sub IgualarEscalaTodosGráficos()

' Macro que iguala las escalas de los gráficos de las hojas de gráfico

' Se preguntarán al usuario los valores mínimo y máximo

Dim HojaGráfico As Chart

Dim ValorMínimo As Single, ValorMáximo As Single

' preguntamos por los valores máximo y mínimo

ValorMínimo = CSng(InputBox("valor MÍNimo", Título))

ValorMáximo = CSng(InputBox("valor MAXimo", Título))

' recorremos las hojas de gráfico seleccionadas

For Each HojaGráfico In ActiveWorkbook.Charts

' aplicamos los valores al eje de valores

With HojaGráfico.Axes(xlValue)

.MinimumScale = ValorMínimo

.MaximumScale = ValorMáximo

End With

Next

Page 289: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 289

MsgBox "Escalas igualadas en las hojas de gráfico", vbOKOnly, Título

End Sub

Recorrer las hojas de gráfico seleccionadas

Un gráfico en Excel está muy bien, pero para verlo necesitamos tener Excel

instalado. Podemos copiar el gráfico y pegarlo en nuestro programa de edición de

texto como una imagen, pero sería muy útil poder exportar los gráficos de Excel a

un archivo de imagen para poder emplearlos más adelante con el programa de

maquetación que prefieras, o para emplearlos en una página web.

Vamos a recorrer los gráficos de las hojas de gráfico seleccionadas, exportándolos

a archivo de imagen gif con el método Export del gráfico. Para cada gráfico se

preguntará al usuario dónde guardar el archivo de imagen, empleando como

nombre por defecto para el archivo el nombre de la hoja.

Se añade también una comprobación, para no exportar el gráfico si el usuario

cancela el cuadro de diálogo donde se le pregunta el nombre del archivo.

No se comprueba si ya existe un archivo con el mismo nombre, en cuyo caso se

sobrescribirá sin preguntar.

Sub ExportarImagenGráficosSeleccionados()

' Macro que exportará a archivos gif los gráficos seleccionados

Dim HojaGráfico As Chart

Dim NombreArchivo

For Each HojaGráfico In ActiveWorkbook.Windows(1).SelectedSheets

With HojaGráfico

.Select ' lo seleccionamos para que se muestre en pantalla

NombreArchivo = Application.GetSaveAsFilename(.Name & ".gif", _

"Imagen Gif, *.gif", , "Elija el nombre del archivo. " & Título)

' si no se cancela la introducción

If TypeName(NombreArchivo) = "String" Then

.Export NombreArchivo, "gif"

End If

End With

Next

MsgBox "Gráficos seleccionados exportados a imagenes", vbOKOnly, Título

Page 290: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 290

End Sub

Recorrer todos los gráficos de una hoja

Si en una hoja tenemos varios gráficos con la intención de imprimirlos a la vez,

junto con más datos presentes en las celdas de la hoja, podemos mejorar el aspecto

y facilitar la lectura y comparación de los gráficos si todos están alineados y tienen

el mismo tamaño.

Vamos a recorrer todos los gráficos presentes en una hoja, e igualaremos su altura,

su anchura y su posición en horizontal para que queden alineados en la hoja,

tomando como referencia los valores del primero de ellos (el primero de la

colección ChartObjects).

Sub IgualarTamañoyPosiciónGráficosEnHoja()

' Macro que iguala el tamaño y la posición horizontal de todos _

los gráficos de la hoja activa

Dim Gráfico As ChartObject

Dim PosHorizontal, Alto, Ancho

' tomamos como referencia el primer gráfico

With ActiveSheet.ChartObjects(1)

Alto = .Height

Ancho = .Width

PosHorizontal = .Left

End With

For Each Gráfico In ActiveSheet.ChartObjects

With Gráfico

.Height = Alto

.Width = Ancho

.Left = PosHorizontal

End With

Next

MsgBox "Tamaño y posición igualados con éxito", vbOKOnly, Título

End Sub

Page 291: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 291

Abrir y cerrar libros

Vamos a suponer que, por circunstancias de la vida, han llegado hasta tus manos

muchísimos libros (dos o tres, o incluso cien o más) procedentes de una campaña

de toma de datos realizada por diferentes personas. Ahora tu misión es agrupar en

un único archivo todos esos datos que se encuentran en estos libros con estructura

similar.

Vamos a preguntar al usuario de esta macro qué archivos contienen los datos que

quiere importar, los iremos abriendo uno a uno, y copiaremos la hoja que contiene

los datos, de nombre Datos, al libro activo en el momento de ejecutar la macro.

Los nombres de los archivos seleccionados por el usuario se almacenarán en una

matriz. Se realizará un bucle por los elementos de la matriz, para lo cual se

emplean las funciones LBound y UBound (lower bound y upper bound) para

obtener los límites inferior y superior de la misma. Se abre cada libro en modo sólo

lectura, se copia la hoja de datos al libro inicial y se cierra sin guardar los cambios.

Se realiza una comprobación con la función VarType, para terminar la ejecución

de la macro si el usuario cancela el cuadro de diálogo de selección de archivos.

Se utilizan dos objetos, HojaInicial para referirse a la hoja activa al ejecutar la

macro y LibroDatos, que se referirá a cada uno de los libros de datos que se vayan

abriendo. Al final de la macro se liberan estos objetos asignándoles el valor

Nothing.

Sub ImportarHojasDeVariosLibros()

' macro que permite elegir varios libros, para importar hojas de datos

Const NombreHojaDatos As String = "Datos"

Dim HojaInicial As Worksheet, LibroDatos As Workbook

Dim Selección 'variable para almacenar los nombres de los archivos

Dim i As Integer ' contador auxiliar

Set HojaInicial = ActiveSheet

' empleamos el método GetOpenFilename para elegir los archivos

' con argumento multiselect=True para poder elegir varios archivos

Selección = Application.GetOpenFilename("Archivos Excel,*.xl*", , _

"Elija archivos a Importar. " & Título, , True)

' Si cancelo el cuadro de diálogo termina la ejecución

If VarType(Selección) = vbBoolean Then Exit Sub

Page 292: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 292

' Bucle que recorre los elementos de la matriz

For i = LBound(Selección) To UBound(Selección)

Workbooks.Open Selección(i), , True

' Al abrir un libro, éste se convierte en el libro activo.

Set LibroDatos = ActiveWorkbook

LibroDatos.Worksheets(NombreHojaDatos).Copy after:=HojaInicial

LibroDatos.Close False

Next

Set HojaInicial = Nothing

Set LibroDatos = Nothing

End Sub

Generar escenarios

Los escenarios son muy útiles para evaluar diferentes situaciones en las que

cambiamos los datos de partida.

Cuando sólo vamos a evaluar unos pocos casos no cuesta nada introducirlos a

mano, pero si lo que queremos es tener una casuística más amplia con muchas

combinaciones de datos iniciales, la introducción de los mismos mediante el cuadro

de diálogo de creación de escenarios puede resultar tediosa, y como consecuencia

de ello, sujeta a despistes, olvidos y errores tipográficos.

Vamos a generar automáticamente escenarios cambiando los valores de los datos

de partida mediante bucles que asignen valores a las celdas cambiantes a intervalos

regulares definidos por el usuario.

Para facilitar la introducción de los datos se crea un formulario, al que llamaremos

frmDefinirCeldas, donde se definirá para cada celda cambiante el valor inferior, el

valor superior y el incremento a dar en cada paso.

Se definen unas variables públicas para que sean accesibles tanto desde el

procedimiento, como desde el formulario. En concreto unas variables que nos

indiquen qué botón se ha pulsado en el formulario, y unas variables para almacenar

las celdas cambiantes y sus valores, que serán accesibles desde el procedimiento

principal y desde un procedimiento auxiliar para generar los escenarios.

Page 293: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 293

Las opciones y declaraciones en el módulo principal son las siguientes:

Option Explicit

Option Base 1 ' para que las matrices empiecen en el 1

Const Título As String = "Ya sé Excel, pero necesito más."

Public MásCeldas As Boolean, Cancelar As Boolean ' botones formulario

Dim NúmeroCeldasCambiantes As Integer

Dim NúmeroEscenario As Integer ' contador para los escenarios

Dim ValorInicial() As Single, ValorFinal() As Single, Paso() As Single

Dim ValorCelda() As Single 'Almacenaremos los valores de las celdas

Dim CeldasCambiantes As Range

El procedimiento principal comprueba si ya hay escenarios definidos en la hoja

activa, y en caso afirmativo pregunta al usuario si se quieren eliminar antes de

crear los nuevos escenarios. Se realiza una llamada al formulario de introducción

de datos, para que se vayan definiendo las celdas cambiantes y los valores que

definirán el bucle para cada celda, esta operación se repite dentro de un bucle hasta

que se pulse la tecla terminar en el formulario.

Los valores inicial, final y el paso para cada celda cambiante, se almacenan en

matrices, que se redimensionan con un elemento más al agregar una nueva celda

cambiante.

Una vez definidas las celdas y los valores, se llama al procedimiento de nombre

CrearCombinación, que genera las combinaciones de valores que definirán cada

escenario.

Page 294: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 294

Sub CrearEscenarios()

' procedimiento para generar escenarios con combinaciones de parámetros.

Dim Respuesta As Integer, i As Integer

Dim Escenario As Scenario

'si ya hay escenarios creados

If ActiveSheet.Scenarios.Count <> 0 Then

Respuesta = MsgBox("Esta hoja contiene escenarios." & vbCrLf & _

"¿Desea eliminarlos antes de crear los nuevos escenarios?", _

vbExclamation + vbYesNo + vbDefaultButton1, Título)

If Respuesta = vbYes Then

For Each Escenario In ActiveSheet.Scenarios

Escenario.Delete

Next

End If

End If

'iniciamos contadores

NúmeroEscenario = 0

NúmeroCeldasCambiantes = 0

Do

' abrimos el formulario para ir definiendo las celdas

frmDefinirCeldas.Show

' Al cerrar el formulario, leemos los datos

If Cancelar Then Exit Do 'por si cancelamos la introducción

NúmeroCeldasCambiantes = NúmeroCeldasCambiantes + 1

If NúmeroCeldasCambiantes = 1 Then 'primera celda

Set CeldasCambiantes = Range(frmDefinirCeldas.txtCeldas.Text)

Else ' segunda y sucesivas celdas Unimos la celda a las existentes

Set CeldasCambiantes = Union(CeldasCambiantes, _

Range(frmDefinirCeldas.txtCeldas.Text))

End If

'redimensionamos matrices para almacenar un valor más

ReDim Preserve ValorInicial(NúmeroCeldasCambiantes)

ReDim Preserve ValorFinal(NúmeroCeldasCambiantes)

Page 295: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 295

ReDim Preserve Paso(NúmeroCeldasCambiantes)

'leemos valores

ValorInicial(NúmeroCeldasCambiantes) = frmDefinirCeldas.TxtDesde

ValorFinal(NúmeroCeldasCambiantes) = frmDefinirCeldas.TxtHasta

Paso(NúmeroCeldasCambiantes) = frmDefinirCeldas.txtPaso

'Borramos los datos del formulario

With frmDefinirCeldas

.TxtCeldas = ""

.TxtDesde = ""

.TxtHasta = ""

.TxtPaso = ""

End With

Loop While MásCeldas

ReDim ValorCelda(NúmeroCeldasCambiantes)

Call CrearCombinación

MsgBox "Se crearon " & NúmeroEscenario & " escenarios.", _

vbOKOnly, Título

End Sub

El código para responder a los eventos del formulario es el que se muestra a

continuación. Se utiliza la variable global “MásCeldas” para saber que se desea

añadir una celda cambiante más, se utiliza la variable “Cancelar” para conocer en

el procedimiento principal que se ha cancelado la introducción.

Private Sub CmdAgregar_Click()

MásCeldas = True

Me.Hide

End Sub

Private Sub CmdCancelar_Click()

Cancelar = True

MásCeldas = False

Me.Hide

End Sub

Private Sub CmdSalir_Click()

MásCeldas = False

Page 296: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 296

Me.Hide

End Sub

Private Sub UserForm_Terminate()

' al cerrar el formulario con el botón de la barra de título

Cancelar = True

MásCeldas = False

End Sub

El procedimiento para crear las combinaciones de valores que forman el escenario

es un procedimiento recursivo, esto es, se llama a sí mismo. En principio no

sabemos cuántas celdas cambiantes se van a definir, con lo que no podemos anidar

un bucle con tantas variables como celdas cambiantes. Lo que se emplea en este

caso es un procedimiento que crea un bucle para una variable, y si hay más celdas

cambiantes se llama a sí mismo desde dentro del bucle para asignar valores a la

siguiente celda, así hasta que se llega a la última celda cambiante.

Cuando se llega a la última celda cambiante, se crean los escenarios, se asigna un

nombre indicando el número de escenario así como la hora de creación y se añade

un comentario.

Private Sub CrearCombinación(Optional Parámetro As Integer)

If IsMissing(Parámetro) Then Parámetro = 1

Dim sngAuxiliar As Single

For sngAuxiliar = ValorInicial(Parámetro) To ValorFinal(Parámetro) _

Step Paso(Parámetro)

ValorCelda(Parámetro) = sngAuxiliar

If Parámetro < NúmeroCeldasCambiantes Then

Call CrearCombinación(Parámetro + 1)

Else

' ya están todos los valores definidos, creamos el escenario

NúmeroEscenario = NúmeroEscenario + 1 ' contador de escenarios

ActiveSheet.Scenarios.Add Name:="Escenario " & NúmeroEscenario & _

Format(Time(), " hh:mm:ss"), ChangingCells:=CeldasCambiantes, _

Values:=ValorCelda, Comment:= "Creado automáticamente." & vbLf & _

Título, Locked:=True, Hidden:=False

End If

Page 297: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 297

Next

End Sub

Ganando tiempo al tiempo

Habrás comprobado que, mientras se ejecuta una macro, en la pantalla se muestran

todos los pasos que va dando el ordenador. Esta actualización de la pantalla

también consume recursos del equipo que, en general, no supone mucho problema

desde el punto de vista del tiempo de ejecución, e incluso puede servir para

impresionar a tus amigos al enseñarles cómo el ordenador trabaja solo bajo tu

control.

Cuando el procedimiento requiere de mucho tiempo de cálculo y trabaja mucho

activando y desactivando libros, cambiando de ventana activas, escribiendo valores

en celdas, etc., desactivar la opción de actualizar la pantalla puede ahorrarnos un

precioso tiempo. Claro que los ordenadores cada vez van más rápido y el ahorro tal

vez no sea significativo, pero se nota la diferencia.

Esta opción se controla con la propiedad ScreenUpdating del objeto

Application, así que para desactivar la actualización de pantalla, al inicio de

nuestras macros (dentro de la macro) escribiremos lo siguiente:

Application.ScreenUpdating = False

Si no tienes que impresionar a nadie y una vez que hayas comprobado que tu

macro funciona correctamente, no dudes en incluir esta línea en tu código.

Page 298: Ya Se Excel - Pero Necesito MAS

Ya sé Excel, pero necesito más

www.necesitomas.com 298

Epílogo

En el trabajo existen dos tipos de personas, los que se creen imprescindibles y los

que sabemos que no lo somos. Los expedientes de regulación de empleo se

encargan de demostrar a los primeros que estaban equivocados, mientras los

segundos dejan todo organizado para que durante sus vacaciones cualquiera pueda

entender lo que han estado haciendo y no tengan que molestarles por una

trivialidad.

Merece la pena dedicar un tiempo a facilitar la comprensión de las hojas de cálculo

que tú has creado (sería aplicable a todo en la vida), para que cuando otra persona

tenga que utilizarlas no requiera estar horas tratando de entender qué hiciste.

Muchas veces ese otro eres tú mismo, un par de años después, cuando has olvidado

por completo en qué celdas debes introducir los datos o qué había que hacer para

que la aplicación calculara correctamente.

Haz tus hojas limpias, sin trampas ocultas, diferencia claramente qué son los datos

que hay que introducir y qué son los resultados. Añade todos los comentarios que

estimes oportunos a la hoja, siempre serán de utilidad. No viene mal incluir una

hoja en el libro con una breve descripción de la finalidad y del funcionamiento del

mismo. Siempre que sea posible, agrupa todas las hojas de una misma aplicación

en un mismo libro, para evitar que en un traslado se pierda algún archivo.

Comprueba que tu modelo de cálculo funciona adecuadamente con diferentes

datos, no sólo para un conjunto limitado de valores. Presta especial atención a

posibles valores negativos, combinaciones de valores que no tiene sentido que

existan en la realidad, etc., con ello evitarás errores o resultados equivocados cuya

causa puede no ser fácilmente localizable. Siempre que sea aplicable, añade reglas

de validación para evitar la introducción de datos incoherentes o erróneos.

Antes de empezar a teclear como un loco, detente un momento a pensar cómo

quieres que sea el resultado final, para luego poder dirigirte hacia él por el

camino más corto.

Page 299: Ya Se Excel - Pero Necesito MAS

www.necesitomas.com 299

Page 300: Ya Se Excel - Pero Necesito MAS

www.necesitomas.com 300

Índice alfabético

A

acceso rápido

personalizar, 42, 232

Access, 155, 159, 175

actualizar pantalla

desactivar, 297

agrupar, 122, 128

análisis Y si, 200

área de trabajo, 56

autoesquema, 129

autofiltro, 117

automatizar tareas, 228

ayudante de Office, 22

B

banda de opciones, 21

barra de estado, 49, 50

barra de herramientas, 21

personalizar, 42, 60, 232

bordes, 97

botones, 221

bucles, 282

buscar objetivo, 212

C

calcular

precisión, 210

precisión en pantalla, 80, 86

cálculo paramétrico, 200

cálculos iterativos, 210

cámara, 59

cambiar filas por columnas, 40

celdas

alineación, 95

comentarios, 45

estilo, 60

imprimir cuadrícula, 66

nombre, 31

ocultas y visibles, 42, 121

rellenar automáticamente, 28

seleccionar especial, 42

centrar en la página, 65

centro de confianza, 144

cifrar documento, 227

coma flotante, 210, 246

combinaciones de teclas, 37, 231

combinar celdas, 96

combinar escenarios, 206

Page 301: Ya Se Excel - Pero Necesito MAS

www.necesitomas.com 301

comentarios, 45

imprimir, 66

comodín, 74, 176, 278

comparar alternativas, 200

complementos, 35, 69

búsquedas, 71

crear, 279

solver, 215

suma condicional, 84

configurar página, 64

consolidar datos, 134

contraseñas, 224, 226, 282

controles de formulario, 221

convenciones, 17

convertir texto en tabla, 151

copia de seguridad, 227

criterios de convergencia, 210, 217

criterios de filtrado, 73

D

datos

agrupar, 128

algunos consejos, 114

filtrar, 117

ordenar, 122

resumir, 133, 179

validación, 123

datos externos

actualización, 166

conexión, 170

modificar origen, 171

propiedades, 166

romper vínculo, 177

ventajas, 144

diestros, 17

E

editor de código, 234

eliminar duplicados, 120, 141

encabezado, 66

encriptar, 227

enlaces, 24

errores

2+2=5, 80

funciones, 76

imprimir, 66

investigar causa, 110

localizar, 43

prevención, 112, 123, 225

escenarios, 204

generar automáticamente, 292

imprimir todos, 283

esquema, 128

Page 302: Ya Se Excel - Pero Necesito MAS

www.necesitomas.com 302

estilo

de celda, 24, 60, 129

de tabla, 22, 138

temas, 62

estudio paramétrico, 200

euro, 35

eventos, 234

F

F1C1, 47

fechas, 78, 92

filas y columnas, 22

filtros, 117

avanzados, 120

avanzados criterios, 73

formato

alineación de celda, 95

condicional, 22, 98, 113, 119, 123

ejemplos, 88

fechas, 92

personalizado, 86

formularios, 221

fórmulas

auditoría, 110

evaluar paso a paso, 110

extender, 27, 121

extender automáticamente, 139, 168

inspección, 111

ver, 57

fracciones, 91

funciones

asistente, 68

base de datos, 72

buscar, 69

complejos, 79

condicionales, 82

convertir unidades, 75

estadísticas, 108

fecha y hora, 78

información, 75

matriciales, 81

redondeo, 79

referencia a celdas, 70

texto, 77

tratamiento de errores, 76

funciones personalizadas, 242

G

Google, 21

gráfico

abscisa proporcional valores, 101

añadir más datos, 40

celdas ocultas, 104

exportar archivo imagen, 289

Page 303: Ya Se Excel - Pero Necesito MAS

www.necesitomas.com 303

igualar escalas, 288

igualar propiedades, 290

línea de tendencia, 107

valores nulos, 104

gráfico dinámico, 199

H

habilitar contenido externo, 144

hoja por defecto, 24

horas, 93

I

importar archivo texto, 147

imprimir

configurar página, 64

inecuaciones, 215

información duplicada, 120, 141

inicio, 24

ir a, 42

iterar, 210

J

Justificar texto, 43

L

L1C1, 47

libro por defecto, 24

libros abiertos

guardar todos, 283

listas, 22, 137

M

Macintosh, 92

macros, 228

editor, 58, 234

ejecutar, 57, 232

grabar, 230

habilitar, 229

MathCad, 75

matrices, 81

maximizar, 215

menús, 21

métodos, 234

Microsoft, 22

minimizar, 215

mínimos cuadrados, 31, 82, 107, 220

modelo de objetos, 233

mostrar ventana, 55

N

nombres

ámbito, 32

aplicar, 34

definir, 31, 166

ver en la hoja, 57

Page 304: Ya Se Excel - Pero Necesito MAS

www.necesitomas.com 304

novedades, 21

números complejos, 79

O

objetivo, 212, 215

ocultar ventana, 55

ODBC, 159

ordenar, 22

orígenes de datos, 145

P

parámetros, 173, 200

pdf, 22

pegado especial, 39

personalizar, 42, 60, 232

pie de página, 66

plantillas por defecto, 24

programación, 228

programación lineal, 215

propiedades, 234

proteger libro, 224

Q

Query, 161

R

rango

múltiple, 70

nombre, 31

redondear, 79, 86

referencia

3D, 133

absoluta, 26

circular, 210

externa, 24

funciones, 70

modo de visualización, 47

nombres, 31

relativa, 26

rellenar, 28

resolución de ecuaciones, 82, 210,

212, 215

resumir alternativas, 204

resumir escenarios, 207

S

salto de página, 50

seguridad, 224

seleccionar, 42

separador decimal, 18, 149, 278

series, 28

sólo lectura, 227

solucionar problemas, 210, 212, 215

solver, 215

Page 305: Ya Se Excel - Pero Necesito MAS

www.necesitomas.com 305

SQL, 175

subtotales automáticos, 130

suma condicional, 35, 84

T

tabla de datos, 201

tabla dinámica, 179

tablas, 137

estilo, 22, 138

tareas repetitivas, 228

teclas, 37

temas, 62

tendencia, 31, 109

tiempo, 92

transponer, 40

V

VBA, 228

ventana

dividir, 52

inmovilizar paneles, 51

nueva, 53

ver, 47

vínculos, 25

vista diseño, 50

vistas personalizadas, 55

imprimir todas, 284

Visual Basic, 228

bucles, 252, 282

colección, 255

condicionales, 256

constantes, 249

depuración, 239

editor, 234

funciones disponibles, 270

interactividad, 260

matrices, 248

proteger código, 282

variables, 245, 274

visualización, 50

Y

y si..., 200

Z

zoom, 49

zurdos, 17, 37