los mejores trucos · 2020. 10. 19. · 22. activar y desactivar el formato condicional y la...

294
LOS MEJORES TRUCOS O'REILLY* David y Rama Hawley

Upload: others

Post on 30-Jul-2021

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas

LOS MEJORES TRUCOS

OREILLY David y Rama Hawley

Contenido

Introduccioacuten 17

iquestPor queacute los mejores trucos de Excel 17

Coacutemo obtener y utilizar los trucos 18

Coacutemo utilizar este libro 18

Coacutemo estaacute organizado este libro 19

Usuarios de Windows y Macintosh 20

Convenciones utilizadas en este libro 21

Capiacutetulo 1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 23

La regla 8020 23 Trucos sobre la estructuracioacuten 24 Trucos sobre el formato 24 Trucos sobre foacutermulas 25

1 Crear una vista personal de los libros de Excel 27

2 Introducir datos en varias hojas de caacutelculo simultaacuteneamente 30 Agrupar hojas de caacutelculo manualmente 30 Agrupar hojas de caacutelculo automaacuteticamente 31

3 Impedir que los usuarios realizan ciertas acciones 33 Impedir el comando Guardar como en un libro de Excel 33 Impedir que los usuarios impriman un libro de Excel 36

10 Contenido

Impedir que los usuarios inserten maacutes hojas de caacutelculo 36

4 Impedir confirmaciones innecesarias 37

Activar las macros cuando no se tenga ninguna 37

Mensajes de confirmacioacuten para guardar cambios que no se han realizado 38

Impedir los avisos de Excel para macros grabadas 39

5 Ocul tar hojas para que no puedan ser mos t r adas 41

6 Personalizar el cuadro de diaacutelogo Plantillas y el libro predeterminado 42

Crear su propia pestantildea de plantillas 43 Utilizar un libro personalizado de forma predeterminada 43

7 Crear un iacutendice de hojas en el libro 45

8 Limitar el r ango de desplazamiento de la hoja de caacutelculo 47

9 Bloquear y proteger celdas que contienen foacute rmulas 51

10 Encontrar datos duplicados ut i l izando el f o rma to condicional 54

1 1 Asociar ba r ra s de he r r amien ta s personal izadas a un libro

en par t icular 56

12 Burlar el gestor de referencias relativas de Excel 58

13 Qui tar viacutenculos fantasma en un libro 58

14 Reducir un libro que estaacute h inchado 61

Eliminar formatos superfluos 62

Puesta a punto de los oriacutegenes de datos 63 Limpiar libros corruptos 63

15 Extraer datos de un libro c o r r u p t o 64

Si no puede abrir un libro 64

Si no puede abrir el archivo 65

Capiacutetulo 2 Trucos sobre las caracteriacutesticas incorporadas en Excel 69

16 Validar datos en base a u n a lista s i tuada en o t ra hoja 69

Meacutetodo 1 Rangos con nombre 69

Meacutetodo 2 La funcioacuten INDIRECTO 70

Ventajas y desventajas de ambos meacutetodos 71

17 Controlar el f o rma to condicional con casillas de verificacioacuten 71

Configurar casillas de verificacioacuten para formato condicional 71

Activar o desactivar el resaltado de los nuacutemeros 72

18 Identificar foacute rmulas con el f o r m a t o condicional 75

19 Contar o s u m a r celdas que se ajustan al criterio del fo rmato condicional 76

Una alternativa 77

20 Resaltar Filas o co lumnas impares 78

Contenido 11

21 Crear efectos en 3D en tablas o celdas 80 Utilizar un efecto 3D en una tabla de datos 81

22 Activar y desactivar el formato condicional y la validacioacuten de datos con una casilla de verificacioacuten 82

2 3 Admitir muacuteltiples listas en un cuadro de lista desplegable 84

24 Crear listas de validacioacuten que cambien en base a la seleccioacuten realizada

en otra lista 86

25 Forzar la validacioacuten de datos para hacer referencia a una lista

en otra hoja 88 Meacutetodo 1 Rangos con nombre 88 Meacutetodo 2 La funcioacuten INDIRECTO 88 Ventajas y desventajas de cada meacutetodo 89

2 6 Utilizar Reemplazar para eliminar caracteres no deseados 90 27 Convertir nuacutemeros de texto en nuacutemeros reales 90

28 Personalizar los comentarios de las celdas 92

29 Ordenar maacutes de tres columnas 94

30 Ordenacioacuten aleatoria 95

31 Manipular datos con el filtro avanzado 97 32 Crear formatos de nuacutemero personalizados 101

33 Antildeadir maacutes niveles de Deshacer a Excel 107

34 Crear listas personalizadas 107 35 Subtotales en negritas de Excel 108

El truco sobre el truco 110 36 Convertir las foacutermulas y funciones de Excel a valores 111

Utilizar Pegado especial 111 Utilizar Copiar aquiacute soacutelo valores 111 Utilizar una macro 112

3 7 Antildeadir datos automaacuteticamente a una lista de validacioacuten 113 38 Trucar las caracteriacutesticas de fecha y hora de Excel 116

Sumar maacutes allaacute de las 24 horas 116 Caacutelculos de fecha y hora 117 Horas y fechas reales 119 iquestUn fallo de fechas 119

Capiacutetulo 3 Trucos sobre nombres 123

39 Usar direcciones de datos por el nombre 123 40 Utilizar el mismo nombre para rangos en diferentes hojas de caacutelculo 124

12 Contenido

4 1 Crear funciones personal izadas ut i l izando nombres 127

4 2 Crear rangos que se expandan y cont ra igan 129

4 3 Anidar r angos dinaacutemicos pa ra obtener u n a f l ex ib i l idad m aacute x i m a 136

44 Identificar r angos con n o m b r e en u n a hoja de caacutelculo 139

Meacutetodo 1 139

Meacutetodo 2 141

Capiacutetulo 4 Trucos sobre tablas dinaacutemicas 143

4 5 Tablas dinaacutemicas un t r u c o en s iacute m i s m a s 143

iquestPor queacute se les llama tablas dinaacutemicas 144

iquestPara queacute cosas resultan buenas las tablas dinaacutemicas 144

iquestPor queacute utilizar tablas dinaacutemicas cuando las hojas de caacutelculo ya ofrecen

muchas funciones de anaacutelisis 145

Los graacuteficos dinaacutemicos como extensioacuten de las tablas dinaacutemicas 145

Crear tablas y listas para ser utilizadas en tablas dinaacutemicas 145

El Asistente para tablas dinaacutemicas y graacuteficos dinaacutemicos 147

46 Compar t i r tablas dinaacutemicas pero no sus datos 148

4 7 A u t o m a t i z a r la creacioacuten de tablas dinaacutemicas 150

4 8 Mover los totales finales de u n a tabla dinaacutemica 153

49 Utilizar de fo rma efectiva datos de otro libro d inaacutemicamente 154

Capiacutetulo 5 Trucos sobre graacuteficos 159

50 Separar u n a porcioacuten de un graacutefico circular 159

5 1 Crear dos conjuntos de porciones en un uacutenico graacutefico circular 161

52 Crear graacuteficos que se ajusten a los datos 163

Dibujar los uacuteltimos x valores correspondientes a las lecturas 166

5 3 In terac tuar con los graacuteficos ut i l izando controles personal izados 166

Utilizar un rango dinaacutemico con nombre vinculado a una barra

de desplazamiento 167 Utilizar un rango dinaacutemico con nombre vinculado a un cuadro de lista

desplegable 169

54 Tres fo rmas raacutepidas para actual izar los graacuteficos 170

Utilizar arrastrar y colocar 170

Utilizar la barra de foacutermulas 171

Arrastrar el aacuterea del borde 174

55 Crear un simple graacutefico de t ipo t e r m oacute m e t r o 175

56 Crear un graacutefico de c o l u m n a s con anchos y altos variables 178

Contenido 13

5 7 Crear un graacutefico de tipo velociacutemetro 182 58 Vincular los elementos de texto de un graacutefico a una celda 188 59 Trucar los datos de un graacutefico de forma que no se dibujen las celdas

en blanco 189 Ocultar filas y columnas 190

Capiacutetulo 6 Trucos sobre foacutermulas y funciones 193

60 Antildeadir un texto descriptivo a las foacutermulas 193

61 Mover foacutermulas relativas sin cambiar las referencias 194

62 Comparar dos rangos de Excel 195 Meacutetodo 1 Utilizar Verdadero o Falso 195 Meacutetodo 2 Utilizar el formato condicional 196

63 Rellenar todas las celdas en blanco en una lista 197 Meacutetodo 1 Rellenar las celdas en blanco mediante una foacutermula 198 Meacutetodo 2 Rellenar las celdas en blanco a traveacutes de una macro 199

64 Hacer que las foacutermulas se incrementen por filas cuando las copie a lo largo de las columnas 200

65 Convertir fechas en fechas con formato de Excel 202 66 Sumar o contar celdas evitando valores de error 203 67 Reducir el impacto de las funciones volaacutetiles a la hora de recalcular 205 68 Contar solamente una aparicioacuten de cada entrada de una lista 206 69 Sumar cada dos tres o cuatro filas o celdas 207 70 Encontrar la eneacutesima aparicioacuten de un valor 209 71 Hacer que la funcioacuten subtotal de Excel sea dinaacutemica 212

72 Antildeadir extensiones de fecha 214

73 Convertir nuacutemeros con signo negativo a la derecha a nuacutemeros

de Excel 216 74 Mostrar valores de hora negativos 218

Meacutetodo 1 Cambiar el sistema de fecha predeterminado de Excel 218 Meacutetodo 2 Utilizar la funcioacuten TEXTO 219 Meacutetodo 3 Utilizar un formato personalizado 219

75 Utilizar la funcioacuten BUSCARV a lo largo de muacuteltiples tablas 220 76 Mostrar el tiempo total como diacuteas horas y minutos 222 77 Determinar el nuacutemero de diacuteas especificados que aparecen

en cualquier mes 223 78 Construir mega foacutermulas 225

14 Contenido

79 Trucar mega foacutermulas que hagan referencia a otros libros 227 80 Trucar una de las funciones de base de datos de Excel para que haga

el trabajo de muchas funciones 228

Capiacutetulo 7 Trucos sobre macros 237

81 Acelerar el coacutedigo y eliminar los parpadeos de la pantalla 237

82 Ejecutar una macro a una determinada hora 238 83 Utilizar CodeName para hacer referencias a hojas en los libros

de Excel 240

84 Conectar de forma faacutecil botones a macros 241

85 Crear una ventana de presentacioacuten para un libro 243

86 Mostrar un mensaje de Por favor espere 246 87 Hacer que una celda quede marcada o desmarcada al seleccionarla 247

88 Contar o sumar celdas que tengan un color de relleno especiacutefico 248 89 Antildeadir el control Calendario de Microsoft Excel a cualquier libro 250 90 Proteger por contrasentildea y desproteger todas las hojas de caacutelculo

raacutepidamente 252

91 Recuperar el nombre y la ruta de un libro de Excel 255 92 Ir maacutes allaacute del liacutemite de tres criterios del formato condicional 256

93 Ejecutar procedimientos en hojas protegidas 258 94 Distribuir macros 260

Capiacutetulo 8 Conectando Excel con el mundo 267

95 Cargar un documento XML en Excel 267

96 Guardar en SpreadsheetML y extraer datos 278

97 Crear hojas de caacutelculo utilizando SpreadsheetML 288 98 Importar datos directamente en Excel 293

Ejecutar el truco 295 El truco del truco 296

Hacer que la consulta sea dinaacutemica 296 Utilizar datos diferentes 297 Resultados con graacuteficos 300

99 Acceder a servicios Web SOAP desde Excel 301

100Crear hojas de caacutelculo Excel utilizando otros entornos 307 SpreadsheetWriteExceI 307 Spreadsheet ParseExcel 307

Contenido 15

Jakarta POI 307

JExcelApi 307

Glosario 315

iacutendice alfabeacutetico 323

CAPIacuteTULO 1

Reducir la frustracioacuten en los libros y en las hojas

de caacutelculo Trucos 1 a 15

Los usuarios de Excel saben que los libros son un concepto m u y potente Pero igualmente muchos usuarios son conscientes que trabajar con estos libros pueshyde provocar un gran nuacutemero de inconvenientes Los trucos de este capiacutetulo le ayudaraacuten a evitar algunos de esos inconvenientes a la vez que sacaraacuten provecho de algunos meacutetodos maacutes efectivos pero en ocasiones desconocidos con los que puede controlar sus libros de trabajo

Antes de profundizar en dichos trucos merece la pena echar un vistazo raacutepishydo a algunos conceptos baacutesicos que haraacuten mucho maacutes sencillo crear trucos efecshytivos Excel es una aplicacioacuten m u y potente de hojas de caacutelculo con la que se pueden hacer cosas increiacutebles Por desgracia muchas personas disentildean sus hojas de caacutelculo de Excel con poca previsioacuten haciendo difiacutecil que puedan reutilizarlas o actualizarlas En este apartado proporcionaremos numerosos trucos que puede utilizar para asegurarse de que crea hojas de caacutelculo lo maacutes eficaces posibles

La regla 8020

Quizaacute la regla maacutes importante a seguir cuando se disentildea una hoja de caacutelculo es tener una visioacuten a largo plazo y nunca presuponer que no necesitaraacute antildeadir maacutes datos o foacutermulas a la hoja de caacutelculo ya que la probabilidad de que ocurra esto es alta Teniendo esto en mente deberaacute dedicar alrededor del 80 de su tiemshypo en planificar la hoja de caacutelculo y alrededor del 20 en implementarla Aunque esto pueda parecer extremadamente ineficiente a corto plazo podemos asegurar que a largo plazo seraacute una gran ventaja ademaacutes de que despueacutes de haber hecho varias planificaciones luego seraacute mucho maacutes sencillo Recuerde que las hojas de

24 Excel Los mejores trucos

caacutelculo estaacuten pensadas para hacer sencilla la obtencioacuten de la informacioacuten por parte de los usuarios no soacutelo para presentarla y que tenga buen aspecto

Trucos sobre la estructuracioacuten

Sin duda el fallo nuacutemero uno que cometen muchos usuarios de Excel cuando crean sus hojas de caacutelculo es que no configuran y organizan la distribucioacuten de la informacioacuten en la manera en la que Excel y sus caracteriacutesticas esperan A contishynuacioacuten y sin ninguna orden en particular mostramos algunos de los fallos maacutes comunes que cometen los usuarios cuando organizan una hoja de caacutelculo

bull Dispersioacuten innecesaria de los datos a lo largo de diferentes libros

bull Dispersioacuten innecesaria de los datos a lo largo de diferentes hojas de caacutelculo

bull Dispersioacuten innecesaria de los datos a lo largo de diferentes tablas

bull Tener filas y columnas en blanco en tablas con datos

bull Dejar celdas vaciacuteas para datos repetidos

Los tres primeros puntos de la lista tienen que ver con una cosa siempre debe intentar mantener los datos relacionados en una tabla continua Una y otra vez hemos podido ver hojas de caacutelculo que no siguen esta simple regla y por tanto estaacuten limitadas en su capacidad para aprovechar por completo algunas de las funciones maacutes potentes de Excel incluyendo las tablas dinaacutemicas los subtotales y las foacutermulas En dichos escenarios soacutelo podraacute utilizar estas funciones aproveshychaacutendolas por completo cuando organice sus datos en una tabla m u y sencilla

No es una mera coincidencia que las hojas de caacutelculo de Excel puedan albergar 65536 filas pero solamente 256 columnas Teniendo esto en mente deberiacutea conshyfigurar las tablas con encabezados de columnas que vayan a lo largo de la primeshyra fila y los datos relacionados distribuidos de forma continua directamente debajo de los encabezados apropiados Si observa que estaacute repitiendo el mismo dato a lo largo de dos o maacutes filas en una de esas columnas evite la tentacioacuten de omitir los datos repetidos utilizando celdas en blanco para indicar dicha repeticioacuten

Aseguacuterese de que los datos estaacuten ordenados siempre que sea posible Excel dispone de un excelente conjunto de foacutermulas de referencia algunas de las cuales requieren que los datos esteacuten ordenados de manera loacutegica Ademaacutes la ordenashycioacuten aceleraraacute tambieacuten el proceso de caacutelculo de muchas de las funciones

Trucos sobre el formato

Maacutes allaacute de la estructura los formatos tambieacuten pueden causar problemas Aunque una hoja de caacutelculo deberiacutea ser faacutecil de leer y seguir esto suele ser a costa

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 25

de la eficiencia Somos grandes creyentes de mantenerlo todo sencillo aunque muchas personas dedican grandes cantidades de tiempo a formatear sus hojas de caacutelculo Aunque no se den cuenta este tiempo frecuentemente suele ser a costa de la eficiencia La sobrecarga de formatos hacen que aumente el tamantildeo del libro y aunque eacuteste parezca una verdadera obra de arte puede parecerle horrible a otra persona Debe considerar la posibilidad de utilizar algunos colores univershysales para sus hojas de caacutelculo como puedan ser el negro el blanco y el gris

Siempre es una buena idea dejar al menos tres filas en blanco por encima de la tabla (al menos tres aunque es preferible dejar maacutes) Se pueden utilizar estas filas para insertar funciones de base de datos y de filtrado avanzado Muchas personas tambieacuten se preocupan por cambiar la alineacioacuten de las celdas De forma predeterminada los nuacutemeros en Excel se alinean a la derecha y los textos a la izquierda y realmente existen buenas razones para dejarlo asiacute Si empieza a camshybiar estos formatos resultaraacute que no podraacute saberse si el contenido de una celda es un texto o un nuacutemero Es m u y habitual encontrar gente que hace referencia a celdas que parecen nuacutemeros pero en realidad son texto Si cambia la alineacioacuten predeterminada conseguiraacute hacerse un liacuteo La uacutenica excepcioacuten a esta regla poshydriacutean ser los encabezados de las columnas

De formato texto a las celdas soacutelo cuando sea completamente necesario ya que todos los datos que se introduzcan en dichos celdas se convertiraacuten en texto incluso si lo que deseaba era introducir un nuacutemero una fecha Peor auacuten cualshyquier celda que albergue una foacutermula que haga referencia a una celda con forshymato texto tambieacuten quedaraacute formatearla como texto Y normalmente no desearaacute que las celdas con foacutermulas esteacuten formateadas asiacute

Tambieacuten pueden crear problemas las celdas combinadas La base de datos de conocimientos de Microsoft estaacute repleta de problemas frecuentes que se encuenshyt ran en relacioacuten a las celdas combinadas Una buena alternativa es utilizar la opcioacuten Centrar en la seleccioacuten que se encuentra en el cuadro de lista desplegable Horizontal de la pestantildea Alineacioacuten del cuadro de diaacutelogo Formato de celdas

Trucos sobre foacutermulas

Otro de los grandes errores que a menudo cometen los usuarios con las foacutershymulas de Excel es hacer referencia a columnas enteras Esto hace que Excel tenga que examinar en potencia miles sino millones de celdas que de otra manera poshydriacutea ignorar

Tomemos por ejemplo un caso en el que tiene una tabla con datos que se distribuyen desde la celda Al a la celda H1000 Puede decidir que desea utilizar una o maacutes foacutermulas de referencia de Excel para extraer la informacioacuten requerida Dado que la tabla continuaraacute creciendo (a medida que antildeadan nuevos datos) es habitual hacer referencia a toda la tabla que incorpora todas las filas En otras

26 Excel Los mejores trucos

palabras la referencia seraacute algo parecido a AH o posiblemente Al H65536 Puede utilizar esta referencia de forma que cuando se antildeaden nuevos datos a la tabla seraacuten referenciados en las foacutermulas automaacuteticamente Esto resulta un haacutebito m u y malo y siempre deberiacutea evitarlo Todaviacutea puede eliminar la constante neceshysidad de actualizar las referencias de las foacutermulas al incorporar nuevos datos que se antildeaden a la tabla utilizando nombres de rangos dinaacutemicos que veremos en uno de los trucos que presentaremos maacutes adelante

Otro problema tiacutepico que surge en las hojas de caacutelculo malamente disentildeadas es el recaacutelculo tremendamente lento Mucha gente sugiere cambiar el modo de caacutelculo a manual a traveacutes de la opcioacuten que aparece en la pestantildea Calcular del cuadro de diaacutelogo Opciones

Sin embargo normalmente es un mal consejo que puede provocar numeroshysos problemas Una hoja de caacutelculo son todas las foacutermulas y caacutelculos asiacute como los resultados que producen Si utiliza una hoja de caacutelculo con el modo de caacutelculo manual tarde o temprano leeraacute alguna informacioacuten que no haya sido actualizashyda Puede que las foacutermulas esteacuten reflejando valores antiguos en vez de los actuashylizados porque cuando se utiliza el modo de caacutelculo manual debe forzar a Excel a que los realice pulsando la tecla F9

iexclPero es m u y sencillo olvidarse de hacer esto Pieacutenselo de esta forma si los frenos de su coche se estuviesen desgastando tanto que hiciesen que fuera maacutes lento iquestdesconectariacutea el pedal del freno y utilizariacutea el freno de mano en vez de intentar arreglar el problema Muchos de nosotros no hariacuteamos algo asiacute pero otras personas no tienen ninguacuten inconveniente en poner sus hojas de caacutelculo en modo de caacutelculo manual Si tiene la necesidad de utilizar la hoja de caacutelculo en modo manual entonces tiene un problema de disentildeo

Las foacutermulas matriciales son otra de las causas comunes de los problemas Estaacuten pensadas para hacer referencia a celdas simples pero si los utiliza para hacer referencia a grandes rangos haacutegalo lo menos posible Cuando un gran nuacutemero de colecciones hacen referencia a rangos extensos el rendimiento del libro se veraacute afectado a veces hasta el punto en el que ni siquiera se puede utilishyzar y tiene que cambiar a modo de caacutelculo manual

Las funciones de base de datos de Excel proporcionan muchas alternativas al uso de foacutermulas matriciales como veremos maacutes adelante en un truco Ademaacutes la ayuda de Excel ofrece algunos estupendos ejemplos de coacutemo utilizar estas foacutershymulas en grandes tablas de datos para devolver ciertos resultados en base a muacutelshytiples criterios

Otra alternativa que a menudo es pasada por alto es la utilizacioacuten de las tashyblas dinaacutemicas de Excel que veremos en el capiacutetulo 4 Aunque las tablas dinaacutemishycas puedan parecer sobrecogedoras la primera vez que se ven le recomendamos encarecidamente que se familiarice con esta potente funcioacuten de Excel ya que cuando sea un maestro se preguntaraacute coacutemo pudo sobrevivir sin ellas

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 27

Al final del diacutea sino recuerda nada maacutes acerca del disentildeo de la hoja de caacutelculo recuerde que Excel funciona mucho mejor cuando todos los datos relacionados estaacuten distribuidos en una tabla continua Eso haraacute que la utilizacioacuten de los t rushycos sea mucho maacutes sencilla

Crear una vista personal de los libros de Excel Excel le permite mostrar varios libros abiertos simultaacuteneamente y por tanto presentarlos en una vista personalizada organizada en diferentes ventanas Entonces puede guardar el espacio de trabajo como un archivo xlw y utilizarlo posteriormente cuando lo desee

A veces trabajando con Excel puede que necesite tener maacutes de un libro abiershyto en la pantalla lo que permite utilizar visualizar los datos de muacuteltiples libros de forma faacutecil y raacutepida

En los siguientes paacuterrafos describiremos coacutemo hacer esto de una forma orgashynizada y ordenada Abra todos los libros que desee utilizar

Para abrir maacutes de un libro a la vez seleccione la opcioacuten ArchivogtAbrir mantenga pulsada la tecla Control mientras selecciona los libros que

w desea abrir y finalmente baga clic en el botoacuten Abrir

Desde cualquiera de los libros de Excel (no importa cuaacutel) seleccione la opcioacuten de menuacute VentanagtOrganizar Si estaacute activada la casilla de verificacioacuten Ventanas del libro activo desactiacutevela y luego seleccione la organizacioacuten que prefiera Para terminar haga clic en el botoacuten Aceptar

Si eligioacute la opcioacuten Mosaico se le presentaraacuten los libros como un mosaico en la pantalla tal y como puede verse en la figura 11

Si selecciona la opcioacuten Horizontal se distribuiraacuten los libros de arriba a abajo ocupando todo el ancho de la pantalla tal y como se muestra en la figura 12

Si eligioacute la opcioacuten Vertical se distribuiraacuten los libros uno al lado del otro de izquierda a derecha como puede verse en la figura 13

Por uacuteltimo como muestra la figura 14 seleccionando la opcioacuten Cascada se mostraraacuten las ventanas unas encima de otras desde la parte superior izquierda a la parte inferior derecha Una vez que los libros se muestran de la forma que maacutes prefiera puede copiar pegar arrastrar etc informacioacuten entre ellos faacutecilmente

Si cree que maacutes adelante querriacutea volver a utilizar esta vista que acaba de crear puede guardar la configuracioacuten de la distribucioacuten de las ventanas como un espashycio de t r aba jo Para ello s i m p l e m e n t e seleccione la opc ioacuten de m e n uacute ArchivogtGuardar aacuterea de trabajo introduzca el nombre de archivo en el cuadro

28 Excel Los mejores trucos

de diaacutelogo correspondiente y haga clic en el botoacuten Guardar Cuando graba un aacuterea de trabajo la extensioacuten del archivo seraacute xlw en vez de xls Para recuperar un aacuterea de trabajo de Excel a una ventana completa de uno de los libros en partishycular simplemente haga doble clic en la barra de tiacutetulo de la ventana corresponshydiente Tambieacuten puede hacer clic en el botoacuten de maximizar de cualquiera de las ventanas del aacuterea de trabajo Una vez que haya acabado puede cerrar los libros de Excel de la forma habitual

Figura 11 Cuatro libros abiertos en vista mosaico

Cuando necesite volver a abrir los mismos libros bastaraacute con abrir el archivo xlw con lo que maacutegicamente se mostraraacuten con la misma distribucioacuten con la que fueron guardados Si solamente necesita abrir uno de los libros haacutegalo de la forma habitual Cualquier modificacioacuten que haga en alguno de los libros que forman parte del aacuterea de trabajo se guardaraacute automaacuteticamente cuando cierre el aacuterea de trabajo como conjunto aunque tambieacuten puede guardar cada libro de forma individual

Si dedica una pequentildea parte de tiempo a configurar algunas vistas personalishyzadas para realizar tareas repetitivas que requieren de muacuteltiples libros abiertos encontraraacute que esas tareas seraacuten maacutes faacuteciles de gestionar Quizaacute decida utilizar diferentes vistas para diferentes tareas repetitivas dependiendo de cuaacutel sea la tarea o coacutemo se sienta ese diacutea

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 29

Figura 12 Cuatro libros en vista horizontal

Figura 13 Cuatro libros en vista vertical

30 Excel Los mejores trucos

TRUCO

Figura 14 Cuatro libros en vista cascada

Introducir datos en varias hojas de caacutelculo simultaacuteneamente Es muy comuacuten tener los mismos datos en varias hojas de caacutelculo simultaacuteneamente Puede utilizar la herramienta de Excel para agrupar de forma que los datos introducidos en una hoja se introduzcan automaacuteticamente en el resto de hojas al mismo tiempo Tambieacuten disponemos de una aproximacioacuten maacutes raacutepida y maacutes flexible para hacer esta tarea que requiere de un par de liacuteneas de coacutedigo de Visual Basic for Applications (VBA)

El mecanismo que incorpora Excel para hacer que los datos se introduzcan en muacuteltiples lugares al mismo tiempo es una funcioacuten llamada Grupo la cual funshyciona agrupando las hojas de caacutelculo de forma que todas esteacuten vinculadas con el libro de Excel

Agrupar hojas de caacutelculo manualmente

Para utilizar la funcioacuten Grupo manualmente simplemente haga clic en la hoja en la que va a introducir los datos y pulse la tecla Control (tecla Mayuacutes en

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 31

Macintosh) mientras hace clic en las pestantildeas de las hojas de caacutelculo en las que desea insertar simultaacuteneamente los datos Cuando introduzca datos en cualquieshyra de las celdas de la hoja de caacutelculo se introduciraacuten automaacuteticamente en el resto de hojas de caacutelculo agrupadas Misioacuten completada

Para desagrupar las hojas de caacutelculo bien seleccione una hoja de caacutelculo que no sea parte del grupo o bien haga clic con el botoacuten derecho del ratoacuten en cualshyquiera de las pestantildeas de las hojas de caacutelculo agrupadas y seleccione la opcioacuten Desagrupar hojas

Cuando las hojas de caacutelculo estaacuten agrupadas si echa un vistazo a la barra de tiacutetulo de Excel veraacute que aparece la palabra Grupo encerrada entre corchetes Esto le hace saber que todaviacutea tiene agrupadas las hojas de caacutelculo A menos que tenga vista de aacuteguila y una memoria de elefante es maacutes que probable que no se deacute cuenta o se olvide de que tiene agrupadas las hojas de caacutelculo Por tanto le sugerimos que las desagrupe tan pronto como haya terminado con lo que estuviese haciendo

Aunque este meacutetodo es faacutecil necesita que recuerde agrupar y desagrupar las hojas cuando necesite corriendo el riesgo de sobrescribir datos en cualquier otra hoja de caacutelculo si se olvida de desagruparlas Tambieacuten significa que se produciraacuten entradas de datos simultaacuteneas independientemente de la celda en la que esteacute sishytuado Por ejemplo quizaacute solamente desee introducir datos simultaacuteneamente cuando se encuentre en un cierto rango de celdas en particular

Agrupar hojas de caacutelculo automaacuteticamente

Puede evitar estos inconvenientes faacutecilmente utilizando un coacutedigo VBA m u y sencillo Para que pueda funcionar debe residir dentro del moacutedulo privado del objeto Sheet (Hoja) Para acceder raacutepidamente al moacutedulo privado haga clic con el botoacuten derecho del ratoacuten en la pestantildea con el nombre de la hoja y seleccione la opcioacuten Ver coacutedigo Entonces podraacute utilizar uno de los eventos de Excel para las hojas de caacutelculo los cuales ocurren dentro de la propia hoja de caacutelculo como puede ser cambiar una celda seleccionar un rango activar desactivar etc meshydiante dichos eventos podraacute mover el coacutedigo dentro del moacutedulo privado del objeshyto Sheet Lo primero que hay que hacer para que funcione el agrupamiento es dar nombre al rango de celdas que desea tener agrupadas de forma que los datos se introduzcan automaacuteticamente en el resto de hojas de caacutelculo Escriba este coacuteshydigo en el moacutedulo privado

Priacutevate Sub Worksheet_SelectionChange(ByVal Target As Range) If Not Intersect(Range(MiRango) Target) Is Nothing Then

32 Excel Los mejores trucos

Hoja5 se ha colocado primero a propoacutesito ya que seraacute bullla hoja activa desde la que trabajaremos

Sheets(Array(Hoja5 MHoja3 Hojal))Select Else

MeSelect End If

End Sub

En este coacutedigo hemos utilizado el rango cuyo nombre es MiRango pero puede cambiar este nombre por el que esteacute utilizando en su hoja de caacutelculo Tamshybieacuten deberaacute cambiar los tres nombres de hoja en el coacutedigo tal y como se muestra la figura 15 con aquellos nombres de hoja que desea agrupar Cuando haya terminado cierre la ventana de moacutedulo o bien pulse AltComando-Capara volshyver a la ventana principal de Excel

Figura 15 Coacutedigo para agrupar automaacuteticamente hojas de caacutelculo

Es importante resentildear que el primer nombre de hoja utilizado en el array debe ser el de la hoja que contiene el coacutedigo y por tanto la hoja de caacutelculo en la que se introduciraacuten los datos

Una vez que haya escrito el coacutedigo en el lugar adecuado cada vez que selecshycione cualquier celda de la hoja de caacutelculo el coacutedigo comprobaraacute si la celda que ha seleccionado (el objetivo) estaacute dentro del rango llamado MiRango Si es asiacute el coacutedigo agruparaacute automaacuteticamente las hojas de caacutelculo que desea agrupar Si por el contrario esto no es asiacute desagruparaacute las hojas simplemente activando la hoja en la que se encuentra La maravilla de este truco es que no hay necesidad de agrupar manualmente las hojas y por tanto correr el riesgo de olvidarse de

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 33

desagruparlas por lo que esta aproximacioacuten le ahorraraacute gran cantidad de tiemshypo y frustracioacuten Si desea que aparezcan los mismos datos en las otras hojas pero no en las mismas direcciones de celdas escriba el siguiente coacutedigo

Priacutevate Sub worksheet_Change(ByVal Target As Range) If Not Intersect(Range(MiRango) Target) Is Nothing Then

With Range(MiRango) Copy Destination=Sheets(Hoja3)Range(Al)

Copy Destination=Sheets(Hojal)Range(DIO) End With

End If End Sub

Este coacutedigo tambieacuten necesita estar incluido dentro del moacutedulo privado del obshyjeto Sheet Siga los pasos que describimos anteriormente en este mismo truco para poder llegar a dicho moacutedulo

Impedir que los usuarios realizan ciertas acciones Aunque Excel proporciona proteccioacuten general para los libros y hojas de caacutelculo esta caracteriacutestica no proporciona privilegios limitados a los usuarios a menos que utilice un truco

Se pueden gestionar las interacciones de los usuarios con las hojas de caacutelculo monitorizando y respondiendo a los eventos Los eventos como su nombre indishyca son acciones que ocurren a medida que se trabaja con los libros y las hojas de caacutelculo Algunos de los eventos maacutes comunes incluyen abrir un libro guardarlo y cerrarlo cuando el usuario desee Se le puede indicar a Excel que ejecute cierto coacutedigo Visual Basic cuando cualquiera de estos eventos se produzca

Los usuarios pueden saltarse todas estas protecciones si desactivan las macros por completo Si la seguridad estaacute establecida a nivel medio seraacuten notificados de que existen macros en el libro abierto dando la posibilidad de desactivarlas Un nivel de seguridad alto simplemente desactivaraacute las macros automaacuteticamente Por otro lado si las hojas de caacutelculo requieren del uso de macros es maacutes que probable que los usuarios desean tener las macros activadas Estos trucos son praacutecticos y no proporcionan una seguridad de datos que requiera de gran carga de trabajo

Impedir el comando Guardar como en un libro de Excel

Se puede especificar que cualquier libro de Excel sea guardado como soacutelo lecshytura activando la casilla de verificacioacuten Se recomienda soacutelo lectura que se en-

34 Excel Los mejores trucos

cuentra accediendo a la opcioacuten Opciones generales del cuadro de diaacutelogo Guarshydar Con esto se evita que un usuario pueda guardar cualquier cambio que haya realizado al archivo a menos que lo grabe con un nombre diferente o en una ubicacioacuten distinta

A veces sin embargo desearaacute impedir que los usuarios puedan guardar una copia del libro en otra carpeta con el mismo nombre de archivo o con cualquier otro En otras palabras lo que desea es que los usuarios soacutelo puedan guardar sobre el archivo existente y no crear otra copia del mismo Esto es particularshymente interesante cuando hay maacutes de una persona guardando los cambios en un libro de Excel porque no desea que haya diferentes copias de un mismo libro guardadas con el mismo nombre pero en carpetas diferentes

El evento Bef o r e S a v e que vamos a utilizar existe desde Excel 97 Como su propio nombre indica este evento se produce justamente antes de que un libro sea guardado permitieacutendole interactuar con el usuario mostrando una advershytencia e impidiendo que Excel continuar grabando

Antes de probar esto en su casa aseguacuterese de guardar su libro de Excel antes Si coloca este coacutedigo sin haber guardado los cambios antes ya no podraacute hacerlo

Para insertar el coacutedigo abra el libro de Excel haga clic con el botoacuten derecho del ratoacuten en el icono de Excel situado justo a la izquierda del menuacute Archivo y seleccione la opcioacuten Ver coacutedigo como puede verse en la figura 16

Figura 16 Menuacute de acceso raacutepido al moacutedulo privado del objeto Workbook

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 35

Figura 17 Coacutedigo una vez introducido en el moacutedulo privado (ThisWorkbook)

Pr iacuteva t e Sub workbook_BeforeSave(ByVal SaveAsUI As Boolean Cancel As Boolean) Dim lReply As Long

If SaveAsUI = True Then lReply = MsgBox(No tiene permiso para guardar este amp _

libro con otro nombre iquestDesea guardarlo con el mismo nombre vbQuestion + vbOKCancel)

Cancel = (lReply = vbCancel) If Cancel = False Then MeSave Cancel = True

End If End Sub

Vamos a probarlo Seleccione la opcioacuten ArchivogtGuardar y el libro se guardaraacute de forma normal Ahora intente seleccionar la opcioacuten ArchivogtGuardar como y

Este acceso raacutepido no estaacute disponible en Macintosh Tendraacute que abrir el Editor de Visual Basic pulsando Opcioacuten-Fll o bien seleccionando la opcioacuten de menuacute HerramientasgtMacrogtEditor Visual Basic Una vez en eacutel haga clic con el botoacuten derecho en ThisWorkbook que estaacute situado en la ventana de proyectos de la parte izquierda

Escriba el siguiente coacutedigo en VBE tal y como se muestra en la figura 17 y luego pulse AltComando-CLpara volver a la ventana principal de Excel

36 Excel Los mejores trucos

entonces veraacute un mensaje que le indica que no tiene permiso para guardar este libro con otro nombre diferente

Impedir que los usuarios impriman un libro de Excel

Quizaacute desee impedir que los usuarios puedan imprimir un libro para que lueshygo seguramente acabe en una papelera o tirado en un escritorio a la vista de todos Utilizando el evento Bef o r e P r i n t podemos impedir esto Introduzca el siguiente coacutedigo como hicimos anteriormente en el Editor de Visual Basic

Priacutevate Sub workbook_BeforePrint(Cancel As Boolean) Cancel = True MsgBox No puede imprimir este libro vblnformation

End Sub

Pulse AltComando-Q_cuando haya terminado de introducir el coacutedigo para guardarlo y volver a la ventana principal de Excel Ahora cada vez que los usuashyrios intenten imprimir este libro no podraacuten hacerlo La liacutenea de coacutedigo con la instruccioacuten MsgBox es opcional pero siempre es buena idea incluirla para que informe al usuario de que no moleste al departamento de Tecnologiacutea Interna diciendo que su programa no funciona

Si desea impedir que los usuarios impriman solamente algunas hojas del lishybro utilice este coacutedigo en vez del anterior

Private Sub workbook_BeforePrint(Cancel As Boolean) Select Case ActiveSheetNtildeame

Case Hojal Hoja2 Cancel = True MsgBox No puede imprimir esta hoja de este libro_

vblnformation End Select

End Sub

Observe que hemos especificado las hojas Hojal y Hoja2 como las que tienen prohibido ser impresas Por supuesto puede cambiar esos nombres por el de cualshyquier otra hoja que desee bloquear Tambieacuten puede antildeadir maacutes hojas a la lista simplemente escribiendo una seguida del nombre de la hoja entre dobles comishyllas Si soacutelo desea impedir la impresioacuten de una sola hoja incluya su nombre entre dobles comillas detraacutes de la sentencia Case y elimine la coma sobrante

Impedir que los usuarios inserten maacutes hojas de caacutelculo

Excel le permite proteger la estructura de un libro de forma que los usuarios no puedan eliminar hojas de caacutelculo reordenarlas cambiar sus nombres etc A

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 37

veces sin embargo desearaacute impedir simplemente que se puedan antildeadir nuevas hojas de caacutelculo permitiendo que se realicen el resto de acciones

El siguiente coacutedigo le permitiraacute hacer esto

Priacutevate Sub Workbook_NewSheet(ByVal Sh As Object) ApplicationDisplayAlerts = False

MsgBox No puede antildeadir nuevas hojas de caacutelculo a este libro_ vbInformation

ShDelete ApplicationDisplayAlerts = True End Sub

Este coacutedigo primeramente muestra el cuadro de diaacutelogo con el mensaje y lueshygo inmediatamente elimina la nueva hoja que se acaba de antildeadir una vez que el usuario acepta el mensaje La instruccioacuten Appl i c a t i oacute n Di s p l a y A l e r t s = F a l s e impide que Excel muestre la advertencia estaacutendar que pregunta al usuashyrio si realmente desea eliminar la hoja Con este coacutedigo los usuarios seraacuten incashypaces de antildeadir maacutes hojas de caacutelculo al libro

Otra forma de impedir que los usuarios antildeadan nuevas hojas de caacutelculo es seleccionar la opcioacuten HerramientasgtProtegergtProteger libro y luego activar la cashysilla de verificacioacuten Estructura Sin embargo como ya dijimos al principio de este truco el mecanismo de proteccioacuten de Excel es menos flexible y ademaacutes de impeshydir antildeadir nuevas hojas tambieacuten impediraacute otras muchas cosas

Impedir confirmaciones innecesarias A veces las interacciones de Excel puedan resultar pesadas siempre preguntando para pedir confirmacioacuten sobre acciones Quitemos estos mensajes y dejemos que Excel realice las acciones

El tipo de mensajes a los que nos referimos son aquellos que preguntan si se desean activar las macros (incluso cuando no hay ninguna) o los que nos preshyguntan si estamos seguros de que queremos eliminar un hoja de caacutelculo A conshytinuacioacuten mostramos coacutemo evitar estos tipos de mensajes

Activar las macros cuando no se tenga ninguna

La memoria de Excel es de acero cuando se t rata de recordar que ha grabado una macro en un libro Por desgracia Excel sigue recordando que se ha grabado una macro incluso si la ha eliminado utilizando la opcioacuten HerramientasgtMacrogt Macros (AltOpcioacuten-F8) Despueacutes de hacer esto si abre el libro de nuevo seguiraacute recibiendo un mensaje que le pregunta si desea activar las macros incluso aunshyque no haya ninguna que activar

38 Excel Los mejores trucos

Se le pedir confirmacioacuten para activar las macros solamente si el nivel de seguridad estaacute establecido en medio Si estaacute establecido en bajo las macros se activan directamente pero si estaacute establecido en alto estaacuten desactivadas automaacuteticamente

Cuando graba una macro Excel inserta un moacutedulo de Visual Basic que conshytendraacute los comandos y las funciones Por ello cuando se abre un libro Excel comprueba si existe alguacuten moacutedulo este vaciacuteo o no Cuando se eliminan las macros de un libro soacutelo se elimina el coacutedigo pero no el moacutedulo en siacute (es algo asiacute como beberse toda la leche pero dejarse el bote vaciacuteo dentro de la nevera) Para impedir que se muestren este tipo de mensajes innecesarios deberaacute eliminar tambieacuten el moacutedulo Asiacute es como puede hacerse esto Abra VBE seleccionando la opcioacuten HerramientasgtMacrogtEditor de Visual Basic (o pulsando A l t C o m a n d o - F l l ) y luego seleccionando la opcioacuten VergtExplorador de proyectos (en Macintosh la venshytana de proyectos siempre estaacute abierta por lo que no necesitaraacute abrir el explorashydor de proyectos) A continuacioacuten podraacute ver una ventana como la que se muestra en la figura 18

Figura 18 Moacutedulos del Explorador de proyectos con la carpeta Moacutedulos abierta

Busque el libro en el Explorador de proyectos y haga clic en el icono + situado a su izquierda para visualizar los componentes del libro en particular los moacutedushylos Haga clic en el icono + de la carpeta Moacutedulos para obtener una lista de todos los moacutedulos Haga clic con el botoacuten derecho del ratoacuten en cada moacutedulo y elija la opcioacuten Quitar moacutedulo Cuando se le pregunte rechace la opcioacuten de exportar los moacutedulos Antes de quitar los moacutedulos que pudieran tener coacutedigo uacutetil haga doble clic en cada uno de ellos para asegurarse de que no los necesite Al terminar pulse Al t Comando-Ctpara volver de nuevo a la ventana principal de Excel

Mensajes de confirmacioacuten para guardar cambios que no se han realizado

Probablemente habraacute observado que a veces al abrir un libro y echar un vistashyzo a su informacioacuten es suficiente para que Excel le pregunte si desea guardar los

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 39

cambios en el libro de macro personal (aunque de hecho no ha realizado ningushyno) Lo maacutes probable es que tenga una funcioacuten imprevisible dentro del libro de macro personal

Un libro de macro personal es un libro oculto que se crea la primera vez que graba una macro y que se abre cada vez que se utiliza Excel Una funcioacuten (o foacutermula) imprevisible es aquella que se recalcula automaacuteticamente cada vez que realiza praacutecticamente cualquier cosa en Excel incluyendo abrir y cerrar un libro o la aplicacioacuten entera Dos de las funciones imprevisibles maacutes comunes son Hoy () y Ahora ( )

Por tanto aunque crea que no ha realizado cambios en el libro puede que esas funciones que se ejecutan en segundo plano siacute los hayan hecho Esto cuenta como un cambio y hace que Excel le pregunte si desea guardar dichos cambios

Si desea que Excel deje de preguntar por aquellos cambios que no ha realizashydo dispone de un par de opciones La maacutes obvia es no almacenar funciones imshyprevisibles al principio dentro del libro de macro personal y luego eliminar cualquier funcioacuten imprevisible que ya exista La otra opcioacuten en caso de que neshycesite utilizar funciones imprevisibles puede ser utilizar este sencillo coacutedigo para hacer que Excel crea que el libro de macro personal ha sido guardado en el m o shymento en el que se abre

Priacutevate Sub workbook_Open( ) MeSaved = True

End Sub

Este coacutedigo debe residir en el moacutedulo privado del libro del libro de macro pershysonal Para llegar ahiacute desde cualquier libro seleccione la opcioacuten VentanagtMostrar seleccione Personalxls y luego haga clic en Aceptar Luego abra VBE e introduzshyca el coacutedigo anterior Finalmente pulse AltComando-Capara volver a la ventashyna principal de Excel cuando haya terminado Por supuesto si dispone de una funcioacuten imprevisible que quiere que sea recalculada y por tanto guardar los camshybios que haya realizado entonces introduzca el siguiente coacutedigo

Priacutevate Sub workbook_Open( ) MeSave

End Sub

Esta macro guardaraacute el libro de macro personal automaacuteticamente cada vez que sea abierto

Impedir los avisos de Excel para macros grabadas

Uno de los muchos inconvenientes de las macros grabadas es que aunque son m u y uacutetiles para reproducir cualquier comando tienden a olvidar las res-

40 Excel Los mejores trucos

puestas a los avisos que se muestran en pantalla Elimine una hoja de caacutelculo y se le pediraacute confirmacioacuten ejecute una macro que realice esto mismo y todaviacutea se le pediraacute confirmacioacuten Veamos coacutemo desactivar esos avisos

Seleccione la opcioacuten HerramientasgtMacrogtMacros (AltOpcioacuten-F8) para mosshytrar un listado de todas las macros

Aseguacuterese de que estaacute seleccionada la opcioacuten Todos los libros abiertos en el cuadro de lista desplegable de la parte inferior Seleccione la macro en la que esteacute interesado y haga clic en el botoacuten Modificar Coloque el cursor antes de la prishymera liacutenea de coacutedigo (la primera liacutenea que no tiene un apostrofe delante de ella) y escriba lo siguiente

ApplicationDisplayAlerts = False

Y al final del todo del coacutedigo antildeada esto

ApplicationDisplayAlerts = True

Con lo que la macro entera quedariacutea asiacute

Sub MyMacro( ) i

1 MiMacro Macro 1 Elimina la hoja de caacutelculo actual i

ApplicationDisplayAlerts = False ActiveSheetDelete ApplicationDisplayAlerts = True

End Sub

Observe que al final del coacutedigo volvemos a activar los mensajes de confirmashycioacuten para que Excel los muestre cuando estemos trabajando normalmente Si se olvida de activarlos Excel no mostraraacute ninguna alerta lo cual puede ser pelishygroso

Si por cualquier razoacuten la macro no se completa (un error de ejecucioacuten por ejemplo) Excel puede que no llegue a ejecutar la liacutenea de coacutedigo en la que se vuelven a activar los mensajes de confirmacioacuten Si ocurriese esto probablemente seraacute mejor salir de Excel y volver a abrirlo para dejar todo en su estado normal

Ahora ya sabe coacutemo utilizar Excel sin mensajes de confirmacioacuten Tenga en cuenta de todas formas que esos mensajes estaacuten ahiacute por una razoacuten Aseguacuterese de que comprende completamente el propoacutesito de estos mensajes antes de desactivarlos

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 41

Ocultar hojas para que no puedan ser mostradas A veces deseariacutea tener un lugar donde colocar informacioacuten que no pueda ser leiacuteda o modificada por los usuarios Puede construir un lugar secreto dentro del libro un lugar donde almacenar informacioacuten foacutermulas y otros recursos que se utilizan en las hojas pero que no desea que se vean

Una praacutectica m u y uacutetil cuando se configura un nuevo libro de Excel es resershyvar una hoja para almacenar informacioacuten que los usuarios no necesitan ver caacutelculos de foacutermulas validacioacuten de datos listas variables de intereacutes y valores especiales datos privados etc Aunque se puede ocultar una hoja seleccionando la opcioacuten FormatogtHojagtOcultar es importante asegurarse de que los usuarios no puedan volver a mostrarla seleccionando la opcioacuten FormatogtHojagtMostrar

Por supuesto simplemente puede proteger la hoja pero esto todaviacutea deja al descubierto los datos privados las foacutermulas etc Ademaacutes no se puede proteger las celdas que estaacuten vinculadas a cualquiera de los controles disponibles en la barra de herramientas Formularios

En vez de esto jugaremos con la propiedad V i s i b l e de la hoja establecieacutenshydola en x lVeryHidden Desde VBE (HerramientasgtMacrogtEditor de Visual Basic o Alt Opcioacuten-Fl 1) aseguacuterese de que la ventana de exploracioacuten de proyectos esteacute visible seleccionando la opcioacuten VergtExplorador de proyectos Encuentre el nomshybre del libro y expanda su jerarquiacutea haciendo clic en el icono + que aparece a la izquierda de su nombre Expanda la carpeta Microsoft Excel Objetos para mosshytrar todas las hojas del libro

Seleccione la hoja que desea ocultar en el explorador de proyectos y muestre sus propiedades seleccionando la opcioacuten VergtVentana Propiedades (o pulsando la tecla F4) Aseguacuterese de que estaacute seleccionada la pestantildea Alfabeacutetica y busque la propiedad Visible en la lista que estaraacute situada al final Haga clic en el cuadro de texto que hay a su derecha y seleccione la uacuteltima opcioacuten 2 - xISheetVeryHidden tal y como se muestra en la figura 19 Pulse AltComando-CLpara guardar los cambios y volver a la ventana principal de Excel A partir de ahora la hoja ya no estaraacute visible desde la interfaz de Excel e incluso tampoco podraacute mostrarse a traveacutes de la opcioacuten FormatogtHojagtMostrar

Una vez que haya seleccionado la opcioacuten 2 - xISheetVeryHidden en la s$P ventana de propiedades puede parecer que dicha eleccioacuten no ha tenido

iquestiexclr efecto Este fallo visual ocurre a veces y no deberiacutea importarle Siempre $r que la hoja no aparezca entre las opciones de FormatogtHojagtMostrar

puede estar seguro de que todo ha ido bien

Para revertir el proceso simplemente siga los pasos anteriores pero esta vez seleccionando la opcioacuten 1 - xISheetVisible

42 Excel Los mejores trucos

iiffiffffmftfii

0 H EuroTool (EUROTOOLXLA) sectiacute VBAProject (Libro 1)

- bull v Microsoft Excel Objetos Uuml3 Hojal (Hojal) iQ Hoja2 (Hoja2) Q ThisWorkbook

Moacutedulos laquoiacutepound Moacutedulo 1 ltspound Moacutedulo2

iacuteHojal Worksheet

Alfabeacutetica | po r categoriacuteas 1 3

(Ntildeame) Hojal DisplayPageBreaks False DisplayRightToLeft False EnableAutoFilter False EnableCalculation True EnableOutlining False EnablePivotTable False

EnableSelection 0 - xlNoRestrictions Ntildeame Hojal ScrollArea Standard Width 1071

Figura 19 Ventana de propiedades de una hoja con la propiedad Visible establecida en 2 - xlSheetVeryHidden

Personalizar el cuadro de diaacutelogo Plantillas y el libro predeterminado Si suele realizar las mismas tareas o utilizar las mismas distribuciones para hojas de caacutelculo con frecuencia puede construir su propia pestantildea de plantillas en el cuadro de diaacutelogo estaacutendar Plantillas para proporcionar un acceso raacutepido al inicio

Imagiacutenese que tiene una hoja de caacutelculo que contiene los diacuteas del antildeo y foacutershymulas que resumen diversas informaciones para esos diacuteas Ha formateado esta hoja de caacutelculo cuidadosamente con los colores de su empresa el logotipo y con las foacutermulas necesarias todo ello para utilizarla con frecuencia En vez de tener que reinventar la rueda (o copiar y eliminar las cosas que no necesita) cada diacutea puede ahorrar un montoacuten de tiempo y de problemas creando una plantilla

Las plantillas para libros y hojas de caacutelculo le proporcionan un punto de parshytida para los siguientes proyectos permitieacutendole saltarse la configuracioacuten inishycial el proceso de dar formato la construccioacuten de foacutermulas etc Guardar una plantilla de una hoja de caacutelculo simplemente significa abrir un libro nuevo boshyrrar todas las hojas excepto una y luego crear una plantilla baacutesica que seraacute la

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 43

que utilice Una vez terminada seleccionaraacute la opcioacuten ArchivogtGuardar como y elegiraacute la opcioacuten Plantilla del cuadro de lista desplegable con los tipos de archivos posibles Si la plantilla es de un libro (es decir que contendraacute maacutes de una hoja) entonces cree un nuevo libro haga todos los cambios necesarios y luego seleccioshyne la opcioacuten ArchivogtGuardar como y guaacuterdelo como una plantilla

Con la plantilla terminada puede crear una copia exacta de la misma en cualshyquier momento seleccionando la opcioacuten ArchivogtNuevo y luego seleccionando una plantilla de libro o bien haciendo clic con el botoacuten derecho en una pestantildea de hoja y seleccionando la opcioacuten Insertar desde el menuacute contextual para insertar una nueva hoja a partir de una plantilla iquestNo seriacutea interesante poder tener todas esas plantillas disponibles desde el cuadro de diaacutelogo estaacutendar Plantillas o confishygurar su libro preferido como predeterminado Puede hacer todo esto creando su propia pestantildea de plantillas

Este truco presupone que tiene una uacutenica instalacioacuten de Excel en su ordenador Si dispone de muacuteltiples copias o versiones de Excel puede que no funcione

Crear su propia pestantildea de plantillas

Si dispone de una serie de plantillas (tanto de libros como de hojas de caacutelculo) que desea utilizar con regularidad puede agruparlas todas juntas en el cuadro de diaacutelogo Insertar o Plantillas

Desde cualquier libro seleccione la opcioacuten ArchivogtGuardar como y desde el cuadro de lista desplegable de tipos de archivo seleccione la opcioacuten Plantilla (xlt) De forma predeterminada Excel seleccionaraacute la carpeta estaacutendar Plantillas del disco duro en donde se almacenan todas las plantillas del usuario Si no existe una carpeta llamada Mis plantillas cree una utilizando el botoacuten Nueva carpeshyta Luego seleccione la opcioacuten ArchivogtNuevo en la barra de menuacutes (en Excel 2000 y posteriores seleccione Plantillas generales en el cuadro de diaacutelogo Nuevo libro En Excel 2003 debe seleccionar la opcioacuten En mi PC del panel de tareas) Entonces deberiacutea haber una pestantildea que representa la carpeta Mis plantillas que acaba de crear (veacutease figura 110) Tambieacuten deberiacutea ver las plantillas de libros y hojas de caacutelculo que guarde en dicha carpeta

Utilizar un libro personalizado de forma predeterminada

Al iniciar Excel se abre de forma predeterminada un libro en blanco llamado Librol que contiene tres hojas en blanco Esto estaacute bien si desea comenzar de nuevo cada vez que inicia Excel Sin embargo es probable que trabaje normal-

44 Excel Los mejores trucos

mente con un libro Por tanto resulta pesado tener que abrir Excel y luego busshycar el libro que se desea abrir Si desea configurar Excel para que automaacuteticamente se inicie con un cierto libro abierto siga leyendo

General ] Soluciones de hoja de caacutelculo Mis plantillas j

iaacute iexcl J 1 Libro lxlt Libro2XLT

Seleccione un icono para ver una vista previa

Plantillas de Office Online

Figura 110 El cuadro de diaacutelogo Plantillas

Para ello guarde su libro predeterminado (plantilla) en la carpeta XLSTART (que normalmente se encuentra en la carpeta CDocuments and SettingsNombre de usuarioApplication DataMicrosoftExcelXLSTART en Windows y en la carshypeta ApplicationsMicrosoft Office XOfficeStartupExcel en Macintosh) Una vez que haya hecho esto Excel utilizaraacute cualquiera de los libros que haya incluishydo en esta carpeta como predeterminados

La carpeta XLSTART es donde se crea y guarda automaacuteticamente el libro de macros personales cuando graba una macro El libro de macros personales es un libro oculto Tambieacuten puede tener sus propios libros ocultos abiertos en segundo plano si lo desea abriendo dicho libro seleccionando la opcioacuten VentanagtOcultar cerrando Excel y luego haciendo clic en Siacute para guardar los cambios en eacutel Luego coloque ese libro en la carpeta XLSTART Todos los libros que oculte y coloque dentro de la carpeta XLSTART se abriraacuten como libros ocultos cada vez que inicie Excel

Evite la tentacioacuten de colocar muchos libros en esta carpeta especialmente si son grandes dado que todos ellos se abriraacuten cuando inicie Excel Si se tiene mushychos libros abiertos se puede reducir considerablemente el rendimiento de Excel Naturalmente si cambia de opinioacuten y desea que al iniciar Excel aparezca un libro en blanco simplemente elimine los libros o plantillas de la carpeta XLSTART

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 45

Crear un iacutendice de hojas en el libro Si ha dedicado mucho tiempo en un libro que contiene muchas hojas sabe perfectamente lo complicado que puede ser encontrar una hoja en particular En estos casos es imprescindible tener una hoja iacutendice para poder navegar por el resto de hojas de libro

Utilizar una hoja de iacutendice le permitiraacute explorar de forma raacutepida y sencilla el libro de forma que con un solo clic de ratoacuten pueda ir directamente al lugar que desee Se puede crear un iacutendice de dos formas Podriacutea tener la tentacioacuten de crear el iacutendice a mano Cree una nueva hoja llaacutemela iacutendice o algo parecido introshyduzca en ella una lista de todos los nombres de las hojas e incluya viacutenculos a cada una de ellas mediante la opcioacuten de menuacute lnsertargtViacutenculo o pulsando Con-trolComando-K aunque este meacutetodo pueda ser suficiente en casos de los que no hay demasiadas hojas y no hay muchos cambios puede ser m u y tedioso teshyner que mantener el iacutendice manualmente

El siguiente coacutedigo crearaacute automaacuteticamente un iacutendice con viacutenculos a todas las hojas que esteacuten incluidas en el libro Este iacutendice se vuelve a generar cada vez que la hoja que contiene el coacutedigo es activada Este coacutedigo deberiacutea residir en el moacutedushylo privado del objeto Sheet Inserte una nueva hoja en el libro de Excel y llaacutemela con alguacuten nombre apropiado como pueda ser iacutendice Luego haga clic con el botoacuten derecho del ratoacuten soacutebrela pestantildea de dicha hoja y seleccione la opcioacuten Ver coacutedigo En la ventana de coacutedigo de Visual Basic escriba lo siguiente

Priacutevate Sub Worksheet_Activate( ) Dim wSheet As Worksheet Dim L As Long L = 1

With Me Columns(1)ClearContents Cells(l 1) = IacuteNDICE Cells(l 1)Ntildeame = iacutendice

End With

For Each wSheet In Worksheets If wSheetNtildeame oMeName Then L = L + 1 With wSheet

Range(Al)Ntildeame = Inicio amp wSheetIndex

HyperlinksAdd Anchor=Range(Al) Address=_ SubAddress=iacutendice TextToDisplay=Volver al iacutendice

End With MeHyperlinksAdd Anchor=MeCells(1 1) Address=_ SubAddress=Inicio amp wSheetIndex TextToDisplay=wSheetNtildeame

End If Next wSheet

End Sub

46 Excel Los mejores trucos

Pulse AltComando-CLpara volver al libro y guardar los cambios Observe que el coacutedigo da el nombre Inicio (al igual que cuando da nombre a una celda o un rango de celdas en Excel) a la celda Al de cada hoja ademaacutes de un uacutenico nuacutemero que representa el nuacutemero de iacutendice para dicha hoja Esto asegura que la celda Al de cada hoja tiene un nombre diferente Si la celda Al de la hoja ya tiene un nombre deberiacutea considerar cambiar cualquier mencioacuten a Al en el coacutedigo por algo maacutes adecuado (por ejemplo alguna celda no utilizada que esteacute situada en cualquier parte de la hoja)

Debe tener en cuenta que si selecciona la opcioacuten ArchivogtPropiedadesgt Resumen e introduce una direccioacuten URL como viacutenculo base el iacutendice que se crea por el coacutedigo anterior posiblemente no funcione Un viacutenculo base es una ruta o URL que desea utilizar para todos los viacutenculos con la misma direccioacuten base y que esteacuten incluidos en el documento actual

Otra forma de construir un iacutendice que es maacutes sencilla para el usuario es antildeadir un viacutenculo a la lista de hojas como un elemento de menuacute contextual al que se puede acceder haciendo clic con el botoacuten derecho del ratoacuten Haremos que dicho viacutenculo abra el menuacute estaacutendar de hojas Normalmente puede abrir este menuacute haciendo clic con el botoacuten derecho del ratoacuten en cualquiera de los botones de desplazamiento que se encuentran a la izquierda de donde se muestran las solapas de cada hoja tal y como se muestra en la figura 111

Ruuml iquest j

1 I 2 3 4 5 6 7 8

in i 11 12 13 j 14iexcl 15l 16| 17 j 18Iacute

119 i ]H 4 Listo

W W W F S l f i l W W i l f raquo ^

Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana l

Al f

A | B C D E F

i

$M Tareas para hoy

Figuras de esta semana

Hojal j

Hoja2 i

Hoja3

Hoja4

HojaS

Hoja6 T trade f p ^ aacute j j i E ^ bdquo trade ^ r a _ j ^rmdashp^u r a s d e e s t a s e m a n a ^ H o j a l pound H o j a 2 j 4 j

G

1 NUM

- S X

H mdash

bulliexcl

mdash1 ltr i

bull i n

Figura 111 Menuacute con las hojas disponibles que se muestra al hacer clic con el botoacuten derecho sobre los botones de desplazamiento entre hojas

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 47

Para vincular ese menuacute con el hecho de hacer clic con el botoacuten derecho del ratoacuten en cualquier celda escriba el siguiente coacutedigo en VBE

Priacutevate Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object ByVal Target As Range Cancel As Boolean) Dim cCont As CommandBarButton

On Error Resume Next ApplicationCommandBars(Cell)Controls(iacutendice de hojas)Delete On Error GoTo 0

Set cCont = ApplicationCommandBars(Cell)ControlsAdd _ (Type=msoControlButton Temporary=True)

With cCont Caption = iacutendice de hojas

OnAction = IndexCode End With

End Sub

A continuacioacuten deberaacute insertar un moacutedulo estaacutendar que almacene la macro IndexCode que es llamada por este coacutedigo que acabamos de introducir en el momento en el que el usuario hace clic con el botoacuten derecho del ratoacuten en una celda Es fundamental que utilice un moacutedulo estaacutendar a continuacioacuten ya que si coloca el coacutedigo en el mismo moacutedulo que el coacutedigo anterior Excel no sabraacute doacutende encontrar una macro llamada IndexCode Seleccione lnsertargtMoacutedulo y escriba el siguiente coacutedigo

Sub IndexCode( ) ApplicationCommandBars(workbook Tabs)ShowPopup End Sub

Pulse AltComando-CLpara volver a la ventana principal de Excel A contishynuacioacuten haga clic con el botoacuten derecho en cualquier celda y veraacute un nuevo eleshymento de menuacute llamado iacutendice de hojas que al seleccionarlo mostraraacute un listado de todas las hojas que contiene este libro

H Limitar el rango de desplazamiento de la hoja de caacutelculo Si se desplaza a menudo por la hoja de caacutelculo o si tiene datos que no desea que sean visualizados por los lectores puede ser uacutetil limitar el aacuterea visible de la hoja de caacutelculo soacutelo al rango que actualmente tiene datos

Todas las hojas de Excel creadas a partir de Excel 97 disponen de 256 columshynas (de la A a la IV) y de 65536 filas En la mayoriacutea de los casos las hojas soacutelo utilizaraacuten un pequentildeo porcentaje de todas las celdas disponibles Existe la posibishylidad de establecer el aacuterea por el que se puede desplazar el usuario de forma que soacutelo pueda ver los datos que desee Luego puede colocar datos que no deben ser

48 Excel Los mejores trucos

vistos fuera de esa aacuterea Esto tambieacuten puede hacer maacutes sencillo desplazarse por una hoja de caacutelculo y que los usuarios no se encuentran en la fila 50000 para tener que empezar a buscar los datos que desea

La manera maacutes sencilla para establecer los liacutemites es simplemente ocultar to shydas las columnas y filas que no se utilizan Estando en una hoja localice la uacuteltishyma fila que contiene datos y seleccione la fila entera que estaacute debajo de ella haciendo clic en el selector de fila Mantenga pulsadas las teclas Control y Mayuacutes mienshytras pulsa la tecla Flecha abajo para seleccionar todas las filas hacia abajo Seshyleccione entonces la opcioacuten FormatogtFilagtOcultar para ocultarlas todas Haga esto mismo para las filas no utilizadas busque la uacuteltima columna seleccione toda la columna siguiente y manteniendo pulsadas las teclas Control y Mayuacutes pulse la tecla Flecha derecha hasta seleccionar todas las columnas Luego selecshycione la opcioacuten FormatogtColumnagtOcultar Una vez hecho esto el rango de celshydas uacutetiles quedaraacute rodeado de una zona gris por la que no se puede desplazar

La segunda alternativa para establecer los liacutemites es especificar un rango vaacuteshylido en la ventana de propiedades de la hoja Haga clic con el botoacuten derecho en la pestantildea de la hoja que estaacute situada en la parte inferior izquierdo de la ventana y luego seleccione la opcioacuten Ver coacutedigo Entonces seleccione la opcioacuten VergtExplorador de proyectos (Control-R en Windows o Comando-R en Mac OS X) para mostrar la ventana de proyectos Si la ventana de propiedades no estaacute visible pulse la tecla F4 Seleccione la hoja adecuada y busque la propiedad ScrollArea en la venshytana de propiedades (veacutease figura 112)

Introduzca entonces en el cuadro de texto de dicha propiedad los liacutemites para la hoja (por ejemplo $A$1$G$50)

Una vez hecho esto no podraacute desplazarse fuera del aacuterea que haya especificashydo Por desgracia Excel no guarda esta configuracioacuten despueacutes de cerrarse Esto significa que necesitamos una simple macro que automaacuteticamente establezca el aacuterea de desplazamiento al rango deseado escribiendo el coacutedigo para el evento w o r k s h e e t _ A c t i v a t e

Para ello haga clic con el botoacuten derecho sobre la pestantildea de la hoja en la que desea limitar el desplazamiento y seleccione la opcioacuten Ver coacutedigo introduciendo a continuacioacuten

Priacutevate Sub Worksheet_Activate ( ) MeScrollArea = A1G50 End Sub

Como siempre pulse AltComando-Clpara volver a la ventana principal de Excel y guardar los cambios

Aunque en este caso no habraacute una indicacioacuten clara como pueda ser la zona gris que se mostraba con el primer meacutetodo seraacute incapaz de desplazarse o selecshycionar cualquier cosa fuera del aacuterea especificada

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 49

J J 0 Jg$ EuroTocJOEL^ iquest VBAProject (Libro7) j$ VBAProject (LibroS)

Microsoft E bull cel uumlbietos S ]Ho ia l (Hoial) H] Hoia2 (Hoia2) IT] Hoia3 (Ho]a3) Q ThisWorlbool

Hoja3 Worksheet

Alfabeacutetica j por categoriacuteas ]

(Ntildeame)

DisplayPageBreaks DisplayRightToLeft EnableAutoFilter EnableCalculation EnableOutlining EnablePivotTable EnableSelection Ntildeame

StandardWidth Visible

^X]|

Figura 112 Ventana de propiedades y del explorador de proyectos

Cualquier macro que intente seleccionar un rango fuera de esta aacuterea de desplazamiento (incluyendo la seleccioacuten de filas o columnas enteras) no podraacute hacerlo Esto es particularmente cierto para aquellas macros grabadas que a menudo hacen uso de las selecciones

Si las macros seleccionan un rango fuera del aacuterea de desplazamiento puede modificarlas de forma que no esteacuten limitadas a dicha hariacutea mientras realicen sus tareas Para ello simplemente seleccione la opcioacuten HerramientasgtMacrogtMacros (Alt-F8) busque el nombre de la macro seleccioacutenela y luego haga clic en el boshytoacuten Modificar Escriacutebala siguiente liacutenea de coacutedigo al principio del todo

ActiveSheetScrollArea =

Y al final del todo de la macro escriba

ActiveSheetScrollArea = $A$1$G$50

Con esto el coacutedigo de la macro quedariacutea maacutes o menos asiacute

S u b M y M a c r o ( )

50 Excel Los mejores trucos

MiMacro Macro Macro grabada el 1992003 by OzGridcom

ActiveSheetScrollArea = Range(Z100)Select SelectionFontBold = True

ActiveSheetScrollArea = $A$1$G$50 Sheets(Presupuesto diario)Select ActiveSheetScrollArea =

Range (T500)Select SelectionFontBold = False

ActiveSheetScrollArea = $A$1$H$25

End Sub

Nuestra macro selecciona la celda Z100 y le da formato negrita Luego selecshyciona la hoja llamada Presupuesto diario selecciona la celda T500 de dicha hoja y quita el formato negrita Hemos antildeadido A c t i v e S h e e t S c r o l l A r e a = de forma que pueda seleccionarse cualquier celda y maacutes adelante volvemos a establecer los liacutemites del aacuterea de desplazamiento al valor deseado Cuando selecshyciona amos otra hoja (Presupuesto diario) volvemos a permitir al coacutedigo selecshycionar cualquier celda y despueacutes de que la macro realice sus tareas volvemos a establecer el rango a los liacutemites deseados Un tercer meacutetodo el maacutes flexible limishyta automaacuteticamente el aacuterea de desplazamiento al rango que estaacute siendo usado en la hoja en la que escribe el coacutedigo Para utilizar este meacutetodo haga clic con el botoacuten derecho en la pestantildea de la hoja en la que desea limitar el aacuterea de desplazashymiento seleccione la opcioacuten Ver coacutedigo y escriba lo siguiente

Private Sub Worksheet_Activate( ) MeScrollArea = Range(MeUsedRange MeUsedRange(22))Address

End Sub

Luego pulse AltComando-CLo haga clic en el botoacuten para cerrar la ventana de Visual Basic para volver a la ventana principal y guardar los cambios

La macro anterior se ejecutaraacute automaacuteticamente cada vez que se active la hoja en la cual introdujo este coacutedigo Sin embargo puede encontrarse un probleshyma con esta macro cuando necesite introducir datos fuera del aacuterea utilizable Para evitar este problema simplemente utilice una macro estaacutendar que restashyblezca el aacuterea de desplazamiento de nuevo a toda la hoja Para ello seleccione la opcioacuten HerramientasgtMacrogtEditor de Visual Basic seleccione luego la opcioacuten lnsertargtMoacutedulo e introduzca el siguiente coacutedigo

Sub ResetScrollArea( ) ActiveSheetScrollArea =

End Sub

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 51

Entonces pulse A l t Comando- ( ipa ra volver a la ventana principal de Excel y guardar el trabajo

Si lo desea puede hacer que la macro sea faacutecilmente accesible asignaacutendole una tecla de acceso raacutepido Seleccione la opcioacuten HerramientasgtMacrogtMacros (Alt Opcioacuten-F8) seleccione ResetScrollArea (el nombre que le dimos a la macro anteshyrior) haga clic en Opciones y luego asigne una tecla de acceso raacutepido

Cada vez que necesite antildeadir datos fuera de los liacutemites establecidos de la hoja ejecute esta macro que quita dicha limitacioacuten Entonces haga aquellos cambios que no podiacutea hacer cuando el liacutemite estaba establecido y cuando haya terminashydo active cualquier otra hoja y luego vuelva a activar eacutesta para que se vuelva a limitar el aacuterea de desplazamiento La activacioacuten de la hoja haraacute que se ejecute el coacutedigo inicial que escribimos el cual limitaba el aacuterea de desplazamiento

^ ^ Q 9 Bloquear y proteger celdas que contienen foacutermulas II ^ ^ V f ^ H Quizaacute desee permitir a los usuarios cambiar celdas que contienen datos

^ ^ K ^ ^ H pero no permitirles cambiar las foacutermulas Puede mantener bloqueadas las celdas que contienen foacutermulas sin tener que proteger toda la hoja o el libro

Cuando creamos una hoja de caacutelculo muchos de nosotros necesitamos utilishyzar foacutermulas de alguacuten tipo Aveces sin embargo no desearaacute que otros usuarios puedan estropear eliminar o sobrescribir cualquiera de las foacutermulas incluidas en la hoja de caacutelculo La forma maacutes faacutecil y raacutepida de impedir que las personas jueshyguen con las foacutermulas es proteger la hoja de caacutelculo Sin embargo proteger la hoja de caacutelculo no soacutelo evita que los usuarios estropeen las foacutermulas sino que tambieacuten evitan que se pueda introducir cualquier informacioacuten Y a veces no queshyrraacute ir tan lejos en la seguridad

De forma predeterminada todas las celdas de una hoja de caacutelculo estaacuten bloshyqueadas aunque esto no tiene efecto hasta que se aplique la proteccioacuten de la misma A continuacioacuten mostramos un meacutetodo m u y sencillo para aplicar una proteccioacuten a la hoja de caacutelculo de forma que soacutelo las celdas con foacutermulas esteacuten bloqueadas y protegidas

Seleccione todas las celdas de la hoja bien pulsando Cont ro l Comando-E o bien pulsando el cuadrado gris situado en la interseccioacuten de la columna A y la fila 1 Entonces vaya a FormatogtCeldasgtProteger y desactive la casilla de verifishycacioacuten Bloqueada Haga clic en Aceptar

Ahora seleccione cualquier celda seleccione Edicioacutengtlr a (Control-I oacute F5) y haga clic en el botoacuten Especial Veraacute entonces un cuadro de diaacutelogo como el que se muestra en la figura 113

Seleccione el botoacuten de opcioacuten Celdas con foacutermulas del cuadro de diaacutelogo Ir a especial y si es necesario limite las foacutermulas a los tipos subyacentes Luego

Excel Los mejores trucos

haga clic en Aceptar Una vez esteacuten seleccionadas las celdas con las foacutermulas vaya a FormatogtCeldasgtProteger y active la casilla de verificacioacuten Bloqueada Haga clic en Aceptar Ahora seleccione la opcioacuten HerramientasgtProtegergtProteger hoja para proteger la hoja de caacutelculo y utilizar una contrasentildea si es requerida

iHgia iaf lmdashi Seleccionar

^ Comentarios

lt Constantes iCeldas con foacutermulas i

iacuteiexcl Nuacutemeros

f Texto

f Valores loacutegicos

f Errores

^ Celdas en blanco r Regioacuten actual f Matriz actual

Obietos

lt Diferencias entre filas j

f Diferencias entre columnas (1) j

lt~ Celdas precedentes j

( Celdas dependientes j

r c

Uacuteltima celda

f~ Soacutelo celdas visibles (2)

bull Celdas con formatos condicionales l Celdas con validacioacuten de datos

r r

1 Aceptar J Cancelar ] j

Figura 113 El cuadro de diaacutelogo Ir a especial

Este meacutetodo realmente ahorra gran cantidad de tiempo y elimina posibles errores al buscar las foacutermulas de forma que pueda protegerlas Por desgracia tambieacuten evita que los usuarios puedan utilizar otras funciones como puede ser ordenar cambiar el formato alinear el texto y otras muchas incluso cuando la celda no estaacute bloqueada Puede solucionar este problema de dos formas

La primera aproximacioacuten consiste en no utilizar la proteccioacuten de la hoja sino la validacioacuten de datos en lugar de ello

La validacioacuten de datos estaacute lejos de ser del todo segura a la hora de evitar que los usuarios introduzcan datos no vaacutelidos en celdas Los usuarios todaviacutea pueden pegar en una celda con validacioacuten cualquier tipo de dato quitando la validacioacuten de dicha celda a menos que la celda original que se estaacute copiando tambieacuten tuviese alguacuten tipo de validacioacuten en cuyo caso tambieacuten se estariacutea sobrescribiendo

Para ver a queacute nos referimos seleccione cualquier celda seleccione la opcioacuten Edicioacutengtlr a y luego haga clic en el botoacuten Especial Ahora seleccione la opcioacuten Celdas con foacutermulas en el cuadro de diaacutelogo y si es necesario especifique que tipos de foacutermulas desea buscar Haga clic en el botoacuten Aceptar

Ahora que soacutelo tenemos seleccionadas las celdas con foacutermulas seleccione la opcioacuten DatosgtValidacioacuten y en la pestantildea Configuracioacuten seleccione la opcioacuten Pershysonalizada en el cuadro de lista desplegable y en el cuadro de texto Foacutermula es-

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 53

criba = tal y como se muestra en la figura 114 Luego haga clic en el botoacuten Aceptar

MBHIMSS^^^^^^^- bull Configuracioacuten j Mensaje entrante j Mensaje de error j

Criterio de validacioacuten

Permitir

| Personalizada j r j P Omitir blancos

Datos

1 J Foacutermula

k i

r

Borrar todos j | Aceptar j

2SJ

Cancelar j

Figura 114 Foacutermulas de validacioacuten

Este meacutetodo evitaraacute que un usuario sobrescriba accidentalmente una celda que tenga una foacutermula (aunque como dijimos anteriormente no es un meacutetodo totalmente seguro y soacutelo deberiacutea ser utilizado para evitar sobrescribir accidentalshymente) De todas formas la gran ventaja de utilizar este meacutetodo es que todas las funciones de Excel todaviacutea se pueden utilizar en la hoja de caacutelculo

El uacuteltimo meacutetodo tambieacuten permite utilizar todas las funciones de Excel pero solamente cuando se encuentra una celda que no esteacute bloqueada Para empezar aseguacuterese de que solamente las celdas que desea proteger estaacuten bloqueadas y que el resto no lo estaacuten Haga clic con el botoacuten derecho del ratoacuten en la pestantildea de la hoja en cuestioacuten seleccione la opcioacuten Ver coacutedigo e introduzca el siguiente coacutedigo

Priacutevate Sub Worksheet_SelectionChange(ByVal Target As Range) If TargetLocked = True Then

MeProtect Password=Secreta Else

MeUnprotect Password=Secreta End If

End Sub

Si no desea utilizar una contrasentildea omita la parte Pas sword = S e c r e t a Si por el contrario quiere utilizar una entonces debe cambiar la palabra Secreta por aquella contrasentildea que desee Luego pulse AltComando-(Xo cierre la venshytana para volver a Excel y guardar los cambios Ahora cada vez que seleccione una celda que estaacute bloqueada la hoja se bloquearaacute a siacute misma automaacuteticamente En el momento en el que seleccione cualquier celda que no esteacute bloqueada la hoja se desbloquearaacute

Excel Los mejores trucos

Este truco no funciona perfectamente aunque normalmente funciona lo suficientemente bien La palabra clave utilizada en el coacutedigo Target soacutelo se refiere a la celda que estaacute activa el momento de la seleccioacuten Por esta razoacuten es importante destacar que si el usuario selecciona un rango de celdas (con la celda activa estando desbloqueada) puede eliminar la seleccione entera porque la celda objetivo estaba desbloqueada y por tanto la hoja se ha desprotegido automaacuteticamente a siacute misma

Encontrar datos duplicados utilizando el formato condicional El formato condicional de Excel se utiliza normalmente para identificar valores en rangos en particular pero podemos usar un truco con esta caracteriacutestica para identificar datos duplicados dentro de una lista o una tabla

Normalmente la gente tiene que identificar datos duplicados dentro de una lista o tabla Hacer esto manualmente puede llevar mucho tiempo y a veces se pueden cometer errores Le aconsejamos que para hacerlo mucho maacutes sencillo utilice un truco sobre una de las caracteriacutesticas estaacutendar de Excel el formato condicional

Tomemos por ejemplo una tabla con datos en el rango $A$ 1 $H$100 Selecshycione la celda superior izquierda (Al) y arrastre el cursor del ratoacuten hasta la celda H100 Es importante que Al sea la celda activa en la seleccioacuten por lo que no es lo mismo seleccionar primero la celda H100 y luego arrastrar hasta la celda A l Seshyleccione entonces la opcioacuten FormatogtFormato condicional y en el cuadro de diaacutelogo Formato condicional seleccione la opcioacuten Foacutermula en el primer cuadro de lista desplegable En el campo que hay a su derecha introduzca el siguiente coacutedigo

= C 0 N T A R S I ( $ A $ 1 $ H $ 1 0 0 A 1 ) gt 1

Haga clic en el botoacuten Formato y luego seleccione la pestantildea Tramas y selecshycione un color que desee aplicar para identificar visualmente los datos duplicashydos Haga clic en Aceptar para volver al cuadro de diaacutelogo anterior y vuelva a hacer clic en Aceptar para aceptar el formato

Todas aquellas celdas que contengan datos duplicados deberiacutean aparecer ahoshyra como un aacuterbol de Navidad con el color que eligioacute haciendo mucho maacutes sencishyllo el hecho de localizar datos duplicados para asiacute poder eliminarlos moverlos o alterarlos

Es m u y importante comentar que como la celda Al era la activa la direccioacuten de la celda es una referencia relativa y no absoluta como en la tabla de datos

uuml

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 55

$A$1$H$100 Utilizando el formato condicional de esta forma Excel sabe automaacuteticamente que debe utilizar la celda correcta como el criterio de la funshycioacuten CONTAR S I Con esto queremos decir que la foacutermula de formato condicioshynal en la celda Al se leeriacutea asiacute

= C O N T A R S I ( $ A $ 1 $ H $ 1 0 0 A 1 ) gt 1

Mientras que en la celda A2 se leeriacutea

= C O N T A R S I ( $ A $ 1 $ H $ 1 0 0 A 2 ) gt 1

En la celda A3 se leeriacutea

= C O N T A R S I ( $ A $ 1 $ H $ 1 0 0 A 3 ) gt 1

y asiacute sucesivamente Si necesita identificar datos que aparecen dos o maacutes veces puede utilizar el

formato condicional con tres condiciones diferentes y coacutedigos de color para cada una de las condiciones todo ello para conseguir una identificacioacuten visual Para hacer esto seleccione la celda Al (la celda que estaacute situada en la parte superior izquierda de la tabla) y arrastre el cursor del ratoacuten hasta la celda H100 De nueshyvo es importante que la celda Al sea la celda activa en la seleccioacuten

Ahora seleccione la opcioacuten FormatogtFormato condicional y seleccione la opshycioacuten Formato en el cuadro de lista desplegable En el cuadro de texto situado a su derecha introduzca el siguiente coacutedigo

= C 0 N T A R S I ( $ A $ 1 $ H $ 1 0 0 A 1 ) gt 3

Haga clic en el botoacuten Formato y luego vaya a la pestantildea Tramas para selecshycionar el color que desee aplicar para identificar los datos que aparecen maacutes de tres veces Haga clic en Aceptar luego haga clic en el botoacuten Agregar y en el cuadro de lista desplegable para la Condicioacuten 2 seleccione la opcioacuten Foacutermula y luego escriba el siguiente coacutedigo en el cuadro de texto situado a su derecha

= C O N T A R S I ( $ A $ 1 $ H $ 1 0 0 A 1 ) = 3

En vez de tener que reescribir la foacutermula maacuterquela en el cuadro de texto de la Condicioacuten 1 pulse la tecla ControlComando-C para copiarla en el portapapeles haga clic en el cuadro de texto de la Condicioacuten 2 pulse ControlComando-V para pegarla ahiacute y luego cambiegt3 por =3

Haga clic en el botoacuten Formato y luego seleccione la pestantildea Tramas para seleccionar el color que desee utilizar para identificar los datos que aparecen justa-

Excel Los mejores trucos

mente tres veces Haga clic en Aceptar y luego haga clic en Agregar En el cuashydro de lista desplegable de la Condicioacuten 3 seleccione la opcioacuten Foacutermula y escriba lo siguiente en el cuadro de texto situado a su derecha

= C O N T A R S I ( $ A $ 1 $ H $ 1 0 0 A 1 ) = 2

Para terminar haga clic en el botoacuten Formato elija la pestantildea Tramas y seleccione ahiacute el color que desea aplicar a los datos que aparecen exactamente dos veces Luego haga clic en el botoacuten Aceptar Ahora ya tenemos colores diferentes de celda dependiendo del nuacutemero de veces en el que aparecen los datos dentro de la tabla De nuevo es importante recordar que la celda Al debe ser la celda activa en la seleccioacuten puesto que la direccioacuten de celda es una referencia relativa y no absoluta como en la tabla de datos $A$1 $H$100 Utilizando el formato condishycional de esta forma Excel sabraacute utilizar la celda correcta como criterio de la funcioacuten CONTAR S I

Asociar barras de herramientas personalizadas a un libro en particular A pesar de que la mayoriacutea de barras de herramientas que cree sirven para praacutecticamente todos los libros con los que trabaje a veces la funcionalidad de una barra de herramientas personalizada solamente es aplicable a un libro en particular Con este truco podremos asociar barras de herramientas personalizadas a sus respectivos libros

Si nunca ha creado una barra de herramientas personalizada sin duda se habraacute dado cuenta que las barras herramientas se cargan y son visibles indepenshydientemente de que libro tenga abierto iquestQueacute ocurre si su barra de herramientas personalizada contiene macros grabadas que soacutelo tienen sentido con un libro en particular Probablemente es mejor poder asociar barras de herramientas persoshynalizadas cuyo propoacutesito sea especial con los libros apropiados para asiacute evitar cualquier tipo de confusioacuten y otros problemas Podemos hacer esto insertando un coacutedigo m u y sencillo en el moacutedulo privado del libro Para acceder al moacutedulo privado haga clic con el botoacuten derecho en el icono de Excel que encontraraacute en la esquina superior izquierda de la pantalla cerca del menuacute Archivo y luego selecshycione la opcioacuten Ver coacutedigo

Este acceso directo no estaacute disponible en Macintosh Tendraacute que abrir el Editor de Visual Basic pulsando Opcioacuten-Fll o bien seleccionando la opcioacuten de menuacute HerramientasgtMacrogtEditor de Visual Basic Una vez ahiacute haga clic con el botoacuten derecho del ratoacuten (o clic mientras mantiene pulsada la tecla Control) en ThisWorkbook que aparece en la ventana de proyectos

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 57

Entonces introduzca este coacutedigo

Priacutevate Sub Workbook_Activate( ) On Error Resume Next

With ApplicationCommandBars(MiBarraPersonalizada) Enabled = True Visible = True

End With On Error GoTo 0

End Sub

Private Sub Workbook_Deactivate( ) On Error Resume Next

ApplicationCommandBars(MiBarraPersonalizada)Enabled = False On Error GoTo 0

End Sub

Cambie el texto de MiBarraPersonalizada por el nombre que desee darle a la barra de herramientas personalizada Para volver a la ventana principal de Excel cierre la ventana de moacutedulo o pulse AltComando-CL En cuanto abra o active otro libro la barra de herramientas personalizada desapareceraacute y no podraacute ser utilizada Reactivando el libro adecuado la barra volveraacute a aparecer Todaviacutea poshydemos llegar maacutes lejos haciendo que una barra de herramientas personalizada esteacute disponible solamente para una hoja en particular del libro Haga clic con el botoacuten derecho del ratoacuten sobre el nombre de una hoja en la que desea activar la barra de herramientas seleccionando la opcioacuten Ver coacutedigo Entonces introduzca el siguiente coacutedigo

Private Sub Worksheet_Deactivate( ) On Error Resume Next

ApplicationCommandBars(MiBarraPersonalizada)Enabled = False On Error GoTo 0

End Sub

Private Sub Worksheet_Activate( ) On Error Resume Next

With ApplicationCommandBars(MiBarraPersonalizada) Enabled = True Visible = True

End With On Error GoTo 0

End Sub

Ahora pulse AltComando-ltXo cierre la ventana para volver a Excel El prishymer procedimiento ( W o r k s h e e t _ D e a c t i v a t e () ) se ejecutaraacute automaacuteticamente cada vez que deje hoja en particular y active otra Este coacutedigo cambia la propieshydad Enab l ed de la barra de herramientas personalizada a F a l s e de forma que no pueda ser vista o utilizada El segundo procedimiento se ejecuta cada vez que

58 Excel Los mejores trucos

se activa la hoja en cuestioacuten estableciendo la propiedad E n a b l e d a True con lo que la barra vuelve a ser visible La liacutenea de coacutedigo que dice A p p l i c a t i o n CommandBars (MyCustomToolbar) V i s i b l e = True simplemente muesshytra la barra de herramientas de nuevo de forma que el usuario pueda verla Cambie de una hoja a otra y veraacute como la barra de herramientas desaparece y vuelve a aparecer dependiendo de la hoja que tenga seleccionada

TRUCO Burlar el gestor de referencias relativas de Excel En Excel una referencia de foacutermula puede ser o bien relativa o bien absoluta pero a veces desearaacute mover celdas que utilicen referencias relativas sin tener que hacer las referencias absolutas Veamos coacutemo hacer esto

Cuando se necesita hacer una foacutermula absoluta se utiliza el signo del doacutelar ($) delante de la letra de la columna y o del nuacutemero de la fila en la referencia a la celda como por ejemplo en $A$1 Una vez haya hecho esto no importa doacutende copie la celda que la foacutermula seguida haciendo referencia a la misma celda o celdas A veces sin embargo ya ha creado numerosas foacutermulas que no contieshynen referencias absolutas sino relativas Normalmente hace esto cuando desea copiar la foacutermula original o propagarla por la hoja y que Excel cambie las refeshyrencias de forma adecuada Si ya ha creado las foacutermulas utilizando solamente referencias relativas o quizaacutes utilizando una mezcla entre referencias absolutas relativas puede reproducir las mismas foacutermulas en cualquier otro rango y en la misma hoja en otra hoja del mismo libro o incluso en otra hoja situada en otro libro Para hacer esto sin cambiar ninguna de las referencias que hay dentro de las foacutermulas seleccione el rango de celdas que desea copiar y luego seleccione la opcioacuten EdicioacutengtReemplazar En el cuadro de texto Buscar introduzca el signo = y en el cuadro de texto Reemplazar con el siacutembolo (por supuesto puede utilishyzar cualquier otro siacutembolo que esteacute seguro no se utiliza en cualquiera de las foacutermulas) Luego haga clic en el botoacuten Reemplazar todos El signo = de todas las foacutermulas de la hoja seraacute reemplazado con el siacutembolo Ahora puede copiar este rango y pegarlo en el destino que desee Luego seleccione el rango que acaba de pegar y vuelva a seleccionar la opcioacuten EdiciexcloacutengtReemplazar Esta vez reemplace el siacutembolo por el siacutembolo = Con esto las foacutermulas quedaraacuten con las mismas referencias que las originales

TRUCO Quitar viacutenculos fantasma en un libro iexclAh Viacutenculos fantasmas Al abrir un libro se le pregunta si desea actualizar los viacutenculos iexclpero no hay ninguacuten viacutenculo iquestCoacutemo puede actualizar los viacutenculos cuando no existen

Los viacutenculos externos son viacutenculos que hacen referencia a otros libros El heshycho de que se produzcan viacutenculos externos no esperados puede darse por diferen-

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 59

tes razones la mayoriacutea de las veces por mover o copiar graacuteficos hojas de graacuteficos u hojas a otros libros Auacuten asiacute saber doacutende estaacuten no siempre le ayudaraacute a enconshytrarlos A continuacioacuten le mostramos algunas alternativas para solucionar el problema de los viacutenculos fantasmas

Primeramente debe comprobar si realmente tiene viacutenculos externos (que no son fantasmas) de los cuales nos olvidaremos Si no estaacute seguro si tiene viacutencushylos externos reales comience buscando en el lugar maacutes obvio las foacutermulas Pueshyde hacer esto aseguraacutendose de que no hay otros libros abiertos y entonces buscando por [] dentro de las foacutermulas de cada hoja Cierre todos los demaacutes libros para asegurarse de que cualquier viacutenculo de foacutermula incluiraacute [] donde el asterisco representa el caraacutecter comodiacuten de buacutesqueda

Excel 9 7 no proporciona una opcioacuten para buscar en todo el libro pero puede buscar en todas las hojas de un libro si las agrupa Puede hacer esto haciendo clic con el botoacuten derecho en el nombre de cualquiera de las hojas y eligiendo la opcioacuten Seleccionar todas las hojas En versiones posteriores de Excel la funcioacuten de Buscar y reemplazar admite la posibilidad de buscar dentro de una hoja o de todo un libro

Una vez que haya encontrado los viacutenculos de foacutermula simplemente cambie la foacutermula de forma adecuada o bien elimiacutenela Cambiar o eliminar la foacutermula depende de la situacioacuten y debe ser usted el que decida queacute hacer Tambieacuten puede ir al centro de descargas de Microsoft Office ubicado en httpofficemicrosoftcom Downloadsdefaultaspx y desde la categoriacutea de complementos seleccionar el Asistente de eliminacioacuten de viacutenculos Este asistente estaacute disentildeado para encontrar y eliminar viacutenculos tales como viacutenculos de nombres definidos viacutenculos de nomshybres ocultos viacutenculos a graacuteficos viacutenculos a consultas de Microsoft y viacutenculos a objetos De todas formas por nuestra experiencia no es capaz de encontrar viacutenshyculos fantasmas Una vez que esteacute seguro de que no hay viacutenculos de foacutermula debe asegurarse de que no tiene ninguacuten otro viacutenculo que no sea fantasma Para ello solemos comenzar desde el libro de Excel que contiene los viacutenculos fantasshymas Seleccione la opcioacuten lnsertargtNombregtDefinir Desplaacutecese a lo largo de la lista de nombres seleccionando cada uno de ellos y mirando en el cuadro de texto Se refiere a situado en la parte inferior Aseguacuterese de que ninguno de estos nomshybres estaacute haciendo referencia a un libro diferente

En vez de tener que hacer clic en cada nombre puede insertar una nueva hoja y seleccionar la opcioacuten lnsertargtNombregtPegar Luego desde el cuadro de diaacutelogo haga clic en Pegar viacutenculo Esto crearaacute una lista de todos los nombres de libro con sus rangos referenciados en la columna correspondiente

60 Excel Los mejores trucos

Si alguno de los nombres se refiere a un elemento que estaacute fuera de libro ha encontrado el origen de al menos uno de los viacutenculos a los cuales hace referencia el mensaje de actualizar los viacutenculos Ahora es decisioacuten suya si desea cambiar este nombre de rango para que haga referencia solamente al propio libro o bien dejarlo como estaacute

Otra fuente potencial de viacutenculos son sus graacuteficos Es posible que los graacuteficos tengan el mismo problema que acabamos de explicar Deberiacutea comprobar que los rangos de datos y las etiquetas del eje X del traacutefico no estaacuten haciendo referencia a libros externos De nuevo debe tomar la decisioacuten de si los viacutenculos que ha enconshytrado son o no correctos

Los viacutenculos tambieacuten pueden acechar en los objetos como puedan ser dos cuadros de texto las autoformas etc Los objetos pueden intentar hacer referenshycia a un libro externo La forma maacutes sencilla de localizar los objetos es seleccioshynar cualquier celda de cada hoja y luego seleccionar la opcioacuten Edicioacutengtlr a (F5) Desde el cuadro de diaacutelogo haga clic en el botoacuten Especial y luego active la casilla de verificacioacuten Objetos y haga clic en Aceptar para comenzar la buacutesqueda Con esto seleccionaremos todos los objetos de la hoja En cualquier caso deberiacutea hashycer esto en una copia del libro Despueacutes una vez tengamos todos los objetos seleccionados puede eliminar guardar cerrar y volver a abrir la copia del libro para ver si con esto hemos solucionado el problema

Finalmente el lugar que no es tan obvio comprobar es en las hojas ocultas que puede haber creado y de las que se ha olvidado Vuelva a mostrar esas hojas seleccionando la opcioacuten FormatogtHojagtMostrar Si la opcioacuten Mostrar esta desactivada significa que no hay hojas ocultas

Ahora que ya ha eliminado la posibilidad de viacutenculos reales es hora de elimishynar los viacutenculos fantasmas Vaya al libro en cuestioacuten en el que haya viacutenculos fantasmas y seleccione la opcioacuten EdicioacutengtViacutenculos A veces simplemente puede seleccionar los viacutenculos no deseados hacer clic en Cambiar origen y luego hacer que el viacutenculo haga referencia a siacute mismo A menudo de todas formas se le informaraacute que alguna de las foacutermulas contiene un error y entonces no podraacute hacer esto

Si no puede tomar el camino sencillo apuacutentese a queacute libro de Excel cree que puede estar vinculado (llamaremos a ese libro el libro bueno) Cree un viacutenculo real entre ambos abriendo los dos Vaya al libro problemaacutetico y en cualquier celda de cualquier hoja escriba = Ahora haga clic en una celda del libro bueno y pulse Intro para tener un viacutenculo externo real con dicho libro Guarde ambos libros pero no los cierre todaviacutea Estando todaviacutea en el libro con viacutenculos fantasshymas seleccione la opcioacuten EdicioacutengtViacutenculos y utilice el botoacuten Cambiar origen para referenciar todos los viacutenculos con el nuevo libro con el que acabamos de crear el viacutenculo Guarde el libro de nuevo y elimine la celda en la que creoacute el viacutenculo real Para terminar guarde el archivo

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 61

A menudo esto elimina el problema de los viacutenculos fantasmas dado que ahoshyra Excel es consciente de que ha eliminado el viacutenculo externo con dicho libro Si esto no ha solucionado problema pruebe con los siguientes pasos pero aseguacutereshyse de guardar una copia primero

El siguiente proceso implica eliminar datos permanentemente Por tanto antes de comenzar tiene que crear una copia de seguridad del libro de Excel ya que si no lo hace puede crearle nuevos problemas

Con el libro problemaacutetico abierto elimine una hoja guarde el libro cieacuterrelo y vuelva a abrirlo Si al hacerlo no se le pregunta sobre actualizar los viacutenculos perdidos entonces es que la hoja que acaba de eliminar era la que teniacutea los viacutenshyculos fantasmas Esto deberiacutea arreglar el problema pero si no fuera asiacute repita el primer paso para cada una de las hojas del libro Necesitaraacute antildeadir una nueva hoja antes de eliminar la uacuteltima ya que cualquier libro debe tener al menos una hoja Supongamos que esta teacutecnica ha funcionado Entonces veamos queacute hay que hacer a continuacioacuten Abra la copia del libro (la que todaviacutea tiene los datos dentro de ella) y cree otra copia Deberaacute trabajar con la hoja problemaacutetica (u hojas) y utilizar el proceso de eliminacioacuten para descubrir doacutende estaacute el problema

Teniendo activada la hoja problemaacutetica seleccione un grupo de celdas (de alshyrededor de 10x10) y entonces seleccione la opcioacuten EdicioacutengtBorrargtTodo iquestEstaacute totalmente seguro de que ha guardado una copia Si es asiacute guarde cierre y vuelshyva a abrir la hoja Si no se le pregunta acerca de actualizar los viacutenculos entonces es que ha encontrado el problema y el objetivo seraacute volver a restablecer ese conshyjun to de celdas Si vuelve a recibir el mensaje de actualizar los viacutenculos continuacutee eliminando celdas hasta que ya no se le pregunte Luego tendraacute que restaurar las celdas problemaacuteticas

Esperamos que estas teacutecnicas le hayan solucionado algo la frustracioacuten de teshyner viacutenculos fantasmas en sus libros de Excel No es sencillo ni divertido pero puede ayudarle a solucionar el problema

IQ221 Reducir un libro que estaacute hinchado ^^wPgt^H iquestNunca ha observado que un libro estaacute aumentando de tamantildeo a un ritmo H k f l alarmante sin una razoacuten aparente Existen numerosas causas que pueden

provocarlo y algunas soluciones para ello

iquestNunca ha comido tanto que no puede funcionar correctamente Lo mismo ocurre con las hojas de Excel Un libro de Excel que engorda tanto es aquel en el que se han hecho tantas cosas que ha llegado a un tamantildeo tal en el que ya no puede funcionar correctamente

Excel Los mejores trucos

Comprobamos el tamantildeo de un libro tiacutepico que conteniacutea gran cantidad de datos y observamos que soacutelo con datos el tamantildeo del archivo era de 137 Mb Entonces antildeadimos una tabla dinaacutemica que haciacutea referencia a cuatro columnas enteras como origen de los datos y observamos que el tamantildeo del archivo se incrementoacute espectacularmente hasta los 24 Mb Antildeada algunos formatos y el tamantildeo del libro se incrementaraacute praacutecticamente al doble soacutelo haciendo algunas acciones

Una de las causas maacutes comunes por las que un archivo engorda particularshymente en las versiones anteriores de Excel es la aplicacioacuten de formatos a columshynas o filas completas en vez de a un rango de datos que se esteacute utilizando Otro error es referenciar columnas enteras como fuente de datos para graacuteficos y tashyblas dinaacutemicas en vez de referenciar solamente las celdas que actualmente conshytienen datos Para solucionar estos problemas tendremos que eliminar todos los formatos superfluos y restringir el origen de datos solamente a aquellos rangos de celdas uacutetiles

Antes de hacer estos arreglos haga siempre una copia del libro por seguridad

Eliminar Formatos superfluos

El primer paso para eliminar formatos superfluos es averiguar cuaacutel es la esshyquina inferior derecha en la que acabaraacuten los datos No se confiacutee en la opcioacuten Edicioacutengtlr agtEspecialgtUacuteltima celda ya que puede llevarle a la uacuteltima celda que contiene formato no datos Habiendo localizado manualmente la celda que sabe que es la uacuteltima que contiene datos reales marque la fila que estaacute inmediatashymente debajo de ella Mientras pulsa las teclas Control y Mayuacutes pulse la tecla Flecha abajo del teclado para marcar todas las filas que se encuentran por debashyjo Luego seleccione la opcioacuten EdicioacutengtBorrargtTodos para eliminarlas

Ahora utilice el mismo meacutetodo para eliminar todas las columnas sobrantes Localice la celda que se encuentre maacutes a la derecha y que auacuten contenga datos y seleccione la columna inmediatamente posterior Luego mientras mantiene pulshysadas las teclas Control y Mayuacutes pulse la tecla Flecha derecha del teclado para seleccionar todas las columnas hasta el final y finalmente seleccione la opcioacuten de menuacute EdicioacutengtBorrargtTodos

Evite la tentacioacuten de eliminar por completo todas esas filas que columnas en vez de borrarlas ya que al hacerlo se produce normalmente errores de tipo iexclREF en cualquiera de las celdas con foacutermulas que pudiesen estar haciendo referencia a ellas

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 63

Guarde el libro y tome buena nota del cambio producido en su tamantildeo a traveacutes de la opcioacuten ArchivogtPropiedades y mirando en la pestantildea General Si tiene macros ahora tendraacute que dirigir los moacutedulos en los que reside el coacutedigo de las macros Este seraacute un proceso raacutepido directo y sencillo que exporta todos los moacutedulos y formularios de usuario al disco duro que luego los elimina y vuelve a importarlos de nuevo Para hacer esto vaya al Editor de Visual Basic y desde el explorador de proyectos haga clic con el botoacuten derecho en cada moacutedulo y selecshycione la opcioacuten Quitar moacutedulol (o cualquier otro nombre que tuviese el moacutedulo) Cuando se le pregunte si desea exportar el moacutedulo antes de quitarlo diga Siacute teniendo en cuenta la ru ta que seleccione

Haga esto mismo para cada moacutedulo asiacute como para todos los formularios de usuario que pueda tener No se olvide de los moacutedulos privados del libro y hojas si eacutestos contienen coacutedigo Una vez que haya hecho todo guarde el libro Entonces seleccione la opcioacuten ArchivogtImportar archivo e importe cada moacutedulo y cada forshymulario de usuario de nuevo al libro Siguiendo este proceso se crearaacute un archivo de texto para cada moacutedulo lo cual eliminaraacute cualquier residuo que pudiesen contener Existen en Internet algunas utilidades gratis que pueden automatizar esta tarea en cierto grado pero hemos oiacutedo casos en los que estas herramientas han desorganizado el coacutedigo o incluso han aumentado maacutes el tamantildeo de los archivos En caso de que utilice una de estas herramientas siempre haga una copia de seguridad primero ya que los desarrolladores no se haraacuten responsables de cualquier peacuterdida de datos

Puesta a punto de los oriacutegenes de datos

Si despueacutes de llevar a cabo los pasos previos todaviacutea cree que el tamantildeo del archivo es m u y grande otra causa posible es que hay referencias a celdas no utilizadas dentro de tablas o graacuteficos dinaacutemicos Esto suele ocurrir normalmente con las tablas dinaacutemicas ya que muchas personas hacen referencia a las 65536 filas para evitar tener que actualizar manualmente los rangos cada vez que se antildeaden nuevos datos

Limpiar libros corruptos

Si todaviacutea cree que el tamantildeo del libro es demasiado grande es posible que el libro o sus hojas esteacuten corruptos Por desgracia encontrar el punto de corrupshycioacuten requiere de un proceso manual de eliminacioacuten

De nuevo le recomendamos encarecidamente que haga una copia de seguridad antes de proceder

64 Excel Los mejores trucos

Para asegurarse de que no se pierde nada muestre todas las hojas que puedan estar ocultas seleccionando la opcioacuten FormatogtHojagtMostrar En caso de que la opcioacuten esteacute desactivada es que no tiene hojas ocultas por las que preocuparse Teniendo todas las hojas visibles comience por la hoja que esteacute maacutes a la izquiershyda y vaya recorriendo una a una hacia la derecha Para cada una de ellas elimiacuteshynela guarde el libro y anote el tamantildeo del mismo a traveacutes de ArchivogtPropiedadesgt General Si el tamantildeo del archivo se reduce draacutesticamente considerando la cantishydad de datos que habiacutea en dicha hoja entonces es que probablemente haya enshycontrado el punto de corrupcioacuten

Para reemplazar una hoja corrupta de un libro cree una nueva hoja seleccioshyne manualmente los datos situados en la hoja corrupta corte (no utilice nunca copiar) y pegue dichos datos en la nueva hoja Entonces elimiacutenela hoja corrupta guarde y repita el proceso

iacuteiquest Al cortar en vez de copiar Excel traspasa los datos a la nueva hoja iX manteniendo las referencias intactas

TRUCO Extraer datos de un libro corrupto La corrupcioacuten de libros de Excel puede suponer la peacuterdida de datos vitales lo cual puede resultar un coste maacutes que monetario Este truco examina algunos meacutetodos que pueden ayudarle a recuperar los datos

Aveces los libro se corrompen sin ninguna razoacuten aparente Esto puede provoshycar todo tipo de problemas especialmente si el libro es vital y por cualquier rashyzoacuten no tiene una copia de seguridad Leccioacuten 1 siempre haga una copia de seguridad de los datos en alguacuten otro lugar Siendo realistas esto no siempre ocushyrre y puede que la corrupcioacuten se produzca justo antes de que se realizase una copia de seguridad regular Para antildeadir maacutes frustracioacuten aunque un libro este corrupto a veces es posible abrirlo e incluso realizar ciertas acciones en eacutel

Si no puede abrir un libro

Si no puede abrir el libro en cuestioacuten antes de hacer cualquier otra cosa aseshyguacuterese de hacer una copia de seguridad del mismo ya que de lo contrario podriacutea perderlo Teniendo una copia siempre puede buscar ayuda profesional

Ahora intente abrir el libro en una versioacuten posterior de Excel y pruebe a guarshydar Obviamente esto no seraacute posible si ya estaacute utilizando la uacuteltima versioacuten de Excel Si esto no funciona pruebe a abrir el libro y guardarlo en formato HTML o HTM Luego cierre el archivo y vuelva a abrirlo esta vez volviendo a guardarlo en el formato original es decir en formato xls

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 65

Cuando se guarda un libro en formato HTML las siguientes funciones N^ se perderaacuten

Vistas personalizadas

Formatos de nuacutemero no utilizados

Estilos no utilizados

Configuracioacuten de consolidacioacuten de datos

Escenarios

Foacutermulas el lenguaje natural (seraacuten convertidas a referencias estaacutendar de rango)

Categoriacuteas personalizadas de funciones

Elementos con fuente tachada superiacutendice o subiacutendice

Historial de cambios

Configuracioacuten de paacutegina personalizada para los graacuteficos que se hayan incrustado en una hoja

Configuraciones de lista para los objetos del cuadro de lista y cuashydro de lista desplegable de la barra de herramientas de Formulashyrios

Formato condicional almacenado en una hoja de macro XLM

Tambieacuten los libros compartidos dejaraacuten de estarlo La configuracioacuten Eje de valores (Y) cruza el nuacutemero de categoriacutea de la pestantildea Escala del cuadro de diaacutelogo Formato de ejes no se guardaraacuten si la casilla de verificacioacuten Eje de valores (Y) cruza la en maacutexima categoriacutea estaacute activada La configuracioacuten de variar los colores por cada punto del cuadro de diaacutelogo Formato de las series de datos no seraacute guardada si el traacutefico contiene maacutes de una serie de datos

Finalmente intente abrir el archivo y guardarlo en formato SYLK (slk que significa viacutenculo simboacutelico) Observe que cuando guarda un libro en este formashyto soacutelo se guarda la hoja activa Por tanto deberaacute hacer lo mismo para cada una de las hojas Vuelva a abrir el archivo y guaacuterdelo nuevamente en el formato deseado es decir en formato xls

Si no puede abrir el archivo

Si el libro estaacute corrupto hasta el punto en el que no puede ni siquiera abrirlo abra la hoja de caacutelculo en Microsoft Word o a traveacutes del visor de hojas de caacutelculo que se puede descargar desde el sitio Web de Microsoft luego copie los datos

66 Excel Los mejores trucos

desde el archivo abierto De todas formas muchas de las foacutermulas formatos etc se perderaacuten

A continuacioacuten abra el nuevo libro y cree un viacutenculo externo con el libro corrupto Por ejemplo =CDocuments and SettingsAlexMis Documentos[Hoja xls]HojalAl Copie este viacutenculo hacia abajo y hacia la derecha tantas filas y columnas como sea necesario Haga lo mismo para cada una de las hojas que contiene el libro Si no puede recordar los nombres de las hojas utilice cualquier nombre utilizando la ruta de archivo correcta y Excel le mostraraacute los nombres de las hojas cuando pulse la tecla Intro

Una uacuteltima cosa que puede hacer es visitar la paacutegina Web de OpenOfficeorg y descargar la versioacuten gratuita de OpenOfficeorg Aunque hay nombres diferentes para las herramientas y los comandos OpenOfficeorg es m u y similar a Excel Esta aplicacioacuten estaacute basada en la misma estructura baacutesica de hoja de caacutelculo que Excel lo que resulta m u y sencillo para los usuarios acostumbrados a la aplicashycioacuten de Microsoft De hecho alrededor del 96 de las foacutermulas que se utilizan en Excel se pueden crear y utilizar en las hojas de caacutelculo de OpenOfficeorg

Para descargar una versioacuten gra tu i ta de OpenOfficeorg vaya a h t t p downloadopenofficeorgindexhtml y descarguacuteela desde el sitio FTP que prefieshyra Luego instale el programa Hay que decir que tambieacuten hay una versioacuten disshyponible de OpenOfficeorg para Macintosh

En muchos casos los datos de Excel se pueden recuperar Sin embargo el coacuteshydigo VBA no podraacute recuperarse debido a incompatibilidades entre Excel y OpenOfficeorg

Si ninguno de estos meacutetodos funciona probablemente tendraacute que pagar dineshyro para intentar recuperar su libro de Excel utilizando alguacuten software especial Puede encontrar software a la venta (para Windows) en el sitio Web de los au toshyres de este libro en la direccioacuten httpwwwozgridcomServicescorrupt-file-recovery-indexhtm

Despueacutes de haber comprado e instalado ExcelFix ejecuacutetelo Seleccione File luego elija el archivo corrupto y haga clic en Diagnose para recuperarlo Entonshyces deberiacutea ver el archivo recuperado en el visor de libros Haga clic en Save Workbook para guardar el libro en un nuevo archivo que pueda ser abierto por Excel

Existe tambieacuten una versioacuten de demostracioacuten que no le permite guardar el archivo pero recuerde que todas las versiones le permiten recuperar tantos arshychivos como desee

CAPIacuteTULO 2

Trucos sobre las caracteriacutesticas

incorporadas en Excel Trucos 16 a 38

Aunque Excel incorpora una gran variedad de caracteriacutesticas estaacutendar para administrar y analizar datos los liacutemites de dichas caracteriacutesticas son a menudo frustrantes Los trucos de este capiacutetulo le proporcionaraacuten numerosos meacutetodos para escaparse de esos liacutemites y hacer de Excel una herramienta mucho maacutes poderosa

Validar datos en base a una lista situada en otra hoja La validacioacuten de datos permite de forma faacutecil especificar reglas que deben seguir los datos Por desgracia Excel obliga a que las listas utilizadas en la validacioacuten de datos deben aparecer en la misma hoja en la que se encuentran eacutestos Pero por fortuna existen formas para saltarse esta limitacioacuten

En este truco proporcionaremos dos meacutetodos que puede utilizar para validar datos basaacutendose en una lista que estaacute situada en otra hoja El primer meacutetodo hace uso de los rangos con nombre que ofrece Excel (que veremos con maacutes detashylle en el capiacutetulo 3) y el segundo utiliza una llamada a una funcioacuten

Meacutetodo 1 Rangos con nombre

Quizaacute el meacutetodo maacutes raacutepido y sencillo para superar la barrera en cuanto a la validacioacuten de datos en Excel es dar nombre al rango donde estaacute situada la lista Para crear un rango con nombre seleccione las celdas que contienen la lista e

uuml

70 Excel Los mejores trucos

introduzca un nombre en el cuadro de nombres que estaacute situado en la parte superior izquierda justo a la izquierda de la barra de foacutermulas Para los propoacutesishytos de este ejemplo supondremos que a dicho rango le llamaremos MiRango

Seleccione la celda en la que desea que aparezca una lista desplegable y entonshyces seleccione la opcioacuten DatosgtValidacioacuten Seleccione la opcioacuten Lista en el cuadro de lista desplegable Permitir y en el cuadro de texto Origen escriba =MiRango Luego haga clic en el botoacuten Aceptar

Dado que hemos utilizado un nombre de rango la lista (aunque resida en otra hoja) puede ser utilizada como lista de validacioacuten

Meacutetodo 2 La funcioacuten INDIRECTO

La funcioacuten INDIRECTO permite hacer referencia a una celda que contiene un texto que representa la direccioacuten de otra celda Entonces puede utilizar esa celda como una celda local de referencia incluso aunque tome sus datos a partir de otra hoja Puede utilizar esta caracteriacutestica para hacer referencia a la hoja en la que reside la lista

Supongamos que la lista esteacute situada en la Hojal en el rango $A$1$A$8 Haga clic en cualquier hoja de una hoja distinta en donde desee que aparezca esta l is ta de va l idac ioacuten (lista de b uacute s q u e d a ) Entonces seleccione la opcioacuten DatosgtValidacioacuten y elija la opcioacuten Lista del cuadro de lista desplegable y en el cuadro de texto Origen escriba el siguiente coacutedigo

= INDIRECTO(Hoj al$A$1$A$8)

Aseguacuterese de que estaacute activada la casilla de verificacioacuten Celda con lista despleshygable y entonces haga clic en el botoacuten Aceptar En ese momento deberiacutea aparecer la lista ubicada en la Hojal en la lista desplegable de validacioacuten

Si el nombre de la hoja en la que estaacute ubicada la lista contiene espacios en blanco necesita utilizar la funcioacuten INDIRECTO de la siguiente forma

=INDIRECTO(Hoja 1$A$1$A$8)

Aquiacute la diferencia es que debe utilizar un apostrofe simple inmediatamente despueacutes de las primeras dobles comillas y otro inmediatamente antes del signo de exclamacioacuten

Siempre es una buena idea utilizar el apostrofe simple independien-H teniente de que el nombre de la hoja contenga espacios o no En

iA cualquier caso siempre podraacute hacer referencia a una hoja que no tenga espacios en su nombre y permite hacer cambios faacutecilmente en un futuro

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 71

Ventajas y desventajas de ambos meacutetodos

Los rangos con nombre y la funcioacuten INDIRECTO tienen cada uno de ellos una ventaja y una desventaja

La ventaja de utilizar nombres de rangos es que los cambios que realice al nombre de la hoja no afectaraacuten a la lista de validacioacuten Esto es precisamente la desventaja de la funcioacuten INDIRECTO en tanto que cualquier cambio que realice al nombre de la hoja no se actualizaraacute automaacuteticamente dentro de la funcioacuten por lo que tendraacute que cambiarla manualmente para que refleje el nuevo nombre

La ventaja de utilizar la funcioacuten INDIRECTO es que si la primera celdafila o la uacuteltima celdafila es eliminada del rango con nombre eacuteste devolveraacute un error de tipo iexclREF Por contra esto es una desventaja de utilizar nombres de rangos si elimina celdas o filas del rango con nombre los cambios no afectaraacuten a la lista de validacioacuten

Controlar el formato condicional con casillas de verificacioacuten Aunque el formato condicional es una de las caracteriacutesticas maacutes potentes de Excel resulta bastante incoacutemodo activarla y desactivarla a traveacutes de los menuacutes y cuadros de diaacutelogo de la interfaz de Excel Si pudieacuteramos antildeadir casillas de verificacioacuten en la hoja de caacutelculo que activasen y desactivasen en el formato condicional podriacuteamos leer los datos de forma mucho maacutes sencillo de cualquier forma el momento que queramos

El formato condicional una caracteriacutestica disponible a partir de Excel 97 aplica formatos a las celdas seleccionadas que coincidan con un cierto criterio que se basa en los valores o foacutermulas que se especifiquen Aunque el formato condicioshynal se utiliza normalmente basaacutendose en valores de celdas si lo basamos en foacutershymulas conseguiremos una flexibilidad mayor para extender el formato condicional a cualquier parte de la hoja de caacutelculo

Configurar casillas de verificacioacuten para formato condicional

Las casillas de verificacioacuten disponibles en la barra de herramientas Formulashyrios devuelven un valor VERDADERO o FALSO (activadadesactivada) a la celda a la que estaacuten vinculadas Combinando una casilla de verificacioacuten de dicha barra de herramientas con el formato condicional utilizando la opcioacuten de foacutermulas (veacutease figura 21) puede activar o desactivar el formato condicional a traveacutes de la casilla de verificacioacuten

D

72 Excel Los mejores trucos

MWWIWfflffl j x j Condicioacuten i

Foacutermula

Valor de la celda

_ j | -Hque desea usar ^BSTv-erdadera

Agre

Sin formato establecido

gar gtgt Eliminar | Aceptar

Uuml

Formato

I Cancelar

Figura 21 Cuadro de diaacutelogo de formato condicional con la opcioacuten de foacutermulas

Cuando se utiliza en combinacioacuten con una foacutermula (como por ejemplo S con la opcioacuten de foacutermulas) el formato condicional da formato

w k automaacuteticamente a una celda siempre que la foacutermulas devuelva VERDADERO Por ello cualquier foacutermula que utilice para este truco debe devolver VERDADERO o FALSO

Para entender de lo que estamos hablando pruebe este sencillo ejemplo que oculta los datos utilizando el formato condicional y una casilla de verificacioacuten Utilizaremos el rango $A$1 $A$10 que estaacute rellenado consecutivamente con los nuacutemeros del 1 al 10 Para insertar una casilla de verificacioacuten desde la barra de he r r amien ta s Formular ios seleccione la opcioacuten de m e n uacute VergtBarras de herramientasgtFormularios y luego haga clic en el icono de casilla de verificacioacuten A continuacioacuten haga clic cerca de la celda Cl situada en la hoja para insertar la casilla de verificacioacuten Haga clic con el botoacuten derecho del ratoacuten en la casilla de verificacioacuten y seleccione la opcioacuten Formato de control Luego vaya a la pestantildea Control y escriba Cl en el cuadro de texto Vincular con la celda tal y como se muestra en la figura 22 y finalmente haga clic en Aceptar

Cuando seleccione la casilla de verificacioacuten que estaacute sobre la celda Cl devolshyveraacute VERDADERO o FALSO a dicha celda Como no tenemos intereacutes en ver dicho valor en la celda cambie el color de la fuente a blanco Ahora seleccione las celdas $A$1$A$10 comenzando por A l Seleccione FormatogtFormato condicional y luego elija la opcioacuten Foacutermula en el primer cuadro de lista desplegable En el cuashydro de texto de la derecha escriba =$C$1 A continuacioacuten haga clic en el botoacuten Formato luego seleccione la pestantildea Fuente y cambie el color de fuente a blanco Finalmente haga clic en Aceptar y de nuevo en Aceptar

Seleccione la casilla de verificacioacuten para activarla y entonces el color de la fuente de las celdas en el rango $A$1 $A$10 cambiaraacute automaacuteticamente al color blanco Si desactiva la casilla de verificacioacuten entonces volveraacute a su color normal

Activar o desactivar el resaltado de los nuacutemeros

La posibilidad de resaltar automaacuteticamente los nuacutemeros que cumplan cierto criterio puede resultar m u y uacutetil para encontrar los datos que necesite en una

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 73

hoja de caacutelculo Para hacer esto comenzaremos seleccionando la celda El (o cualshyquier otra celda que prefiera) y llaacutemela CheckBoxLink utilizando el cuadro de nombre situado en la parte superior a la izquierda de la barra de foacutermulas (veacutease figura 23)

II bullIllll

Colores y liacuteneas j Tamantildeo

Valor

(bull Sin activar ~~ Activado

pound Mixto

Vincular con la celda jCl

i Sombreado 3D

Proteger | Propiedades iexcl Web

M

Aceptar J

xjl

Control

Cancelar

Figura 22 Cuadro de diaacutelogo de formato del control

1 bull (iliacuteffililffflB^^ bull lU archivo Edicioacuten Ver Insertar Formato Herramientas Datos

J d i j U iacute JL -J j j - Anal T 10 - H K S I 1 I ^j -3

CheckBoxLink bull amp

| A B C D E

H I 1 2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

|n A bull H H o j a l Hoja2 Hoja3

Listo

Ventana

a iquest z -4 000 euro -ooacute

I F

i

M

- - fl x

l U U ~Jgt 100 - laquobull i

i =F sF bull - laquo1 T -^

G H 1 T j

mdash 1

^ | i bull m

NUM

Figura 23 Celda El con el nombre CheckBoxLink

74 Excel Los mejores trucos

Antildeada una casilla de verificacioacuten desde la barra de herramientas Formularios a una hoja en blanco llame a esta hoja Casillasdeverificacioacuten y coloquacuteese en la celda A l Vincule esta casilla de verificacioacuten a la celda CheckBoxLink haciendo clic con el botoacuten derecho en la casilla y seleccionando la opcioacuten Formato de conshytrol y luego yendo a la pestantildea Control Escriba CheckBoxLink en el cuadro de texto correspondiente y haga clic en Aceptar Haga clic con el botoacuten derecho nuevamente sobre la casilla de verificacioacuten seleccione Modificar texto y entonces introduzca el texto Mostrarme En la columna A de otra hoja introduzca los nuacutemeros del 25 al 2500 en incrementos de 25 Deacutele el nombre Nuacutemeros a este rango y luego oculte la hoja mediante la opcioacuten FormatogtHojagtOcultar

Para introducir raacutepidamente estos nuacutemeros introduzca el nuacutemero 25 en la celda Al y 50 en la celda A2 Haga clic en el marcador de

s - propagacioacuten (el pequentildeo cuadro negro que aparece en la esquina inferior derecha de la celda A2) y sin soltar el botoacuten del ratoacuten arraacutestrelo hasta la fila 100

Seleccione la celda Bl de la hoja Casillasdeverificacioacuten y deacutele el nombre PrimerNum Seleccione la celda DI y deacutele el nombre SegundoNum En la celda Cl escriba la palabra Y Ahora seleccione la celda Bl (PrimerNum) y mantenienshydo pulsada la tecla Control seleccione la celda DI (SegundoNum) Entonces vaya a DatosgtValidacioacutengtConfiguracioacuten y en el cuadro de lista desplegable Permitir seshyleccione la opcioacuten Lista y en el cuadro de texto Origen escriba =Nuacutemeros Aseshyguacuterese de que la casilla de verificacioacuten Celda con lista desplegable esteacute activada y entonces haga clic en Aceptar Esto crearaacute una lista desplegable de nuacutemeros del 25 al 2500 en ambas celdas

En la celda Al escriba el encabezado Cantidad Inmediatamente debajo reshyllene el rango A2A20 con cualesquiera nuacutemeros entre 25 y 2500 Seleccione las celdas A2A20 (asegurando se debe comenzar desde la celda A2 para que sea la seleccioacuten activa) y seleccione FormatogtFormato condicional En el cuadro de diaacuteshylogo que aparece mostrado en la figura 24 seleccione la opcioacuten Foacutermula y en el cuadro de texto de la derecha escriba la siguiente foacutermula

=Y($A2gt=PrimerNum$A2lt=SegundoNumCheckBoxLink)

Haga clic en el botoacuten Formato y configure el formato que desee o combinashycioacuten de formatos Luego haga clic en Aceptar y de nuevo en Aceptar para cerrar el siguiente cuadro de diaacutelogo Cambie tambieacuten el color de la fuente de la celda El a blanco para que no aparezcan los valores VERDADERO o FALSO Desde la celda Bl seleccione cualquier nuacutemero y luego cualquier otro que sea mayor que el primero desde la celda DI

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 75

IJ1WB Il l l i l l MI 1 1 1 1 Mi Condicioacuten I

MBEZm^

j Foacutermula bull | =Y(|A2 gt=PrimerNum $A2 lt=SegundoNum CheckBoxLink

Vista previa del formato que desea usar cuando la condicioacuten sea verdadera AaBbCcYyZz

Agrega rraquo J Eliminar | Aceptar

x|

) 3 1 tEff^^degJ

| Cancelar j gt

Figura 24 Cuadro de diaacutelogo de formato condicional

Active la casilla de verificacioacuten con lo que los formatos condicionales que acabamos de configurar se aplicaraacuten automaacuteticamente a los nuacutemeros que esteacuten dentro del rango que acabamos de especificar Desactive la casilla de verificacioacuten y el formato volveraacute a ser el predeterminado Como puede ver utilizando una casilla de verificacioacuten en combinacioacuten con el formato condicional puede hacer cosas que nadie imaginariacutea todo ello sin utilizar coacutedigo VBA

Identificar foacutermulas con el formato condicional Excel no dispone de una funcioacuten incorporada para identificar foacutermulas Una vez que una foacutermula es introducida en una celda soacutelo puede descubrir siacute una celda contiene un valor estaacutetico o un valor calculado a partir de una foacutermula haciendo clic sobre ella y mirando la barra de foacutermulas Este truco soluciona esta carencia

El coacutedigo VBA para esta funcioacuten personalizada (tambieacuten llamada funcioacuten deshyfinida por el usuario) le permite identificar las celdas que contienen foacutermulas sin necesidad de tener que hacer clic en 10000 celdas y examinarlas una a una Para crear un cazador inteligente de foacutermulas comience seleccionando la opcioacuten HerramientasgtMacrogtEditor de Visual Basic (Al t Opcioacuten-Fl l ) y luego seleccione lnsertargtMoacutedulo Entonces introduzca la siguiente funcioacuten

Function IsFormula(Check_Cell As Range) IsFormula = Check_CellHasFormula

End Function

Ahora cierre la ventana (pulse AltComando-Q) A partir de entonces la funshycioacuten estaraacute disponible para cualquier celda de cualquier hoja de este libro introshyduciendo por ejemplo la foacutermula = I sFo rmula ($A$1) Tambieacuten puede acceder a la funcioacuten a traveacutes de lnsertargtFuncioacuten seleccionando la opcioacuten Definidas por el usuario en la lista de categoriacuteas y luego seleccionando IsFormula

La foacutermula devuelve VERDADERO si la celda a la que se hace referencia conshytiene una foacutermula y FALSO en caso contrario Puede utilizar este resultado booleano en combinacioacuten con el formato condicional de forma que todas las foacutershymulas se resalten automaacuteticamente con el formato que elija Una de las mejores

76 Excel Los mejores trucos

cosas a la hora de utilizar este meacutetodo es que el sistema de identificacioacuten de foacutershymulas para la hoja de caacutelculo seraacute dinaacutemico Esto significa que si antildeade o quita una foacutermula el formato cambiaraacute de acuerdo con ello A continuacioacuten explicashyremos coacutemo hacer esto Seleccione un rango de celdas de la hoja de caacutelculo (por ejemplo A1J500) e incluya algunas celdas extra en caso de que vaya a antildeadir maacutes foacutermulas posteriormente

Evite la tentacioacuten de seleccionar toda la hoja ya que esto antildeadiraacute una sobrecarga de trabajo innecesaria

Teniendo seleccionadas estas celdas y siendo la celda Al la activa seleccione FormatogtFormato condicional Seleccione la opcioacuten Formato en el cuadro de lista desplegable e introduzca =IsFormula(Al) en el cuadro de texto situado a la dereshycha Haga clic el botoacuten Formato y elija cualquier formato que desee para idenshytificar las celdas con foacutermulas Luego haga clic en Aceptar dos veces para cerrar ambos cuadros de diaacutelogo

A veces cuando se introducen foacutermulas en el formato condicional Excel intentaraacute colocar comillas alrededor de las foacutermulas despueacutes de hacer clic en Aceptar Esto ocurre porque Excel reconoce que ha introducido un texto no una foacutermula Si ocurre esto vuelva al cuadro de diaacutelogo de formato condicional elimine las comillas y pulse Aceptar

Llegados a este punto la foacutermula especificada deberiacutea aplicarse a todas las celdas de la hoja que contengan una foacutermula Si elimina o sobrescribe una celda que contenga una foacutermula el formato condicional desapareceraacute Igualmente si introduce una nueva foacutermula en cualquiera de las celdas dentro del rango queshydaraacute resaltada Este sencillo truco que utiliza el formato condicional hace mucho maacutes sencillo manejar hojas de caacutelculo cuando es necesario mucho tiempo para poder mantenerla o modificarla

BM Contar o sumar celdas que se ajustan al criterio W del formato condicional ^H Despueacutes de ver los resultados del formato condicional quizaacute desee crear

foacutermulas que hagan referencia solamente a los datos que han sido formateados condicionalmente Este no entiende bien este tipo de caacutelculos pero puede aprender a hacerlo

Normalmente los usuarios de Excel se preguntan iquestCoacutemo puedo hacer caacutelcushylos solamente en las celdas que tienen un color de fondo en especial Esta cues-

N

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 77_

tioacuten surge a menudo porque Excel no dispone de una funcioacuten estaacutendar para lleshyvar a cabo esta tarea Sin embargo se puede hacer utilizando una funcioacuten persoshynalizada como ya veremos posteriormente en otro truco

El uacutenico problema que surge al utilizar una funcioacuten personalizada es que no utiliza cualquier formato que se haya aplicado mediante el formato condicional Sin embargo pensando un poco maacutes podraacute obtener los mismos resultados sin tener que utilizar una funcioacuten personalizada

Digamos que tiene u n a larga lista de nuacutemeros en el r ango de celdas $A$2$A$100 Ha aplicado un formato condicional a estas celdas de forma que cualquier nuacutemero que esteacute entre 10 y 20 esteacute marcado Entonces tiene que antildeashydir el valor de las celdas que se ajusten al criterio que acaba de establecer y luego realizar la suma de dichos valores utilizando el formato condicional No tiene que preocuparse por el formato condicional que ha aplicado a esas celdas pero necesita conocer el criterio que fue utilizado para marcarlas (en este caso aqueshyllas celdas cuyos valores estaacuten entre 10 y 20)

Puede utilizar la funcioacuten SUMAR SI para antildeadir un rango de celdas que se ajusten a un cierto criterio pero soacutelo a uno Si necesita utilizar maacutes de un factor en el criterio puede utilizar una foacutermula matricial

Puede utilizar una foacutermula matricial de esta forma

=SUMA(SI($A$2$A$10 0gt10SI($A$2$A$10 0lt20$A$2$A$10 0)))

Cuando introduzca foacutermulas matriciales no pulse la tecla Intro en vez de ello pulse Control-Mayuacutes-Intro De esta forma Excel colocaraacute llaves alrededor de la foacutermula de esta forma

=SUMA(SI($A$2$A$100gt10SI($A$2$A$100lt2 0$A$2$A$100)))

Si introduce las llaves manualmente no funcionaraacute Debe permitir que Excel lo haga automaacuteticamente Tambieacuten tenga en cuenta que utilizar foacutermulas matriciales puede ralentizar los caacutelculos de Excel si hay muchas referencias a rangos de gran tamantildeo

Una alternativa

Como alternativa puede utilizar una columna de maacutes (por ejemplo la coshylumna B) para hace referencia a las celdas de la columna A Las referencias devolshyveraacuten resultados en la columna B soacutelo si el valor cumple las condiciones que haya establecido por ejemplogt10 y lt20 Para hacer esto siga estos pasos

Seleccione la celda B l e introduzca la siguiente foacutermula

= S I ( Y ( A 2 gt 1 0 A 2 lt 2 0 ) A 2 )

78 Excel Los mejores trucos

Propague esta foacutermula a cada celda llegando a la B100 Despueacutes debe rellenar los valores deberiacutea tener los valores en la columna B que esteacuten entre 10 y 20

Para copiar raacutepidamente una foacutermula hacia abajo hasta la uacuteltima Ci fila utilizada de la columna adyacente introduzca la foacutermula en la

primera celda (B2) vuelva a seleccionar esa celda y haga doble clic en el pequentildeo recuadro negro de propagacioacuten situado en la esquina inferior derecha de la celda Tambieacuten puede hacer esto seleccionando la opcioacuten EdicioacutengtRellenargtHacia abajo

Ahora ya puede seleccionar cualquier celda en la que desea que aparezca el resultado de la suma utilizando la funcioacuten estaacutendar SUMA (si lo desea puede ocultar la columna B de forma que no vea una columna extra llena de los valoshyres devueltos por la foacutermula)

Ciertamente los meacutetodos anteriores hacen bien su trabajo pero Excel proporshyciona otra funcioacuten que le permite especificar dos o maacutes criterios Esta funcioacuten es parte de las funciones de base de datos de Excel y se llama BDSUMA Para probarshyla utilice el mismo conjunto de nuacutemeros situados en el rango A2A100 Selecshycione las celdas C1D2 y deacutele el nombre CriterioSuma a este rango Luego seleccione la celda Cl e introduzca =$A$1 una referencia a la primera celda de la hoja Copie esto a la celda DI con lo que tendriacutea un duplicado del encabezado de la columna A Estas copias las utilizaremos como encabezados para el criterio de BDSUMA (C1D2) que llamamos CriterioSuma

En la celda C2 introduzcagt 10 En la celda D2 introduzca lt20 En la celda de la que desea mostrar el resultado introduzca el siguiente coacutedigo

=BDSUMA($A$1$A$10 0$A$1CriterioSuma)

BDSUMA es el meacutetodo preferido y maacutes eficaz para trabajar con celdas que deshyben cumplir un cierto criterio A diferencia de las matrices las funciones de base de datos incorporadas estaacuten disentildeadas especiacuteficamente para este propoacutesito e inshycluso cuando hacen referencia a un rango m u y amplio y se utilizan con grandes nuacutemeros los efectos negativos que provocan en el rendimiento son mucho meshynores que los provocados por las foacutermulas matriciales

Resaltar Filas o columnas impares Seguramente habraacute visto hojas de caacutelculo de Excel que utilizan colores alternos para las filas Por ejemplo las filas impares podriacutean ser blancas y las pares grises El formato condicional hace que esto sea muy sencillo

Alternar colores o sombreados da un aspecto profesional y puede hacer maacutes faacutecil la lectura de los datos Puede aplicar este formato manualmente pero como

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 79

ya se imaginaraacute resulta una tarea m u y pesada si tiene que actualizar dicho formato cada vez que antildeade o quita datos de la tabla ademaacutes de una infinita paciencia Por fortuna el formato condicional puede reducir la paciencia necesashyria y mejorar en gran medida su imagen profesional

Supondremos que los datos abarcan el rango Al H 100 Seleccione este rango de celdas comenzando por la celda A l de forma que nos aseguramos que sea la celda activa Entonces vaya a FormatogtFormato condicional Seleccione la opcioacuten Foacutermula del primer cuadro de lista desplegable y en el cuadro de texto situado a su derecha introduzca la siguiente foacutermula tal y como se muestra en la figura 25

=RESIDUO(FILA()2)

mmmmmmwm^^mKm Condicioacuten i

| Foacutermula j r ] |=RESIDUO(FILA()j2)|

Vista previa del formato que desea usar cuando la condicioacuten sea verdadera

Agregar gtgt

amp$$bullgtbullampgtbull

AaBbCcYyZz

Eliminar 1 Aceptar

2lt1|

1 Aacute bull

Formato j

1 Cancelar ]

Figura 25 Cuadro de diaacutelogo del formato condicional con la foacutermula RESIDUO para especificar un formato a cada fila par

Haga clic en el botoacuten Formato y elija el formato que desee aplicar a cada fila par haga clic en Aceptar y luego haga clic otra vez en Aceptar Entonces el formato que haya especificado deberiacutea aplicarse a cada fila par situada en el rango Al H100 Con esto ya puede reservarse parte de su paciencia para el resto del diacutea

Si desea utilizar este meacutetodo con las columnas en vez de con las filas utilice esta foacutermula

=RESIDUO(COLUMNA()2)

Aunque este meacutetodo aplica el formato especificado a cada fila o columna par de forma raacutepida y sencilla no es dinaacutemico Las filas que no contengan datos seguiraacuten teniendo el formato especificado Esto puede no resultar ideal y hacer que la lectura de la hoja de caacutelculo sea algo maacutes difiacutecil Hacer que el resaltado de filas o columnas sea dinaacutemico requiere de un truco un poco maacutes sofisticado

Nuevamente seleccione el rango A1H100 aseguraacutendose de que la celda Al sea la activa Entonces vaya a FormatogtFormato condicional y seleccione la opshycioacuten Foacutermula en el cuadro de lista desplegable Luego en el cuadro de texto de la derecha introduzca la siguiente foacutermula

=Y(RESIDUO(FILA()2)CONTARA($A1$H1))

80 Excel Los mejores trucos

^ Observe que no se hace referencia absoluta a las filas (utilizamos el ^laquo signo del doacutelar) pero siacute a las columnas w

Haga clic en el botoacuten Formato y seleccione el formato que desee haciendo clic en el botoacuten Aceptar dos veces para cerrar ambos cuadros de diaacutelogo Con esto cualquier fila que esteacute en el rango A1H100 y que no contengan datos no cambiaraacute su formato Si elimina datos de una fila en particular de la tabla t amshypoco tendraacute el formato condicional Si antildeade nuevos datos en cualquier lugar del rango Al H100 entonces se le aplicaraacute el formato condicional automaacuteticamente

Esto funciona asiacute porque cuando introdujimos la foacutermula para el formato condicional la foacutermula en siacute debe devolver un valor VERDADERO o FALSO En el lenguaje de las foacutermulas de Excel el valor 0 corresponde con el valor FALSO mientras que cualquier nuacutemero mayor que 0 corresponde con el valor VERDAshyDERO Cuando utilizamos la foacutermula =RESIDU0 (FILA () 2 ) devuelve un valor 0 (FALSO) o bien un nuacutemero mayor que 0 (VERDADERO)

La funcioacuten =FILA () es una funcioacuten volaacutetil que siempre devuelve el nuacutemero de fila que corresponde con la celda en la que reside Utilizamos la funcioacuten REshySIDUO para devolver el resto de dividir un nuacutemero por otro En nuestro caso estamos dividiendo el nuacutemero de fila por 2 por lo que todas las filas pares devolshyveraacuten un valor de 0 mientras que las impares devolveraacuten un valor mayor que 0

Cuando incluye las funciones FILA () y CONTARA dentro de la funcioacuten Y sigshynifica que deben devolver VERDADERO (o cualquier nuacutemero mayor que 0) las funciones RESIDUO y CONTARA para que la funcioacuten Y devuelva VERDADERO La funcioacuten CONTARA sirve para contar todas aquellas celdas que no esteacuten vaciacuteas

Crear efectos en 3D en tablas o celdas Cuando ve un efecto 3D en un programa como pueda ser Excel lo que estaacute viendo en realidad es una ilusioacuten creada por un formato en particular Es sencillo crear esta ilusioacuten aplicando un cierto formato a una celda o rango de celdas

Para comenzar con un ejemplo sencillo daremos un efecto 3D a una celda para que aparezca en relieve como si fuera un botoacuten En una hoja en blanco seleccione la celda D5 (seleccionamos esta celda para que no esteacute en uno de los bordes y no apreciemos bien el efecto) Vaya a FormatogtCeldasgtBordes En la lista de estilos elija la segunda liacutenea maacutes gruesa Aseguacuterese de tener seleccionado el color negro (o bien el automaacutetico en caso de no haber cambiado el valor predeshyterminado) Haga clic entonces en el borde derecho y luego en el borde inferior que aparece en la muestra de la parte de izquierda Seleccione ahora el color blanco en el cuadro de lista desplegable de colores Todaviacutea deberiacutea estar seleccio-

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 82

nado el segundo borde maacutes grueso por lo que esta vez haga clic en los otros dos bordes que quedan por seleccionar en la celda es decir el izquierdo y el superior Vaya a la pestantildea Tramas y seleccione el sombreado gris para la celda Haga clic en Aceptar y quite la seleccioacuten de la celda D5 Ahora deberiacutea ver coacutemo la celda D5 tiene un efecto relieve que le da un aspecto de botoacuten Todo ello lo hemos conseguido utilizando los bordes y el sombreado

Si por diversioacuten o por dar variedad desea dar a una celda la apariencia de estar presionada seleccione por ejemplo la celda E5 (porque es la que estaacute jun to a la D5 y hace que funcione este ejemplo) Vaya a FormatogtCeldasgtBordes selecshycione el segundo borde maacutes grueso para los estilos de liacutenea y aseguacuterese de que el color elegido es el negro

Aplique el formato a los bordes superior e izquierdo de la celda Seleccione el color blanco y aplique la liacutenea blanca a los bordes derecho e inferior de la celda Haga clic entonces en la pestantildea Tramas y cambie el formato de la celda a gris Haga clic en Aceptar y podraacute ver coacutemo la celda aparece con el efecto de estar presionada Este efecto es maacutes impresionante si se contrasta con el efecto de la celda D5 que estaacute en relieve

Utilizar un efecto 3D en una tabla de datos

A continuacioacuten vamos a experimentar con esta herramienta para ver los efecshytos que podemos aplicar a las tablas o a las hojas de caacutelculo

Seleccione las celdas D5 y E5 y haga clic en el icono Copiar formato (con forma de brocha) situado en la barra de herramientas estaacutendar Haga clic en la celda F5 y sin soltar el botoacuten del ratoacuten arraacutestrelo hasta la celda J5 Ahora selecshycione las celdas D5 J5 y de nuevo haga clic en el icono Copiar formato de la barra de herramientas estaacutendar Haga clic en la celda D6 y sin soltar el botoacuten del ratoacuten arraacutestrelo hasta la celda J15 Esto deberiacutea provocar un efecto como el que apareshyce en la figura 26

Hemos utilizado un borde bastante grueso para asegurarnos de que el efecto puede verse claramente Sin embargo quizaacute desee matizarlo utilizando un estilo de liacutenea algo maacutes fino Tambieacuten podriacutea utilizar cualquiera de los otros estilos de liacutenea para producir un efecto auacuten mayor La mejor forma de encontrar una bueshyna combinacioacuten es utilizar el sistema de prueba y error en una hoja en blanco hasta dar con el efecto deseado La uacutenica limitacioacuten que tiene que es su imaginashycioacuten y quizaacute su gusto

Tenga siempre en mente que los efectos 3D puede mejorar la lectura de una hoja de caacutelculo y proporcionar un aspecto maacutes profesional pero cuando se utiliza en exceso puede tener el efecto contrario Recuerde utilice todo como delacioacuten

Excel Los mejores trucos

i C D

MM^IM

E F G H

SlllliMntildeSiacute lEacutel i l l l l^

Silii i i l iSiSII^

^SSimWMampMB

i J p-^7~^

Figura 26 Efecto 3D aplicado a un rango de celdas

Si desea dar un paso maacutes allaacute a la hora de aplicar efectos 3D de forma au to shymaacutetica y dinaacutemica puede combinar este truco con el uso del formato condicioshynal de forma que la aplicacioacuten de estilos sea automaacutetica

Activar y desactivar el formato condicional y la validacioacuten de datos con una casilla de verificacioacuten La validacioacuten de datos puede resultar uacutetil para evitar que un usuario introduzca accidentalmente datos incorrectos Sin embargo algunas veces desearaacute hacer maacutes sencilla la introduccioacuten de datos que de otra forma seriacutea imposible bien porque fuese marcada por el formato condicional o bien completamente bloqueada por una validacioacuten de datos

Normalmente permitiraacute que los usuarios introduzcan datos que de otra forshyma no podriacutean desactivando el formato condicional o la validacioacuten de datos para dichos celdas De todas formas existe una forma sencilla para hacer esto puede combinar una simple casilla de verificacioacuten con la validacioacuten de datos

Para este ejemplo aplicaremos un formato condicional a un rango de celdas de forma que cualquier dato que aparezca maacutes de una vez quedaraacute resaltado para su faacutecil identificacioacuten Supondremos que la tabla de datos se extiende por el rango $A$1 $H$100 Para aplicar un formato condicional a este rango de forma que se puedan identificar los duplicados hacen falta unos cuantos pasos

Primeramente seleccione la celda Kl y deacutele el nombre CheckBoxLink escrishybiendo dicho nombre en el cuadro de nombres de la parte superior izquierda de la pantalla Si la barra de herramientas Formularios no estaacute visible mueacutestrela Enshytonces haga clic en el icono correspondiente a la casilla de verificacioacuten Luego

TRUCO

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 83

haga clic en cualquier lugar de la hoja de caacutelculo que esteacute fuera del rango anteshyriormente citado para antildeadir la casilla de verificacioacuten

Haga clic con el botoacuten derecho en la casilla de verificacioacuten y seleccione la opshycioacuten Formato de control Luego vaya a la pestantildea Control y escriba en el cuadro de texto CheckBoxLink y haga clic en Aceptar Seleccione la celda A l y sin soltar el botoacuten del ratoacuten seleccione un rango hasta la celda H100 Es importante que la celda Al sea la activa en la seleccioacuten Vaya a FormatogtFormato condicioshynal seleccione la opcioacuten Foacutermula en el cuadro de lista desplegable e introduzca la siguiente foacutermula en el cuadro de texto situado a su derecha (tal y como se muestra en la figura 27)

=Y(CONTARSI($A$1$H$10 0 A1)gt1 CheckboxLink)

Condicioacuten i

| Foacutermula j | | = V(CONT AR 5I($ A$ 1 $H$ 100 A1) gt 1 CheckboxLink)

Vista previa del formato que desea usar cuando la condicioacuten sea verdadera

Agre

aacuteEacuteUumlkCampamp y

^gar raquo j Eliminar j Aceptar

2Siexcl

1iexcl |[Formato jj j

Cancelar

Figura 27 Cuadro de diaacutelogo de formato condicional con la foacutermula que da formato resaltando los valores duplicados

Haga clic en el botoacuten Formato y en la pestantildea Tramas seleccione el color que desea aplicar a los datos duplicados Haga clic en el botoacuten Aceptar de ambos cuadros de diaacutelogo para salir

Dado que la casilla de verificacioacuten que acabamos de antildeadir estaacute activada el viacutenculo de celda en Kl (CheckBoxLink) leeraacute el valor VERDADERO por lo que todos los valores duplicados dentro del rango $A$1$A$100 apareceraacuten resaltashydos En el momento en el que desactive la casilla de verificacioacuten el viacutenculo de su celda (CheckBoxLink) devolveraacute el valor FALSO por lo que los valores duplicados no se resaltaraacuten

Esta casilla de verificacioacuten le proporciona un interruptor con el cual poder activar o desactivar el formato condicional de una hoja sin tener que utilizar el cuadro de diaacutelogo Formato condicional Puede utilizar el mismo principio con la validacioacuten de datos utilizando la opcioacuten de foacutermula

Todo esto funciona porque hemos utilizado la funcioacuten Y Esta funcioacuten devolshyveraacute el valor VERDADERO si ocurren estas dos siguientes cosas

CONTAR SI ($ A$ 1$H$100A1)gt1 debe devolver VERDADERO y el viacutenculo de celda para la casilla de verificacioacuten (CheckBoxLink) tambieacuten debe devolver VERshyDADERO En otras palabras para que la funcioacuten Y devuelva VERDADERO amshybas condiciones tambieacuten deben ser verdaderas

84 Excel Los mejores trucos

TRUCO Admitir muacuteltiples listas en un cuadro de lista desplegable Cuando trabajamos con muacuteltiples listas podemos forzar que cambie una lista utilizando una combinacioacuten de botones de opcioacuten y un cuadro de lista desplegable

Externo ofrece numerosas alternativas a los usuarios para seleccionar eleshymentos de una lista como pueda ser nombres productos diacuteas de la semana o sea lo que sea que componga la lista Sin embargo para acceder a maacutes de una lista de elementos simultaacuteneamente generalmente es necesario utilizar tres controles separados como por ejemplo tres cuadros de lista desplegable de la barra de herramientas Formularios

En vez de esto podemos utilizar un cuadro de lista desplegable en combinashycioacuten con botones de opcioacuten (tambieacuten disponibles en la barra de herramientas Formularios) para hacer que una lista cambie automaacuteticamente de acuerdo al botoacuten de opcioacuten que se haya elegido Para ver coacutemo funciona esto introduzca los nuacutemeros del 1 al 7 en el rango de celdas Al A7 de una nueva hoja En las celdas Bl B7 introduzca los diacuteas de la semana empezando por el lunes y terminando el domingo En las celdas C1C7 introduzca los meses desde enero hasta julio

Las caracteriacutesticas de propagacioacuten automaacutetica de Excel pueden hacer S^ este trabajo de forma mucho maacutes raacutepida y sencilla Simplemente

w^ introduzca un 1 en la celda Al seleccioacutenela y mientras mantiene pulsada la tecla Control haga clic en el cuadro de propagacioacuten situado la esquina inferior derecha de la celda Manteniendo pulsado el botoacuten del ratoacuten y la tecla Control arraacutestrelo hasta la celda A7 Es el rellenaraacute automaacuteticamente las celdas con los nuacutemeros del 1 al 7 Igualmente puede introducir lunes en la celda Bl y haga doble clic en el cuadro de propagacioacuten de dicha celda Finalmente introduzca enero en la celda Cl y haga lo mismo que con los diacuteas de la semana Veraacute como Excel rellenaraacute los diacuteas los meses de forma automaacutetica

Seleccione la opcioacuten VergtBarras de herramientasgtFormularios y haga doble clic en el icono Botoacuten de opcioacuten de dicha barra de herramientas Luego haga clic en tres lugares cualesquiera de la hoja de caacutelculo para colocar tres botones de opshycioacuten

Igualmente haga clic en el icono de Cuadro combinado que haga clic en cualshyquier lugar de la hoja de caacutelculo para insertar un cuadro de lista desplegable en ella Utilice los marcadores del cuadro de lista desplegable para cambiar su tamashyntildeo y su posicioacuten asiacute como el de los botones de opcioacuten para que esteacuten situados justo debajo de eacutel

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 85

Haga clic con el botoacuten derecho en el primer botoacuten de opcioacuten seleccione la opcioacuten Modificar texto y entonces reemplace el texto predeterminado por el texto Nuacutemeros Haga lo mismo con el segundo botoacuten de opcioacuten cambiando el texto por Diacuteas de la semana y con el tercero cambiando el texto por Meses Puede ver el resultado de esto en la figura 28

1

2

3

4

5

6

7

3

9

10 l

11 12 13 14 15

16

17

13

19 20

H i bull bull

B

1 Lunes

2 Martes

3 Mieacutercoles

4 Jueves

5 Viernes

6 Saacutebado

7 Domingo

C

Enero

Febrero

Marzo

Abril

Mayo

Junio

Julio

Esta celda contendraacute los nuacutemeros 1 2 oacute 3 dependiendo del botoacuten

[de opcioacuten seleccionado

f-

$C$1$C$

Esta celda reflejaraacute el elemento elegido en el cuadro de lista I desplegable y se puede usar-corno el argumento necesario para la foacutermula de buacutesqueda

Mayo

O Nuacutemeros

O Diacuteas de la semana

$bull Meses

I Esta direccioacuten cambiaraacute con cada seleccioacuten realizada en los botones de opcioacuten provocando que la lista del cuadro desplegable cambie

Hojal Hoja2 Hoja3 iexclD Figura 28 Cuadro de lista desplegable con muacuteltiples listas controlado por

de opcioacuten botones

Ahora mientras mantiene pulsada la tecla Control haga clic en cada uno de los botones de opcioacuten de forma que todos queden seleccionados y entonces haga clic con el botoacuten derecho del ratoacuten sobre uno de ellos y seleccione la opcioacuten Forshymato de control En la pestantildea Control especifique $F$1 como celda vinculada (aseguacuterese de utilizar esta referencia absoluta con los siacutembolos del doacutelar)

En la celda E6 introduzca la siguiente foacutermula

=DIRECCION(l$F$l) amp amp DIRECCIOacuteN(7$F$1)

Seleccione la opcioacuten lnsertargtNombregtDefinir En el cuadro de texto de la parte superior escriba MiRango y en el cuadro de texto Se refiere a escriacutebalo siguiente

=INDIRECTO($E$6)

Haga clic en Agregar y luego en Aceptar Haga clic con el botoacuten derecho del ratoacuten en el cuadro de diaacutelogo que antildeadimos anteriormente y seleccione la opcioacuten Formato de control En la pestantildea Control escriba MiRango en el cuadro de texto Rango de entrada y la celda $G$1 como viacutenculo Pulse entonces el botoacuten Acepshyta r Ahora deberiacutea ser capaz de seleccionar uno de los botones de opcioacuten con lo que la lista contenida en el cuadro de lista desplegable deberiacutea reflejar

86 Excel Los mejores trucos

automaacuteticamente el botoacuten de opcioacuten elegido Cuando configure todo esto para su propia hoja de caacutelculo deberiacutea utilizar algunas celdas que estuviesen fuera de la pantalla como origen de las listas y viacutenculos del cuadro de lista desplegable Incluso desearaacute ocultar estas celdas a los usuarios de forma que los viacutenculos esteacuten donde deberiacutean Tambieacuten necesitaraacute modificar las dos funciones DIRECshyCIOacuteN para que reflejen el rango de celdas que esteacute utilizando En las funciones que hemos utilizado en este ejemplo el 1 representa la primera fila de la lista mientras que el 7 representa el nuacutemero de la uacuteltima fila

Crear listas de validacioacuten que cambien en base a la seleccioacuten realizada en otra lista Las necesidades en la validacioacuten pueden variar dependiendo del contexto en el que sean utilizadas De todas formas puede crear una hoja de caacutelculo en la que una lista de validacioacuten cambie dependiendo de lo que se seleccione en otra

Para hacer que funcione este truco lo primero que tiene que hacer es rellenar la hoja de caacutelculo con algunos datos En una hoja en blanco llamada Listas y con la celda Al seleccionada escriba el siguiente encabezado Objetos En la celda Bl escriba el encabezado Lista correspondiente En las celdas A2A5 repishyta la palabra Cubo

En las celdas A6A9 repita la palabra Sofaacute En las celdas A l 0 A l 3 repita la palabra Ducha En las celdas A1417 repita la palabra Coche Luego comenshyzando por la celda B2 y terminando por la celda B17 introduzca las siguientes palabras (que se corresponden con la lista de objetos) Plomo Acero Abrishydor Tapa Cama Asiento Saloacuten Colchoacuten Lluvia Caliente Friacuteo Temshyplado Viaje Vacaciones Sombrero y Bota

En la celda Cl introduzca el encabezado Lista de validacioacuten A continuacioacuten para crear una lista de entradas uacutenicas introduzca la palabra Cubo en la celda C2 la palabra Sofaacute en la celda C3 la palabra Ducha en la celda C4 y la palabra Coche en la celda C5

Tambieacuten puede utilizar el filtro avanzado para crear una lista de H^ elementos uacutenicos Seleccione las celdas Al A17 seleccione DatosgtFiltrogt

Filtro avanzado y entonces active la casilla de verificacioacuten Soacutelo registros uacutenicos y seleccione el botoacuten de opcioacuten Filtrar la listas y moverla a otro lugar Haga clic en Aceptar y entonces seleccione las celdas A2A14 (que incluiraacuten las celdas ocultas) Coacutepielas y peguacuteelas a la celda Al8 Seleccione entonces la opcioacuten DatosgtFiltrogtMostrar todos seleccione la lista de objetos uacutenicos y coacutepielas y peguacuteelas en la celda A2 Con esto ya tendraacute la lista

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 87

Seleccione la opcioacuten lnsertargtNombregtDefinir y en el cuadro de texto Nombres en el libro escriba la palabra Objetos

En el cuadro de texto Se refiere a escriacutebalo siguiente foacutermula y luego haga clic en Agregar

=DESREF($A$200CONTARA($A$1$A$2 0) 1)

Ahora escriba en el cuadro de texto Nombres en el libro el nombre ListaVal y en el cuadro de texto Se refiere a introduzca $C$2$C$5 Haga clic en Agregar Ahora inserte otra hoja llaacutemela Hojal y coloque todos estos datos en ella Teniendo activa auacuten la Hojal seleccione la opcioacuten de menuacute lnsertargtNombregt Definir

En el cuadro de tex to de la pa r t e super ior a i n t roduzca la pa l ab ra ListaCorrespondiente y en el cuadro de texto de la parte inferior introduzca esta foacutermula y haga clic en Agregar

= DESREF(INDIRECTO(DIRECCIOacuteN(COINCIDIR(CeldaVallObj ectos0)+12

Listas))00CONTARSI(ObjectosCeldaVall)1)

En el cuadro de texto Nombres en el libro escriba la palabra CeldaVall y en el cuadro de texto Se refiere a introduzca $D$6 y haga clic en Agregar De nuevo e introduzca en el primer cuadro de texto la palabra CeldaVal2 y $E$6 en el seshygundo y luego haga clic en Agregar

Ahora haga clic en Aceptar para volver a la Hojal y entonces seleccione la celda $D$6

Eacuteste es un proceso largo pero ya estamos cerca del finalVaya a Datosgt ValidacioacutengtConfiguracioacuten Seleccione la opcioacuten Lista del cuadro de lista desplega-ble y en el cuadro de texto Origen escriba = ListaVal Aseguacuterese de que estaacute activada la casilla de verificacioacuten Celda con lista desplegable y haga clic en Acepshytar

Seleccione ahora la celda E6 y de nuevo vaya a DatosgtValidacioacutengtConfiguracioacuten Seleccione la opcioacuten Lista en el cuadro de lista desplegable y en el cuadro de texto Origen escriba ListaCorrespondiente Aseguacuterese tambieacuten de que la casilla de veshyrificacioacuten Celda con lista desplegable estaacute activada y haga clic en Aceptar Selecshycione uno de los objetos de la lista de validacioacuten que aparece en la celda D6 y la celda de validacioacuten en la celda E6 cambiaraacute automaacuteticamente para reflejar el obshyjeto que acaba de seleccionar

Ahora ya tiene una lista de validacioacuten m u y uacutetil como la que se muestra en la figura 29 cuyos contenidos cambiaraacute automaacuteticamente basaacutendose en el eleshymento elegido en la otra lista

En cualquier celda o rango de celdas puede utilizar una lista que contenga hasta cinco listas separadas

88 Excel Los mejores trucos

iacute iacute 2 i

3 | 4 i 15 1 6

7

8 9 i 10]

H lt bull

Listo

_ A _

bull l Hoja

B

Seleccione un objeto

Sofaacute

XHoja2Hojas

[ bull v ^ ^ g ^ i-=---|

La tote eofecWM colaquo la Mi efe tiacutecfto objeto que se encuentra ei ta hoiexclja Listas

I H

~ bull uumlJ

D

LU

J NUM

F p=f

bull bull bull |

bullir

TRUCO

Figura 29 Dos listas de validacioacuten que se corresponden

Forzar la validacioacuten de datos para hacer referencia a una lista en otra hoja Una de las opciones disponibles en la funcioacuten de validacioacuten de datos es la opcioacuten Lista que proporciona un cuadro de lista desplegable con elementos especiacuteficos que el usuario puede elegir Un problema que surge con la validacioacuten de datos es que en el momento en el que intenta hacer referencia a una lista que reside en otra hoja veraacute que es imposible Por fortuna seraacute posible mediante este truco

Puede forzar a que la validacioacuten de datos haga referencia a una lista que estaacute situada en otra hoja existiendo para ello dos posibles aproximaciones rangos con nombre y la funcioacuten INDIRECTO

Meacutetodo 1 Rangos con nombre

Quizaacute la forma maacutes sencilla y raacutepida para realizar esta tarea es dar nombre al rango en el que reside la lista Para los propoacutesitos de este ejercicio supondremos que ha llamado ha dicho rango MiRango Seleccione la celda en la que desea que aparezca el cuadro de lista desplegable y luego vaya a DatosgtValidacioacuten Seshyleccione la opcioacuten Lista en el cuadro de lista desplegable y en el cuadro de texto Origen escriba =MiRango Haga clic en Aceptar Ahora la lista (que se encuenshytra en otra hoja) puede ser utilizada por la lista de validacioacuten

Meacutetodo 2 La funcioacuten INDIRECTO

La funcioacuten INDIRECTO le permite hacer una referencia a una celda que conshytiene un texto que a su vez representa la direccioacuten de otra celda Puede utilizar la celda que contiene la funcioacuten INDIRECTO como referencia a una celda y puede

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 89

utilizar esta caracteriacutestica para hacer referencia a la hoja en la que reside la lista Supongamos que la lista estaacute situada en la Hojal en el rango $A$1 $A$10 Haga clic en cualquier celda de otra hoja en la que desee tener esta lista de validacioacuten Entonces seleccione DatosgtValidacioacuten y seleccione la opcioacuten Lista del cuadro de lista desplegable

En el cuadro de texto Origen escriba la siguiente funcioacuten

= I N D I R E C T O ( H o j a l $ A $ 1 $ A $ 1 0 )

Aseguacuterese de que la casilla de verificacioacuten Celda con lista desplegable esteacute activada y entonces haga clic en Aceptar Ahora la lista que reside en Hojal deberiacutea estar en la lista desplegable de validacioacuten

Si el nombre de la hoja en la que reside la lista contiene espacios en blanco utilice la funcioacuten INDIRECTO de la siguiente forma

=INDIRECTO(Hoja 1$A$1$A$10)

Aquiacute hemos utilizado un apostrofe justo despueacutes de las dobles comillas y jus shyto antes del signo de exclamacioacuten Los apostrofes sirven para acotar los liacutemites del nombre de una hoja de Excel

Siempre es una buena idea utilizar el apostrofe independientemente de que la hoja tenga o no espacios en blanco en su nombre Siempre podraacute hacer referencia a hojas que no contengan espacios por lo que resulta muy uacutetil para evitar problemas

Ventajas y desventajas de cada meacutetodo

Existen ventajas y desventajas a la hora de utilizar nombres de rango y la funcioacuten INDIRECTO para forzar la validacioacuten de datos para que haga referencia a una lista situada en otra hoja

La ventaja de utilizar nombres de rango en este escenario es que cualquier cambio que realice en el nombre de la hoja no tendraacute efecto en la lista de validashycioacuten Esto siacute supone una desventaja en el caso de la funcioacuten INDIRECTO ya que cualquier cambio en el nombre de la hoja no se actualiza automaacuteticamente denshytro de dicha funcioacuten por lo que tendraacute que cambiarlo de forma manual

La ventaja de utilizar la funcioacuten INDIRECTO es que si la primera celda o fila o la uacuteltima celda o fila es eliminada del rango con nombre dicho rango devolveraacute un error iexclREF Esto supone una desventaja en caso de utilizar rangos con nomshybre si elimina cualquier celda o fila dentro del rango con nombre esos cambios no afectaraacuten a la lista de validacioacuten

Excel Los mejores trucos

Utilizar Reemplazar para eliminar caracteres no deseados Cuando importa datos externos o los copia desde otras ubicaciones dentro de Excel pueden aparecer caracteres no deseados en la hoja de caacutelculo Mediante este truco puede evitar el inconveniente de tener que eliminar a mano dichos caracteres

La funcioacuten Reemplazar de Excel puede ayudarle a eliminar caracteres no deshyseados de una hoja de caacutelculo pero requiere de unos cuantos pasos extra Por ejemplo puede reemplazar las celdas que contengan los caracteres no deseados con nada (es decir realmente eliminaacutendolos) Para hacer esto necesita saber los coacutedigos de los caracteres que desea eliminar Todos los caracteres tienen un coacutedishygo y Excel le informaraacute cuaacutel es si utiliza la funcioacuten COacuteDIGO sobre ellos Esta funcioacuten devuelve un coacutedigo numeacuterico para el primer caraacutecter de una cadena de texto Dicho coacutedigo corresponde con el conjunto de caracteres que esteacute utilizando el ordenador Para que esto funcione seleccione una de las celdas que contengan un caraacutecter no deseados En la barra de foacutermulas seleccione el caraacutecter en cuesshytioacuten y coacutepielo en el portapapeles Luego seleccione cualquier celda que no esteacute utilizando (por ejemplo la celda Al) y copie el caraacutecter en ella En otra celda introduzca la siguiente foacutermula

=C0DIG0($A$1)

Esto devolveraacute el coacutedigo del caraacutecter no deseado A continuacioacuten seleccione todos los datos y vaya a EditargtReemplazar Haga clic en el cuadro de texto Busshycar y mientras mantiene pulsada la tecla Alt o Comando introduzca utilizando el teclado numeacuterico un 0 seguido del coacutedigo que devolvioacute la funcioacuten COacuteDIGO Por ejemplo si el coacutedigo es 163 mantenga pulsada la tecla Alt o Comando mienshytras escribe en el teclado numeacuterico el nuacutemero 0163 Deje vaciacuteo el cuadro de texto Reemplazar con y luego haga clic en el botoacuten Reemplazar todos Esto eliminaraacute raacutepidamente todos los caracteres no deseados que coincidan con dicho coacutedigo Ahora repita el mismo proceso para el resto de caracteres no deseados

Convertir nuacutemeros de texto en nuacutemeros reales Los contenidos de una celda pueden parecer nuacutemeros especialmente si han sido importados pero probablemente sea imposible utilizar dichos nuacutemeros en los caacutelculos A continuacioacuten mostramos algunos meacutetodos para convertir faacutecilmente esos nuacutemeros de texto en verdaderos nuacutemeros

Recuerde que los nuacutemeros en Excel estaacuten alineados a la derecha de forma preshydeterminada mientras que los textos se alinean a la izquierda Una forma senci-

90

uuml

TRUCO

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 91

lia de identificar estos nuacutemeros de texto problemaacuteticos en una columna que se supone deberiacutea contener nuacutemeros verdaderos dicha columna luego ir a FormatogtCeldasgtAlineacioacuten asegurarse de que la alineacioacuten horizontal estaacute esshytablecida a la opcioacuten estaacutendar General y luego hacer clic en Aceptar Ampliacutee el ancho de la columna y veraacute como los nuacutemeros verdaderos quedaraacuten alineados a la derecha mientras que aquellos nuacutemeros de texto quedaraacuten a la izquierda Las fechas tambieacuten quedan alineadas a la derecha ya que en realidad son nuacutemeros

Ahora que ya sabe que tiene nuacutemeros que son tratados como texto veamos un meacutetodo raacutepido y sencillo para convertirlos a verdaderos nuacutemeros de forma que Excel pueda utilizarlos para sus caacutelculos Copie cualquier celda en blanco y entonces seleccione aquellas celdas con los nuacutemeros Vaya a EdicioacutengtPegado esshypecial y seleccione la opcioacuten Valores Tambieacuten seleccione la opcioacuten Sumar en el apartado de operaciones y haga clic en Aceptar

Esto haraacute que cualquier nuacutemero que estuviese como texto se convierta a un verdadero nuacutemero Esto es asiacute porque una celda vaciacutea tiene un valor de 0 y cuanshydo antildeade cualquier nuacutemero a un nuacutemero que Excel estaacute tratando como un texto forzaraacute a que dicho nuacutemero se convierta a un nuacutemero verdadero

Puede aplicar esta misma loacutegica a algunas funciones estaacutendar de Excel en particular a las funciones TEXTO Normalmente cuando utiliza las funciones TEXTO de Excel y el resultado obtenido es un nuacutemero Excel seguiraacute devolviendo ese nuacutemero como si fuera un texto en vez de un valor numeacuterico Supongamos que tiene un rango de celdas comenzando por la $A$1 Cada celda contiene una cantidad de dinero con el signo del doacutelar al principio seguida de un espacio y el nombre de una persona Utilizando la siguiente foacutermula que combina las funshyciones IZQUIERDA y ENCONTRAR puede extraer dicho siacutembolo del doacutelar

=IZQUIERDA(AlENCONTRAR( A1)-1)

Si por ejemplo la celda Al contuviese el valor $2270 Federico el resultado de la foacutermula seriacutea $2270 Sin embargo dicho resultado seriacutea devuelto como un texto no como un valor numeacuterico Por tanto de forma predeterminada quedaraacute alineado a la izquierda Puede modificar esta foacutermula de forma que el resultado no sea de tipo texto sino un valor numeacuterico de verdad Para ello antildeada un 0 al final de la siguiente forma

=IZQUIERDA(Al ENCONTRAR( A 1 ) - 1 ) + 0

Esto obligaraacute a que el valor devuelto sea un verdadero nuacutemero por lo que quedaraacute alineado a la derecha de forma predeterminada Todo lo que queda por hacer ahora es dar formato a la celda de forma adecuada Otro de los problemas que pueden surgir en relacioacuten con los textos y nuacutemeros es cuando mezcla texto y nuacutemeros en una misma celda pero sin haber una forma de extraer la parte nu-

92 Excel Los mejores trucos

meacuterica (como ocurriacutea en el caso anterior) En este caso tendremos que utilizar una funcioacuten personalizada que extraiga la parte numeacuterica de la cadena de texto Para crear dicha funcioacuten personalizada pulse A l t Opc ioacuten-F l l seleccione lnsertargtMoacutedulo e introduzca el siguiente coacutedigo

Function ExtraerNumero(rCell As Range) Dim ICount As Long L As Long Dim sText As String Dim lNum As String

sText = rCell

For ICount = Len(sText) To 1 Step -1 If IsNumeric(Mid(sText ICount 1)) Then

L = L + 1 lNum = Mid(sText ICount 1) amp lNum

End If

If L = 1 Then lNum = CInt(Mid(lNum 1 1)) Next ICount

ExtraerNumero = CLng(lNum)

End Function

Salga del editor y vuelva a la ventana principal de Excel La funcioacuten que acashybamos de crear apareceraacute en la categoriacutea de funciones definidas por el usuario Utiliacutecela tal y como se muestra en la figura 210

A B C 1 dfgd878sdd77dd 87877 =ExtraerNumero(A1) 2 jtjt330dfll33 33033 =ExtraerNumero(A2) 3 iexclfdkfjk332kki9Uuml2 332902 =ExtraerNurnero(Aacute2i

Figura 210 Extraer la parte numeacuterica de un texto

En la figura 210 la columna A contiene una mezcla de texto y nuacutemeros la columna B contiene el resultado de utilizar esta funcioacuten y la columna C muestra la apariencia de la foacutermula en la columna B

Personalizar los comentarios de las celdas Los comentarios de celda le permiten colocar el equivalente a una nota en una celda especiacutefica de una hoja Aunque muchas personas utilizar estos comentarios la mayoriacutea no saben que pueden ser personalizados

Cuando inserta un comentario de celda a traveacutes de la opcioacuten lnsertargtComen-tario Excel de forma predeterminada inserta tambieacuten el nombre del usuario del

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 93

ordenador que estaacute utilizando el programa Puede cambiar este comportamiento a traveacutes de HerramientasgtOpcionesgtGeneral Observe que en la parte inferior del cuadro de diaacutelogo puede cambiar el nombre de usuario que desea que aparezca de forma predeterminada

Aunque los comentarios de celda tienen el propoacutesito de mostrar un mensaje escrito por usted o cualquier otro usuario puede personalizar dichos comentashyrios de forma que reflejen mejor las intenciones del que lo crea Aseguacuterese de que la barra de herramientas de dibujo esteacute visible seleccionando la opcioacuten VergtBarras herramientasgtDibujo Introduzca un comentario de celda seleccionaacutendola y luego yendo a la opcioacuten lnsertargtComentario Esto haraacute que entre en modo de edicioacuten automaacuteticamente listo para introducir el texto en el cuadro de comentario

Haga clic justo en el borde del comentario para salir del modo de edicioacuten pero mantenieacutendolo seleccionado Entonces seleccione Dibujo y elija la opcioacuten Cambiar autoforma del menuacute que aparece Obtendraacute una lista con opciones en la que se incluyen formas baacutesicas flechas de bloque graacuteficos de flujo etc Elija una opshycioacuten y veraacute como el comentario de la celda cambiaraacute su aspecto en funcioacuten de ello tal y como se muestra la figura 2 11

1 2 3 4 5

6 7 8 9 10 11 12

I 13

A B C

--ltbull ~gtv

y bull

D E 1

Figura 211 Un comentario de celda con un formato totalmente diferente

Puede ir maacutes lejos si aplica un estilo sombreado al comentario daacutendole maacutes vida y un aspecto en tres dimensiones Aseguacuterese de que todaviacutea tiene seleccioshynado el comentario pero que no estaacute en modo de edicioacuten En la barra de herrashymientas de dibujo haga clic en el icono Estilo de sombra que se muestra la figura 212 y elija una configuracioacuten de sombra para el comentario de la celda

Otra cosa interesante que puede hacer con los comentarios de celda es utilishyzarlos para mostrar imaacutegenes sin que impidan ver los datos Por ejemplo podriacutea insertar la imagen de un graacutefico en el comentario de la celda para ilustrar los datos del graacutefico sin tener que mostrarlo todo el tiempo

Para antildeadir una imagen aseguacuterese de tener seleccionada el comentario pero sin estar en modo de edicioacuten Seleccione FormatogtComentario o bien haga doble clic en el borde del comentario Vaya a la pestantildea Colores y liacuteneas y en el cuadro

94 Excel Los mejores trucos

de lista desplegable Color seleccione la opcioacuten Efectos de relleno Vaya entonces a la pestantildea Imagen Ahora busque la imagen que desee insertar en el comentario de la celda

EacuteP

Configuracioacuten de sombra

Dibujo | Autoformas bull bullbdquogt zJ -Jjiacute (iquest bull yiquest amp ~ zplusmn Wi ltpound J J -

Figura 212 Opciones de estilo de sombra

Una uacuteltima cosa que puede hacer con los comentarios de celdas es extraer el texto que contienen y hacer que aparezca dentro de una celda Para ello tendreshymos que crear una sencilla funcioacuten personalizada en un moacutedulo estaacutendar Vaya al Editor de Visual Basic ( A l t O p c i oacute n - F l l ) e inserte un nuevo moacutedulo (lnsertargtMoacutedulo) A continuacioacuten escriba el siguiente coacutedigo

Function ObtenerTextoComentario(rCommentCell As Range) Dim strGotlt As String

On Error Resume Next strGotlt = WorksheetFunctionClean (rCommentCellCommentText) ObtenerTextoComentario = strGotlt On Error GoTo 0

End Function

Vuelva a la ventana principal de Excel bien cerrando esta ventana o pulsando AltComando-Q Ahora en cualquier celda introduzca la siguiente foacutermula

=ObtenerTextoComentario(Al)

donde Al es la celda que contiene un comentario Entonces deberiacutea aparecer el texto del comentario en la celda en la que haya introducido esta foacutermula

Ordenar maacutes de tres columnas La funcioacuten de ordenacioacuten de Excel estaacute limitada en cuanto a que soacutelo permite elegir tres campos de datos por los que ordenar En muchos casos puede ser suficiente pero a veces es necesario poder ordenar por maacutes de tres columnas de datos A continuacioacuten mostraremos coacutemo superar esta limitacioacuten

Para este ejemplo supondremos que tiene datos relacionados en las columnas A B C D y E y que desea ordenar estos datos por ese mismo orden Para poder

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 95

hacer esto debe poder ordenar de atraacutes a adelante es decir ordenar por el uacuteltimo campo primero y luego ir hacia atraacutes hasta el primer campo

Seleccione desde la co lumna A has ta la columna E y entonces vaya a DatosgtOrdenar Seleccione el criterio de ordenacioacuten para que primero se ordene la columna C luego D y luego E Haga clic en Ordenar Ahora seleccione desde la columna A a la columna E y vaya a DatosgtOrdenar Esta vez ordene primero por la columna A y luego por la B Haga clic en Ordenar Con esto hemos conseguido que Excel ordene las columnas por cinco campos en vez de por tres

Si desea automatizar esta tarea puede utilizar una macro que ordene la selecshycioacuten y que reconozca si los datos poseen encabezados de columna en base al formato de la primera fila de la seleccioacuten Si los encabezados estaacuten en negritas Excel sabraacute que son encabezados de columna y no los ordenaraacute Por otro lado ordenaraacute primero por la columna que esteacute maacutes a la izquierda y asiacute sucesivamenshyte para el resto de columnas hasta llegar a un maacuteximo de 256

El coacutedigo de la macro que necesitamos debe ser colocado en un moacutedulo estaacutendar Para ello vaya a la opcioacuten HerramientasgtMacrogtEditor de Visual Basic luego vaya a lnsertargtMoacutedulo e introduzca el siguiente coacutedigo

Sub OrdenarPorX( ) Dim L As Long

For L = SelectionColumnsCount To 1 Step -1 SelectionSort Keyl=SelectionCells(2 1) _ Orderl=xlAscending Header=xlGuess Orientation=xlTopToBottom

Next L

End Sub

Para volver a Excel cierre de esta ventana o bien pulse AltComando-(X Ahora ya podraacute realizar ordenaciones mucho maacutes complicadas que las que ofrece Excel

En Ordenacioacuten aleatoria ^H Puede hacer que Excel escoja los tres primeros ganadores elegidos ^H aleatoriamente de una lista de una hoja de caacutelculo El meacutetodo maacutes sencillo ^trade y raacutepido para hacer esto es utilizar la funcioacuten ALEATORIO de Excel en

combinacioacuten con las funciones de ordenacioacuten

Supongamos que tiene una tabla con tres columnas en la hoja de caacutelculo comenzando por la columna B y que contienen en este orden Nombre edad y Ndeg de Id Coloque la funcioacuten ALEATORIO en la celda A2 y propaguacuteela hacia abajo tantas filas como necesite

Cuando haga esto cada una de las celdas de la columna A devolveraacute un nuacuteshymero aleatorio por el cual puede ordenar la tabla En otras palabras si ordena las

96 Excel Los mejores trucos

columnas A B C y D utilizando como criterio el valor de la columna A ya sea ascendentemente o descendentemente tendraacute a los tres ganadores en la parte superior de la tabla

La funcioacuten ALEATORIO es una funcioacuten volaacutetil que se calcula automaacuteticamente cada vez que se realiza una accioacuten en Excel (como por ejemplo introducir datos en alguacuten lugar o bien forzando a que se recalculen todas las foacutermulas pulsando la tecla F9) Por tanto ya puede escribir en una hoja de papel quieacutenes eran los ganadores antes de que vuelva a calcularse de nuevo todo ya que el orden camshybiaraacute

Sin embargo puede utilizar esta volatilidad en su beneficio y grabar una macro que ordene los datos inmediatamente despueacutes de recalcular y forzar a que la funcioacuten ALEATORIO devuelva a otro conjunto de nuacutemeros aleatorio Entonces puede asociar esta macro a un botoacuten de forma que cada vez que desee calcular los tres ganadores todo lo que debe hacer es hacer clic en eacutel y utilizar las tres filas de la parte superior

Por ejemplo supongamos que tiene los datos en las columnas B C y D y que la fila 1 se utiliza para los encabezados Primeramente introduzca el encabezado Aleatorio en la celda A l En la celda A2 introduzca ^ALEATORIO () y propashyguacuteela hacia abajo Luego seleccione cualquier celda y vaya a HerramientasgtMacrogt Grabar nueva macro

Seleccione las columnas A B C y D y pulse F9 (para forzar de sede recalculen las foacutermulas) Vaya a DatosgtOrdenar y ordene los datos por la columna A Deshytenga entonces la grabacioacuten de la macro

A continuacioacuten seleccione VergtBarras de herramientasgtFormularios Seleccioshyne el icono Botoacuten en el cuadro de herramientas y coloacutequelo en cualquier lugar de la hoja

Asignen la macro que acaba de grabar a este botoacuten y luego haga clic en Acepshyt a r (tambieacuten cambie el texto del botoacuten por algo maacutes representativo) Puede oculshytar la columna A completamente ya que los usuarios no tienen por queacute ver los nuacutemeros aleatorios Cada vez que haga clic en el botoacuten los datos se ordenaraacuten aleatoriamente y simplemente bastaraacute con leer los tres nombres que aparezcan en la parte superior de la tabla para ver quieacutenes son los ganadores Observe la figura que le mostramos a continuacioacuten

La funcioacuten ALEATORIO de Excel 2003 tiene un fallo muy importante Aunque la ayuda asegura claramente que el nuacutemero aleatorio devuelto estaacute entre 0 y 1 esto no siempre es cierto si la funcioacuten se utiliza en muchas celdas A veces ocurriraacute que la funcioacuten devuelva un nuacutemero menor que 0 Para saber porqueacute Microsoft ha cambiado el algoritmo visite la paacutegina httpsupportmicrosoftcomdefaultaspxkbid= 828795httpsupportmicrosoftcomdefaultaspxkbid=828795

V

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 97

_ 1 _ A 1 Nombre 2 David 3 lAlex 4 Ana 5 Marta 6 Juan 7 Santos 8 Laida 9 Mar 10 Luis 11 12

I sect Edad Ndeg

32 30 23 36 25 30 31 30 28

Id C

11343 11543 11345 11234 11321 11545 11656 11451 11331

P Posicioacuten

E I F Escoger Ganadores

1

2 3

Figura 213 Resultado final de la ordenacioacuten aleatoria de la columna oculta A

Manipular datos con el filtro avanzado Si estaacute familiarizado con la herramienta de auto filtrado de Excel tambieacuten estaraacute familiarizado con sus limitaciones Si necesita hacer una manipulacioacuten exhaustiva de los datos la solucioacuten es utilizar la herramienta de filtrado avanzado de Excel

A pesar de su limitacioacuten el filtrado automaacutetico es uacutetil para mostrar solamenshyte aquellos datos que cumplan un criterio en particular Sin embargo en algunas ocasiones no podraacute extraer la informacioacuten que necesita utilizando las opciones estaacutendar disponibles en el filtrado automaacutetico Por ello existe una herramienta maacutes versaacutetil el filtro avanzado que le permite manipular los datos maacutes allaacute de dichas limitaciones Cuando utilice esta herramienta la tabla debe estar configushyrada en un formato claacutesico tal y como describimos al comienzo del capiacutetulo 1

Cuando utilice la herramienta de filtrado avanzado de Excel necesitaraacute una copia de los encabezados de las columnas en alguacuten lugar por encima de los datos Siempre deberiacutea dejar al menos tres filas en blanco por encima de la tabla con los datos Para asegurarse de que los encabezados son siempre los mismos y se manshytengan asiacute independientemente de que cambie los encabezados de las columnas haga siempre las referencias a los encabezados de las columnas con una foacutermula de referencia simple como pueda ser =A4 donde la celda A4 contiene el encabeshyzado de la columna Copie esto a lo largo de los encabezados de las columnas que tenga en la tabla Esto aseguraraacute que los encabezados de los criterios para el filtrado avanzado sean dinaacutemicos Directamente debajo de los encabezados coshypiados coloque el criterio que desea utilizar para el filtro avanzado Para maacutes detalles sobre este proceso consuacuteltela ayuda de Excel acerca de los criterios de los filtros avanzados Hay que tener en cuenta que cuando se utiliza el filtro avanshyzado si hay dos o maacutes criterios colocados directamente por debajo del encabezashydo utilizaraacuten un operador de comparacioacuten O Si desea utilizar el operador de comparacioacuten Y entonces los encabezados de columna y sus criterios deben apashyrecer dos veces del lado a lado En la figura 214 se muestra coacutemo utilizar el operador O para filtrar los datos y en la figura 215 coacutemo utilizar el operador Y

uuml

98 Excel Los mejores trucos

bullaacutejjj Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana

-Inl 1

A

1 Nombres

2

3

4 |

5 Nombres

6 David

7 Alex

8 Ana

9 Marta

10 Juan

11 Santos

12 Laida

13 Mar

14 Luis

15

16

17

18

M 4 bull H Hojal

B

iexclTasa

iexclgt1600

iexcllt 15J30

Tasa

$ 1700

$ 1225

$ 2120

$ 1800

1650

$ 2100

$ 1080

$ 1550

$ 1320

C

Edad

X Hoja2 HojaS X Hoja4

32

30

23

36

25

30

31

30

28

X HojaS

D E |

11 ipiiacutewraffiM^v bull -Accioacuten

F

f Filtrar la lista sin moverla a otro lugar

lt Copiar a otro lugar

Rango de la lista j$A$5$C$14

Rango de criterios j^B$l$B$3

1 f~ Soacutelo registros uacutenicos

1 Aceptar j

XHoja6 |lt

G

Jltl

3 31 3

Cancelar

H

|

1 T mdash

mdash w

bull i r

Figura 2 14 Usar el filtro avanzado con el operador O para mostrar solamente aquellas personas que tengan una paga mayor que $1600 o menor que $1500

-4] Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana

A5

1

2

3

4

5

_ 15

16

17

18

19 70

21

22

23

24

25

H 4

A

Nombres

D

Nombres

David

Laida

bull bull Hojal

B Nombres

L

Tasa

1700

1080

Ed

X Hoja2 X Hoja3 X

C

ad

Hoja4

32

31 iexcl

X H deg iacute a 5

D E | F

lilHPJliexcliquesti^1 Accioacuten

(bull Filtrar la iista sin moverla a otro lugar r Copiar a otro lugar-

Rango de la lista |$A$5$C$14

Rango de criterios j$A$l$B$2

1 f Soacutelo registros uacutenicos

1 Aceptar j Cancel

XHoja6Hoja7 j laquo |

G

2ltj

3d 3 31

ar

H

1

1 mdash

~~~

mdash w

bull i r

Figura 2 15 Usar el filtro avanzado con el operador Y para mostrar solamente aquellas personas cuyo nombre comienza por B y termina por L

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 99

Los dos ejemplos anteriores muestran algunos de los usos simples que se pueshyden hacer de la herramienta de filtrado avanzado y que tambieacuten se podriacutean reashylizar ut i l izando la funcioacuten de filtrado au tomaacutet ico si fuera necesario A continuacioacuten presentaremos algunos ejemplos de la utilizacioacuten del filtro avanzashydo en los que no seriacutea posible utilizar el Autofiltro

Es importante destacar que cuando utilice una foacutermula para el criterio S no debe utilizar por encima del criterio un encabezado que sea ideacutentico

w a uno que haya en la tabla Por ejemplo si tiene un listado con datos numeacutericos en la columna A y la lista comienza en la celda A5 (siendo A4 el encabezado) si necesita extraer todos los nuacutemeros de dicha lista que sean mayor que la media deberiacutea utilizar un criterio como este

=A5gtPR0MEDI0($A$5$A$500)

Si el criterio fuese colocado en la celda A2 el rango del criterio seriacutea $A$1 $A2 pero $A$ 1 no podriacutea contener el mismo encabezado que el usado en la lista Debe ser o bien vaciacuteo o bien un encabezado diferente Tambieacuten es importante resentildear que cualquier foacutermula que utilice deberiacutea devolver o bien VERDADERO o FALSO El rango para la funcioacuten promedio se hace absoluto al utilizar el signo del doacutelar mientras que la referencia a la celda A5 es relativa Esto es necesario porque cuando aplique el filtro avanzado Excel veraacute que la celda A5 es una referencia relativa y se moveraacute por la lista hacia abajo por cada entrada devolviendo VERDADERO o FALSO Si devuelve VERDADERO entonces habraacute que necesita ser extraiacutedo Si devuelve FALSO entonces es que no coincide con el criterio y por lo tanto no seraacute mostrado

Supongamos que muchos de los nombres estaacuten repetidos en el rango $A$5$A$500 siendo la celda A4 el encabezado Tambieacuten que muchos de los encabezados se repiten numerosas veces Se le ha asignado la tarea de extraer de la lista todos los nombres que aparecen maacutes de una vez Para hacer esto necesita utilizar el filtro avanzado asiacute como la siguiente foacutermula como criterio

= C O N T A R S I ( $ A $ 5 $ A $ 5 0 0 A 5 ) gt 1

Una vez que aplique el filtro avanzado a esto y utilice la opcioacuten Copiar en otra ubicacioacuten la recieacuten creada lista contendraacute todos los nombres que aparecen maacutes de una vez en la lista original (veacutease figura 216) Muchos de estos nombres estaraacuten repetidos numerosas veces pero puede filtrar faacutecilmente esta nueva lista de nuevo utilizando el filtro avanzado aunque esta vez seleccionando la opcioacuten Soacutelo los registros uacutenicos (veacutease figura 217)

Esto le proporcionaraacute un listado de nombres que aparecen en la lista maacutes de una vez

100 Excel Los mejores trucos

iquestaacutej Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana

Ojx] figt x

A2 f =CQNTARSI($At5$A$2QAB)gt1

4) bullbullbull - ^ g

H 1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

Criterio

IVERDADEROl

Nombres

David

Alex

Ana

Marta

Juan

Santos

Laida

Mar

Luis

Marta

David

Juan

Antonio

Mar

Alex

Nombres David Alex Marta Juan Mar Marta David Juan Mar Alex

Accioacuten

f Filtrar la lista sin moverla a otro lugar

(bull iexclCopiar a otrolugar]

JpoundIacute

Rango de la lista j$A$4$A$500 3 Rango de criterios ]$A$1$A$2

Copiar a |$C$4

Soacutelo registros uacutenicos

Aceptar

H 4 bull H Hoja2 Hoja3 Hoja4 Hoja5 Hojaoacute Hoja X H o J a 8 ir

Figura 216 Usar el filtro avanzado para extraer los nombres de una lista en la que aparecen maacutes de una vez

A B C D

1 Criterio

2 FALSO

3

4 Nombres Nombres Nombres

5 David David David

6 Alex Alex Alex

7 [Ana Marta Marta

8 Marta Juan Juan

9 Juan Mar Mar

10 Santos Marta

11 Laida David

12 Mar Juan

13 Luis Mar

14 Marta Alex

15 David

16 Juan

17 Antonio

18 Mar

19 Alex iexclH 4 bull M Hoja2 Hoja3 Hoja4 HojaS Hojaoacute Hoja

E F | G

l l i W i i i l i S I E ^ ^ Accioacuten

iacute Filtrar la lista sin moverla a otro lugar

ltbull Copiar a otro lugar

Rango de la lista j $c$4 $C$ 14

Rango de criterios j

Copiar a |$D^4

P Soacutelo registros uacutenicos

j Aceptar J Cancel

HojaS H o j a 9 | lt f

X j

3 3 3

raquo 1

H 1 d

laquo-

i nr Figura 217 Usar el filtro avanzado en la lista extraiacuteda de nombres para mostrar cada

uno de ellos solamente una vez

Los usuarios que utilicen el filtro avanzado a menudo se preguntan ^ coacutemo pueden forzar a Excel para que filtre sus datos por el criterio

exacto que han especificado Si el criterio que ha elegido es Juan por

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 101

ejemplo y realiza un filtro avanzado en una larga lista de nombres Excel no soacutelo mostraraacute el nombre de Juan sino tambieacuten nombres como Juana Juan Carlos etc en otras palabras cualquier nombre que comience con las letras Juan en ese orden seraacuten considerados como que cumplen el criterio Para obligar a Excel a que encuentre solamente aquellos que coincidan totalmente introduzca el criterio asiacute ==Juan

m g 3 j Crear formatos de nuacutemero personalizados II ^ E C j H E x c e incorpora una serie de formatos para nuacutemeros pero a veces

^ ^ ^ pound ^ B necesitaraacute utilizar un formato de nuacutemero que no esteacute entre los predefinidos Mediante los trucos de este apartado podraacute crear formatos de nuacutemero que puede personalizar de acuerdo a sus necesidades

Antes de probar estos trucos es importante que entienda coacutemo Excel mira los formatos de una celda Lo hace tomando las siguientes secciones (de izquierda a derecha) Nuacutemeros positivos nuacutemeros negativos valores cero y valores de tipo texto Cada una de estas secciones estaacute separada por un punto y coma ()

Cuando cree un formato de nuacutemero personalizados no necesitaraacute especificar las cuatro secciones Es decir si soacutelo incluye dos secciones la primera seraacute utilishyzada tanto para los nuacutemeros positivos como para los valores cero mientras que la segunda se utilizaraacute para los nuacutemeros negativos Si soacutelo incluye una seccioacuten todos los tipos de nuacutemero utilizaraacuten ese formato Los textos se veraacuten afectados por el formato personalizado soacutelo cuando se incluyen las cuatro secciones (utilishyzando la uacuteltima de ellos)

Cuando nos referimos a nuacutemeros no significa que el formato personalizado soacutelo se aplique a datos de tipo numeacuterico Dicho formato tambieacuten se aplicaraacute a los nuacutemeros que esteacuten en formato texto

El formato personalizado de nuacutemero mostrado en la figura 218 es el formato estaacutendar de moneda de Excel que muestra los valores negativos en rojo Lo heshymos modificado antildeadiendo un formato aparte para los valores cero y otro para los textos

Si introduce un nuacutemero positivo como un valor de moneda Excel le daraacute formato automaacuteticamente de forma que incluya un punto como separador de millares seguido de dos lugares decimales Haraacute lo mismo con los valores negatishyvos excepto que los mostraraacute en color rojo Cualquier valor cero no tendraacute el siacutembolo de moneda y soacutelo mostraraacute dos lugares decimales En caso de que introshyduzca un texto en la celda Excel mostraraacute el texto No introduzca texto en vez de el texto que haya introducido el usuario

102 Excel Los mejores trucos

Formato para Formato para Formato para Formatos para nuacutemeros positivos nuacutemeros negativos valores cero texto

$000 [Rojo]$000 000 No escribir texto Figura 218 Secciones del formato de nuacutemero personalizado

Es importante recordar que dar formato al valor de una celda no afecta al verdadero valor que eacutesta contiene Por ejemplo escriba cualquier nuacutemero en la celda A l Luego vaya a FormatogtCeldasgtNuacutemerogtPersonalizado y escriba en el cuadro de texto Tipo la palabra Hola (incluyendo las dobles comillas) Haga clic en Aceptar para cerrar el cuadro de diaacutelogo

Aunque la celda muestre el texto Hola puede ver el verdadero valor contenishydo de la celda seleccionaacutendola y mirando la barra de foacutermulas de la parte supeshyrior de la ventana (o bien pulsando F2) Si fuese a hacer una referencia a esta celda en una foacutermula (por ejemplo =Al + 2 0) la celda resultante tomariacutea el forshymato personalizado Si hiciese referencia a la celda Al jun to a otras muchas celshydas que tuviesen un formato estaacutendar por ejemplo =SUM (Al A10) la celda resultante seguiriacutea tomando el formato personalizado de la celda A l Esto es asiacute porque Excel tiene la delicadeza de dar al resultado el mismo formato que tengan aquellas celdas referenciadas En caso de que eacutestas tuviesen maacutes de un formato si existe alguno personalizado tendraacute preferencia sobre los demaacutes

Esto significa que siempre deberaacute recordar que Excel utiliza el valor real de una celda para hacer sus caacutelculos y no el valor que muestra resultado de un formato en particular Esto puede provocar una sorpresa cuando Excel hace caacutelshyculos basaacutendose en celdas que estaacuten formateadas para no mostrar lugares decishymales o para mostrar solamente unos cuantos por ejemplo Para ver esto por siacute mismo introduzca 14 en la celda Al y 14 en la celda A2 Cambie el formato de ambas celdas para que no muestren lugares decimales y luego introduzca la foacutershymula =A1+A2 en otra celda cualquiera Veraacute que el resultado es 3 ya que Excel ha redondeado el caacutelculo Excel tiene una opcioacuten llamada Precisioacuten de pantalla que encontraraacute en HerramientasgtOpcionesgtCalcular pero debe tener en cuenta que esta opcioacuten cambiaraacute definitivamente los valores almacenados en las celdas a la precisioacuten maacutexima (15 diacutegitos) independientemente del formato incluyendo los lugares decimales en caso de que se muestren Dicho de otra forma una vez que se activa esta opcioacuten no hay posibilidad de volver atraacutes (puede intentarlo pero la informacioacuten extra sobre la precisioacuten se perderaacute)

El formato predeterminado para cualquier celda es General Si introduce un nuacutemero en una celda Excel le asignaraacute el formato numeacuterico que considere maacutes apropiado Por ejemplo si introduce 10 en una celda Excel le daraacute el formato de porcentaje La mayoriacutea de las veces Excel acierta correctamente con el formashyto aunque a veces seraacute necesario cambiarlo

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 103

Cuando utilice la opcioacuten FormatogtCeldas resista la tentacioacuten de forzar la alineacioacuten a la izquierda derecha o al centro para el formato horizontal De forma predeterminada los nuacutemeros se alinean a la derecha y el texto a la izquierda Si deja esto asiacute puede decir en cualquier momento si una celda contiene texto o nuacutemeros como ya vimos en el ejemplo anterior en el que en la celda Al pareciacutea haber un texto pero en realidad conteniacutea un nuacutemero

Cada una de las secciones de un formato dado utiliza su propio conjunto de coacutedigos de formato Estos coacutedigos obligan a Excel a hacer que los datos aparezshycan de una cierta forma Asiacute por ejemplo supongamos que quiere que los nuacuteshymeros negativos aparezcan entre pareacutentesis y por lo demaacutes que cualquier nuacutemero ya sea positivo negativo o cero muestre dos lugares decimales Para hacer esto utilice este formato personalizado

0 0 0_ ( - 0 0 0 )

Si desea que los nuacutemeros negativos aparezcan en rojo utilice este formato

0 0 0 _ [ R o j o ] ( - 0 0 0 )

Observe que hemos utilizado corchetes en el coacutedigo anterior El coacutedigo de forshymato indica a Excel que haga que los nuacutemeros aparezcan en color rojo

Puede utilizar muchos coacutedigos de formato diferentes dentro de las secciones de un formato personalizado Las tablas 2 1a 25 realizadas a partir de la docushymentacioacuten de Microsoft explican estos coacutedigos

Tabla 2 1 Coacutedigos de formato

Coacutedigo de nuacutemero Descripcioacuten

General Formato de nuacutemero general

0 (cero) Muestra los ceros sin valor si un nuacutemero tiene menos diacutegitos que ceros en el formato

Muestra uacutenicamente los diacutegitos significativos y no muestra los ceros sin valor

Antildeade los espacios de los ceros sin valor a cada lado del separador decimal Tambieacuten se puede utilizar para las fracciones que tengan un nuacutemero de diacutegitos variable

Un porcentaje Excel multiplicaraacute el valor por 100 y mostraraacute el caraacutecter despueacutes del nuacutemero

104 Excel Los mejores trucos

Coacutedigo de nuacutemero

(punto)

E+ E- e+ e-

Descripcioacuten

Separador de millares Un punto seguido de un coacutedigo ampliaraacute el nuacutemero por 1000

Notacioacuten cientiacutefica

Tabla 22 Coacutedigos de texto

Coacutedigo de texto

$- + ( ) y espacio en blanco

caraacutecter

texto

_ (subrayado)

Descripcioacuten

Estos caracteres se mos t ra raacuten en el nuacutemero Para mostrar cualquier otro caraacutecter encieacuterrelo entre doshybles comillas o bien precedido de una barra invertida

()

Este coacutedigo muestra el caraacutecter especificado Observe que si escribe ^ amp ~ = lt ogtse colocaraacute automaacuteticamente una barra invertida delante del cashyraacutecter

Este coacutedigo muestra el texto que hay encerrado entre las dobles comillas

Este coacutedigo repite el siguiente caraacutecter en el formato para rellenar el ancho de la columna Soacutelo se admite un asterisco por cada seccioacuten del formato

Este coacutedigo omite el ancho del siguiente caraacutecter Norshymalmente se utiliza asiacute _) para dejar un espacio para un pareacutentesis de cierre en el formato de un nuacutemero positivo cuando el formato para nuacutemeros negativos incluye pareacutentesis Esto permite que tanto valores poshysitivos como negativos se alineen en el punto decimal

Lugar para un texto

Tabla 23 Coacutedigos de fecha

Coacutedigo de fecha Descripcioacuten

m Un mes representado como un nuacutemero sin ceros de reshylleno (1-12)

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 105

Coacutedigo de fecha

mm

m m m

m m m m

d

dd

ddd

dddd

aa

aaaa

Descripcioacuten

Un mes representado como un nuacutemero con ceros de relleno (01-12)

Un mes dado como su abreviatura (ene-dic)

Un mes dado tal cual sin abreviar (enero-diciembre)

Un diacutea representado como un nuacutemero sin ceros de reshylleno (1-31)

Un diacutea representado como un nuacutemero con ceros de reshylleno (01-31)

Un diacutea dado como su abreviatura (lun-dom)

Un diacutea dado tal cual sin abreviar (lunes-domingo)

Un antildeo dado como un nuacutemero de dos diacutegitos (por ejemshyplo 96)

Un antildeo dado como un nuacutemero de cuatro diacutegitos (por ejemplo 1996)

Tabla 24 Coacutedigos de hora

Coacutedigo de hora

h

hh

m

m m

m

m m

AMPM a m p m

Descripcioacuten

Una hora representada como un nuacutemero sin ceros de relleno (0-23)

Una hora representada como un nuacutemero con ceros de relleno (00-23)

Un minuto representado como un nuacutemero sin ceros de relleno (0-59)

Un minuto representado como un nuacutemero con ceros de relleno (00-59)

Un segundo representado como un nuacutemero sin ceros de relleno (0-59)

Un segundo representado como un nuacutemero con ceros de relleno (00-59)

Hora en formato del reloj de 12 horas

106 Excel Los mejores trucos

Tabla 25 Coacutedigos miscelaacuteneos

Coacutedigo miscelaacuteneo Descripcioacuten

[Negro] [Azul] Estos coacutedigos muestran los caracteres en el color espe-[Aguamarina] cificado Observe que n puede ser un valor entre 1 y [Verde] [Magenta] 56 y se refiere al eneacutesimo color de la paleta [Rojo] [Blanco] [Amarillo] [Color n]

[Condicioacutenvalor] Las condiciones pueden ser lt gt = gt = lt= oacute o mientras que el valor puede ser cualquier nuacutemero Un formato de nuacutemero puede contener hasta dos condishyciones

Observe en particular el uacuteltimo tipo de coacutedigos de formato de la tabla 25 es decir los operadores de comparacioacuten Supongamos que desea un formato de nuacuteshymero personalizado del tipo de 000_ [Rojo](-000) para mostrar los nuacutemeros negativos en color rojo y entre corchetes pero solamente si el nuacutemero es menor que -100 Para conseguir esto tendriacutea que escribir el formato de esta forma

0 0 0 _ [ R o j o ] [ lt - 1 0 0 ] ( - 0 0 0 ) 0 0 0

Los coacutedigos de formato [Rojo][lt-l00](-000) colocados en la seccioacuten para nuacuteshymeros negativos hacen que esto sea posible Utilizando este meacutetodo jun to con el formato condicional puede doblar el nuacutemero de formatos condicionales disponishybles de tres a seis

A menudo los usuarios desean mostrar el siacutembolo del euro como una palashybra Para conseguir eso utilice el siguiente formato personalizado

0 e u r o s con 00 c eacute n t i m o s

Este formato obliga a que un nuacutemero introducido como 5525 se muestre como 55 euros con 25 ceacutentimos Tambieacuten podriacutea utilizar un formato condicional para mostrar las palabras Bajo En la media o Alto dependiendo del nuacutemero introducido Para ello utilice este simple formato

[ lt l l ] M B a j o M 0 [ gt 2 0 ] A l t o 0 E n l a m e d i a 0

Observe el uso del Esto hace que se repita el siguiente caraacutecter en el formato para rellenar el ancho de la columna de forma que los textos Bajo En la meshydia o Alto se alinearaacuten forzosamente a la derecha mientras que el nuacutemero quedaraacute a la izquierda

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 107

Antildeadir maacutes niveles de Deshacer a Excel Todos estamos familiarizados con la maravillosa caracteriacutestica de Deshacer de Excel que permite a los usuarios deshacer aquellas acciones que desee en caso de equivocacioacuten Por desgracia el nivel predeterminado de cambios que se pueden deshacer es tan soacutelo de 16 Con este truco podemos cambiar el registro de forma que podamos deshacer hasta 100 equivocaciones

Cuando utiliza la caracteriacutestica Deshacer de Excel y alcanza el nuacutemero de 16 acciones el primer deshacer es reemplazado por el nuacutemero 17 y asiacute sucesivashymente Ademaacutes en cuanto guarde el libro toda la lista de acciones a deshacer se elimina coloque se pierde el historial de acciones Esto es asiacute porque se supone que a pulsar Guardar estaacute indicaacutendole a Excel que estaacute de acuerdo con los camshybios realizados y que por lo tanto no tiene sentido deshacer nada

Probablemente haya descubierto que en ocasiones poder deshacer tan soacutelo en vez de tener que aguantar esto puede cambiar este comportamiento modifishycando el registro algo que soacutelo funciona en Windows Para ello lo primero que hay que hacer es cerrar Excel Luego vaya a lniciogtEjecutar y en el cuadro de texto escriba Regeditexe Luego haga clic en Aceptar Cuando se abra el Editor del registro despliegue la carpeta HKEY_CURRENT_USER Luego despliegue la carpeta Software luego Microsoft Office y por uacuteltimo la carpeta 100 (esta uacuteltishyma carpeta depende de la versioacuten de Office que tenga En este caso la carpeta 110 es la correspondiente a Excel 2002) A continuacioacuten despliegue la carpeta Excel y finalmente abra la carpeta Options

Ahora v a y a a EdicioacutengtNuevogtValor DWORD i n t r o d u z c a la p a l a b r a UndoHistory y pulse Intro Luego haga doble clic sobre el elemento que acaba de crear seleccione el botoacuten de opcioacuten Decimal y a continuacioacuten escriba en el cuadro de texto un valor mayor que 16 y menor que 100

En general disponer de 100 acciones para deshacer seraacute suficiente para la mayoriacutea de los usuarios aunque el problema de que la opcioacuten Deshacer se pierda una vez guardada la hoja seguiraacute ocurriendo

H Crear listas personalizadas Siacute antildeade una lista personalizada a Excel podraacute escribir el primer elemento de la lista arrastrarlo utilizando el recuadro de propagacioacuten y ver coacutemo la lista se rellena automaacuteticamente

Una de las funciones maacutes populares que tiene Excel para ahorrar trabajo es la posibilidad de incrementar no solamente nuacutemeros sino tambieacuten algunos textos automaacuteticamente Normalmente cuando utiliza el recuadro de propagacioacuten esshycribe el primer elemento y luego lo utiliza para rellenar las celdas con los si-

uuml

108 Excel Los mejores trucos

guientes elementos de la lista De esta forma puede crear faacutecilmente su propia lista personalizada con aquellos elementos utilizados maacutes a menudo

La forma maacutes flexible de crear una lista personalizada es introducir sus conshytenidos en un rango de celdas Por ejemplo digamos que tiene una lista de 100 nombres de empleados Introduzca cada nombre comenzando por la celda Al y terminando en la celda Al 00 y luego ordenaacutendola si es necesario A continuashycioacuten seleccione HerramientasgtOpciones y en la pestantildea Listas personalizadas haga clic en el cuadro de texto Importar lista desde las celdas Utilizando el cursor del ratoacuten haga clic en la celda Al y arraacutestrelo hasta la celda Al 00 y luego haga clic en el botoacuten Importar Llegados a este punto la lista personalizada estaraacute disposhynible para todos los libros con los que se trabaje en este mismo ordenador

S Si la lista estaacute ordenada y desea que esteacute colocada de arriba a abajo encontraraacute maacutes sencillo ordenarla de Z a A en caso de que la lista original estuviese ordenada al reveacutes

TRUCO Subtotales en negritas de Excel iquestNo seriacutea muy interesante si pudiese identificar los subtotales en sus hojas de caacutelculo de forma que los pudiera encontrar faacutecilmente Con los trucos de este apartado podraacute hacerlo

Cuando estaacute trabajando con una hoja de caacutelculo que contiene subtotales creashydos a partir de la opcioacuten DatosgtSubtotales eacutestos pueden ser muy difiacuteciles de idenshytificar haciendo que la hoja de caacutelculo no pueda leerse con facilidad Esto es especialmente cierto cuando utiliza esos Subtotales en una tabla de datos que tiene muchas columnas

Normalmente los subtotales resultantes aparecen en la parte derecha mienshytras que sus encabezados asociados se situacutean en la primera columna Dado que los valores de esos subtotales no aparecen en negritas puede ser difiacutecil de alinearshylos visualmente con sus encabezados de fila Puede hacer que sea mucho maacutes sencillo leerlos siacute aplica un formato negritas a esos valores

Para probar este problema introduzca algunos datos de forma similar a los que se muestran en la figura 219

Ahora antildeada los subtotales seleccionando la opcioacuten DatosgtSubtotales aceptando los valores predeterminados del cuadro de diaacutelogo y haciendo clic en Aceptar

En la figura 220 los encabezados de los subtotales estaacuten en negritas pero sus resultados asociados no Dado que esta tabla soacutelo tiene dos columnas no resulta tan difiacutecil leer y encontrar las cantidades correspondientes a dicho subtoshytales

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 109

A 1 Trimestre 2 Primero 3 Primero 4 Segundo 5 Segundo 6 Segundo 7 Tercero 8 Tercero 9 Tercero

iacute 10 11

B Coste $1000 $2000 $1000 $1000 $1000 $1500 $1000 $2500

C

Figura 219 Datos de una hoja de caacutelculo antes de antildeadir los subtotales

r 2 3 - A

I bull 1 Trimestre 1 [ bull bull 2 Primero I J bull 3 Primero 1 - 4 Total trimestrel

5 Segundo 6 Segundo 7 Segundo

1 - 8 Total trimestre2 9 iexclTercero

bull 10 Tercero bull 11 Tercero

1 - 12 Total trimestre3 13 Total finil 14 15

a Coste $1000 $2000 $3000 $1000 $1000 $1000 $3000

11500 | $1000 $2500 $5000 $11000

C

Figura 220 Datos de la hoja de caacutelculo despueacutes de que se hayan aplicado los subtotales

Sin embargo cuantas maacutes columnas tenga la tabla maacutes difiacutecil seraacute encontrar visualmente esos subtotales Puede solucionar este problema utilizando el forshymato condicional de Excel Usando la tabla de la figura 219 como ejemplo prueshybe esto antes de antildeadir los subtotales Seleccione las celdas Al B9 aseguraacutendose de que la celda Al sea la activa Entonces seleccione FormatogtFormato condicioshynal luego elija la opcioacuten Foacutermula del cuadro de lista desplegable y antildeada la sishyguiente foacutermula

= DERECHA ( $ A 1 5 ) = T o t a l

Ahora haga clic en el botoacuten Formato vaya a la pestantildea Fuente y seleccione como estilo de fuente la opcioacuten negrita Haga clic en Aceptar dos veces hasta cerrar los dos cuadros de diaacutelogo

La parte maacutes importante de la foacutermula es la utilizacioacuten de una referencia absoluta de la columna ($A) y de una referencia relativa de la fila (1) Como empezoacute la seleccioacuten desde la celda A l Excel cambiaraacute automaacuteticamente la foacutershymula para cada celda Por ejemplo las celdas A2 y B2 contendraacuten la foacutermula de formato condicional = DERECHA ($A2 5) = T o t a l y las celdas A3 y B3 tenshydraacuten = DERECHA ( $ A 3 5 ) = T o t a l

110 Excel Los mejores trucos

Ahora antildeada los subtotales y veraacute coacutemo se parecen a los que se muestran en la figura 2 21

I 1 2 3 bull A B 1 C | 1 Trimestre 2 Primero 3 Primero 4 Total tiimestiel 5 Segundo 6 Segundo 7 Segundo 8 Total trimestre2 9 Tercero 10 Tercero 11 Tercero 12 Total triexclmestre3 13 Total final

Coste $1000 $2000 $3000 $1000 $1000 $1000 $3000 $1500 $1000 $2500 $5000 $11000

| 15 |

Figura 221 Datos de la hoja de caacutelculo despueacutes de haber dado formato a los subtotales

Una uacuteltima cosa que debe recordar es que si elimina los subtotales no se volveraacute a aplicar la fuente en negrita

El truco sobre el truco

El uacutenico inconveniente que puede surgir con este meacutetodo es que el Total final aparezca con el mismo estilo que los subtotales Seriacutea interesante que el Total final tuviese un formato diferente de forma que resaltase de los subtotales y pudiera ser identificado maacutes faacutecilmente Utilizando el mismo ejemplo podemos hacer esto faacutecilmente

Con los mismos datos seleccione las celdas A1B9 aseguraacutendose de que la celda Al sea la activa Entonces seleccione FormatogtFormato condicional elija la opcioacuten Foacutermula del cuadro de lista desplegable e introduzca la siguiente foacutershymula

=$A1= Total f i n a l

Haga clic en el botoacuten Formato y luego vaya a la pestantildea Fuente y seleccioshyne como estilo la fuente en negrita Seleccione tambieacuten la opcioacuten Simple del cuashydro de lista desplegable Subrayado haga clic en Aceptar y de nuevo otra vez en Aceptar para cerrar todos los cuadros de diaacutelogo

A continuacioacuten seleccione la opcioacuten DatosgtSubtotales acepte las opciones predeterminadas y haga clic en Aceptar Ahora la hoja de caacutelculo deberiacutea tener el aspecto de la que se muestra en la figura 222

Puede utilizar cualquier formato que desee para conseguir que los subtotales sean maacutes sencillos de identificar

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 111

_ _ A B l C 1 [ bull 1 Trimestre Coste

[ bull 2 Primero $1000 IM bull 3 Primero $2000

- 4 Total trimestrel $3000 I bull 5 Segundo $1000

|| | bull 6 Segundo $1000 NI bull 7 Segundo $1000

- 8 Totaiacute trimestrel $3000 [ bull 9 Tercero $1500

bull 10 Tercero $1000 NI bull 11 Tercero $2500 j - 12 Total trimestre $5000

13 Total final $11000 14

l 15 I Figura 222 Datos de la hoja de caacutelculo con un total final maacutes resaltado

BSE1 Convertir las foacutermulas y funciones de Excel a valores ^ H La mayoriacutea de las hojas de caacutelculo de Excel contienen foacutermulas Pero a ^H veces desearaacute que solamente el resultado de una foacutermula quede

almacenado en una celda en vez de dejar la foacutermula que haraacute que los resultados se modifiquen cada vez que las celdas a las que haga referencia lo hagan

Puede hacer esto manualmente de dos maneras o tambieacuten puede utilizar una macro que haga el trabajo de forma automaacutetica Veamos primeramente los meacuteshytodos manuales

Utilizar Pegado especial

Puede copiar los resultados de una foacutermula y dejarla tal cual en su ubicacioacuten original utilizando la herramienta Pegado especial de Excel Supongamos que sus foacutermulas estaacuten en las celdas A1A100 Seleccione este rango luego seleccione EdicioacutengtCopiar y entonces seleccione la celda inicial en la que quiere duplicar los resultados Ahora vaya a EdicioacutengtPegado especial y seleccione la opcioacuten Valores Haga clic en Aceptar

Utilizar Copiar aquiacute soacutelo valores

Tambieacuten puede copiar los resultados de una foacutermula y dejar las foacutermulas orishyginales en su lugar utilizando el menuacute contextual que muchos usuarios ni sishyquiera saben que existe

Seleccione el rango de foacutermulas y haga clic con el botoacuten derecho sobre el borde derecho o izquierdo de la seleccioacuten (excepto en el pequentildeo recuadro de la esquina inferior derecha que sirve para la propagacioacuten) Manteniendo pulsado el botoacuten

112 Excel Los mejores trucos

derecho del ratoacuten (o haciendo clic mientras mantiene pulsada la tecla Control en Macintosh) arrastre la seleccioacuten a su destino suelte el botoacuten del ratoacuten y selecshycione en el menuacute contextual que aparece la opcioacuten Copiar aquiacute soacutelo valores Tambieacuten puede sobrescribir las foacutermulas originales con sus propios valores Para ello seleccione el rango de foacutermulas y haga clic con el botoacuten derecho del ratoacuten sobre el borde derecho o izquierdo de la seleccioacuten (de nuevo en cualquier lugar excepto en el recuadro de propagacioacuten) Mientras mantiene pulsado el botoacuten del ratoacuten arrastre la seleccioacuten una columna hacia la derecha o hacia la izquierda y luego vuelva al rango original soltando el botoacuten del ratoacuten y seleccionando la opcioacuten Copiar aquiacute soacutelo valores tal y como se muestra en la figura 223

I B Micros oftE

bull-iquesta] Archivo

J J Arial

A1

I 1 bull 2 i 3

4 5 8 7 8 9 10 11 12 13 14 15 16 17 18

d

A

laquoce - Librolxls fuumlT Edicioacuten Ver Insertar Formato

3

2 4 8 8

10 10

I

19

Arrastre ias celdaspra

j -eacute JL $ uuml - 10 - U M

f =B1C1 B C

1 2 3 4 5

L-

Mover aquiacute

Copiar aquiacute

w HHHHHHBHBS^^^ Herramientas Datos Ventana

aacute - J

i

2 2 2 2 2

i

Copiar aquiacute soacutelo como valores

Copiar aquiacute soacutelo como formatos

Crear viacutenculo aquiacute

Crear hiperviacutenculo aquiacute

Cancelar

^ -gt - B aacute E

M m ~j$ -| ooo euro osect

D E i F

f

H o j a l l | lt |

icrtradebdquomtradetradeJ Suma=42

~ lnixi raquo _ amp X i

$1 iacute l M ^ i 100 ^ j |

bull- - - gtT A ^ i G H - 1

mdash 1

i bull i r NUM

Figura 223 Menuacute contextual de acceso raacutepido

Utilizar una macro

Si con frecuencia convierte celdas que contienen foacutermulas y funciones a sus valores resultantes puede utilizar esta simple macro

Sub SoloValores( ) Dim rRange As Range

On Error Resume Next

Set rRange = ApplicationInputBox(Prompt=Seleccione las foacutermulas Title=SOacuteLO VALORES Type=8)

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 1 t3

If rRange Is Nothing Then Exit Sub rRange = rRangeValueacute

End Sub

Para utilizar esta macro vaya a HerramientasgtMacrogtEditor de Visual Basic (AltOpcioacuten-Fll) y seleccione lnsertargtMoacutedulo para insertar un moacutedulo estaacutendar Entonces escriba el coacutedigo anterior directamente dentro de la ventana del moacutedushylo Cierra esta ventana para volver a Excel y guardar los cambios Ahora seleccioshyne HerramientasgtMacrogtMacros (Alt Opcioacuten-F8) seleccione la macro que acabamos de crear SoloValores y haga clic en el botoacuten Opciones negr i t a s para asignarle una tecla de acceso raacutepido Cuando utilice la macro apareceraacute un cuashydro de diaacutelogo que le pediraacute que seleccione el rango que contiene las foacutermulas El rango que seleccione apareceraacute automaacuteticamente como una direccioacuten dentro del cuadro de diaacutelogo y en ese momento todo lo que debe hacer es realizar la conversioacuten haciendo clic en Aceptar

Antildeadir datos automaacuteticamente a una lista de validacioacuten La funcioacuten de validacioacuten de Excel es estupenda pero hay algo clave que no es capaz de hacer (al menos sin el siguiente truco) antildeadir automaacuteticamente una nueva entrada a la lista que estaacute siendo utilizada como origen de una lista de validacioacuten

Si ha utilizado la validacioacuten ya sabraacute que es una caracteriacutestica m u y intereshysante Quizaacute es maacutes impresionante su capacidad de antildeadir una lista a cualquier celda desde la cual el usuario podraacute seleccionar un elemento iquestNo seriacutea estupenshydo si cuando introdujese un nuevo nombre en una celda con validacioacuten Excel automaacuteticamente antildeadiese dicho valor a la lista Esto es posible gracias al sishyguiente truco Supongamos que tiene un listado de nombres en el rango de celshydas Al A10 como en la figura 224

[ A 1 Carlos Martiacutenez

2 Antonio Garciacutea 3 Mana Solans 4 Sergio Velase o 5 Silvia Rodriacuteguez 6 Aacutengel Blanco 7 Esther Carrasco 8 Javier Peacuterez 9 Ana Rebollo 10 Guillermo Ortega 11 12

I 13

B I

Figura 224 Configuracioacuten del libro de Excel para la lista de validacioacuten

114 Excel Los mejores trucos

Estos nombres representan los empleados de una empresa No es de extrantildear que deban antildeadirse los nuevos empleados a dicha lista pero por ahora la uacutenica forma de hacer esto es antildeadiendo los nuevos nombres al final de la lista y luego seleccionaacutendolos en la celda con validacioacuten

Para superar esta limitacioacuten siga estos pasos En la celda Al 1 introduzca la siguiente foacutermula y coacutepiela hacia abajo hasta la fila 20 tal y como se muestra en la figura 225 (observe la referencia relativa a A10)

=SI (0 ($D$l=raquo CONTARSI ($A$1A10$D$1) ) x $D$1)

A 1 Carlos Martiacutenez 2 Antonio Garciacutea 3 Mariacutea Solaris 4 Sergio Velasco 5 Silvia Rodriacuteguez 6 Aacutengel Blanco 7 Esther Carrasco

i 8 Javier Peacuterez 9 Ana Rehollo 10 Guillermo Ortega 11 X 12 x 13 x 14 x 15 x 16 x 17 x 18 x 19 x 20 x 21

B

Figura 225 Lista junto con la foacutermula antildeadida a las filas Al 1 A20

Ahora seleccione lnsertargtNombregtDefinir y en el cuadro de texto Nombres en el libro escriba MisNombres

En el cuadro de texto Se refiere a introduzca la siguiente foacutermula tal y como se muestra en la figura 226 Luego haga clic en Agregar y posteriormente en Aceptar

=DESREF(Hoj al$A$100CONTARSI (Hoj al$A$Altgtx) 1)

Seleccione la celda DI y luego vaya a DatosgtValidacioacuten Elija la opcioacuten Lista en el cuadro de lista desplegable y en el cuadro de texto Origen escriba ^MisNombres aseguraacutendose de que la casilla de verificacioacuten Celda con lista desplegable esteacute activada

Luego vaya a la pestantildea Mensaje de error y desactive la casilla de verificacioacuten Mostrar mensaje de error si se introducen datos no vaacutelidos Entonces haga clic en Aceptar y veraacute los resultados como se muestran en la figura 227

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 115

Nombres en el libro

~J

J

Agregar

Se refiere a

| =DESREF(Ho ja 1 $A$ 1 0 0 CONTAR SI(Ho ja 1 $A $A lt raquo) 1) ~3 Figura 226 Hacer que la lista sea dinaacutemica

A 1 |Carlos Martiacutenez

iexcl 2 Antonio Garciacutea 3 Mariacutea Solans 4 Sergio Velasco 5 Silvia Rodriacuteguez 6 Aacutengel Blanco 7 Esther Carrasco 8 Javier Peacuterez 9 Ana Rebollo 10 Guillermo Ortega 11 x 12 x 13 x

1 14

B C D | ||Columna1 bull ]

1 1

E

Figura 227 La lista con la validacioacuten antildeadida a la celda DI

Haga clic con el botoacuten derecho en la pestantildea con el nombre de la hoja y selecshycione la opcioacuten Ver coacutedigo

Entonces introduzca el siguiente coacutedigo

Priacutevate Sub Worksheet_Calculate( ) On Error Resume Next

ApplicationEnableEvents = False Range(MisNombres) = Range(MisNombres)Valueacute ApplicationEnableEvents = True

On Error GoTo 0

End Sub

Cierre esta ventana para volver a Excel y guardar los cambios Ahora seleccioshyne la celda DI escriba cualquier nombre que no exista en la lista y pulse Intro Seleccione de nuevo la celda DI y observe la lista veraacute como el nombre ha sido antildeadido automaacuteticamente como puede verse en la figura 228

Si desea antildeadir maacutes de diez nombres a la lista simplemente copie la foacutermula hacia abajo a partir de la fila 20

116 Excel Los mejores trucos

I ~A B c D I uanos Martiacutenez Isitvia Rodriacuteguez ^ iquest lAntonio Garciacutea l | ^ J

I 3 Mariacutea Solans 4 Sergio Velasco 5 Silvia Rodriacuteguez

I 6 Aacutengel Blanco I 7 Esther Carrasco

8 Javier Peacuterez 9 Ana Rebollo 10 Guillermo Ortega 1 1 X

12 x 13 x 14 x

E

Figura 228 La lista despueacutes de antildeadir una nueva entrada en la celda DI

Trucar las caracteriacutesticas de fecha y hora de Excel Las caracteriacutesticas de fecha y hora de Excel son estupendas si crea hojas de caacutelculo sencillas pero pueden causar problemas para proyectos maacutes avanzados Por suerte existen formas de evitar estos problemas

Excel de forma predeterminada utiliza el sistema de fecha 1900 Esto signifishyca que la fecha 1 de enero de 1900 tiene un valor numeacuterico de 1 la fecha 2 de enero de 1900 un valor numeacuterico de 2 y asiacute sucesivamente A estos valores se les llama valores en serie en Excel y permiten utilizar fechas en los caacutelculos

Con las horas ocurre praacutecticamente lo mismo aunque Excel las t rata como fracciones decimales siendo 1 la representacioacuten de 2400 oacute 0000 y por ejemplo 0 75 la representacioacuten de las 1800 ya que esta hora representa los tres cuartos de las 24 horas del diacutea

Para ver el valor numeacuterico de una fecha y o una hora asigne el formato Geshyneral a la celda que contenga dicho valor Por ejemplo la hora y fecha 3 de julio de 2002 150000 tiene un valor numeacuterico de 37440625 siendo el nuacutemero 625 la representacioacuten de la hora y el 3 7440 el nuacutemero de serie para la fecha

Sumar maacutes allaacute de las 24 horas

Puede sumar horas utilizando la funcioacuten SUMA (o simplemente el signo +) De esta forma la funcioacuten =SUMA(A1 A5) seriacutea el resultado total de horas en caso de que dichas celdas tuviesen valores vaacutelidos Sin embargo aquiacute nos enconshytramos un gran problema a menos que se diga lo contrario Excel no sumaraacute maacutes allaacute de las 24 horas Esto es debido a que cuando una hora excede el valor de 24 horas (un valor verdadero de 1) entonces se convierte en un nuevo diacutea y comienza de nuevo Para obligar a Excel a que no pase a un nuevo diacutea despueacutes de las 24 horas puede utilizar un formato de celda de 373055 o bien un formato personalizado de [h]mmss

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 117

Puede utilizar un formato similar para obtener el total de minutos o segunshydos de una hora en particular Para obtener el nuacutemero total de minutos de la hora 2400 por ejemplo asigne el formato [m] a la celda y obtendraacute un resultashydo de 1440 Para obtener el nuacutemero total de segundos utilice un formato persoshynalizado [s] con lo que obtendraacute 86400

Caacutelculos de fecha y hora

Si desea utilizar estos valores reales de hora en otros caacutelculos tenga siempre en mente estos nuacutemeros maacutegicos

60 60

3600 60

24 24

1440 60

86400 24

minutos o 60 segundos

segundos 6 0 minutos

horas

minutos 24 horas

horas 60 minutos 60 segundos

Sabiendo esto encontraraacute mucho maacutes sencillo manipular las horas y las feshychas Eche un vistazo a los siguientes ejemplos para ver a queacute nos referimos (suponiendo que la hora este en la celda Al ) Si tiene el nuacutemero 550 y lo que realmente quiere es 530 o 530 am utilice esto

=Al24

y aplique el formato que sea necesario Si tuvieron que ser las 1730 o las 530 am utilice esto

= ( A l 2 4 ) + 0 5

Para conseguir lo contrario es decir una hora decimal a partir de una hora real utilice esto

Al24

Si una celda contiene la fecha y hora real (por ejemplo 22 de enero de 2003 1536) y soacutelo desea obtener la fecha utilice esto

=ENTERO(Al)

Para obtener solamente la hora utilice esto

=A1-ENTERO(Al)

118 Excel Los mejores trucos

o bien

= R E S I D U 0 ( A 1 1 )

y aplique el formato que sea necesario Para averiguar la diferencia entre amshybas fechas utilice esto

A1-A2

Siendo Al la fecha posterior y A2 la fecha anterior El resultado que obtendreshymos seraacute el nuacutemero de diacuteas transcurridos entre ambas fechas Para que funcione correctamente la celda que contenga este caacutelculo debe tener formato numeacuterico ya que de lo contrario obtendremos un error Si no sabe cuaacutel de las dos fechas es la maacutes antigua puede utilizar las funciones MIN y MAX Por ejemplo para aseshygurarse de que el resultado es el correcto utilice esto

= M A X ( A 1 A 2 ) - M I N ( A l A 2 )

Igualmente cuando trabaje con horas quizaacute desee contar desde una hora inicial a una hora final por ejemplo conteniendo la celda Al el valor 850 pm y la celda A2 el valor 950 am Si calcula la resta de la hora final y la hora inicial (=A2-A1) obtendraacute ya que Excel de forma predeterminada no puede trabajar con horas negativas Para solucionar este problema puede usar uno de estos dos meacutetodos

=MAX(A1A2) -MIN ( A l A2 )

o bien

A1-A 2 + IF ( A 1 gt A 2 1 )

Tambieacuten le puede decir a Excel que antildeada cualquier nuacutemero de diacuteas meses o antildeos a una fecha en particular

=FECHA(ANtilde0(A1)+valorlMES(Al)+valor2DIacuteA(Al)+valor3)

Para antildeadir un mes a una fecha almacenada en la celda A l escriba

= FECHA(ANtilde0(A1) MES (Al ) + 1 DIacuteA ( A l ) )

Excel tambieacuten ofrece algunas funciones adicionales que forman parte del pashyquete de anaacutelisis Para acceder a ellas seleccione la opcioacuten Complementos del menuacute Herramientas Luego haga clic en la casilla de verificacioacuten Herramientas para anaacutelisis para activarla y cuando se le pregunte responda que siacute para instashylarlas A partir de entonces dispondraacute de funciones adicionales tales como DIALAB FINMES NUMDESEMANA etc

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 119

Encontraraacute todas estas funciones dentro de la categoriacutea Fecha y hora del asisshytente para funciones En realidad estas funciones son faacuteciles de utilizar Lo que es difiacutecil es saber que estaacuten disponibles y coacutemo activarlas

Horas y fechas reales

Aveces las hojas de caacutelculo con datos importados (datos que se han introdushycido incorrectamente) acaba mostrando las fechas y las horas como texto y no como nuacutemeros reales Puede solventar esto faacutecilmente en Excel aumentando el ancho de las columnas un poco Para ello seleccione una columna vaya a FormatogtCeldasgtAlineacioacuten y luego cambie la alineacioacuten horizontal a General (que es el formato predeterminado para las celdas) Haga clic en Aceptar y obshyserve cuidadosamente las fechas y las horas Si no estaacuten correctamente alineashydas entonces es porque Excel no sabe que son fechas

Para arreglar esto primero copie una celda vaciacutea y luego seleccione la columshyna daacutendole formato de fecha y o hora Teniendo la columna seleccionada vaya a EdicioacutengtPegado especial seleccione las opciones Valores y Sumar Esto obliga a Excel a convertir cualquier fecha u hora en formato texto a fecha y hora real Puede que necesite cambiar el formato nuevamente Otro meacutetodo tambieacuten sencishyllo es hacer referencia a las celdas de esta forma

=Al + 0

o bien

=A11

iquestUn fallo de fechas

Excel asume de forma incorrecta que 1900 no fue un antildeo bisiesto Esto sigshynifica que el sistema interno de fechas de Excel cree que existioacute el 29 de febrero de 1900 cuando en realidad no fue asiacute Lo maacutes sorprendente es que Microsoft hizo esto de forma intencionada o al menos eso dicen Puede encontrar maacutes informashycioacuten en la direccioacuten httpsupportmicrosoftcomdefault aspxscid=kbEN-USql81370 A continuacioacuten le presentamos algunos viacutenculos interesantes con informacioacuten referente a fechas y horas

bull Coacutemo utilizar fechas y horas en Excel 2000

httpsupportmicrosoftcomdefaultaspxscid=kben-usQ2140946

bull Texto o nuacutemero convertido al formato numeacuterico no deliberado

httpsupportmicrosoftcomdefaultaspxscid=kben-usQ214233

120 Excel Los mejores trucos

bull Horas maacuteximas en Microsoft Excel

httpsupportmicrosoftcomdefault aspxscid=kben-usQ214386

bull Fechas y horas mostradas como nuacutemeros de serie cuando se visualishyzan foacutermulas

httpsupportmicrosoftcomdefault aspxscid=kben-usQ241072

bull Manipular y comprender las configuraciones del cuadro de diaacutelogo Formato de celdas

httpsupportmicrosoftcomdefaultaspxscid=kben-usa264372

bull Coacutemo utilizar fechas y horas en Microsoft Excel

httpsupportmicrosoftcomdefaultaspxscid=kben-us214094

Probablemente el t ratamiento de fechas y horas es uno de los aspectos maacutes confusos de Excel De todas formas con toda esta informacioacuten podraacute entender mejor todos los entresijos en relacioacuten a este tema

CAPIacuteTULO 3

Trucos sobre nombres Trucos 39 a 44

Probablemente la mayor ventaja de utilizar rangos con nombre es que las foacutermulas son mucho maacutes faacuteciles de leer y comprender no soacutelo para usted sino para todos aquellos que tengan que trabajar con sus hojas de caacutelculo Al utilizar rangos con nombres (una de las caracteriacutesticas maacutes faacuteciles y uacutetiles de Excel) puede seleccionar un rango de celdas y darle un hombre especiacutefico Llegados a ese punto puede hacer una referencia a ese rango utilizando el nombre en vez de su direccioacuten A pesar de que los rangos con nombre son una caracteriacutestica m u y potente podemos ir maacutes allaacute de su uso estaacutendar mediante algunos meacutetodos

Usar direcciones de datos por el nombre Aunque los nuacutemeros de celda son el fundamento de todo lo que hace Excel resulta mucho maacutes sencillo recordar nombres como por ejemplo Nuacutemero y cantidad de elementos que recordar los nuacutemeros de celdas como por ejemplo A1A100 Excel nos permite hacer esto de forma muy sencilla

Excel utiliza la misma teacutecnica para definir nombres de celdas y de rangos mediante el Cuadro de nombres que estaacute situado en la parte superior izquierda de la ventana jun to a la barra de foacutermulas Para dar nombre a una celda selecshycioacutenela escriba el nombre que desee darle en el Cuadro de nombres (veacutease figura 31) y pulse Intro Para dar nombre a un rango de celdas seleccione primero el rango escriba el nombre que desee darle en el Cuadro de nombres y luego pulse la tecla Intro

La lista desplegable que aparece a la derecha del Cuadro de nombres le permite buscar nombres de rangos y celdas que ya esteacuten almacenados Si selecciona ma-

m

124 Excel Los mejores trucos

nualmente un rango que ya tuviese un nombre apareceraacute dicho nombre en lushygar de la referencia al rango de celdas

IffM^^c^i^N^^w^MHMBPiMiMii i i lili iiiiPiiiwn

laquo^j Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana - amp X j

J J d Jraquo _J J J yen iquestgt - J - gg 2 - i i kg ktgt | j Anal - io ^ N ^ $ = = = ^ c IF _ - -^ - AT pound

MiCeldaFavorita bull pound 1000000 1 r mdash A B T ~C D | mdash =

1 [Celda muy interesantemdash -gt 1 1000000 euro1 mdash | 2

3 4 5 6 7 8 9 _J 10 11 12 13

14 |llt 4 bull w Ho ja l Ho ja2 Ho ja3 | ltraquo | j bull | f| Listo NUM 1

Figura 31 Dar el nombre MiCeldaFavorita a una celda

En las foacutermulas puede utilizar estos nombres en vez de los identificadores de celdas o rangos Si por ejemplo le dio el nombre fecha a la celda E4 podriacutea escribir la foacutermula =f echa en vez de =E4 De forma similar si creoacute el nombre cantidad para el rango de celdas A3A10 y quisiera obtener el total de los valoshyres almacenados en ellas la foacutermula podriacutea ser =SUMA ( c a n t i d a d ) en vez de = SUMA(A3A10)

Dado que las hojas de caacutelculo se van haciendo maacutes y maacutes grandes e intrincashydas resulta vital utilizar nombres de celdas y rangos para hacerlas manejables

Utilizar el mismo nombre para rangos en diferentes hojas de caacutelculo A veces resulta conveniente utilizar el mismo nombre para los datos que se encuentran en el mismo lugar pero en diferentes hojas dentro de un mismo libro Ello requiere de unos cuantos pasos adicionales para que pueda funcionar

Normalmente cuando da nombre a un rango eacuteste se asigna a nivel del libro lo que significa que un nombre se refiere a un rango especiacutefico de una hoja en particular que esteacute situada dentro de un libro Una vez asignado el nombre no

3 Trucos sobre nombres 125

puede ser utilizado otra vez para representar un rango que esteacute en otra hoja Sin embargo existe una forma de solucionar esto

Supongamos que tiene un libro que contiene tres hojas cuyos nombres son Hojal Hoja2 y Hoja3 Desea tener un rango con el nombre MiRango (podriacutea ser cualquier otro nombre) que haga referencia al rango A1A10 de la Hojal en caso de estar situados en ella al rango Al A10 de la Hoja2 en caso de estar situashydos en ella etc

Para conseguir esto active la Hojal seleccione el rango Al A10 y luego haga clic en el Cuadro de nombres como hicimos en el t ruco anterior Escriba Hojal IMiRango y luego pulse la tecla Intro Haga lo mismo para la Hoja2 y Hoja3 escribiendo Hoja2 IMiRango y Hoja3IMiRango respectivamente Ahora active cualquier hoja y haga clic en la lista desplegable del Cuadro de nombres Deberiacutea ver tan soacutelo un elemento con el nombre MiRango Seleccioacutenelo y veraacute como se selecciona directamente el rango A1A10 Ahora active cualquier otra hoja y haga lo mismo

Observaraacute como se selecciona automaacuteticamente el rango A1A10 de la hoja que tenga activa Esto es posible porque hemos introducido el nombre de la hoja seguido del s igno de admi rac ioacuten an tes del n o m b r e del r a n g o Si va a lnsertargtNombregtDefinir soacutelo veraacute un nombre aquel que se refiere a la hoja que se encuentra activa en este momento

En caso de que el nombre de la hoja incluya espacios no podraacute hacer la refeshyrencia simplemente escribiendo Hoja 1 IMiRango Tendraacute que escribir Hoja 1IMiRango es decir escribiendo comillas simples antes y despueacutes del nombre de la hoja De hecho podriacutea utilizar esas comillas simples aunque el nombre de la hoja no contuviese espacios lo cual siempre es una buena idea para usar siempre la misma nomenclatura

Tambieacuten puede utilizar un nombre de rango con referencias relativas De forshyma predeterminada los nombres de rango son absolutos pero no tiene porqueacute ser asiacute Intente lo siguiente

Seleccione la celda A l l de cualquier hoja y luego vaya a lnsertargtNombregt Definir En el cuadro de texto Nombres en el libro escriba MisNuacutemeros En el cuadro de texto Se refiere a escriba =A$1 A$10 y luego haga clic en Agregar y en Aceptar Ahora introduzca el nuacutemero 1 en la celda A l Seleccioacutenela y coloque el cursor del ratoacuten sobre el pequentildeo recuadro situado en la esquina inferior dereshycha que se utiliza para propagar Haga clic en eacutel y mientras mantiene pulsada la tecla Control arrastre el cursor hasta la celda A10

Al mantener pulsada la tecla Control mientras que se propaga una celda con un uacutenico nuacutemero Excel incrementa dicho nuacutemero de 1 en 1

Ahora introduzca un 1 en la celda Bl y propaguacuteela hasta la celda B10 pero esta vez sin mantener pulsada la tecla Control

126 Excel Los mejores trucos

Estando en la celda Al 1 introduzca la siguiente foacutermula

=SUMA(MisNuacutemeros)

En la celda Bl 1 introduzca esta foacutermula

= SUMA(Mi sNuacuteme r o s )

Deberiacutea obtener los resultados 55 y 10 respectivamente Esto es debido a que la celda A l l estaba activa cuando seleccionoacute lnsertargtNombregtDefinir y asignoacute al nombre de rango la referencia A$l A$10 que es una columna relativa y una fila absoluta

gt El signo del doacutelar ($) obliga a que cualquier rango sea absoluto

Cuando utilizamos el nombre MisNuacutemeros en una foacutermula siempre haraacute referencia a las 10 celdas que se encuentran inmediatamente por encima de la foacutermula Si escribimos la foacutermula =SUMA (MisNuacutemeros) en la celda Al 1 de cualshyquier otra hoja seguiraacute haciendo referencia a las celdas A1A10 de la hoja que estaba activa cuando creoacute el nombre del rango

Supongamos que desea simplificar la suma de las 10 celdas que hemos menshycionado anter iormente Seleccione la celda A l l de cualquier hoja Vaya a lnsertargtNombregtDefinir y escriba en el cuadro de texto de la parte superior MiSuma Luego en el cuadro de texto Se refiere a escriba lo siguiente

=SUMA(A$1A$10)

Haga clic en Agregar y luego en Aceptar Ahora introduzca el nuacutemero 1 en la celda A l seleccioacutenela de nuevo coloque el cursor del ratoacuten sobre el cuadro de propagacioacuten y mientras mantiene pulsada la tecla Control arraacutestrelo hasta la celda A10 Una vez hecho esto introduzca un 1 en la celda Bl y propaguacuteelo hasta la celda B10 pero esta vez sin mantener pulsada la tecla Control

En la celda Al 1 introduzca la siguiente foacutermula

=MiSuma

En la celda Bl 1 introduzca la foacutermula

=MiSuma

Obtendraacute los mismos resultados que la vez anterior pero esta vez sin que sea necesario utilizar la funcioacuten SUMA Mezclar las referencias absolutas que relatishyvas y juntando algunas funciones puede ser m u y uacutetil para ahorrarse gran cantishydad de trabajo

3 Trucos sobre nombres 127

QnKjQI Crear funciones personalizadas utilizando nombres M ^ V ^ w ^ l Aunque hacer referencia a datos por su nombre es muy uacutetil a veces lo seriacutea

K l f l maacutes si pudieacutesemos almacenar un valor constante o incluso una foacutermula especialmente si ha estado creando funciones personalizadas en VBA

Supongamos que tiene un impuesto del 10 que se necesita utilizar a lo larshygo de todo el libro para algunos caacutelculos En vez de tener que introducir el valor 10 (01) en cada una de las foacutermulas que aplican este impuesto podriacutea introshyducir la palabra Impuesto y que Excel supiese automaacuteticamente que debe sustishytuirlo por el valor 0 1 Veamos coacutemo puede hacerse esto

Seleccione lnsertargtNombregtDefinir En el cuadro de texto Nombres en el libro escriba Impuesto y en el cuadro de texto Se refiere a introduzca = 0 1 Luego haga clic en Aceptar

Ahora puede introducir cualquier foacutermula en una celda y en vez de antildeadir 10 como parte del caacutelculo puede sustituirlo por la palabra Impuesto Probableshymente una de las grandes ventajas de utilizar este meacutetodo es que si tiene que incrementar o de incrementar el impuesto y las foacutermulas deben reflejar dicho cambio simplemente basta con ir a lnsertargtNombregtDefinir seleccionar el nomshybre Impuesto y luego modificarlo convenientemente

Para dar un paso maacutes allaacute en este concepto puede utilizar las foacutermulas con los rangos definidos en Se refiere a en vez de utilizar direcciones de celdas o valores constantes Supongamos que desea crear un nombre que cuando se inshytroduzca en una celda devuelva automaacuteticamente la SUMA de las 10 celdas que se encuentran por encima Seleccione la celda Al 1 de cualquier hoja y luego vaya a lnsertargtNombregtDefinir En el cuadro de texto Nombres en el libro escriba Toshytal y en el cuadro de texto Se refiere a escriba lo siguiente

=SUMA(A1A10)

Luego haga clic en Agregar y en Aceptar Introduzca cualesquiera 10 nuacutemeros en cualquier columna empezando en la

fila 1 Ahora vaya a la fila 11 de la misma columna y escriba lo siguiente

=Total

El nombre Total automaacuteticamente devolveraacute la SUMA de los 10 valores que haya introducido en el rango A1A10 Si desea crear una foacutermula similar a la anterior pero que no esteacute restringida a solamente 10 celdas sino que haga refeshyrencia a todas las celdas que se encuentren por encima de la fila en cuestioacuten siga estos pasos

Seleccione la celda BU y luego vaya a lnsertargtNombregtDefinir Seleccione el nombre Total

128 Excel Los mejores trucos

Vaya al cuadro de texto Se refiere a que deberiacutea contener el tex to =SUMA (Bl B l 0 ) Esto le permite crear foacutermulas con nombre En otras palabras como no hizo referencias absolutas para columna en el nombre original Total siempre haraacute referencia a la columna en la que se utilice el nombre

Ahora haga clic en el cuadro de texto Se refiere a y cambie la foacutermula por la siguiente

=SUMA(B$1B10)

Haga clic en Agregar y luego en Aceptar

Seleccione cualquier fila de cualquier columna que no sea la fila 1 e introduzshyca = T o t a l con lo que obtendraacute automaacuteticamente la SUMA de todas las celdas que se encuentran por encima independientemente de cuantas filas haya Esto se debe a que ha vinculado la fila nuacutemero 1 utilizando una referencia absoluta dejando la referencia a la celda B10 como relativa lo que significa que siempre terminaraacute en la celda inmediatamente superior a donde se introduzca la foacutermula = T o t a l

Combinando este truco con una de las caracteriacutesticas estaacutendar (aunque poco conocida) de Excel el meacutetodo de la interseccioacuten es posible crear funciones de buacutesqueda sofisticadas Si no conoce coacutemo funciona el meacutetodo de la interseccioacuten a continuacioacuten mostramos un pequentildeo ejemplo sobre su uso

En la celda A l introduzca el encabezado Nombre en la celda Bl Pagar y en la celda Cl Tiacutetulo Introduzca Juan en la celda A2 y Antonio en la celda A3 Introduzca 10 en la celda B2 y 20 en la celda B3 Introduzca Sr en la celda C2 y Dr en la celda C3 Ahora seleccione el rango A1C3 y luego vaya a lnsertargtNombregtCrear Aseguacuterese de que estaacuten activadas las casillas de verificashycioacuten Fila superior y Columna izquierda y luego haga clic en Aceptar

Seleccione cualquier celda que esteacute fuera de ese rango e introduzca = A n t o shyn i o T iacute t u l o Deberiacutea obtener el tiacutetulo correspondiente a la persona que ha inshytroducido

El espacio entre las palabras Antonio y Tiacutetulo es importante ya que r es la forma por la que Excel entiende que se trata de un operador de ^ interseccioacuten

Basaacutendonos en este concepto podemos combinar esta caracteriacutestica con las de foacutermulas con nombre de Excel para conseguir no soacutelo que las hojas de caacutelculo sean maacutes sencillas utilizar sino tambieacuten mucho maacutes sencillas de leer y comprenshyder Supongamos que tiene una tabla configurada en una hoja de caacutelculo de forshyma m u y similar a la que se muestra en la figura 32 y que estaacute utilizando esa tabla para crear los nombres en Excel

3 Trucos sobre nombres 129

mmmmmmmmmmmmmm sj Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana l - S x

j JS y 3 J J A ^ a aacute -iquest iquestgt - laquoo - -- a pound - uuml ti M 1 Arial raquo 10 ^ [ Ntilde ] ^ S E M M -g S| 000 euro o8 1^ _iquest 3raquo A sect1

A1 bull ^ Nombre empleado B

Nombre empleado Carlos Martiacutenez Antonio Garciacutea Mariacutea Solans Sergio Velasco Silvia Rodriacuteguez Aacutengel Blanco Esther Carrasco Javier Peacuterez Ana Rebollo iexclGuillermo Ortega

Tarifa Hora Puesto 1725 Jefe de proyecto 124 Consultor Juacutenior

12 Analista seacutenior 1325 Comercial

98 Administrativo 1185 Programador seacutenior 1545 Representante 181 Jefe de proyecto

14 Coordinador 143 Consultor seacutenior

F-_T

BSCEiSSl- Crear nombres en

Iiexcl7 Ma superior]

W Columna igquierda

f Riacutea inferior

V Columna iquesterecha

j Aceptar sect Cancelar

J

J

bull M H o j a l ^ H o j a 2 H p j a 3 J JltJ 5uma=i384

lf

Figura 32 La tabla y el cuadro de diaacutelogo de Crear nombres

Una vez que cree los nombres para la tabla observaraacute que Excel coloca automaacuteticamente un siacutembolo de subrayado en los espacios situados entre dos o maacutes palabras Esto es debido a que los nombres de los rangos no pueden contener espacios Seleccione lnsertargtNombregtDefinir introduzca TarifaHoraAntonio en el cuadro de texto Nombres en el libro y =Antonio_Garciacutea Tarifa_Hora Luego haga clic en Agregar tal y como se muestra en la figura 33

Ahora en cualquier celda fuera de la tabla introduzca lo siguiente

=TarifaHoraAntonio

La tarifa por hora para Antonio se devolveraacute automaacuteticamente Quizaacute desee experimentar ahora con las intersecciones para ver coacutemo funcioshy

nan de forma oacuteptima en sus proyectos

Crear rangos que se expandan y contraigan Si constantemente necesita actualizar y antildeadir informacioacuten a los datos o si trabaja con graacuteficos y tablas dinaacutemicas desearaacute poder crear rangos dinaacutemicos con nombre que se expandan y contraigan en funcioacuten de los datos

Para entender coacutemo funcionan los rangos con nombre deberiacutea en primer lugar familiarizarse con la funcioacuten DESREF (si es que no lo ha hecho todaviacutea) una de las funciones de buacutesqueda de referencia de Excel

130 Excel Los mejores trucos

^sect] Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana

J J d Jgt _JI J JL iquest iquest - J ^ - J -i - 81

bull bull bull 2iacuteJ ^ 1 000 euro B12 - f

gtli iacute i M bull

B D Nombre empleado Tarifa iquestpound

Carlos Martiacutenez

Antonio Garciacutea

Mariacutea Solans

Sergio Velasco

Silvia Rodriacuteguez

Aacutengel Blanco

Esther Carrasco

Javier Peacuterez

Ana Rebollo

Guillermo Ortega

iSi Nombres en el libro

TarifaHoraAntonio

Guillermo_Ortega Javier_Peacuterez Mariacutea_Solans Nombre_empleado Puesto 5ergio_Velasco 5ilvia_Rodriguez Tarifa Hora

Agregar

|=Antonio_Garciacutea Tarifa_Hora

M i bull bull l H o j a l H o j a 2 H o j a 3 llaquol ir

Figura 33 Buacutesqueda de nombre creada

Comenzaremos con el rango dinaacutemico con nombre maacutes simple aquel que se expandiraacute hacia abajo una uacutenica columna pero solamente tanto como entradas contenga la columna Por ejemplo se la columna A contiene 10 filas continuas de datos el rango dinaacutemico con nombre incorporaraacute el rango Al A10 Siga estos pasos para crear dicho rango

Vaya a lnsertargtNombregtDefinir introduzca MiRango en el cuadro de texto Nombres en el libro y en el cuadro de texto Se refiere a introduzca lo siguiente

=DESREF($A$100CONTARA($A$1$A$10 0)1)

Ahora haga clic en Agregar y luego en Aceptar

Cuando defina el rango para CONTARA evite la tentacioacuten de incluir toda la columna de datos para asiacute no obligar a dicha funcioacuten a contar

^ miles de celdas innecesarias

Teniendo ahora los datos en la columna A este rango con nombre incorporashyraacute todos los datos que se encuentren en filas contiguas comenzando por la celda A l Si desea comprobar el rango dinaacutemico con nombre puede hacerlo de diferenshytes formas

Por desgracia los rangos dinaacutemicos con nombre no estaacuten accesibles a traveacutes del Cuadro de nombres estaacutendar de la parte superior izquierda de la ventana de

3 Trucos sobre nombres 131

Excel Pero siacute puede hacer clic en dicho cuadro escribir el nombre MiRango y pulsar Intro Excel seleccionaraacute automaacuteticamente el rango Por supuesto t amshybieacuten puede utilizar el cuadro de diaacutelogo Ir a yendo a Edicioacutengtlr a (ControlCo-mando-I) escribiendo MiRango en el cuadro de texto y haciendo clic en Aceptar

El rango dinaacutemico con nombre que acaba de crear en el ejemplo anterior conshytiene la funcioacuten CONTARA como paraacutemetro de la funcioacuten DESREF

Recuerde que la funcioacuten CONTARA contaraacute todas las celdas que no esteacuten vaciacuteas Tenga en cuenta que esto tambieacuten incluye las foacutermulas que dichas celdas contenga que puedan estar devolviendo un texto vaciacuteo ()

Si tiene una lista que soacutelo contiene datos numeacutericos y al final de ella desea almacenar un texto pero no quiere que dicho texto quede incluido como parte del rango dinaacutemico con nombre puede reemplazar la funcioacuten CONTARA con la funcioacuten estaacutendar de Excel CONTAR funcioacuten que soacutelo cuenta las celdas que conshytienen datos numeacutericos

El siguiente ejemplo utilizaremos el rango dinaacutemico con nombre para definir una tabla de datos que deseamos sea dinaacutemica Para ello escriba la siguiente funcioacuten en el cuadro de texto Se refiere a

=DESREF($A$100CONTARA($A$1$A$10 0)CONTARA($1$1))

Aquiacute el rango dinaacutemico con nombre se expandiraacute hacia abajo tantas entradas como datos haya que la columna A y a lo largo de tantas filas como encabezados haya en la fila 1 Si estaacute seguro de que el nuacutemero de columnas para la tabla se va a mantener estable puede reemplazar la segunda funcioacuten CONTARA por un nuacuteshymero fijo como pueda ser 10

El uacutenico problema al utilizar rangos dinaacutemicos con nombre para una tabla de datos es que presupone que la columna A estableceraacute la longitud maacutexima para la tabla En la mayoriacutea de los casos esto seraacute cierto pero a veces puede que la columna maacutes larga sea otra diferente Para evitar este problema puede utilizar la funcioacuten MAX de Excel que devuelve el nuacutemero maacutes alto en un rango de celshydas Como ejemplo configure una tabla de forma similar a la que se muestra en la figura 34

Utilice la fila 1 para almacenar un nuacutemero de las funciones CONTARA que estaacuten haciendo referencia a la columna y por tanto devolviendo el nuacutemero de entradas en cada columna Utilice la funcioacuten MAX para el argumento alto de la funcioacuten DESREF Esto asegura que el rango dinaacutemico con nombre para la tabla siempre se expandiraacute tanto como la columna maacutes larga Por supuesto puede ocultar la fila 1 ya que el usuario no necesita verla

132 Excel Los mejores trucos

Figura 34 Tabla dinaacutemica de datos y el cuadro de diaacutelogo Definir nombre

En todos estos ejemplos hemos supuesto que los datos siempre estaraacuten en filas contiguas sin celdas en blanco entre medias Aunque este es el meacutetodo coshyrrecto para configurar una lista a una tabla de datos a veces no se tiene control sobre esto En el siguiente ejemplo el listado de nuacutemeros de la columna A tamshybieacuten contiene celdas en blanco Esto significa que si intenta utilizar las funciones CONTAR o CONTARA el rango dinaacutemico con nombre no funcionaraacute correctashymente como puede verse en la figura 35

En este caso aunque el uacuteltimo nuacutemero en el rango estaacute en la fila 10 el rango dinaacutemico se estaacute expandiendo solamente hasta la fila 6 Esto es debido a que hemos utilizado la funcioacuten CONTAR para contara desde la celda Al a la celda Al 00 Sin embargo soacutelo hay 6 datos numeacutericos en la lista por lo que el rango se expande solamente 6 filas

Para evitar este problema utilizaremos la funcioacuten de Excel COINCIDIR Esta funcioacuten se utiliza para devolver la posicioacuten relativa de un elemento en una mashytriz de aquel que coincida con un valor especiacutefico en un orden especiacutefico Por ejemplo se utiliza esta funcioacuten COINCIDIR

=COINCIDIR(6$A$1$A$1000)

en el mismo conjunto de nuacutemeros que mostraacutebamos de la figura 35 la funshycioacuten COINCIDIR devolveraacute el nuacutemero 10 que representa la fila 10 de la columna

3 Trucos sobre nombres 133

A Ha devuelto 10 porque le hemos dicho a la funcioacuten que encuentre el nuacutemero 6 en el rango Al A100

Agregar |

Qiminar

Se refiere a

=DE5REF(Hoja2$A$l00CONTAR(Hoja2$A$l $A$100) 1)| 31

llt i bull bull l lVHoa l Ho ia2 HQja3Z LiacuteL JID Figura 35 Un rango de nuacutemeros y cuadro de diaacutelogo Definir nombre

Obviamente cuando utilicemos esta funcioacuten como parte de un rango dinaacutemishyco con nombre lo maacutes probable es que no conozcamos el uacuteltimo nuacutemero del rango Por tanto necesitamos decirle a la funcioacuten COINCIDIR que intente buscar un nuacutemero exageradamente alto en el rango que nunca podriacutea existir y camshybiar el uacuteltimo argumento de la funcioacuten por 1

El ejemplo anterior le dijimos a la funcioacuten COINCIDIR que encontrarse el nuacuteshymero exacto 6 ni maacutes ni menos Ahora si reemplazamos el 0 por 1 en el uacuteltimo argumento de la funcioacuten estamos indicaacutendole que busque el valor maacutes alto que sea menor o igual que el valor indicado

Para ello utilice esta foacutermula

=COINCIDIR(1E+306$A$1$A$1001)

Para crear un rango dinaacutemico con nombre que se expanda hasta la uacuteltima fila que contenga un nuacutemero (independientemente de que haya celdas entre medias) escriba esta foacutermula en el cuadro de texto Se refiere a del cuadro de diaacutelogo Definir nombre tal y como se muestra en la figura 36

=DESREF(Hoja2$A$l00COINCIDIR(lE+3 0 6 H o j a 2 $ A $ l $ A $ 1 0 0 l ) 1 )

El siguiente tipo loacutegico de rango dinaacutemico con nombre que podriacutean surgir de esto es aquel que se expanda hasta la uacuteltima entrada de texto independienteshymente de que haya celdas en blanco en la lista o en la tabla

134 Excel Los mejores trucos

uumlj

Aceptar j

O Agregar

9 10 11 12 13 14 15 16 17 18 19 20 4 4 bull H Hojal H o j a 2 H o j a 3

J

Se refiere a

j =DESREF(Hoja2 $A$ 1 0 0 COINCIDIRAacute E+306 Ho ja2$A$1 $A$ 100 1) 1 )| 5

X iexclD Figura 36 Un rango dinaacutemico que se extiende hasta la uacuteltima entrada numeacuterica

Para hacer esto reemplace la funcioacuten COINCIDIR con la siguiente

C O I N C I D I R ( $ A $ 1 $ A $ 1 0 0 - 1 )

Esto siempre devolveraacute el nuacutemero de fila de la uacuteltima entrada de texto situada en el rango $A$1$A$100

Ahora que ya sabe coacutemo hacer esto para entradas numeacutericas y de texto es loacutegico que necesite definir de alguna forma un rango dinaacutemico con nombre que sea capaz de buscar maacutes allaacute de las celdas en blanco en una lista que contenga tanto texto como nuacutemeros

Para poder hacer esto primeramente insertados celdas en blanco por encima de la lista seleccionando las filas 1 y 2 y luego seleccionando la opcioacuten lnsertargtFila En la primera fila antildeada esta funcioacuten

=MAX(COINCIDIR($A$3$A$100-1)COINCIDIR(1E+306$A$3$A$1001))

En la celda inmediatamente por debajo introduzca el nuacutemero 1 La celda por debajo de ella debe contener un encabezado de texto para la lista Hemos antildeadido el nuacutemero 1 de forma que la segunda funcioacuten COINCIDIR no devuelva N A cuando no haya nuacutemeros en el rango A3A100 Esta segunda funcioacuten siempre encontraraacute el texto porque disponemos de un encabezado

Deacutele el nombre FilaMax a la celda Al y luego seleccione lnsertargtNombregt Definir De un nombre al rango dinaacutemico como por ejemplo MiLista y en el cuadro de texto Se refiere a introduzca los siguiente tal y como se muestra en la figura 37

= DESREF(Hoj a2$A$ 300Fi1aMax1)

3 Trucos sobre nombres 135

- ^ j Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana

bullJal -1 _ fi x

A3

plusmnpound 12

pound =MAX(CQINCIDIR( $A$3$A$100-1) COINCIDIR(1 E+3QG$A$3$A$100 1))

1

Mi Listn

Daniel

Carlos

100iexcl

iexclJavier

Fernando

500

antos

iexclJorge

300

Definir nombre

Nombres en el libro 3 4 5 6 7 8 9 10 11 12 13 14 15 _ _ _ _ _ 16 17 18 19 20

llt lt bull bulliXHojal gtHoja2( Hoja3

Sentildealar

Aceptar i

Z3 Agregar

J

=DE5REF(Ho ja2 $ A $3 0 0 FilaMax 1) 3

H T

Figura 37 Lista dinaacutemica con entradas numeacutericas y de texto conteniendo celdas en blanco

La siguiente lista muestra otros tipos de rangos dinaacutemicos con nombre que puede encontrar uacutetiles Para todos estos ejemplos necesitaraacute rellenar la columna A con una mezcla de entradas de texto y numeacutericas Para ello seleccione la opshycioacuten lnsertargtNombregtDefinir introduzca en el cuadro de texto Nombres en el libro cualquier palabra (por ejemplo MiRango) La uacutenica parte que va a cambiar es la foacutermula que introduciremos en el cuadro de texto Se refiere a

Expandir tantas filas como entradas numeacutericas haya

En el cuadro de texto Se refiere a introduzca los siguiente

= D E S R E F ( $ A $ 1 0 0 C O N T A R ( $ A $ A ) 1 )

Expandir tantas filas como entradas de texto y numeacutericas haya

En el cuadro de texto Se refiere a introduzca los siguiente

=DESREF($A$100CONTARA($A$A)1)

Expandir hasta la uacuteltima entrada numeacuterica

En el cuadro de texto Se refiere a introduzca los siguiente = DESREF($A$100COINCIDIR(1E + 3 06$A$A) )

136 Excel Los mejores trucos

Si espera un nuacutemero mayor que 1E+306 (un 1 con 306 ceros) caacutembielo por un nuacutemero mayor auacuten

Expandir hasta la uacuteltima entrada de texto

En el cuadro de texto Se refiere a introduzca los siguiente

=DESREF($A$100COINCIDIR($A$A-1))

Expandir basaacutendose en el valor de otra celda

Introduzca el nuacutemero 10 en la celda Bl y luego en el cuadro de texto Se refiere a introduzca los siguiente

=DESREF($A$100$B$11)

Hora cambie el nuacutemero en la celda Bl y el rango cambiaraacute de acuerdo a ello

Expandir una fila por cada mes

En el cuadro de texto Se refiere a introduzca los siguiente

=DESREF($A$100MES(HOY())1)

Expandir una fila por cada semana

En el cuadro de texto Se refiere a introduzca los siguiente

=DESREF($A$100NUMDESEMANA(HOY())1)

Esta uacuteltima requiere que el paquete de anaacutelisis esteacute instalado Para ello debe seleccionarlo en la opcioacuten HerramientasgtComplementos

Anidar rangos dinaacutemicos para obtener una flexibilidad maacutexima Un rango dinaacutemico con nombre que reside dentro de otro rango dinaacutemico con nombre puede ser muy uacutetil cuando tengamos que trabajan con grandes listas de nombres por ejemplo

Por ejemplo es posible crear un rango con nombre llamado NombresJ que se refiere a todos los nombres de una lista ordenada que comienzan con la letra J Comenzamos con la lista de nombres de la columna A como la que se muestra en la figura 38 en donde la celda Al es un encabezado y la lista estaacute ordenada Seleccione lnsertargtNombregtDefinir En el cuadro de texto Nombres en el libro introduzca Nombres y en el cuadro de texto Se refiere a introduzca la siguiente foacutermula

=DESREF($A$200CONTARA($A$2$A$1000)1)

3 Trucos sobre nombres 137

Haga clic en Agregar Nuevamente haga clic en el cuadro de texto Nombres en el libro e introduzca NombresJ (o podriacutea ser cualquier otra letra que desee) y luego haga clic en Se refiere a e introduzca lo siguiente

=DESREF(INDIRECTO(DIRECCIOacuteN(COINCIDIR(raquoJ CONTARSI(NombresraquoJn)1)

Nombres0)+11))00

donde J es el criterio de coincidencia que deseamos en este caso es decir aquellos nombres que comienzan por J Ahora haga clic en Agregar Cuando haga clic en el cuadro de texto Se refiere a en el que se encuentra la funcioacuten todos los nombres que comienzan por la letra J tienen una marca a su alrededor tal y como se muestra en la figura 38

Nombres en el libro

NombresJ

A

Nombres

Al ex

Ana

David

Guadalupe

paime laquoJavier

8 laquoJuan

9 Caiacuteda

10 Luis

11 Mar

12 Marta

13 Sandra

14 Santos

1 5 S o n i a - mdash bull bull bull bull - - bull bull - - bull bullbullbull -

16 Tama

17

llt 4 bull H H o j a l Hoja2 Hoja3

JSi

-3 Agregar

EJMnar

J

| S=DE5REF(INDIRECTO(DIRECCION(COINCIDIRf J Nombres 0)+1 1)) 0 0 ^J

J_ Figura 38 Un rango dinaacutemico con nombre con otro rango dinaacutemico dentro de eacutel

Si lo desea puede crear un rango con nombre para cada letra del alfabeto pero quizaacute una opcioacuten mejor seriacutea que el rango con nombre cambiase en funcioacuten de la letra que escribieacutesemos en una celda de la hoja Para poder hacer esto simshyplemente introduzca cualquier letra en una celda que no esteacute utilizando y luego deacutele el nombre Letra a dicha celda Ahora seleccione DatosgtValidacioacuten y en el cuadro de lista desplegable seleccione la opcioacuten Lista En el cuadro de texto Origen introduzca ABC es decir cada una de las 26 letras del abecedario como puede verse la figura 39 Al terminar haga clic en Aceptar

Seleccione lnsertargtNombregtDefinir e introduzca Nombres en el cuadro de texto Nombres en el libro Luego introduzca la siguiente foacutermula en el cuadro de texto Se refiere a y haga clic en Agregar

= DESREF($A$ 200CONTARA($A$ 2$A$10 0 0) 1)

Haga clic de nuevo en el cuadro de texto Nombres en el libro y escriba NombresDeLetra Luego en el cuadro de texto Se refiere a introduzca la si-

138 Excel Los mejores trucos

guiente foacutermula y cuando haya terminado haga clic en Agregar y luego en Aceptar

=DESREF(INDIRECTO(DIRECCIOacuteN(COINCIDIR(LetraNombres0)+11))00 CONTARSI(NombresLetra)1)

El resultado deberiacutea ser como el de la figura 310

fflfffflfflWTWff i Configuracioacuten i J Mensaje entrante ] Mensaje de error ]

Criterio de validacioacuten

Permitir

iexclLista

Datos

1 Origen

JAjBjCjDEjFG

bull j Jv Omitir blancos

P Celda con lista desplegable

13 HIJjKLM^J

r Aplicar estos cambios a otras celdas con la misma configuracioacuten

Aceptar j Cancelar

Figura 39 Una lista de validacioacuten de letras seguidas de los caracteres comodines

^|] Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana l d J

- f l X

4) w ~

A9 pound L

Definir nombreacute

Nombres en el libro

NombresDeLetra

Letra Nombres

A

1 [Nombres

2 Al ex

3 Ana

4 David

5 Guadalupe

6 Jaime

7 Javier

8 Juan

9 la ida

10 l u i s

11 Maiacute

12 Marta

13 Sandra

14 Santos

15 Sonia

16 Tania

17 ~~

H i bull wHoial Hoja2Hoja3

Sentildealar

Aceptar

U Agregar

Eliminar

J Se refiere a

| hDESREF(INDIRECTO(DIRECCION(COINCIDIR(Letra Nombres 0)+1 1))0C iexclj

bull i r

Figura 310 Un rango dinaacutemico con nombre controlado por el contenido de otra celda

3 Trucos sobre nombres 139

No tiene que reescribir las foacutermulas desde cero para los rangos S^ dinaacutemicos con nombre En vez de ello mientras esteacute trabajando con el

cuadro de diaacutelogo Definir nombre puede hacer clic en cualquier rango dinaacutemico de nombre sobrescribir el nombre que aparece en el cuadro de texto Nombres en el libro ir al cuadro de texto Se refiere a modificarlo de forma adecuada y luego hacer clic en Agregar Esto no reemplazaraacute el rango dinaacutemico de nombres original sino que antildeadiraacute uno totalmente nuevo que tendraacute el nuevo nombre que le haya dado

Identificar rangos con nombre en una hoja de caacutelculo Excel permite a los usuarios asociar nombres representativos a rangos especiacuteficos dentro de las hojas de caacutelculo A medida que el nuacutemero de diferentes rangos con nombre crezca en la hoja de caacutelculo necesitaraacute algunas herramientas para poder identificar las aacutereas que son referenciados por dichos rangos con nombre

A continuacioacuten veamos un par de meacutetodos raacutepidos que puede utilizar para identificar las aacutereas que son referenciadas por cada rango con nombre

Meacutetodo 1

Un meacutetodo muy raacutepido para identificar rangos referenciados es seleccionando la opcioacuten lnsertargtNombregtPegar o pulsar la tecla F3 En el cuadro de diaacutelogo Pegar nombre haga clic en Aceptar como se muestra en la figura 311 y Excel mostraraacute una lista de todos los nombres en filas comenzando por la celda activa y mostrando los nombres que corresponden a cada referencia en la otra columshyna Esto le proporcionaraacute un listado de todos los nombres del libro de Excel actishyvo Aunque esto pueda ser m u y uacutetil para identificar rangos especiacuteficos todaviacutea requiere que tenga que seleccionar manualmente un rango con nombre especiacutefishyco o quizaacute utilizar el cuadro de diaacutelogo Ira Sin embargo una vez que tenga la lista de rangos con nombre puede eliminar todas las direcciones de celdas referenciadas que se corresponden con los nombres y reemplazarlas con una funcioacuten de viacutenculo m u y simple

Todo esto le permitiraacute crear una lista de todos los rangos con nombre Hacienshydo clic en cualquier elemento de dicha lista le llevaraacute automaacuteticamente al rango especificado Por ejemplo suponiendo que la lista de nombres se encuentre la columna A comenzando por la celda A l Situacuteese en la celda B l e introduzca esta foacutermula

=HIPERVINCULO([Librolxls]ampA1A1)

140 Excel Los mejores trucos

^ I I H H I H I IacuteSjiexcl ArcNvo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana ff x

bull J U Iacute J Iacute J J a ^ a amp - y -gt B ^ Z ^ I Uuml I Uuml bull- |

A r i a l - 10 - N iquestT S raquo S 3 ^ iquestsect 000 euro gsect pE L_ - ^ amp I

A1 ltr fx Diacuteas

B

JL 2 I i AJ JJ 7 V _ j

Si J2J

11-15 i Si RA N lt

[Diacuteas |=Hoja1$DJ2$D$24

Meses =Hoja1$F$6$K$9

Miembros =Hoja1$C$4$C$27

Mis totales =Hoja1$G$12$G31

__D __ E _ J F

Pegar nombre [Piacuteas Meses Miembros Misjtotales

Pegar lista I

-m

zl J Cancelar

bull w H o j a l H o iexcl t oacute H o 3 3 l iacuteJ l NUM

_G__Tiacute

gtir

Figura 311 El cuadro de diaacutelogo Pegar nombre

Copie esta foacutermula hacia abajo tantas filas como sean necesarias y reemplace Libro 1 por el nombre real del libro

aacute] Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana

J J J Iacute J J Iacute ^ Uuml j i ^ - i ^ iacute - iacute i k39

Arial - 10 - N X S ^ M ^ ^ ~sect 000 euro Ip _ ~ iquestraquo N20 ^ pound

- f l X

VZl

M

s $ (gt CD

()

MI

O Q) m

iquestMiembros

M i bull M j V H o j a l H o j a 2 Hoja3

Listo til bull i r

Figura 312 Zoom de la hoja que proporciona los nombres de rangos para su faacutecil identificacioacuten

3 Trucos sobre nombres 141

Meacutetodo 2

Este meacutetodo es m u y sencillo pero raramente conocido Todo lo que tiene que hacer es establecer el zoom de la hoja Excel a un nuacutemero inferior a 40 (es decir 39 o menos) Observaraacute como se muestran todos los nombres de rangos en la hoja para su faacutecil identificacioacuten tal y como se muestra en la figura 312

CAPIacuteTULO 4

Trucos sobre tablas dinaacutemicas Trucos 45 a 49

Las tablas dinaacutemicas son uno de los atractivos maacutes potentes de Excel a pesar de que mucha gente no sabe queacute es lo que pueden hacer Las tablas dinaacutemicas muestran y extraen gran variedad de informacioacuten a partir de una tabla de datos que se encuentra en Microsoft Excel o bien en otro tipo de base de datos compashytible Las tablas dinaacutemicas se utilizan con frecuencia para extraer informacioacuten estadiacutestica a partir de datos almacenados en serie Luego podraacute desplazarse por los diferentes campos de la tabla dinaacutemica para ver sus datos desde perspectivas diferentes

Los datos en serie para una tabla dinaacutemica deben estar organizados en vv un formato claacutesico de tabla La fila uno debe contener los encabezados

w y los datos relacionados debajo de ellos Los datos no deberiacutean contener filas o columnas en blanco Incluso aunque no tenga planeado utilizar tablas dinaacutemicas mantener los datos en este formato haraacute posible que otras personas puedan analizarlo utilizando dicha caracteriacutestica

Tablas dinaacutemicas un truco en siacute mismas Las tablas dinaacutemicas son una de las caracteriacutesticas maacutes potentes e impresionantes de Excel un truco muy ingenioso en siacute mismo y que requiere cierta experimentacioacuten para poder comprender

Utilizaremos con frecuencia las tablas dinaacutemicas cuando desarrollemos hojas de caacutelculo para nuestros clientes Una vez que un cliente vea una tabla dinaacutemica a partir de entonces siempre nos pediraacute que si le podemos crear una para ellos

144 Excel Los mejores trucos

mismos Aunque cualquiera puede crear una tabla dinaacutemica por desgracia m u shychas personas tienen miedo de hacerlo porque ven que puede ser m u y complejo De hecho cuando utilice una tabla dinaacutemica por primera vez el proceso puede parecer algo engorroso Por ello estaacute claro que es necesaria cierta persistencia Descubriraacute que esa persistencia mereceraacute la pena una vez que experimente la mejor caracteriacutestica de las tablas dinaacutemicas su capacidad de ser manipulada mediante prueba y error e inmediatamente mostrar los resultados de dicha mashynipulacioacuten Si el resultado que obtiene no es el esperado puede utilizar la funshycioacuten Deshacer de Excel e intentar otra cosa nueva Haga lo que haga nunca estaraacute cambiando la estructura de la tabla original por lo que no tendraacute que preocuparse

iquestPor queacute se les llama tablas dinaacutemicas

Las tablas dinaacutemicas le permiten organizar los datos utilizando teacutecnicas de arrastrar y colocar y luego obtener los resultados de forma inmediata Las tablas dinaacutemicas son interactivas una vez que la tabla esteacute completa podraacute ver faacutecilshymente coacutemo la informacioacuten se ve afectada cuando mueve los datos dinaacutemicamente Esto resultaraacute m u y claro una vez que pruebe las tablas dinaacutemicas

Incluso para los desabolladores experimentados de tablas dinaacutemicas un eleshymento de prueba y error siempre es necesario a la hora de producir los resultados deseados i Al final se encontraraacute a siacute mismo manejando dinaacutemicamente su tabla con frecuencia

iquestPara queacute cosas resultan buenas las tablas dinaacutemicas

Las tablas dinaacutemicas pueden producir informacioacuten de resumen para una tashybla con datos Imagine que tiene una tabla con informacioacuten que contiene nomshybres direcciones edades puestos nuacutemeros de teleacutefono y coacutedigos postales Con una tabla dinaacutemica podraacute encontrar faacutecil y raacutepidamente cosas como las que le mostramos a continuacioacuten

bull Cuaacutentas personas tienen el mismo nombre

bull Cuaacutentas personas comparten el mismo coacutedigo postal

bull Cuaacutentas personas ostentan el mismo puesto

Tambieacuten podriacutea obtener informacioacuten como esta

bull Un listado con las personas que tienen el mismo puesto

bull Un listado de aquellas direcciones con el mismo coacutedigo postal

4 Trucos sobre tablas dinaacutemicas 145

Si necesita separar segmentar y hacer informes de los datos las tablas dinaacuteshymicas se convertiraacuten en una herramienta critica para su trabajo

iquestPor queacute utilizar tablas dinaacutemicas cuando las hojas de caacutelculo ya ofrecen muchas funciones de anaacutelisis

Quizaacute la ventaja mayor de utilizar tablas dinaacutemicas es el hecho de que puede generar y extraer informacioacuten m u y uacutetil a partir de una tabla m u y grande de datos en cuestioacuten de minutos y sin tener que utilizar gran cantidad de memoria del ordenador En muchos casos podriacutea obtener los mismos resultados de una tabla utilizando las funciones incorporadas de Excel pero le llevariacutea maacutes tiempo y utilizar maacutes memoria

Otra de las ventajas de utilizar tablas dinaacutemicas es que si desea tener alguna informacioacuten nueva simplemente basta con arrastrar y colocar Ademaacutes puede optar por tener la informacioacuten actualizada cada vez que abre el libro o hace clic en Actualizar

Los graacuteficos dinaacutemicos como extensioacuten de las tablas dinaacutemicas

Microsoft ya introdujo los graacuteficos dinaacutemicos en Excel 2000 La tabla que genera a traveacutes del Asistente para tablas dinaacutemicas tambieacuten produce un graacutefico dinaacutemico (o maacutes bien una tabla dinaacutemica y un informe de graacutefico dinaacutemico) Cuando crea una tabla dinaacutemica tambieacuten puede crear un graacutefico dinaacutemico al mismo tiempo sin ninguacuten esfuerzo extraordinario Los graacuteficos dinaacutemicos le permiten crear graacuteficos interactivos que antes eran imposibles a menos que se utilizara VBA o los controles de Excel

Veremos maacutes detalle el Asistente para graacuteficos dinaacutemicos maacutes adelante en este mismo capiacutetulo

Camp Los graacuteficos dinaacutemicos no estaacuten disponibles en la versioacuten de Excel para ^^ Macintosh

Crear tablas y listas para ser utilizadas en tablas dinaacutemicas

Cuando crea una tabla dinaacutemica debe organizar el conjunto de datos que estaacute utilizando en una tabla y o en una lista Dado que las tablas dinaacutemicas basan todos sus datos en esta tabla o lista es de vital importancia que configure dichas tablas y listas de forma uniforme En este contexto una tabla no es maacutes que una lista que tiene un tiacutetulo que tiene maacutes de una columna con datos y que tiene

146 Excel Los mejores trucos

diferentes encabezados para cada una de esas columnas A menudo se hace refeshyrencia a un listado en el mismo contexto en el que crea una tabla Las mejores praacutecticas que se deberiacutean aplicar a la hora de configurar un listado le ayudaraacuten enormemente cuando necesite generar una tabla dinaacutemica para los datos

Cuando se extraen datos a traveacutes del uso de funciones de buacutesqueda o de base de datos se puede ser algo menos exigente a la hora de configurar la tabla o la lista Esto es debido a que siempre puede compensar esa carencia con la ayuda de una funcioacuten obteniendo al final los resultados deseados De todas formas siemshypre seraacute maacutes sencillo si configura las tablas o las listas de la forma maacutes clara posible Las caracteriacutesticas incorporadas de Excel presuponen mucho acerca de la configuracioacuten y la distribucioacuten de los datos Aunque ofrecen cierto grado de fleshyxibilidad m u y a menudo encontraraacute que es maacutes sencillo todo si se ajusta a la siguiente guiacutea a la hora de configurar dichas tablas o listas

bull Es necesario la utilizacioacuten de encabezados ya que las tablas dinaacutemicas los utilizaraacuten para dar nombre a los campos Dichos encabezados deberiacutean aparecer siempre en la fila inmediatamente superior a la que se encuentra los datos Ademaacutes nunca dejeacute una fila en blanco entre los datos y los encabezados Maacutes auacuten haga que los encabezados sean diferentes de algushyna manera por ejemplo ponieacutendolos en letra negrita

bull Al menos deje tres filas en blanco por encima de los encabezados Podraacute utilizarlos para foacutermulas datos criacuteticos etc En cualquier caso siempre podraacute ocultar dichas filas si asiacute lo desea

bull Si tiene maacutes de una listado tabla en la misma hoja de caacutelculo deje al meshynos una columna en blanco entre cada lista o tabla Esto ayudaraacute a Excel a reorganizarlas como entidades diferentes Sin embargo si esas listas y tashyblas estaacuten relacionadas unas con otras entonces es mejor que las combine en una uacutenica tabla maacutes grande

bull Evite tener celdas en blanco dentro de los datos En vez de dejar celdas en blanco para indicar datos repetidos en una misma columna repita el dato tantas veces como sea necesario

bull Ordene la lista o los datos preferiblemente por la columna situada maacutes a la izquierda Esto haraacute que los datos sean maacutes sencillos de leer y de intershypretar

Si sigue estas directrices de la forma maacutes estricta posible veraacute que utilizar las tablas dinaacutemicas seraacute una tarea relativamente sencilla En la figura 41 puede ver una tabla con datos que estaacute bien organizada jun to a una tabla dinaacutemica que se estaacute generando Observe que la mayoriacutea de las fechas que son iguales estaacuten repetidas en la columna Fecha Por delante de estos datos estaacute el paso en el

4 Trucos sobre tablas dinaacutemicas 147

que se configura la distribucioacuten de los datos en el asistente en el que se muesshyt ran los campos opcionales Paacutegina Fila y Columna asiacute como el campo obligatoshyrio Datos

c Cantidad Comisioacuten Venta

UZ2 Construya el informe de tabla dinaacutemica arrastrando los botones de campo de la derecha sobre el diagrama a la izquierda

I Producto I

| Fecha l

iexclCantidad j

ComisioacutenI

Ayuda Aceptar

Mieacute 3 Mioacute 2004 X] Uo 2004

julio 2004 julio 2004 julio 2004 julio 2004 julio 2004 blio 2004 julio 2004 kgosto 2004 hgosto 2004 kgosto 2004 kgosto 2004 kgosto 2004 hgosto 2004 kgosto 2004 jigosto 2004 fegosto 2004 kgosto 2004 kgosto 2004 agosto 2004 kgosto 2004 fegosto 2004

j kgosto 2004 L_J kgosto 2004 wmrxagosto 2004

1850 1325 1225 900 850

7536 4500 1268 7400 4521 1340 2632 1200 563 990

1875 6530 1400 7536 4500 1268 7400 4521 1340 2632 1200

euro Comisioacuten euro Comisioacuten euro Comisioacuten ^ Comisioacuten euro Comisioacuten euro Comisioacuten euro Comisioacuten euro Comisioacuten euro Comisioacuten euro Comisioacuten euro Comisioacuten euro Comisioacuten euro Comisioacuten euro Venta euro Comisioacuten euro Comisioacuten euro Venta euro Comisioacuten euro Comisioacuten euro Comisioacuten euro Comisioacuten euro Comisioacuten euro Comisioacuten euro Comisioacuten euro Venta euro Comisioacuten

lt lt bull bull XHojal Hoja2 Hoja3 J i L bull i n Figura 41 Tabla dinaacutemica generada a partir de una tabla de datos bien distribuida

El Asistente para tablas dinaacutemicas y graacuteficos dinaacutemicos

Como ya mencionamos anteriormente para ayudar a los usuarios a crear tablas dinaacutemicas Excel ofrece un asistente para tablas dinaacutemicas y graacuteficos dishynaacutemicos Este asistente le guiaraacute a traveacutes de los pasos para crear la tabla dinaacutemishyca utilizando un proceso consistente en cuatro pasos en los que le diraacute a Excel las siguientes cosas

bull Coacutemo estaacuten configurados los datos y si desea crear un graacutefico dinaacutemico asociado (en caso de que esteacuten disponibles en la versioacuten que esteacute utilizanshydo de Excel)

bull Doacutende estaacuten almacenados los datos por ejemplo un rango de celdas en el mismo libro una base de datos otro libro etc

bull Queacute columnas de datos van en cada campo los campos opcionales Paacutegishyna Fila y Columna asiacute como el campo obligatorio Datos

bull Doacutende colocar la tabla dinaacutemica (por ejemplo en una nueva hoja o en la ya existente)

148 Excel Los mejores trucos

Existen otros pasos que se pueden seguir para manipular la tabla dinaacutemica pero la mayoriacutea de los usuarios encuentran maacutes sencillo hacer esto despueacutes de decir a Excel doacutende colocarla

Excel 2000 y las versiones posteriores tienen una gran ventaja sobre Excel 97 le permiten elegir coacutemo configurar los datos despueacutes de que el asistente haya finalizado

Ahora que ya sabe algo maacutes sobre las tablas dinaacutemicas y sus funciones ha llegado el momento de conocer algunos trucos uacutetiles que pueden hacer que esta caracteriacutestica sea todaviacutea maacutes potente

Q M 9 Compartir tablas dinaacutemicas pero no sus datos M ^ P f f T ^ I Crearemos una imagen de la tabla dinaacutemica que no necesita de la

^ H M ^ H estructura de datos subyacente

Es posible que necesite enviar tablas dinaacutemicas a otras personas para que las visualicen pero por alguna razoacuten no desea enviar los datos subyacentes que estaacuten asociados a ella Quizaacute desee que los demaacutes soacutelo vean ciertos datos por motivos de confidencialidad por ejemplo Si este fuese el caso puede crear una copia estaacutetica de una tabla dinaacutemica y permitir que los destinatarios soacutelo vean lo que necesitan ver

Y lo mejor de todo es que el tamantildeo del archivo con la copia estaacutetica seraacute mucho menor que el del archivo original

Suponiendo que tenga una tabla dinaacutemica en un libro de Excel todo lo que necesita hacer es seleccionar la tabla dinaacutemica por completo copiarla y en una hoja en blanco ir a EdicioacutengtPegado especial y luego seleccionar la opcioacuten Valoshyres Entonces ya podraacute mover esta hoja a otro libro o quizaacute utilizarla tal cual

El uacutenico inconveniente de este meacutetodo es que Excel no pega los formatos de la tabla dinaacutemica jun to con los valores Esto puede hacer que la copia estaacutetica sea maacutes difiacutecil de leer y quizaacute sea menos impresionante Si tambieacuten desea incluir el formato puede tomar una imagen estaacutetica (en vez de una copia estaacutetica) de la tabla dinaacutemica y luego pegarla en una hoja en blanco lo que le proporcionaraacute una copia a todo color y con formato de la tabla dinaacutemica original a la que podraacute aplicar cualquier tipo de formato que desee sin tener que preocuparse de que el formato se perderaacute cuando la actualice Todo esto ocurre gracias a que la imagen no estaacute vinculada de ninguna forma con la tabla dinaacutemica original

Para crear una imagen estaacutetica aplique el formato que desee a la tabla dinaacuteshymica y luego seleccione cualquier celda que se encuentre dentro de ella Desde la

4 Trucos sobre tablas dinaacutemicas 149

barra de herramientas Tabla dinaacutemica despliegue el menuacute Tabla dinaacutemica y lueshygo vaya a la opcioacuten SeleccionargtToda la tabla Una vez hecho esto mantenga pulsada la tecla Mayuacutes y entonces vaya a EdicioacutengtCopiar imagen En el cuadro de diaacutelogo que apareceraacute elija las opciones tal y como se muestran en la figura 42 y luego haga clic en Aceptar

1 2

Ti Ti

5 6 | 7 8 9 10 11 12

113 14

PT FT iexcl17 M8~ FT H 4

A | B Nombre H Ndeg de nombres

Ana HiHlM^raquo David ^ J ^ ^ p ^ S Guadalupe ^ H H | j | iexcl g j | |

Javier p y l ^ i g ^ p i p i Juan I B i Uuml uuml i g i ^ K Laida j H ^ B I B B B LUIacuteS Pff^yy^PJ Mar ^ ^ ^ ^ ^ H Marta R S S B ^ ^ Sandra t Iacute 8 Iacute ^ ^ 8 i M I Santos B i S ^ ^ ^ ^ S Sonia i o | S S g ^ ^ K Tantildeiacutea g E H f f l B Vanesa J iB i ^ ^ ^puumly WiHiam JSiiBS

bull M Hoja i XHoja2 Hoja3

C j D I E

Apariencia

bull iComo en pantalla]

lt Como en impresora

Formato

( Imagen

C Mapa de bits

I Aceptar | Cancelar I

H

i F i G t iacute

Figura 42 Cuadro de diaacutelogo Copiar imagen

Finalmente haga clic en cualquier lugar fuera de la tabla dinaacutemica y seleccioshyne EdicioacutengtPegar Acabaraacute teniendo una imagen a todo color y con formato de la tabla dinaacutemica tal y como se muestra en la figura 43 Esto puede ser m u y uacutetil especialmente si tiene que mandar la tabla dinaacutemica por e-mail a otras personas para que puedan verla Tendraacuten la informacioacuten que necesitan incluyendo todos los formatos que sean relevantes y todo ello con un tamantildeo del archivo que seraacute menor Sin embargo no podraacuten manipular los datos De igual forma soacutelo poshydraacuten ver aquello que desee que vean

Tambieacuten puede utilizar este meacutetodo de tomar una imagen para un rango de celdas Puede seguir los pasos que hemos indicado anteriormente o puede utilishyzar la herramienta que proporciona el pequentildeo icono en forma de caacutemara situashydo en la barra de herramientas

Para utilizar este uacuteltimo meacutetodo vaya a VergtBarras de herramientasgtPersona-lizar En el cuadro de diaacutelogo haga clic en la pestantildea Comandos luego seleccione la opcioacuten Herramientas en la lista de categoriacuteas y en el cuadro de lista de la parte derecha desplaacutecese hasta que encuentre la opcioacuten Caacutemara Haga clic en ella y arraacutestrela hasta aquella barra de herramientas en la que desee mostrarla Ahora seleccione un rango de celdas haga clic en el icono de la caacutemara y luego haga clic en cualquier lugar de la hoja con lo que obtendraacute una imagen vinculada de

150 Excel Los mejores trucos

dicho rango Cualquiera que fuera el formato o los datos que tuviese el rango original queda reflejado automaacuteticamente en la imagen

A 6 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

H lt

Tabla dinaacutemica original Horahrfe Ns de nombres 1 Al ex Ana David Guadalupe Jaime Javier Juan Laida Luis Mar-Marta Sandra Santos Sonia Tan i a Vanesa William Total general

bull raquo i Hojal H

1 -

_ 3ja2 )Hoja3

c TD E F

Imagen ele la tabla dinaacutemica Nombre H Ndeg de nombres I ^ ^ ^ ^ H Al ex Ana David Guadalupe Jaime Javier Juan Laida Luis Mar Marta Sandra Santos Sonia Tania Vanesa William Total general

1o

if M

G mdash

mdash

_J plusmniexclntilde Figura 43 Tabla dinaacutemica original contrastada con su imagen

Automatizar la creacioacuten de tablas dinaacutemicas Los pasos que debe seguir para crear una tabla dinaacutemica requieren de un cierto esfuerzo y a menudo dicho esfuerzo resulta redundante Con un poco de coacutedigo VBA podraacute crear tablas dinaacutemicas de forma automaacutetica

Las tablas dinaacutemicas son una caracteriacutestica m u y potente e inteligente para ser utilizadas con datos que estaacuten almacenados en una lista una tabla Por desshygracia el esfuerzo para crear una tabla dinaacutemica es suficiente como para disuashydir a algunas personas a que experimenten con ello Aunque la configuracioacuten de algunas tablas dinaacutemicas puede ser m u y complicada la mayoriacutea de ellas pueden ser creadas de forma raacutepida y sencilla Dos de las preguntas maacutes frecuentes en Excel tienen que ver con coacutemo obtener la cuenta de todos los elementos de una lista y coacutemo crear una lista de elementos uacutenicos a partir de una lista que contieshyne muchos datos duplicados En este apartado le mostraremos coacutemo crear una tabla dinaacutemica raacutepida y faacutecilmente que resuelva estas tareas

Supongamos que tiene una larga lista de nombres en la columna A siendo la celda Al el encabezado Desea conocer cuaacutentos elementos hay en la lista asiacute como generar un listado con los elementos uacutenicos Para ello seleccione la celda Al (el encabezado) y luego vaya a DatosgtInforme de tablas y graacuteficos dinaacutemicos (en las versiones para Macintosh Datosgtlnforme de tablas dinaacutemicas) para abrir el asistente

4 Trucos sobre tablas dinaacutemicas 151

Aseguacuterese de que o bien tiene seleccionada la opcioacuten Lista o base de datos de Microsoft Excel o bien ha seleccionado una uacutenica celda dentro de los datos Esto permitiraacute a Excel detectar automaacuteticamente los datos subyacentes que se van a utilizar posteriormente Si estaacute utilizando la versioacuten de Windows seleccione la opcioacuten Tabla dinaacutemica en la parte inferior del cuadro de diaacutelogo Haga clic en el botoacuten Siguiente y el asistente deberiacutea haber tomado automaacuteticamente el rango correcto para los datos situados en la columna A (de hecho los marcaraacute en la hoja) Si es asiacute haga clic en el botoacuten Siguiente En caso contrario utilice el ratoacuten para seleccionar el rango correcto Ahora haga clic en el botoacuten Disentildeo y arrastre al aacuterea DATOS los que seraacuten soacutelo campos (deberiacutea ver el tiacutetulo que aparece en la celda Al ) Arrastre el campo nuevamente pero esta vez al aacuterea FILA Con ello la pantalla deberiacutea quedar como la que se muestra la figura 44 A continuacioacuten haga clic en Aceptar

A B

1 Nombres

2 Alex t -T 1 Ana

4 David

5 Guadalupe

6 Jaime 7 iexclJavier

8 Juan

9 Laida

10 Luis

11 Mar

14

15

16 bull

_ampo ae origen Nombres

hombre j dlfjiUAtJJMiilJfcU

1tiacute bull

19

20

21

22

H 4

Suma +

Promedio Max Miacuten Producto Contar nuacutemeros Juuml

C

I

-1 | PAGINA |

bull

D E I F

1 Nombres

ltJ

1 Aceptar ]

Cancelar

Ocultar j

Nuacutemero

FILA

G H

2ltiexcl

Construya el informe de tabla dinaacutemica arrastrando los botones de campo de la derecha sobre el diagrama a la izquierda

COLUMNA

Luenta de Nombres

DATOS

1 Nombres |-

Ayuda j | Aceptar | Cancelar j

l laquo l bull i r

Figura 44 Cuadros de diaacutelogo Campo de la tabla dinaacutemica y Asistente para tablas y graacuteficos dinaacutemicos

Llegados a este punto si lo desea puede hacer doble clic en el botoacuten de CL campo situado en el aacuterea DATOS (que tendraacute la etiqueta Cuenta de

v^^ nombres como puede verse la figura 43) y cambiar en el cuadro de lista Resumir por la opcioacuten seleccionada por cualquier otra (por ejemplo Suma Promedio etc) De forma predeterminada Excel utiliza la funcioacuten CONTAR si estaacute trabajando con texto y la funcioacuten SUMA si estaacute trabajando con nuacutemeros

Para terminar seleccione la opcioacuten Hoja de caacutelculo nueva como destino del informe de tabla dinaacutemica y haga clic en el botoacuten Finalizar Al hacer esto deberiacutea

152 Excel Los mejores trucos

ver la tabla dinaacutemica en una nueva hoja con teniendo los elementos uacutenicos de la lista jun to con el caacutelculo de cuaacutentas veces aparece cada elemento (nombre) en la lista

iquestQueacute ocurre si desea tener una macro que realizase todos estos pasos creando la tabla dinaacutemica a partir de una columna que especifique Si simplemente grashyba una macro se encontraraacute que a menudo soacutelo funciona si los datos tienen el mismo encabezado Para evitar este inconveniente puede crear una simple macro almacenada en el libro o en el libro personal de macros (lo veremos en el capiacutetulo 7) y que puede utilizar para crear una tabla dinaacutemica sobre cualquier lista de elementos Esto requeriraacute que escriba algo de coacutedigo geneacuterico en VBA e introdushycirlo en un moacutedulo estaacutendar dentro del libro de macros personal o en cualquier otro libro de trabajo

Para empezar vaya a HerramientasgtMacrogtEditor de Visual Basic (Alt Op-cioacuten-Fl 1) y luego vaya a lnsertargtMoacutedulo A continuacioacuten introduzca el siguiente coacutedigo

Sub ObtenerCuenta( ) Dim Pt As PivotTable Dim strField As String

strField = SelectionCells(11)Text Range(Selection SelectionEnd(xlDown))Ntildeame = Elementos

ActiveWorkbookPivotCachesAdd(SourceType=xlDatabase _ SourceData==Elementos)CreatePivotTable TableDestination= _ TableName=ListaElementos

Set Pt = ActiveSheetPivotTables(ListaElementos) ActiveSheetPivotTableWizard TableDestination=Cells(3 1) PtAddFields RowFields=strField PtPivotFields(strField)Orientation = xlDataField

End Sub

Para volver a la ventana principal de Excel cierre esta ventana o pulse Alt Comando-CLy grabe el libro de trabajo Antes de ejecutar este coacutedigo seleccione el encabezado de la lista y aseguacuterese de que eacutesta no contiene celdas en blanco

^ Si ordena lista se eliminaraacuten raacutepidamente las celdas en blanco

Este coacutedigo crearaacute automaacuteticamente un rango con nombre para la lista llashymado Elementos para a continuacioacuten crear una tabla dinaacutemica en una nueva hoja basaacutendose en este rango La proacutexima vez que tenga una larga lista con datos le bastaraacute con seleccionar su encabezado y ejecutar esta macro Todo el

4 Trucos sobre tablas dinaacutemicas 153

trabajo de configuracioacuten de la tabla dinaacutemica se realizaraacute en un abrir y cerrar de ojos

Q ^ Q Mover los totales finales de una tabla dinaacutemica n P^^fl U n a ^ e ^as c o s a s m a s gt r r t a n t e s de las tablas dinaacutemicas es que los totales ^ ^ ^ U ^ H finales que resumen los datos siempre terminan en la parte inferior de la

tabla lo que significa que tiene que desplazarse hasta ellos para poder verlos Moveremos estos totales a la parte superior donde es maacutes sencillo encontrarlos

Aunque las tablas dinaacutemicas son un gran meacutetodo para resumir datos y exshytraer informacioacuten uacutetil no hay una opcioacuten incorporada para hacer que el Total general aparezcan la parte superior de forma que sea localizable raacutepidamente

Antes de que pasemos a describir un meacutetodo m u y geneacuterico para mover dicho total a la parte superior explicaremos coacutemo puede atacar este problema utilizanshydo la funcioacuten IMPORTARDATOSDINAMICOS que ha sido disentildeada especiacuteficamente para extraer datos a partir de una tabla dinaacutemica

Puede utilizar esta funcioacuten de la siguiente forma

=IMPORTARDATOSDINAMICOS(Suma de la cantidad$B$5)

o asiacute

IMPORTARDATOSDINAMICOS ( C a n t i d a d $ B $ 5 )

Cada una de estas funciones extraeraacute los datos y haraacute un seguimiento del Total general a medida que eacuteste se mueva arriba abajo a izquierda o a derecha Hemos utilizado la direccioacuten $B$5 pero con tal de que utilice cualquier celda que esteacute dentro de la tabla dinaacutemica siempre obtendraacute el total

La primera funcioacuten utiliza el campo Suma de la cantidad mientras que la segunda utiliza el campo Cantidad Si la tabla dinaacutemica tiene el campo Cantishydad en el aacuterea de datos debe darle nombre a dicho campo Si por el contrario el campo estaacute siendo utilizado dos o maacutes veces en el aacuterea de datos deberaacute especifishycar el nombre que le dio o bien el nombre que aceptoacute de forma predeterminada (veacutease figura 45)

Puede hacer doble clic en estos campos para cambiarlos Este hecho puede parecer confuso si no estaacute m u y familiarizado con las tablas dinaacutemicas Por suershyte en Excel 2002 y posteriores el proceso es mucho maacutes sencillo ya que puede rellenar en una celda los argumentos y dar la sintaxis correcta utilizando el cursor del ratoacuten En cualquier celda escriba = (el signo de igual) y luego utilice el cursor del ratoacuten para hacer clic en la celda que actualmente contiene el Total general Excel rellenaraacute automaacuteticamente los argumentos

154 Excel Los mejores trucos

Aacuteltente para tmampmmmMmm i

oacute Construya el informe de tabla dinaacutemica arrastrando los botones de campo de la derecha sobre el diagrama a la izquierda

| PAGINA |

Producto

FILA

COLUMNA

Suma de Cantidad

ldeg de veces vendido

DATOS

[Producto j

| Cantidad I

[Comisioacuten iacute

I Meses |

1 A ntilde o s

Ayuda Aceptar |iexcl

Figura 45 El campo Cantidad utilizado dos veces con el nombre Suma de Cantidad en un caso y Ndeg de veces vendido en otro

Por desgracia si utiliza el asistente para funciones o escribe directashymente = IMPORTARDATOSDINAMICOS( ) y luego hace clic en la celda que contiene el Total general Excel se hace un liacuteo intentando anidar otra funcioacuten IMPORTARDATOSDINAacuteMICOS dentro de la celda

Probablemente el meacutetodo maacutes sencillo aunque menos sofisticado para exshytraer el Total general es utilizar la siguiente funcioacuten

=MAX(ColTFTab)

donde la columna que ac tua lmente contiene el Total general se l lama ColTFTab

Utilizar de forma efectiva datos de otro libro dinaacutemicamente Utilizaremos los datos que se encuentran en otro libro como origen para nuestra tabla dinaacutemica

Cuando se crea una tabla dinaacutemica en Excel disponemos de numerosas opshyciones a la hora de elegir el origen de los datos La aproximacioacuten maacutes sencilla y potente es utilizar los datos que residen dentro del mismo libro Sin embargo por alguna otra razoacuten esto no siempre es posible o factible Puede que los datos residan en otro libro en el que se introducen a diario por ejemplo y por otro lado no desea que esos usuarios puedan ver la tabla dinaacutemica

4 Trucos sobre tablas dinaacutemicas 155

Si utilizamos un rango dinaacutemico con nombre se produciraacute enormemente el tiempo para actualizar la tabla dinaacutemica Dado que no se puede hacer referencia a un rango dinaacutemico con nombre desde otro libro significa que no puede hacer que una tabla dinaacutemica haga referencia a quizaacute cientos de filas en blanco lo que causariacutea que el tamantildeo del archivo se incrementase sustancialmente De esta manera lo mejor es traspasar los datos desde otro libro y luego basar la tabla dinaacutemica en ellos en vez de tener que hacer una referencia externa

Estando en el libro que contendraacute la tabla dinaacutemica inserte una nueva hoja y llaacutemela Datos Abra el libro que contiene los datos a ser referenciados y aseguacuteshyrese de que la hoja que los contenga sea la activa A continuacioacuten en cualquiera de las celdas que sobre introduzca la siguiente foacutermula

= S I ( A 1 = M A 1 )

donde Al es el primero de todos los encabezados de la tabla con los datos Ahora seleccione la celda A l coacutertela active el libro original y peguacuteela en la

celda Al de la hoja Datos Esto le proporcionaraacute la referencia al otro libro Copie esta celda tantas columnas como encabezados haya en el origen de datos y luego seleccione la opcioacuten lnsertargtNombregtDefinir En el cuadro de texto Nombres en el libro escriba DatosDinamicos y en el cuadro de texto Se refiere a escriba lo siguiente

=DESREF($A$100CONTARA($A$A)CONTARA($1$1))

Haga clic en Agregar y luego en Aceptar A continuacioacuten inserte un coacutedigo que se ejecutaraacute cada vez que se abra el libro haciendo clic con el botoacuten derecho del ratoacuten en el icono de Excel (situado en la esquina superior izquierda la ventashyna)

Priacutevate Sub Workbook_Open( ) With Worksheets(Datos)

Range(21000)Clear

Range(11)AutoFill Range(11000)

Range(21000) = Range(21000)Valueacute End With End Sub

Este acceso directo no estaacute disponible para Macintosh Tendraacute que abrir el editor de Visual Basic pulsando Opcioacuten-Fll o bien yendo a HerramientasgtMacrogtEditor de Visual Basic Luego haga clic mientras pulsa la tecla Control en ThisBook situado en la ventana de proyectos

Para volver a la ventana principal de Excel cierre esta ventana o bien pulse Alt Comando-a

Excel Los mejores trucos

El coacutedigo anterior soacutelo incluye 1000 filas con datos Dicho nuacutemero siempre deberiacutea ser superior al nuacutemero de filas que cree que necesitaraacute En otras palabras si la tabla en el otro libro contiene 500 filas antildeada unos cientos maacutes para asiacute dejar espacio por si la tabla original crece

Evite utilizar un nuacutemero muy alto de filas (como por ejemplo 10000 a menos que tenga esa cantidad de datos) ya que esto afectaraacute a la velocidad con la que se ejecute el coacutedigo y se actualicen los datos

Guarde el libro cieacuterrelo y luego vuelva a abrirlo aseguraacutendose primero de activar las macros El coacutedigo que acabamos de antildeadir se lanzaraacute automaacuteticamente y copiaraacute las foacutermulas en la fila 1 de la hoja Datos y luego convertiraacute todas las filas excepto la primera en valores Esto no dejaraacute una copia del origen que se actualizaraacute cada vez que abra el libro

Ahora ya puede ocultar esta hoja si no desea seleccionando la opcioacuten FormatogtHojagtOcultar

A continuacioacuten para hacer que una tabla dinaacutemica se base en este rango dinaacutemico con nombre seleccione cualquier celda dentro de la tabla dinaacutemica y luego seleccione la opcioacuten del asistente situado en la barra de herramientas de tablas dinaacutemicas Haga clic en el botoacuten Anterior del asistente hasta que llegue al paso 1 Ahora seleccione la primera opcioacuten Lista o base de datos de Microsoft Excel haga clic en Siguiente y en el paso 2 escriba =DatosDinamicos (que es el nombre del rango dinaacutemico) Luego haga clic en Finalizar

No experimentaraacute el lapso de tiempo que a menudo ocurre cuando una tabla dinaacutemica hace referencia a un origen de datos externo porque ahora los datos se encuentran situados dentro del propio libro Ademaacutes de ello como puede utilizar el rango dinaacutemico con nombre la tabla dinaacutemica seraacute dinaacutemica sin tener que hacer referencia a filas en blanco mientras que el tamantildeo del archivo se mantieshyne razonablemente

CAPIacuteTULO 5

Trucos sobre graacuteficos Trucos 50 a 59

Los graacuteficos son una de las caracteriacutesticas maacutes populares de externo ya que proporcionan a las hojas de caacutelculo una potencia visual maacutes allaacute de unos caacutelculos

Aunque las capacidades graacuteficas de Excel son impresionantes muchas veces desearaacute ir maacutes allaacute de la funcionalidad baacutesica proporcionada por el asistente para graacuteficos incorporado para poder crear graacuteficos que sean maacutes activos en cuanto cambie los datos o simplemente para ir maacutes allaacute del rango de opciones que Excel ofrece Los trucos que presentaremos en este capiacutetulo le permitiraacuten hacer todo esto y mucho maacutes

Separar una porcioacuten de un graacutefico circular Aunque los graacuteficos circulares son una excelente ayuda visual a veces desearaacute separar una porcioacuten en particular del graacutefico Si la separa del resto del graacutefico le daraacute maacutes importancia

La opcioacuten predeterminada en un graacutefico circular seccionado que se separan todas las porciones y a la misma distancia Sin embargo con un par de clics de ratoacuten podremos separar una de ellas

Para comenzar configure un graacutefico circular baacutesico como el que se muestra en la figura 51

A continuacioacuten ha de hacer clic en el graacutefico circular y luego haga doble clic lentamente (dejando un pequentildeo espacio entre ambos clics) sobre la porcioacuten que desea separar Arrastre la porcioacuten seleccionada hacia fuera del centro del graacutefico y veraacute coacutemo queda separada tal y como puede verse en la figura 52

160 Excel Los mejores trucos

i A B C D i E bull F G 1 j Circular 2 A 1 3 B 1 4 C 1 5 -D 1 6 7 8 9 10 11 12 13 14

J5J 16 17 18 19

Circular

-^

1

^ m

s~ H F v^__g^

n H 4 bull bull Hojal MI

- j _ _ ^

BB

DC

D D |

ltr|

i raquoin Figura 51 Graacutefico circular simple configurado a partir de los datos de una hoja

A FJ C D 1 Eacute F G ] H iexcl J -H 1 Circular j 2 A 3 B 4 C 5 D 6 7 8 9 10 11 12 13 14 15 16 17 18 19

|M Iacute bull bull i Ho ja i | j j i raquo i n

Figura 52 Graacutefico circular simple con una porcioacuten separada

Al arrastrar una uacutenica porcioacuten dejaraacute el resto como estaban Puede repetir este proceso para el resto de las porciones si asiacute lo desea Esta teacutecnica tambieacuten funciona con los graacuteficos circulares en 3D Para hacer un graacutefico de este estilo haga clic en eacutel haga clic con el botoacuten derecho del ratoacuten y luego seleccione la opcioacuten Tipo de graacutefico y entonces seleccione el icono de graacutefico circular en 3D

Si desea separar todas las porciones al mismo tiempo simplemente haga clic en el graacutefico para seleccionarlo luego arraacutestrelo hacia fuera del centro del mismo y todas las porciones quedaraacuten separadas tal y como se muestra en la figura 53 Recuerde que cuanto maacutes separe las porciones maacutes pequentildeas quedaraacuten

5 Trucos sobre graacuteficos 161

A B C 1 Circular 2 A 1 3 B 1 4 C 1 5 D 1 6 7 8 9 10

JU 12 13 14 15 16 17 18 19

H i bull bulliXHojal

D E F G H I

Circular

Ilaquo

J z

_

bull i r Figura 53 Graacutefico circular en 3D con porciones separadas

Tambieacuten puede utilizar el proceso inverso si desea volver a jun ta r las porcioshynes de un graacutefico Para ello simplemente haga clic en una de las porciones y arraacutestrela hacia el centro del mismo para colocarlas juntas otra vez

TRUCO Crear dos conjuntos de porciones en un uacutenico graacutefico circular Muchas personas creen que un graacutefico circular estaacute limitado a solamente un conjunto de valores pero existe una forma de crearlo basaacutendose en dos columnas con valores

Resulta un poco complicado hacer que se puedan ver dos series de valores representados en ejes separados dentro de un uacutenico graacutefico pero el esfuerzo meshyrece la pena para ver el efecto resultante Para ver coacutemo funciona esto primero cree un graacutefico circular baacutesico Coloque algunos datos en el rango de celdas Bl C5 seleccione dicho rango y haga clic en el botoacuten Asistente para graacuteficos de la barra de herramientas En el paso 1 bajo el apartado Tipo de graacutefico seleccione el prishymer graacutefico circular Ahora haga las modificaciones pertinentes en el resto de pasos del asistente hasta llegar al paso 4 Al llegar ahiacute aseguacuterese de colocar el graacutefico como un objeto en la hoja actual

A continuacioacuten seleccione el graacutefico haga clic con el botoacuten derecho del ratoacuten sobre eacutel y vaya a Origen de datosgtSerie Haga clic en Agregar para antildeadir otra serie Seleccione la celda DI para el nombre y las celdas D2D5 para los valores y luego haga clic en Aceptar Obtendraacute un graacutefico como el que se muestra en la figura 54

162 Excel Los mejores trucos

A I B C 1 l 1 Graacutefico 1 Graacutefico 2 2 A 0049619 076617

D E

7

3 B 0416347 0835703 4 C 0157347 0650905 5 D 6 j

7 8 9 10 11 12 13 14 15 16 17 18 1 9

H 4 bull

0514901 0744752

Graacutefico 1

^^r^^

^

(

aW AfaV 1

v W bull ^ ^

bullI Hoja 1 ~~ trade~ | 4

F G H mdash

l A

BB

D C

D D

1 i gtir Figura 54 Un graacutefico circular configurado a partir de los datos de una hoja

Haga doble clic de nuevo en el graacutefico vaya a la pestantildea Eje y coloque la series en el segundo eje Haga clic en Aceptar El graacutefico circular todaviacutea parece ser el mismo en la superficie pero por debajo no lo es

Seleccione el graacutefico y mientras mantiene pulsado el botoacuten del ratoacuten arraacutesshytrelo fuera del centro y entonces suelte el botoacuten del ratoacuten con todo esto crearaacute un efecto de separacioacuten que era el que estaacutebamos buscando (veacutease figura 55)

A

1 I 2 A 3 B 4 C 5 D 6

7 8 9 bull 10 11 12 i

13 14 15 16 17 18 19 20

21 bull H 4 bull H ^

I B C D E F G H I i T i IGiifico 1 Graacutefico 2 I

0049619 0766177 0416347 0835703 0157347 0650905 0514901 0744752

^ ^ mdash I

^ r

[ ABBW W l^m D Graacutefico 2

D Graacutefico 11

V ^ ^ ^JLJ^

vHolal M I bull l l

Figura 55 Graacutefico circular con el eje secundario separado

Al separar el graacutefico circular no solamente estaacute separando los dos ejes (con lo que se ve el segundo graacutefico circular) sino que tambieacuten estaacute comprimiendo el

5 Trucos sobre graacuteficos 163

graacutefico circular situado en el eje secundario con lo que puede ver ya ambos graacuteshyficos

Ahora seleccione cada una de las porciones del graacutefico y arraacutestrelas de nuevo hacia el centro del mismo con lo que obtendraacute un graacutefico como el que se muesshytra en la figura 56 Recuerde que si hace dos clics lentamente se marcaraacute una porcioacuten individual del graacutefico

2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 4 4 bull HlXHojal

IGi oacutefico 1 Gi oacutetico 2 0049619 0766177

0416347 0157347 0514901

0835703 0650905 0744752

11 Graacutefico 2

B Graacutefico 1 I

id Figura 56 Graacutefico circular completo compuesto de dos graacuteficos

Si jun ta de nuevo todas las porciones de graacutefico circular tendraacute un graacutefico circular totalmente funcional en el que estaacuten dibujadas dos series de datos en ejes separados Ahora ya puede aplicar el color y el formato que desee

Crear graacuteficos que se ajusten a los datos Los graacuteficos pueden incluir y dibujar nuevos datos automaacuteticamente en el momento en el que los antildeada a la hoja de caacutelculo

Si utiliza rangos dinaacutemicos con nombre en vez de referencias a rangos el graacutefico dibujaraacute cualquier dato nuevo en el momento en el que lo antildeada a la hoja de caacutelculo Para ver coacutemo funciona esto comenzaremos con una hoja en blanco y la rellenaremos con algunos datos de forma parecida a como se muestra en la figura 57

Para crear el graacutefico y hacerlo dinaacutemico necesitaremos antildeadir dos rangos con nombre Uno de esos rangos seraacute para las etiquetas de la categoriacutea (Fechas) y otro para los puntos representados por los datos (Temperatura)

164 Excel Los mejores trucos

1 2 3 4 5 6 7 8 9 10 11 12 13 14

H 4

A B Fechas Temper 1102003 2102003 3102003 4102003 5102003 6102003 7102003 8102003 9102003

10102003 11102003

C aturas

10 12 13 13 12 14 15 13 12 11 10

bull H Hojal Hoja2 Hoja3 j lt

I D

l

E mdash

mdash

^ bull i r

Figura 57 Datos a partir de los cuales crearemos un graacutefico

Cree un rango dinaacutemico con el nombre FECHAS_TEMP para las fechas sishytuadas en la columna A Para ello vaya a lnsertargtNombregtDefinir y escriba la siguiente foacutermula

=DESREF($A$110CONTARA($A$A)-11)

Observe que hemos incluido un -1 inmediatamente despueacutes del primer argushymento de la funcioacuten CONTARA Esto asegura que el encabezado no se incluya en el rango con nombre para esa serie en particular

En este ejemplo hemos hecho referencia a toda la columna A en el S^ argumento ($A$A) de la funcioacuten CONTARA En versiones anteriores

~-V de Excel resulta una buena praacutectica restringir este rango al menor grupo de celdas posible para no antildeadir una sobrecarga innecesaria a los caacutelculos Esto es porque estaacute forzando a externo a buscar en miles de celdas innecesariamente De todas formas algunas funciones de Excel son lo suficientemente inteligentes para saber queacute celdas contienen datos aunque no todas ellas lo hacen A pesar de todo esto ya no es tan necesario en las versiones maacutes recientes de Excel ya que eacuteste ha mejorado el manejo de rangos de gran tamantildeo

A continuacioacuten para las lecturas de temperaturas de la columna B configure otro rango dinaacutemico que se llame LECTURAS_TEMP y utilizando la siguiente foacutermula

=DESREF($B$200CONTARA($B$B)-11)

Ahora ya puede crear el graacutefico utilizando los rangos dinaacutemicos con nombre que hemos creado en vez de utilizar referencias a celdas Seleccione el aacuterea de datos (el rango $A$1$B$11) y luego haga clic en el icono Asistente para graacuteficos

5 Trucos sobre graacuteficos 165

situado en la barra herramientas estaacutendar En el paso 1 seleccione el tipo de graacutefico que desee utilizar (para este ejemplo utilizaremos una columna) y haga clic en el botoacuten Siguiente En el segundo paso se le presentaraacuten dos pestantildeas Rango de datos y Serie Elija la segunda y entonces elimine la foacutermula que apashyrece en el cuadro de texto Valores introduciendo lo siguiente

=Hoj alLECTURAS_TEMP

Es muy importante que incluya el nombre de la hoja a la que hacen referencia las foacutermulas Si no lo hace no podraacute introducir el rango con nombre dentro de la foacutermula

Para terminar elimine la foacutermula que actualmente se encuentra en el cuadro de texto Roacutetulos del eje de categoriacuteas (X) e introduzca lo siguiente

=Hoj alFECHAS_TEMP

Complete los datos que se solicitan en el resto de pantallas del asistente realishyzando los cambios que sean necesarios El resultado deberiacutea parecerse al que se muestra en la figura 58

- t Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana l - 0 X

JUumlit

A1 fx Fechas

A T B Fechas Temperaturas

1102003 101

2102003 12

3102003 13

4102003 13

5102003 12

6102003 14

7102003 15

8102003 13

9102003 12|

10102003 11

11102003 101

bull M H o j a l Hoja2 Hoja3

Rango de datos Serie

u

mdash laTcmpcraturaJ

Agregar

Roacutetulos del eje de

M M B raquo bdquo j Nombre

_J Valores

Quitar |

categoriacuteas (X)

Cancelar

j=Hojal$B$l

|=HojalLECTURAS_TEMP

|=HojaliFECHAS_TEMP

lt Atraacutes 1 [SJSyregniquestegt|j

3

uuml

Uuml

Finalizar

MT

__

r Figura 58 Rangos dinaacutemicos con nombre en vez de referencias estaacuteticas a rangos

166 Excel Los mejores trucos

Una vez configurado este graacutefico cada vez que antildeada una nueva entrada ya sea en la columna A (Fechas) o en la columna B (Temperatura) se incluiraacute automaacuteticamente graacutefico

Dibujar los uacuteltimos x valores correspondientes a las lecturas

Otro tipo de rango con nombre que puede utilizar en los graacuteficos es aquel que solamente recoge las uacuteltimas 10 lecturas (o cualquier otro nuacutemero que desee) de una serie de datos Probaremos esto con los mismos datos que hemos utilizado en la primera parte del truco

Para las fechas que hay en la columna A configure un rango dinaacutemico con nombre llamado FECHAS_TEMP_1 ODIAS que hace referencia de la siguiente forshyma

= D E S R E F ( $ A $ 1 C O N T A R A ( $ A $ A ) - 1 0 0 1 0 1 )

Para las lecturas de la columna B configure otro rango dinaacutemico con nombre llamado LECTURAS_TEMP_1 ODIAS e introduzca lo siguiente

= DESREF(Hoj al$A$1CONTARA(Hoj al51$A$A) -101101)

Si desea cambiar el nuacutemero de lecturas (por ejemplo a 20) simplemente camshybie la uacuteltima parte de la foacutermula de forma que quede asiacute

= DESREF(Hoj al$A$1CONTARA(Hoj al5$A$A) - 2 0 12 01)

Al utilizar rangos dinaacutemicos con nombre en los graacuteficos dispone de una gran flexibilidad y ahorraraacute gran cantidad de tiempo al no tener que manipular los graacuteficos cada vez que antildeade nuevos datos

TRUCO Interactuar con los graacuteficos utilizando controles personalizados Para hacer que los graacuteficos sean realmente interactivos puede utilizar uno o maacutes rangos dinaacutemicos en los graacuteficos y luego utilizar una barra de desplazamiento o un cuadro de lista desplegable personalizado para mostrar las figuras que los usuarios de la hoja de caacutelculo desean ver

Como vimos en el truco anterior puede utilizar rangos dinaacutemicos con nomshybre para antildeadir flexibilidad a los graacuteficos Pero tambieacuten puede utilizar rangos dinaacutemicos con nombre para crear interfaces que controlen queacute datos deben ser dibujados por los graacuteficos Si vinculamos los rangos dinaacutemicos con nombre con controles personalizados permitiremos a los usuarios cambiar los datos de los

5 Trucos sobre graacuteficos 167

graacuteficos mediante dichos controles que se encargaraacuten de actualizar automaacuteticashymente los datos en la hoja o viceversa

Utilizar un rango dinaacutemico con nombre vinculado a una barra de desplazamiento

En este ejemplo utilizaremos una barra de desplazamiento para mostrar las figuras mensuales de un periacuteodo de 12 meses La barra de desplazamiento se utilizaraacute para modificar el nuacutemero de meses que se presentan El valor de dicha barra tambieacuten se utilizaraacute en el rango dinaacutemico que serviraacute como origen de los datos para graacutefico Para comenzar configure algunos datos de forma similar a los que se muestra en la figura 59

1 2 3

Mes

4 5 JAN 6 FEB 7 MAR 8 APR 9 MAY 10 JUN

[11 JUL 12 AUG 13 SEP 14 UumlCT 15 NOV 16 DEC 17 1 18

Producto XYZ

Ventas 2003

505 943 500 624 894 612 526 629 665 954 893 954

1 H 4 bull bull l H o j a l Hoja2 Hoja3 _ili

Figura 59 Datos de la hoja para un graacutefico dinaacutemico vinculado a una barra de desplazamiento

Cree un rango dinaacutemico con nombre seleccionando la opcioacuten lnsertargtNombregt Definir y llaacutemelo PERIODO_VENTAS En el cuadro de texto Se refiere a escriba lo siguiente

=DESREF($B$500$C$51)

Al utilizar la funcioacuten DESREF podemos usar la celda $C$5 para forzar al ranshygo referenciado en PERIODO_VENTAS a expandirse tanto arriba como abajo en funcioacuten del nuacutemero que aparezca en la celda $C$5 Es decir si por ejemplo camshybiamos el nuacutemero que hay en $C$5 por 5 estaremos obligando a que el rango incorpore las celdas B5B10

168 Excel Los mejores trucos

Si no desea que el usuario pueda ver la celda C5 puede ir maacutes allaacute y H^ ocultar el contenido de $C$5 haciendo clic con el botoacuten derecho del

^ ratoacuten sobre ella y seleccionando la opcioacuten Formato de celdas Luego seleccione la categoriacutea Personalizado e introduzca el formato Haga clic en Aceptar y el contenido de la celda C5 quedara oculto tal y como puede verse en la figura 59

Ahora cree un graacutefico (un graacutefico de liacuteneas o de columnas seriacutean los ideales) Cuando llegue al paso 2 del asistente vaya a la pestantildea Serie y cambie la foacutermushyla que aparece en el cuadro de texto Valores de forma que quede asiacute lt Nombre del libroxlsgtPERIODO_VENTAS Con esto el graacutefico seraacute dinaacutemico

Una vez haya creado graacutefico deberaacute insertar una barra de desplazamiento a traveacutes del cuadro de herramientas Formularios

La forma maacutes sencilla para hacer esto es hacer clic con el botoacuten derecho del ratoacuten en el aacuterea gris de la parte superior de la pantalla (donde estaacuten situadas las barras de herramientas pero en una parte que esteacute vaciacutea) y luego seleccionar la opcioacuten Formularios Con ello apareceraacute el cuadro de herramientas Formularios en la pantalla

Ahora haga doble clic en el icono Barra de desplazamiento Una vez insertada seleccioacutenela y mueacutevala hasta el graacutefico Luego haga clic con el botoacuten derecho sobre ella y seleccione la opcioacuten Formato de control

Cambie el valor miacutenimo a 1 y el valor maacuteximo a 12 y luego establezca el viacutenculo con celda a $C$5 El graacutefico resultante deberiacutea quedar como el que se muestra en la figura 510

L T 11 2

3

Mes 4 5 JAN

6 FEB 7 MAR 8 APR 9 MAY 10 JUN 11 JUL 12 AUG 13 SEP 14 OCT 15 NOV 16 DEC 17 18

Producto XYZ Ventas 2003

|n 4 bull n H o j a l

505 943 500 624 894 612 526 629 665 954 893 954

Hoja2

1000 -i

750 -

500 bull

250 -

0 -

iquest

JAN

A

A -y

FEB

Producto XYZ Ventas 2003

X V ^A X_

MAR APR MAY JUN JUL

_ 1 plusmnJ

UumlJJ

Figura 510 Graacutefico dinaacutemico vinculado a una barra de desplazamiento

5 Trucos sobre graacuteficos 169

Utilizar un rango dinaacutemico con nombre vinculado a un cuadro de lista desplegable

Otra variante posible es vincular el graacutefico con un cuadro de lista desplegable Comenzamos con algunos datos configurados como en la figura 59 Antildeada un rango dinaacutemico que utilizaremos como origen de los datos para graacutefico y que estaraacute vinculado a un cuadro de lista desplegable que podemos utilizar para ver los resultados de los exaacutemenes de un estudiante Utilizaremos por tanto el cuashydro desplegable para seleccionar el nombre del estudiante cuyos resultados deshyseamos ver Para ello introduzca la foacutermula =PROMEDIO (B6 B11) en la celda B12 y propaguacuteela hasta la celda F12 tal y como se muestra en la figura 511

A

1 l 2 3 4 5 6 Andreacutes 7 Carlos 8 Carolina 9 David 10 Esther 11 Frank 12 Promedio 13 14 15 16 17

4 sect 1

Ex ti ni A

C

Exam B 54 48 44 81 37 46 52

H lt bull H Hojal Hoja2Hoja3

89 72 39 93 58 69 70

D

Exam C 90 67 43 42 62 55 60

LLI

Exam D

H

74 85 68 47 67 41 64

F

Exam E 56 47 45 64 72 57 57

G

_J

plusmn

-

T bull i r

Figura 511 Graacutefico dinaacutemico vinculado a un cuadro de lista desplegable

Cree un rango dinaacutemico seleccionando la opcioacuten lnsertargtNombregtDefinir y llaacutemelo ESTUDIANTES En el cuadro de texto Se refiere a escriba lo siguiente

=DESREF($A$5$G$6115)

Cree otro rango dinaacutemico llamado NOMBRE_ESTUDIANTE y en el cuadro de texto Se refiere a escriba lo siguiente

= DESREF($A$5$G$60 1 1)

El uso de la referencia $G$6 en la foacutermula DESREF obliga a que los rangos referenciados para ESTUDIANTES y NOMBRE_ESTUDIANTE se expandan en funshycioacuten del nuacutemero introducido en la celda G6 Ahora cree un graacutefico de columnas agrupadas utilizando el rango A11F12 Cuando llegue al paso 2 del asistente vaya a la pestantildea Serie y cambie la referencia que aparece en el cuadro de texto Valores para la primera serie de forma que quede =ltNombre d e l l i b r o

170 Excel Los mejores trucos

x l s gt ESTUDIANTES En el cuadro de texto Nombre escriba =ltNombre d e l l i b r o x l s gt NOMBRE_ESTUDIANTE Llegados a este punto inserte un cuadro de lista desplegable desde el cuadro de herramien-tas Formularios Luego haga clic con el botoacuten derecho en dicho control y seleccio-ne la opcioacuten Formato de control e introduzca $A$6$A$11 para el rango de entrada y $G$6 como viacutenculo de celda Para terminar introduzca la funcioacuten CONCATENAR en una celda vaciacutea como por ejemplo la B4 de la siguiente forma

=CONCATENAR(MResultados para IacuteNDICE(A6A11G6))

Ahora si abre el cuadro de lista desplegable y selecciona un estudiante (veacutease figura 512) se mostraraacuten los resultados de sus exaacutemenes

B C D E Resultoacutelos |raquolttia Esthei Exam A Exam B Exam C Exam D

Andreacutes iexclCarlos (Carolina iexclDavid iexclEsther iexclFrank iexclPromedio

54 48 44 81 37 46 52

89 72 39 93 58 69 70

90 67 43 42 62 55 60

74 85 68 47 67 41 64

56 47 45 64

57 57

100

90

I I s f 1 1 1 p l iexcl J M M | f l f e l ^ M i f laquo ^ ^ I bull Esther I

Exam A bull Hiexcl HojalHoja2

Exam D

Figura 512 Un graacutefico dinaacutemico completo vinculado a un cuadro de lista desplegable

Tres formas raacutepidas para actualizar los graacuteficos Aunque es maravilloso crear nuevos graacuteficos actualizarlos para que reflejen los cambios producidos en la hoja puede llevar su tiempo Podemos reducir la cantidad de trabajo necesario para cambiar los datos utilizados por un graacutefico de diferentes formas

Utilizar arrastrar y colocar

Podemos antildeadir datos a una serie ya existente o crear una completamente nueva simplemente arrastrando y colocando los datos en un graacutefico Excel inten

5 Trucos sobre graacuteficos 171

tara decidir coacutemo debe t ratar los datos lo que significa que puede que antildeada la informacioacuten a una serie ya existente cuando en realidad lo que queriacuteamos era crear una nueva Sin embargo podemos hacer que Excel muestre un cuadro de diaacutelogo que nos permita elegir queacute accioacuten queremos realizar Introduzca algunos datos como los que se muestran en la figura 513

A 1 2 Enero 3 Febrero 4 Marzo 5 Abril 6 Mayo 7 8 9

| 10

B 2001

743 1

213 116

10

C 2002

7 3 2 1 3

D | 2003

3 10 4 9 4

Figura 513 Datos para un graacutefico de columnas agrupadas

Mediante el asistente para graacuteficos cree un graacutefico de columnas agrupadas soacutelo para el rango $A$1 $D$5 con lo que se obtendraacuten los resultados de la figushyra 514

25 -

jHi -J M

n

ariun Enero Febrero Marzo Abril

Figura 514 Graacutefico de columnas agrupadas creado para el rango A1D5

Seleccione el rango A6D6 haga clic con el botoacuten derecho en el borde de la seleccioacuten y sin soltarlo arraacutestrela hasta el graacutefico Suelte entonces el botoacuten y apareceraacute el cuadro de diaacutelogo Pegado especial tal y como se muestra en la figura 515 Seleccione la opcioacuten Columnas y haga clic en el botoacuten Aceptar Con esto se antildeadiraacute al graacutefico la serie de datos correspondiente a mayo tal y como se muestra en la figura 516 El cuadro de diaacutelogo Pegado especial nos ofrece la mayoriacutea de las acciones que necesitaremos para poder utilizar este truco

Utilizar la barra de foacutermulas

Tambieacuten podemos actualizar el graacutefico utilizando la barra de foacutermulas Cuando seleccionamos un graacutefico y hacemos clic en u n a serie de datos del mismo

172 Excel Los mejores trucos

observaraacute que en la barra de foacutermulas aparece la funcioacuten que Excel utiliza para la serie

Enero

Febrero

Marzo

Abril

M a j o

B

2001 C

2002 D

2003

743 1

213 116

1 0

F G

B B S Agregar celdas como

( Nueva serie

f Nuevos puntos

Valores (Y) en

lt Blas

amp iiquestolumnasj

Aceptar J

Cancelar I

25 -

20

15

10

5 -H

0 1poundL

D 2CL

uuml 2002

D 2003

P Categoriacuteas (roacutetulos de X) en ta pirnera columna

r

Enero Febrero Marzo Abril

bull bull Drag and Drop Usmg Formula Bat Dragging Bounding Atea j j _L ID Figura 515 Graacutefico de columnas agrupadas junto con el cuadro de diaacutelogo espacio

Pegado especial

Figura 516 Graacutefico de columnas agrupadas con la serie de datos correspondiente a mayo antildeadida

Dicha funcioacuten se llama SERIES y normalmente utiliza cuatro argumentos aunque el graacutefico de burbujas requiere un quinto elemento adicional (para el tamantildeo) La sintaxis de la funcioacuten SERIES es la siguiente

=SERIES( [Nombre][Valores X][Valores Y][Orden de dibujo])

Asiacute una funcioacuten SERIES vaacutelida podriacutea ser de la siguiente forma (veacutease figura 517)

= SERIES(Hoj al$B$1Hoj al$A$2$A$5Hoj al$B$2$B$51)

5 Trucos sobre graacuteficos 173

M raquo M I f H ^ iexcl j Archivo Edicioacuten Ver Insertar Formato Herramientas Graacutefico Ventana

J J A _J _ j j J J l C -j^ gU M

- ID) x |

- f f x

Sem lt 2004 bull ft =SERIES(Hoja2$B$1Hoja2$A$2$A$5Hoja2$B$2$B$51) A B C D E F G H

1 i 2 Enero T 3 IacuteFebrero 4 iMarzo 5 yAbnl 1 6

7 iexcl -Q-j

_

11 12 13 14

151 16 17 ]

18 19 20 21

23 H 4

2004 iexcl 743

1 213 116

2004

25 -i

20 -

15 -

5 -lis

fara

bull

laquo

IQ 20041 1

Enero Febrero Marzo Abril

bull n H oja 1gtH aja lHoja3 H |

J T

i gtir

Figura 517 Un graacutefico de columnas agrupadas con la barra de foacutermulas resaltada

Como puede verse en la figura anterior la primera parte de la referencia (Hojal$B$l) se refiere al nombre o al tiacutetulo del graacutefico que en este caso es 2004 La segunda parte (Hojal $A$2$A$5) se refiere a los valores X que en este caso son los meses La tercera parte (Hojal $B$2$B$5) se refiere a los valores Y que son 743 15 213 y 116 Finalmente la uacuteltima parte de la foacutermula (el 1) se refiere al orden de dibujo o al orden de la series En este caso como soacutelo hay una serie soacutelo podemos elegir el valor 1 Si hubiese maacutes de una serie la primera tenshydriacutea el nuacutemero 1 la segunda el nuacutemero 2 y asiacute sucesivamente Para realizar cambios al graacutefico simplemente modifique las referencias a celdas en la barra de foacutermulas

Ademaacutes de utilizar referencias a celdas puede introducir en los graacuteficos valoshyres expliacutecitos conocidos tambieacuten como constantes matriciales Para ello deberaacute antildeadir unas llaves por delante y por detraacutes de los valores X e Y como puede verse en la siguiente foacutermula

=SERIES(Mi b a r r a 11C D 1 2 3 4 1)

En esta foacutermula A B C y D seriacutean los valores X mientras que 1 2 3 y 4 seriacutean los valores Y correspondientes

174 Excel Los mejores trucos

Utilizando este meacutetodo puede crear o actualizar un graacutefico sin tener que alshymacenar los datos en celdas

Arrastrar el aacuterea del borde

Si los datos del graacutefico contienen referencias a celdas continuas puede extenshyder o reducir faacutecilmente el rango de datos de la serie arrastrando el borde hasta el punto deseado Haga clic en la serie que desea extender o reducir Despueacutes de hacer dos clics lentamente apareceraacuten unos pequentildeos recuadros negros alredeshydor del aacuterea de la serie (o en medio en caso de estar utilizando un graacutefico de liacuteneas) Soacutelo tiene que hacer clic en uno de esos recuadros y arrastrar el borde en la direccioacuten deseada tal y como se muestra en la figura 518

WBiexcl Microsoft EKCCI - Graficosxls

~ j j Archivo Edicioacuten Ver Insertar Formato Herramientas Graacutefico Ventana

J j J i j J J i t iquestx ^ 5uuml kg

Serie A Pun pound =SERIES(Hoja3$B$1Hoja3IacuteAIacute2$A$5Hoja3JB$2$B$51)

x

I I

a b c d

A B

^ 11

42

9J

c D B C

7 3

3 10

2 4

1 9

H I

tJr^i HWl D A

H B

D C

bull w_Hojal Ho ja2 Ho ja3 bull j r

Figura 518 Borde de una serie seleccionado

Si extiende o reduce los datos de una serie al igual que en la figura 519 el origen de datos original asiacute como las etiquetas del eje (en caso de estar configushyradas en automaacutetico) tambieacuten se modificaraacuten para reflejar los cambios que acashyba de realizar Esta teacutecnica es ideal para probar diferentes escenarios sobre todo en aquellas ocasiones en las que desee probar cuaacuteles seriacutean los diferentes resultashydos en funcioacuten de los conjuntos de datos que se utilicen

5 Trucos sobre graacuteficos 175

N raquo i M i f l t laquo B l Eacutel Archivo Edicioacuten

J J A 3 _jl

Serie A Pun bull

Ver Insertar Formato Herramientas GraacuteFico - S x

_ gt - iquest ^ -

A =5ERIES(HQja3$B$1HQJa3$A$2$A$5HQJa3$B$2$B$51)

A B

h ^

12

10

8

6

4

2

0

D H 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 13 19 20 ^1 H i bull wHojal Hoja2Hoja3

3 10 4 9

^

mdash DA HB DC

i r

Figura 519 Borde de una serie seleccionado despueacutes de ser expandido

TRUCO Crear un simple graacutefico de tipo termoacutemetro Excel no proporciona un tipo del graacutefico termoacutemetro Si desea uno tendraacute que construirlo

Es posible crear un graacutefico de tipo termoacutemetro sin mucho esfuerzo utilizanshydo el asistente para graacuteficos para crear un graacutefico de columnas agrupadas que compare valores a lo largo de las categoriacuteas y luego manipulando los diferentes elementos graacuteficos

Introduzca algunos datos de la misma forma que aparecen en la figura 520 y utilice el asistente para graacuteficos para crear un graacutefico baacutesico de columnas agrushypadas dibujando los datos en filas Para el ejemplo utilizaremos el rango B3C4

Elimine la leyenda y la cuadriacutecula (para ello simplemente seleccioacutenelas y pulshyse Supr) Deacute formato a la serie de datos Temperatura para el eje Y2 Para ello seleccione la serie haga clic con el botoacuten derecho del ratoacuten seleccione Formato de serie de datos vaya a la solapa Eje y luego seleccione la opcioacuten Eje secundario lo que haraacute que quede un graacutefico como el de la figura 521

De formato a los ejes Yl (a la izquierda) e Y2 (a la derecha) seleccionaacutendolos haciendo clic en el botoacuten derecho del ratoacuten sobre ellos seleccionando la opcioacuten

176 Excel Los mejores trucos

Formato de ejes y luego haciendo a la pestantildea Escala Establezca el valor miacutenimo a 0 y el maacuteximo a 100 la unidad mayor a 10 y la menor a 5 Con esto podraacute ver el graacutefico que se muestra en la figura 522

Caso [Temperatura

1 2 3 4 5 6 7 8 9 10 11 12 13 14 1C

H 4 bull wTermoacutemetro

100 40

D bull

120 n

100 -

80 -

60 -

40 -

20 bull

bull

E F G m

H bull

o Caso

bull Temperatura |

bull bull bull

JJLL JID Figura 520 Datos de la serie y creacioacuten de un graacutefico baacutesico de columnas agrupadas

1 2 3 4 5 b 7 8 9 10 11 12 13 14 15 16 17 18

14 4

A B

| Caso [Temperatura^

bull w Termoacutemetro

C

i oo 40J

D E F G H bull bull i

120 -j T 4 5

100 -

80 -

60 -bull

40 -

20 -

0

bull bull Bw H Hi HWHIIacuteIIIBIIacute8II

-40

-35

-30

-25

- 20 bull

- 15

- 10

- 5

I- 0 1

bull bull bull

I laquo I

mdash

i raquoir Figura 521 Dos series dibujadas en el eje Y2

Establezca el color para la serie con los casos en blanco la serie para las temshyperaturas en rojo y el aacuterea de dibujo en blanco Llegados a este punto el termoacuteshymetro deberiacutea empezar a tomar forma

Reduzca el valor de la propiedad Ancho del rango que encontraraacute en la pestantildea Opciones del cuadro de diaacutelogo que aparece al hacer clic con el botoacuten derecho del ratoacuten sobre las serie y elegir la opcioacuten Formato de serie de datos Por uacuteltimo elimine el eje X (seleccionaacutendolo y pulsando Supr) y luego cambie el tamantildeo y la

5 Trucos sobre graacuteficos 177

posicioacuten a su gusto Como se demuestra en la figura 523 retocando algunas de las caracteriacutesticas existentes en los graacuteficos de Excel puede conseguir construir un termoacutemetro totalmente funcional y con una apariencia impresionante

1 2 3 4 5 6 7 8

i 9

10 11 12 13 14 15 16 17 18 19 911

4 4

A B

CasoT iquestTemperatura^

bull M Termoacutemetro

C

loo 40

D E F G H i bull

90 -

80 -

70 -

60 -

50 -bull

40 -

30 -

20 -

10 -

_ U -

iexcliexclbullSill l liexcliexcli l l | ||

- 1111111 [iiiiiiiiiiilaailBiij -

bull

- 9 0

bull 80

-70

-60

-50

- 40

- 30

-20

- 10

bull bull

M

bull

bull

bull

I J T i _ j

1

__i uumld Figura 522 Serie con los casos en el eje Yl y serie con las temperaturas en el eje Y2

ambos con formato ideacutentico

1

2 3 4 5

6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

|H 4

A B

Caso ^Temperatura^

bull M Termoacutemetro

C

icio 40

D E F G 1 bull bull

90 -

80 -

70 -

60 -

bull 50 -

40 -

30 -

20 -

10 -

0 -

i i iwi^^Ma -- ^ ^ H H | -

iMH^^SI -EHBB

- |sect||1| - PiPiacuteiSilil

- 90

- 80

bull 70

bull 60

- 50 bull

- 40

- 30

- 20

- 10

L M a H S plusmn 0

M

H 1 ~Z

H

1 gtir Figura 523 Graacutefico estilo termoacutemetro completada

178 Excel Los mejores trucos

Crear un graacutefico de columnas con anchos y altos variables iquestNo seriacutea estupendo poder crear un graacutefico de columnas las cuales pudiesen variar en ancho y alto Luego a medida que se dibujan los datos en dichas columnas su ancho y su alto se ajustariacutean inteligentemente y de forma simultaacutenea

Excel no proporciona esta caracteriacutestica directamente pero trucando un graacuteshyfico XY de dispersioacuten podemos crear un graacutefico de columnas de ancho variable m u y efectivo Los graacuteficos de dispersioacuten se utilizan para comparar valores por lo que proporcionan una base perfecta sobre la que comenzar a crear un graacutefico de columnas de ancho variable

La figura 524 muestra un graacutefico de columnas de ancho variable que dibuja el porcentaje compartido comparado con el coste de los siguientes gastos gas electricidad agua comida viajes y otros El eje X (el eje a lo largo de la parte inferior del graacutefico) muestra los porcentajes mientras que el eje Y (el eje que se encuentra en la parte izquierda) muestra el coste en dinero

1 2

A B C Columnas de ancho variable

3 Gas 4 Electricidad 5 Agua 6 Comida 7 Viajes 8 iexcl Otros

r 0 1

2 Iacute3

14 15 Iacute6 17 18 19 201 21 22 23 24 25 jiquestl I 4

Comp Coste (euro) 02 150 015 1125 012 90 03 225 007 525 016 120

250 -

200 -

amp 150 bull

1

u 100 -

50 -

n -c

bull M Hojal

bull

bull

02 04

L

D E X Y 0 =C3 =B3+D2 =C3 =B4+D3 =C4 =B5+D4 =C5 =B6+D5 =C6 =B7+D6 =C7 =B8+D7 =C8

bull

06 08

F Supr

=D3-D2 =D4-D3 =D5-D4 =D6-D5 =D7-D6 =D8-D7

bull

1

G I nfe r =E2 =E3 =E4 =E5 =E6 =E7 =E8

12

H Arriba =C3-E2 =C4-E3 =C5-E4 =C6-E5 =C7-E6 =C8-E7

l

bull Serie

1 J EtiqEscala X EtiqEscala Y

=f(D3-D2)2)+D2 0 =((D4-D3)2)+D3 0 =((D5-D4)2)+D4 0 =(YD6-D5)2)+D5 0 =((D7-D6)2)+D6 0 =((D8-D7)2)+D7 0

j laquo l 1

K Texto EtiqEscala

=B3 =B4 =B5 =B6 =B7 =B8

bull in Figura 524 Graacutefico XY de dispersioacuten configurado para el rango D2E8

Para crear este graacutefico introduzca algunos datos como los que se muestran en la figura 524 y utilizando el asistente para graacuteficos seleccione el rango D2E8 En el paso 1 seleccione el tipo de graacutefico XY de dispersioacuten Acepte los valores

5 Trucos sobre graacuteficos 179

predeterminados para este graacutefico que muestran solamente los puntos y haga clic en Siguiente En el paso 2 aseguacuterese de que la opcioacuten Columnas estaacute selecshycionada Haga clic en Siguiente y en el paso 3 del asistente en el cuadro de texto Valor (Y) escriba Coste ($) Haga clic en el botoacuten Siguiente y aseguacuterese de que el graacutefico seraacute generado como un objeto no en una nueva hoja Para terminar haga clic en el botoacuten Finalizar para ver el graacutefico resultante

Para ver las foacutermulas correctas en su sitio en las celdas seleccione la K^ opcioacuten HerramientasgtOpciones y luego vaya a la pestantildea Ver y actiacutevela

-V casilla de verificacioacuten Foacutermulas

Ha llegado el momento de manipular el graacutefico para crear las columnas Prishymeramente elimine la leyenda y la cuadriacutecula (basta con seleccionarlas y luego pulsar Supr) Cambie el formato del aacuterea de dibujo para que no se rellene haga clic en el color de fondo gris luego haga clic con el botoacuten derecho sobre eacutel y seleccione Formato del aacuterea de trazado Seleccione la opcioacuten Ninguna en el apartashydo Aacuterea

Seleccione el eje X y luego haga doble clic sobre eacutel para acceder al cuadro de diaacutelogo Formato de ejes Vaya a la pestantildea Escala e introduzca un miacutenimo de 0 y un maacuteximo de 1 Vaya a la pestantildea Tramas y seleccione la opcioacuten Ninguna en Marca de graduacioacuten principal y en Roacutetulos de marca de graduacioacuten seleccione Ninguno Luego haga clic en Aceptar con lo que el graacutefico se pareceraacute al que se muestra en la figura 525

El siguiente paso seraacute crear las liacuteneas para las columnas asiacute que haga doble clic sobre los puntos de los datos para abrir el cuadro de diaacutelogo Formato de serie de datos Vaya a la pestantildea Barras de error X En la seccioacuten Presentar seleccione la opcioacuten Por defecto y luego seleccione la opcioacuten Personalizada y establezca el rango G2G8 Al hacer clic en Aceptar obtendraacute los lados verticales de las coshylumnas

Ahora que ya hemos hecho el trabajo duro es el momento de retocar un poco el graacutefico y antildeadir algunas etiquetas Primeramente en el cuadro de diaacutelogo Forshymato de serie de datos vaya a la pestantildea Tramas y seleccione la opcioacuten Ninguno en el apartado Marcador Los resultados se muestran en la figura 526

Si desea utilizar etiquetas deberaacute descargar las herramientas para graacuteficos de John Walkenbach disponibles en httpj-walkcomssexcelfilescharttoolshtm Una parte de este componente estaacute disentildeado especiacuteficamente para etiquetas de datos

Le permite especificar un rango de la hoja para las etiquetas de datos que se utilizaraacuten en la serie de un graacutefico (por desgracia parece que este componente no funciona en la versioacuten de Macintosh de Excel)

180 Excel Los mejores trucos

A B C Columnas laquole ancho variable

D

Gas Electricidad Agua Comida Viajes [Otros

JoComp Coste (euro) 02 015 012 03 007 016

150 1125 90 225 525 120

0 =C3 =B3+D2 =C3 =B4+D3 =C4 =B5+D4 =C5 =B6+D5 =C6 =B7+D6 =C7 =B8+D7 =C8

F Supr

H

=D3-D2 =D4-D3 =D5-D4 =D6-D5 =D7-D6 =08-07

Infer Arriba =E2 =E3 =E4

=C3-E2 =C4-E3 =C5-E4

=E5 =C6-E5 =E6 =C7-E6 =E7 =C8-E7 =E8 iexclI

i EtiqEscala X

250

200 -I

$ 1 50 4 o

w 100

50

0

4 bull n Ho ja l

J K EtiqEacutescala Y Texto EtiqEscala

=((D3-D2)2)+D2 0 =((D4-D3)2)+D3 0 =((D5-D4)2)+D4 0 =((D6-D5)2)+D5 0 =(D7-D6)2)+D6 0 =((D8-D7V2)+D7 0

=B3 =B4 =B5 =B6 =B7

LIacuteO Figura 525 Graacutefico de dispersioacuten modificado

A Columnas lt

B C le ancho variable Comp Coste (euro)

Gas Electricidad Agua Comida Viajes Otros

02 015 012 03 007 016

150 1125 90 225 525 120

0 =B3+D2

=B4+D3 =B5+D4 = =B6+D5 B7+D6 =

=B8+D7 =C8

Supr

=03-02 =04-03 =D5-D4 =06-05 =07-06 =D8-D7

G Infer

H Arriba

=E2 =E3 =E4 =E5 =E6 =E7 =E8

=C3-E2 =C4-E3 =C5-E4 =C6-E5 =C7-E6 =C8-E7

^ bull nHojal

EtiqEscala X EtiqEscala Y Texto EtiqEscala

=((D3-D2)2)+D2 =((D4-D3)2)+D3 =((D5-D4)2)+D4 =((D6-D5)2)+D5 =((D7-D6)2)+D6 =((D8-D7)2)+D7

=B3 =B4 =B5 =B6 =B7

X Figura 526 Graacutefico de dispersioacuten manipulado para producir un graacutefico con columnas

de ancho variable

Antes de utilizar estas herramientas deberaacute antildeadir una nueva serie de datos para proporcionar las etiquetas al eje X del graacutefico Para ello seleccione el graacutefi-

5 Trucos sobre graacuteficos 181

co haga clic con el botoacuten derecho sobre eacutel y seleccione la opcioacuten Datos de origen y luego vaya a la pestantildea Serie Haga clic en Agregar para antildeadir una nueva serie En el cuadro de texto Valores X seleccione el rango 1318 y en el cuadro de texto Valores Y seleccione el rango J3J8 De formato a la nueva serie de forma que no tenga marcador para ello abra el cuadro de diaacutelogo Formato de serie de datos vaya a la pestantildea Tramas y luego en el apartado Marcador seleccione la opcioacuten Ninguno Ahora llega el momento de utilizar el componente Aseguacuterese de que tiene seleccionada la serie 2 y vaya a GraacuteficogtJWalk Chart Tools Cuando se abra el cuadro de diaacutelogo haga que el rango de la etiqueta de datos sea K3K8

Para antildeadir una nueva serie de datos para proporcionar las etiquetas de la columna seleccione el graacutefico haga clic con el botoacuten derecho sobre eacutel seleccione Datos de origen y luego vaya a Serie Haga clic en Agregar para antildeadir una nueva serie En Valores X seleccione el rango 1318 y en Valores Y seleccione el rango C3C8 De nuevo de formato a la nueva serie de forma que no tenga marshycador de la misma forma que indicamos anteriormente

Nuevamente usaremos el complemento pero esta vez seleccionaremos la serie 3 y vincularemos las etiquetas de datos a A3A8 El resultado deberiacutea ser como el que se muestra en la figura 527

1 2

A Columnas

3 Gas [ 4 Electricidad 5 Agua 6 Comida 7 Viajes | 8 |Otros | 9 10 11 12 13 14 15 16 17

18 19 20 21 22 23 24 25

|H 4

250 -

200 -

- 150 -

- 100 -

50 -

0 -

bull bull H o j a l

B C de ancho variable Cornp Coste(euroj

20 15000 euro 15 11250 euro 12 9000 euro 30 22500 euro 7 5250 euro

16 12000 euro

D E X Y

0 150 2000 150 3500 1125 4700 90 7700 225 8400 525

10000 120

F Supr

r2000 r1500 r1200 r3000 t 700 1600

Gas

Electricidad

Agua

20 15 12

G Inferior

150 150

1125 90

225 525 120Iacute

Comida

30

H Vriba

0 -375 -225

135 -1725

675

I J EtiqEscala X EtiqEscala Y

1000 0 2750 0 4100 0 6200 0 8050 0 9200 0

Viajes

Otros

7 16

M

K _ _ j

Texto EtiqEscala ~

20 15 12 30 7

16

- J

ir Figura 527 Graacutefico con columnas de ancho variable completado

Lo mejor de este tipo de graacuteficos es que las barras se expandiraacuten o contraeraacuten a lo largo de los ejes X e Y cuando los valores introducidos en las columnas Compartido y Coste cambien

182 Excel Los mejores trucos

Crear un graacutefico de tipo velociacutemetro Es posible crear un velociacutemetro realmente impresionante y funcional con su aguja movible todo ello gracias a la combinacioacuten de graacuteficos circulares y graacuteficos de anillo El truco estaacute en controlar el velociacutemetro a traveacutes de una barra de desplazamiento

El asistente para graacuteficos de Excel ofrece diferentes tipos de graacuteficos aunque no uno como el que queremos hacer Un graacutefico de tipo velociacutemetro proporciona una forma ingeniosa de representar los datos Con este truco podemos crear un velociacutemetro y una barra de desplazamiento a partir del cuadro de herramientas que serviraacute para modificar el graacutefico y cambiar los valores de la hoja simultaacuteneashymente

Lo primero que debemos hacer es introducir algunos datos al igual que se muestra en la figura 528 y luego crear un graacutefico de tipo anillo Eacutestos funcioshynan de forma similar a los graacuteficos circulares aunque permiten contener muacuteltishyples series cosa que los graacuteficos circulares no pueden

1 2 3 4 5 6 7 8 9 10 11

12 13 14 15 16 17 18 19 20

H lt

A Bandas

25 75_

bull bull l H o j

180

B Marcas

=(180100)A2 =(180100)(A3-A2) =360-

JJ_

SUMA(B2B4)

C D Etiquetas Marcas Etiquet

180 =$F$3amp50 9 0 18 10 18 20 18 30 18 40 18 50 18 60 18 70 18 80 18 90 9 100

Bajo Normal Alto

i l L

as comp

E F Aguja

200 Comp =((180100)F3)-1 |50 2 =360-SUMA(E2E4)

_ J

=

H-

MTJ Figura 528 Datos configurados para ser usados por el velociacutemetro

Aseguacuterese de mostrar las foacutermulas en la hoja Para ello vaya a Herramientasgt OpcionesgtVer y active la casilla de verificacioacuten Foacutermulas aunque esto seraacute un proceso largo

Ahora seleccione el rango B2B5 y seleccione el asistente para graacuteficos En el paso 1 en la pestantildea Tipos estaacutendar seleccione el primer tipo de graacutefico de anillo Haga clic en Siguiente y en el paso 2 aseguacuterese de que los datos se dibujaraacuten por filas Haga clic de nuevo en Siguiente y realice cualquier cambio que considere necesario en el paso 3 (aunque no lo son para este truco) Vaya al paso 4 hacien-

5 Trucos sobre graacuteficos 183

do clic en Siguiente y aseguacuterese de que el graacutefico se generaraacute como un objeto (es la opcioacuten predeterminada) Al general graacutefico como un objeto resultaraacute maacutes senshycillo trabajar con eacutel y asiacute poder configurar el velociacutemetro (veacutease figura 529)

Velociacutemetro

Figura 529 Graacutefico de anillo baacutesico

Seleccione el graacutefico de anillo y seleccione la porcioacuten maacutes grande haciendo doble clic lentamente para luego seleccionar la opcioacuten Formato de punto de datos e ir a la pestantildea Opciones Establezca el aacutengulo para esta porcioacuten en 90 grados Vaya a la pestantildea Tramas y configure el aacuterea y el borde de esta porcioacuten a Ningushyno Haga clic en Aceptar y haga doble clic lentamente para seleccionar cada uno de las porciones restantes Haga doble clic entonces para volver al cuadro de diaacuteshylogo anterior y establecer el color como sea necesario Al final el graacutefico de tipo anillo deberiacutea parecerse al que se muestra en la figura 530

V

Figura 530 Graacutefico de tipo anillo con aacutengulo de 90deg sin color ni borde en la primera porcioacuten

Ahora necesitamos antildeadir otra serie (Serie 2) de valores para formar los segshymentos para las etiquetas del semiciacuterculo Para ello seleccione el graacutefico haga clic en el botoacuten derecho sobre eacutel seleccione la opcioacuten Datos de origen y luego

184 Excel Los mejores trucos

vaya a la pestantildea Serie Haga clic en el botoacuten Agregar con el que crearaacute una nueva serie y luego en Valores seleccione el rango C2C13 Haga clic de nuevo en el botoacuten Agregar para antildeadir una tercera serie (Serie 3) con la que crearemos la aguja del velociacutemetro En Valores seleccione el rango E2E5 Al final el resulshytado deberiacutea ser como el de la figura 531

Figura 531 Graacutefico de tipo anillo con muacuteltiples series

Llegados a este punto el velociacutemetro estaacute empezando a tomar forma Si desea antildeadir etiquetas a este graacutefico necesitaraacute descargar una herramienta para poder antildeadirlas libremente Vaya a httpj-walkcomssexcelfilescharttoolshtm donde podraacute descargar Chart Tools de Jonh Walkenbach

Parte de este complemento que por desgracia soacutelo funciona con Windows estaacute disentildeado especiacuteficamente para crear etiquetas de datos Nos permite especishyficar un rango de una hoja para las etiquetas de datos que se utilizaraacuten en la serie de un graacutefico el complemento tambieacuten contiene otras caracteriacutesticas que pasamos a detallar a continuacioacuten

bull Tamantildeo del graacutefico Permite especificar un tamantildeo exacto para un graacuteshyfico y tambieacuten permite hacer que todos los graacuteficos tengan el mismo tashymantildeo

bull Exportar Le permite guardar los graacuteficos como archivos gif jpg tif o png

bull Imagen Convierte un graacutefico en una imagen (a color por escala de grises)

bull Tamantildeo del texto Congela el tamantildeo de todos los elementos de texto en un graacutefico de forma que si eacuteste cambia de tamantildeo los elementos de texto no lo haraacuten

bull Informe del graacutefico Genera un informe de resumen para todos los graacuteshyficos o bien un informe detallado para uno en particular

5 Trucos sobre graacuteficos 185

Utilice este complemento para dar formato a la serie 2 para que se muestren las etiquetas de datos utilizando el rango D2D13 Manteniendo seleccionada la serie 2 haga doble clic sobre ella para abrir el cuadro de diaacutelogo de formato Vaya a la pestantildea Tramas y seleccione Ninguno tanto para el borde como para el aacuterea Con ello el graacutefico deberiacutea parecerse al que se muestra en la figura 532

Figura 532 Graacutefico de tipo velociacutemetro mejorado junto con las etiquetas

Seleccione la serie 3 haga clic con el botoacuten derecho sobre ella y seleccione Tipo de graacutefico Cambie esta serie para que sea del tipo graacutefico circular predeterminashydo Siacute parece extrantildeo (veacutease figura 533) pero podemos asegurar que si el graacutefishyco circular se superpone con el graacutefico de anillo es que lo ha hecho todo correctamente

Figura 533 Graacutefico de tipo velociacutemetro superpuesto con el graacutefico circular

A continuacioacuten es necesario reducir el tamantildeo de graacutefico circular que acabashymos de colocar sobre el graacutefico de anillo Para ello sepaacuterelo en diferentes porcioshynes y luego vuelva a ensamblar las maacutes pequentildeas Seleccione una porcioacuten de graacutefico circular (haciendo dos clics lentamente en la porcioacuten que desea modifi-

186 Excel Los mejores trucos

car) y arrastraacutendola hacia afuera Esto haraacute que el graacutefico circular se separe y se haga maacutes pequentildeo tal y como se muestra en la figura 534

Velociacutemetro

5G Cotnp

Figura 534 Graacutefico circular separado y cambiado de tamantildeo

Ahora seleccione todo el ciacuterculo haga doble clic sobre eacutel y en el cuadro de diaacutelogo Formato de serie de datos vaya a la pestantildea Opciones Cambie el aacutengulo de la primera porcioacuten a 90 grados Seleccione una a una el resto de las porciones y haciendo clic con el botoacuten derecho del ratoacuten vuelva a este cuadro de diaacutelogo y luego vaya a la pestantildea Tramas Ahiacute seleccione Ninguno tanto para el borde como para el aacuterea de todas las porciones excepto para la tercera que deberaacute estar relleshynada con un color negro Esto produciraacute un graacutefico como el que se muestra en la figura 535

Velociacutemetro

Figura 535 Graacutefico de tipo velociacutemetro en el que solamente la tercera serie del graacutefico circular muestra un color

Si desea antildeadir una leyenda seleccione el graacutefico haga clic con el botoacuten dereshycho del ratoacuten y seleccione la opcioacuten Opciones del graacutefico Luego vaya a la pestantildea Roacutetulos de datos y seleccione la opcioacuten Clave de leyenda Esto produciraacute un velo-

5 Trucos sobre graacuteficos 187

ciacutemetro como el de la figura 536 Ahora mueva cambie el tamantildeo y modifique el graacutefico si asiacute lo desea

Velociacutemetro

D Normal

bull Alto

Figura 536 Graacutefico de tipo velociacutemetro con una leyenda

Ahora que el graacutefico de tipo velociacutemetro estaacute construido necesitamos crear una barra de desplazamiento a partir del cuadro de herramientas y hacer que este control y el graacutefico puedan comunicarse entre ellos

Para ello deberaacute mostrar el cuadro de herramientas Formularios haga clic con el botoacuten derecho ratoacuten en un aacuterea vaciacutea de la barra de herramientas (a la derecha de donde se encuentran las barras de herramientas estaacutendar y de formashyto) y seleccione en el menuacute la opcioacuten Formularios Ahora seleccione el icono Barra de desplazamiento y dibuje dicha barra en cualquier lugar de la hoja

Seleccione la barra de desplazamiento que acaba de dibujar haga clic con el botoacuten derecho sobre ella y seleccione la opcioacuten Formato de control Elija como celda vinculada la celda F3 establezca un valor maacuteximo de 100 y un valor miacutenishymo de 0 Cuando cierre este cuadro de diaacutelogo y mueva la barra de desplazashymiento sobre el graacutefico veraacute algo parecido a lo que se muestra en la figura 537

Figura 537 Graacutefico de tipo velociacutemetro ya terminado

188 Excel Los mejores trucos

Al hacer clic en las flechas o al arrastrar el selector de la barra de desplazashymiento haraacute que el velociacutemetro se modifique Pero recuerde esto tambieacuten camshybiaraacute los datos de la hoja de caacutelculo que estaacuten vinculados con el graacutefico

Vincular los elementos de texto de un graacutefico a una celda Cuando se crean y se utilizan graacuteficos repetidamente puede ser uacutetil conocer coacutemo vincular algunos de los textos de los graacuteficos como por ejemplo tiacutetulos y etiquetas directamente a una celda Esto quiere decir que si los datos subyacentes al graacutefico cambian los datos del graacutefico y sus elementos de tipo texto siempre estaraacuten en armoniacutea

Los elementos de tipo texto de un graacutefico que puede vincular a una celda son el tiacutetulo principal del graacutefico los tiacutetulos primario y secundario de los ejes X e Y asiacute como las etiquetas de datos de las series

Para ver coacutemo se hace esto vincularemos el tiacutetulo del graacutefico con una celda Para ello comenzaremos introduciendo algunos otros como los que se muestran en la figura 538 y mediante el asistente para graacuteficos crearemos un graacutefico de columnas agrupadas baacutesico Ahora haga clic en la celda Al 7 y escriba Edad de los empleados

A Fecha

1 122003 ] 2122003 3122003 4122003 5122003 6122003 iexcl 7122003 8122003

9122003 10122003 11122003 12122003 13122003 14122003

B Edad 1

2 3 4 5 6 7 8

trade9

10

TIacute 13 Iacute4 15

3S 17 bull Edad de los empleados 18

Iacute 9 mi H laquo bull bullIJXHoial

20 25 26 23 24 21 20 19 25 26 24 23 21 22

30

25

20

15 10

5

0

4

Edad

h DEdad

iquestF

_plusmnid Figura 538 Graacutefico de columnas agrupadas con su tiacutetulo creado a traveacutes del asistente

El siguiente paso seraacute crear un viacutenculo entre el tiacutetulo del graacutefico y la celda Para ello seleccione el tiacutetulo del graacutefico (Edad en este caso) luego vaya a la barra de foacutermulas escriba un = haga clic en la celda Al 7 y pulse Intro (tenga en

5 Trucos sobre graacuteficos 189

cuenta que si hace referencia a una celda que se encuentra otra hoja tendraacute que escribir primero el nombre de la hoja seguido del signo de admiracioacuten y del nomshybre de dicha celda)

Este mismo proceso funciona para las etiquetas de datos aunque necesitaraacute seleccionar una etiqueta de datos individual antes de vincularla con una celshyda Los resultados obtenidos deberiacutean parecerse a los que le mostramos en la figura 539

A Fecha

1122003 2122003 3122003 4122003 5122003 6122003 7122003 8122003 9122003

10122003 11122003 12122003 13122003 14122003

B Edad

20 25 26 23 24 21 20 19 25 26 24 23 21 22

Edad de los empleados

fEdad de los empleados I B laquo 1

30 -

25

20

15 -H D Edad

iquest y y y y y

H lt bull n H o j a l l i lL id Figura 539 Graacutefico de columnas agrupadas con el tiacutetulo vinculado a la celda Al 7

Este sencillo truco le permitiraacute conseguir que los elementos de texto del graacutefishyco y los datos del graacutefico esteacuten en armoniacutea Ademaacutes le ahorraraacute gran cantidad de tiempo a la hora de crear graacuteficos

Trucar los datos de un graacutefico de forma que no se dibujen las celdas en blanco Excel trata las celdas en blanco como si tuvieran un valor de 0 lo que puede provocar que se generen graacuteficos un tanto feos Esto provoca que la representacioacuten de valores de un graacutefico caiga de repente con lo que queda un graacutefico que no dibuja con precisioacuten la imagen que estaacute intentando mostrar Con el siguiente truco nos aseguraremos de que las celdas en blanco no sean dibujadas

Es posible impedir que se dibujen las celdas en blanco de dos formas m u y sencillas bien ocultando las filas con las columnas o bien haciendo que dichas celdas devuelvan el valor NA

Excel Los mejores trucos

Ocultar filas y columnas

Configure algunos datos de forma que queden como en la figura 540 Cree un graacutefico de liacuteneas y vea coacutemo queda si tiene valores 0 dibujados Seleccione el rango A1B12 abra el asistente para graacuteficos y configure el graacutefico de liacuteneas como un objeto para la hoja de caacutelculo actual

A 1 Enero 2 Febrero 3 Marzo 4 Abril 5 Mayo 6 Junio 7 Julio 8 Agosto 9 Septiembn 10 Octubre 11 Noviembre 12 Diciembre 13 14 15 16 17 18 19 20 21 22 i

B 300 350 325 275

0 0 0 0 0 0 0 0

|n 4 bull H Ocultar filas Devolver NA lt j bull ) f]

Figura 540 Datos y un graacutefico de liacuteneas que estaacute dibujando los valores 0

A 6 C D EacuteT F G H iexcl J 1 Enero 300 2 Febrero 350 3 Marzo 325 4 Abril 275 13 14 15 16 17 18 19 20 21 22 23 24 25

I H 4 bull H Ocultar filas Devolver NA ltiexcl j bull | f j

Figura 541 Datos con las filas 5 a 12 ocultas con el graacutefico dibujando solamente los valores de enero a abril

El graacutefico de la figura 540 estaacute dibujando los resultados de ventas por meses Esto significa que si el mes actual es abril el graacutefico estaraacute dibujando ocho meses

190

400

350

300

250

200

150

100

50

mdash eacute mdash | mdash mdash | mdash mdash | mdash mdash | mdash mdash | mdash mdash | mdash eacute mdash

iquestdeg^deggtdegaacutegtgt0 ltgtdeg w ^gtgtvy gt cr ^ iquestp

400 -i

350 bull

300 bull

250 bull

200 -

150 bull

100 bull

50 bull

0 bull

Enero

| mdash laquo mdash Ser ie l

Febrero M a r i o

^ mdash bull bull

i

Abri l

5 Trucos sobre graacuteficos 191

de celdas vaciacuteas dado que todaviacutea no disponemos de los datos desde mayo a diciembre

Para evitar este inconveniente bastariacutea con ocultar las filas 5 a 12 (mayo a diciembre) Al hacer esto Excel no dibuja los datos que haya en filas ocultas con lo que obtendremos un resultado como el de la figura 541 Para ocultar estas filas seleccioacutenelas y luego vaya a FormatogtFilagtOcultar

CAPIacuteTULO 6

Trucos sobre foacutermulas y funciones

Trucos 60 a 80

Las foacutermulas y funciones proporcionan la loacutegica que da potencia a las hojas de caacutelculo Saber manipular la loacutegica de programacioacuten siempre resulta un reto pero mantener un seguimiento de la loacutegica de programacioacuten a lo largo de muacutelt ishyples celdas hojas y libros puede ser particularmente difiacutecil especialmente cuanshydo estas hojas de caacutelculo crecen y son reutil izadas Y lo que es maacutes las caracteriacutesticas incorporadas en Excel en relacioacuten a las foacutermulas y funciones pueshyde que no siempre sean las que desea Por suerte existen numerosas formas de mantener en buen estado esas foacutermulas y funciones

Antildeadir un texto descriptivo a las foacutermulas Los rangos con nombre de Excel y los comentarios de celdas pueden ayudar a clarificar las foacutermulas pero a veces desearaacute poder antildeadir maacutes documentacioacuten dentro de los propios foacutermulas Con los trucos de este apartado podraacute antildeadir un texto descriptivo a las foacutermulas de forma raacutepida y sencilla

Incluso cuando haya escrito varias foacutermulas y funciones por usted mismo cuando tenga que volver a ellas maacutes adelante normalmente tendraacute que seguir las referencias a celdas para averiguar queacute era lo que haciacutea la funcioacuten Seriacutea una gran idea asiacute se pudiese antildeadir al final de la foacutermula alguacuten texto (que no interfishyriese con el resultado) que proporcionase maacutes informacioacuten sobre el mecanismo de la foacutermula para asiacute poder consultarlo maacutes adelante

El problema por supuesto es que en el momento en el que antildeada texto como parte de la foacutermula el resultado de la misma no seraacute numeacuterico y no podraacute ser

uuml

194 Excel Los mejores trucos

utilizado en caacutelculos posteriores Excel sin embargo proporciona una funcioacuten a menudo olvidada que puede utilizar para antildeadir texto descriptivo a las foacutermulas o a las funciones

Digamos que tiene la siguiente foacutermula en la celda Al 1

=SUMA($A$1$A$10)$B$1

Suponiendo que $A$1$A$10 contienen varios resultados numeacutericos que reshypresentan los totales para un mes en particular y que $B$1 contiene el porcenshytaje que representa un impuesto podemos antildeadir alguacuten texto descriptivo a la foacutermula utilizando la funcioacuten N de Excel

=SUMA($A$1$A$10N(Valores para abril))$B$1+N(Impuesto para abril)

Ahora puede determinar para queacute se estaacute utilizando la foacutermula simplemente seleccionando esta celda y mirando la barra de foacutermulas La funcioacuten N siempre devuelven un valor de 0 sea cual sea el texto por lo que no interfiere con el resultado total de la foacutermula

0 ^ 3 Mover foacutermulas relativas sin cambiar las referencias ) ^ V ^ ^ H En Excel una referencia de una foacutermula puede ser relativa o absoluta Sin

^ ^ ^ ^ ^ ^ | embargo algunas veces desearaacute reproducir las mismas foacutermulas en alguacuten otro lugar de la hoja o el libro o incluso en otra hoja diferente

Cuando una foacutermula necesita hacerse absoluta escriba el signo del doacutelar ($) delante de la letra de la columna y o del nuacutemero de la fila que hace referencia una celda como por ejemplo en $A$1 Una vez hecho esto no importa doacutende copie la foacutermula que la referencia se mantendraacute a la misma celda

Aveces de todas formas desearaacute configurar numerosas foacutermulas que no conshytengan referencias absolutas pero siacute relativas Normalmente hariacutea esto de forma que cuando copie la celda con la foacutermula original en otro rango las referencias a columnas y filas cambien en funcioacuten de la nueva ubicacioacuten

Por uacuteltimo otras veces desearaacute configurar las foacutermulas utilizando una mezshycla de referencias relativas y absolutas y desearaacute reproducirla en otro rango de la misma hoja en otra hoja del mismo libro o incluso en una hoja de otro libro Puede hacer todas estas cosas sin tener que cambiar ninguna referencia a rangos que haya dentro de las foacutermulas

Seleccione el rango de celdas que desea copiar Vaya a EditargtReemplazar y en el cuadro de texto Buscar escriba = (un signo de igual) En el cuadro de texto Reemplazar con escriba (el signo de la arroba) o cualquier otro siacutembolo que sepa que no esteacute siendo utilizado por ninguna de las foacutermulas A continuacioacuten haga clic en el botoacuten Reemplazar todos

6 Trucos sobre foacutermulas y funciones 195

Todas las foacutermulas apareceraacuten en la hoja con el signo en lugar del signo = Ahora simplemente puede copiar este rango pegarlo en el destino que desee seleccionar dicho rango de destino e ir a EdicioacutengtReemplazar donde esta vez reemplazaremos el signo por el signo = Con ello conseguiremos que las foacutershymulas hagan referencia a las mismas celdas que lo haciacutean las originales

Comparar dos rangos de Excel Buscar las diferencias entre dos grandes tablas con datos puede ser una tarea muy costosa Afortunadamente al menos hay dos meacutetodos con los que podemos automatizar lo que de otra manera seriacutea un proceso manual muy tedioso

Estos dos meacutetodos ya los hemos utilizado anteriormente cuando recibimos una copia actualizada de una hoja de caacutelculo y necesitaacutebamos identificar queacute celdas en la copia actualizada eran diferentes de las celdas que habiacutea en la copia original Ambos meacutetodos nos ahorraraacuten el tedioso trabajo de hacer una comproshybacioacuten manual y lo que es maacutes importante evitaraacuten la posibilidad de cometer errores Para los siguientes ejemplos hemos copiado los datos maacutes nuevos en la misma hoja en la que estaban los antiguos En la figura 61 se muestra coacutemo se presentan los datos en dos rangos Tenga en cuenta que para facilitar la lectura hemos puesto en negritas las celdas de la tabla 2 que no son iguales que las correspondientes de la tabla 1

1 A B C 1 Nombre Edad Aacuterea 2 Juan 22 1a 3 Antonio 33 la 4 Marta 55 2c 5 Cristina 48 3d 6 Mariacutea 29 3d 7 Carlos 45 4a

3 9 Nombre Edad Aacuterea 10 Juan 22 2c 11 Antonio 33 1a 12 Marta 55 2d 13 Cristina 43 3d 14 David 29 3d 15 Carlos 45 4a 16

H 4 bull raquo l _Hoia l Hoia2 jHpja3

D E F G 7

mdash-

mdash I laquol l bull i f l Figura 61 Dos rangos a ser comparados

Meacutetodo 1 Utilizar Verdadero o Falso

El primer meacutetodo implica introducir una simple foacutermula en otro rango con el mismo tamantildeo y composicioacuten La parte mejor de este meacutetodo es que puede antildea-

196 Excel Los mejores trucos

dir la foacutermula en un solo paso sin tener que copiar y pegar Para comparar los rangos que se muestran en la figura 61 seleccione el rango E1G7 comenzando por la celda El Esto aseguraraacute que dicha celda sea la activa en la seleccioacuten

Una vez seleccionado el rango haga clic en la barra de foacutermulas y escriba lo siguiente

=A1=A9

Introduzca esta foacutermula pulsando Control-Intro al mismo tiempo De esta forma estaraacute introduciendo la foacutermula con referencia relativa en cada una de las celdas de la seleccioacuten Eacuteste es un meacutetodo estaacutendar para introducir una foacutermula en una matriz de celdas y hacer que esa referencia cambie de forma apropiada seguacuten cada celda

El rango El G7 deberiacutea rellenarse con el valor Verdadero (son iguales) o Falso (no son iguales)

Si los dos conjuntos de datos residen en diferentes hojas de caacutelculo puede utilizar una tercera hoja para almacenar los valores VerdaderoFalso simpleshymente introduciendo la foacutermula en la matriz correspondiente Por ejemplo sushyponiendo que la segunda tabla estaacute en la Hoja2 y comienza en la celda A9 y la tabla original estaacute en la Hojal y comienza en la celda A l deberaacute introducir en la tercera hoja la siguiente foacutermula utilizando el meacutetodo de la matriz

=Hoja l Al=Hoja2A9

Puede que encuentre uacutetil a ajusfar el zoom cuando trabaje con gran cantidad de datos

Para eliminar una foacutermula introducida en una matriz debe seleccionar x y eliminar todo el rango No podraacute por consiguiente eliminar w solamente una parte de eacutel

Meacutetodo 2 Utilizar el formato condicional

El segundo meacutetodo es normalmente el preferido ya que es maacutes sencillo hacer los cambios necesarios una vez que se realiza la comparacioacuten Sin embargo con este meacutetodo ambos conjuntos de datos deben estar en la misma hoja lo que significa utilizar la funcioacuten de copiar y pegar simple

De nuevo supondremos que estamos comparando los dos rangos que dijimos antes Seleccione el rango Al C7 comenzando por la celda A l de forma que nos aseguremos que sea la celda activa

Eacutey

^A

6 Trucos sobre foacutermulas y funciones 197

Una vez hecho esto vaya a FormatogtFormato condicional Elija la opcioacuten Foacutershymula en el cuadro de lista desplegable y al cuadro de texto situado su derecha escriba la siguiente foacutermula

=N0(A1=A9)

Haga clic en el botoacuten Formato (veacutease figura 62) y elija el formato con el que desea remarcar aquellas celdas que sean diferentes

31

A g r e g a r raquo j Eliminar | j Aceptar | Cancelar I

Figura 62 Cuadro de diaacutelogo de formato condicional

Haga clic en Aceptar y todas las celdas que sean diferentes tendraacuten el formato que definioacute en el paso anterior

Si real iza cambios en los da tos el f o r m a t o de las celdas cambia raacute automaacuteticamente dependiendo de si la comparacioacuten con las celdas de la otra tashybla es verdadera o falsa

B| Rellenar todas las celdas en blanco en una lista H bullbullKfl A m e n u d o m u c n a gente deja celdas en blanco si el dato que deben

I ^ H Iacute I contener es el mismo que el de la celda inmediatamente superior Visualmente esto hace que las listas sean maacutes sencillas de leer pero desde el punto de vista estructural no es una buena idea Con los trucos de este apartado podraacute rellenar las celdas en blanco de una lista de forma raacutepida y sencilla

Muchas de las funciones de Excel estaacuten disentildeadas para ser utilizadas en listas Para que la mayoriacutea de estas funciones hagan su trabajo correctamente las lisshytas no deben contener ninguna celda en blanco y los encabezados de las columshynas deben estar configurados con un formato diferente al de los datos

Cuando rellenar datos en Excel resulta una buena praacutectica asegurarse de que todas las celdas que estaacuten dentro de una lista tienen alguacuten valor dentro de ellas Sin embargo muchas listas estaacuten configuradas de forma similar a como se muesshytra en la figura 63

Mientras que los precios se repiten en la columna Coste los tipos de frutas en la columna Frutas no Como ya sentildealamos al principio del capiacutetulo 1 esto puede

_j p _ _ _ Vista previa del formato que desea usar cuando a condicioacuten sea verdadera AaBbCcYyZz

198 Excel Los mejores trucos

crear muchos problemas cuando se utilicen caracteriacutesticas tales como subtotales y tablas dinaacutemicas En la mayoriacutea de los casos Excel espera que los datos relacioshynados esteacuten configurados en una lista o tabla continua en la que no haya celdas en blanco

I ^ B C D E 1 F GTJ 1 Frutas Coste 2 Manzana 125 euro 3 125 euro 4 Plaacutetano 255 euro 5 255 euro 6 255 euro 7 Naranja 155 euro 8 155 euro 9 155 euro 10 Pera 455 euro 11 12 13 14 15 16 J 17 18

|H lt bull M Hojal Hoja2 Hoja3 |_ltj l HU

Figura 63 Lista de una hoja configurada con celdas en blanco

Existen dos meacutetodos para rellenar las celdas en blanco de una lista con una foacutermula y con una macro

Meacutetodo 1 Rellenar las celdas en blanco mediante una foacutermula

Digamos que tiene una lista con entradas en la columna A similar a la del ejemplo anterior y con una lista que contiene numerosas celdas en blanco A continuacioacuten mostramos un meacutetodo faacutecil y raacutepido para rellenar esas celdas en blanco con los valores de las celdas inmediatamente superiores

Seleccione todos los datos de la columna A vaya a Edicioacutengtlr a (Control-I) y luego haga clic en Especial Seleccione el botoacuten de opcioacuten Celdas en blanco y haga clic en Aceptar Llegados este punto hemos seleccionado solamente las celshydas vaciacuteas que se encuentran dentro de la lista Pulse la tecla = (signo de igual) y luego la tecla cursor arriba Ahora mientras mantiene pulsada la tecla Control pulse la tecla Intro Puede convertir raacutepidamente las foacutermulas a valores simpleshymente seleccionando la columna A por completo Vaya a EdicioacutengtCopiar (Con-trol-C) luego vaya a EdicioacutengtPegar especial active la casilla de verificacioacuten Valores y haga clic en el botoacuten Aceptar

6 Trucos sobre foacutermulas y funciones

Meacutetodo 2 Rellenar las celdas en blanco a traveacutes de una macro

Si va a tener que rellenar celdas en blanco con frecuencia deberiacutea considerar resolver este problema utilizando una macro La siguiente macro realiza todo este trabajo

Para crearla vaya a HerramientasgtMacrogtEditor de Visual Basic (AltOpcioacuten-Fl 1) luego seleccione la opcioacuten de menuacute lnsertargtMoacutedulo e introduzca el siguiente coacutedigo

Sub RellenarBIancos( ) Dim rRangel As Range rRange2 As Range Dim IReply As Integer

If SelectionCellsCount = 1 Then MsgBox Debe seleccionar la lista e incluir las celdas en blanco_ vblnformation Aviso ~~ Exit Sub

Elself SelectionColumnsCountgtl Then MsgBox Debe seleccionar soacutelo una columna _ vblnformation Aviso Exit Sub

End If

Set rRangel = Selection

On Error Resume Next

Set rRange2 = rRangelSpecialCells(xlCellTypeBlanks) On Error GoTo 0

If rRange2 Is Nothing Then MsgBox No se encontraron celdas en blanco _

vblnformation Informacioacuten Exit Sub

End If

rRange2FormulaRICl = =R[-1]C

IReply = MsgBox(iquestConvertir a valores vbYesNo + vbQuestion Atencioacuten)

If IReply = vbYes Then rRangel = rRangelValueacute End Sub

Despueacutes de introducir este coacutedigo cierre la ventana para volver a la ventana

principal de Excel y guardar el trabajo Ahora vaya a HerramientasgtMacrogtMacros

(AltOpcioacuten-F8) seleccione la macro RellenarBIancos y haga clic en el botoacuten

Ejecutar aunque tambieacuten puede utilizar el botoacuten Opciones y asignar esta macro

a una tecla de acceso raacutepido

200 Excel Los mejores trucos

Q H Q Hacer que las foacutermulas se incrementen por filas | V ^ f l cuando las copie a lo largo de las columnas

^ M B B M La funcioacuten de Excel que incrementa automaacuteticamente las referencias a celdas funciona bastante bien en la mayoriacutea de los casos pero a veces desearaacute cambiar la forma en la que lo hace

Por ejemplo puede que desee hacer referencia a una uacutenica celda como puede ser A l y luego copiar esta referencia a lo largo de las columnas que hay a la derecha Normalmente Excel cambiaraacute la referencia de la siguiente forma = B1 = C1 =D1 etc lo cual no es el resultado que deseamos En este caso queremos que las foacutermulas se incrementen por filas en vez de por columnas es decir =A1 =A2 =A3 etc Por desgracia no hay una opcioacuten en Excel que le permita hacer esto Pero podemos conseguir realizar todo esto mediante la funcioacuten INDIRECTO y la funcioacuten DIRECCIOacuteN situada dentro del anterior

Quizaacute la mejor forma de explicar coacutemo crear la funcioacuten requerida es utilizar un ejemplo en el que los resultados sean predecibles En las celdas Al A10 introshyduzca los nuacutemeros del 1 al 10 en este orden Seleccione la celda DI e introduzca la siguiente foacutermula en ella

= INDIRECTO(DIRECCIOacuteN(COLUMNA() - 31) )

Tan pronto como introduzca esto el nuacutemero 1 deberiacutea aparecer en la celda d i Esto es debido a que la foacutermula hace referencia a la celda A l

Si copia esta foacutermula a lo largo de las columnas situadas a la derecha la celda El contendraacute el nuacutemero 2 Es decir a pesar de que estamos copiando a lo largo de las columnas la referencia de la foacutermula se estaacute incrementando por filas tal y como se muestra en la figura 64

Este meacutetodo es especialmente uacutetil cuando una hoja de caacutelculo tiene encabezados que van de arriba a abajo en una columna y desea crear una referencia dinaacutemica a esos encabezados de fila a lo largo del resto de columnas

Si sigue copiando esto hacia la derecha la celda Fl contendraacute el nuacutemero 3 la celda Gl contendraacute el nuacutemero 4 etc Eacuteste es un proceso muy faacutecil de seguir si solamente se hace referencia a una uacutenica celda Pero muchas veces necesitaraacute hacer referencia a un rango de celdas que estaacute siendo utilizado como argumento de una funcioacuten Utilizaremos la popular funcioacuten SUMA para demostrar a queacute nos referimos Suponga que recibe una larga lista de nuacutemeros y su trabajo es sumar la columna de nuacutemeros para obtener un total algo parecido a esto

=SUMA($A$1$A$2) =SUMA($A$1$A$3) y =SUMA($A$1$A$4)

6 Trucos sobre foacutermulas y funciones 201

IB Microsoft Excel -Libro bull-bull 1- WMSSU^^^^^M

41 J Aria

LU 1 2

3 4 5 6 7 8 9 10 11 12 13 14 15

16 17 18 19

illaquo 4

Listo

Archivo

J d

D1

A

Edicioacuten

J _J

1

2

3 4 5 6 7 8 9

10

Ver Insertar Formato Herramientas Datos Ventana

j Jk U -J ^ - 9 Iacuteiquest s - iquest1 M ioo iacute o N J s i i i ^ j ooo euro oE bdquodeg8 m O - gt

pound =INDIRECTO(DIRECCION(COLUMNA0-31))

B C ~~ D I

1 1

E F G

2

bull H Hojal Hoja2 X H o j a 3 j lt j |

MAYUacuteS NUM

~ _ _

mdash

^ bull i r

Figura 64 El resultado de copiar la celda DI a la celda El

El problema surge porque los resultados necesitan ser dinaacutemicos y expandirse a lo largo de las 100 columnas solamente para la fila 1 no 100 filas hacia abajo en otra columna (como suele ser lo habitual)

Naturalmente podriacutea escribir manualmente esas funciones en cada celda individual pero eso seriacutea un trabajo m u y largo En vez de eso puede utilizar el mismo principio el que hemos utilizado antes al referenciar a una uacutenica celda

Rellene el rango A l A l 0 0 con los nuacutemeros 1 al 100 en este orden Para ello introduzca un 1 en la celda A l seleccioacutenela y mientras mantiene pulsada la tecla Control haga clic en el pequentildeo recuadro de la esquina inferior derecha y arrasshytre el cursor del ratoacuten hasta la fila 100 Ahora seleccione la celda DI e introduzca la siguiente foacutermula

=SUMA(INDIRECTO(DIRECCIOacuteN(11) amp amp DIRECCIOacuteN (COLUMNA () -21) ) )

Esto le daraacute un resultado de 3 que se corresponde con la suma de las celdas A1A2 Copie esta foacutermula en la celda El y obtendraacute un resultado de 6 que se corresponde con la suma de las celdas AlA3 De igual manera al copiar la foacutershymula en la celda Fl obtendraacute un resultado de 10 que es la suma de las celdas A1A4 (veacutease figura 65)

202 Excel Los mejores trucos

B Microsoft Excel - Libro 1 ^muuml

iquestsectj Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana T f l x

J J J J J J i ^ a iquest -J ^ - ^ 9 amp pound - H Uuml JjJJ 4gt 1007o v |

Arial - 10 - N iT S ^ W M ^j ^J 000 euro t bdquodeg8 pound^ D T ^ T A T |

DI ^ ^ =SUMA(INDIRECTQ(DIRECCION(11)ampampD1RECCIQM(CQLUMNAO-21)))

2 3 4 5 6 7 8 9 10 11 12 13 14

1Fiexcl H i bull Listo

H

1 2 3 4 5 6 7 8 9

10 11 12 13 14 15

Hojal Hoja2 XHoja3

B C D I E F G H 6 10

i r

Figura 65 Resultado de copiar la celda DI en la celda Fl

La funcioacuten volaacutetil COLUMNA hace que la uacutel t ima referencia a celdas se incremente en un 1 cada vez que la copia en una nueva columna Esto es debido a que la funcioacuten COLUMNA siempre devuelve el nuacutemero de la columna (no la letra) de la celda que la contiene a menos que haga referencia a una celda difeshyrente

Otra alternativa es utilizar la funcioacuten Pegado especialgtTrasponer de Excel Antildeada la foacutermula =SUMA ($A$1 $A2) a la celda Bl (observe que hemos utilizado una referencia relativa a fila y absoluta a columna en $A2) y luego copie esta foacutermula hacia abajo hasta la celda B100 Teniendo seleccionadas las celdas B2B100 coacutepielas seleccione la celda DI (o cualquier celda que tenga 100 o maacutes columnas a la derecha) y luego vaya a EdicioacutengtPegado especialgtTrasponer Si lo desea puede eliminar las foacutermulas que hay en B2B100

Convertir fechas en fechas con formato de Excel Las fechas que se importan desde otros programas suelen causar problemas en Excel Mucha gente reescribe manualmente esas fechas pero existen meacutetodos maacutes sencillos para solucionar este problema

Como puede verse en la figura 66 las foacutermulas en la columna B convierten los datos situados en la columna A en tres resultados en la columna C todos ellos siguiendo el formato de fecha americano de mmdd aa

La figura 67 muestra el mismo meacutetodo excepto que las celdas de la columna C tienen el formato de fechas europeo (ddmmaa)

6 Trucos sobre foacutermulas y funciones 203

B Fecha antigua Foacutermula utilizada Resultado 112303 =IZQUIERDA(A2iexcl2)ampTampEXTRAE(A232)amp7ampDERECHA(A22) 112303 031123 =EXTRAE(A332)amp7ampDERECHA(A32)amp7ampIZQUIERDAfA3iexcl2) 11 23D3 231103 = EXTRAE (A4 3 2) amp ampIZQ UIE R D A(A42) amp7 ampD E R E C H A(A4 2) 11 23D3

Figura 66 Formatos de fecha convertidos en fechas vaacutelidas (formato americano)

A B C Fecha antigua Foacutermula utilizada Resultado 112303 =EXTRAEIacuteA232)amp7ampIZQUIERDAIacuteA2iexcl2)amp7ampDERECHA(A22) 2311 03 031123 =DERECHAfA3iexcl2)amp7ampEXTRAEiacuteA3iexcl32)amp7ampIZQUIERDAfA3iexcl2J 2311 flB 231103 = IZQ UIE R D A(A4 2) amp7 ampEXTR AE (A4 3 2) amp7 ampD E R E C H A(A4 2) 2311 03

Figura 67 Formatos de fecha convertidos en fechas vaacutelidas (formato europeo)

Por suerte estas interesantes foacutermulas nos quitaraacuten algo de estreacutes a la hora de trabajar con fechas importadas

Sumar o contar celdas evitando valores de error Los valores de error son advertencias muy uacutetiles pero a veces desearaacute hacer los caacutelculos sin tener en cuenta esos errores Para poder hacer esto tendremos que utilizar funciones que sean tolerantes a dichos errores

Teniendo un rango de celdas que contienen uno o maacutes valores de error la mayoriacutea de las foacutermulas que hagan referencia a ese rango tambieacuten devolveraacuten un valor de error Podemos evitar esta frustracioacuten si utilizamos la funcioacuten BDSUMA

Supongamos que tiene una larga lista de nuacutemeros de los que desea obtener la suma total Sin embargo una de las celdas por cualquier razoacuten estaacute devolvienshydo un valor de error NA

Rellene algunos datos de la misma forma que aparecen en la figura 68

Para generar el error NA introduzca la foacutermula =NA () en las celdas A2 y B2 La celda Al 2 utilizar la funcioacuten estaacutendar SUMA que suma los valores de las celdas A2A11 y dado que la celda A2 contiene el error NA la funcioacuten SUMA tambieacuten devolveraacuten dicho error Al rango DI D2 se le ha dado el nombre Criterio y se utiliza como uacuteltimo argumento para la funcioacuten BDSUMA que se encuentra en la celda B12

La sintaxis para la funcioacuten BDSUMA (y para todas las funciones de base de datos) es la siguiente

=BDSUMA(base de datoscampocriterio)

204 Excel Los mejores trucos

1 2 3 4 5 6 7 8 9 10 11 12

A Nuacutemeros

NA

B Nuacutemeros2

1 2 3 4 5 6 7 8 9

NA 1 2 3 4 5 6 7 8 9

C

Figura 68 Datos rellenados de forma que generan un error NA

El argumento base de datos identifica al rango de celdas que componen la lista o la base de datos Dentro del rango de base de datos las filas con informashycioacuten son tratadas como registros mientras que las columnas son tratadas como campos

La primera fila contiene etiquetas para todas las columnas que sirven a modo de encabezados

El argumento campo indica queacute columna es utilizada en la funcioacuten La coshylumna puede ser identificada por el nombre utilizando las etiquetas que se enshycuentran en la parte superior de la columna o bien puede ser identificada por su posicioacuten La primera columna es la 1 la cuarta es la 4 etc

El argumento criterio identifica un rango de celdas que contienen condicioshynes El rango que se utiliza para el criterio debe incluir al menos una etiqueta de columna ademaacutes de al menos una celda por debajo de ella que especifique una condicioacuten para la columna

Si los datos que desea sumar contienen diferentes tipos de errores deberaacute conshysiderar utilizar la funcioacuten BDSUMA junto con un amplio rango de criterios que se acomoden a todos los posibles errores Sin embargo lo mejor siempre es enshyfrentarse a los errores en su origen y eliminarlos siempre que sea posible en vez de evitarlos

Si de todas formas desea evitar esos errores utilizaremos la funcioacuten BDSUMA pero esta vez necesitaremos configurar un criterio que se extienda por cuatro columnas expandiendo el rango con nombre que contiene el criterio para que incluya las celdas D1G2

Para ello utilizaremos la opcioacuten lnsertargtNombregtDefinir tal y como se muesshytra en la figura 69

Excel dispone de un rico conjunto de funciones de base de datos y puede ut ishylizar cualquiera de ellas de la misma forma Por tanto considere utilizar este meacutetodo pa ra las funciones BDCONTAR BDCONTARA BDMAX BDMIN BDPRODUCTO etc

6 Trucos sobre foacutermulas y funciones 205

m Microsoft Excel - LibroZ

bullM]iexcl Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana - ff X

Times New Romaacuten 1 0 - N K S s = s ^| fsect 000 euro oo o i^ W O

B12 ^ pound ^SUMA(SI(RE5IDUQ(F1LA($A$1$A$500)2)=0iexclA$ 1A$5000))

Nuacutemerosl Nuacutemeros2

NA r NA

1

2

3

4

5

6

7

8

9

-

9 10 11

iexcl 121 NA ^ 13 14 15 16 17 18 19 20 t i

lt lt bull bull l H o j a l H o j a 2 H o j a 3 _

Esta celda ha usado | la Funcioacuten estaacutendar SUMA lo que produce un error porque A2 no tiene valor

D

Nuacutemeros2 X A estas celdas se las ha llamado Criterio

Esta celda contiene una foacutermula BDSUMA que usa el rango Criterio para ignorar cualquier error de tipo NA

bull i r

Figura 69 La funcioacuten BDSUMA utilizada para ignorar diferentes errores

Reducir el impacto de las funciones volaacutetiles a la hora de recalcular Las funciones volaacutetiles que deben ser recalculadas cada vez que el usuario realiza una accioacuten en Excel pueden consumir una gran cantidad de tiempo Aunque estas funciones son muy uacutetiles para descartarlas por completo existen algunos meacutetodos para reducir los tiempos de espera que generan

Una funcioacuten volaacutetil es simplemente una funcioacuten que debe recalcularse cada vez que se realiza una accioacuten en Excel como puede ser introducir datos cambiar el ancho de las columnas etc (una de las pocas acciones que no provocaraacuten un recaacutelculo de las funciones volaacutetiles es la de cambiar el formato de las celdas a menos que lo haga a traveacutes de la opcioacuten Pegado especialgtFormatos)

Probablemente dos de las funciones volaacutetiles maacutes conocidas son HOY y AHORA Dado que la primera devuelve la fecha actual y la segunda la fecha y la hora actual es importante que ambas tengan que recalcularse a menudo Si tiene una hoja de caacutelculo que contienen muchas funciones volaacutetiles probablemente estaraacute obligando a Excel a realizar muchos caacutelculos innecesarios de forma continua Este problema puede ser peor cuando tiene funciones volaacutetiles que estaacuten anida-

206 Excel Los mejores trucos

das dentro de funciones no volaacutetiles ya que en esos casos la foacutermula entera se convertiraacute en volaacutetil

Para entender lo que estamos hablando supongamos que tiene una hoja de caacutelculo que estaacute utilizando la funcioacuten HOY dentro de una tabla compuesta por 20 columnas y 500 filas Esto significa que tiene 10000 funciones volaacutetiles en el libro cuando en realidad una sola podriacutea realizar el mismo trabajo En vez de anidar 10000 funciones HOY dentro de cada una de las celdas de la tabla en muchos casos podraacute introducir simplemente la funcioacuten HOY en una celda que esteacute aparte darla el nombre FechaHoy (o bien utilizar el identificador de la celshyda) y luego hacer referencia a FechaHoy en todas las funciones de la tabla

(i Una forma raacutepida y sencilla para hacer esto es seleccionar toda la N tabla y luego ir a EdicioacutengtReemplazar para reemplazar el texto HOYO

x por FechaHoy en todas las foacutermulas

Ahora ya tenemos una sola funcioacuten HOY en vez de las 10000 que tendriacutea de la otra forma Para poner otro ejemplo digamos que las 500 primeras filas de la columna B estaacuten rellenadas con foacutermulas relativas como =H0Y () -Al y las prishymeras 500 filas de la columna A tienen diferentes fechas que son menores que la fecha de hoy Estamos obligando a Excel a recalcular la funcioacuten volaacutetil HOY 499 veces maacutes de lo necesario cada vez que realiza cualquier accioacuten en Excel Si coloshyca la funcioacuten HOY en cualquier celda a la que le da el nombre FechaHoy (o cualquier otro nombre similar) puede utilizar la foacutermula = FechaHoy-Al en vez de lo anterior Con esto Excel soacutelo necesitaraacute recalcular una vez la aparicioacuten de la funcioacuten HOY lo cual mejoraraacute considerablemente el rendimiento de la aplicacioacuten

^^^Q Contar solamente una aparicioacuten de cada entrada sect K j 5 J de una lista

M B Cuando tiene una larga lista de elementos puede que desea realizar la cuenta de los elementos pero sin tener incluir aquellas entradas que aparezcan en varias ocasiones Con este truco podraacute contar cada entrada uacutenica solamente una vez

Observe la lista que aparece en la siguiente figura que ha sido ordenada de forma que pueda ver las entradas repetidas faacutecilmente Un conteo normal de esta lista (utilizando la funcioacuten CONTARA) resultariacutea en que los nombres Marta Dashyvid Laida y Ana fueran contados maacutes de una vez La funcioacuten BDCONTARA ofreshyce una alternativa que resulta m u y eficiente y faacutecil de modificar La sintaxis de esta funciones la siguiente

=BDCONTARA(base de datoscampocriterio)

6 Trucos sobre foacutermulas y funciones 207

A 1 Nombres 2 David 3 Al ex 4 Ana 5 Marta 6 Ana 7 Santos 8 Laida 9 Mar 10 Luis 11 David 12 Laida 13 Aacutengel 14 Marta 15 Carolina 16 Marta 17 18

B

Figura 610 Rango con nombres ordenados

^v Los argumentos para esta funcioacuten son los mismos que para la funcioacuten w^ BDSUMA que ya vimos anteriormente

A partir de la lista anterior introduzca en la celda DI la palabra Criterio (o cualquier encabezado que no sea igual que el de una columna un campo) Debajo de eacuteste en la celda D2 introduzca la siguiente foacutermula

=CONTARSI($A$2A2A2)=1

Observe la combinacioacuten de referencias relativas (A2) y absolutas ($A$2) Esto resulta vital para que el criterio pueda funcionar

Ahora en la celda de la que desea mostrar el resultado introduzca la siguienshyte funcioacuten

=BDCONTARA($A$1$A$10 01$D$1$D$2)

Utilizaraacute el criterio para excluir los duplicados y proporcionar el resultado que necesitamos que en este caso es 10 ya que solamente hay ese nuacutemero de nombres uacutenicos

Sumar cada dos tres o cuatro filas o celdas Es probable que desee sumar cada segunda tercera cuarta etc celda de una hoja de caacutelculo Ahora es posible si utiliza el siguiente truco

Excel no dispone de una funcioacuten estaacutendar que sume cada cierto nuacutemero de celdas o filas Sin embargo podemos llevar a cabo esta tarea de diferentes for-

208 Excel Los mejores trucos

mas Todas ellas utilizan la funcioacuten FILA y la funcioacuten RESIDUO La primera la funcioacuten FILA devuelve el nuacutemero de fila de la referencia a una uacutenica celda Lo vemos

FILA(referencia)

La funcioacuten RESIDUO devuelve el resto de dividir un nuacutemero por otro

RESIDUO(nuacutemerodivisor)

Se anida la funcioacuten FILA dentro de la funcioacuten RESIDUO (en el lugar del argushymento nuacutemero) se divide por 2 (para sumar cada dos celdas) y se comprueba que el resultado es 0 (cero) Si lo es entonces la celda es sumada

Puede utilizar estas funciones de diferentes formas (consiguiendo mejores reshysultados utilizando unas en vez de otras) Por ejemplo una foacutermula matricial que sume cada dos celdas en el rango $A$1$A$100 tendriacutea esta forma

=SUMA(SI(RESIDUO(FILA($A$1$A$500)2)=0$A$1$A$5000))

Dado que esto es una foacutermula matricial debe introducirla usando Control-Mayuacutes-Intro Al hacer esto Excel introduciraacute unas llaves quedando la foacutermula de esta forma

=SUMA(SI(RESIDUO(FILA($A$1$A$50 0)2)=0$A$1$A$5000))

Debe permitir que Excel introduzca estas llaves ya que si lo hace por su cuenta haraacute que la foacutermula falle

Aunque este meacutetodo funciona no resulta un disentildeo de hoja de caacutelculo ideal ya que estamos utilizando sin necesidad una foacutermula matricial Para complicar maacutes las cosas estamos utilizando la funcioacuten volaacutetil FILA anidada dentro de ella haciendo que toda la foacutermula matricial sea volaacutetil Esto significa que la foacutermula tiene que ser recalcular constantemente mientras estaacute trabajando en el libro Por ello no resulta el mejor camino a seguir

A continuacioacuten mostramos otra foacutermula que podriacutea utilizar siendo eacutesta una mejor eleccioacuten

=SUMAPRODUCTO((RESIDUO(FILA($A$1$A$500)2)=0)($A$1$A$500))

Deberiacutea tener en cuenta de todas formas que esta foacutermula devolveraacute iexclVAshyLOR si alguna de las celdas del rango contiene texto en vez de nuacutemeros Esta foacutermula aunque no es una verdadera foacutermula matricial tambieacuten ralentizaraacute Excel si se utilizan muchas instancias de ella o si esas instancias hacen referencia a grandes rangos

S

6 Trucos sobre foacutermulas y funciones 209

Por suerte existe un meacutetodo mucho mejor que no soacutelo es maacutes eficiente sino que ademaacutes es maacutes flexible Este meacutetodo requiere del uso de la funcioacuten BDSUMA Para este ejemplo utilizamos el rango A1A500 como el rango que usaremos para sumar cada cierto nuacutemero de celdas

Introduzca el texto Criterio en la celda El y en la celda E2 introduzca la siguiente foacutermula

= R E S I D U O ( F I L A ( A 2 ) - $ C $ 2 - 1 $ C $ 2 ) = 0

Seleccione la celda C2 y luego vaya a DatosgtValidacioacuten Seleccione la opcioacuten Lista en el cuadro de lista desplegable y en el cuadro de texto Origen escriba 12345678910 Aseguacuterese de que estaacute activada la casilla de verificacioacuten Celda con lista desplegable y entonces haga clic en Aceptar En la celda Cl introduzca SUMAR cada y en cualquier otra celda a partir de la fila 1 introduzca esta forma

= B D S U M A ( $ A $ A 1 $ E $ 1 $ E $ 2 )

En la celda inmediatamente superior a la que introdujo la funcioacuten BDSUMA introduzca esto

=Sumando cada amp $C$2 amp celdas

Ahora todo lo que tiene que hacer es elegir el nuacutemero deseado en la celda C2 y la funcioacuten BDSUMA haraacute el resto

Como puede ver en la figura 611 puede utilizar una funcioacuten BDSUMA para sumar cada celda con el intervalo que haya especificado Esta funcioacuten es mucho maacutes eficiente que una foacutermula matricial o que la funcioacuten SUMAPRODUCTO Aunque su configuracioacuten puede ser algo maacutes compleja merece la pena el esfuershyzo para obtener los resultados

Encontrar la eneacutesima aparicioacuten de un valor Las funciones de buacutesqueda incorporadas en Excel pueden hacer un trabajo estupendo pero desgraciadamente Excel no dispone de una uacutenica funcioacuten que devuelva la eneacutesima aparicioacuten de un dato especificado Por suerte existen algunos meacutetodos para que Excel pueda hacer esto

Puede utilizar las funciones de buacutesqueda y de referencia de Excel sobre una tabla de datos para extraer los detalles correspondientes a un valor especiacutefico Quizaacute la maacutes popular de todas esas funciones sea BUSCARV Aunque es estupenda para encontrar un valor especiacutefico en la columna maacutes a la izquierda de una tashybla no puede utilizarla para encontrar la eneacutesima aparicioacuten de dicho valor en la columna maacutes a la izquierda

m

210 Excel Los mejores trucos

1 2 3 4 5 6 7 3 9

A Nuacutemeros

500 euro 750 euro

2345 euro 1000 euro 996 euro 600 euro

B C |

I

I Sumando cada 3 celdas 3546 euro

D E Criterio

FALSO ^-

Esta celda no puede tener el mismo encabezado que la de nuacutemeros

Figura 611 Posible resultado final con formato

Sin embargo podemos utilizar un meacutetodo m u y simple para encontrar cualshyquier aparicioacuten de un valor especiacutefico utilizando la funcioacuten BUSCARV o una de las otras funciones de buacutesqueda

Para este ejemplo supondremos que tiene una tabla con dos columnas de datos siendo la columna A la que contiene los nombres y la columna B las edashydes correspondientes a cada uno de ellos tal y como se muestra en la figura 612

1 A 1 Nombre

2 Antonio 3 Alex 4 Ana 5 Marta 6 Juan 7 Santos 8 Laida 9 Mar 10 Luis 11 David 12 Laida 13 Aacutengel 14 Sol 15 Carolina 16 Concha 17 Aitana 18 Rodrigo 19 Agustiacuten 20

B Edad

32 30 23 36 25 30 31 30 28 23 33 45 28 29 30 38 29 19

C

Figura 612 Datos configurados para ser usados por la funcioacuten BUSCARV

Puede utilizar la funcioacuten BUSCARV para extraer la edad de una persona bashysaacutendose en su nombre Por desgracia algunos nombres puede que aparezca maacutes de una vez Lo que deseamos es poder buscar el nombre de David y hacer que la funcioacuten BUSCARV no soacutelo encuentra la primera aparicioacuten sino tambieacuten todas las demaacutes que pudiera haber A continuacioacuten veremos coacutemo podemos hacer esto (recuerde que en este ejemplo los datos estaacuten en las columnas A y B)

Primeramente seleccione la columna A por completo haciendo clic en la letra A que aparece en su encabezado y luego seleccione la opcioacuten lnsertargtColumnas para insertar una nueva columna en blanco (que se convertiraacute en la nueva co-

6 Trucos sobre foacutermulas y funciones 211

lumna A) Luego haga clic en la celda A2 (no saltamos Al porque Bl es un encashybezado) e introduzca la siguiente foacutermula

=B2ampC0NTARSI($B$2B2B2)

Propague esta foacutermula hacia abajo tantas filas como datos tenga en la columshyna B (para ello haga clic en la celda A2 y luego haga doble clic sobre el pequentildeo recuadro negro de la esquina inferior derecha) Acabaraacute teniendo en la columna A nombres tales como Davidl David2 David3 etc como puede verse en la fishygura 613 Observe la referencia absoluta para $B$2 en la funcioacuten CONTARSI y el uso de una referencia relativa para todas las referencias Esto es fundamental para que la funcioacuten haga su trabajo correctamente

A 1

bull 2 Arito ni oiacute iexcl 3 Alex | 4 Davidl 1 5 Marta [ 6 David2 I 7 Santosl

8 Laida 9 Mariacuteal 10 Luisl 11 David3 12 Carlos 13 Angeliacute 14 Alex2 15 Carolina 16 Angel2 17 Aitanal 18 Marta2 19 Agustiacutenl

[ 20

B Nombre Antonio Alex David Marta David Santos Laida Mar-Luis David Laida Aacutengel Alex Carolina Aacutengel Altana Marta Agustiacuten

C Edad

32 30 23 36 25 30 31 30 28 23 33 45 28 29 30 38 29 19

D

Figura 613 Datos obtenidos con la foacutermula BUSCARV recieacuten antildeadida a la columna A

Si no se ha dado cuenta todaviacutea observe que puede utilizar la columna A para encontrar las ocurrencias de un cierto nombre

Haga clic en la celda D2 e introduzca la siguiente foacutermula

= BUSCARV(David3$A$1$ C$10 03FALSE)

La foacutermula le devolveraacute la edad de la tercera aparicioacuten del nombre David tal y como puede verse en la figura 614

Por supuesto puede ocultar la columna A ya que no es necesario verla Tambieacuten puede utilizar los nombres de la columna A como rango de origen

para una lista situada en otra celda seleccionando la opcioacuten DatosgtValidacioacuten y luego eligiendo la opcioacuten Lista Luego haga una referencia a la celda que contenshyga esta lista en la funcioacuten BUSCARV

212 Excel Los mejores trucos

i pound

M 2 Antoniol

1 3 Alex 4 David1

| 5 Marta I 6 David2

7 Santosl I 8 Laida 9 Mariacutea 1

l O L u i s I i 11 J0avid3 12 IacuteCarlos 13 Angefl Iacute4_Alex2

15 _ Cardinal 16 Angel2 17 Aitanal 18 Marta2 19 Aqustiacutenl 20

B C Nombre Edad Antonio Alex David Marta David Santos Laida Mar Luis-David Laida Aacutengel Alex Carolina Aacutengel Aitana Marta Agustiacuten

32 30 23 36 25

30 31 30 28 23 33 45 28 29 30 38 29 19

D

23

E

Figura 614 Datos obtenidos con la segunda foacutermula BUSCARV antildeadida a la columna D

TRUCO Hacer que la funcioacuten subtotal de Excel sea dinaacutemica Aunque la funcioacuten SUBTOTALES es una de las funciones de Excel maacutes recomendables a veces desearaacute poder elegir queacute operacioacuten realiza o aplica a aquellos datos que pueden expandirse y contraerse

La funcioacuten SUBTOTALES de Excel se utiliza para realizar una funcioacuten especiacuteshyfica sobre un rango de celdas que tienen configurado un Autofiltro En estos casos la funcioacuten SUBTOTALES soacutelo utilizaraacute las celdas visibles (las celdas ocultas son ignoradas) La operacioacuten que realiza esta funcioacuten depende solamente del nuacuteshymero (entre 1 y 11) que proporcione como primer argumento (nuacutem_funcioacuten) Por ejemplo

= SUBTOTALES(1AlAl0 0)

Calcula el promedio de todas las celdas visibles en el rango Al A100 despueacutes de que se haya aplicado un Autofiltro Si todas las filas son visibles esta funcioacuten simplemente obtendraacute el promedio de todas ellas al igual que lo hariacutea la funcioacuten

=PROMEDIO(Al A100)

El nuacutemero que ha de proporcionarse como primer argumento de la funcioacuten SUBTOTALES es nuacutem_funcioacuten y que se corresponde con las funciones que se muestran en la siguiente tabla

6 Trucos sobre foacutermulas y funciones 213

Tabla 61 Nuacutemeros de funcioacuten para SUBTOTALES y su correspondiente funcioacuten

Nuacutenijimcioacuten

1

2

3

4

5

6

7

8

9

10

11

Funcioacuten

PROMEDIO

CONTAR

CONTARA

MAX

MIN

PRODUCTO

DESVEST

DESVESTP

SUMA

VAR

VARP

Dado que tiene que utilizar un nuacutemero entre 1 y 11 puede tener una funcioacuten SUBTOTALES que realice cualquier funcioacuten que elija Incluso puede elegir a parshytir de una lista desplegable que se encuentre en cualquier celda Veamos coacutemo podemos hacer esto

Introduzca todos los nombres de funcioacuten en el mismo orden en el que apareshycen en la tabla 61 en un rango de celdas Para este ejemplo utilizaremos el rango D l i D l l Teniendo seleccionado dicho rango haga clic en el Cuadro de nombres situado en la parte superior izquierda de la ventana (a la izquierda de la barra de foacutermulas) y escriba el nombre Subs Luego pulse In t ro

Seleccione la columna D completamente y luego seleccione la opcioacuten For-matogtColumnagtOcultar Ahora seleccione la opcioacuten VergtBarras de herramientasgt Formularios haga clic sobre el icono Cuadro combinado y haga clic en la celda C2 Cambie el tamantildeo del cuadro de lista desplegable utilizando los pequentildeos cuadros negros que aparecen alrededor del control de forma que quepa el nomshybre maacutes largo de funcioacuten (en nuestro caso PRODUCTO)

Para hacer que el cuadro de lista desplegable se ajuste automaacuteticamente ^ al tamantildeo de la columna y la fila en la que reside mantenga pulsada

^ la tecla Alt mientras cambia el tamantildeo del control

214 Excel Los mejores trucos

Haga clic con el botoacuten derecho en el cuadro de lista desplegable y elija la opshycioacuten Formato de control y luego vaya a la pestantildea Control En el rango de entrashyda escriba Subs y en la celda vinculada escriba $C$2 Cambie tambieacuten el nuacutemero de liacuteneas a mostrar en la lista desplegable a 11 Cierre el cuadro de diaacutelogo y en la celda C3 escriba la siguiente foacutermula

=SI($C$2=Resultado de amp IacuteNDICE(Subs$C$2))

En la celda C4 introduzca la siguiente foacutermula

=SI($C$2=raquoraquoSUBTOTALES($C$2$A$4$A$10 0))

donde $A$4$A$100 es el rango sobre el que debe actuar la funcioacuten SUBTOshyTALES

Ahora todo lo que necesita hacer es seleccionar la funcioacuten SUBTOTALES en el cuadro de lista desplegable con lo que se mostraraacute el resultado correspondiente tal y como se muestra en la figura 615

1

2 3 4 7 9 10 11

A

Valoi 55421 euro 50032 euro

]

j d

B c i Elija una funcioacuten SUBTOTALES

[PROMEDIO bull |

iexclResultado de PROMEDIO I 52727 euro

E

Figura 615 Una funcioacuten SUBTOTALES ajustable

TRUCO Antildeadir extensiones de fecha Los formatos de fechas de Excel consisten en diferentes formas que pueden ser utilizadas para mostrar una fecha Sin embargo un formato que siempre se ha echado de menos en Excel (por los angloparlantes) es aquel capaz de mostrar una fecha al estilo 15th October 2003 Podemos conseguir que Excel haga esto en caso de que lo necesitemos

Este truco estaacute orientado a aquellas personas que utilicen la versioacuten Sy en ingleacutes de Excel que tengan establecida la configuracioacuten regional de

w su sistema operativo en ese mismo idioma y deseen utilizar este formato de fechas cuando creen hojas de caacutelculo que esteacuten orientadas al puacuteblico angloparlante

La posibilidad de mostrar el sufijo th despueacutes del nuacutemero 15 por ejemplo es algo que Excel no contempla en sus formatos de fecha Peor auacuten no es posible

6 Trucos sobre foacutermulas y funciones 215

configurar un formato personalizado para mostrar las fechas de esta manera Aunque muchas personas simplemente aceptan que esto no es posible mostrashyremos un meacutetodo para poder llevarlo a cabo

En una hoja en blanco comenzando por la celda A l introduzca los siguientes datos en las siguientes celdas A l = s t A2=nd A3=rd A4A20=th A21=st A22=nd A23=rd A24A30=th A31=st

Asigne el nombre Extensiones a este rango luego vaya a lnsertgtNamegtDefine y en el cuadro de texto Ntildeames in Workbook escriba HoyPersonalizado

En el cuadro de texto Refers To introduzca la siguiente foacutermula

=TEXT(TODAY()dddd dn) amp INDEX(ExtensionesDAY(TODAY())1) amp TEXT(TODAY() mmmm yyyy)

Luego haga clic en Add y en OK Ahora en cualquier celda introduzca = H o y P e r s o n a l i z a d o y la fecha actual

se mostraraacute con el formato ThursDay l oacute t h October 2003 Si prefiere utilizar celdas en la hoja para almacenar las extensiones de fecha

(es decir th st rd y nd) puede utilizar la funcioacuten CHOOSE para almacenarlas Para ello vaya a lnsertgtNamegtDefine y en el cuadro de texto Ntildeames in Workbook introduzca la palabra Dia En el cuadro de texto Refers to introduzca la sishyguiente foacutermula

=DAY(TODAY( ))

Haga clic en Add Vuelva al cuadro de texto Ntildeames in Workbook e introduzca el texto HoyPersonalizado

En el cuadro de texto Refers to introduzca la siguiente foacutermula y luego haga clic en el botoacuten Add

=TEXT(TODAY()dddd d)ampIF(Day=31stIF(Day=3 0th CHOOSE(Diastndrdthth thththththththththththththth th st nd rd th thth th thth) ) )amp TEXT(TODAY( ) mmmm yyyy)

Despueacutes de hacer clic en OK puede introducir la foacutermula =HoyPersonal izado en cualquier celda en la que desee mostrar este formato de fecha

La fecha devuelta por cualquiera de estas funciones no seraacute una fecha numeacuterica verdadera tal y como suele hacer Excel sino que simplemente seraacute una entrada de tipo texto Esto significa que no podraacute hacer referencia a esta celda en una foacutermula que esteacute esperando un dato numeacuterico

216 Excel Los mejores trucos

TRUCO Convertir nuacutemeros con signo negativo a la derecha a nuacutemeros de Excel iquestHa tenido que trabajar alguna vez con nuacutemeros negativos importados que tienen el signo negativo a la derecha SAP es uno de esos programas que hacen este tipo de cosas con los nuacutemeros (200-en vez de -200) Tener que cambiar esto a mano de forma que Excel pueda entenderlos es tedioso pero no tiene por queacute ser necesariamente asiacute

Supongamos que tiene una larga lista de nuacutemeros que acaba de importar y que algunos de ellos estaacuten en el formato que acabamos de describir Nuestro trabajo consistiraacute en convertir esos nuacutemeros en valores negativos que Excel pueshyda reconocer Para los propoacutesitos de este ejercicio utilizaremos el rango Al A100 Coloquacuteese en la celda B l e introduzca la siguiente foacutermula

=SUSTITUIR(SI(DERECHA(ESPACIOS(Al))= AlAl)-raquoraquo2)+0

-DERECHA(ESPACIOS(Al)) amp

Introduzca esta foacutermula en tantas celdas de la columna como sea necesario y luego coacutepiela Seleccione la celda Al y vaya a EdicioacutengtPegado especial y selecshycione la opcioacuten Valores para eliminar las foacutermulas y dejar solamente los valores En la figura 616 puede ver un ejemplo de la situacioacuten antes y despueacutes de llevar a cabo esta tarea (A1A7 representa el antes)

1 200-

2 3 35Eiexcl-4 5 6 301-7 8 9

A

150

200 526

258

B -200

150 -356 200 526 -301 258

C

Figura 616 Antes y despueacutes de mover el signo negativo

Para darnos una idea de coacutemo funciona la foacutermula introduzca la siguiente foacutermula en cualquier celda siempre que la celda Al contenga el valor 200-

= D E R E C H A ( E S P A C I O S ( A l ) 1 ) amp A 1

Acabaraacute teniendo -200-

La funcioacuten ESPACIOS simplemente se asegura de que no haya espacios por delante y por detraacutes del texto de una celda Dado que nuestro valor terminar con un - necesitamos quitar esa segunda aparicioacuten Aquiacute es donde entra enjuego la funcioacuten SUSTITUIR Le diremos que sustituya la segunda aparicioacuten de - por (texto vaciacuteo) El resultado de esta operacioacuten seraacute de tipo texto (ya que la funcioacuten

6 Trucos sobre foacutermulas y funciones 217

SUSTITUIR devuelve un valor de tipo texto) por lo que simplemente antildeadiremos + 0 con lo que Excel lo convertiraacute en un nuacutemero

Si va a tener que utilizar este meacutetodo con frecuencia deberiacutea considerar utilishyzar una macro que haga el trabajo por usted A continuacioacuten le presentamos dicha macro

Sub ConvertirNegativos( ) Dim rCell As Range Dim rRange As Range Dim ICount As Long Dim lLoop As Long

1 Nos aseguramos de tener seleccionados los datos y en caso contrario_ se muestra un mensaje y la macro termina If SelectionCellsCount = 1 Then MsgBox Debe seleccionar el rango a convertir vblnformation Exit Sub

End If

Establece una variable soacutelo para las celdas de tipo texto por ejemplo

200-On Error Resume Next Set rRange = SelectionSpecialCells(xlCellTypeConstants xlTextValues)

Si esta variable devuelve Nothing es que no hay nuacutemeros negativos incorrectos con lo que se muestra un mensaje y termina la macro If rRange Is Nothing Then

MsgBox No se encontraron nuacutemeros negativos incorrectos vblnformation

On Error GoTo 0 Exit Sub

End If

Cuenta el nuacutemero de celdas del tipo 200- y pasa el resultado a una variable que controlaraacute el nuacutemero de ciclos necesarios para el bucle ICount = WorksheetFunctionCountlf(Selection -) Establece una variable a la primera celda de la seleccioacuten Set rCell = SelectionCells(1 1)

Bucle que se repite tantas veces como nuacutemeros negativos incorrectos haya

For lLoop = 1 To ICount

En cada ciclo se establece una variable a la celda que contiene -

El asterisco es un siacutembolo comodiacuten Set rCell = rRangeFind(What=- After=rCell _

Lookln=xlValues LookAt=xlPart _ SearchOrder=xlByRows SearchDirection= _ xlNext MatchCase=False)

Utilizamos la funcioacuten estaacutendar Reemplazar para reemplazar el

218 Excel Los mejores trucos

signo negativo por el texto vacio es decir eliminamos dicho signo rCellReplace What=- Replacement= Multiplicamos la celda por -1 para convertirla a un nuacutemero

negativo rCell = rCell -1

Next lLoop

On Error GoTo 0 End Sub

Para escribir esta macro vaya a HerramientasgtMacrogtEditor de Visual Basic (Al t Opcioacuten-Fl l ) Ahora seleccione lnsertargtMoacutedulo y copie el coacutedigo anterior Cierre la ventana para volver a Excel y vaya a HerramiexclentasgtMacrogtMacros y seleccione la macro que acabamos de crear Haga clic en Opciones para asignar una tecla de acceso raacutepido A partir de ahora si necesita convertir esos nuacutemeros negativos importados a verdaderos nuacutemeros negativos que Excel pueda reconoshycer simplemente seleccione el rango de nuacutemeros y utilice la tecla de acceso raacutepishydo que asignoacute

Mostrar valores de hora negativos A veces desearaacute mostrar valores de hora negativos pero Excel soacutelo mostraraacute Existen numerosos meacutetodos para solucionar este problema

Si introduce la hora 120000 (mediodiacutea) en una celda y luego le asigna el formato General observaraacute que tiene un valor numeacuterico de 05 De forma simishylar introduzca la hora 240000 en cualquier celda observe la barra de foacutermulas y veraacute coacutemo Excel muestra 111900 240000

Excel trata las fechas y las horas simplemente como nuacutemeros En el caso de las fechas Excel de forma predeterminada considera que el 1 de enero de 1900 se corresponde con el valor numeacuterico 1 el dos de enero de 1900 se corresponde con el valor numeacuterico 2 y asiacute sucesivamente Las horas son consideradas como nuacutemeros decimales a excepcioacuten del mediodiacutea que tiene un valor numeacuterico de 1 Debido a esto Excel tiene un verdadero problema a la hora de t ratar horas negashytivas

A continuacioacuten mostramos tres meacutetodos para conseguir que Excel muestre valores de hora negativos

Meacutetodo 1 Cambiar el sistema de fecha predeterminado de Excel

Un meacutetodo raacutepido y sencillo para mostrar valores negativos es seleccionar HerramientasgtOpciones ir a la pestantildea Calcular y activar la casilla de verifica-

6 Trucos sobre foacutermulas y funciones 219

cioacuten Sistema de fechas 1904 (a este sistema tambieacuten se llama Fechas y horas de Macintosh)

Tenga en cuenta que al hacer esto conseguiraacute que Excel modifique las fechas de inicio (desde el 1 de enero de 1900 al 2 de enero de 1904) a partir de las cuales son calculadas todas las celdas Esta opcioacuten soacutelo afectaraacute al libro de Excel con el que esteacute trabajando

Ahora ya podraacute restar horas entre siacute y tener resultados que aparezcan como valores negativos

Pruebe esto vaya a HerramientasgtOpcionesgtCalcular y active la casilla de veshyrificacioacuten Sistema de fechas 1904 Introduzca 50000 en la celda A2 60000 en la celda A3 y en la celda A4 escriba =A2-A3 Obtendraacute un resultado de -100 pero solamente si ha activado la opcioacuten mencionada anteriormente

Si el hecho de cambiar el sistema de fechas puede causar problemas en el libro a efectos de otros caacutelculos con horas necesitar utilizar otro meacutetodo que permita cambiar la apariencia de la celda que contenga un valor negativo

Meacutetodo 2 Utilizar la funcioacuten TEXTO

El segundo meacutetodo requiere del uso de la funcioacuten TEXTO Para empezar inshytroduzca 50000 en la celda A2 60000 en la celda A3 y en la celda A4 escriba lo siguiente

= T E X T O ( M A X ( $ A $ 2 $ A $ 3 ) - M I N ( $ A $ 2 $ A $ 3 ) - H M M )

Con esta foacutermula anidada estaacute restando las celdas A2 y A3 para conseguir un valor de hora positivo Luego estaacute aplicando un formato a la celda mediante la funcioacuten TEXTO de forma que muestre una hora negativa Mediante el uso de la combinacioacuten de funciones MAX y MIN sea seguro de que siempre resta la hora mayor menos la hora menor

gt Debe saber que el resultado devuelto es de tipo texto no numeacuterico gt Esto es importante en caso de que necesitase un valor numeacuterico para

^ otra foacutermula

Meacutetodo 3 Utilizar un formato personalizado

Uacuteltimo meacutetodo para mostrar horas negativas sin tener cambiar al sistema de fechas de 1904 pero que devuelva valores numeacutericos reales es ir a FormatogtCeldas

220 Excel Los mejores trucos

seleccionar la categoriacutea Personalizado y utilizar un formato personalizado -hmm Este meacutetodo funciona solamente en caso de que siempre desee mostrar los valoshyres de hora negativos Tambieacuten requiere que siempre reste la hora que sea infeshyrior de la hora que sea superior lo que significa que todas las veces la hora seraacute realmente positiva pero se mostraraacute como negativa

Por tanto utilizando cualquiera de estos tres meacutetodos seraacute capaz de mostrar horas en negativo Simplemente recuerde que cada meacutetodo tiene sus inconveshynientes por lo que utiliacutecelos teniendo estos inconvenientes en mente

^ g g Utilizar la funcioacuten BUSCARV a lo largo de muacuteltiples WJm tabas

bull bull ^ B Aunque de por siacute la funcioacuten BUSCARV es muy uacutetil estaacute restringida a la buacutesqueda de valores en una tabla especiacutefica para devolver un resultado lo que a veces no seraacute suficiente Podemos superar esta limitacioacuten si utilizamos la funcioacuten INDIRECTO

A veces desearaacute utilizar una uacutenica foacutermula BUSCARV que busque en diferenshytes tablas con datos que esteacuten en una hoja de caacutelculo Una de las formas para poder hacer esto es anidar muchas funciones BUSCARV juntas indicaacutendoles que busquen en una tabla especiacutefica dependiendo de un nuacutemero que introduzca en otra celda Por ejemplo

=SI(Al=lBUSCARV(BlTablal2FALSO)IF(Al=2BUSCARV(BlTabla22 FALSO)))

En esta foacutermula estamos dicieacutendole a la funcioacuten BUSCARV que busque en el rango con nombre Tabla 1 en caso de que la celda Al contenga el nuacutemero 1 (SI(Al = lBUSCARV(BlTablal2FALSO)) y que busque en un rango llamado Tabla2 en caso de que la celda Al contenga el nuacutemero 2 (IF(A1= 2 BUSCARV (BlTabla22FALSO)MM))

Como puede imaginarse la foacutermula seriacutea mucho maacutes larga y enrevesada si tiene que utilizar maacutes de dos funciones SI anidadas La siguiente foacutermula por ejemplo utiliza solamente cinco funciones anidadas pero ya es complicadiacutesima

=SI(Al=lBUSCARV(BlTablal2FALSO)SI(Al=2BUSCARV(BlTabla22 FALSO)SI(Al=3BUSCARV(BlTabla33FALSO)SI(Al=4BUSCARV(BlTabla4 2FALSO)SI (Al=5BUSCARV(BlTable52FALSO))))))

Aunque esta foacutermula devuelve los resultados deseados podemos conseguir que la foacutermula sea mucho maacutes corta antildeadir maacutes de cinco condiciones y acabar teniendo una foacutermula que sea m u y sencilla de manejar Supongamos que tiene 12 tablas diferentes configuradas en una hoja de caacutelculo cada una de las cuales

6 Trucos sobre foacutermulas y funciones 221

representa un mes diferente del antildeo Cada tabla consta de dos columnas y conshytiene los nombres de cinco empleados y cinco cantidades correspondientes A cada tabla se le ha dado un nombre en funcioacuten del mes que representa (por ejemplo la tabla con los datos de enero se llama Enero etc) tal y como se muestra en la figura 617

B C D E F G H J 1

Enero Nombre Cantidad Francisco 20 Ana 21 Juan 22 Paco 23 Mariacutea 20

Mayo 1 Nombre Cantidad Alex 45 Carlos 32 Carolina 24 Torn 11 Ceacutesar 12

Septiembre iNombre Cantidad Alex 20 Carlos 23 Carolina 34 Toni 23

I Ceacutesar 18

Febrero Nombre Cantidad Francisco 23 Ana 21 Juan 14 Paco 34 Mariacutea 12

Junio Nombre Cantidad Alex 21 Carlos 45 Carolina 23 Torn 12 Ceacutesar 32

Octubre Nombre Cantidad Alex 21 Carlos 25 Carolina 18 Toni 42 Ceacutesar 34

Marzo Nombre Cantidad Francisco 25 Ana 11 Juan 21 Paco 23 Mariacutea 34

Julio Nombre Cantidad Alex 25 Carlos 23 Carolina 34 Torn 11 Ceacutesar 15

Noviembre Nombre Cantidad Alex 11 Carlos 21 Carolina 29 iexclToni 25 Ceacutesar 1_7

Abril 1 Nombre Cantidad 1 Francisco 43 Ana 34 Juan 22 Paco 13 Mariacutea 25

Agosto 1 Nombre Cantidad 1 Alex 34 Carlos 23 Carolina 11 Torn 32 Ceacutesar 35

Diciembre Nombre Cantidad I Alex 27 Carlos 16 Carolina 22 Toni 27 Ceacutesar 12

|n 4 bull H Hojal HojaZ Hoja3 Hoja4 HojaS Hoja6 Hoja HojaS j lt _ i raquoH 1

Figura 617 Doce tablas cada una representando un mes del antildeo

Seleccione la celda A l Entonces vaya a DatosgtValidacioacuten y en la pestantildea Conshyfiguracioacuten seleccione la opcioacuten Lista en el cuadro de lista desplegable El cuadro de texto Origen escriba cada uno de los meses del antildeo separaacutendolos por comas Es m u y importante que los nombres de rangos para cada tabla sean los mismos que los nombres de los meses que ha utilizado en la lista de validacioacuten Haga clic en Aceptar Ahora seleccione la celda Bl y configure para ella una lista de valishydacioacuten de la misma forma que acabamos de explicar esta vez utilizando los nomshybres de cada uno de los empleados Si los nombres de eacutestos son m u y largos para escribirlos simplemente haga una referencia al rango de celdas que los contieshynen para que sea el origen y luego haga clic en Aceptar

En la celda A2 introduzca esta foacutermula

= B U S C A R V ( $ B $ 1 I N D I R E C T O ( $ A $ 1 ) 2 F A L S O )

Seleccione el mes que desee en la lista situada en la celda Al y el nombre del empleado en la lista situada en la celda B2 y la foacutermula que se encuentra en A2 devolveraacute la cantidad correspondiente para la persona y el mes seleccionados

222 Excel Los mejores trucos

Existen algunas ventajas de utilizar esta aproximacioacuten Si no estaacute H^ familiarizado con la funcioacuten INDIRECTO la hemos utilizado para leer

v - ^ los contenidos de una celda como si fuera la direccioacuten de un rango en vez de un texto Como hemos dado nombre a 12 rangos diferentes cada uno de los cuales representando un mes del antildeo la foacutermula que utilizar la funcioacuten INDIRECTO leeraacute la palabra Enero como referencia un rango en vez de como una cadena de texto Otra ventaja de utilizar una foacutermula que incluye la funcioacuten INDIRECTO es que puede librarse de la restriccioacuten de Excel que impide tener maacutes de siete niveles de anidamiento en las funciones

Mostrar el tiempo total como diacuteas horas y minutos Cuando antildeade horas en Excel puede hacer que el resultado devuelto aparezca como el total de horas y minutos pero por desgracia no como diacuteas horas y minutos Para poder mostrar esto necesitaremos hacer alguacuten trabajo extra

Por ejemplo si el tiempo total es igual a 75 horas 45 minutos y 0 segundos el total normalmente se mostrariacutea como 754500 proporcionaacutendolos este reshysultado en una celda cuyo formato personalizado fuese [h]mmss lo que permishyte mostrar horas superiores a 24 Aunque ciertamente es un resultado correcto tambieacuten significa que tendriacuteamos que calcular manualmente cuaacutentos diacuteas hoshyras y minutos representa esta cantidad Esto puede llevar cierto tiempo y ademaacutes es susceptible de calcular sea erroacuteneamente

Supongamos que tiene una lista de horas vaacutelidas en las celdas A1A10 y que en la celda Al 1 tiene una funcioacuten SUMA normal que estaacute sumando el total de horas es decir contiene la foacutermula =SUMA ($A$1 $A$10) Si el total de esta suma excede de las 24 horas el resultado de la celda que contiene a esta funcioacuten debeshyriacutea tener el formato [h]mm Supongamos que el resultado de esta suma total es de 3062600 que por supuesto son 306 horas y 26 minutos Sin embargo con esta informacioacuten no sabemos cuaacutentos diacuteas horas y minutos representa

Para mostrar el resultado de esa forma utilizaremos la siguiente foacutermula

=ENTER0(A11) ampraquo Dias amp ENTERO(RESIDUO(AllENTERO(All))24) amp horas y amp MINUTO(All) amp raquo minutos a

Teniendo en cuenta que la celda Al 1 contiene el valor 3062600 el resultado correspondiente deberiacutea ser de 12 diacuteas 18 horas y 26 minutos Veamos coacutemo funciona esto Si no estaacute familiarizado con la forma en la que Excel almacena y utiliza las fechas y horas primero deberiacutea consultar el truco 38

Seleccione la celda con la foacutermula que calcular el resultado y haga clic en el botoacuten fx que parece justo a la izquierda de la barra de foacutermulas (en versiones anteriores de Excel y en la versioacuten para Macintosh el botoacuten contiene el signo =)

m

6 Trucos sobre foacutermulas y funciones 223

Haga clic en la primera aparicioacuten de la funcioacuten ENTERO que aparece en la barra de foacutermulas Esta funcioacuten devolveraacute el valor entero 12 a part i r del valor 1276805556 Este nuacutemero representa cuaacutentos diacuteas hay

A continuacioacuten debemos calcular cuaacutentas horas quedan despueacutes de quitar esos 12 diacuteas Haga clic en la segunda funcioacuten ENTERO que aparece en la barra de foacutermulas Aquiacute estamos utilizando la funcioacuten RESIDUO ( A l l ENTERO (All) para devolver el resto de dividir 1276805556 por 12 que es 076805556 (el nuacutemero de minutos representado como un nuacutemero decimal) Ahora debemos multiplishycarlo por 24 (lo cual nos da 18433333) para devolver un nuacutemero que represenshytaraacute la cantidad de minutos Dado que soacutelo queremos el nuacutemero entero incluimos la foacutermula RESIDUO (Al l ENTERO (Al l ) ) 24 dentro de una funcioacuten ENTERO que se encarga de quitar la parte decimal

Haga clic en la funcioacuten MINUTOS dentro de la barra de foacutermulas Esta funshycioacuten devolveraacute el valor 26 a partir del nuacutemero de serie 127680556

Dado que el valor devuelto por la funcioacuten MINUTOS nunca seraacute un valor numeacuterico seriacutea sensato mantener al menos la funcioacuten original SUMA que deshyvuelve el total de horas en una celda de forma que pueda ser referenciada y utilizada para caacutelculos posteriores en caso de que sea necesario Por supuesto la fila que contiene el total de horas puede ser ocultada

TRUCO Determinar el nuacutemero de diacuteas especificados que aparecen en cualquier mes Cuando esteacute creando aplicaciones relacionadas con calendarios en especial aplicaciones de noacutemina a veces necesitaraacute conocer cuaacutentas veces aparece un cierto diacutea de la semana en un mes en particular

A pesar de que Excel dispone de muchas funciones para fechas y horas al diacutea de hoy no existe una funcioacuten que por ejemplo nos indique cuaacutentos lunes hay en el mes de enero para el antildeo 2005 Podemos utilizar varias funciones m u y anidashydas de fecha y hora de Excel para conseguir esto pero por desgracia como ya podraacute imaginarse es m u y complicado y enrevesado

Eacuteste es uno de los casos en los que VBA puede simplificar enormemente una tarea complicada En vez de combinar complejas funciones podemos escribir una funcioacuten personalizada que haga lo mismo y que luego podamos pasarle el diacutea y la fecha que queremos calcular Podemos utilizar la siguiente funcioacuten para detershyminar cuaacutentos diacuteas hay en un mes especificado Por ejemplo

=CuantosDiasEnUnMes(11203mieacute)

la cual nos devolveriacutea 5 ya que hubo cinco mieacutercoles en el mes de diciembre de 2003

224 Excel Los mejores trucos

De forma similar la siguiente funcioacuten

=CuantosDiasEnUnMes(11203jue)

nos devolveriacutea 4 ya que solamente hubo cuatro jueves en el mes de diciembre de 2003 Para utilizar esta funcioacuten personalizada en un libro primero debe escrishybir el siguiente coacutedigo en un moacutedulo estaacutendar Para ello abra el libro en el que desea colocar esta macro y vaya a HerramientasgtMacrogtEditor de Visual Basic (Al t Opcioacuten-Fl l ) Luego seleccione lnsertargtMoacutedulo y escriba el siguiente coacutedigo

Function CuantosDiasEnUnMes(FechaCompleta As String sDia As String) As Integer Dim i As Integer Dim iDia As Integer iDiaCoincidente As Integer Dim iDiasEnMes As Integer Dim FechaCompletaNueva As Date

iDiaCoincidente = Weekday(FechaCompleta) Select Case UCase(sDia)

Case DOM iDia = 1

Case LUN iDia = 2

Case MAR iDia = 3

Case MIEacute iDia = 4

Case JUE iDia = 5

Case VIE iDia = 6

Case SAB iDia = 7

End Select iDiasEnMes = Day(DateAdd(d -1 DateSerial _

(Year(FechaCompleta) Month(FechaCompleta) + 1 1))) FechaCompletaNueva = DateSerial(Year(FechaCompleta)

Month(FechaCompleta) iDiasEnMes) For i = iDiasEnMes - 1 To 0 Step -1

If Weekday(FechaCompletaNueva - i) = iDia Then CuantosDiasEnUnMes = CuantosDiasEnUnMes + 1

End If Next i

End Function

Cierre de esta ventana para volver a Excel

Ahora simplemente ha de introducir la funcioacuten en cualquier celda como vishymos antes y Excel devolveraacute un nuacutemero que representa cuaacutentas veces aparecioacute el diacutea especificado en el mes que hayamos elegido

6 Trucos sobre foacutermulas y funciones 225

K|^^3 Construir mega foacutermulas jt ^ E T ^ H Las mega foacutermulas (foacutermulas que contienen foacutermulas y a su vez otras

^ B A ^ H foacutermulas) son lo suficientemente complicadas para que incluso los expertos en Excel salgan corriendo Con un poquito de esfuerzo y trabajando paso a paso hasta conseguir la foacutermula que deseamos podemos afrontar esas complejas mega foacutermulas sin miedo

iquestLe llena de terror el simple hecho de tener que pensar en funciones anidadas dejando aparte su construccioacuten Algunas de esas celdas con caacutelculos complicashydos y enrevesados tambieacuten nos hacen sentirnos un poco asustados a nosotros Pero con un poco de esfuerzo y trabajando paso a paso podemos crear mega foacutermulas sin tener miedo Y quizaacute soacutelo quizaacute incluso podraacute ser capaz de leer y entender estas foacutermulas maacutes adelante

El truco estaacute en construir las foacutermulas poco a poco utilizando las funciones estaacutendar de Excel Utilice una funcioacuten por celda obteniendo un resultado indivishydual que sea manejable y luego aniacutedelas juntas para obtener el resultado final que desea A continuacioacuten veamos un ejemplo de este proceso en accioacuten

Digamos que le han dado una larga lista de nombres de personas compuesta por el nombre primer apellido y segundo apellido (todos ellos en una uacutenica celda de cada fila) El trabajo consiste en escribir una foacutermula en la columna adyacente que extraiga solamente el segundo apellido de la persona

Lo que tendremos despueacutes seraacute el comienzo del segundo apellido (la tercera palabra) de la celda Por el momento lo que tendremos que buscar es la posicioacuten del segundo caraacutecter espacio dentro de la celda Excel no dispone de una funcioacuten que busque automaacuteticamente el segundo caraacutecter espacio dentro de una celda pero no proporciona la funcioacuten ENCONTRAR que permite hacer buacutesquedas lo cual es lo que necesitamos

Introduzca el nombre David Peacuterez Cardenal (o cualquier otro nombre) en la celda A l Luego en la celda Cl introduzca esta funcioacuten

=ENCONTRAR( A 1 )

La funcioacuten ENCONTRAR busca una cadena de texto (el primer paraacutemetro) dentro de otra cadena de texto (el segundo paraacutemetro) y devuelve un nuacutemero que es la posicioacuten en la que se encuentra dicha cadena dentro de la otra

Eacutesta es la sintaxis de esta funcioacuten

ENCONTRAR(texto_buscadodentro_del_textonuacutem_inicial)

Con esto encontraremos la posicioacuten inicial del primer caraacutecter espacio en la celda A l ya que dijimos que buscase la cadena (un espacio) En el caso de David Peacuterez Cardenal deberiacutea devolver el valor 6 Pero nosotros estamos buscan-

226 Excel Los mejores trucos

do el segundo espacio no el primero Lo que haremos seraacute utilizar el nuacutemero devuelto por la primera foacutermula (en Cl) y lo utilizaremos como punto de partida para otra funcioacuten ENCONTRAR que buscaraacute el segundo espacio Por tanto en la celda C2 introduzca lo siguiente

=ENCONTRAR( A 1 C 1 + 1 )

Observe que esta vez hemos pasado un tercer argumento a la funcioacuten ENshyCONTRAR que indica la posicioacuten inicial que se encuentra en la celda Cl (6 en este ejemplo) maacutes 1 Esto no serviraacute como punto de partida para que la segunda funcioacuten ENCONTRAR busque el segundo espacio Por tanto lo que esta uacuteltima funcioacuten nos devuelva seraacute la posicioacuten del segundo espacio

Teniendo esto realmente la siguiente funcioacuten que tenemos que construir es aquella que escriba todos los caracteres a partir del segundo espacio hasta el final de la cadena Para ello utilizaremos la funcioacuten EXTRAE que como su nombre indica extrae un rango de caracteres a partir de una cadena de texto En la celda C3 introduzca lo siguiente

= EXTRAE(Al C2 + 1 2 5 6)

Esta funcioacuten devuelve un nuacutemero de caracteres especificado a partir de la cashydena de texto comenzando por la posicioacuten que hayamos especificado y tomando tantos caracteres como indiquemos Aquiacute podemos ver su sintaxis

EXTRAE(textoposicioacuten_inicialnuacutem_de_caracteres)

En nuestro caso hemos pedido a la funcioacuten EXTRAE que extraiga 256 caracshyteres a partir de texto de la celda A l comenzando por el primer caraacutecter que se encuentra despueacutes del segundo espacio Hemos utilizado el nuacutemero 256 para asegurarnos de que obtenemos todos los caracteres hasta el final de la cadena independientemente de su longitud (no importa si en la cadena quedan menos caracteres de los que indiquemos la funcioacuten devolveraacute tantos como pueda)

Con todas las piezas a mano ha llegado el momento de construir la foacutermula completa una foacutermula anidada que le daba paacutenico hace unos minutos Baacutesicashymente todo lo que tenemos que hacer es reemplazar todas las referencias a celshydas (excepto Al) de las funciones con las foacutermulas que habiacutea en esas celdas Podemos hacer esto usando cortar y pegar en la barra de foacutermulas

Haga clic en la celda C2 y en la barra de foacutermulas seleccione la funcioacuten y copiacuteela por completo exceptuando el signo de = de esta forma

ENCONTRAR( A 1 C 1 + 1 )

Pulse Intro para abandonar la celda con lo que estaremos en la celda C3 Una vez seleccionada en la barra de foacutermulas sombree la referencia a la celda C2 y

6 Trucos sobre foacutermulas y funciones 227

pegue la funcioacuten ENCONTRAR (Control-V) que acabamos de copiar en el portapapeles Pulse Intro Al hacer esto la celda C3 deberiacutea quedar de la siguienshyte forma

=EXTRAE(AlENCONTRAR( AlCl+1)+12 56)

Ahora necesitamos reemplazar la referencia a la celda Cl con la funcioacuten que hay dentro de dicha celda Seleccione la celda Cl sombree toda la foacutermula excepshyto el signo de = en la barra de foacutermulas copiacuteela en el portapapeles (Control-C) y luego seleccione la celda C3 Sombree Cl en la barra de foacutermulas y pegue el contenido del portapapeles Luego pulse Intro

Ahora todo lo que hay que hacer es cortar la celda C3 y pegarla en la celda Bl luego eliminar las celdas Cl y C2 Al final deberiacuteamos tener una foacutermula como esta

= EXTRAE(AlENCONTRAR( AlENCONTRAR( Al)+1)+12 5 6)

Si sigue las directrices de este concepto observaraacute que puede construir mega foacutermulas utilizando gran variedad de funciones de Excel Lo que tiene que hacer es primeramente planificar la forma en la que puede conseguir su objetivo y luego utilizar celdas individuales para obtener los resultados parciales que neceshysita Por uacuteltimo reemplace todas las referencias a celdas con las funciones que estaacuten almacenadas en dichas celdas

R ^ ^ S Trucar mega foacutermulas que hagan referencia sect Braquo9 a o t ros libros

^ M M ^ H I Las foacutermulas de Excel se complican cuando una mega foacutermula hace referencia a otro libro No soacutelo necesita incluir las referencias a celdas sino tambieacuten los nombres de libros hojas de caacutelculo e incluso la ruta completa al libro en caso de que esteacute cerrado Existen numerosos meacutetodos para simplificar lo que podriacutea ser un proceso muy complejo

Escribir tales foacutermulas desde cero puede convertirse en pesado raacutepidamente Con este truco le mostraremos un meacutetodo raacutepido y sencillo que le permite consshytruir estas foacutermulas sin la necesidad de utilizar nombres de libros y rutas de archivos El meacutetodo es tan simple que a veces lo pasamos por alto

En primer lugar hemos de aseguraremos de que estamos utilizando los conshyvenios correctos a la hora de referencia a celdas y hojas de caacutelculo Cuando se escribe una foacutermula siempre es una buena idea no introducir nunca referencias a celdas nombres de hojas o nombres de libros porque ello podriacutea incluir tipos y sintaxis incorrectas La mayoriacutea de las personas que estaacuten en un nivel intermeshydio normalmente utilizan el cursor del ratoacuten para introducir las referencias a

228 Excel Los mejores trucos

celdas hojas y libros Realmente esto impide que se produzcan errores de sintaxis y de tipos pero si se utiliza con funciones anidadas sabraacute que la foacutermula se convertiraacute raacutepidamente en algo enorme y m u y difiacutecil de seguir

Por ejemplo eche un vistazo a la siguiente foacutermula

=ENTERO(SUMA(CMis documentosExcelFinanzasProgramas de ventas[Ventasxls]Ventas de productosC2C2924))

Se trata de una simple funcioacuten SUMA anidada dentro de una funcioacuten ENTEshyRO Como hace referencia a celdas situadas en un libro cerrado debe incluir la ruta completa jun to con las referencias a celdas el nombre de la hoja y el libro Sin embargo si tuviese que anidar alguna otra funcioacuten dentro de esta ya se convertiriacutea en algo praacutecticamente imposible de escribir

A continuacioacuten veamos un raacutepido meacutetodo para escribir mega funciones que hagan referencia a libros externos El truco consiste simplemente en escribir la funcioacuten en el libro al que haremos referencia en una celda aparte Si solamente va a hacer una referencia a una hoja en este libro es mejor utilizar una celda en esta hoja

En primer lugar al igual que hicimos en el truco para mostrar el nuacutemero de veces que apareciacutea un diacutea en un mes desarrollaremos la foacutermula en una celda aparte en el libro en el que acabaraacute la referencia Una vez tengamos el resultado deseado cortaremos la foacutermula de dicha celda activaremos el libro en el que deberiacutea aparecer el resultado seleccionaremos la celda apropiada y te daremos la foacutermula

Excel hace todo el trabajo duro al incluir los nombres de libro y cualquier nombre de hoja En caso de que necesite modificar o antildeadir algo la foacutermula simplemente abra el libro que estaacute siendo referenciado corte la foacutermula desde el libro original y peguacuteela en el libro referenciado Luego haga los cambios necesashyrios corte y pegue de nuevo la foacutermula en el lugar de donde procediacutea

Trucar una de las funciones de base de datos de Excel para que haga el trabajo de muchas funciones Las funciones de base de datos de Excel (BDSUMA BDCONTAR etc) pueden hacer el trabajo de cientos de funciones reduciendo tanto el tiempo de caacutelculo como el espacio ocupado en el libro

Cuando utilice funciones de base de datos de Excel puede especificar hasta 256 criterios diferentes Por ejemplo puede que desee sumar cantidades que hay en la columna A pero soacutelo aquellas en cuya celda correspondiente en la columna

6 Trucos sobre foacutermulas y funciones 229

B haya un nuacutemero mayor que 100 y en la de la celda C haya un nuacutemero menor que 40 Si por el contrario desea sumar las cantidades cuyos valores corresponshydientes en la columna B son menores que 50 necesita utilizar otra funcioacuten y un rango diferente como criterio Seriacutea mucho maacutes sencillo si tuvieacutesemos una uacutenica funcioacuten y pudieacutesemos cambiar faacutecil y raacutepidamente el criterio Si nunca ha utilishyzado las funciones de base de datos de Excel con anterioridad le recomendamos encarecidamente que se familiarice con ellas ya que son m u y buenas para exshytraer informacioacuten estadiacutestica a partir de una base de datos o una tabla de Excel

Para ver coacutemo funciona rellene algunos datos tal y como se muestra en la figura 618 Mantenga los encabezados de columnas de la misma forma pero puede introducir los datos que desee debajo de ellos Mientras que ahora le pone a esta tabla el nombre de TodosLosDatos incluyendo todos los encabezados a la hoja le daraacute el nombre de Datos

A 1 Nombre 2 Antonio 3 Al ex 4 David 5 Marta 6 David 7 Santos 8 Laida 9 Mar-IacuteO Luis 11 David 12 Laida 13 Anqel 14 Al ex 15 Carolina

16 Aacutengel Iacute7 18

B Fechas

1522004 1622004 1722004 1822004 1922004 2022004 2122004 2222004 2322004 2422004 2522004 2622004 2722004 2822004 2922004

C Coste total

3200 euro 3000 euro 2300 euro 3600euro 2500 euro 3000 euro 3100 euro 3000 euro 2800euro 2300euro 3300euro 4500 euro 2800 euro 2900 euro 3000euro

D E Cantidad pagada Porcentaje

2200 euro 1200 euro 1600 euro 3600euro 2100 euro 1500 euro 1800 euro 1900 euro 1200 euro 2300 euro 1200 euro 2300 euro 900 euro

1800 euro 2300 euro

pagado 69 40 70

100 84 50 58 63 43

100 36 51 32 62 77

F Coste restante

1000 euro 1800 euro 700 euro - euro

400 euro 1500 euro 1300 euro 1100 euro 1600 euro

- euro 2100 euro 2200 euro 1900 euro 1100 euro 700 euro

G

Figura 618 Datos propuestos

Inserte otra hoja y llaacutemela Resultados En la celda A2 introduzca la siguienshyte foacutermula

=Datos Al

Propague esta foacutermula hasta la celda F2 de forma que tenga una copia sincronizada de los encabezados de la tabla En la celda A3 introduzca cualquier nombre de los que exista en la tabla de la primera hoja como por ejemplo John D luego en la celda D3 introduzca la siguiente foacutermula

=BDEXTRAER(TodosLosDatosB2$A$2$A$3)

Propague esta foacutermula hasta la celda F3 y de formato a las celdas C3F3 como sea requerido

230 Excel Los mejores trucos

Para copiar raacutepidamente las celdas como eacutesta sin formato seleccione la celda haga clic con el botoacuten derecho del ratoacuten en el pequentildeo recuadro de propagacioacuten y manteniendo pulsado el botoacuten derecho del ratoacuten arrastre el cursor hasta donde sea necesario Luego seleccione la opcioacuten Rellena sin formato

Los datos correspondientes deberiacutean extraerse de la tabla cuyo nombre ha introducido en la celda A3 Eacuteste es soacutelo un ejemplo simple de coacutemo puede utilizar la funcioacuten BDEXTRAER para extraer informacioacuten relevante

Si obtiene el error NUM significa que tiene dos o maacutes nombres ideacutenticos en la columna Nombre

Llegados a este punto la mayoriacutea de las personas seguiriacutean el mismo concepshyto para todos los nombres para los que quisieran extraer informacioacuten de la tabla Sin embargo este esfuerzo no es necesario

Dado que siempre estamos haciendo referencia a la celda A3 para el nombre tendriacutea mucho maacutes sentido en la mayoriacutea de los casos si simplemente pudieacuterashymos utilizar una lista desplegable en la celda A3 que contuviese todos los nomshybres que hay en la tabla Podemos utilizar la funcioacuten estaacutendar de validacioacuten de Excel para crear dicha lista Sin embargo como la lista original de nombres estaacute ubicada en otra hoja no podemos hacer referencia para lista de la misma forma que lo hariacuteamos a una lista que estuviese en la misma hoja (es decir una referenshycia a un rango estaacutendar) Podemos resolver este problema faacutecilmente daacutendole nombre a la columna Nombre de la tabla original y luego utilizando ese nombre como origen de la lista para la validacioacuten

Dado que muchas tablas no son estaacuteticas (es decir sus datos estaacuten continuamente modificaacutendose ya sea antildeadiendo o eliminando registros) deberiacutea considerar la posibilidad de utilizar rangos dinaacutemicos con nombre para la columna Nombre

Haga clic de nuevo en la hoja Datos y teniendo seleccionada cualquier celda vaya a lnsertargtNombregtDefinir En el cuadro de texto Nombres en el libro introshyduzca Nombres y en el cuadro de texto Se refiere a introduzca la siguiente foacutermula y luego haga clic en Agregar

= D E S R E F ( $ A $ 2 0 0 C O N T A R A ( $ A $ 2 $ A $ 1 0 0 0 ) 1 )

Haga clic en la hoja Resultados seleccione la celda A3 y luego vaya a DatosgtValidacioacuten

N

6 Trucos sobre foacutermulas y funciones 231

Seleccione la opcioacuten Lista del cuadro de lista desplegable y en el cuadro de texto Origen introduzca lo siguiente

=Nombre

Aseguacuterese de que la casilla de verificacioacuten Celda con lista desplegable esteacute activada y luego haga clic en Aceptar Ahora ya puede seleccionar cualquier nombre de la lista de la celda A3 y los datos que hay a la derecha mostraraacuten la informacioacuten correspondiente de forma automaacutetica Podemos llevar esto a un nishyvel superior y utilizar la funcioacuten BDCONTAR para extraer la cantidad de persoshynas cuyo coste total es mayor que un cierto nuacutemero que especifiquemos y un porcentaje pagado menor que otro nuacutemero que tambieacuten especificaremos

Para ello primeramente necesitaraacute crear un rango dinaacutemico con nombre para la columna Coste total y para la columna Pagado En el cuadro de texto Nombres en el libro introduzca Coste_totalM y en el cuadro de texto Se refiere a introduzca la siguiente foacutermula tras lo cual debe pulsar Agregar

=DESREF($C$200CONTARA($C$2$C$1000)1)

Esta vez en el cuadro de texto Nombres en el libro introduzca PorcentajePagado y en el cuadro de texto Se refiere a introduzca la siguiente foacutermula tras lo cual debe pulsar Agregar

=DESREF($E$200CONTARA($E$2$E$1000)1)

Active la hoja Resultados seleccione la celda Al 1 y luego seleccione DatosgtValidacioacuten Seleccione la opcioacuten Lista y luego introduzca en el cuadro de texto Origen el texto M = Coste_total Haga clic en Aceptar Seleccione la celda B l l y luego vaya a DatosgtValidacioacuten Seleccione la opcioacuten Lista y luego introshyduzca en el cuadro de texto Origen el texto = Porcentaje_pagadoM Haga clic en Aceptar

En la celda A l 2 introduzca lo siguiente

= D a t o s C l

Seleccione la celda B12 e introduzca lo siguiente

= D a t o s E l

Seleccione la celda Al 3 e introduzca lo siguiente

= gt amp A l l

Seleccione la celda B13 e introduzca lo siguiente

= lt S e T E X T O ( B l l 0 )

232 Excel Los mejores trucos

En la celda Al 5 introduzca lo siguiente

=DCONTAR(TodosLosDatOS$A$12$A$12$B$13)

Seleccione cualquier cantidad de coste total desde la celda Al 1 y cualquier porcentaje pagado desde la celda B l l y la funcioacuten BDCONTAR le devolveraacute el nuacutemero de personas que coinciden con ese criterio Por ejemplo si ha seleccionashydo 65 y 100 estaraacute extrayendo la cantidad de personas que tienen un coste total mayor que 65 y un porcentaje pagado menor que el 100

Como puede ver puede utilizar esta funcioacuten BDCONTAR para extraer cualshyquier combinacioacuten de criterios para las columnas Coste total y Porcentaje pagashydo Con un poco maacutes de trabajo puede llevar esto todaviacutea a un nivel superior y hacer que los operadores de comparacioacuten utilizados en criterio sean intercambiashybles

Lo primero que tiene que hacer es crear una lista de operadores de comparashycioacuten que puedan ser utilizados en la lista de validacioacuten Vaya a una columna que no esteacute siendo utilizada en la hoja Resultados y en cualquiera de las filas de dicha columna introduzca el encabezado Operadores Debajo de eacuteste en cada una de las celdas siguientes introduzca = gt = gt lt y lt = tal y como se muestra en la figura 619

Opeiuumltloies

Figura 619 Operadores de comparacioacuten

Para dar nombre a este rango seleccione el encabezado y todos los operadores por debajo de eacutel seleccionando luego la opcioacuten Insertar mayor que NombregtCrear Aseguacuterese de que estaacute activada la opcioacuten Soacutelo fila superior y haga clic en Aceptar Excel daraacute nombre automaacuteticamente al rango basaacutendose en el encabezado (en este caso Operadores)

Seleccione la celda G7 e introduzca el encabezado Seleccione un criterios Teniendo seleccionadas las celdas G7 y H7 ceacutentrelas yendo a FormatogtCeldasgt Alineacioacuten y luego eligiendo en el cuadro de lista desplegable Horizontal la opcioacuten Centrar en la seleccioacuten Seleccione las celdas G8 y H8 vaya a DatosgtValidacioacuten y seleccione la opcioacuten Lista en el cuadro de lista desplegable En el cuadro de texto Origen introduzca = Operadores Aseguacuterese de que estaacute activada la casilla de verificacioacuten Celda con lista desplegable y luego haga clic en Aceptar

Vuelva a la hoja Datos y cree un rango dinaacutemico con nombre para la columna Fechas Vaya a lnsertargtNombregtDefinir en el cuadro de texto Nombres en el libro

6 Trucos sobre foacutermulas y funciones 233

escriba Fechas y en el cuadro de texto Se refiere a escriba la siguiente foacutermula y luego haga clic en Agregar

= DESREF($B$200CONTARA($B$2$B$10 00) 1)

Seleccione la celda G7 coacutepiela y peguacuteela en la celda G9 Cambie la palabra Criterio por Fecha Seleccione las celdas G10H10 vaya a DatosgtValidacioacuten y luego seleccione la opcioacuten Lista en el cuadro de lista desplegable En el cuadro de texto Origen introduzca = Dates

Aseguacuterese de que la opcioacuten Celda con lista desplegable esteacute activada y haga clic en Aceptar Seleccione la celda G i l e introduzca lo siguiente

=Datos$B$1

Propaguacuteela hasta la celda Hl 1 Seleccione la celda G12 introduzca la siguienshyte foacutermula (deberiacutea utilizar el formato de fecha) y coacutepiela hasta la celda H12

=G8 amp T E X T O ( G 1 0 d d m m a a )

En la celda F13 introduzca la palabra Resultado y ceacutentrelo en la seleccioacuten teniendo seleccionadas las celdas F 1 3 y G 1 3 En la celda H13 introduzca la sishyguiente foacutermula

=BDSUMAR(TodosLosDatosDatos$C$1$G$11$H$12)

El resultado final deberiacutea parecerse al que se muestra en la figura 620 que como demostracioacuten muestra todas las foacutermulas

G

Fech =G88JEXTO(G10 Resultado

Seleccione

Seleccione 190201

as ddmmaa) =

H

un criterio

un a fecha 200201

Fechas =H8ampTEXT0(H10 ddmmaa) =B D S U MAR (To d o s Lo s D at o s b at o s

I

UumliexclC$1HiexclG$11$HUumliexcl1

J

2)

Figura 620 Hoja mostrando las foacutermulas correctas y los encabezados

Oculte las filas 11 y 12 ya que no necesitamos verlas Terminaraacute teniendo una tabla lista para ser utilizada como la que se muestra en la figura 621 a la que se ha aplicado un formato en particular para facilitar su lectura

234 Excel Los mejores trucos

Seleccione un

gt= lt= criterio

Seleccione una fecha 190201

Resultado 200201

90 euro|

Figura 621 Hoja con la iacutenter faz final

Utilizando este principio puede tener faacutecilmente una o varias funciones de base de datos haciendo el trabajo que de otra manera hariacutean cientos de funcioshynes

CAPIacuteTULO 7

Trucos sobre macros Trucos 81 a 94

Las macros hacen que sea muy faacutecil automatizar tareas repetitivas en Excel pero la forma en la que son creadas y las facilidades para utilizarlas a veces son problemaacuteticas Por suerte Excel es flexible lo suficientemente como para que pueda solucionar esos problemas y crear nuevas caracteriacutesticas con un miacutenimo esfuerzo

Acelerar el coacutedigo y eliminar los parpadeos de la pantalla Cuando graba macros dentro de Excel el coacutedigo que es generado a veces produce parpadeo se la pantalla que no solamente ralentizar la macro sino que hacen que la actividad de la misma parezca muy desorganizada Por suerte podemos eliminar esos parpadeos de la pantalla a la vez que celebramos el coacutedigo

Uno de los inconvenientes de las macros grabadas en Excel es que el coacutedigo producido es a menudo m u y ineficiente Esto puede significar que las macros que deberiacutean tardar solamente unos segundos para completarse a veces requieshyren de mucho maacutes tiempo y parecen muy ineficaces Ademaacutes cuando crea macros utilizando la grabadora de macros todas las pulsaciones de teclas se graban independientemente de que tengan o no sentido Esto quiere decir que sigue coshymetiendo un error y que a continuacioacuten lo corrige las pulsaciones requeridas para completar esas acciones tambieacuten son grabadas en el coacutedigo de la macro

Si ya ha jugado algo con macros y coacutedigo en VBA probablemente habraacute oiacutedo hablar de la propiedad A p p l i c a t i o n S c r e e n U p d a t i n g Si establece esta proshypiedad a F a l s e al inicio de una macro no solamente estaraacute deteniendo los par-

uuml

238 Excel Los mejores trucos

padeos de la pantalla asociados a la macro grabada sino que tambieacuten estaraacute incrementando la velocidad de ejecucioacuten de la misma La razoacuten por la que este meacutetodo acelerar el coacutedigo es porque Excel ya no necesita volver a dibujar la panshytalla cada vez que encuentra un comando como pueda ser S e l e c t A c t iacute v a t e L a r g e S c r o l l S m a l l S c r o l l y muchos otros Para incluir la sentencia A p p l i c a t i o n S c r e e n U p d a t i n g = F a l s e al inicio de una macro existente vaya a HerramientasgtMacrogtMacros seleccione la macro en cuestioacuten haga clic en Modificar e introduzca el siguiente coacutedigo

1 una Macro Macro grabada el 1122003 por Susana

ApplicationScreenUpdating = False

bullSU COacuteDIGO

ApplicationScreenUpdating = True End Sub

Observe que hemos vuelto a establecer esta propiedad a True despueacutes de comshypletar la macro Aunque Excel siempre volveraacute a activar esta propiedad tan pronshyto como el foco vuelva a eacutel (es decir cuando la macro termine y el usuario vuelva a interactuar con la aplicacioacuten) en muchos casos es mejor asegurarse e incluir el coacutedigo al final

En algunos casos se encontraraacute con que la propiedad A p p l i c a t i o n S c r e e n U p d a t i n g ha vuelto a activarse antes de que la macro grabada se haya completado Esto puede ocurrir con macros grabadas que utilicen el comando S e l e c t con frecuencia Y en caso de que esto suceda puede que tenga que repeshytir la sentencia A p p l i c a t i o n S c r e e n U p d a t i n g = F a l s e en otras partes de la macro

^ Q Q 3 Ejecutar una macro a una determinada hora (I ^Fv^l En m u c ^ a s ocasiones seriacutea una gran idea poder ejecutar una macro a una

H H I ^ I hora predeterminada o a intervalos de tiempo especiacuteficos Por suerte Excel proporciona un meacutetodo VBA que hace que esto sea posible

El meacutetodo A p p l i c a t i o n O n T i m e puede hacer que las macros se ejecutan automaacuteticamente una vez realizadas ciertas configuraciones Supongamos que tiene una macro que desea ejecutar cada diacutea a las 1500 En primer lugar debereshymos determinar coacutemo lanzar el meacutetodo OnTime Podemos hacerlo utilizando el evento Workbook_Open en el moacutedulo privado del objeto Workbook

7 Trucos sobre macros 239

En Windows la manera maacutes raacutepida para llegar al moacutedulo privado del objeto Workbook (ThisWorkbook) es haciendo clic con el botoacuten derecho del ratoacuten en el icono de Excel situado a la izquierda del menuacute Archivo y luego seleccionar la opcioacuten Ver coacutedigo (en Macintosh debe abrir el editor de Visual Basic y luego abrir el moacutedulo para el objeto Workbook desde la ventana de proyecto) Una vez en este sitio introduzca el siguiente coacutedigo

Priacutevate Sub Workbook_Open( ) ApplicationOnTime TimeValue(150000) MiMacro

End Sub

MiMacro deberiacutea ser el nombre de la macro que desea ejecutar Deberiacutea residir en un moacutedulo estaacutendar y contener el meacutetodo OnTime de la siguiente forma

Sub MiMacro( )

ApplicationOnTime TimeValue(150000) MiMacro

SU COacuteDIGO

End Sub

Esto ejecutaraacute el procedimiento MiMacro todos los diacuteas a las 1500 tan pronshyto como se abra Excel Ahora suponga que desea ejecutar MiMacro a intervalos de 15 minutos despueacutes de abrir el libro De nuevo desearemos configurar esta programacioacuten tan pronto como se abra el libro De nuevo haga clic con el botoacuten derecho del ratoacuten sobre el icono de Excel situado a la izquierda del menuacute Archivo seleccione la opcioacuten Ver coacutedigo e introduzca el siguiente coacutedigo

Private Sub Workbook_BeforeClose(Cancel As Boolean) ApplicationOnTime dTime MiMacro False

End Sub

Private Sub Workbook_Open( ) ApplicationOnTime Now + TimeValue(001500) MiMacro

End Sub

En cualquier moacutedulo estaacutendar (accediendo a traveacutes de la opcioacuten lnsertargt Moacutedulo) introduzca el siguiente coacutedigo

Sub MiMacro( ) dTime = Now + TimeValue(0 0150 0) ApplicationOnTime dTime MiMacro

SU COacuteDIGO End Sub

Observe coacutemo pasamos el valor 15 minutos a la variable puacuteblica dTime Esto es de forma que pueda cancelar el meacutetodo OnTime cuando ocurra el evento

240 Excel Los mejores trucos

WorkbookBef o reClose estableciendo el argumento opcional Schedule a Falso De forma predeterminada el argumento S c h e d u l e estaacute establecido como True de forma que al establecerlo en False estamos indicando a Excel que cancele el meacutetoshydo OnTime que estaba establecido para que se ejecutase a una hora en particular

Si no pasoacute la hora a una variable Excel no sabraacute queacute meacutetodo OnTime desea cancelar ya que la expresioacuten Now + Time Valueacute ( 0 0 1 5 0 0 ) no es estaacutetica pero siacute lo es cuando se pasa a una variable Si no establece el argumento opcional Schedule a False el libro se abririacutea automaacuteticamente cada 15 minutos despueacutes de que lo cerrarse y ejecutase MiMacro

Q ^ Q Utilizar CodeName para hacer referencias | B 9 9 a hojas en los libros de Excel

^ ^ ^ ^ ^ B A veces necesitaraacute crear una macro que funcione incluso si los nombres de hojas a los que hace referencia cambien

Si ha grabado una macro en Excel que hace referencia a una hoja en particushylar dentro de libro debe saber que el coacutedigo seguiraacute funcionando soacutelo si los nomshybres de las hojas se mantienen iguales Por ejemplo si la hoja se llama Presupuesto el coacutedigo de la macro tiene la sentencia S h e e t s ( P r e s u p u e s t o ) S e l e c t y ahora cambia el nombre de dicha hoja la macro dejaraacute de funcionar Esto es debido a que la grabadora de macros genera el coacutedigo basaacutendose en el nombre de la pestantildea de la hoja en cuestioacuten o en el nombre que se ve cuando se trabaja en Excel Para superar esta limitacioacuten tenemos dos opciones siendo la primera de ellas la que utiliza nuacutemeros de iacutendice en vez de nombres El iacutendice de una hoja se determina por su posicioacuten dentro de libro La hoja que estaacute maacutes la izquierda siempre tendraacute el iacutendice 1 la siguiente tendraacute el iacutendice 2 y asiacute sucesivamente VBA permite especificar cualquier hoja utilizando su iacutendice en vez de su nombre aunque por desgracia el generador de coacutedigo de Excel nunca utiliza estos iacutendices

De todas formas aunque utilizar un iacutendice como por ejemplo Sheets(3)Select es una opcioacuten mejor que utilizar el nombre de la hoja resulta que la posicioacuten de la hoja podriacutea cambiar en el libro en caso de que antildeada elimine o mueva hojas

En vez de utilizar iacutendices los programadores expertos utilizan CodeName Cada hoja de un libro tiene un uacutenico CodeName que no cambia aunque la hoja se mueshyva o cambie de nombre incluso aunque se antildeadan otras hojas Puede ver el CodeName de las hojas simplemente yendo al Editor de Visual Basic (seleccione HerramientasgtMacrogtEditor de Visual Basic o pulse Alt Opcioacuten-Fll ) y luego mostrando la ventana de proyectos en caso de que sea necesario (seleccione VergtVentana Proyectos)

En la figura 71 el CodeName para la hoja cuyo nombre de pestantildea es Presushypuesto es Hoja3 El CodeName siempre es el nombre que aparece fuera de los

7 Trucos sobre macros 241

pareacutentesis cuando mira en la ventana de proyectos Puede hacer referencia a esta hoja con coacutedigo VBA en el libro utilizando la sentencia H o j a 3 S e l e c t e n vez de utilizar S h e e t s ( P r e s u p u e s t o ) S e l e c t o S h e e t s (3 ) S e l e c t

Archivo Edicioacuten Ver Insertar Formato Depuracioacuten Ejecutar Herramientas Complementos Ventana Ayuda

4$[ EuroTool (EUROTOOLXLA) lt5sect VBAProject (Librol)

Microsoft Excel Objetos EacutesectIacute Hojal (Datos antiguos) H Hoja2 (Datos nuevos)

13IZZZZI Q ThisWorkbook

iexclHoja3 Worksheet

Alfabeacutetica | por categoriacuteas j

I Hoja3 JDisplayFageBreaks False DisplayRightToLeft False EnableAutoFilter False EnableCalculation True EnableOutlining False EnablePivotTable False EnableSelection 0 - xlNoRestriction iexclNtildeame Presupuesto ScrollArea

Figura 71 Los CodeNames y los nombres de hojas en la ventana de proyectos de VBE

Si el libro ya estaacute lleno de coacutedigo VBE ya sea escrito a mano o grabado y que no utilice CodeNames para hacer referencia a las hojas puede cambiarlo al nivel del proyecto (es decir todo el coacutedigo que esteacute en todos los moacutedulos de libro) simplemente yendo a EdicioacutengtReemplazar mientras que esteacute en la ventana del editor

El uacutenico caso de que no puede utilizar el CodeName de una hoja es cuando hace referencia a una hoja que se encuentra en un libro diferente del que contiene el coacutedigo

Conectar de forma faacutecil botones a macros En lugar de asignar una macro a cada botoacuten a veces resultaraacute maacutes conveniente crear una uacutenica macro que gestione todos los botones

Normalmente los usuarios prefieren ejecutar las macros a traveacutes de una tecla de acceso raacutepido o a traveacutes de un botoacuten que pueda pulsarse faacutecilmente en vez de

242 Excel Los mejores trucos

tener que encontrarlas a traveacutes de menuacutes y cuadros de diaacutelogo La forma maacutes habitual de acceder a un botoacuten es a traveacutes del cuadro de herramientas Formulashyrios que estaacute disponible si selecciona la opcioacuten VergtBarras herramientasgtFormu-larios Estos botones en nuestra opinioacuten son la mejor eleccioacuten para ejecutar las macros especialmente aquellas que hayan sido grabadas ya que eacutestas normalshymente requieren que el usuario se encuentre en una hoja en particular cuando se ejecuten Esto es debido a que las macros grabadas siempre utilizan la hoja activa si graboacute la macro sin cambiar de hoja Esto significa que si el usuario no se enshycuentra en la hoja adecuada (es decir en una hoja que no es en la que se graboacute la macro) eacutesta puede que falle o haga cambios en una hoja incorrecta Por el conshytrario si utiliza botones en las hojas puede forzar al usuario a que vaya a la hoja adecuada y pulse el botoacuten para ejecutar la macro de forma que se ejecute en las condiciones adecuadas

iquestPor queacute utilizar un botoacuten del cuadro de herramientas Formularios en S^ vez de un botoacuten del cuadro de herramientas Cuadro de controles

w^ Porque los botones normalmente se utilizan para detectar un clic del ratoacuten y ejecutar una macro especiacutefica Soacutelo deberiacutea utilizar un botoacuten de comando del cuadro de herramientas Cuadro de controles cuando necesite atrapar eventos tales como doble clic clic con el botoacuten derecho etc Los controles del cuadro de herramientas Cuadro de controles se conocen como objetos ActiveX y utilizarlos simplemente para ejecutar una macro resulta una sobrecarga innecesaria para Excel sobre todo si utiliza nuacutemeros botones

Cuando tiene muchos botones en un libro y cada botoacuten se utiliza para ejecushytar una macro en especial puede asociar las macros a los botones haciendo clic con el botoacuten derecho del ratoacuten en su borde y elegir la opcioacuten Asignar macro Luego debe encontrar la macro adecuada en el cuadro de diaacutelogo y seleccionarla tal y como se muestra en la figura 72

Como cada botoacuten es normalmente utilizado para ejecutar una macro diferenshyte deberaacute desplazarse por la lista de macros para encontrar la que estaacute buscando Sin embargo existe una manera m u y sencilla para asignar a todos los botones una misma macro y auacuten asiacute hacer que cada uno de ellos ejecute una macro diferente Coloque el siguiente coacutedigo en cualquier moacutedulo estaacutendar Seleccione HerramientasgtMacrogtEditor de Visual Basic (Al t Opcioacuten-Fl l ) y cree un nuevo moacutedulo seleccionando la opcioacuten lnsertargtMoacutedulo y luego introduciendo el siguiente coacutedigo

Sub QueBoton( ) Run ApplicationCaller

End Sub

7 Trucos sobre macros 243

jsl- bull iquestpound) Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana

euro

1 A

1 Antildeadir fila Pegar

[ Solicitar

1 2

3

4 Horas

1 5 0 6 48

7 72

8 45

9 87

10 26

11 12

12 35 |H 4 bull bull H o j a l

Listo

Eliminar fila

Borrar C

Llamada bull

C

Imprimir

U - bull bull bull bull bull bull bull bull - bull bull bull bull bull bull bull bull bull

D E

I

Nombres

Juan Garciacutea

Mariacutea Serrano

Marta Salvador

Santos Palacios

Gonzalo Domiacutenguez

Carlos Buitrago

Susana Mulero

Lanolina Estrada Hoja2 Hoja3

Jombre de la macro

Libro2 ThisWorkbook Imprimir

Libro2 ThisWorkbook AnadirFila Libro2 ThisWorkbook Borrar bullydeg^IhJsWQr|^QQSEMlD^M

Libro2 ThisWorkbook Ir ASemana 1 y 2 Libro2 ThisWorkbook Ir ASemanaSy 4 Libro2 ThisWorkbook Llamada Libro2 ThisWorkbook PegarValores Libro2 ThisWorkbook Solicitar Libro2 ThisWorkbook Solicitar

Raeros en iexclEste libro

Descripcioacuten

1

i 4 1

bull-V

ffl-

F

3 [ J

3

Jnlxll - - S x

G

Aceptar 1

Cancelar

Nuevo j

Grabar

NUM

I-mdash

Figura 72 Botoacuten Imprimir activo teniendo

seleccionado y con el cuadro de diaacutelogo Asignar macro seleccionada tambieacuten la macro en cuestioacuten

Ahora simplemente necesita asignar a cada botoacuten el mismo nombre que tieshyne la macro que deberiacutea ejecutar Para cambiar el nombre de un botoacuten simpleshymente haga clic en eacutel y reemplace el nombre que aparece en el Cuadro de nombres (que estaacute a la izquierda de la barra de foacutermulas) con el nombre de la macro que deberiacutea ejecutar Haga esto mismo para todos los botones De esta forma si a un botoacuten le ha llamado Macrol y le ha asignado la macro QueBoton cuando haga clic sobre eacutel ejecutaraacute la macro Macrol

Crear una ventana de presentacioacuten para un libro Las ventanas de presentacioacuten proporcionan un toque de distincioacuten a una aplicacioacuten sin mencionar el hecho de que le entretienen mientras que la aplicacioacuten se carga iquestPor queacute no hacer que las hojas de caacutelculo hagan lo mismo

Es posible utilizar las caracteriacutesticas proporcionadas por VBA para crear una pantalla de presentacioacuten para cualquier libro Encontraraacute que el proceso es mushycho maacutes sencillo de lo que se habriacutea imaginado Para crear una pantalla de preshysentacioacuten que se muestre entre cinco y diez segundos en el momento en el que se abra un libro y que luego se cierre automaacuteticamente comenzaremos abriendo el

244 Excel Los mejores trucos

editor de Visual Basic seleccionando HerramientasgtMacrogtEditor de Visual Basic Luego seleccione I n se rtargt UserForm Si no aparece el cuadro de controles simshyplemente seleccione VergtCuadro de herramientas

En el cuadro de herramientas haga clic en el icono Etiqueta (para encontrarshylo simplemente pase por encima de cada icono y veraacute un pequentildeo cuadro de ayuda que le mostraraacute el nombre de cada uno) Haga clic en cualquier parte del formulario para insertar la etiqueta Luego utilice los cuadros que aparecen a su alrededor para cambiar el tamantildeo de forma que pueda escribir texto dentro del etiqueta Teniendo seleccionada la etiqueta vuelva a hacer clic en ella Con ello entraraacute en el modo de edicioacuten de texto y podraacute marcar el texto predefinido que aparece dentro de ella

Dentro de la etiqueta escriba el texto Mi pantalla de presentacioacuten Para camshybiar otras propiedades de la etiqueta (el tamantildeo de la fuente el color etc) aseshyguacuterese de tener la seleccionada y luego pulse F4 o bien seleccione la opcioacuten VergtVentana Propiedades Ahiacute puede cambiar todas aquellas propiedades que desee Ahora haga doble clic en el formulario (no en la etiqueta) y seleccione el evento I n i t i a l i z e que aparece en el cuadro de lista desplegable de la parte superior derecha de la ventana como se muestra en la figura 73

^Mmiwmmmmmmmamp^- bull ampsect Archivo Edicioacuten Ver Insertar Formato Depuracioacuten

bullbull bull XI

J - iexcl ~ g - E u r o T o o l (EUROTOOLXLA)

i - ltjg VBAProject (Libro2xls) 11 - Microsoft Excel Objetos S] Hojal (Hojal)

| Q ThisWorkbook j - v Formularios

El UserForm 1

] j UserForm 1 UserForm ~^]

Alfabeacutetica | por categoriacuteas |

fflsectamp9flflflHH UserForm 1 - 1 I iexclBackColor bull ampH8000000Famp i J BorderColor bull ampH80000012amp _J jBorderStyle 0 - fmBorderStyler Caption UserForm 1

Cycle 0 - fmCycleAllFonr DrawBuffer 32000 i

Enabled True j

Font Tahoma |

IForeColor bull ampH800000128tZJ |

JJ -J lt

1 UserForm

F

P r i v a t p Siuuml

End Sub

i l iLJ

JnJuumlJ Ejecutar Herramientas Complementos Ventana Ayuda

v i _ J v Liacuten 2 Col 1

3 Click

Click Dbiciick

Error

KevDown KeyPress KeyUp Layout MouseDown MouseMove

- S x

raquo - _ _ _ _ _ _ j

R i

JJ^I Figura 73 Cuadro de lista desplegable con los diferentes eventos para el objeto UserForm

Dentro de ese procedimiento introduzca el siguiente coacutedigo

ApplicationOnTime Now + TimeValue(000005) CerrarFormulario

7 Trucos sobre macros 245

Con lo que el coacutedigo deberiacutea quedar de la siguiente forma

Priacutevate Sub UserForm_Initialize( ) ApplicationOnTime Now + TimeValue(000005) CerrarFormulario

End Sub

A continuacioacuten vaya a InsertargtMoacutedulo e introduzca el siguiente coacutedigo exacshytamente como se muestra

Sub CerrarFormulario( ) Unload UserForml End Sub

Ahora todo lo que necesita es escribir algo de coacutedigo en el moacutedulo privado del objeto Workbook (ThisWorkbook) En el explorador de proyectos deberiacutea ver el nombre del libro Expanda las carpetas que se encuentran debajo de libro hasta que encuentre ThisWorkbook dentro de la carpeta Microsoft Excel Objetos Haga doble clic en ThisWorkbook para mostrar su moacutedulo privado En dicho moacutedulo privado introduzca el siguiente coacutedigo

Private Sub Workbook_Open( ) UserFormlShow

End Sub

Cierre la ventana para volver a Excel Guarde y cierre el libro y vuelva a abrirshylo para ver la ventana de presentacioacuten en accioacuten Puede ver un ejemplo de esto en la figura 74

Figura 74 Pantalla de presentacioacuten de ejemplo en accioacuten

246 Excel Los mejores trucos

Simplemente recuerde que la pantalla de presentacioacuten deberiacutea mostrarse tan soacutelo por un periacuteodo corto de tiempo y soacutelo deberiacutea contener texto resumido y relevante Si muestra esta pantalla durante maacutes de diez segundos puede resultar molesto para el usuario

Mostrar un mensaje de Por favor espere iquestHa tenido alguna vez una de esas macros que parece tardar una eternidad para completarse Si esto resulta un problema puede hacer que Excel muestre un mensaje de Por favor espere al usuario

Muchos usuarios esperan que el coacutedigo se ejecute y se complete praacutecticamenshyte de forma instantaacutenea Sin embargo esto no siempre ocurre asiacute Las macros grabadas en particular normalmente necesitan de mucho maacutes tiempo para comshypletarse que aquellos coacutedigos bien escritos en VBA Para complicar maacutes la cosa el lenguaje VBA de Excel es normalmente maacutes lento que la mayoriacutea de los lenguashyjes de programacioacuten

Por suerte podemos usar un poco de coacutedigo extra para crear un mensaje Por favor espere de forma que los usuarios sepan que el coacutedigo se estaacute ejecutando y que Excel no se ha bloqueado Por desgracia uno de los meacutetodos maacutes conocidos para hacer que los usuarios sean conscientes de que el coacutedigo se estaacute ejecutando es utilizando una barra de progreso de Excel

Existen dos problemas con este meacutetodo Uno la barra de progreso puede hacer que el coacutedigo sea todaviacutea maacutes lento complicando el problema Y dos el coacutedigo lento probablemente esteacute causado por un bucle y no puede utilizar la grabadora de macros para crear bucles

Nosotros preferimos utilizar coacutedigo VBA como el del siguiente ejemplo que utiliza un rectaacutengulo de la barra de herramientas Dibujo

Sub Hazlo( ) ApplicationScreenUpdating = True With HojalShapes(Rectangulol)

Visible = msoTrue = (Not HojalShapes(Rectangulol)Visible) End With

Cambiando las hojas forzamos a que Rectangulol se muestre mientras se ejecuta el coacutedigo

Hoja2Select HojalSelect

End Sub

Para utilizar este coacutedigo antildeada un rectaacutengulo desde la barra de herramientas Dibujo en cualquier hoja del libro Teniendo seleccionado el rectaacutengulo haga clic en el Cuadro de nombres y llame a esta figura Rectangulol

7 Trucos sobre macros 247

Introduzca el texto que desea mostrar mientras se estaacute ejecutando el coacutedigo cambie el formato la posicioacuten y el tamantildeo del rectaacutengulo si asiacute lo desea Escriba la macro anterior en un moacutedulo estaacutendar del libro Si es necesario cambie el texto Hojal por el CodeName de la hoja correspondiente en la que haya dibujado el rectaacutengulo (vimos coacutemo usar CodeName en un truco anterior) Luego vaya a HerramientasgtMacrogtMacros y ejecute la macro que acabamos de crear Esto haraacute que el rectaacutengulo se oculte

Al comienzo de este coacutedigo que es un coacutedigo lento coloque lo siguiente

Run Hazlo ApplicationScreenUpdating = False

El uso de la sentencia A p p l i c a t i o n S c r e e n U p d a t i n g = F a l s e hace que la pantalla no parpadee y que el coacutedigo sea maacutes raacutepido Para terminar al final del coacutedigo incluya la sentencia Run Haz lo Luego ejecute la macro lenta de forshyma habitual

H Hacer que una celda quede marcada o desmarcada al seleccionarla A veces resulta difiacutecil elegir opciones utilizando las casillas de verificacioacuten Por suerte podemos simplificar este proceso utilizando un poco de coacutedigo muy sencillo

Podemos utilizar los libros de Excel para recolectar datos para encuestas Norshymalmente hacemos esto ofreciendo los usuarios una serie de respuestas entre las que elegir y colocando casillas de verificacioacuten junto a ellas Entonces los usuarios activaraacuten las casillas que consideren oportunas El problema de usar este meacutetodo es que probablemente el libro acabaraacute teniendo cientos de casillas de verificacioacuten

En vez de ello podemos utilizar un coacutedigo VBA m u y sencillo para marcar cualquier celda dentro de un rango especificado en el momento en el que sea seleccionada En caso de que la celda vuelva a ser seleccionada el coacutedigo eliminashyraacute la marca El truco para este coacutedigo seraacute utilizar la letra a en dichas celdas utilizando la fuente Marlett Cuando llegue el momento de recolectar los resultashydos simplemente utilizaremos la funcioacuten CONTARSI para contar las apariciones de la letra a como se muestra a continuacioacuten

= C O N T A R S I ( $ A $ 1 $ A 1 0 0 a )

Los siguientes coacutedigos de ejemplo soacutelo funcionan para el rango Al A100 pero puede modificarlos faacutecilmente para que se ajusten a cualquier rango Para utilishyzar el coacutedigo active la hoja en la que deberiacutea mostrarse las marcas haga clic con el botoacuten derecho del ratoacuten sobre el nombre de la hoja (en la pestantildea de la parte

248 Excel Los mejores trucos

inferior de la ventana) y luego seleccione la opcioacuten Ver coacutedigo Escriba el primer coacutedigo (si desea que las celdas se activen con un solo clic) o el segundo coacutedigo (si desea que se activen con un doble clic)

COacuteDIGO 1 - Marcar casillas con un uacutenico clic

Private Sub Worksheet_SelectionChange(ByVal Target As Range) If TargetCellsCountgtl Then Exit Sub

If Not Intersect(Target Range(AlA100)) Is Nothing Then TargetFontNtildeame = Marlett If Target = vbNullString Then

Target = a Else

Target = vbNullString End If

End If End Sub

COacuteDIGO 2 - Marcar casillas con un doble clic

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range Cancel As Boolean)

If Not Intersect(Target Range(AlA100)) Is Nothing Then Cancel = True Evita que se entre en modo de edicioacuten

TargetFontNtildeame = Marlett If Target = vbNullString Then

Target = a Else

Target = vbNullString End If

End If End Sub

Una vez que haya colocado el coacutedigo deseado en su lugar simplemente cierre la ventana para volver a Excel y luego guarde el libro Si desea averiguar si una celda estaacute o no activada simplemente examine sus contenidos

Contar o sumar celdas que tengan un color de relleno especiacutefico Tarde o temprano necesitaraacute utilizar SUMA o CONTAR para sumar o contar celdas que tengan un cierto color de relleno y que un usuario haya cambiado manualmente ya que normalmente los usuarios ven maacutes sencillo utilizar colores que utilizar nombres de rangos

Para poder hacer esto primeramente abra el libro en el que desee contar o sumar celdas dependiendo del color de relleno Vaya a HerramientasgtMacrogtEditor

7 Trucos sobre macros 249

de Visual Basic (AltOpcioacuten-Fll) y luego seleccione lnsertargtMoacutedulo para insershytar un moacutedulo estaacutendar Dentro de este moacutedulo escriba el siguiente coacutedigo

Function FuncionColor(rColor As Range rRange As Range Optional SUM As Boolean) Dim rCell As Range Dim ICol As Long Dim vResult

ICol = rColorInteriorColorlndex

If SUM = True Then For Each rCell In rRange If rCellInteriorColorlndex = ICol Then

vResult = WorksheetFunctionSUM(rCell) + vResult End If

Next rCell Else

For Each rCell In rRange If rCellInteriorColorlndex = ICol Then

vResult = 1 + vResult End If

Next rCell End If

FuncionColor = vResult End Function

Ahora ya puede utilizar la funcioacuten personalizada FuncionColor en las foacutermushylas de la siguiente forma

=FuncionColor($C$1$A$1$A$12TRUE)

que suma los valores dentro del rango $A$1$A$12 que tengan el mismo color que la celda $C$1 En este caso la funcioacuten para una suma porque hemos utilizado TRUE como uacuteltimo argumento para la funcioacuten Si desea contar las celshydas en vez de sumarlas pero solamente aquellas cuyo color sea como el de la celda $C$1 utilice la siguiente expresioacuten

=FuncionColor($C$1$A$1$A$12FALSE)

o

=FuncionColor($C$1$A$1$A$12)

Si omitimos el uacuteltimo argumento la funcioacuten utiliza automaacuteticamente el vashylor predeterminado de FALSE (falso) Ahora ya puede sumar o contar celdas que tengan un color de relleno especiacutefico faacutecilmente tal y como se muestra en la figura 75

250 Excel Los mejores trucos

1 2 3 4

5 6 7 8

9 10 11 12 13 14 15 16 17 18

A B C D E 20 22 23 25 26 27 29 30 31 32 54 21 78 =FiincionColor($C$1$A$1$A$12VERDADERO)

3 =FuncionColor($C$1$A$1$A$12)

F

Figura 75 Utilizar la funcioacuten personalizada FuncionColor para contar dependiendo del color de relleno

Q Q Q Antildeadir el control Calendario de Microsoft Excel sect B3fM a cualquier libro

^ ^ ^ ^ ^ trade Si desea asegurarse de que los usuarios introducen fechas correctamente el control Calendario de Excel puede facilitar las cosas tanto para usted como para los usuarios de la hoja de caacutelculo Con este truco podraacute antildeadir un control Calendario a cualquier libro de Excel

A menos que una fecha sea introducida correctamente Excel no la reconoceraacute como vaacutelida Esto significa que a veces no puede realizar ciertos caacutelculos con aquellos datos que parezcan fechas pero que en realidad no lo son Tambieacuten sigshynifica que cualquier graacutefico o tabla dinaacutemica que se base en dichas fechas no seraacute vaacutelida Aunque puede ayudarnos la funcioacuten de validacioacuten de Excel (descrita en el capiacutetulo 2) estaacute lejos de ser la maacutes correcta

Con este truco podremos antildeadir un control Calendario a cualquier libro de Excel Para comenzar abra el libro en el que desee utilizar el calendario Resulta una buena idea utilizar el archivo Personalxls para esto en cuyo caso primerashymente deberiacutea mostrarlo seleccionando la opcioacuten VentanagtMostrar Si esta opcioacuten esta desactivada significa que no tiene auacuten un archivo Personalxls Puede crear uno faacutecilmente grabando una macro muy sencilla Seleccione HerramientasgtMacrogt Grabar nueva macro y luego elija a la opcioacuten Libro de macros personal en el cuadro de lista desplegable Guardar macro en Haga clic en Aceptar seleccione cualquier celda y luego detenga la grabacioacuten Con ello Excel crearaacute el archivo Personalxls automaacuteticamente

A continuacioacuten seleccione HerramientasgtIVIacrogtEditor de Visual Basic (Alt Opcioacuten-F l l ) y entonces seleccione lnsertargtUserForm Esto deberiacutea mostrar el

7 Trucos sobre macros 251

cuadro de herramientas de controles (si no es asiacute seleccione VergtCuadro de heshyrramientas) Haga clic con el botoacuten derecho del ratoacuten en el cuadro de controles y seleccione la opcioacuten Controles adicionales Desplaacutecese por la lista hasta que enshycuentre el elemento Control Calendario 100 (el nuacutemero de versioacuten puede depenshyder de el producto Excel que tenga instalado) Active la casilla de verificacioacuten para dicho control y haga clic en Aceptar Apareceraacute entonces el icono del conshytrol calendario Haga clic en eacutel y luego haga clic en el formulario que acabamos de crear

Utilice los pequentildeos recuadros del control y del formulario para cambiar sus tamantildeos de forma que queden como en la figura 76

F yen

i iaiai^a^^gw ^sect Archivo Edicioacuten Ver Insertar Formato Depuracioacuten Ejecutar Herramientas Complementos Ventana Ayuda

sectiexcl JI - d u -J - JJ J lt -i _J J [ 7 ] laquo ^

f l x

n

fc ltiacute

A abl m i iexcld n ^ - i I I El ra --i

F

JJ

Calendar 1 (alendar

Alfabeacutetica I p0r categoriacuteas iexcl

(Acerca de) Calendar 1

bull ampH8000000Famp

21 (Fuente)

bull ampH0UumlUuml00000amp Sistema (media) lun En relieve (Fuente)

bull ampHUuml0A00Uuml00amp n ftHntildennnnnmftiacute JUumlJ

may 2004 [2004^] f

lun

3

10

17

24

31

mar

4

11

18

25

mieacute

5

12

19

26

jue

6

13

20

27

vie

7

14

21

28

saacuteb

1

8

15

J-

29

dom I 2

9

16

23

30

Figura 76 Insertar un control calendario

Aseguacuterese de que el formulario esteacute seleccionado (como aparece en la figura 76) y luego vaya a la opcioacuten VergtVentana Propiedades En ella seleccione la propiedad Caption y cambie el texto que aparece por la palabra Calendario Ahora vaya a VergtCoacutedigo y en el moacutedulo privado antildeada el siguiente coacutedigo

Priacutevate Sub Calendarl_Click( ) ActiveCell = CalendarlValueacute

252 Excel Los mejores trucos

End Sub

Priacutevate Sub UserForm_Activate( ) Me Calendan Valueacute = Date

End Sub

Seleccione ahora la opcioacuten lnsertargtMoacutedulo y en el moacutedulo privado escriba el siguiente coacutedigo

Sub Mostrar( ) UserFormlShow

End Sub

Cierre esta ventana para volver a Excel Vaya a HerramientasgtMacrogtMacros y seleccione la macro Mostrar Haga clic en el botoacuten Opciones asigne una tecla de acceso raacutepido y todo estaraacute listo Simplemente pulse esa tecla y apareceraacute el cashylendario con la fecha de hoy Puede hacer clic en cualquier fecha y veraacute coacutemo se inserta en la celda activa

Proteger por contrasentildea y desproteger todas las hojas de caacutelculo raacutepidamente Por desgracia no existe la posibilidad en Excel de proteger y desproteger todas las hojas de caacutelculo de golpe Sin embargo con un simple coacutedigo podemos hacerlo

Excel proporciona un mecanismo de proteccioacuten que puede antildeadirse a las hojas de caacutelculo mediante la opcioacuten HerramientasgtProteccioacutengtProteger hoja Es posible tambieacuten indicar una contrasentildea de forma que otros usuarios no puedan acceder a la hoja a menos que conozcan dicha contrasentildea A veces sin embargo desearaacute proteger con contrasentildea y desproteger todas las hojas de un libro de forma raacutepishyda ya que protegerlas y desprotegerlas una a una resulta m u y tedioso A contishynuacioacuten veamos coacutemo podemos simplificar esta tarea

Abra el libro en el que desea aplicar el coacutedigo Tambieacuten puede seleccionar la opcioacuten VentanagtMostrar para mostrar el archivo Personalxls de forma que dicho coacutedigo esteacute disponible para todos los libros En caso de que esta opcioacuten esta desactivada significa que todaviacutea no tiene un archivo Personalxls Puede crear u n o faacutecilmente g rabando u n a macro m u y sencilla Para ello seleccione HerramientasgtMacrogtGrabar nueva macro y elegir el libro de macros personales como destino Luego haga clic en Aceptar haga clic en cualquier celda y detenga la grabacioacuten A Excel crearaacute el archivo Personalxls automaacuteticamente

A continuacioacuten seleccione HerramientasgtMacrogtEditor de Visual Basic (Alt Opc ioacuten-F l l ) y luego seleccione lnsertargtL)serForm Esto deberiacutea mostrar un for-

7 Trucos sobre macros 253

mulario y el cuadro de herramientas Si no fuese asiacute puede abrirlo a traveacutes del menuacute Ver

En el Cuadro de herramientas seleccione el cuadro de texto (cuyo icono es ab |) Luego haga clic en el formulario para antildeadir ese control en eacutel Coloacutequelo en la esquina superior izquierda del formulario y cambie el tamantildeo seguacuten sus prefeshyrencias

Teniendo seleccionado el cuadro de texto seleccione VergtVentana Propiedades (F4) En la ventana de propiedades desplaacutecese hacia abajo hasta encontrar la propiedad PasswordChar y en el cuadro de texto situado su derecha introduzca un asterisco () Vuelva al cuadro de herramientas seleccione el icono Botoacuten de comando y haga clic en el formulario colocaacutendolo en la esquina superior dereshycha del mismo

Teniendo seleccionado el botoacuten de comando vaya a la ventana de propiedades y en ella desplaacutecese hacia abajo hasta encontrar la propiedad Caption En el cuashydro de texto situado su derecha introduzca el texto Aceptar En caso de estar utilizando Excel 97 tambieacuten debe encontrar la propiedad TakeFocusOnClick y establecer su valor en F a l s e Ahora seleccione el formulario nuevamente y en la ventana de propiedades encuentre la propiedad Caption Cambie su valor por el texto Protegerdesproteger todas las hojas Al final del formulario deberiacutea pareshycerse al que se muestra en la figura 77

tnuumlmmmwMmmmmmmm njid Archivo Edicioacuten Ver Insertar Formato Depuracioacuten Ejecutar Herramientas Complementos Ventana Ayuda

-0 l

r i u r o T o o l (EUROTOOLXLA) V i

L VBAProject (Libro3) i

Microsoft E gt cel Obietos j

H j H o i a l (Hoial) j

a]Hoia (Hoia) J

B]Hoia3(Hoia3) Q ThisWotlbool iexcl

nsmanaraia UserForml UserForm

Alfabeacutetica I por categoriacuteas

j(Name)

IacuteBackColor

IBorderColor BorderStyle

RU^MiHjBH IacuteCycle

iDrawBuffer

lEnabled

iFont

iForeColor

UserForml

bull ampH8000000Famp bull ampJH80000012amp

0 - fmBorderStyler

SUffi Pr oteger despr oti

0 - fmCvcleAllForrr

32000

True

Tahoma

bull ampH80000012amp

[bull[bull

pUfflWjK

~ t bull bull bull bull bull

f

bull Iacute Iacute

uumluuml-niacute bull iHIacuteiiacute]iacuteM

Diii

j Aceptar

iraquo

_2H||

l - f i ^W-

zMsmnna

Figura 77 Formulario insertado en VBE

254 Excel Los mejores trucos

Seleccione la opcioacuten VergtCoacutedigo (F7) e introduzca el siguiente coacutedigo exactashymente igual que como aparece

Priacutevate Sub CommandButtonl_Click( ) Dim wSheet As Worksheet

For Each wSheet In Worksheets If wSheetProtectContents = True Then

wSheetUnprotect Password=TextBoxlText Else

wSheetProtect Password=TextBoxlText End If

Next wSheet Unload me

End Sub

Este coacutedigo se recorre todas las hojas que hay en el libro activo En caso de que haya alguna protegida la desprotege utilizando la contrasentildea introducida en el cuadro de texto Si la hoja ya estaba desprotegida entonces la protege utilizando la contrasentildea Ahora vaya a lnsertargtMoacutedulo introduzca el siguiente coacutedigo

Sub MostrarContrasentildea( ) UserFormlShow

End Sub

Este coacutedigo sirve para mostrar el formulario Ahora cierre esta ventana para volver a la ventana principal de Excel

Vaya a HerramientasgtMacrogtMacros (AltOpcioacuten-F8) Seleccione la macro MostrarContrasentildea y haga clic en el botoacuten Opciones para asignar una tecla de acceso raacutepido Cuando pulse dicha tecla todas las hojas desprotegidas se proteshygeraacuten y las que estuviesen protegidas quedaraacuten desprotegidas

Como esta macro no le pide que confirme la contrasentildea deberaacute estar muy seguro de lo que escriba De lo contrario puede encontrarse con que una contrasentildea mal escrita le bloquee todas las hojas de caacutelculo

Si solamente estaacute protegiendo los contenidos de usted mismo la siguiente macro realiza las mismas tareas pero utilizando una contrasentildea en blanco

Option Explicit

Sub Proteger_desproteger( ) Dim wSheet As Worksheet

For Each wSheet In Worksheets With wSheet

If ProtectContents = True Then

7 Trucos sobre macros 255

Unprotect Password= Else

Protect Password= End If

End With Next wSheet

End Sub

Aunque esto no sea demasiado seguro realmente puede resultar m u y conveshyniente

Recuperar el nombre y la ruta de un libro de Excel Tarde o temprano desearaacute devolver en una celda el nombre de un libro o incluso el nombre del archivo y la ruta del mismo Con este truco le resultaraacute sencillo recuperar dicho nombre y ruta

Las tres funciones definidas por el usuario que explicamos en este apartado colocan el nombre de un libro dentro de una celda o el nombre de archivo y la r u t a del l ibro en u n a celda Los dos p r imeros ejemplos MiNombre y MiNombreCompleto no tienen argumentos El uacuteltimo NombreHoja se utiliza en lugar de anidar la funcioacuten EXTRAER y las otras dos funciones dentro de la funcioacuten CELDA para obtener el nombre de la hoja un proceso que normalmente requeririacutea la siguiente foacutermula espantosa

=EXTRAER(CELDA(nombrearchivo$A$l)ENCONTRAR(] CELDA(nombrearchivo$A$1))+12 5 5)

Como puede ver esto requiere ciertamente escribir bastante para un resultashydo tan simple Es por ello que hemos desarrollado nuestra propia funcioacuten NombreHoja

Para utilizar esta funcioacuten definida por el usuario pulse Alt Opcioacuten-Fl l seshyleccione InsertargtMoacutedulo y copie el siguiente coacutedigo

Function MiNombre( ) As String MiNombre = ThisWorkbookNtildeame

End Function

Function MiNombreCompleto( ) As String MiNombreCompleto = ThisWorkbookFulIName

End Function

Function NombreHoja(rAnyCell) ApplicationVolatile NombreHoja = rAnyCellParentNtildeame

End Function

uuml

256 Excel Los mejores trucos

Guarde estas funciones y cierre la ventana Ahora la funcioacuten apareceraacute en la categoriacutea de funciones definidas por el usuario en el asistente para funciones

Puede utilizar estas funciones tal y como se muestra en la figura 78 No necesitan argumentos Las foacutermulas que hay en la columna A se muestran como demostracioacuten y no tienen ninguacuten efecto en el resultado

Foacutermula

=MiNombreQ

=MiNornb re Completo

=C E LD A( n o m b re a re h ivo)

=NombreHoja(A1)

B

Resultado

Presupuestosxls

CMis docurnentosExcelPresupuestos xIs

C M i s d o c u rn e nt o sE x c e l[ P re s u p u e st o s x I s ] H o j a 1

Hojal

Figura 78 Las funciones y sus resultados

En la celda A4 de la figura 78 tambieacuten hemos colocado la funcioacuten H estaacutendar CELDA que devuelve el nombre de un libro la ruta del archivo

w V y el nombre de la hoja activa En otras palabras esta funcioacuten estaacutendar devuelve informacioacuten acerca del sistema operativo actual informacioacuten sobre formatos ubicacioacuten y contenidos de un libro

Ir maacutes allaacute del liacutemite de tres criterios del formato condicional Podemos utilizar VBA para trucar el formato condicional de forma que utilice maacutes de tres criterios sobre los datos De hecho podemos utilizar el coacutedigo para aplicar virtualmente un nuacutemero ilimitado de criterios

Excel dispone de una caracteriacutestica muy interesante llamada Formato condishycional (que ya vimos en el capiacutetulo 2) Puede encontrarla a traveacutes de la opcioacuten de menuacute FormatogtFormato condicional El formato condicional le permite dar forshymato a las celdas en base a su contenido Por ejemplo puede poner en color rojo el fondo de aquellas celdas cuyos valores seraacuten superiores a 5 pero menores que 10 Aunque esto es muy uacutetil el problema estaacute en que soacutelo podemos utilizar hasshyta tres condiciones lo cual a veces puede no ser suficiente Si desea utilizar maacutes de tres condiciones podemos utilizar coacutedigo VBA de Excel que sea ejecutado automaacuteticamente cada vez que un usuario cambie un rango especiacutefico Para ver coacutemo funciona esto digamos que tiene seis condiciones separadas en el rango de celdas Al A10 en una hoja en particular Rellene algunos datos de la misma forshyma que aparecen en la figura 79 Guarde el libro luego active la hoja de caacutelculo haga clic con el botoacuten derecho del ratoacuten sobre su nombre (en la pestantildea de la parte inferior) seleccione Ver coacutedigo y luego introduzca el siguiente coacutedigo

7 Trucos sobre macros 257

Priacutevate Sub Worksheet_Change(ByVal Target As Range)

Dim icolor As Integer If Not Intersect(Target Range(AlA10)) is Nothing Then Select Case Target Case 1 To 5

icolor = 6 Case 6 To 10

icolor = 12 Case 11 To 15

icolor = 7 Case 16 To 20

icolor = 53 Case 21 To 25

icolor = 15 Case 26 To 30

icolor = 42 Case Else Cualquier cosa

End Select TargetInteriorColorlndex = icolor

End If

End Sub

Ahora cierre esta ventana para volver a la hoja de caacutelculo Los resultados deshyberiacutean parecerse a los que se muestran en la figura 710

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 13

A Nuacutemeros

3

3

13

18 23 28 3 7 12 17 23 28

B

Figura 79 Datos rellenados para el experimento del formato condicional

El color de fondo de cada celda deberiacutea haber cambiado basaacutendose en el nuacutemeshyro pasado a la variable i c o l o r que de hecho pasa este nuacutemero a T a r g e t I n t e r i o r C o l o r l n d e x El nuacutemero pasado estaacute determinado por la liacutenea de coacuteshydigo Case x To x Por ejemplo si introduce el nuacutemero 22 en cualquier celda

258 Excel Los mejores trucos

dentro del rango A1A10 el nuacutemero 15 es asignado a la variable i c o l o r que a su vez pasa ese valor a T a r g e t I n t e r i o r C o l o r l n d e x haciendo que la celda quede en gris T a r g e t siempre hace referencia a la celda que ha cambiado y por lo tanto lanzoacute la ejecucioacuten del coacutedigo

A 1 Nuacutemeros 2 3 3 4 j - 8 5

I 6 13 7

I 8 SEacuteSiPISUumlIil 9 23

10 mmm 11 3 12 7 13 12 14 17 15 23 16 28 17

| 18

B

Figura 710 Como deberiacutean aparecer los datos una vez que se haya introducido el coacutedigo

Q Q S | Ejecutar procedimientos en hojas protegidas ^KIacuteK^I

L a s m a c r o s de Excel son una gran forma de ahorrar tiempo y eliminar K f i f l errores Sin embargo tarde temprano querraacute probar a ejecutar sus macros

favoritas en hojas que han sido protegidas ya sea con o sin contrasentildea lo que provocaraacute un error de ejecucioacuten Podemos evitar este problema con el siguiente truco

Si alguna vez ha intentado ejecutar una macro de Excel en una hoja de caacutelcushylo que ha sido protegida sabe que tan pronto como se encuentra la hoja en cuesshytioacuten la macro probablemente no funciona y mostraraacute un error de ejecucioacuten

Una forma de evitar que esto suceda es utilizar cierto coacutedigo como el que se muestra a continuacioacuten para desproteger y luego volver a proteger la hoja

Sub MiMacro( )

HojalUnprotect Password=Secreta

bullSU COacuteDIGO

HojalProtect Password=Secreta

End Sub

7 Trucos sobre macros 259

Como puede ver el coacutedigo desprotege la Hojal con la contrasentildea Secreta ejecuta el coacutedigo y luego vuelve a protegerla con la misma contrasentildea Esto funshycionaraacute aunque tiene algunas desventajas Una de ellas es que el coacutedigo podriacutea tener alguacuten fallo y detenerse antes de llegar al final donde se encuentra la senshytencia S h e e t l P r o t e c t Pas sword = S e c r e t a Esto hariacutea que por supuesshyto la hoja quedase desprotegida Otro problema es que necesitaraacute un coacutedigo similar para todas las macros y todas las hojas de caacutelculo

Otro camino para evitar este problema es utilizar U s e r l n t e r f aceOnly que es un argumento opcional del meacutetodo P r o t e c t y que puede establecer en True (de forma predeterminada este argumento vale F a l s e ) Al establecer este argushymento a True Excel permitiraacute que todas las macros VBA se ejecuten en aquellas hojas que esteacuten protegidas ya sea con o sin contrasentildea Sin embargo si utiliza el meacutetodo P r o t e c t con argumento U s e r l n t e r f aceOnly establecido en True en una hoja de caacutelculo y luego graba el libro toda la hoja (no solamente la interfaz) quedaraacute completamente protegida cuando vuelva a abrir el libro Para volver a establecer el argumento U s e r l n t e r f aceOnly a True despueacutes de que el libro sea abier to debe volver a u t i l i za r el meacute todo P r o t e c t con el a r g u m e n t o U s e r l n t e r f a c e O n l y a True

Para evitar esta molestia puede utilizar el evento WorkbookOpen el cual es ejecutado tan pronto como se abra el libro Dado que eacuteste es un evento del objeto ThisWorkbook debe colocar el siguiente coacutedigo en un moacutedulo privado de ThisWorkbook Para ello en las versiones de Windows de Excel haga clic con el botoacuten derecho del ratoacuten en el icono de Excel situado en la esquina superior izshyquierda y luego seleccione la opcioacuten Ver coacutedigo En Macintosh abra el objeto Workbook desde la ventana de proyectos del Editor de Visual Basic A continuashycioacuten introduzca el siguiente coacutedigo

Priacutevate Sub Workbook_Open( ) Si tiene diferentes contrasentildeas para cada hoja

Sheets(l)Protect Password=Secreta UserlnterFaceOnly=True Sheets(2)Protect Password=Codorniz UserlnterFaceOnly=True

Repetir tantas veces como sea necesario

End Sub

Este coacutedigo resulta bueno si cada hoja en la que desea que funcionen las macros tiene una contrasentildea diferente o si no desea proteger todas las hojas Puede estashyblecer el argumento U s e r l n t e r f aceOnly a True sin tener que desproteger prishymero Si desea establecer el argumento U s e r l n t e r f aceOnly a True en todas las hojas y eacutestas tienen la misma contrasentildea puede utilizar el siguiente coacutedigo que deberaacute ser colocado en el mismo lugar en el que fue colocado el anterior

260 Excel Los mejores trucos

Priacutevate Sub Workbook_Open( ) Dim wSheet As Worksheet

For Each wSheet In Worksheets wSheetProtect Password=Secreta _

UserlnterFaceOnly=True Next wSheet

End Sub

Ahora cada vez que abra el libro el coacutedigo se ejecutaraacute y estableceraacute la proshypiedad U s e r l n t e r f aceOnly a True permitiendo a las macros operar sin que por ello queden desprotegidas las hojas de cara a los usuarios

^ ^ ^ Q Distribuir macros 11 ^ V f f f ^ l Aunque puede distribuir una macro a lo largo de un libro si solamente desea

^ K ^ ^ H distribuir su funcionalidad la solucioacuten es utilizar los complementos de Excel

Un complemento de Excel no es maacutes que un libro que ha sido guardado como un complemento yendo a la opcioacuten ArchivogtGuardar como y luego seleccionando la opcioacuten Complemento de Microsoft Excel (xla) Una vez que sea guardado y vuelto a abrir el libro quedaraacute oculto y soacutelo podraacute ser visto a traveacutes del explorashydor de proyectos en el Editor de Visual Basic No estaacute oculto de la misma forma que lo estaacute el archivo Personalxls ya que eacuteste siacute se puede ver a traveacutes de la opcioacuten VentanagtMostrar Una vez haya completado el libro que desea utilizar como un complemento debe guardar una copia de eacutel Puede guardarlo en cualshyquier ubicacioacuten que desee pero aseguacuterese de apuntarse doacutende lo colocoacute

Abra cualquier libro y en el menuacute Herramientas seleccione la opcioacuten Compleshymentos y luego haga clic en Examinar Encuentre el complemento en el lugar en el que lo haya grabado seleccioacutenelo y luego haga clic en el botoacuten Aceptar

Aseguacuterese de que el complemento aparece en la lista de complementos disposhynibles y de que la casilla de verificacioacuten esteacute activada Luego haga clic en Aceptar para instalar el complemento Puede guardar la mayoriacutea del coacutedigo en un comshyplemento de Excel sin tener que hacer demasiados cambios De todas formas existen algunas consideraciones que deberaacute tener en cuenta

bull El objeto ThisWorkbook siempre haraacute referencia al complemento no al libro del usuario En vez de ello debe utilizar el objeto Act iveWorkbook

bull No puede hacer referencia a hojas en A c t i v e W o r b o o k ut i l izando CodeNames

bull Siempre debe devolver las barras herramientas etc al lugar en el que el usuario las teniacutea originalmente No hay nada peor que un complemento que cambie todas las configuraciones del usuario sin su consentimiento

7 Trucos sobre macros 261

bull Siempre debe incluir alguacuten tipo de gestioacuten de errores (siacute la mayoriacutea de los complementos causaron errores en algunas ocasiones)

bull Tenga en cuenta que el usuario puede tener muchos sistemas de protecshycioacuten aplicados Nunca utilice coacutedigo para desproteger cualquier parte de libro del usuario Simplemente muestre un mensaje preguntando al usuario si le permite desproteger el libro

bull Haga buen uso de la hoja de que dispone en el complemento Utilizaremos las hojas para almacenar configuraciones como puedan ser barras herrashymientas

bull Si se mantiene pulsada la tecla Mayuacutes no se evitaraacute que se ejecuten los eventos del complemento (a diferencia de coacutemo ocurre con los archivos normales xls)

bull Si desea explorar o trabajar nuevamente el complemento ya sea para inshycorporar actualizaciones o para hacer modificaciones vaya al Editor de Visual Basic estando el complemento instalado y desde la ventana de proshypiedades seleccione la propiedad I sAdd in y establezca su valor a F a l s e Si desea guardar el libro como un complemento esta propiedad volveraacute a estar en True

bull Aplique alguna proteccioacuten a los moacutedulos de su complemento seleccionanshydo la opcioacuten HerramientasgtPropiedades de VBProject y yendo a la pestantildea Proteccioacuten

Una vez que haya creado el complemento necesitaraacute hacer que las macros contenidas en eacutel sean sencillas de ejecutar por el usuario Todo lo esto lo conseshyguiraacute ut i l izando los eventos W o r k b o o k _ A d d i n I n s t a l l y W o r k b o o k _ A d d i n U n l n s t a l l que se encuen t ran en el moacutedu lo pr ivado del objeto ThisWorkbook Simplemente ha de hacer doble clic en ThisWorkbook del arshychivo xla y Excel le llevaraacute directamente al moacutedulo privado en donde se enshycuentra el coacutedigo tal y como se muestra en la figura 711

A continuacioacuten tenemos un ejemplo sencillo del coacutedigo

Option Explicit Dim cControl As CommandBarButton Priacutevate Sub Workbook_AddinInstall( )

On Error Resume Next Soacutelo por si acaso 1 Elimina cualquier elemento de menuacute existente que pudiese quedar ApplicationCommandBars(Worksheet Menuacute Bar)Controls(Super

Coacutedigo)Delete

Antildeade un nuevo elemento de menuacute y establece una variable CommandBarButton a eacutel

Set cControl =ApplicationCommandBars(Worksheet Menuacute Bar) ControlsAdd

262 Excel Los mejores trucos

Trabajamos con la variable With cControl

Caption = Super Coacutedigo

Style = msoButtonCaption

OnAction = MiGranMacro estaacutendar

End With On Error GoTo 0

Macro almacenada en un moacutedulo

End Sub

Private Sub Workbook_AddinUninstall( )

On Error Resume Next En caso de que ya esteacute eliminada ApplicationCommandBars(Worksheet Menuacute Bar)Controls(Super

Coacutedigo)Delete On Error GoTo 0

End Sub

Archivo Edicioacuten Ver Insertar Formato Depuracioacuten Eiecutar Herramientas Complementos Ventana Ayuda

S j H o i a l (Henal) H] Hoia2 (HoiaJ) H] Hoiai (Hoiauuml) B] Hoia4 (Ho)a4)

9 I 1 H S Iacute Formularios

EUuml UserForml

ThisWorkbook Workbook

Alfabeacutetica | por categoriacuteas ]

(Ntildeame) ThisWorkbook

f3EBBBBfei91iiaiacuteTni False AutoUpdateFrequer 0

ChangeHistoryDura 0

ConflictResolution 1 - xlUserResolutk

Date 1904 False |DisplayDrawingObie -4104 -DisplaylnkCornment True lEnableAutoRecover True

iexclEnvelopeVisible False

xlDisplay5l

Figura 711 Explorador de proyectos con el objeto ThisWorkbook seleccionado para un complemento llamado Administrador de nuacutemerosxla

Eacuteste es todo el coacutedigo que necesita para antildeadir un uacutenico elemento de menuacute

(llamado Super Coacutedigo) al final de la barra de menuacutes de la hoja actual tan pronshy

to como el usuar io instale el componente a traveacutes de la opcioacuten de menuacute

HerramientasgtComplementos Cuando se haga clic en ese elemento de menuacute una

7 Trucos sobre macros

macro (que se encuentra dentro del moacutedulo estaacutendar del complemento) se ejecushytaraacute Recuerde que el coacutedigo anterior debe ser colocado en un moacutedulo privado del objeto ThisWorkbook del complemento

Si por ejemplo desea antildeadir el elemento de menuacute antes del elemento Formashyto puede utilizar el siguiente coacutedigo

Option Explicit

Dim cControl As CommandBarButton

Priacutevate Sub Workbook_AddinInstall( )

Dim iContlndex As Integer

On Error Resume Next Just in case Elimina cualquier elemento de menuacute que nos hayamos dejado ApplicationCommandBars(Worksheet Menuacute Bar)Controls(Super

Coacutedigo)Delete Pasa el iacutendice del menuacute Formato a una variable Utilizamos el meacutetodo FindControl para encontrar su nuacutemero de

iacutendice ID number es utilizado en caso de hacer una personalizacioacuten iContlndex = ApplicationCommandBarsFindControl(ID=30006)Index

Antildeade el nuevo elemento de menuacute y establece la variable CommandBarButton a eacutel

Usamos el nuacutemero pasado a nuestra variable entera para posicionarlo

Set cControl = ApplicationCommandBars(Worksheet Menuacute Bar) ControlsAdd(Before=iContIndex)

Trabajamos con la variable With cControl

Caption = Super Code

Style = msoButtonCaption

OnAction = MiGranMacro Macro almacenada en un moacutedulo estaacutendar End With

On Error GoTo 0 End Sub

En este caso no deberiacutea tener que cambiar el coacutedigo de W o r k b o o k _ A d d i n U n i n s t a l l ( )

En estos ejemplos todo el coacutedigo para el elemento de menuacute se encuentra en W o r k b o o k _ A d d i n I n s t a l l y Workbook_Add inUnIns t a l l Esto no resulta un problema cuando el coacutedigo soacutelo antildeade un elemento de menuacute Sin embargo si quiere antildeadir maacutes de un elemento y quizaacute elementos de submenuacute deberiacutea coloshycar el coacutedigo en un procedimiento (o dos) dentro de un moacutedulo estaacutendar Luego tendriacutea que utilizar un coacutedigo parecido al que le mostramos a continuacioacuten

Priacutevate Sub Workbook_AddinInstall( ) Run AnadirMenus

End Sub

Priacutevate Sub Workbook AddinUninstall( )

264 Excel Los mejores trucos

Run EliminarMenu End Sub

En el moacutedulo estaacutendar escriba un coacutedigo parecido al siguiente

Sub AnadirMenus( ) Dim cMenul As CommandBarControl Dim cbMainMenuBar As CommandBar Dim iHelpMenu As Integer Dim cbcCutomMenu As CommandBarControl

1(1)Elimina cualquiera que exista Debemos usarOn Error Resume next por si no existiera

On Error Resume Next

ApplicationCommandBars(Worksheet Menuacute Bar)Controls(ampNuevo

menuacute)Delete

(2)Establecemos la variable CommandBar a la barra de menuacutes de la hoja Set cbMainMenuBar =

ApplicationCommandBars(Worksheet Menuacute Bar)

1(3)Devolvemos el iacutendice del menuacute Ayuda Podemos usar esto para colocar un elemento de _

menuacute delante de eacutel iHelpMenu = _

cbMainMenuBarControls(Help)Index

1(4)Antildeadimos un control a Worksheet Menuacute Bar antes del menuacute Ayuda Establecemos una variable CommandBarControl a eacutel

Set cbcCutomMenu = _ cbMainMenuBarControlsAdd(Type=msoControlPopup _

Before=iHelpMenu)

(5)Damos un tiacutetulo al control cbcCutomMenuCaption = ampNuevo menuacute

1(6)Con el nuevo control antildeadimos un subcontrol y le damos un tiacutetulo para indicar _

queacute macro va a ejecutar (OnAction) With cbcCutomMenuControlsAdd(Type=msoControlButton)

Caption = Menuacute 1

OnAction = MiMacrol End With

1(6a)Antildeadimos otro subcontrol le damos un tiacutetulo y decimos queacute macro ejecutaraacute

With cbcCutomMenuControlsAdd(Type=msoControlButton) Caption = Menuacute 2 OnAction = MiMacro2

End With Repita el paso 6a para cada elemento de menuacute que desee antildeadir

7 Trucos sobre macros 265

Antildeadimos otro menuacute que formaraacute uno nuevo Establecemos la variable CommandBarControl a eacutel Set cbcCutomMenu = cbcCutomMenuControlsAdd(Type=msoControlPopup) Damos un tiacutetulo al control cbcCutomMenuCaption = ampSiguiente menuacute

Antildeadimos un control al submenuacute que acabamos de crear With cbcCutomMenuControlsAdd(Type=msoControlButton)

Caption = ampGraacuteficos

Faceld = 420

OnAction = MiMacro2 End With

On Error GoTo 0 End Sub

Sub EliminarMenu( ) On Error Resume Next

ApplicationCommandBars(Worksheet Menuacute Bar)Controls(ampNuevo menuacute)Delete

On Error GoTo 0 End Sub

Cuando utilicemos la propiedad OnAction es posible que encuentre probleshymas si hay una macro en el libro del usuario que tenga el mismo nombre que la macro que reside en el complemento Para asegurarnos de que no ocurre esto siempre es una buena idea utilizar un meacutetodo como el siguiente

With cbcCutomMenuControlsAdd(Type=msoControlButton) Caption = ampGraacuteficos Faceld = 420 OnAction = ThisWorkbookNtildeame amp MiMacro2

End With

Al hacer esto nos estamos asegurando de que Excel sepa queacute macro tiene que ejecutar cuando el usuario haga clic en el botoacuten Con estos coacutedigos encontraraacute que es m u y sencillo distribuir y utilizar macros con todo su potencial

CAPIacuteTULO 8

Conectando Excel con el mundo

Trucos 95 a 100

Excel ha tenido desde hace mucho tiempo conexioacuten con otros miembros de la familia Microsoft Office asiacute como con bases de datos Con el crecimiento de Internet Excel ha incorporado funciones de exportacioacuten a HTML haciendo que sea faacutecil publicar informacioacuten creada en esta aplicacioacuten Sin embargo durante los uacuteltimos antildeos Microsoft ha desarrollado algunas funciones que le permiten utilizar Excel como una interfaz para ver informacioacuten publicada en cualquier lugar asiacute como hacer que su informacioacuten pueda ser llevada fuera de Excel y ser vista en cualquier tipo de formulario que desee proporcionando solamente aqueshyllos datos que considere oportunos Al mismo tiempo numerosos programado-res han creado meacutetodos para obtener informacioacuten en Excel y para publicarla fuera de eacuteste permitiendo utilizar hojas de caacutelculo sin necesidad de tener Excel

Cargar un documento XML en Excel Si una persona le enviacutea un archivo XML que contiene datos que se pueden ajustar a tablas no es necesario que tenga que leer todo el texto y las marcas que contiene Puede cargar ese documento directamente en Excel y especificar coacutemo desea presentarlos asiacute como trabajar con ellos utilizando mapas

Extensible Markup Language (XML) se ha convertido en un formato estaacutendar de interconexioacuten durante los uacuteltimos antildeos y resulta algo habitual que las persoshynas y las empresas se enviacuteen entre siacute archivos en este formato Las estructuras sencillas del nuacutecleo de un documento XML hacen que compartir informacioacuten independientemente del software que utilicen las diferentes partes sea m u y sen-

uuml

268 Excel Los mejores trucos

cilio Sin embargo hasta hace poco resultaba difiacutecil superar el t ramo que habiacutea entre los documentos XML y la interfaz a pesar de que existiacutean herramientas geneacutericas ya disponibles Con Excel 2003 todo esto es mucho maacutes sencillo al menos para aquellos datos que puedan ajustarse a una tabla

Este truco utiliza caracteriacutesticas que solamente estaacuten disponibles en la versioacuten Excel 2003 de Windows Las versiones anteriores no soportan

^ todo esto asiacute como las versiones existentes para Macintosh

Comenzaremos con un documento XML de ejemplo como el que se muestra continuacioacuten en el que nos encontraremos un cataacutelogo de libros en ingleacutes

Ejemplo 81 Un sencillo documento XML para hacer un anaacutelisis en Excel

ltxml vers ion=10 encoding=UTF-8gt ltventasgt

ltventagt ltfechagt2 003-10-05ltfechagt ltISBNgt0596 0 053 8 5ltISBNgt ltTitulogt0ffice 2003 XML EssentialsltTitulogt ltPreciogt3495ltPreciogt ltcantidadgt2 0 0ltcantidadgt ltCliente ID=1025gtZorks Booksltclientegt ltventagt

ltventagt ltfechagt2 0 03-10-05ltfechagt ltISBNgt05 96 0 02 92 0ltISBNgt ltTitulogtXML in a Nutshell ltPreciogt3 9 95ltPrecio ltcantidadgt9 0ltcantidadgt ltCliente ID=1025gtZorks ltventagt

ltventagt ltfechagt2 003-10-05ltfechagt ltISBNgt05 96 0 02 3 78ltISBNgt ltTitulogtSAX2ltTitulo ltPreciogt2 9 95ltPrecio ltcantidadgt3 0 0ltcantidadgt ltCliente ID=1025gtZorks Booksltclientegt ltventagt

ltventagt ltfechagt2 0 03-10-05ltfechagt ltISBNgt0596 0 053 85ltISBNgt ltTituloOffice 2003 XML EssentialsltTitulo

2nd EditionltTitulo

Booksltclientegt

8 Conectando Excel con el mundo 269

ltPreciogt3495ltPreciogt ltcantidadgt10ltcantidadgt ltCliente ID=1029gtBooks of Gloryltclientegt ltventagt

ltventagt ltfechagt2003-10-05ltfechagt ltISBNgt0 596 0 02 92 0ltISBNgt ltTitulogtXML in a Nutshell 2nd EditionltTitulogt ltPreciogt3 9 95ltPrecio ltcantidadgt2 5ltcantidadgt ltCliente ID=1029gtBooks of Gloryltclientegt ltventagt

ltventagt ltfechagt2 0 03-10-07ltfechagt ltISBNgt0 5 96 0 02 3 7 8ltISBNgt ltTitulogtSAX2lt Titulo ltPreciogt2 9 95ltPrecio ltcantidadgt5ltcantidadgt ltCliente ID=M1029gtBooks of Gloryltclientegt ltventagt

ltventagt ltfechagt2 0 03-10-18ltfechagt ltISBNgt0596 0 023 78ltISBNgt ltTituloSAX2ltTitulo ltPreciogt2 9 95ltPrecio ltcantidadgt15ltcantidadgt ltCliente ID=2561gtTitulo Waveltclientegt ltventagt

ltventagt ltfechagt2 0 03-10-21ltfechagt ltISBNgt0596 002 92 0ltISBNgt ltTituloXML in a Nutshell ltPrecio39 95ltPreciogt ltcantidadgt15ltcantidadgt ltCliente ID=9021gtBooks ltventagt

ltventasgt

Puede abrir este archivo directamente desde Excel 2003 seleccionando la opshycioacuten ArchivogtAbrir Ello abriraacute el cuadro de diaacutelogo que aparece en la figura 81

Si selecciona la opcioacuten Como una lista XML Excel le advertiraacute de que va a crear su propio esquema para este documento tal y como se muestra en la figura 82 Despueacutes de hacer clic en Aceptar se le presentaraacute el mejor consejo sobre coacutemo presentar la informacioacuten del documento en una hoja de caacutelculo como puede verse en la figura 83

2nd EditionltTitulo

for Youltclientegt

270 Excel Los mejores trucos

uumlj Seleccione coacutemo desea abrir este archivo

Como libro de soacutelo lectura

r Utilizar el panel de tareas Origen XML

Ayuda Aceptar J Cancelar

Figura 81 Abrir un archivo XML en Excel 2003

BHglinfflBSWlMBB^SiSampiK

V El origen XML especificado no se refiere esquema en funcioacuten de los datos del oric

P No volver a mostrar este mensaje

a un esquema 5en XML

Aceptar J j

Excel crearaacute un

Ayuda

Figura 82 Aviso de Excel 2003 acerca de la carencia de referencias a un esquema

| fifliffPifflWBWMc^^ ~Eacute2 echivo Edicioacuten Ver Insertar Formato Herramientas

J J d bdquo j _J J _i T ^ U ~J

Arial - 10 ^ f Ntilde ] S m W M Al bull pound date

1 2

3

4

5

6

I 7 8

9

10

11

A | B C

date -rJISBN ^(Tit le - |

5102003 596005385 Office 2003 XML Essentials

5102003 596002920 XML m a Nutshell 2nd Edition

5102003 596002378 SAX2

5102003 596005385 Office 2003 XML Essentials

5102003 596002920 XML m a Nutshell 2nd Edition

7102003 596002378 SAX2

18102003 596002378 SAX2

21102003 596002920 XML in a Nutshell 2nd Edition

12

13

14

15

16

17

18

19

20

21

9 iexclH 4 bull bull H o j a l ( Hoja2 Hoja3

Listo

Datos Ventarle

s - f l ooo

D 3riceUS _^Jqi

3495

39 Q5

2995

3495

3995

2995

2995

3995

l

A z H l k 100deg euro -og deg8 iexcl s iexcl s _ - lt

E F G

antity -rjcustomer jrJlD bull

200 Zorks Books 1025

90 Zorks Books 1025

300 Zorks Books 1025

10 Books ofGlory 1029

25 Books ofGlory 1029

5 Books ofGlory 1029

15 Ti t leWave 2561

15 Books fo rYou 9021

M

gt tiacute ~

- j f -

H

1 NUM

Jnj2ltiacuteiexcl - _ ff x |

I mdash j

bull m

Figura 83 Datos XML presentados como una lista XML en Excel 2003

Observe que Excel espera que el elemento fecha sea una fecha por lo que las muestra utilizando el formato adecuado es decir que 2003-10-05 queda como 10 5 2003

Una vez que tenga cargado del documento en Excel puede tratar los datos de forma m u y similar a como lo hariacutea con cualquier hoja de caacutelculo de Excel (inser-

8 Conectando Excel con el mundo 271

tando foacutermulas creando rangos con nombre graacuteficos basados en los contenidos etc) Para ayudarle Excel proporciona cierta funcionalidad incorporada para analizar los datos Los cuadros de lista desplegables situados en los encabezados de columna le permiten elegir coacutemo ordenar los datos (de forma predeterminada el orden es el que teniacutea originalmente el documento) Tambieacuten puede activar una fila de totalizacioacuten ya sea desde la barra de herramientas Lista o haciendo clic en cualquier parte de la lista y luego seleccionando la opcioacuten DatosgtListagtFila total Una vez que aparezca en dicha fila podraacute elegir queacute tipo de total prefiere mosshytrar del menuacute desplegable que mostramos en la figura 84

CJUacute poundrchivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana

J J d iquest _ j J plusmn 1 iiquest A -J ^ Uuml

Arial T 10 T H^ - m m ^ ^ Wj euro D11 - f =SUBTOTALES(101D2D9)

1

2

3

4

5

6

7

8

9

10

11 j

A B C D 1 E ^ _

U uuml iexcld -Jgt 100 i bdquodeg8 m _- gt lt

F G

date VJ ISBNtilde T f f iacute t iacute e j rJPriceUS j r jquai i t i ly ^ c u s t o m e r _ ^ J I D ^

5102003 596005385 Office 2003 XML Essentials 3495

5102003 596002920 XML in a Nutshell 2nd Edition 3995

5102003 596002378 SAX2 2995

5102003 596005385 Office 2003 XML Essentials 3495

5102003 596002920 XML in a Nutshell 2nd Edition 3995

7102003 596002378 SAX2 2995

18102003 596002378 SAX2 2995

21102003 596002920 XML in a Nutshell 2nd Edition 3995

+ Total

M iexcl13

14 15

16

^ 18 19

3495 IT Ninguno

Cuenta Contar nuacutemeros Max Miacuten Suma Desvest Var

20 21

1 2 |H 4 bull w H q j a l H o j a 2 Hoja3 |lt Listo

200 Zorks Books 1025

90 Zorks Books 1025

300 Zorks Books 1025

10 Books ofGlory 1029

25 Books ofGlory 1029

5 Books of Glory 1029

15 TitleVVave 2561

15 Books for You 9021

660

I

J P t x t l

5 bull bull I iquestraquo T -iquest

~~~H 1-7

_ j iexcl

i bull i r i NUM iquest

Figura 84 Eleccioacuten de los totales para una lista XML en Excel 2003

Tambieacuten puede actualizar los datos recuperando la informacioacuten a partir de un documento XML que tenga la misma estructura Si dispone de otro docushymento que tenga esa misma estructura puede hacer clic con el botoacuten derecho sobre la lista seleccionar la opcioacuten XMLgtlmportar del menuacute desplegable y elegir un documento diferente Teniendo maacutes datos deberiacutea quedar todo como en la figura 85

Ademaacutes tambieacuten puede exportar datos de nuevo a un archivo XML despueacutes de modificarlos haciendo clic con el botoacuten derecho del ratoacuten sobre la lista y selecshycionando la opcioacuten XMLgtExportar en el menuacute contextual Esto hace de Excel una

272 Excel Los mejores trucos

herramienta de edicioacuten m u y uacutetil para documentos simples en XML y que tengan estructuras tabulares

U J iquest I I J m J i J j y i l K f f f l l ^ ^

bulld Archivo Edicioacuten Ver Insertar Formato Herramientas

J ~J jd _Js _J -Jf _ v iexclK h ~A Jf

Arial 10 - N iacute S S X S

C7 fx SAX2

1 2 3 4 5 6 7

j c T 9 10 11 12 13 14

A B C date j - j lSBN ^JTit le

5102003 596005385 Office 2003 XML Essent i ais 5102003 596002920 XML in a Nutshell 2nd Edition 5102003 596002378 SAX2 5102003 596005385 Office 2003 XML Essentials 5102003 596002920 XML in a Nutshell 2nd Edition 7102003 596002378IacuteSAX2

18102003 596002378 SAX2 21102003 596002920 XML in a Nutshell 2nd Edition

1112003 596002378 SAX2 1152003 596002920 XML in a Nutshell 2nd Edition

Total

15 16 17 18 19 20 21

7 iexclH 4 bull wHojalHoja2 Hoja3 Listo

Datos Ventana

9 amp l Uuml k -4 iaw

- iacute j OOUuml euro -08 deg8 poundF iexclF _ - gt -

D E F ~ 7 G P rice US bullIquantity bullJcustomer y] ID bull

3495 200 Zorks Books 1025 3995 90 Zorks Books 1025 2995 300 Zorks Books 1025 3495 10 Books ofGlory 1029 3995 25 BooksofGlory 1029

I 2995 5 Books ofGlory 1029 2995 15 TitleWave 2561 3995 15 Books for You 9021 2995 65 Amazon 1543 3995 15 Amazon 1783

3495 740

Iltl

gt T bull i

A T ^

H _

gtr NUM

Figura 85 La misma lista XML con los datos actualizados

Para datos sencillos puede confiar normalmente en los consejos de Excel en relacioacuten a los contenidos del archivo y utilizar la vista predeterminada que se recomienda A medida que los datos se compliquen especialmente si contienen fechas o textos que aparezca nuacutemeros (observe que los anteriores ejemplos falshytan los ceros iniciales del campo ISBN) puede que tenga que utilizar esquemas XML para especificar coacutemo deberaacute leer Excel los datos y coacutemo se ajustaraacuten a un mapa dado Para este documento un esquema XML podriacutea ser como el que se muestra en el siguiente ejemplo

Ejemplo 82 Un esquema para los datos de ventas de libros

ltxml version=l0 encoding=UTF-8gt ltxsschema xmlnsxs=httpwwww3org2001XMLSchema elementFormDefault=qualifiedgt

ltxselement name=ventasgt ltxscomplexTypegt

ltxssequencegt

8 Conectando Excel con el mundo 273

ltxselement maxOccurs=unbounded ref=ventagt ltxssequencegt

ltxscomplexTypegt ltxselementgt ltxselement name=ventagt

ltxscomplexTypegt ltxssequencegt

ltxselement ref=fechagt ltxselement ref=ISBNgt ltxselement ref=Tiacutetulogt ltxselement ref=Preciogt ltxselement ref=cantidadgt ltxselement ref=clientegt

ltxssequencegt ltxscomplexTypegt

ltxselementgt ltxselement name=fecha type=xsfechagt ltxselement name=ISBN type=xsstringgt ltxselement name=Titulo type=xsstringgt ltxselement name=Precio type=xsdecimalgt ltxselement name=cantidad type=xsintegergt ltxselement name=clientegt

ltxscomplexType mixed=truegt ltxsattribute name=ID use=required type=xsintegergt

ltxscomplexTypegt ltxselementgt

ltxsschemagt

Observe que el elemento fecha estaacute definido como una fecha y que el eleshymento ISBN estaacute definido como una cadena no como un nuacutemero entero Si empieza abriendo este esquema en vez del documento puede hacer que Excel cara que el documento y preserve los ceros iniciales en el campo ISBN Esta vez crearemos una lista antes de cargar el documento XML comenzando a partir de una hoja de caacutelculo blanco

Para ello debemos abrir el panel de tareas Origen XML Si no estaacute abierto auacuten aacutebralo seleccionando la opcioacuten VergtPanel de tareas o pulsando Control-Fl Lueshygo seleccione la opcioacuten Origen XML del menuacute desplegable que aparece y veraacute algo parecido a lo que se muestra en la figura 86

Para cargar el esquema haga clic en el botoacuten Asignaciones XML Esto abriraacute un cuadro de diaacutelogo como el que se muestra en la figura 87

Haga clic en el botoacuten Agregar para abrir el esquema y luego seleccione uno de la misma forma que se muestra en la figura 88

Si su esquema no restringe que los documentos tengan un uacutenico elemento posible de comienzo Excel le preguntaraacute queacute elemento desea utilizar como raiacutez como puede verse en la figura 89

Como los documentos de este ejemplo comienzan con el elemento ventas elija dicho elemento

274 Excel Los mejores trucos

02 41 J

iexclJJg fmmwmmmmm Archivo

J Arial

Al

1 F 2 3 4 5 6 7 8 9

10 11 12 13 14 15 16 17 18 19 20

r 1

JH 4

Listo

bull bull

A

A

Edicioacuten

-i _J

^

I I

Ver Insertar

J 1 tZ - 10 ^ M

B

H o j a l H o j a 2 H o j a 3

Formato

iquest Iacute T

c

A -

s

Herramientas

_5

^ ^

D

m - j

llaquol

gtatos Ventana

-I

E

Si iquest 000 euro

-gt

Z ) 0 00 00 ^ 0

F

l iacute IW

gt

id iW

bullT

ir

^MJ2ltj| - _ S x |

4Jraquo 100 - laquo r ff |

Origen XML bull x 1

-J uuml Asignaciones XML de este libro

El libro no contiene asignaciones XML ara agregar una asignacioacuten XML al ibro utilice el botoacuten Asignaciones XML

Opciones bull

Asignaciones XML

NUM

Figura 86 Panel de tareas Origen XML

2Sl Asignaciones XML de este (ibro

Nombre

J

I R

_ J

| Espacio de nombre

Agregar i Aceptar i|

1 _M Cancelar

Figura 87 El cuadro de diaacutelogo Asignaciones XML

Despueacutes de hacer clic en Aceptar Excel le avisa de posibles dificultades que pueda tener a la hora de interpretar los esquemas como se muestran el cuadro de diaacutelogo de la figura 810 Un esquema XML es una especificacioacuten enorme que admite numerosas estructuras que no encajan bien con la perspectiva de Excel sobre la informacioacuten por lo que nos encontramos con que tendremos algunas limitaciones

Conectando Excel con el mundo 275

u-mJMmuiiJ Buscar en

-V Mis documentos

recientes

Escritorio

_bdquo

Mis documentos

J MIacute PC

SHSf^^^^^^

08

^chuumlSO lxml

i i H B bull4M dinosaurios xml

^1 S Nombre de archivo

Mis sitios de red I iexcl p o de a r c h j v o

mammmim^^ ^ bull ZJ poundgt bull

zl Todos los oriacutegenes de datos XML 0 J M

4 X -J -J

Nuevo origen

jplusmnJ| Herramientas raquo

| [ Abrir |

Cancelar

Figura 88 Seleccioacuten de un esquema XML

BISE iU El esquema XML seleccionado contiene maacutes de un nodo rafe Microsoft Office Excel soacutelo puede basarse en uno de ellos para crear una asignacioacuten XML

Seleccionar raiacutez

customer date ISBN PriceUS quantity saje

Title

J

J

Figura 89 Seleccioacuten del elemento raiacutez para el esquema

SampSTampVY _xj

Los siguientes elementos de esquema y estructuras no se pueden asignar a una hoja de caacutelculo No se podraacuten ver desde el panel de tareas Origen XML

- any bull - anyAttribute 1 i - Substitution groups

N J gt - Abstract elements - Recursive structures - Mixed content

iquestDesea continuar agregando este esquema al libro

No I Ayuda 1 Figura 810 Aviso sobre el procesamiento del esquema

Excel mostraraacute que el esquema ha sido antildeadido a la hoja de caacutelculo en el cuashydro de diaacutelogo Asignaciones XML que mostramos en la figura 811

276 Excel Los mejores trucos

BB ] Asignaciones XML de este libro

| Espacio de nombre

sales_Map sales ltNo hay espacio de nombre gt

Larnbiar nombre i Agregar Eliminar Aceptar Cancelar

Figura 811 Un esquema cargado como una asignacioacuten XML

Si hace clic en Aceptar volveraacute a la pantalla principal de Excel y el panel de tareas Origen XML mostraraacute un diagrama de la estructura del esquema descrito tal y como se puede ver a la derecha de la figura 812 Ahora que ya tiene la estructura puede distribuir la lista y la manera maacutes sencilla de hacerlo (espeshycialmente con documentos pequentildeos como eacuteste) es arrastrar el icono ventas a la celda A l lo que produciraacute los mismos resultados que vemos en la siguiente figura

bullMicrosoft Ei^Si^^l

Archivo Edicioacuten Ver Insertar Formato Her r amientas Datos Ventana r _ amp X

J _bull A Arial

Al f date

1 A

date yenpound _

mdash I B JISBN mdash1 r ^JTHle

I D | E | F | ^JPricellS Jquantity _-JID Vi

bull U -i 100 ~

_bullbull_ Origen XML

Asignaciones XML de este libro

sales_Map

9 i 10 11 12 13

14 i 15 16 l7 Iacute8

20

77 H 4 bull

Listo

Para asignar elementos de repeticioacuten arrastre los elementos desde el aacuterbol a la hoja de caacutelculo en la que desea que aparezcan los encabezados de datos

Para importar los datos utilice el botoacuten Importar datos XML de la barra de herramientas Lista

bullI H o j a l Hoia2 Hoja3 llt bull i r

Figura 812 Una lista XML creada a partir de la informacioacuten de esquema situada en el panel de tareas Origen XML

8 Conectando Excel con el mundo 277

Tambieacuten puede arrastrar los elementos individualmente si desea v- cambiar el orden o desea colocar las diferentes piezas en diferentes

^ - lugares de la hoja de caacutelculo

Ahora que ya tiene un lugar para los datos es momento de representarlos Puede hacer clic en el botoacuten Importar datos XML de la barra Lista o bien hacer clic con el botoacuten derecho del ratoacuten en la lista y luego seleccionar la opcioacuten XMLgtlmportar Si elige el archivo que utilizamos anteriormente (ej 81) obtenshydraacute los resultados que se muestran en la figura 813 Observe que se han antildeadido los ceros de la parte izquierda del ISBN que ahora ya son texto como deberiacutea ser

| jiexcl fwwWi|Jwii i ipi^^

iquest] Archivo Edicioacuten Ver Insertar Formato Herramientas Datos

J -bull Aacute J _J j J t u -J Aria ^ 10 - |~Ntilde~| jT S W W m r

Al ^ f date

1

iexcll~2~ I 3 I 4

5

I 6

I 7

I 8

9

I 10 I 11

12

A | B | C |

Ventana

m 000 euro

F^Ttrade^

=inj_xj| T _ j i x

i l u 100 - ltbull -

uo o =F =F _ T laquoi

T T F date J J J I S B N zJTitle j r jP r iceUS j r j quaiitiacutety _^J1D ^

51Uuml2G03 IacuteJ596005385 Office 2003 XML Essentials 3495 200 1025

I 5102003 0596002920 XML in a Nutshell 2nd Edition

5102003 r0596002378 SAX2

5102003 t i596005385 Office 2003 XML Es sentiacute ais

5102003T1596002920 XML in a Nutshell 2nd Edition

7102003 0596002378 SAX2

18102003T)596002378 SAX2

2110200313596002920 XML in a Nutshell 2nd Edition

k

13

14

15

16

1 17 I 18

19

20

21

IH 4 bull M H o j a l Hoja2 Hoja3 lt

Listo

3995

2995

3495

3995

2995

2995

3995

90 1025

300 1025

10 1029

25 1029

5 1029

15 2561

15 9021

mdash Orinen XML bull X

Asignaciones XML de este libro

sales Map bull |

y raquo

1 bull

1 bull j bull i

- _ BHB

E3 II

Para asignar elementos de repeticioacuten arrastre los elementos desde el aacuterbol a la hoja de caacutelculo en la que desea que aparezcan los encabezados de datos

Para importar los datos utilice el botoacuten Importar datos XML de la barra de herramientas Lista

i gtiexclr Suma=39158J95 NUM

Figura 813 La lista XML representada con datos

La compatibilidad de Excel con asignaciones XML y listas significa que puede crear hojas de caacutelculo que trabajen con datos que provienen de diferentes archishyvos todo ello con mayor flexibilidad que con formatos anteriores como CSV o archivos delimitados por tabulaciones En lugar de tener que estar conectado a una base de datos para modificar los datos de forma interactiva un usuario pueshyde modificar los archivos XML mientras que esteacute volando en un avioacuten y luego proporcionar dicho archivo a su cliente cuando aterrice Quizaacute el aspecto maacutes interesante de las nuevas funciones de XML de Excel es la flexibilidad mientras

278 Excel Los mejores trucos

que los datos esteacuten en una estructura que se podraacute ajustar a una tabla Excel no pondraacute muchas limitaciones a la hora de aceptar diferentes tipos de documentos Con unos cuantos clics de ratoacuten y sin necesidad de programar puede integrar datos XML dentro de las hojas de caacutelculo

m Q | Guardar en SpreadsheetML y extraer datos C 0 ^ E T f ^ l D e s iacute e E x c e X P s e h a incluido una opcioacuten de exportacioacuten XML

K ^ b ^ l SpreadsheetML proporciona una representacioacuten en XML de sus hojas de caacutelculo incluyendo formatos e informacioacuten de foacutermulas

Aunque existen muchas formas de leer hojas de caacutelculo de Excel sin tener Excel (consulte el truco 100 para obtener maacutes informacioacuten) una de las opciones m aacute s sencillas es expor ta r a a rchivos XML que ut i l icen el vocabu la r io SpreadsheetML de Microsoft SpreadsheetML no es completo (siendo maacutes notable que no existen graacuteficos y coacutedigo VBA) pero representa los componentes baacutesicos de una hoja de caacutelculo incluyendo foacutermulas rangos con nombre y formatos

Este truco utiliza caracteriacutesticas que soacutelo estaacuten disponibles en Excel XP y Excel 2003 para Windows Las anteriores versiones no lo admiten incluyendo las vershysiones actuales de Macintosh

La mejor forma de comenzar con SpreadsheetML es guardar una hoja de caacutelshyculo como XML La hoja de caacutelculo que mostramos que la figura 814 incluye datos foacutermulas nombres de rangos y celdas y algunos formatos simples

Si graba esta hoja de caacutelculo utilizando el formato Hoja de caacutelculo XML (xml) al que puede acceder a traveacutes de ArchivogtGuardar como obtendraacute un gran docushymento XML que contiene las marcas que se muestran en el ejemplo 83

Ejemplo 83 Un documento SpreadsheetML

ltxml version=l0gt ltmso-application progid=ExcelSheetgt ltWorkbook xmlns=urnschemas-microsoft-comofficespreadsheet xmlnso=urnschemas-microsoft-comofficeoffice xmlnsx=urnschemas-microsoft-comofficeexcel xmlnsss=urnschemas-microsoft-comofficespreadsheet xmlnshtml=httpwwww3orgTRREC-html4 0gt ltDocumentProperties xmlns=urnschemas-microsoft-comofficeofficegt

ltAuthorgtSimon StLaurentltAuthorgt ltLastAuthorgtADSMltLastAuthorgt ltCreatedgt2 0 03-12-03T15483 8ZltCreatedgt ltLastSavedgt2 0 04-05-2 3T161117ZltLastSavedgt ltCompanygtAnaya multimedialtCompanygt ltVersiongtll5703ltVersiongt

ltDocumentPropertiesgt ltOfficeDocumentSettings xmlns=urnschemas-microsoft-comofficeofficegt

8 Conectando Excel con el mundo 279

IBM crosoft E

^J Archivo

J J A Arial

1

2

3

4

5

6

7

8

9

10

11

UumlU M 3

14

15

16

17

18

19

20

21

JH i

Listo

Total

Kcel - dinosaur iosKml

Edicioacuten Ver Insertar

uumlm l|f Formato

-3 i ~J - 1 V -al

10 - N K

h -

S f =SUMA(E4E11

A B

Ventas de

Nuacutemero de id Bicho

4627 Diplodocus

3912 Brontosaurus

9845 Triceratops

9625 Vulcanodon

5903 Stegosaurus

1824 Monoclonius

9728 Megalosaurus

8649 Barosaurus

bull M H o j a l Hoja2 Hoja3

ene 04

HBHHWHBI^^S^^^^^-- - bull Herramientas Datos Ventana Z

-J 93 amp z - E S 9 ^J - | ooo euro o8 sect

) ~ D Eacute~1 ~

Precio Cantidad Total

22 50euro 127 285750 euro

1750 euro 74 129500 euro

1200 euro 91 109200 euro

1900 euro 108 205200 euro

1850 euro 63 116550 euro

1650 euro 133 219450 euro

2300 euro 128 294400 euro

1700 euro 91 154700 euro

Total |1514750 euro1

jltl

i i iexclsaacute jy tw if _ -

^

100

S

H

T laquo bull $

A - f e

T~

NUM

T - s x

mdash

_ 1

bull i r

Figura 814 Una hoja de caacutelculo de prueba para SpreadsheetML

ltDownloadComponentsgt ltLocationOfComponents HRef=fileGgt

ltOfficeDocumentSettingsgt ltExcelWorkbook xmlns=urnschemas-microsoft-comofficeexcelgt

ltWindowHeightgt615 0ltWindowHeightgt ltWindowWidthgt84 7 5ltWindowWidthgt ltWindowTopXgt12 0ltWindowTopXgt ltWindowTopYgt3 0ltWindowTopYgt ltProtectStructuregtFalseltProtectStructuregt ltProtectWindowsgtFalseltProtectWindowsgt

ltExcelWorkbookgt ltStylesgt

ltStyle ssID=Default ssName=Normalgt ltAlignment ssVertical=Bottomgt ltBordersgt ltFontgt ltInteriorgt ltNumberFormatgt ltProtectiongt ltStylegt ltStyle ssID=s21gt ltNumberFormat ssFormat=mmm-yygt ltStylegt

280 Excel Los mejores trucos

ltStyle ssID=s23gt ltFont xFamily=Swiss ssBold=1gt

ltStylegt ltStyle ssID=s24gt ltNumberFormat ssFormat=000 ampquot euroampquotgt

ltStylegt ltStylesgt ltNamesgt

ltNamedRange ssName=Bichos ssRefersTo==HojalR4C2R11C2gt ltNamedRange ssName=Cantidad ssRefersTo==HojalR4C4R11C4gt ltNamedRange ssNtildeame=Fecha ssRefersTo==HojalR1C2gt ltNamedRange ssName=ID ssRefersTo==HojalR4C1RllClgt ltNamedRange ssName=Precio ssRefersTo==HojalIR4C3RllC3gt ltNamedRange ssName=Total ssRefersTo==HojalR12C5gt

ltNtildeamesgt ltWorksheet ssName=Hojalgt

ltTable ssExpandedColumnCount=5 ssExpandedRowCount=12 xFullColumns=1

xFullRows=1 ssDefaultColumnWidth=60gt ltColumn ssAutoFitWidtn=0 ssWidth=735gt ltColumn ssAutoFitWidth=0 ssWidth=9675gt ltColumn ssAutoFitWidth=0 ssWidth=48 ssSpan=lgt ltColumn ssIndex=5 ssAutoFitWidth=0 ssWidth=5625gt ltColumn ssAutoFitWidth=0 ssWidth=48 ssSpan=250gt ltRowgt ltCell ssStyleID=s23xData ssType=StringgtVentas deltDataxCellgt ltCell ssStyleID=s21gtltData ssType=DateTimegt2 004-01-

01T00 0000 000ltDataxNamedCell ssName=FechagtltCellgt

ltRowgt ltRow ssIndex=3 ssStyleID=s23gt ltCellxData ss Type= String gtNuacutemero de Id ltDataxCellgt ltCellxData ss Type= String gtBicholtDataxCellgt ltCellxData ss Type= String gtPreciolt DatagtltCellgt ltCellxData ss Type=String gtCantidadltDataxCellgt ltCellxData ss Type= String gtTotalltDataxCellgt ltRowgt ltRowgt ltCellxData ss Type=IINumberIgt4627ltDataxNamedCell ss Name=IDgtlt

Cellgt ltCellgtltData ssType=StringgtDiplodocusltDataxNamedCell

ssName=BichosgtltCellgt ltCell ss StyleID=s24xData ssType=Numbergt22 5ltDataxNamedCell

ss Name=Precio xCellgt ltCellxData ss Type= Number gt127ltDataxNamedCell

ss Name=CantidadxCellgt ltCell ssStyleID=s24 ssFormula==RC[-2]RC[-1]xData

ss Type=Number gt2 857 5ltDataxCellgt ltRowgt ltRowgt ltCellxData ss Type=Number gt3912ltDataxNamedCell ss Name=IDx

Cellgt

8 Conectando Excel con el mundo 281

ltCellgtltData ssType=StringgtBrontosaurusltDatagtltNamedCell ssName=BichosgtltCellgt

ltCell ss StyleID=s24xData ss Type=Number gt17 5ltDataxNamedCell ss Name= Precio xCellgt

ltCellxData ss Type=Number gt74ltDataxNamedCell ss Name=Cantidad xCellgt

ltCell ssStyleID=s24 ssFormula==RC[-2]RC[-1]xData ss Type= Number gt 12 95ltDataxCellgt

ltRowgt ltRowgt ltCellxData ss Type=Number gt9845ltDataxNamedCell ss Name= IDgtlt

Cellgt ltCellxData ss Type=String gtTriceratopsltDataxNamedCell

ssName=BichosgtltCellgt ltCell ss StyleID=s24xData ss Type=Number gt12ltDataxNamedCell

ssName=PreciogtltCellgt ltCellxData ss Type= Number gt91ltDataxNamedCell ss Name=Cantidad

xCellgt ltCell ssStyleID=s24 ssFormula==RC[-2] RC[-1] xData

ss Type= Number gt1092ltDataxCellgt ltRowgt ltRowgt ltCellxData ss Type=Number gt9625ltDataxNamedCell ss Name= IDgtlt

Cellgt ltCellxData ss Type= String gtVulcanodonltDataxNamedCell

ssName=BichosgtltCellgt ltCell ss StyleID=s2 4 xData ss Type= Number gt19ltDataxNamedCe 11

ssName=PreciogtltCellgt ltCellxData ss Type=Number gt108ltDataxNamedCell

ss Name=CantidadxCellgt ltCell ssStyleID=s24 ss Formula==RC [-2] RC [-1] xData

ssType= Number gt2 0 52 ltDataxCellgt ltRowgt ltRowgt ltCellxData ss Type=Number gt5903ltDataxNamedCell ss Name= IDgtlt

Cellgt ltCellxData ss Type= String gtStegosaurusltDataxNamedCell

ss Name= BichosxCellgt ltCell ss StyleID-s24xData ss Type= Number gt18 5ltDataxNamedCell

ssName=PreciogtltCellgt ltCellxData ss Type=Number gt63ltDataxNamedCell ss Name=Cantidad

gtltCellgt ltCell ssStyleID=s24 ss Formula==RC [-2] RC [-1] xData

ss Type=Numbergt1165 5ltDataxCellgt ltRowgt ltRowgt ltCellxData ss Type= Number gt1824ltDataxNamedCell ss Name= IDgtlt

Cellgt ltCellxData ss Type= String gtMonocloniusltDataxNamedCell

ssName=BichosgtltCellgt ltCell ss StyleID=s24xData ss Type=Number gt16 5ltDataxNamedCell

ss Name= PrecioxCellgt

282 Excel Los mejores trucos

ltCellxData ss Type=Number gt133ltDataxNamedCell ss Name=CantidadxCellgt

ltCell ssStyleID=s24 ss Formula==RC [-2] RC [-1] xData ss Type=Numbergt2194 5ltDataxCellgt

ltRowgt ltRowgt

ltCellxData ss Type=Number gt9728ltDataxNamedCell ss Name=IDx Cellgt

ltCellxData ss Type=String gtMegalosaurusltDataxNamedCell ss Name= BichosxCellgt

ltCell ss StyleID=s24xData ss Type=Number gt23ltDataxNamedCell ssName=PreciogtltCellgt

ltCellxData ss Type=Number gt128ltDataxNamedCell ss Name=CantidadxCellgt

ltCell ssStyleID=s24 ss Formula==RC [-2] RC [-1] xData ss Type=Numbergt2 944ltDataxCellgt

ltRowgt ltRowgt

ltCellxData ss Type=Number gt8649ltDataxNamedCell ss Name= IDgtlt Cellgt

ltCellxData ss Type= String gtBarosaurusltDataxNamedCell ssName=BichosgtltCellgt

ltCell ss StyleID=s24xData ss Type=Number gt17ltDataxNamedCell ss Name=PrecioxCellgt

ltCellxData ss Type=Number gt91ltDataxNamedCell ss Name=Cantidad gtltCellgt

ltCell ssStyleID=s24 ssFormula==RC[-2] RC[-1] xData ssType=Numbergt154 7ltDataxCellgt

ltRowgt ltRowgt ltCell ssIndex=4 ssStyleID=s23xData ssType=StringgtTotallt

DataxCellgt

ltCell ssStyleID=s24 ss Formula==SUM(R [-8] CR [-1] C) xData ssType=Numbergt151475ltDataxNamedCell

ssName=TotalxCellgt ltRowgt

ltTablegt

ltWorksheetOptions xmlns=urnschemas-microsoft-comofficeexcelgt ltPageSetupgt ltPageMargins xBottom=0984251969 xLeft=078740157499999996 XRight=078 74 015 74 99999996 XTop=0984 251969gt

ltPageSetupgt ltPrintgt ltValidPrinterInfogt ltHorizontalResolutiongt6 0 0ltHorizontalResolutiongt ltVerticalResolutiongt6 00ltVerticalResolutiongt

ltPrintgt ltSelectedgt ltPanesgt ltPanegt ltNumbergt3ltNumbergt ltActiveRowgtllltActiveRowgt

8 Conectando Excel con el mundo 283

ltActiveColgt4ltActiveColgt ltPanegt

ltPanesgt ltProtectObjectsgtFalseltProtectObjectsgt ltProtectScenariosgtFalseltProtectScenariosgt

ltWorksheetOptionsgt ltWorksheetgt ltWorksheet ssName=Hoja2gt

ltTable ssExpandedColumnCount=256 ssExpandedRowCount=1 xFullColumns=1

xFullRows=l ssDefaultColumnWidth=60gt ltColumn ssAutoFitWidth=0 ssWidth=48 ssSpan=255gt

ltTablegt ltWorksheetOptions xmlns=urnschemas-microsoft-comofficeexcelgt ltPageSetupgt ltPageMargins xBottom=0984251969 xLeft=078740157499999996 xRight=078740157499999996 xTop=0984251969gt

ltPageSetupgt ltProtectObjectsgtFalseltProtectObjectsgt ltProtectScenariosgtFalseltProtectScenariosgt

ltWorksheetOptionsgt ltWorksheetgt ltWorksheet ssName=Hoja3gt

ltTable ssExpandedColumnCount=256 ssExpandedRowCount=1 xFullColumns=l

xFullRows=l ssDefaultColumnWidth=60gt ltColumn ssAutoFitWidth=0 ssWidth=48M ssSpan=255gt

ltTablegt ltWorksheetOptions xmlns=urnschemas-microsoft-comofficeexcelgt ltPageSetupgt ltPageMargins xBottom=0984251969 xLeft=078740157499999996 xRight=078740157499999996 xTop=0984251969gt

ltPageSetupgt ltProtectObjectsgtFalseltProtectObjectsgt ltProtectScenariosgtFalseltProtectScenariosgt ltWorksheetOptionsgt

ltWorksheetgt ltWorkbookgt

La primera liacutenea importante de este documento lt m s o - a p p l i c a t i o n p r o g i d = E x c e l S h e e t gt es una destruccioacuten de procesamiento XML que inshyforma a Windows (en realidad un componente ha antildeadido de Office 2003 para Windows) de que este documento XML se trata de hecho de una hoja de caacutelculo de Excel Cuando Windows muestre el archivo observaraacute que tiene el logotipo de Excel y haciendo doble clic sobre eacutel se abriraacute Excel

El elemento raiacutez del documento Workbook aparece inmediatamente desshypueacutes de la instruccioacuten de procesamiento Sus atributos definen los nombres de espacio utilizados para las diferentes partes de SpreadsheetML Las siguientes liacuteneas componen sobre todo metadatos presentacioacuten en ventana e informacioacuten

284 Excel Los mejores trucos

de formatos y realmente no hay nada interesante que examinar hasta que lleshygue a los elementos Ntildeames y Worksheet El elemento Ntildeames identifica los rangos y celdas con nombre que hay en el documento Los dos elementos NamedRange definen el rango con nombre Cantidad (que se extiende desde la fila 4 columna 4 hasta la fila 11 columna 4) y el rango llamado Total que es justamente la celda que se encuentra en la fila 12 y columna 5

ltNamedRange ssName=Cantidad ssRefersTo==HojalR4C4RllC4gt ltNamedRange ssName=Total ss Ref ersTo= =Hoj al R12C5 gt

El meollo de la hoja de caacutelculo estaacute en el elemento Worksheet Comienza definiendo coacutemo de larga es la tabla de datos actual

ltWorksheet ssName=Hojalgt ltTable ssExpandedColumnCount=5 ssExpandedRowCount=12

xFullColumns=1 xFullRows=lgt

Esta hoja llamada Hojal estaacute compuesta por 5 columnas y 12 filas (los atributos xFullColumns y xFullRows se encuentran en otro espacio de nombres que Excel no utilizaraacute para la distribucioacuten) Luego la informacioacuten actual de la tabla se almacena dentro de los elementos Row y Cell

ltRowgt ltCell ssStyleID=s23xData ssType=StringgtVentas deltDatagtlt

Cellgt ltCell ssStyleID=s21xData ssType =DateTimegt2004-01-

01T00 00 00 000ltDataxNamedCell ssName=FechagtltCellgt

ltRowgt ltRow ssIndex=3 ssStyleID=s23gt ltCellxData ssType=StringgtNuacutemero de Id ltDataxCellgt

Esta fila la primera del hoja de caacutelculo contiene los elementos de tipo celda La primera con el formato s23 (en negrita) y con el tipo de dato String (cadena de texto) contiene el texto Ventas de La segunda celda tiene formato s21 (norshymal) y utiliza el tipo de dato DateTime (fechahora) Sus contenidos vienen dashydos en formato ISO 8601 Esta celda tambieacuten forma parte de un rango con nombre en este caso Fecha La mayoriacutea de los demaacutes elementos Row siguen patrones similares pero existen algunos elementos que merece la pena ver con maacutes atenshycioacuten El segundo elemento Row tiene un atributo extra ssIndex

ltRow s s I n d e x = 3 s s S t y l e I D = s 2 3 gt

Excel no representa filas o columnas vaciacuteas con elementos Row o Cell vashyciacuteos Simplemente antildeade un atributo ss Index a la siguiente fila o celda jun to con su contenido para indicar la ubicacioacuten en la que se encuentra Esto requiere que

8 Conectando Excel con el mundo 285

los programas que procesen este tipo de archivos presten atencioacuten a este detalle cuando formen las tablas La otra cosa importante que hay que mirar son las foacutermulas

ltCell ssStyleID=s22 ss Formula= =SUM (R [ -8] CR[-1]C) xData ss Type=Number gt15147 5ltDataxNamedCell

ssName=TotalgtltCellgt

En la figura 815 esta celda tiene el nombre Total un valor de 1514750 euro y la foacutermula =SUM (E4 E l i ) Todas las partes estaacuten aquiacute Pero deberaacute ensamshyblarlas todas a partir del estilo s22 (definido anteriormente en el documento con un formato de tipo moneda) el valor 151475 y una foacutermula que utilizar refeshyrencias relativas que digan la suma de los valores en la misma columna que esta comenzando ocho filas por encima y terminando una fila por encima

Esto parece no ser m u y divertido a la hora de procesarlo pero actualmente no es tan complicado si tiene una herramienta XML Puede utilizar C Java Perl Python VB o su lenguaje de programacioacuten XML favorito para extraer la inforshymacioacuten aunque nosotros utilizaremos XSLT para la demostracioacuten

Existen numerosos procesadores XSLT en el mercado que van desde simples herramientas de liacutenea de comandos a aplicaciones de ventanas para Windows Quizaacute desee probar Architags XRay disponible en http architagcomxray o SAXON de Michael Kay en httpsaxon sourceforgenet Microsoft ofrece numerosas herramientas XSLT incluyendo una herramienta de liacutenea de comandos que puede obtener en httpmsdnmicrosoftcomlibrary defaultaspurl=downloads listxmlgeneral asp

La hoja de estilo del ejemplo 84 puede ejecutarse contra el documento XML del ejemplo 83 lo que produciraacute un documento mucho maacutes simple como el del ejemplo 85

Ejemplo 84 Una hoja de estilo XSLT para extraer los contenidos del ejemplo 83

ltxslstylesheet version=10 xmlnsxsl=httpwwww3org1999XSLTransform xmlns=httpsimonstlcomnsdinosaurs xmlnsss=urnschemas-microsoft-comofficespreadsheet

gt

ltxsloutput method=xml omit-xml-declaration=yes indent=yes encoding=US-ASCIIgt

ltxslteacutemplate match=gt

286 Excel Los mejores trucos

ltxslapply-templates select=ssWorkbookgt ltxsltemplategt

ltxslteacutemplate match=ssWorkbookgt ltdinosauriosgt

ltxslapply-templates select=ssWorksheet[ssName = Hojal]gt ltdinosauriosgt

ltxsltemplategt

ltxslteacutemplate match=ssWorksheetgt ltfechaxxslvalueacute-of selectassTablessRowssCell[ssStyleID =

s21] gtltfechagt ltxslapply-templates select=ssTable gt

ltxsltemplategt

ltxslteacutemplate match=ssTablegt ltxslrapply-templates select=ssRow[position( ) ampgt 2] gt

lt--Observe que como Excel se salta la fila en blanco la tercera fila estaacute en la posicioacuten 2--gt ltxsltemplategt

ltxslteacutemplate match=ssRow[ssCell[4]]gt ltventagt

ltnumIDxxsl rapply-templates se lect=ss Cell [1] gtltnumIDgt ltbichoxxsl apply-templates se lec t=ssCel l [2] gtltbichogt ltprec ioxxs l apply- templates s e l e c t = ss Cel l [3] gtltpreciogt ltcantidadxxslapply-templa tes se lect=ss Cell [4] x c a n t i d a d gt lt t o t a l x x s l rapply-templates se lect=ss r Cell [5] x t o t a l gt

ltventagt ltxslr templategt

ltxslteacutemplate match=ssRowgt lttotalxxslapply-templates select=ssCell [2] gtlttotalgt ltxsltemplategt

ltxslstylesheetgt

El corazoacuten de la hoja de estilo es la plantilla que hace coincidir todas las filas

con cuatro o maacutes elementos hijos de tipo celda Extrae la informacioacuten a partir de

las celdas y la coloca en elementos XML que reflejan los datos produciendo los

resultados del ejemplo 85

Ejemplo 85 Informacioacuten extraiacuteda de SpreadsheetML a un vocabulario XML personalizado

ltdinosaurios xmlns=h t tp s imons t l comns d inosau r s xmlnsss=urnschemas-microsof t -comoff ice spreadsheetgt ltfechagt2004-01-01T0000000 0 0ltfechagt ltventagt ltNumIDgt4 62 7ltNumIDgt ltbichogtDiplodocusltbichogt

8 Conectando Excel con el mundo 287

ltpreciogt225ltpreciogt ltcantidadgt12 7ltcantidadgt lttotalgt2 8 5 75lttotalgt ltventagt ltventagt ltNumIDgt3 912ltNumIDgt ltbichogtBrontosaurusltbichogt ltpreciogt175ltpreciogt ltcantidadgt74ltcantidadgt lttotalgt1295lttotalgt ltventagt ltventagt ltNumIDgt9 84 5ltNumIDgt ltbichogtTriceratopsltbicho ltpreciogt12lt precio ltcantidadgt91ltcantidadgt lttotalgt1092lttotalgt ltventagt ltventagt ltNumIDgt962 5ltNumIDgt ltbichogtVulcanodonltbicho ltpreciogt19ltprecio ltcantidadgt108ltcantidadgt lttotalgt2 052lttotalgt ltventagt ltventagt ltNumIDgt5 9 03ltNumIDgt ltbichogtStegosaurusltbicho ltpreciogt185ltpreciogt ltcantidadgt63ltcantidadgt lttotalgt11655lttotalgt ltventagt ltventagt ltNumIDgt1824ltNumIDgt ltbichogtMonocloniusltbicho ltpreciogt16 5ltprecio ltcantidadgt13 3ltcantidadgt lttotalgt21945lttotalgt ltventagt ltventagt ltNumIDgt972 8ltNumIDgt ltbichogtMegalosaurusltbicho ltpreciogt2 3 ltprecio ltcantidadgt12 8ltcantidadgt lttotalgt2944lttotalgt ltventagt ltventagt ltNumIDgt8 64 9ltNumIDgt ltbichogtBarosaurusltbicho ltpreciogt17ltprecio ltcantidadgt91ltcantidadgt lttotalgt154 7lttotalgt

288 Excel Los mejores trucos

ltventagt lttotalgt151475lttotalgt ltdinosauriosgt

Son los mismos datos pero de una forma totalmente diferente La informashycioacuten de foacutermulas ha sido descartada en este caso pero dado que Excel proporcioshyna los valores al igual que las foacutermulas esta aplicacioacuten en particular no necesita entender dichas foacutermulas

|^Qiexcl2 Crear hojas de caacutelculo utilizando SpreadsheetML ^ K V ^ H Aunque exportar hojas de caacutelculo como XML es uacutetil Excel tambieacuten permite

K aacute f l importar informacioacuten de la misma forma permitieacutendole crear hojas de caacutelculo utilizando SpreadsheetML

Excel soporta SpreadsheetML tanto para la exportacioacuten como para la imporshytacioacuten proporcionando un camino en ambos sentidos completo para la informashycioacuten Puede abrir un documento SpreadsheetML hacer unos cuantos cambios y volver a abrirlo en Excel si asiacute lo desea (de hecho eacutesta es la uacutenica forma de modishyficar los esquemas para las asignaciones XML) De todas formas quizaacute lo maacutes importante es que puede generar documentos SpreadsheetML a partir de cualesshyquiera datos que tenga lo que proporciona un camino relativamente faacutecil y aushytomatizado para transformar informacioacuten secuencial en hojas de caacutelculo de Excel

Como demostracioacuten el coacutedigo del ejemplo 86 t ransformaraacute el documento XML del ejemplo 85 del truco anterior de nuevo en una hoja de caacutelculo de Excel utilizando XSLT La hoja de estilo del ejemplo 86 utiliza la hoja de caacutelculo origishynal como plantilla produciendo un documento XML m u y similar al del SpreadsheetML que guardamos originalmente desde Excel

El ejemplo omite algunos formatos por lo que encontraraacute algunas diferencias visibles

Este truco utiliza algunas caracteriacutesticas que soacutelo estaacuten disponibles en Excel XP y Excel 2003 para Windows Las versiones anteriores no son compatibles con esto ni siquiera las versiones conocidas para Macintosh

Ejemplo 86 XSLT para convertir el vocabulario personalizado XML de nuevo a SpreadsheetML

ltxslstylesheet version=10 xmlnsxsl=httpwwww3org1999XSLTransform xmlnsd=httpsimonstlcomnsdinosaurs

8 Conectando Excel con el mundo 289

xmlnsss=urnschemas-microsoft-comofficespreadsheet xmlns=urnschemas-microsoft-comofficespreadsheet

gt

ltxsloutput method=xml omit-xml-declaration=no indent=yes encoding=US-ASCIIgt

ltxslteacutemplate match=gt ltxslapply-templates select=ddinosaurios gt

ltxsltemplategt

ltxslteacutemplate match=ddinosauriosgt

ltxslrprocessing-instruction name=mso-applicationgtprogid=ExcelSheetltxslprocessing-instructiongt ltWorkbook xmlns=urnschemas-microsoft-comofficespreadsheet xmlnso=urnschemas-microsoft-comofficeoffice xmlnsx=urnschemas-microsoft-comofficeexcel xmlns ss=urn schemas-microsof t-com-of fice spreadsheet xmlnshtml=httpwwww3orgTRREC-html40gt ltDocumentProperties xmlns=urnschemas-microsoft-comofficeofficegt

ltAuthorgtSimon StLaurentltAuthorgt ltLastAuthorgtSimon StLaurentltLastAuthorgt ltCreatedgt2 003-12-03T15483 8ZltCreatedgt ltLastSavedgt2 0 03-12-03T15574 6ZltLastSavedgt ltCompanygtAnaya MultimedialtCompanygt ltVersiongtll5606ltVersiongt

ltDocumentPropertiesgt ltExcelWorkbook xmlns=urnschemas-microsoft-comofficeexcelgt

ltWindowHe ight gt615 0 ltWindowHe ight gt ltWindowWidthgt8475ltWindowWidthgt ltWindowTopXgt12 0ltWindowTopXgt ltWindowTopYgt3 0ltWindowTopYgt ltProtectStructuregtFalseltProtectStructuregt ltProtectWindowsgtFalseltProtectWindowsgt

ltExcelWorkbookgt ltStylesgt

ltStyle ssID=Default ssNtildeame=Normalgt ltAlignment ssVertical=Bottomgt ltBordersgt ltFontgt ltInteriorgt ltNumberFormatgt ltProtectiongt ltStylegt ltStyle ssID=s21gt ltNumberFormat ssFormat=mmm-yygt ltStylegt ltStyle ssID=s22gt ltNumberFormat ssFormat=ampquot$ampquot000gt ltStylegt

ltStylesgt

290 Excel Los mejores trucos

ltWorksheet ssName=Hojalgt ltTable ssExpandedColumnCount=5

ssExpandedRowCount=count(dventa)+4 xFullColumns=n1 xFullRows=lgt ltColumn ssAutoFitWidth=0M ssWidth=735gt ltColumn ssAutoFitWidth=0 ssWidth=9675gt ltColumn ssIndex=5 ssAutoFitWidth=0 ssWidth=5625gt ltRowgt ltCellxData ssType=StringgtVentas de ltDataxCellgt ltCell ssStyleID=s21gtltData ssType=DateTimexxslvalueacute-of

select=d fechaxDataxCellgt ltRowgt ltRow ssIndex=3gt ltCellxData ss Type=String gtNuacutemero IdltDataxCellgt ltCellxData ss Type=String gtBicholtDataxCellgt ltCellxData ss Type=String gtPrecioltDataxCellgt ltCellxData ss Type=String gtCantidadltDataxCellgt ltCellxData ss Type=String gtTotalltDataxCellgt

ltRowgt

ltxslapply-templates select=dventa gt

ltRowgt ltCell ss Index=4xData ss Type=StringgtTotal ltDataxCellgt ltCell ssStyleID=s22 ssFormula==SUM(R[-count(drventa)]CR[-

1] C) xData ssType=NumberxDataxCellgt ltRowgt

ltTablegt

ltWorksheetOptions xmlns=urnschemas-microscft-comofficeexcelgt ltPrintgt ltValidPrinterInfogt ltHorizontalResolutiongt6 0 0ltHorizontalResolutiongt ltVerticalResolutiongt6 0 0ltVerticalResolutiongt

ltPrintgt ltSelectedgt ltPanesgt ltPanegt ltNumbergt3ltNumbergt ltActiveRowgt12ltActiveRowgt ltActiveColgtlltActiveColgt

ltPanegt ltPanesgt

ltProtectObjectsgtFalseltProtectObjectsgt ltProtectScenariosgtFalseltProtectScenariosgt

ltWorksheetOptionsgt ltWorksheetgt ltWorksheet ssName=Hoja2gt

ltWorksheetOptions xmlns=urnschemas-microsoft-comofficeexcelgt ltProtectObjectsgtFalseltProtectObjectsgt ltProtectScenariosgtFalseltProtectScenariosgt

ltWorksheetOptionsgt ltWorksheetgt

8 Conectando Excel con el mundo 291

ltWorksheet ssName=Hoja3gt ltWorksheetOptions xmlns=urnschemas-microsoft-comofficeexcelgt ltProtectObjectsgtFalseltProtectObjectsgt ltProtectScenariosgtFalseltProtectScenariosgt ltWorksheetOptionsgt

ltWorksheetgt ltWorkbookgt ltxsltemplategt

ltxslteacutemplate match=dventagt ltRowgt ltCellxData ssType=Numberxxslvalue-of select=IdNumID gtlt

DataxNamedCell ss Name=IDgtltCellgt ltCellgtltData ssType=Stringxxslvalue-of select=dBicho gtlt

DataxNamedCell ss Name= Bichos xCellgt ltCell ssStyleID=s22gtltData ssType=Numberxxslvalue-of

select=dPrecio gtltDatagtltNamedCell ssName=PreciogtltCellgt

ltCellxData ss Type=Number xxsl value-of select=d Cantidad gtlt DataxNamedCell ss Name=Cantidad gtltCellgt

ltCell ssStyleID=s22 ssFormula==RC[-2]RC[-1]xData ss Type=Number xxsl value-of select=d total gtltDataxCellgt

ltRowgt ltxsltemplategt

ltxslteacutemplate match=dfecha gt ltxslteacutemplate match=dtotal gt

ltxslstylesheetgt

Merece la pena prestar atencioacuten a algunas partes de este ejemplo En primer lugar observe que el SpreadsheetML estaacute incrustado en el XSLT es decir forma parte de la hoja de estilo No hay ninguna parte de SpreadsheetML que no pueda volver a crear utilizando este meacutetodo la instruccioacuten de procesamiento que ya mencionamos anteriormente y que indica a Windows de que se trata de una hoja de caacutelculo de Excel Para ello debe utilizar lo siguiente

ltxslprocessing-instruction name=mso-applicationgtprogid=ExcelSheetltxslprocessing-instructiongt

Dado que XLST no permitiraacute utilizar el espacio de nombres predeterminado (sin prefijo) para hacer referencia al contenido que tiene un espacio de nombres todas las referencias al contenido en el documento de edicioacuten tienen ahora el prefijo d como en dventa dfecha etc

Ademaacutes dado que los rangos con nombre pueden variar dependiendo del nuacuteshymero de elementos a la venta en el original esta hoja de estilo no generaraacute el elemento Ntildeames y sus contenidos Excel volveraacute a crear los rangos con nombre a partir de los elementos NamedCell en cualquier caso De nuevo el corazoacuten de

292 Excel Los mejores trucos

esta hoja de estilo es la parte que genera los elementos Row y Cell como puede verse a continuacioacuten

ltxslteacutemplate match=dventagt ltRowgt ltCellxData ss Type= Number xxsl value-of select=ldnumID gtlt

DataxNamedCell ss Name=IDgtltCellgt

El elemento xshtemplate extraeraacute cada elemento de venta en el original y proshyduciraacute un elemento Row que contenga los elementos Cell que concuerden con sus contenidos Si abre en Excel el SpreadsheetML que produce esta hoja de estilo (muy parecido al del ejemplo 83 aunque quitando los rangos con nombre y algunos formatos) obtendraacute el resultado que se muestra en la figura 815

I S M

u J

crosoft E

Archivo

_ A Arial

1 1 I 2

I 3 4 5 6 7 8 9 10 11 12

uumlil iexcl14 15

16 17 18 19 20 21

Listo

B13 A

veritas d

^^S^^^BS Edicioacuten Ver Insertar

- j _J j ~i t a

- 10 - N

fx

B e

Nuacutemero de Id Bicho 4627 D iexclpiacuteo do cus 3912 Brontosaurus 9845 Triceratops 9625 Vulcanodon 5903 Stegosaurus 1824 Mono clon ius 9728 Megalosaurus 8649 Barosaurus

1

bull H H o j a l Hoja2 Hoja3

w iexcliexcliexclsect Formato

K

ene-

iquest -

sect

zr 114

F

deg trade |

BW^-T^-- bullbull- Herramientas Datos Ventana

J - - reg - i - m m m d - iacute ooo euro -08 i

_ _ _ __

recio Cantidad Total 2250 euro 127 285750 euro 1750 euro 74 129500 euro 1200 euro 91 109200 euro 1900 euro 108 205200 euro 1850 euro 63 116550 euro 1650 euro 133 219450 euro 2300 euro 128 294400 euro 1700 euro 91 154700 euro

Total 1514750 euro

lltl

i iexcl iexcld-iw iw

G

Iacute 100

_ gt

__

- lt -^ r

__

i NUM

- - fi X

_

_l

bull i r

Figura 815 La hoja de caacutelculo de prueba despueacutes de que sus datos hayan ido desde SpreadsheetML a otro vocabulario y de nuevo de vuelta

SpreadsheetML puede que no sea m u y bonito pero existen numerosas razoshynes por las que desearaacute utilizarlo Para empezar grabar como SpreadsheetML le proporciona un mejor acceso a la informacioacuten de asignaciones XML que ya desshycribimos en el t ruco anterior Y a largo plazo lo maacutes impor tante es que SpreadsheetML es portable por lo que puede procesarlo y generarlo en cualquier ordenador que disponga de herramientas para XML

8 Conectando Excel con el mundo 293

Importar datos directamente en Excel Utilizando los servicios Web de Amazon como origen de los datos podemos integrar faacutecilmente informacioacuten en vivo acerca de por ejemplo libros de texto en hojas de caacutelculo de Excel Este ejemplo importaraacute datos referentes a la clasificacioacuten de ventas para un libro en particular y calcularaacute la media de eacutesta

Este truco se basaraacute en la caracteriacutestica de Excel para hacer consultas Web por lo que necesitaraacute Excel 97 o una versioacuten superior La herramienta de consulshytas para Web de Excel transforma tablas sencillas en HTML en hojas de caacutelculo

Para que esto funcione necesitaraacute darse de alta en Amazon y obtener una identificacioacuten de asociado Para ello vaya a la paacutegina http wwwamazoncomassociates Luego tendraacute que ir a la paacutegina http amazoncomwebservices y hacer clic en el viacutenculo Apply for a free developers token Ambos pasos son necesarios para poder utilizar los servicios Web de Amazon

El siguiente coacutedigo utiliza numerosas caracteriacutesticas tanto de los servicios Web de Amazon como de Excel Una vez que vea coacutemo funcionan juntos podraacute crear raacutepidamente sus propias consultas

Este truco comenzaraacute utilizando una consulta estaacutendar de tipo XMLHTTP Lo que queremos es analizar la clasificacioacuten de ventas de la serie de libros de trucos de OReilly por lo que construimos una consulta estaacutendar para recuperar dichos resultados

httpxmlamazoncomoncaxml3t=insert associate tag ampdev-t=insert developer tokenampPowerSearch=publisherOReilly20and20keywords Hackamptype=heavyampmode=booksampf=xml

Esto requiere del uso del sistema de buacutesqueda avanzada de Amazon para esshypecificar una editorial (OReilly) y una palabra clave (Hack) La siguiente tarea es obtener los datos de respuesta de Amazon de una forma en la que Excel pueda trabajar con ellos Dado que las consultas Web de Excel funcionan utilizando HTML sencillo la respuesta que obtenemos deberaacute ser transformada Como ya hicimos en los dos uacuteltimos trucos las hojas de estilo XSL seraacuten el meacutetodo maacutes raacutepido para conseguir esto Coloque el siguiente coacutedigo en un archivo llamado excel_SalesRankxls Este archivo limitaraacute la respuesta de Amazon a aquellos camshypos que sean necesarios convirtiendo todo en HTML

ltxml version=10 gt ltxslstylesheet version=lO xmlnsxsl=httpwwww3org1999XSL Transformgt

uuml

294 Excel Los mejores trucos

ltxsl output method=htmlgt ltxs l t eacutempla te match=gt lthtml xmlnso=urnschemas-microsof t -comoff ice off ice xmlnsx=urnschemas-microsof t -comoff iceexcel xmlns=httpwwww3orgTRREC-html40gt ltbodygt lttable id=basicgt lttrgt

ltth bgcolor=cccccc colspan=3gtSales Dataltthgt lt t rgt lttrgt

ltth bgcolor=99 9 99 9gtASINltthgt ltth bgcolor=9 99 999gtTit leltthgt ltth bgcolor=999999gtSales Rankltthgt

lt t rgt ltxs l fo r -each se lec t=Produc t In fo De ta i l s gt lttrgt

lt t d x x s l value-of se lect=Asin gtlttdgt lt t d x x s l v a l u e - o f select=ProductName gtlttdgt lt t d x x s l v a l u e - o f select=SalesRank gtlttdgt

lt t rgt ltxslfor-eachgt lt t r x t d c o l s p a n = 3 x t d gt lt t r gt lttrgt

lttd bgcolor=ffccOO colspan=2 a l ign=r igh t gt ltbgtAverage Sales Rankltbgt

lttdgt lttd bgcolor=ffccOOgt=ROUND(AVERAGE(C3Cltxslvalue-of

select=count(ProductlnfoDetails) + 2 gt)0)lttdgt lttrgt

lttablegt ltbodygt lthtmlgt ltxsltemplategt ltxslstylesheetgt

Este archivo recibe la respuesta AWS y la convierte en una tabla sencilla HTML La seccioacuten x s l f o r - e a c h hace un bucle que recorre el nodo Details y antildeade una fila la tabla para cada resultado Una vez que transfiera este archivo a un servidor accesible deberiacutea ser capaz de ver los resultados de la transformacioacuten en un explorador de Internet simplemente especificando la URL del archivo XSL en el campo Direccioacuten Simplemente modifique la URL del uacuteltimo paso reemplazanshydo f =xml por f = h t t p e x a m p l e c o m e x c e l _ S a l e s R a n k x s l

httpxmlamazoncomoncaxml3t = insert associate tagampdev-t = insert developer tokenampPowerSearch=publisher0Reilly20and20keywords Hackamptype=heavyampmode=booksampf=httpexamplecomexcel_SalesRankxsl

Deberiacutea poder ver una tabla como la que se muestra en la figura 816 con los datos recuperados de la consulta anterior Observe que la uacuteltima celda de la tabla

8 Conectando Excel con el mundo 295

contiene una funcioacuten de Excel Puede resultar algo extrantildeo en este momento pero tiene un propoacutesito m u y importante una vez que esteacute dentro de Excel

Archivo Edicioacuten Ver

_ Atraacutes

Direccioacuten | httpxml-na

1 A M^Jtiacutegfc | 0 5 9 6 0 0 4 4 7 8

0 5 9 6 0 0 4 6 0 5

0 5 9 6 0 0 4 6 1 3

SsJ uuml s t o

avoritos

amznxsft

Herramientas Ayuda

Buacutesqueda Favoritos | J f Multimedia ^

omoncaxml3t=insert20associate20tag208(dev-t

Sales data

Google Hacks

M a c O S X H a c k s

Linux Server Hacks

- - =insert20developer20tokenj J ^Jj Ir

^aacuteSife

Average Sales Raiik= =ROUND(AVERAGE(C3C5)0)

14

278

7 6 3

mmmm

pound Mi PC

M Viacutenculos

1

raquo

J

J

Figura 816 Tabla en HTML con los datos de ventas

Para adjuntar ambas aplicaciones utilice un archivo de consultas de Excel (IQY) Este archivo contendraacute toda la informacioacuten referente a la consulta inclushyyendo la URL que a p u n t a a los da tos Cree un nuevo archivo l lamado amzn_avg_salesiqy y antildeada el siguiente coacutedigo

WEB 1 httpxmlamazoncomoncaxml3t=insert associate tagampdev-t=insert developer tokenampPowerSearch=publisherOReilly20and20keywords Hackamptype=heavyampmode=booksampf=httpexamplecomexcel_SalesRankxsl

La primera liacutenea le indica a Excel que se trata de una consulta Web El 1 de la segunda liacutenea indica a el nuacutemero de versioacuten de la consulta Web (siempre debe estar en 1) Luego aparece la URL de la consulta AWS que incluye el archivo XSL Guarde el archivo y acueacuterdese de su ubicacioacuten

Ejecutar el truco

Para ejecutarlo haga doble clic en el archivo amzn_avg_salesiqy Eso haraacute que Excel lo abra contacte con la URL y genere una hoja de caacutelculo como la de la figura 817

296 Excel Los mejores trucos

yiexcl^mmmm^^^^^^^m^M^m-- bull 41 J Aria

1 2

3 4

5 6 7 8 9 10 11 12 13 14 15

16

MU 4

Listo

Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana l

- ^ j j J j 1 d u - J O 53 bullbullgtbull E

- 10 - M T 5 m 3 3 ^ j -ff 000 euro -oo dego

H21 - pound

A B C D

Sales data $iacute t^V^

596004478 Google Hacks 14

596004605 M a c 0 S X H a c k s 278

596004613 Linux S e rver Hac k s 763

Average Sales Rank 352

bull W amzn_avg_sales | i j

l IF

LEacute 100

T bull

_

| NUM

^|nL)| 5 x

w v f

laquoiquest ~

__ __

mdash

w

gtr

Figura 817 Hoja de caacutelculo de Excel con los datos de clasificacioacuten de ventas

Ahora ya tiene algunos datos uacutetiles la clasificacioacuten media de ventas de los libros en una aplicacioacuten ideal para manipular y analizar los datos Puede actuashylizar los datos en cualquier momento haciendo clic con el botoacuten derecho del rashytoacuten en cualquier celda de la hoja de caacutelculo y eligiendo la opcioacuten Actualizar datos

El truco del truco

La parte importante de este truco es conocer coacutemo obtener los datos directashymente de AWS en Excel Una vez dentro de Excel los datos estaacuten al alcance de todas las funciones que puede ofrecernos Excel caacutelculos graacuteficos etc A contishynuacioacuten veremos algunos meacutetodos raacutepidos para extender este ejemplo

Hacer que la consulta sea dinaacutemica

En vez de limitar los datos a informacioacuten estaacutetica construida dentro de una consulta de un archivo IQY podemos antildeadir un poco de interactividad Suponshygamos que tenemos una lista de coacutedigos de libros y deseamos conocer la media de la clasificacioacuten de ventas pero no disponemos de la lista en el momento en que construimos el archivo IQY Excel ofrece la posibilidad de preguntar al usuario por cierta informacioacuten antes de realizar la consulta Web

El uacutenico cambio que necesita hacer es colocar la informacioacuten preguntada denshytro de la URL de la consulta Web en el lugar en el que desee que aparezca la

8 Conectando Excel con el mundo 297

entrada del usuario Para ello cambie la URL que se encuentra dentro del archivo amzn_avg_salesiqy a lo siguiente

http xml amazon comoncaxml3t = insert associate tagampdev-t = insert developer tokenampPowerSearch=isbn[ISBNIntroduzca una lista de ISBN separados por el signo de barra vertical (|)]amptype=heavyampmode=booksampf=httpexamplecomexcel_SalesRankxsl

Ahora se le pediraacute que introduzca una lista de ISBN al abrir el archivo como puede verse en la figura 818

3] Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana Z

Ai aacute ~J A- S

f

MM

4j[

JM raquo A T |

i pound 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ~1

H 4 bull H amzn_avg_sales

Introducir

DBBDKEESI^ Introduzca una lista de ISBN separados por el signo de barra vertical (|)

3J f Usar este valor o referencia para futuras actualizaciones

llaquol nr

Figura 818 Cuadro de diaacutelogo para preguntar los ISBN

Si no se acuerda de ninguno puede probar con los siguientes

1565927141|0596003595|0596002246 | 0596002505

Con ello deberiacutea obtener la media de la clasificacioacuten de ventas para los ISBN que haya introducido iexclY ademaacutes seraacute diferente cada vez

Utilizar datos diferentes

Como el ejemplo anterior cambiar los datos con los que estaacute trabajando es simplemente otra manera de cambiar la URL para la consulta AWS Pero si desea

298 Excel Los mejores trucos

trabajar con un conjunto diferente de datos (como el coste de cada elemento en vez de la clasificacioacuten de ventas) necesita modificar un poco la hoja de estilo XSL

Para ver hasta queacute punto la hoja de estilo puede marcar la diferencia cree un nuevo archivo llamado excel_PriceDiffxls y antildeada el siguiente coacutedigo

ltxml version=10 gt ltxslstylesheet version=10 xmlnsxsl=httpwwww3org1999XSL Transforma ltxsloutput method=htmlgt ltxslteacutemplate match=gt lthtml xmlnso=urnschemas-microsoft-comofficeoffice xmlnsx=urnschemas-microsoft-comofficeexcel xmlns=httpwwww3orgTRREC-html40gt ltbodygt lttable id=basicgt lttrgt

ltth bgcolor=cccccc colspan=4gtDatos de ventasltthgt lttrgt lttrgt

ltth bgcolor=9 9999 9gtISBNltthgt ltth bgcolor=M9 99 9 99gtTituloltthgt ltth bgcolor=999999gtPrecio originalltthgt ltth bgcolor=999999gtPrecio de Amazonltthgt

lttrgt ltxslfor-each select=ProductlnfoDetailsgt lttrgt lttdgt

ltxslvalue-of select=Asin gt lttdgt lttdgt

ltxslvalue-of select=ProductName gt lttdgt lttdgt

ltxslvalue-of select=ListPrice gt lttdgt lttdgt

ltxslvalue-of select=OurPrice gt lttdgt lttrgt ltxslfor-eachgt lt t r x t d colspan=M3 gt lt t d x t r gt lttrgt

lttd bgcolor=ffccOO colspan=3 a l ign=r igh t gt ltbgtMedia del precio originalltbgt

lttdgt lttd bgcolor=ffccOOgt=ROUND(AVERAGE(C3Cltxslvalue-of

select=count(ProductlnfoDetails) + 2 gt)2) lttdgt

lttrgt lttrgt

8 Conectando Excel con el mundo 299

lttd bgcolor=ffccOO colspan=3 align=rightgt ltbgtMedia del precio de Amazonltbgt

lttdgt lttd bgcolor=ffccOOgt=ROUND(AVERAGE(D3Dltxslvalue-of

select=count(ProductlnfoDetails) + 2 gt)2) lttdgt

lttrgt lttablegt ltbodygt lthtmlgt ltxsltemplategt ltxslstylesheetgt

Transfiera este archivo XSL a un servidor puacuteblico y anote la URL Luego cree un nuevo archivo de consulta llamado amzn_price_diffiqy y utilice el mismo coacutedigo de ejemplos anteriores pero cambiando la variable f = por la URL de la nueva hoja de estilo Abra el archivo y deberiacutea haber una nueva hoja de caacutelculo con la lista de precios y la lista de precios de Amazon tal y como se muestra en la figura 819

bulllaquobull -aacutei j

crosoft Exce - - | J ^ i 4 i | | | | | g l l i lSIIISIl Archivo Edicioacuten Ver Insertar Formato

_ ei _iquest _J - i JL v

Arial raquo 10 -

iexcl 1

2 3 4 5 6

7 8 9

10 11 12 13 14 15 16 17 18 19 20 21

MU 4

[Listo

H35 - f

A

ISBN Tiacutetulo 596002246 Web Services

4iquest S bull

U K S

Herramientas

- -1 ~Jh T

m m

B

= iquesti

Datos de ventas

Essentials (OReilly XML) 596003595 Writing Excel Marcos with VBA 2nd Edit 596002505 Proqramminq

1565927141 Excel 2000 iexcln

bull w H o j a l

NETWeb Services a Nutshell A Power User s

Datos Ventana

53 ^ s - il i i U - | 000 euro oo ~dego i p W

~ c

Iacute J gt 100

T ^ T

~~~^

T bull

iquesti -

Precio original Preda de Amazon $2995

on $3495 $3995

Quick Reference $2995

Media del precio original Media del precio de Amazon

M NUM

$2097 $2447 $2797 $2097

$3370 $2360

1

mdash

_ bull

bull i n

Figura 819 Hoja de caacutelculo Excel con los datos sobre los precios

300 Excel Los mejores trucos

Resultados con graacuteficos

Una vez que los datos estaacuten en Excel es m u y faacutecil crear graacuteficos para hacerse una idea de queacute significan los datos de un vistazo Veamos coacutemo antildeadir un graacuteshyfico la hoja de caacutelculo

1 Basaacutendonos en el ejemplo uacuteltimo ejecute el archivo amzn_price_diffiqy Deberiacutea ver los datos que incluyen una lista de libros jun to con la lista de precios originales y de precios de Amazon

2 A continuacioacuten seleccione las celdas del tiacutetulo precio original y precio de Amazon

3 Vaya a lnsertargtGraacutefico con lo que apareceraacute el asistente para graacuteficos

4 Haga clic en Finalizar

Ahora deberiacutea haber conseguido una representacioacuten graacutefica m u y uacutetil de los graacuteficos (figura 820)

bullMicrosoft EacuteKCel - Iacute M Iacute Eacute Iacute Eacute I

Archivo Edicioacuten Ver Insertar Formato Herramientas Graacutefico Ventana

Arial

Atea del graacutefico -

- 12 gt - A - j

1 i 2 i 3 j 4 1

~5i 6 i 7 1 8~] 9 1

iacuteol Til

12]

iT] 15

111 i7] 18 1 19 i 20T

21 1

23j

U 4

Listo

bull I I lB i i i l 596002246Ueb Senices Esseiiais (0ReiHy XML) 596003595

596002505

Datos de ventas

bull bull bull bull bull bull bull bull bullam Writing Excel Marcos with VBA 2nd Edition Pro g ra m m i n g N ET Web Se rviexclc e s

1565927141 [Excel 2000 in a Nutshell A Power Users Quick Reference

Media del precio original Media del precio de Amazon

$5000 $4000 $3000 $2000 $1000

$000

D Precio original

aprecio de Amazon

Web Services Writing Excel Programming Excel 2000 in Essentials Marcos with NET Web a Nutshell A

(OReilly XML) VBA2nd Services Power Users Edition Quick

Reference

bull bull l K _ H p j a l Iacutelt1 Aacuterea del graacutefico |

p r e c i o original Precio de Amazon T $2995 $2097) $2995

$3495

$3995

$2995

$2097

$2447 $2797

$2097

$3370 $2360

plusmniexclr

Figura 820 Un graacutefico con los precios

8 Conectando Excel con el mundo 301

Acceder a servicios Web SOAP desde Excel Si sus hojas de caacutelculo necesitan acceder constantemente a datos actualizados necesitan acceder a servicios que estaacuten alojados en otros ordenadores el soporte para servicios Web de Excel le permitiraacute estar conectado

Los servicios Web basados en SOAP han sido una pieza clave de Microsoft en sus planes para la plataforma NET asiacute como kits de herramientas comunes de otros fabricantes SOAP es un protocolo que utiliza XML para trasmitir informashycioacuten entre sistemas En el caso que veremos aquiacute es utilizado para llamar a proshycedimientos y devolver valores La especificacioacuten WSDL (Web Service Definition Language) describe los servicios Web de forma que las aplicaciones puedan coshynectarse entre ellas faacutecilmente La herramienta Web Service References de Microsoft puede coger un archivo WSDL y generar coacutedigo VBA que su aplicacioacuten puede utilizar para acceder a servicios Web basados en SOAP

Este truco utiliza funciones de Excel que soacutelo estaacuten disponibles en sus versiones XP y 2003 para Windows Las versiones anteriores no son compatibles con esto ni siquiera las versiones conocidas para Macintosh

Para poder utilizar este truco es necesario descargar el Office Web Services Toolkit Dado que la ubicacioacuten cambia continuamente Microsoft lo mejor es ir a httpwwwmicrosoftes y luego utilizar la paacutegina de buacutesqueda o la paacutegina de descargas y buscar por Office Web Services Toolkit Existen diferentes versiones para Office XP y 2003 Necesita instalar este programa siguiendo las directrices que vienen con eacutel para luego poder trabajar con este truco

Una vez que lo haya instalado puede comenzar a conectar sus hojas de caacutelcushylo con servicios Web Para acceder a la herramienta Web Service References (asiacute es como se llama dentro de Excel) debe abrir Visual Basic yendo a la opcioacuten HerramientasgtMacrogtEditor de Visual Basic y luego en el menuacute Herramientas encontraraacute la opcioacuten Web Service References Si selecciona esta opcioacuten se abriraacute el cuadro de diaacutelogo que se muestra en la figura 821

Puede utilizar las funciones de buacutesqueda de la parte superior izquierda de este cuadro de diaacutelogo para encontrar servicios a traveacutes del sistema de descubrimienshyto universal de Microsoft a traveacutes del servicio Description and Integration (UDDI) o puede introducir una URL para el archivo WSDL en la parte inferior izquierda Puede encontrar un l istado de servicios puacuteblicos en la direccioacuten h t t p xmethodsnet aunque deberiacutea asegurarse de que los servicios todaviacutea funcionan antes de integrarse con ellos desde las hojas de caacutelculo Tambieacuten son muchos los servicios que requieren de una licencia e incluso del pago de la misma pero para

302 Excel Los mejores trucos

este ejemplo utilizaremos una que estaacute disponible de forma gratuita Dicho sershyvicio nos devuelve la direccioacuten IP de un nombre de dominio que proporcionemos

bullB Web S e r v i c e s T eacute e l ^

iacute Buscar servicios Web

Busque servicios Web utilizando palabras clave o un nombre de empresa

Palabras clave

Nombre de empresa

Haga dic en los servicios o meacutetodos Web para ver las descripciones Seleccione uno para agregarlo al proyecto

Resultados de la buacutesqueda

[Especifique los criterios de buacutesqueda para comenzar

Direccioacuten URL del servicio Web Descripcioacuten

Ayuda

Figura 821 La herramienta Microsoft Office Web Services en accioacuten

Comenzaremos dicieacutendole a Excel cuaacutel servicio deseamos utilizar en este caso httpTvwwcosmenuservicesdnsphp7wsdl Introduzca ese valor en el cuashydro de texto URL situado en la esquina inferior izquierda y luego haga clic en el botoacuten Buscar Apareceraacuten el resultado dns en la parte superior derecha tal y como se muestra en la figura 822 Active la casilla de verificacioacuten situada justo a su izquierda Si hace clic en el botoacuten Agregar haraacute que Excel genere coacutedigo VBA para el servicio tal y como puede verse en la figura 823

A continuacioacuten cierre VBE y rellene un hoja de caacutelculo m u y simple como la que se muestra en la figura 824

Para antildeadir un botoacuten que llame al servicio abra el cuadro de controles hashyciendo clic con el botoacuten derecho del ratoacuten sobre una barra de herramientas y eligiendo la opcioacuten Cuadro de controles Haga clic en el icono Botoacuten de comando y luego haga clic dentro de la hoja de caacutelculo en el lugar en el que desee colocar el botoacuten Haga clic con el botoacuten derecho sobre el botoacuten y elija la opcioacuten Propiedashydes en el m e n uacute contextua l que aparece En la propiedad Ntildeame escriba ObtenerDatos en Caption escriba Obtener direccioacuten IP Cierre este cuadro de diaacutelogo y la hoja de caacutelculo deberiacutea verse como en la figura 825

Conectando Excel con el mundo 303

11 KUuml r IUB Baf |-fj| i wi af f uuml^iff i^n^^ r Buscar servicios Web

r _ ~ bull

1 |

bullbull Direccioacuten URL del servicio Web

Facilite una direccioacuten URL para el archivo WSDL o ASMX para ver el servicio Web

Direccioacuten URL

| http wwwcosme nuser vicesdnsphpwsdl

Buscar

Haga clic en los servicios o meacutetodos Web para ver las descripciones Seleccione uno para agregarlo al proyecto

Resultados de la buacutesqueda 1

- 0EB dns

Descripcioacuten

Descripcioacuten no disponible I

Agregar Cancelar Ayuda I

Figura 822 Indicar al Web Services Toolkit que genere coacutedigo a partir de un servicio Web

tU Archivo Edicioacuten Ver Insertar Formato Depuracioacuten Eiecutar Herramientas Complementos Ventana Ayuda

mssmmsmsM

_ amp x

uuml s Microsoft E bull cel Obietos JM

BJ Henal (Hoial) H] Hoia2 (Hoia2) H]Hoia3(Hoia3) Q ThisWorlbool

Moacutedulos de clase

_ bull ]

|clsws_dns ClassModule

Alfabeacutetica | por categoriacuteas 1

Instancing 1 - Priacutevate

bull- (Declaraciones)

P r i va t e 3c_dri3 As So apCl i en t 3 0

Figura 823 Coacutedigo VBA generado por Web Services Toolkit para acceder al servicio dns

304 Excel Los mejores trucos

l l f M i c r o s o f t f x i i ^

^j Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana

J ^ d _Iacute _ j Jf -1 ^ Jraquo uacute -^ -iacuteaacute T T SI bull

Arial ^ 10 N S ^ W =1 i f j - f j 000 euro

A3 - pound IP

iexcl1 A | B C D E

1 1 I 2 Nombre

3 |IacuteP Iacute

4

5

6

7

8

9

10 11 12

13

I 14 15

16 17

| H 4 bull M H o j a l Hoja2 Hoia3 lt

Listo

iacute pound T

oo o

F

1 iexcld 1 0 0

iexcl= _

G

1 NUM

_ 1 X

T y

T laquok

H T

^ bull m

Figura 824 Una hoja de caacutelculo para antildeadir servicios Web

rqsoft|toacuteIacutetSIEacutettIacuteI

fj Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana

J _iquest A _j _J i _1 t bdquo h - J -i T sectpound --

ComtnandBut bull f = IN C R U STAR (Fot m s i o m m a n d B utt o n 1)

_ figt x

lg 100 - yengt ^

Nombre

IP

B

o Obtener direccioacuten IP c r _ _ _ _ ( y

bullI H o j a l Hoja2 Hoja3 Ilt1

H T

i r

Figura 825 Hoja de caacutelculo con un botoacuten para llamar a los servicios Web

8 Conectando Excel con el mundo 305

Para antildeadir la uacuteltima pieza haga clic con el botoacuten derecho del ratoacuten sobre el botoacuten y elija la opcioacuten Ver coacutedigo En la ventana que aparece introduzca esta subrutina

Priacutevate Sub ObtenerDatos_Click( ) Dim info As New clsws_dns Dim ntildeame As String Dim IP As String

ntildeame = Range(B2)Text

IP = infowsm_dns(ntildeame)

Set IPRange = Range(B3)

IPRangeValue = IP

End Sub

Este coacutedigo es m u y sencillo Hace referencia al objeto que ha creado la herrashymienta para el servicio Web y luego crea variables para el nombre y la direccioacuten IP Obtiene el nombre de la celda B2 llama a servicio Web con el nombre como argumento y luego coloca el valor devuelto en la celda B3 Una vez que haya introducido este coacutedigo y haya cerrado VBA puede dejar el modo de disentildeo aseshyguraacutendose de que el icono con aspecto de cartaboacuten y un laacutepiz (situado en la esquina superior izquierda del cuadro de controles) esteacute desactivado Ahora la hoja de caacutelculo le permitiraacute introducir un nombre de dominio en la celda B2 Haciendo clic en el botoacuten Obtener direccioacuten IP se colocaraacute la direccioacuten IP coshyrrespondiente al nombre de dominio en la celda B3 Las figuras 826 y 827 muesshytran esta hoja de caacutelculo en accioacuten utilizando diferentes nombres de dominio

La resolucioacuten de direcciones IP es uno de los servicios maacutes simples que existen pero muchas veces servicios asiacute de simples pueden resultar m u y uacutetiles en una hoja de caacutelculo (por ejemplo converso desde moneda recuperacioacuten de precios procesamiento de coacutedigos postales etc) Ni siquiera necesita aprender SOAP o WSDL para utilizar estos servicios ya que Web Services Toolkit se encarga de todo esto por usted

Sin embargo es importante resentildear algunas desventajas En primer lugar el ordenador debe estar conectado a Internet para que un servicio Web funcione Probablemente no desearaacute a crear hojas de caacutelculo que dependan fuertemente de servicios Web si sus usuarios van a estar trabajando m u y lejos de aquiacute y normalshymente van a estar desconectados (normalmente es aceptable una hoja de caacutelculo como esta que utiliza un servicio Web para rellenar campos pero que no necesishyta estar conectada constantemente) El otro tema importante con los servicios Web es que en general este campo estaacute en un estado de cambio significativo

306 Excel Los mejores trucos

i raquo Microsoft Excel - Libro bull bullw amp fSMMf ^ l f ^

iquestsect] Archivo

J j A Arial

B3

1 A 1 2 Nombre 3 lIR 4

i 5 I 6

7 8 9 10 11 12

13 I 14

I 15

I 16 i 17

Edicioacuten Ver Insertar Formato Herramientas Datos Ventana

J _j aacute A H -J pound - ^ - SI aacute- z bull iquestl M 100

- 10 bdquo N iT S 1 I I iacute j ^f j 000 euro cl o iexclF _ - bullgt

amp 20820123936

bull B | C D E F G

oreillycom 120820123936 1

1 Obtener direccioacuten IP

Un 4 bull H H o j a l Hoja2 HojaS lt j

Listo NUM

- f l X

T V IacuteJ ^ T |

1

bull i r l

Figura 826 Direccioacuten IP obtenida para oreillycom

H Microsoft EKCCI - Libroiacute iexcl8IWlt -^jj Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana

J - A J _j J J ^ iquest iquest -J raquo - bull - 51 x pound - )A M 100

Arial - 10 - N K S ^ S ^ ^j -f 000 euro oo 5j W _ T -

B3 - pound 1296162223

-inlxi - ntilde x

A ^ S

9 10 11 12 13 14 15 16 17 IR

H 4 bull

Listo

B

Nombre ozqridcom iexclIP FIacuteZ96162223 iexcl

bullI H o j a l Hoja2 Hoja3

Obtener direccioacuten IP

IlaquoI ir

Figura 827 Direccioacuten IP obtenida para ozgridcom

8 Conectando Excel con el mundo 307

Cuando se escribioacute este libro SOAP estaba pasando de la versioacuten 11 a la versioacuten 12 y tambieacuten estaba en desarrollo una nueva versioacuten de WSDL Y lo que es maacutes mucha gente cree que UDDI puede ser reemplazado con otras tecnoloshygiacuteas Por ahora aseguacuterese de comprobar los servicios que utilice y esteacute atento a posibles versiones nuevas del Office Web Services Toolkit

TRUCO

100 Crear hojas de caacutelculo Excel utilizando otros entornos Aunque Excel y otros programas de hojas de caacutelculo proporcionan la iexclnterfaz tradicional para crear y leer hojas de caacutelculo a veces necesitaraacute poder crear archivos xls directamente a partir de otros programas

Independientemente de que esteacute creando archivos Excel a partir de bases de datos en un servidor Apache o si simplemente desea presentarla informacioacuten almacenada en un programa Java a los usuarios de Excel existen numerosos paquetes en el mercado que le permiten crear y acceder a archivos xls sin tener que utilizar Excel Aunque esos paquetes son normalmente maacutes difiacuteciles de utilishyzar que SpreadsheetML normalmente producen archivos que pueden ser leiacutedos por cualquier Excel a partir de la versioacuten 97 (incluyendo las versiones para Macintosh) y a menudo son compatibles con maacutes funciones de Excel Algunos de los paquetes maacutes populares (y gratuitos) para trabajar con datos de Excel son

SpreadsheetWriteExcel

Es un paquete Perl para crear documentos Excel disponible en h t t p searchcpanorgdistSpreadsheet-WriteExcel

SpreadsheetParseExcel

Una herramienta que permite a los programas Perl leer archivos Excel disposhynible en http searchcpanorg-kwitknrSpreadsheet-ParseExcel-02602

Jakarta POI

Un producto de Apache Project que proporciona tanto acceso de lectura como de escritura a las hojas de caacutelculo de Excel a traveacutes de una API de Java disponible en ht tp j akarta apache orgpoiindex html

J Excel Api

Una API de Java para leer y escribir hojas de caacutelculo Excel incluyendo convershytidores Excel-CSV y Excel-XML Lo encontraraacute disponible en h t t p w w w andykhancomjexcelapi

308 Excel Los mejores trucos

Tambieacuten puede automatizar Excel de muchas formas a menudo utilizando el NET Framework de Microsoft Para ver un ejemplo de coacutemo hacer esto usando el lenguaje C v a y a a la paacuteg ina h t t p w w w e g g h e a d c a f e c o m a r t i c l e s 20021012 asp

Como ejemplo de coacutemo funciona este proceso el coacutedigo Java del ejemplo 87 generaraacute una hoja de caacutelculo utilizando la API POI (incluso aunque no sea un programador Java podraacute hacerse una idea) Puede pasar por alto la lectura de la licencia pero seraacute necesario incluirla en el coacutedigo

Ejemplo 87 Coacutedigo Java para generar una hoja de caacutelculo Excel usando POL

This code is der ived from the org apache poi hssf dev HSSF c l a s s henee the long l i c e n s e = = = = = = = = = = = = = = = = = = = = = = = =z = = = = = = m = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = The Apache Software License Versioacuten 11 Copyright (c) 2003 The Apache Software Foundation All rights reserved bull

Redistribution and use in source and binary forms with or without modification are permitted provided that the following conditions are met 1 Redistributions of source code must retain the above copyright notice this list of conditions and the following disclaimer bull

2 Redistributions in binary form must reproduce the above copyright notice this list of conditions and the following disclaimer in the documentation andor other materials provided with the distribution 3 The end-user documentation included with the redistribution if any must include the following acknowledgment This product includes software developed by the Apache Software Foundation (httpwwwapacheorg) Alternately this acknowledgment may appear in the software itself if and wherever such third-party acknowledgments normally appear 4 The ntildeames Apache and Apache Software Foundation and Apache POI must not be used to endorse or promote produets derived from this software without prior written permission For written permission please contact apacheapacheorg 5 Products derived from this software may not be called Apache Apache POI ntildeor may Apache appear in their ntildeame without prior written permission of the Apache Software Foundation THIS SOFTWARE IS PROVIDED ^AS IS AND ANY EXPRESSED OR IMPLIED WARRANTIES INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES

8 Conectando Excel con el mundo 309

OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT INDIRECT INCIDENTAL SPECIAL EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING BUT NOT LIMITED TO PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES LOSS OF USE DATA OR PROFITS OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY WHETHER IN CONTRACT STRICT LIABILITY OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE

This software consists of voluntary contributions made by many individuaacuteis on behalf of the Apache Software Foundation For more information on the Apache Software Foundation please see lthttpwwwapacheorggt

import javaio

import javautilRandom

import orgapachepoipoifsfilesystemPOIFSFileSystem import orgapachepoihssfrecord import orgapachepoihssfmodel import orgapachepoihssfusermodel import orgapachepoihssfuacutetil

public class PoiDemo

public static void main (String[] args) throws Exception short rownum

crea un archivo de destino

FileOutputStream out = new FileOutputStream(zingotxls)

crea un nuevo objeto workbook Observe que el libro y el archivo son dos cosas diferentes casi hasta el final cuando el libro es escrito en el archivo

HSSFWorkbook wb = new HSSFWorkbook( )

crea una nueva hoja HSSFSheet ws = wbcreateSheet( )

crea una referencia a un objeto fila para su uso posterior HSSFRow r = nuil

crea una referencia al objeto celda HSSFCell c = nuil

crea dos estilos - formatos de celda necesita ser definido antes de poder usarse

HSSFCellStyle csl = wbcreateCellStyle( )

310 Excel Los mejores trucos

HSSFCellStyle cs2 = wbcreateCellStyle( ) HSSFDataFormat df = wbcreateDataFormat( )

crea dos objetos fuente para el formato HSSFFont fl = wbcreateFont( ) HSSFFont f2 = wbcreateFont( )

establece la fuente 1 a tamantildeo 10 y negrita f1setFontHeightlnPoints((short) 10) f1setBoldweight(HSSFFontBOLDWEIGHT_BOLD)

establece la fuente 2 a tamantildeo 10 y en color rojo f2setFontHeightlnPoints((short) 10) f2setColor( (short)HSSFFontCOLOR_RED )

para el estilo 1 de celda usar fuente 1 y establecer el formato de datos

cslsetFont(f1) cslsetDataFormat(dfgetFormat(00) )

para el estilo 2 de celda usar fuente 2 establecer borde fino y formato de texto

cs2setBorderBottom(cs2BORDER_THIN) cs2setDataFormat(HSSFDataFormatgetBuiltinFormat(text)) cs2setFont(f2)

establece el nombre de la hoja en Unicode wbsetSheetName(0 Hoja de prueba

HSSFWorkbookENCODING_UTF_16 )

crea una hoja con 10 filas (0-9) for (rownum = (short) 0 rownum lt 10 rownum++)

crea una fila r = wscreateRow(rownum)

rsetRowNum(( short ) rownum) crea seis celdas(0-5) (el + = 2 se entenderaacute luego) for (short cellnum = (short) 0 cellnum lt 6 cellnum += 2)

crea una celda numeacuterica c = rcreateCell(cellnum) rellena con nuacutemeros basaacutendose en la posicioacuten csetCellValue(rownum 10 + cellnum

+ (((double) rownum 10) + ((double) cellnum 100)))

crea una celda de texto c = rcreateCell((short) (cellnum + 1))

cada dos filas (por eso lo de +=2) if ((rownum 2) ==0)

8 Conectando Excel con el mundo 311

ajusta esta celda con el primer estilo que definimos csetCellStyle(csl) establece el valor de la celda a Prueba csetEncoding( HSSFCellENC0DING_UTF_16 ) csetCellValue( Prueba )

else

CsetCellStyle(cs2) establece el valor de la celda a 1 2 3 csetEncoding( HSSFCellENC0DING_UTF_16 ) csetCellValue( 1 2 3 )

usar algunas foacutermulas avanza una fila

rownum++ r = wscreateRow(rownum)

crear foacutermulas

for (short cellnum = (short) 0 cellnum lt 6 cellnum += 2)

produce SUMAS para las columnas apropiadas int column= 65+cellnum char columnLabel=(char)column String formula=SUM(M+columnLabel+1+columnLabel+10) c = rcreateCell(cellnum) csetCellStyle(csl) csetCellFormula(formula)

escribe el libro a la salida y cerramos el archivo

wbwrite(out) outcioacutese ( )

Para ejecutar este coacutedigo primero debe descargar la uacuteltima versioacuten del archishyvo binario POI y colocar el archivo principal jar del POI (poi-20-final-20040126jar en este caso) en la ruta de clases dependiendo de la plataforma en la que lo esteacute ejecutando Una vez que lo ejecute no necesitaraacute argumentos y crearaacute un uacutenico archivo llamado zingotxls Si abre este archivo veraacute una hoja de caacutelculo como la que se muestra en la figura 828 (figura 829 si estaacute usando un Macintosh)

La loacutegica del ejemplo 87 es difiacutecilmente un modelo ejemplar de coacutemo crear una hoja de caacutelculo pero muestra la funcionalidad baacutesica necesaria para crear nuevas hojas celdas y formulas

312 Excel Los mejores trucos

l IJM

42 J

crosoft Excel - zingotKls IacuteSommamm^m

Archivo Edicioacuten Ver Insertar Formato

J d ^ _J J JL

Arial - 10

1 2 3 4 5 6 7 bull

8 9 10 11 12

13 I 14 15 16

17

18 19 20 H 4

Listo

C13 - i

A B 0 Prueba

101 i 202 Prueba 303 1 bdquo j 404 Prueba 505 1 3 606 Prueba 7 0 7 i bull

808 Prueba 909 -

4545 d

bull H Hoja de prueba

- [ N | ^ S iexcl

=SUMA(C1C10)

C | D 202 Prueba

1212 bull J

2222 Prueba 3232 1 2 i 4242 Prueba 5252 1 -6262 Prueba 7272 1 8282 Prueba 9292 1 I

MAl

B i l l H f t H H H H I Herramientas Datos

-3 Iacute W

| ^ ^ ^ | o

E F 4 04 Prueba

1414 1 2 1 2424 Prueba 3434 1 2

4444 Prueba 5454 1 2 6464 Prueba 7474 i J 8484 Prueba 9494 i j

4949

W ^ sect r ^ -jgix]|

Ventana l - - firaquo X

ffi 4 S - i l iacutel iexcld ltiacutegt 1 0 0 V 1

ooo euro l bdquodeg8 iexcls iexcl^ - ^ ^ i ^ y

G H 1 J T

bull 1

NUM

Figura 828 Hoja de caacutelculo creada a partir de un programa Java para Windows de Excel

la versioacuten

o 1

1 4

h

8 9

10

11 1

13 14

15

16

A B 0 Test

101 202 Test 303

404 Test

IacuteJUD

606 Test

707

808 Test

309

4545

Testsheet

C

202

12

32

42

62

82

32

12

32

42

62 7 1

82

32

4747

l0V5

Test

Test

T e i t

Test

Test

E F

404 Test

1414 2424 Test 3434

4444 Test 5454

6464 Test

7474

8484 Test 3494

4949

6

Figura 829 Hoja de caacutelculo creada a partir de un programa Java para la versioacuten Macintosh de Excel

8 Conectando Excel con el mundo 313

Si utiliza esto para construir hojas de caacutelculo para sus propias aplicaciones seguramente reemplazaraacute los bucles con referencias a las estructuras de datos que esteacute presentando con lo que los archivos de destinos eran maacutes loacutegicos y probablemente variaraacuten dependiendo de los datos y desearaacute sacar ventaja de las funciones de las que se muestran en este ejemplo

Otra caracteriacutestica de POI que es importante destacar si va a generar hojas de caacutelculo que van a formar parte de un sitio web dinaacutemico Puede combinar POI con Cocoon un marco de trabajo para Java tambieacuten de Apache que utiliza doshycumentos XML y otras fuentes para generar contenidos accesibles a traveacutes de un explorador de Internet Puede ver un artiacuteculo que proporciona una demostracioacuten y todos los detalles para hacer esto en la direccioacuten h t tp wwwxml eompuba 20030122cocoon-excelhtml

Glosario

Aplicacioacuten

Es otro teacutermino para denominar a un programa Excel es una aplicacioacuten aunshyque algunas personas lo llaman aplicacioacuten de hojas de caacutelculo

Argumentos

Es la informacioacuten que una foacutermula o funcioacuten puede requerir para devolver un valor La mayoriacutea de funciones de Excel requieren de argumentos para poder ser ejecutadas Los argumentos se encierran entre pareacutentesis y estaacuten separados por comas

Asistente

Conjunto de pantallas utilizadas para asistir al usuario a lo largo de una serie de pasos

Barra de comandos

Es uno de los muchos objetos de Excel utilizados para albergar elementos de menuacute La barra de menuacutes de una hoja de caacutelculo es una barra de comandos que contiene los elementos de menuacute Archivo Edicioacuten Ver Insertar etc

Barra de herramientas Formularios

Barra de herramientas utilizada para almacenar los controles que estaacuten inshycluidos dentro de Excel (no los controles ActiveX)

316 Excel Los mejores trucos

Boolean

Es el significado matemaacutetico de expresar sentencias loacutegicas Un valor de este tipo siempre seraacute Verdadero o Falso

Bucle

Ejecucioacuten continua de una o maacutes liacuteneas de coacutedigo VBA hasta que una condicioacuten se cumpla o el bucle termine

Bug

Es un error en el coacutedigo Por desgracia algunos de estos errores pueden ser indetectables por las pruebas maacutes exhaustivas y por tanto son difiacuteciles de evitar

Cadena

Secuencia lineal de caracteres (por ejemplo la palabra Coche es una cadena de caracteres alfanumeacutericos)

Complemento

Es un libro guardado con la extensioacuten XLA Se abre como un libro oculto cuanshydo es instalado a traveacutes de la opcioacuten HerramientasgtComplementos Los compleshymentos ofrecen funcionalidad antildeadida a Excel

Constante

Es un elemento que representa un valor que no cambia

Contiguo

Es un rango de celdas en el que los liacutemites de todas las celdas estaacuten conectados sin espacios entre ellos Por ejemplo Al C20 es un rango contiguo

Controles ActiveX

Objetos totalmente programables que pueden ser utilizados para ayudar a pershysonalizar las aplicaciones En Excel se incluyen algunos tan comunes como el botoacuten de comando el botoacuten de opcioacuten etc

Cuadro de controles

Es una barra de herramientas que contiene controles ActiveX (veacutease Controles ActiveX)

Glosario 317

Cuadro de diaacutelogo Es una ventana que solicita informacioacuten al usuario como por ejemplo el cuashy

dro de diaacutelogo Abrir

Depuracioacuten

Es el proceso de eliminar todos los posibles errores en el coacutedigo

Editor de Visual Basic (VBE)

Tambieacuten conocido como entorno de Visual Basic Es un interfaz dentro de Excel que permite a los usuarios acceden a todos los elementos pertenecientes a VBA

Error de ejecucioacuten

Error que se produce dentro del coacutedigo VBA y que ocurre mientras que eacuteste se ejecuta La mayoriacutea de este tipo de errores vienen acompantildeados por un nuacutemero que sirve para ayudar en la depuracioacuten

Evento

Es una llamada desde Excel a un cierto coacutedigo para indicar que ha ocurrido algo Por ejemplo un clic de ratoacuten o cerrarabrir un libro son eventos reportados por Excel

Explorador de proyectos

Ventana dentro del Editor de Visual Basic en la que se pueden ver todos los objetos que pertenecen a un libro especiacutefico

Foacutermula

Una secuencia de valores referencias a celdas nombres funciones u operadoshyres situados dentro de una celda y que producen un nuevo valor Todas las foacutermushylas de Excel comienzan con el signo =

Formulario de usuario

Objeto de Excel que puede ser utilizado para albergar controles ActiveX Los formularios de usuario se pueden insertar y modificar solamente dentro de VBE

Funcioacuten

Un tipo de procedimiento (veacutease Procedimiento) que devuelve un valor Excel dispone de funciones incorporadas como por ejemplo la funcioacuten SUMA De todas

318 Excel Los mejores trucos

formas el usuario puede crear sus propias funciones (veacutease Funcioacuten definida por el usuario)

Funcioacuten definida por el usuario

Funcioacuten (veacutease Funcioacuten) escrita en coacutedigo VBA especiacuteficamente para devolver un valor basaacutendose en diferentes meacutetodos de caacutelculo

Hoja

Teacutermino geneacuterico utilizado para representar un hoja de caacutelculo hoja de graacutefico hoja de macro

Hoja de caacutelculo

Uno de los objetos fundamentales de Excel en el que se encuentran las celdas Todos los libros de Excel deben tener al menos una hoja de caacutelculo y al menos una de ellas debe estar visible La uacutenica limitacioacuten al nuacutemero de hojas de caacutelculo que se pueden tener abiertas es la memoria del ordenador

Hojas de caacutelculo

Aplicacioacuten de software o programa que permiten introducir texto nuacutemeros y funciones en una matriz de celdas individuales

Libro

Contenedor para una o maacutes hojas de caacutelculo Cada archivo xls representa un libro de Excel

Macro

Una accioacuten o conjunto de acciones utilizadas para automatizar tareas Excel permite grabar acciones y utilizarlas posteriormente como macros

Meacutetodo

Un procedimiento que actuacutea sobre un objeto

Moacutedulo

Una unidad auto-contenida en la que el coacutedigo VBA se escribe y se almacena

Moacutedulo privado Moacutedulo utilizado especiacuteficamente para un objeto como pueda ser un libro una

hoja o un formulario del usuario

Glosario 319

No contiguo

Rango de celdas en el que los liacutemites de alguna o todas las celdas no estaacuten conectados Por ejemplo el rango Al C20 E10F100 representa un rango no conshytiguo

Nombre

Teacutermino que puede ser aplicado a constantes rango de celdas o variables

Objeto

Componente de una aplicacioacuten (veacutease Aplicacioacuten) como una hoja de caacutelculo una celda o un graacutefico Existen maacutes de 100 objetos disponibles dentro de Excel y resultan fundamentales a la hora de programar con VBA

Operadores

Siacutembolo matemaacutetico que instruye a una foacutermula o funcioacuten para que realice una cierta tarea Por ejemplo el operador + indica la foacutermula o la funcioacuten que debe sumar

Pareacutentesis

Los pareacutentesis se utilizan para indicar agrupaciones en matemaacuteticas En Excel siempre debe haber un pareacutentesis de cierre por cada pareacutentesis de apertura

Plantilla

Esquema predefinido utilizado como base estaacutendar para luego hacer modificashyciones y crear un hoja de caacutelculo

Procedimiento

Secuencia de instrucciones ejecutadas como un conjunto y que tienen un nomshybre Por ejemplo f u n e t i o n y sub son tipos de procedimientos (veacutease Funcioacuten y Sub)

Propiedad

Atributo con nombre perteneciente a un objeto (veacutease Objeto) Por ejemplo la direccioacuten de una celda especiacutefica es una propiedad de la celda o del objeto rango

Rango

Aacuterea de una o maacutes celdas ya sean contiguas o no

320 Excel Los mejores trucos

Sub

Tipo de procedimiento que no devuelve ninguacuten valor (veacutease Procedimiento) Este tipo de procedimientos se utilizan normalmente para gestionar eventos

Variables

Elemento con nombre que almacena un valor y que puede ser cambiado duranshyte su uso

Visual Basic for Applications (VBA)

El lenguaje estaacutendar de macros utilizado en la mayoriacutea de los productos de Office La palabra Applications representa a cualquiera de las aplicaciones de Office en las que es utilizado el coacutedigo como por ejemplo Excel Este lenguaje es un derivado de Visual Basic que a su vez es un derivado del lenguaje Basic La diferencia fundamental entre estos dos lenguajes es que VBA soacutelo puede ser utilishyzado dentro de la aplicacioacuten que lo contiene normalmente una perteneciente a la familia Office

Page 2: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas

Contenido

Introduccioacuten 17

iquestPor queacute los mejores trucos de Excel 17

Coacutemo obtener y utilizar los trucos 18

Coacutemo utilizar este libro 18

Coacutemo estaacute organizado este libro 19

Usuarios de Windows y Macintosh 20

Convenciones utilizadas en este libro 21

Capiacutetulo 1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 23

La regla 8020 23 Trucos sobre la estructuracioacuten 24 Trucos sobre el formato 24 Trucos sobre foacutermulas 25

1 Crear una vista personal de los libros de Excel 27

2 Introducir datos en varias hojas de caacutelculo simultaacuteneamente 30 Agrupar hojas de caacutelculo manualmente 30 Agrupar hojas de caacutelculo automaacuteticamente 31

3 Impedir que los usuarios realizan ciertas acciones 33 Impedir el comando Guardar como en un libro de Excel 33 Impedir que los usuarios impriman un libro de Excel 36

10 Contenido

Impedir que los usuarios inserten maacutes hojas de caacutelculo 36

4 Impedir confirmaciones innecesarias 37

Activar las macros cuando no se tenga ninguna 37

Mensajes de confirmacioacuten para guardar cambios que no se han realizado 38

Impedir los avisos de Excel para macros grabadas 39

5 Ocul tar hojas para que no puedan ser mos t r adas 41

6 Personalizar el cuadro de diaacutelogo Plantillas y el libro predeterminado 42

Crear su propia pestantildea de plantillas 43 Utilizar un libro personalizado de forma predeterminada 43

7 Crear un iacutendice de hojas en el libro 45

8 Limitar el r ango de desplazamiento de la hoja de caacutelculo 47

9 Bloquear y proteger celdas que contienen foacute rmulas 51

10 Encontrar datos duplicados ut i l izando el f o rma to condicional 54

1 1 Asociar ba r ra s de he r r amien ta s personal izadas a un libro

en par t icular 56

12 Burlar el gestor de referencias relativas de Excel 58

13 Qui tar viacutenculos fantasma en un libro 58

14 Reducir un libro que estaacute h inchado 61

Eliminar formatos superfluos 62

Puesta a punto de los oriacutegenes de datos 63 Limpiar libros corruptos 63

15 Extraer datos de un libro c o r r u p t o 64

Si no puede abrir un libro 64

Si no puede abrir el archivo 65

Capiacutetulo 2 Trucos sobre las caracteriacutesticas incorporadas en Excel 69

16 Validar datos en base a u n a lista s i tuada en o t ra hoja 69

Meacutetodo 1 Rangos con nombre 69

Meacutetodo 2 La funcioacuten INDIRECTO 70

Ventajas y desventajas de ambos meacutetodos 71

17 Controlar el f o rma to condicional con casillas de verificacioacuten 71

Configurar casillas de verificacioacuten para formato condicional 71

Activar o desactivar el resaltado de los nuacutemeros 72

18 Identificar foacute rmulas con el f o r m a t o condicional 75

19 Contar o s u m a r celdas que se ajustan al criterio del fo rmato condicional 76

Una alternativa 77

20 Resaltar Filas o co lumnas impares 78

Contenido 11

21 Crear efectos en 3D en tablas o celdas 80 Utilizar un efecto 3D en una tabla de datos 81

22 Activar y desactivar el formato condicional y la validacioacuten de datos con una casilla de verificacioacuten 82

2 3 Admitir muacuteltiples listas en un cuadro de lista desplegable 84

24 Crear listas de validacioacuten que cambien en base a la seleccioacuten realizada

en otra lista 86

25 Forzar la validacioacuten de datos para hacer referencia a una lista

en otra hoja 88 Meacutetodo 1 Rangos con nombre 88 Meacutetodo 2 La funcioacuten INDIRECTO 88 Ventajas y desventajas de cada meacutetodo 89

2 6 Utilizar Reemplazar para eliminar caracteres no deseados 90 27 Convertir nuacutemeros de texto en nuacutemeros reales 90

28 Personalizar los comentarios de las celdas 92

29 Ordenar maacutes de tres columnas 94

30 Ordenacioacuten aleatoria 95

31 Manipular datos con el filtro avanzado 97 32 Crear formatos de nuacutemero personalizados 101

33 Antildeadir maacutes niveles de Deshacer a Excel 107

34 Crear listas personalizadas 107 35 Subtotales en negritas de Excel 108

El truco sobre el truco 110 36 Convertir las foacutermulas y funciones de Excel a valores 111

Utilizar Pegado especial 111 Utilizar Copiar aquiacute soacutelo valores 111 Utilizar una macro 112

3 7 Antildeadir datos automaacuteticamente a una lista de validacioacuten 113 38 Trucar las caracteriacutesticas de fecha y hora de Excel 116

Sumar maacutes allaacute de las 24 horas 116 Caacutelculos de fecha y hora 117 Horas y fechas reales 119 iquestUn fallo de fechas 119

Capiacutetulo 3 Trucos sobre nombres 123

39 Usar direcciones de datos por el nombre 123 40 Utilizar el mismo nombre para rangos en diferentes hojas de caacutelculo 124

12 Contenido

4 1 Crear funciones personal izadas ut i l izando nombres 127

4 2 Crear rangos que se expandan y cont ra igan 129

4 3 Anidar r angos dinaacutemicos pa ra obtener u n a f l ex ib i l idad m aacute x i m a 136

44 Identificar r angos con n o m b r e en u n a hoja de caacutelculo 139

Meacutetodo 1 139

Meacutetodo 2 141

Capiacutetulo 4 Trucos sobre tablas dinaacutemicas 143

4 5 Tablas dinaacutemicas un t r u c o en s iacute m i s m a s 143

iquestPor queacute se les llama tablas dinaacutemicas 144

iquestPara queacute cosas resultan buenas las tablas dinaacutemicas 144

iquestPor queacute utilizar tablas dinaacutemicas cuando las hojas de caacutelculo ya ofrecen

muchas funciones de anaacutelisis 145

Los graacuteficos dinaacutemicos como extensioacuten de las tablas dinaacutemicas 145

Crear tablas y listas para ser utilizadas en tablas dinaacutemicas 145

El Asistente para tablas dinaacutemicas y graacuteficos dinaacutemicos 147

46 Compar t i r tablas dinaacutemicas pero no sus datos 148

4 7 A u t o m a t i z a r la creacioacuten de tablas dinaacutemicas 150

4 8 Mover los totales finales de u n a tabla dinaacutemica 153

49 Utilizar de fo rma efectiva datos de otro libro d inaacutemicamente 154

Capiacutetulo 5 Trucos sobre graacuteficos 159

50 Separar u n a porcioacuten de un graacutefico circular 159

5 1 Crear dos conjuntos de porciones en un uacutenico graacutefico circular 161

52 Crear graacuteficos que se ajusten a los datos 163

Dibujar los uacuteltimos x valores correspondientes a las lecturas 166

5 3 In terac tuar con los graacuteficos ut i l izando controles personal izados 166

Utilizar un rango dinaacutemico con nombre vinculado a una barra

de desplazamiento 167 Utilizar un rango dinaacutemico con nombre vinculado a un cuadro de lista

desplegable 169

54 Tres fo rmas raacutepidas para actual izar los graacuteficos 170

Utilizar arrastrar y colocar 170

Utilizar la barra de foacutermulas 171

Arrastrar el aacuterea del borde 174

55 Crear un simple graacutefico de t ipo t e r m oacute m e t r o 175

56 Crear un graacutefico de c o l u m n a s con anchos y altos variables 178

Contenido 13

5 7 Crear un graacutefico de tipo velociacutemetro 182 58 Vincular los elementos de texto de un graacutefico a una celda 188 59 Trucar los datos de un graacutefico de forma que no se dibujen las celdas

en blanco 189 Ocultar filas y columnas 190

Capiacutetulo 6 Trucos sobre foacutermulas y funciones 193

60 Antildeadir un texto descriptivo a las foacutermulas 193

61 Mover foacutermulas relativas sin cambiar las referencias 194

62 Comparar dos rangos de Excel 195 Meacutetodo 1 Utilizar Verdadero o Falso 195 Meacutetodo 2 Utilizar el formato condicional 196

63 Rellenar todas las celdas en blanco en una lista 197 Meacutetodo 1 Rellenar las celdas en blanco mediante una foacutermula 198 Meacutetodo 2 Rellenar las celdas en blanco a traveacutes de una macro 199

64 Hacer que las foacutermulas se incrementen por filas cuando las copie a lo largo de las columnas 200

65 Convertir fechas en fechas con formato de Excel 202 66 Sumar o contar celdas evitando valores de error 203 67 Reducir el impacto de las funciones volaacutetiles a la hora de recalcular 205 68 Contar solamente una aparicioacuten de cada entrada de una lista 206 69 Sumar cada dos tres o cuatro filas o celdas 207 70 Encontrar la eneacutesima aparicioacuten de un valor 209 71 Hacer que la funcioacuten subtotal de Excel sea dinaacutemica 212

72 Antildeadir extensiones de fecha 214

73 Convertir nuacutemeros con signo negativo a la derecha a nuacutemeros

de Excel 216 74 Mostrar valores de hora negativos 218

Meacutetodo 1 Cambiar el sistema de fecha predeterminado de Excel 218 Meacutetodo 2 Utilizar la funcioacuten TEXTO 219 Meacutetodo 3 Utilizar un formato personalizado 219

75 Utilizar la funcioacuten BUSCARV a lo largo de muacuteltiples tablas 220 76 Mostrar el tiempo total como diacuteas horas y minutos 222 77 Determinar el nuacutemero de diacuteas especificados que aparecen

en cualquier mes 223 78 Construir mega foacutermulas 225

14 Contenido

79 Trucar mega foacutermulas que hagan referencia a otros libros 227 80 Trucar una de las funciones de base de datos de Excel para que haga

el trabajo de muchas funciones 228

Capiacutetulo 7 Trucos sobre macros 237

81 Acelerar el coacutedigo y eliminar los parpadeos de la pantalla 237

82 Ejecutar una macro a una determinada hora 238 83 Utilizar CodeName para hacer referencias a hojas en los libros

de Excel 240

84 Conectar de forma faacutecil botones a macros 241

85 Crear una ventana de presentacioacuten para un libro 243

86 Mostrar un mensaje de Por favor espere 246 87 Hacer que una celda quede marcada o desmarcada al seleccionarla 247

88 Contar o sumar celdas que tengan un color de relleno especiacutefico 248 89 Antildeadir el control Calendario de Microsoft Excel a cualquier libro 250 90 Proteger por contrasentildea y desproteger todas las hojas de caacutelculo

raacutepidamente 252

91 Recuperar el nombre y la ruta de un libro de Excel 255 92 Ir maacutes allaacute del liacutemite de tres criterios del formato condicional 256

93 Ejecutar procedimientos en hojas protegidas 258 94 Distribuir macros 260

Capiacutetulo 8 Conectando Excel con el mundo 267

95 Cargar un documento XML en Excel 267

96 Guardar en SpreadsheetML y extraer datos 278

97 Crear hojas de caacutelculo utilizando SpreadsheetML 288 98 Importar datos directamente en Excel 293

Ejecutar el truco 295 El truco del truco 296

Hacer que la consulta sea dinaacutemica 296 Utilizar datos diferentes 297 Resultados con graacuteficos 300

99 Acceder a servicios Web SOAP desde Excel 301

100Crear hojas de caacutelculo Excel utilizando otros entornos 307 SpreadsheetWriteExceI 307 Spreadsheet ParseExcel 307

Contenido 15

Jakarta POI 307

JExcelApi 307

Glosario 315

iacutendice alfabeacutetico 323

CAPIacuteTULO 1

Reducir la frustracioacuten en los libros y en las hojas

de caacutelculo Trucos 1 a 15

Los usuarios de Excel saben que los libros son un concepto m u y potente Pero igualmente muchos usuarios son conscientes que trabajar con estos libros pueshyde provocar un gran nuacutemero de inconvenientes Los trucos de este capiacutetulo le ayudaraacuten a evitar algunos de esos inconvenientes a la vez que sacaraacuten provecho de algunos meacutetodos maacutes efectivos pero en ocasiones desconocidos con los que puede controlar sus libros de trabajo

Antes de profundizar en dichos trucos merece la pena echar un vistazo raacutepishydo a algunos conceptos baacutesicos que haraacuten mucho maacutes sencillo crear trucos efecshytivos Excel es una aplicacioacuten m u y potente de hojas de caacutelculo con la que se pueden hacer cosas increiacutebles Por desgracia muchas personas disentildean sus hojas de caacutelculo de Excel con poca previsioacuten haciendo difiacutecil que puedan reutilizarlas o actualizarlas En este apartado proporcionaremos numerosos trucos que puede utilizar para asegurarse de que crea hojas de caacutelculo lo maacutes eficaces posibles

La regla 8020

Quizaacute la regla maacutes importante a seguir cuando se disentildea una hoja de caacutelculo es tener una visioacuten a largo plazo y nunca presuponer que no necesitaraacute antildeadir maacutes datos o foacutermulas a la hoja de caacutelculo ya que la probabilidad de que ocurra esto es alta Teniendo esto en mente deberaacute dedicar alrededor del 80 de su tiemshypo en planificar la hoja de caacutelculo y alrededor del 20 en implementarla Aunque esto pueda parecer extremadamente ineficiente a corto plazo podemos asegurar que a largo plazo seraacute una gran ventaja ademaacutes de que despueacutes de haber hecho varias planificaciones luego seraacute mucho maacutes sencillo Recuerde que las hojas de

24 Excel Los mejores trucos

caacutelculo estaacuten pensadas para hacer sencilla la obtencioacuten de la informacioacuten por parte de los usuarios no soacutelo para presentarla y que tenga buen aspecto

Trucos sobre la estructuracioacuten

Sin duda el fallo nuacutemero uno que cometen muchos usuarios de Excel cuando crean sus hojas de caacutelculo es que no configuran y organizan la distribucioacuten de la informacioacuten en la manera en la que Excel y sus caracteriacutesticas esperan A contishynuacioacuten y sin ninguna orden en particular mostramos algunos de los fallos maacutes comunes que cometen los usuarios cuando organizan una hoja de caacutelculo

bull Dispersioacuten innecesaria de los datos a lo largo de diferentes libros

bull Dispersioacuten innecesaria de los datos a lo largo de diferentes hojas de caacutelculo

bull Dispersioacuten innecesaria de los datos a lo largo de diferentes tablas

bull Tener filas y columnas en blanco en tablas con datos

bull Dejar celdas vaciacuteas para datos repetidos

Los tres primeros puntos de la lista tienen que ver con una cosa siempre debe intentar mantener los datos relacionados en una tabla continua Una y otra vez hemos podido ver hojas de caacutelculo que no siguen esta simple regla y por tanto estaacuten limitadas en su capacidad para aprovechar por completo algunas de las funciones maacutes potentes de Excel incluyendo las tablas dinaacutemicas los subtotales y las foacutermulas En dichos escenarios soacutelo podraacute utilizar estas funciones aproveshychaacutendolas por completo cuando organice sus datos en una tabla m u y sencilla

No es una mera coincidencia que las hojas de caacutelculo de Excel puedan albergar 65536 filas pero solamente 256 columnas Teniendo esto en mente deberiacutea conshyfigurar las tablas con encabezados de columnas que vayan a lo largo de la primeshyra fila y los datos relacionados distribuidos de forma continua directamente debajo de los encabezados apropiados Si observa que estaacute repitiendo el mismo dato a lo largo de dos o maacutes filas en una de esas columnas evite la tentacioacuten de omitir los datos repetidos utilizando celdas en blanco para indicar dicha repeticioacuten

Aseguacuterese de que los datos estaacuten ordenados siempre que sea posible Excel dispone de un excelente conjunto de foacutermulas de referencia algunas de las cuales requieren que los datos esteacuten ordenados de manera loacutegica Ademaacutes la ordenashycioacuten aceleraraacute tambieacuten el proceso de caacutelculo de muchas de las funciones

Trucos sobre el formato

Maacutes allaacute de la estructura los formatos tambieacuten pueden causar problemas Aunque una hoja de caacutelculo deberiacutea ser faacutecil de leer y seguir esto suele ser a costa

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 25

de la eficiencia Somos grandes creyentes de mantenerlo todo sencillo aunque muchas personas dedican grandes cantidades de tiempo a formatear sus hojas de caacutelculo Aunque no se den cuenta este tiempo frecuentemente suele ser a costa de la eficiencia La sobrecarga de formatos hacen que aumente el tamantildeo del libro y aunque eacuteste parezca una verdadera obra de arte puede parecerle horrible a otra persona Debe considerar la posibilidad de utilizar algunos colores univershysales para sus hojas de caacutelculo como puedan ser el negro el blanco y el gris

Siempre es una buena idea dejar al menos tres filas en blanco por encima de la tabla (al menos tres aunque es preferible dejar maacutes) Se pueden utilizar estas filas para insertar funciones de base de datos y de filtrado avanzado Muchas personas tambieacuten se preocupan por cambiar la alineacioacuten de las celdas De forma predeterminada los nuacutemeros en Excel se alinean a la derecha y los textos a la izquierda y realmente existen buenas razones para dejarlo asiacute Si empieza a camshybiar estos formatos resultaraacute que no podraacute saberse si el contenido de una celda es un texto o un nuacutemero Es m u y habitual encontrar gente que hace referencia a celdas que parecen nuacutemeros pero en realidad son texto Si cambia la alineacioacuten predeterminada conseguiraacute hacerse un liacuteo La uacutenica excepcioacuten a esta regla poshydriacutean ser los encabezados de las columnas

De formato texto a las celdas soacutelo cuando sea completamente necesario ya que todos los datos que se introduzcan en dichos celdas se convertiraacuten en texto incluso si lo que deseaba era introducir un nuacutemero una fecha Peor auacuten cualshyquier celda que albergue una foacutermula que haga referencia a una celda con forshymato texto tambieacuten quedaraacute formatearla como texto Y normalmente no desearaacute que las celdas con foacutermulas esteacuten formateadas asiacute

Tambieacuten pueden crear problemas las celdas combinadas La base de datos de conocimientos de Microsoft estaacute repleta de problemas frecuentes que se encuenshyt ran en relacioacuten a las celdas combinadas Una buena alternativa es utilizar la opcioacuten Centrar en la seleccioacuten que se encuentra en el cuadro de lista desplegable Horizontal de la pestantildea Alineacioacuten del cuadro de diaacutelogo Formato de celdas

Trucos sobre foacutermulas

Otro de los grandes errores que a menudo cometen los usuarios con las foacutershymulas de Excel es hacer referencia a columnas enteras Esto hace que Excel tenga que examinar en potencia miles sino millones de celdas que de otra manera poshydriacutea ignorar

Tomemos por ejemplo un caso en el que tiene una tabla con datos que se distribuyen desde la celda Al a la celda H1000 Puede decidir que desea utilizar una o maacutes foacutermulas de referencia de Excel para extraer la informacioacuten requerida Dado que la tabla continuaraacute creciendo (a medida que antildeadan nuevos datos) es habitual hacer referencia a toda la tabla que incorpora todas las filas En otras

26 Excel Los mejores trucos

palabras la referencia seraacute algo parecido a AH o posiblemente Al H65536 Puede utilizar esta referencia de forma que cuando se antildeaden nuevos datos a la tabla seraacuten referenciados en las foacutermulas automaacuteticamente Esto resulta un haacutebito m u y malo y siempre deberiacutea evitarlo Todaviacutea puede eliminar la constante neceshysidad de actualizar las referencias de las foacutermulas al incorporar nuevos datos que se antildeaden a la tabla utilizando nombres de rangos dinaacutemicos que veremos en uno de los trucos que presentaremos maacutes adelante

Otro problema tiacutepico que surge en las hojas de caacutelculo malamente disentildeadas es el recaacutelculo tremendamente lento Mucha gente sugiere cambiar el modo de caacutelculo a manual a traveacutes de la opcioacuten que aparece en la pestantildea Calcular del cuadro de diaacutelogo Opciones

Sin embargo normalmente es un mal consejo que puede provocar numeroshysos problemas Una hoja de caacutelculo son todas las foacutermulas y caacutelculos asiacute como los resultados que producen Si utiliza una hoja de caacutelculo con el modo de caacutelculo manual tarde o temprano leeraacute alguna informacioacuten que no haya sido actualizashyda Puede que las foacutermulas esteacuten reflejando valores antiguos en vez de los actuashylizados porque cuando se utiliza el modo de caacutelculo manual debe forzar a Excel a que los realice pulsando la tecla F9

iexclPero es m u y sencillo olvidarse de hacer esto Pieacutenselo de esta forma si los frenos de su coche se estuviesen desgastando tanto que hiciesen que fuera maacutes lento iquestdesconectariacutea el pedal del freno y utilizariacutea el freno de mano en vez de intentar arreglar el problema Muchos de nosotros no hariacuteamos algo asiacute pero otras personas no tienen ninguacuten inconveniente en poner sus hojas de caacutelculo en modo de caacutelculo manual Si tiene la necesidad de utilizar la hoja de caacutelculo en modo manual entonces tiene un problema de disentildeo

Las foacutermulas matriciales son otra de las causas comunes de los problemas Estaacuten pensadas para hacer referencia a celdas simples pero si los utiliza para hacer referencia a grandes rangos haacutegalo lo menos posible Cuando un gran nuacutemero de colecciones hacen referencia a rangos extensos el rendimiento del libro se veraacute afectado a veces hasta el punto en el que ni siquiera se puede utilishyzar y tiene que cambiar a modo de caacutelculo manual

Las funciones de base de datos de Excel proporcionan muchas alternativas al uso de foacutermulas matriciales como veremos maacutes adelante en un truco Ademaacutes la ayuda de Excel ofrece algunos estupendos ejemplos de coacutemo utilizar estas foacutershymulas en grandes tablas de datos para devolver ciertos resultados en base a muacutelshytiples criterios

Otra alternativa que a menudo es pasada por alto es la utilizacioacuten de las tashyblas dinaacutemicas de Excel que veremos en el capiacutetulo 4 Aunque las tablas dinaacutemishycas puedan parecer sobrecogedoras la primera vez que se ven le recomendamos encarecidamente que se familiarice con esta potente funcioacuten de Excel ya que cuando sea un maestro se preguntaraacute coacutemo pudo sobrevivir sin ellas

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 27

Al final del diacutea sino recuerda nada maacutes acerca del disentildeo de la hoja de caacutelculo recuerde que Excel funciona mucho mejor cuando todos los datos relacionados estaacuten distribuidos en una tabla continua Eso haraacute que la utilizacioacuten de los t rushycos sea mucho maacutes sencilla

Crear una vista personal de los libros de Excel Excel le permite mostrar varios libros abiertos simultaacuteneamente y por tanto presentarlos en una vista personalizada organizada en diferentes ventanas Entonces puede guardar el espacio de trabajo como un archivo xlw y utilizarlo posteriormente cuando lo desee

A veces trabajando con Excel puede que necesite tener maacutes de un libro abiershyto en la pantalla lo que permite utilizar visualizar los datos de muacuteltiples libros de forma faacutecil y raacutepida

En los siguientes paacuterrafos describiremos coacutemo hacer esto de una forma orgashynizada y ordenada Abra todos los libros que desee utilizar

Para abrir maacutes de un libro a la vez seleccione la opcioacuten ArchivogtAbrir mantenga pulsada la tecla Control mientras selecciona los libros que

w desea abrir y finalmente baga clic en el botoacuten Abrir

Desde cualquiera de los libros de Excel (no importa cuaacutel) seleccione la opcioacuten de menuacute VentanagtOrganizar Si estaacute activada la casilla de verificacioacuten Ventanas del libro activo desactiacutevela y luego seleccione la organizacioacuten que prefiera Para terminar haga clic en el botoacuten Aceptar

Si eligioacute la opcioacuten Mosaico se le presentaraacuten los libros como un mosaico en la pantalla tal y como puede verse en la figura 11

Si selecciona la opcioacuten Horizontal se distribuiraacuten los libros de arriba a abajo ocupando todo el ancho de la pantalla tal y como se muestra en la figura 12

Si eligioacute la opcioacuten Vertical se distribuiraacuten los libros uno al lado del otro de izquierda a derecha como puede verse en la figura 13

Por uacuteltimo como muestra la figura 14 seleccionando la opcioacuten Cascada se mostraraacuten las ventanas unas encima de otras desde la parte superior izquierda a la parte inferior derecha Una vez que los libros se muestran de la forma que maacutes prefiera puede copiar pegar arrastrar etc informacioacuten entre ellos faacutecilmente

Si cree que maacutes adelante querriacutea volver a utilizar esta vista que acaba de crear puede guardar la configuracioacuten de la distribucioacuten de las ventanas como un espashycio de t r aba jo Para ello s i m p l e m e n t e seleccione la opc ioacuten de m e n uacute ArchivogtGuardar aacuterea de trabajo introduzca el nombre de archivo en el cuadro

28 Excel Los mejores trucos

de diaacutelogo correspondiente y haga clic en el botoacuten Guardar Cuando graba un aacuterea de trabajo la extensioacuten del archivo seraacute xlw en vez de xls Para recuperar un aacuterea de trabajo de Excel a una ventana completa de uno de los libros en partishycular simplemente haga doble clic en la barra de tiacutetulo de la ventana corresponshydiente Tambieacuten puede hacer clic en el botoacuten de maximizar de cualquiera de las ventanas del aacuterea de trabajo Una vez que haya acabado puede cerrar los libros de Excel de la forma habitual

Figura 11 Cuatro libros abiertos en vista mosaico

Cuando necesite volver a abrir los mismos libros bastaraacute con abrir el archivo xlw con lo que maacutegicamente se mostraraacuten con la misma distribucioacuten con la que fueron guardados Si solamente necesita abrir uno de los libros haacutegalo de la forma habitual Cualquier modificacioacuten que haga en alguno de los libros que forman parte del aacuterea de trabajo se guardaraacute automaacuteticamente cuando cierre el aacuterea de trabajo como conjunto aunque tambieacuten puede guardar cada libro de forma individual

Si dedica una pequentildea parte de tiempo a configurar algunas vistas personalishyzadas para realizar tareas repetitivas que requieren de muacuteltiples libros abiertos encontraraacute que esas tareas seraacuten maacutes faacuteciles de gestionar Quizaacute decida utilizar diferentes vistas para diferentes tareas repetitivas dependiendo de cuaacutel sea la tarea o coacutemo se sienta ese diacutea

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 29

Figura 12 Cuatro libros en vista horizontal

Figura 13 Cuatro libros en vista vertical

30 Excel Los mejores trucos

TRUCO

Figura 14 Cuatro libros en vista cascada

Introducir datos en varias hojas de caacutelculo simultaacuteneamente Es muy comuacuten tener los mismos datos en varias hojas de caacutelculo simultaacuteneamente Puede utilizar la herramienta de Excel para agrupar de forma que los datos introducidos en una hoja se introduzcan automaacuteticamente en el resto de hojas al mismo tiempo Tambieacuten disponemos de una aproximacioacuten maacutes raacutepida y maacutes flexible para hacer esta tarea que requiere de un par de liacuteneas de coacutedigo de Visual Basic for Applications (VBA)

El mecanismo que incorpora Excel para hacer que los datos se introduzcan en muacuteltiples lugares al mismo tiempo es una funcioacuten llamada Grupo la cual funshyciona agrupando las hojas de caacutelculo de forma que todas esteacuten vinculadas con el libro de Excel

Agrupar hojas de caacutelculo manualmente

Para utilizar la funcioacuten Grupo manualmente simplemente haga clic en la hoja en la que va a introducir los datos y pulse la tecla Control (tecla Mayuacutes en

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 31

Macintosh) mientras hace clic en las pestantildeas de las hojas de caacutelculo en las que desea insertar simultaacuteneamente los datos Cuando introduzca datos en cualquieshyra de las celdas de la hoja de caacutelculo se introduciraacuten automaacuteticamente en el resto de hojas de caacutelculo agrupadas Misioacuten completada

Para desagrupar las hojas de caacutelculo bien seleccione una hoja de caacutelculo que no sea parte del grupo o bien haga clic con el botoacuten derecho del ratoacuten en cualshyquiera de las pestantildeas de las hojas de caacutelculo agrupadas y seleccione la opcioacuten Desagrupar hojas

Cuando las hojas de caacutelculo estaacuten agrupadas si echa un vistazo a la barra de tiacutetulo de Excel veraacute que aparece la palabra Grupo encerrada entre corchetes Esto le hace saber que todaviacutea tiene agrupadas las hojas de caacutelculo A menos que tenga vista de aacuteguila y una memoria de elefante es maacutes que probable que no se deacute cuenta o se olvide de que tiene agrupadas las hojas de caacutelculo Por tanto le sugerimos que las desagrupe tan pronto como haya terminado con lo que estuviese haciendo

Aunque este meacutetodo es faacutecil necesita que recuerde agrupar y desagrupar las hojas cuando necesite corriendo el riesgo de sobrescribir datos en cualquier otra hoja de caacutelculo si se olvida de desagruparlas Tambieacuten significa que se produciraacuten entradas de datos simultaacuteneas independientemente de la celda en la que esteacute sishytuado Por ejemplo quizaacute solamente desee introducir datos simultaacuteneamente cuando se encuentre en un cierto rango de celdas en particular

Agrupar hojas de caacutelculo automaacuteticamente

Puede evitar estos inconvenientes faacutecilmente utilizando un coacutedigo VBA m u y sencillo Para que pueda funcionar debe residir dentro del moacutedulo privado del objeto Sheet (Hoja) Para acceder raacutepidamente al moacutedulo privado haga clic con el botoacuten derecho del ratoacuten en la pestantildea con el nombre de la hoja y seleccione la opcioacuten Ver coacutedigo Entonces podraacute utilizar uno de los eventos de Excel para las hojas de caacutelculo los cuales ocurren dentro de la propia hoja de caacutelculo como puede ser cambiar una celda seleccionar un rango activar desactivar etc meshydiante dichos eventos podraacute mover el coacutedigo dentro del moacutedulo privado del objeshyto Sheet Lo primero que hay que hacer para que funcione el agrupamiento es dar nombre al rango de celdas que desea tener agrupadas de forma que los datos se introduzcan automaacuteticamente en el resto de hojas de caacutelculo Escriba este coacuteshydigo en el moacutedulo privado

Priacutevate Sub Worksheet_SelectionChange(ByVal Target As Range) If Not Intersect(Range(MiRango) Target) Is Nothing Then

32 Excel Los mejores trucos

Hoja5 se ha colocado primero a propoacutesito ya que seraacute bullla hoja activa desde la que trabajaremos

Sheets(Array(Hoja5 MHoja3 Hojal))Select Else

MeSelect End If

End Sub

En este coacutedigo hemos utilizado el rango cuyo nombre es MiRango pero puede cambiar este nombre por el que esteacute utilizando en su hoja de caacutelculo Tamshybieacuten deberaacute cambiar los tres nombres de hoja en el coacutedigo tal y como se muestra la figura 15 con aquellos nombres de hoja que desea agrupar Cuando haya terminado cierre la ventana de moacutedulo o bien pulse AltComando-Capara volshyver a la ventana principal de Excel

Figura 15 Coacutedigo para agrupar automaacuteticamente hojas de caacutelculo

Es importante resentildear que el primer nombre de hoja utilizado en el array debe ser el de la hoja que contiene el coacutedigo y por tanto la hoja de caacutelculo en la que se introduciraacuten los datos

Una vez que haya escrito el coacutedigo en el lugar adecuado cada vez que selecshycione cualquier celda de la hoja de caacutelculo el coacutedigo comprobaraacute si la celda que ha seleccionado (el objetivo) estaacute dentro del rango llamado MiRango Si es asiacute el coacutedigo agruparaacute automaacuteticamente las hojas de caacutelculo que desea agrupar Si por el contrario esto no es asiacute desagruparaacute las hojas simplemente activando la hoja en la que se encuentra La maravilla de este truco es que no hay necesidad de agrupar manualmente las hojas y por tanto correr el riesgo de olvidarse de

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 33

desagruparlas por lo que esta aproximacioacuten le ahorraraacute gran cantidad de tiemshypo y frustracioacuten Si desea que aparezcan los mismos datos en las otras hojas pero no en las mismas direcciones de celdas escriba el siguiente coacutedigo

Priacutevate Sub worksheet_Change(ByVal Target As Range) If Not Intersect(Range(MiRango) Target) Is Nothing Then

With Range(MiRango) Copy Destination=Sheets(Hoja3)Range(Al)

Copy Destination=Sheets(Hojal)Range(DIO) End With

End If End Sub

Este coacutedigo tambieacuten necesita estar incluido dentro del moacutedulo privado del obshyjeto Sheet Siga los pasos que describimos anteriormente en este mismo truco para poder llegar a dicho moacutedulo

Impedir que los usuarios realizan ciertas acciones Aunque Excel proporciona proteccioacuten general para los libros y hojas de caacutelculo esta caracteriacutestica no proporciona privilegios limitados a los usuarios a menos que utilice un truco

Se pueden gestionar las interacciones de los usuarios con las hojas de caacutelculo monitorizando y respondiendo a los eventos Los eventos como su nombre indishyca son acciones que ocurren a medida que se trabaja con los libros y las hojas de caacutelculo Algunos de los eventos maacutes comunes incluyen abrir un libro guardarlo y cerrarlo cuando el usuario desee Se le puede indicar a Excel que ejecute cierto coacutedigo Visual Basic cuando cualquiera de estos eventos se produzca

Los usuarios pueden saltarse todas estas protecciones si desactivan las macros por completo Si la seguridad estaacute establecida a nivel medio seraacuten notificados de que existen macros en el libro abierto dando la posibilidad de desactivarlas Un nivel de seguridad alto simplemente desactivaraacute las macros automaacuteticamente Por otro lado si las hojas de caacutelculo requieren del uso de macros es maacutes que probable que los usuarios desean tener las macros activadas Estos trucos son praacutecticos y no proporcionan una seguridad de datos que requiera de gran carga de trabajo

Impedir el comando Guardar como en un libro de Excel

Se puede especificar que cualquier libro de Excel sea guardado como soacutelo lecshytura activando la casilla de verificacioacuten Se recomienda soacutelo lectura que se en-

34 Excel Los mejores trucos

cuentra accediendo a la opcioacuten Opciones generales del cuadro de diaacutelogo Guarshydar Con esto se evita que un usuario pueda guardar cualquier cambio que haya realizado al archivo a menos que lo grabe con un nombre diferente o en una ubicacioacuten distinta

A veces sin embargo desearaacute impedir que los usuarios puedan guardar una copia del libro en otra carpeta con el mismo nombre de archivo o con cualquier otro En otras palabras lo que desea es que los usuarios soacutelo puedan guardar sobre el archivo existente y no crear otra copia del mismo Esto es particularshymente interesante cuando hay maacutes de una persona guardando los cambios en un libro de Excel porque no desea que haya diferentes copias de un mismo libro guardadas con el mismo nombre pero en carpetas diferentes

El evento Bef o r e S a v e que vamos a utilizar existe desde Excel 97 Como su propio nombre indica este evento se produce justamente antes de que un libro sea guardado permitieacutendole interactuar con el usuario mostrando una advershytencia e impidiendo que Excel continuar grabando

Antes de probar esto en su casa aseguacuterese de guardar su libro de Excel antes Si coloca este coacutedigo sin haber guardado los cambios antes ya no podraacute hacerlo

Para insertar el coacutedigo abra el libro de Excel haga clic con el botoacuten derecho del ratoacuten en el icono de Excel situado justo a la izquierda del menuacute Archivo y seleccione la opcioacuten Ver coacutedigo como puede verse en la figura 16

Figura 16 Menuacute de acceso raacutepido al moacutedulo privado del objeto Workbook

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 35

Figura 17 Coacutedigo una vez introducido en el moacutedulo privado (ThisWorkbook)

Pr iacuteva t e Sub workbook_BeforeSave(ByVal SaveAsUI As Boolean Cancel As Boolean) Dim lReply As Long

If SaveAsUI = True Then lReply = MsgBox(No tiene permiso para guardar este amp _

libro con otro nombre iquestDesea guardarlo con el mismo nombre vbQuestion + vbOKCancel)

Cancel = (lReply = vbCancel) If Cancel = False Then MeSave Cancel = True

End If End Sub

Vamos a probarlo Seleccione la opcioacuten ArchivogtGuardar y el libro se guardaraacute de forma normal Ahora intente seleccionar la opcioacuten ArchivogtGuardar como y

Este acceso raacutepido no estaacute disponible en Macintosh Tendraacute que abrir el Editor de Visual Basic pulsando Opcioacuten-Fll o bien seleccionando la opcioacuten de menuacute HerramientasgtMacrogtEditor Visual Basic Una vez en eacutel haga clic con el botoacuten derecho en ThisWorkbook que estaacute situado en la ventana de proyectos de la parte izquierda

Escriba el siguiente coacutedigo en VBE tal y como se muestra en la figura 17 y luego pulse AltComando-CLpara volver a la ventana principal de Excel

36 Excel Los mejores trucos

entonces veraacute un mensaje que le indica que no tiene permiso para guardar este libro con otro nombre diferente

Impedir que los usuarios impriman un libro de Excel

Quizaacute desee impedir que los usuarios puedan imprimir un libro para que lueshygo seguramente acabe en una papelera o tirado en un escritorio a la vista de todos Utilizando el evento Bef o r e P r i n t podemos impedir esto Introduzca el siguiente coacutedigo como hicimos anteriormente en el Editor de Visual Basic

Priacutevate Sub workbook_BeforePrint(Cancel As Boolean) Cancel = True MsgBox No puede imprimir este libro vblnformation

End Sub

Pulse AltComando-Q_cuando haya terminado de introducir el coacutedigo para guardarlo y volver a la ventana principal de Excel Ahora cada vez que los usuashyrios intenten imprimir este libro no podraacuten hacerlo La liacutenea de coacutedigo con la instruccioacuten MsgBox es opcional pero siempre es buena idea incluirla para que informe al usuario de que no moleste al departamento de Tecnologiacutea Interna diciendo que su programa no funciona

Si desea impedir que los usuarios impriman solamente algunas hojas del lishybro utilice este coacutedigo en vez del anterior

Private Sub workbook_BeforePrint(Cancel As Boolean) Select Case ActiveSheetNtildeame

Case Hojal Hoja2 Cancel = True MsgBox No puede imprimir esta hoja de este libro_

vblnformation End Select

End Sub

Observe que hemos especificado las hojas Hojal y Hoja2 como las que tienen prohibido ser impresas Por supuesto puede cambiar esos nombres por el de cualshyquier otra hoja que desee bloquear Tambieacuten puede antildeadir maacutes hojas a la lista simplemente escribiendo una seguida del nombre de la hoja entre dobles comishyllas Si soacutelo desea impedir la impresioacuten de una sola hoja incluya su nombre entre dobles comillas detraacutes de la sentencia Case y elimine la coma sobrante

Impedir que los usuarios inserten maacutes hojas de caacutelculo

Excel le permite proteger la estructura de un libro de forma que los usuarios no puedan eliminar hojas de caacutelculo reordenarlas cambiar sus nombres etc A

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 37

veces sin embargo desearaacute impedir simplemente que se puedan antildeadir nuevas hojas de caacutelculo permitiendo que se realicen el resto de acciones

El siguiente coacutedigo le permitiraacute hacer esto

Priacutevate Sub Workbook_NewSheet(ByVal Sh As Object) ApplicationDisplayAlerts = False

MsgBox No puede antildeadir nuevas hojas de caacutelculo a este libro_ vbInformation

ShDelete ApplicationDisplayAlerts = True End Sub

Este coacutedigo primeramente muestra el cuadro de diaacutelogo con el mensaje y lueshygo inmediatamente elimina la nueva hoja que se acaba de antildeadir una vez que el usuario acepta el mensaje La instruccioacuten Appl i c a t i oacute n Di s p l a y A l e r t s = F a l s e impide que Excel muestre la advertencia estaacutendar que pregunta al usuashyrio si realmente desea eliminar la hoja Con este coacutedigo los usuarios seraacuten incashypaces de antildeadir maacutes hojas de caacutelculo al libro

Otra forma de impedir que los usuarios antildeadan nuevas hojas de caacutelculo es seleccionar la opcioacuten HerramientasgtProtegergtProteger libro y luego activar la cashysilla de verificacioacuten Estructura Sin embargo como ya dijimos al principio de este truco el mecanismo de proteccioacuten de Excel es menos flexible y ademaacutes de impeshydir antildeadir nuevas hojas tambieacuten impediraacute otras muchas cosas

Impedir confirmaciones innecesarias A veces las interacciones de Excel puedan resultar pesadas siempre preguntando para pedir confirmacioacuten sobre acciones Quitemos estos mensajes y dejemos que Excel realice las acciones

El tipo de mensajes a los que nos referimos son aquellos que preguntan si se desean activar las macros (incluso cuando no hay ninguna) o los que nos preshyguntan si estamos seguros de que queremos eliminar un hoja de caacutelculo A conshytinuacioacuten mostramos coacutemo evitar estos tipos de mensajes

Activar las macros cuando no se tenga ninguna

La memoria de Excel es de acero cuando se t rata de recordar que ha grabado una macro en un libro Por desgracia Excel sigue recordando que se ha grabado una macro incluso si la ha eliminado utilizando la opcioacuten HerramientasgtMacrogt Macros (AltOpcioacuten-F8) Despueacutes de hacer esto si abre el libro de nuevo seguiraacute recibiendo un mensaje que le pregunta si desea activar las macros incluso aunshyque no haya ninguna que activar

38 Excel Los mejores trucos

Se le pedir confirmacioacuten para activar las macros solamente si el nivel de seguridad estaacute establecido en medio Si estaacute establecido en bajo las macros se activan directamente pero si estaacute establecido en alto estaacuten desactivadas automaacuteticamente

Cuando graba una macro Excel inserta un moacutedulo de Visual Basic que conshytendraacute los comandos y las funciones Por ello cuando se abre un libro Excel comprueba si existe alguacuten moacutedulo este vaciacuteo o no Cuando se eliminan las macros de un libro soacutelo se elimina el coacutedigo pero no el moacutedulo en siacute (es algo asiacute como beberse toda la leche pero dejarse el bote vaciacuteo dentro de la nevera) Para impedir que se muestren este tipo de mensajes innecesarios deberaacute eliminar tambieacuten el moacutedulo Asiacute es como puede hacerse esto Abra VBE seleccionando la opcioacuten HerramientasgtMacrogtEditor de Visual Basic (o pulsando A l t C o m a n d o - F l l ) y luego seleccionando la opcioacuten VergtExplorador de proyectos (en Macintosh la venshytana de proyectos siempre estaacute abierta por lo que no necesitaraacute abrir el explorashydor de proyectos) A continuacioacuten podraacute ver una ventana como la que se muestra en la figura 18

Figura 18 Moacutedulos del Explorador de proyectos con la carpeta Moacutedulos abierta

Busque el libro en el Explorador de proyectos y haga clic en el icono + situado a su izquierda para visualizar los componentes del libro en particular los moacutedushylos Haga clic en el icono + de la carpeta Moacutedulos para obtener una lista de todos los moacutedulos Haga clic con el botoacuten derecho del ratoacuten en cada moacutedulo y elija la opcioacuten Quitar moacutedulo Cuando se le pregunte rechace la opcioacuten de exportar los moacutedulos Antes de quitar los moacutedulos que pudieran tener coacutedigo uacutetil haga doble clic en cada uno de ellos para asegurarse de que no los necesite Al terminar pulse Al t Comando-Ctpara volver de nuevo a la ventana principal de Excel

Mensajes de confirmacioacuten para guardar cambios que no se han realizado

Probablemente habraacute observado que a veces al abrir un libro y echar un vistashyzo a su informacioacuten es suficiente para que Excel le pregunte si desea guardar los

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 39

cambios en el libro de macro personal (aunque de hecho no ha realizado ningushyno) Lo maacutes probable es que tenga una funcioacuten imprevisible dentro del libro de macro personal

Un libro de macro personal es un libro oculto que se crea la primera vez que graba una macro y que se abre cada vez que se utiliza Excel Una funcioacuten (o foacutermula) imprevisible es aquella que se recalcula automaacuteticamente cada vez que realiza praacutecticamente cualquier cosa en Excel incluyendo abrir y cerrar un libro o la aplicacioacuten entera Dos de las funciones imprevisibles maacutes comunes son Hoy () y Ahora ( )

Por tanto aunque crea que no ha realizado cambios en el libro puede que esas funciones que se ejecutan en segundo plano siacute los hayan hecho Esto cuenta como un cambio y hace que Excel le pregunte si desea guardar dichos cambios

Si desea que Excel deje de preguntar por aquellos cambios que no ha realizashydo dispone de un par de opciones La maacutes obvia es no almacenar funciones imshyprevisibles al principio dentro del libro de macro personal y luego eliminar cualquier funcioacuten imprevisible que ya exista La otra opcioacuten en caso de que neshycesite utilizar funciones imprevisibles puede ser utilizar este sencillo coacutedigo para hacer que Excel crea que el libro de macro personal ha sido guardado en el m o shymento en el que se abre

Priacutevate Sub workbook_Open( ) MeSaved = True

End Sub

Este coacutedigo debe residir en el moacutedulo privado del libro del libro de macro pershysonal Para llegar ahiacute desde cualquier libro seleccione la opcioacuten VentanagtMostrar seleccione Personalxls y luego haga clic en Aceptar Luego abra VBE e introduzshyca el coacutedigo anterior Finalmente pulse AltComando-Capara volver a la ventashyna principal de Excel cuando haya terminado Por supuesto si dispone de una funcioacuten imprevisible que quiere que sea recalculada y por tanto guardar los camshybios que haya realizado entonces introduzca el siguiente coacutedigo

Priacutevate Sub workbook_Open( ) MeSave

End Sub

Esta macro guardaraacute el libro de macro personal automaacuteticamente cada vez que sea abierto

Impedir los avisos de Excel para macros grabadas

Uno de los muchos inconvenientes de las macros grabadas es que aunque son m u y uacutetiles para reproducir cualquier comando tienden a olvidar las res-

40 Excel Los mejores trucos

puestas a los avisos que se muestran en pantalla Elimine una hoja de caacutelculo y se le pediraacute confirmacioacuten ejecute una macro que realice esto mismo y todaviacutea se le pediraacute confirmacioacuten Veamos coacutemo desactivar esos avisos

Seleccione la opcioacuten HerramientasgtMacrogtMacros (AltOpcioacuten-F8) para mosshytrar un listado de todas las macros

Aseguacuterese de que estaacute seleccionada la opcioacuten Todos los libros abiertos en el cuadro de lista desplegable de la parte inferior Seleccione la macro en la que esteacute interesado y haga clic en el botoacuten Modificar Coloque el cursor antes de la prishymera liacutenea de coacutedigo (la primera liacutenea que no tiene un apostrofe delante de ella) y escriba lo siguiente

ApplicationDisplayAlerts = False

Y al final del todo del coacutedigo antildeada esto

ApplicationDisplayAlerts = True

Con lo que la macro entera quedariacutea asiacute

Sub MyMacro( ) i

1 MiMacro Macro 1 Elimina la hoja de caacutelculo actual i

ApplicationDisplayAlerts = False ActiveSheetDelete ApplicationDisplayAlerts = True

End Sub

Observe que al final del coacutedigo volvemos a activar los mensajes de confirmashycioacuten para que Excel los muestre cuando estemos trabajando normalmente Si se olvida de activarlos Excel no mostraraacute ninguna alerta lo cual puede ser pelishygroso

Si por cualquier razoacuten la macro no se completa (un error de ejecucioacuten por ejemplo) Excel puede que no llegue a ejecutar la liacutenea de coacutedigo en la que se vuelven a activar los mensajes de confirmacioacuten Si ocurriese esto probablemente seraacute mejor salir de Excel y volver a abrirlo para dejar todo en su estado normal

Ahora ya sabe coacutemo utilizar Excel sin mensajes de confirmacioacuten Tenga en cuenta de todas formas que esos mensajes estaacuten ahiacute por una razoacuten Aseguacuterese de que comprende completamente el propoacutesito de estos mensajes antes de desactivarlos

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 41

Ocultar hojas para que no puedan ser mostradas A veces deseariacutea tener un lugar donde colocar informacioacuten que no pueda ser leiacuteda o modificada por los usuarios Puede construir un lugar secreto dentro del libro un lugar donde almacenar informacioacuten foacutermulas y otros recursos que se utilizan en las hojas pero que no desea que se vean

Una praacutectica m u y uacutetil cuando se configura un nuevo libro de Excel es resershyvar una hoja para almacenar informacioacuten que los usuarios no necesitan ver caacutelculos de foacutermulas validacioacuten de datos listas variables de intereacutes y valores especiales datos privados etc Aunque se puede ocultar una hoja seleccionando la opcioacuten FormatogtHojagtOcultar es importante asegurarse de que los usuarios no puedan volver a mostrarla seleccionando la opcioacuten FormatogtHojagtMostrar

Por supuesto simplemente puede proteger la hoja pero esto todaviacutea deja al descubierto los datos privados las foacutermulas etc Ademaacutes no se puede proteger las celdas que estaacuten vinculadas a cualquiera de los controles disponibles en la barra de herramientas Formularios

En vez de esto jugaremos con la propiedad V i s i b l e de la hoja establecieacutenshydola en x lVeryHidden Desde VBE (HerramientasgtMacrogtEditor de Visual Basic o Alt Opcioacuten-Fl 1) aseguacuterese de que la ventana de exploracioacuten de proyectos esteacute visible seleccionando la opcioacuten VergtExplorador de proyectos Encuentre el nomshybre del libro y expanda su jerarquiacutea haciendo clic en el icono + que aparece a la izquierda de su nombre Expanda la carpeta Microsoft Excel Objetos para mosshytrar todas las hojas del libro

Seleccione la hoja que desea ocultar en el explorador de proyectos y muestre sus propiedades seleccionando la opcioacuten VergtVentana Propiedades (o pulsando la tecla F4) Aseguacuterese de que estaacute seleccionada la pestantildea Alfabeacutetica y busque la propiedad Visible en la lista que estaraacute situada al final Haga clic en el cuadro de texto que hay a su derecha y seleccione la uacuteltima opcioacuten 2 - xISheetVeryHidden tal y como se muestra en la figura 19 Pulse AltComando-CLpara guardar los cambios y volver a la ventana principal de Excel A partir de ahora la hoja ya no estaraacute visible desde la interfaz de Excel e incluso tampoco podraacute mostrarse a traveacutes de la opcioacuten FormatogtHojagtMostrar

Una vez que haya seleccionado la opcioacuten 2 - xISheetVeryHidden en la s$P ventana de propiedades puede parecer que dicha eleccioacuten no ha tenido

iquestiexclr efecto Este fallo visual ocurre a veces y no deberiacutea importarle Siempre $r que la hoja no aparezca entre las opciones de FormatogtHojagtMostrar

puede estar seguro de que todo ha ido bien

Para revertir el proceso simplemente siga los pasos anteriores pero esta vez seleccionando la opcioacuten 1 - xISheetVisible

42 Excel Los mejores trucos

iiffiffffmftfii

0 H EuroTool (EUROTOOLXLA) sectiacute VBAProject (Libro 1)

- bull v Microsoft Excel Objetos Uuml3 Hojal (Hojal) iQ Hoja2 (Hoja2) Q ThisWorkbook

Moacutedulos laquoiacutepound Moacutedulo 1 ltspound Moacutedulo2

iacuteHojal Worksheet

Alfabeacutetica | po r categoriacuteas 1 3

(Ntildeame) Hojal DisplayPageBreaks False DisplayRightToLeft False EnableAutoFilter False EnableCalculation True EnableOutlining False EnablePivotTable False

EnableSelection 0 - xlNoRestrictions Ntildeame Hojal ScrollArea Standard Width 1071

Figura 19 Ventana de propiedades de una hoja con la propiedad Visible establecida en 2 - xlSheetVeryHidden

Personalizar el cuadro de diaacutelogo Plantillas y el libro predeterminado Si suele realizar las mismas tareas o utilizar las mismas distribuciones para hojas de caacutelculo con frecuencia puede construir su propia pestantildea de plantillas en el cuadro de diaacutelogo estaacutendar Plantillas para proporcionar un acceso raacutepido al inicio

Imagiacutenese que tiene una hoja de caacutelculo que contiene los diacuteas del antildeo y foacutershymulas que resumen diversas informaciones para esos diacuteas Ha formateado esta hoja de caacutelculo cuidadosamente con los colores de su empresa el logotipo y con las foacutermulas necesarias todo ello para utilizarla con frecuencia En vez de tener que reinventar la rueda (o copiar y eliminar las cosas que no necesita) cada diacutea puede ahorrar un montoacuten de tiempo y de problemas creando una plantilla

Las plantillas para libros y hojas de caacutelculo le proporcionan un punto de parshytida para los siguientes proyectos permitieacutendole saltarse la configuracioacuten inishycial el proceso de dar formato la construccioacuten de foacutermulas etc Guardar una plantilla de una hoja de caacutelculo simplemente significa abrir un libro nuevo boshyrrar todas las hojas excepto una y luego crear una plantilla baacutesica que seraacute la

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 43

que utilice Una vez terminada seleccionaraacute la opcioacuten ArchivogtGuardar como y elegiraacute la opcioacuten Plantilla del cuadro de lista desplegable con los tipos de archivos posibles Si la plantilla es de un libro (es decir que contendraacute maacutes de una hoja) entonces cree un nuevo libro haga todos los cambios necesarios y luego seleccioshyne la opcioacuten ArchivogtGuardar como y guaacuterdelo como una plantilla

Con la plantilla terminada puede crear una copia exacta de la misma en cualshyquier momento seleccionando la opcioacuten ArchivogtNuevo y luego seleccionando una plantilla de libro o bien haciendo clic con el botoacuten derecho en una pestantildea de hoja y seleccionando la opcioacuten Insertar desde el menuacute contextual para insertar una nueva hoja a partir de una plantilla iquestNo seriacutea interesante poder tener todas esas plantillas disponibles desde el cuadro de diaacutelogo estaacutendar Plantillas o confishygurar su libro preferido como predeterminado Puede hacer todo esto creando su propia pestantildea de plantillas

Este truco presupone que tiene una uacutenica instalacioacuten de Excel en su ordenador Si dispone de muacuteltiples copias o versiones de Excel puede que no funcione

Crear su propia pestantildea de plantillas

Si dispone de una serie de plantillas (tanto de libros como de hojas de caacutelculo) que desea utilizar con regularidad puede agruparlas todas juntas en el cuadro de diaacutelogo Insertar o Plantillas

Desde cualquier libro seleccione la opcioacuten ArchivogtGuardar como y desde el cuadro de lista desplegable de tipos de archivo seleccione la opcioacuten Plantilla (xlt) De forma predeterminada Excel seleccionaraacute la carpeta estaacutendar Plantillas del disco duro en donde se almacenan todas las plantillas del usuario Si no existe una carpeta llamada Mis plantillas cree una utilizando el botoacuten Nueva carpeshyta Luego seleccione la opcioacuten ArchivogtNuevo en la barra de menuacutes (en Excel 2000 y posteriores seleccione Plantillas generales en el cuadro de diaacutelogo Nuevo libro En Excel 2003 debe seleccionar la opcioacuten En mi PC del panel de tareas) Entonces deberiacutea haber una pestantildea que representa la carpeta Mis plantillas que acaba de crear (veacutease figura 110) Tambieacuten deberiacutea ver las plantillas de libros y hojas de caacutelculo que guarde en dicha carpeta

Utilizar un libro personalizado de forma predeterminada

Al iniciar Excel se abre de forma predeterminada un libro en blanco llamado Librol que contiene tres hojas en blanco Esto estaacute bien si desea comenzar de nuevo cada vez que inicia Excel Sin embargo es probable que trabaje normal-

44 Excel Los mejores trucos

mente con un libro Por tanto resulta pesado tener que abrir Excel y luego busshycar el libro que se desea abrir Si desea configurar Excel para que automaacuteticamente se inicie con un cierto libro abierto siga leyendo

General ] Soluciones de hoja de caacutelculo Mis plantillas j

iaacute iexcl J 1 Libro lxlt Libro2XLT

Seleccione un icono para ver una vista previa

Plantillas de Office Online

Figura 110 El cuadro de diaacutelogo Plantillas

Para ello guarde su libro predeterminado (plantilla) en la carpeta XLSTART (que normalmente se encuentra en la carpeta CDocuments and SettingsNombre de usuarioApplication DataMicrosoftExcelXLSTART en Windows y en la carshypeta ApplicationsMicrosoft Office XOfficeStartupExcel en Macintosh) Una vez que haya hecho esto Excel utilizaraacute cualquiera de los libros que haya incluishydo en esta carpeta como predeterminados

La carpeta XLSTART es donde se crea y guarda automaacuteticamente el libro de macros personales cuando graba una macro El libro de macros personales es un libro oculto Tambieacuten puede tener sus propios libros ocultos abiertos en segundo plano si lo desea abriendo dicho libro seleccionando la opcioacuten VentanagtOcultar cerrando Excel y luego haciendo clic en Siacute para guardar los cambios en eacutel Luego coloque ese libro en la carpeta XLSTART Todos los libros que oculte y coloque dentro de la carpeta XLSTART se abriraacuten como libros ocultos cada vez que inicie Excel

Evite la tentacioacuten de colocar muchos libros en esta carpeta especialmente si son grandes dado que todos ellos se abriraacuten cuando inicie Excel Si se tiene mushychos libros abiertos se puede reducir considerablemente el rendimiento de Excel Naturalmente si cambia de opinioacuten y desea que al iniciar Excel aparezca un libro en blanco simplemente elimine los libros o plantillas de la carpeta XLSTART

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 45

Crear un iacutendice de hojas en el libro Si ha dedicado mucho tiempo en un libro que contiene muchas hojas sabe perfectamente lo complicado que puede ser encontrar una hoja en particular En estos casos es imprescindible tener una hoja iacutendice para poder navegar por el resto de hojas de libro

Utilizar una hoja de iacutendice le permitiraacute explorar de forma raacutepida y sencilla el libro de forma que con un solo clic de ratoacuten pueda ir directamente al lugar que desee Se puede crear un iacutendice de dos formas Podriacutea tener la tentacioacuten de crear el iacutendice a mano Cree una nueva hoja llaacutemela iacutendice o algo parecido introshyduzca en ella una lista de todos los nombres de las hojas e incluya viacutenculos a cada una de ellas mediante la opcioacuten de menuacute lnsertargtViacutenculo o pulsando Con-trolComando-K aunque este meacutetodo pueda ser suficiente en casos de los que no hay demasiadas hojas y no hay muchos cambios puede ser m u y tedioso teshyner que mantener el iacutendice manualmente

El siguiente coacutedigo crearaacute automaacuteticamente un iacutendice con viacutenculos a todas las hojas que esteacuten incluidas en el libro Este iacutendice se vuelve a generar cada vez que la hoja que contiene el coacutedigo es activada Este coacutedigo deberiacutea residir en el moacutedushylo privado del objeto Sheet Inserte una nueva hoja en el libro de Excel y llaacutemela con alguacuten nombre apropiado como pueda ser iacutendice Luego haga clic con el botoacuten derecho del ratoacuten soacutebrela pestantildea de dicha hoja y seleccione la opcioacuten Ver coacutedigo En la ventana de coacutedigo de Visual Basic escriba lo siguiente

Priacutevate Sub Worksheet_Activate( ) Dim wSheet As Worksheet Dim L As Long L = 1

With Me Columns(1)ClearContents Cells(l 1) = IacuteNDICE Cells(l 1)Ntildeame = iacutendice

End With

For Each wSheet In Worksheets If wSheetNtildeame oMeName Then L = L + 1 With wSheet

Range(Al)Ntildeame = Inicio amp wSheetIndex

HyperlinksAdd Anchor=Range(Al) Address=_ SubAddress=iacutendice TextToDisplay=Volver al iacutendice

End With MeHyperlinksAdd Anchor=MeCells(1 1) Address=_ SubAddress=Inicio amp wSheetIndex TextToDisplay=wSheetNtildeame

End If Next wSheet

End Sub

46 Excel Los mejores trucos

Pulse AltComando-CLpara volver al libro y guardar los cambios Observe que el coacutedigo da el nombre Inicio (al igual que cuando da nombre a una celda o un rango de celdas en Excel) a la celda Al de cada hoja ademaacutes de un uacutenico nuacutemero que representa el nuacutemero de iacutendice para dicha hoja Esto asegura que la celda Al de cada hoja tiene un nombre diferente Si la celda Al de la hoja ya tiene un nombre deberiacutea considerar cambiar cualquier mencioacuten a Al en el coacutedigo por algo maacutes adecuado (por ejemplo alguna celda no utilizada que esteacute situada en cualquier parte de la hoja)

Debe tener en cuenta que si selecciona la opcioacuten ArchivogtPropiedadesgt Resumen e introduce una direccioacuten URL como viacutenculo base el iacutendice que se crea por el coacutedigo anterior posiblemente no funcione Un viacutenculo base es una ruta o URL que desea utilizar para todos los viacutenculos con la misma direccioacuten base y que esteacuten incluidos en el documento actual

Otra forma de construir un iacutendice que es maacutes sencilla para el usuario es antildeadir un viacutenculo a la lista de hojas como un elemento de menuacute contextual al que se puede acceder haciendo clic con el botoacuten derecho del ratoacuten Haremos que dicho viacutenculo abra el menuacute estaacutendar de hojas Normalmente puede abrir este menuacute haciendo clic con el botoacuten derecho del ratoacuten en cualquiera de los botones de desplazamiento que se encuentran a la izquierda de donde se muestran las solapas de cada hoja tal y como se muestra en la figura 111

Ruuml iquest j

1 I 2 3 4 5 6 7 8

in i 11 12 13 j 14iexcl 15l 16| 17 j 18Iacute

119 i ]H 4 Listo

W W W F S l f i l W W i l f raquo ^

Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana l

Al f

A | B C D E F

i

$M Tareas para hoy

Figuras de esta semana

Hojal j

Hoja2 i

Hoja3

Hoja4

HojaS

Hoja6 T trade f p ^ aacute j j i E ^ bdquo trade ^ r a _ j ^rmdashp^u r a s d e e s t a s e m a n a ^ H o j a l pound H o j a 2 j 4 j

G

1 NUM

- S X

H mdash

bulliexcl

mdash1 ltr i

bull i n

Figura 111 Menuacute con las hojas disponibles que se muestra al hacer clic con el botoacuten derecho sobre los botones de desplazamiento entre hojas

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 47

Para vincular ese menuacute con el hecho de hacer clic con el botoacuten derecho del ratoacuten en cualquier celda escriba el siguiente coacutedigo en VBE

Priacutevate Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object ByVal Target As Range Cancel As Boolean) Dim cCont As CommandBarButton

On Error Resume Next ApplicationCommandBars(Cell)Controls(iacutendice de hojas)Delete On Error GoTo 0

Set cCont = ApplicationCommandBars(Cell)ControlsAdd _ (Type=msoControlButton Temporary=True)

With cCont Caption = iacutendice de hojas

OnAction = IndexCode End With

End Sub

A continuacioacuten deberaacute insertar un moacutedulo estaacutendar que almacene la macro IndexCode que es llamada por este coacutedigo que acabamos de introducir en el momento en el que el usuario hace clic con el botoacuten derecho del ratoacuten en una celda Es fundamental que utilice un moacutedulo estaacutendar a continuacioacuten ya que si coloca el coacutedigo en el mismo moacutedulo que el coacutedigo anterior Excel no sabraacute doacutende encontrar una macro llamada IndexCode Seleccione lnsertargtMoacutedulo y escriba el siguiente coacutedigo

Sub IndexCode( ) ApplicationCommandBars(workbook Tabs)ShowPopup End Sub

Pulse AltComando-CLpara volver a la ventana principal de Excel A contishynuacioacuten haga clic con el botoacuten derecho en cualquier celda y veraacute un nuevo eleshymento de menuacute llamado iacutendice de hojas que al seleccionarlo mostraraacute un listado de todas las hojas que contiene este libro

H Limitar el rango de desplazamiento de la hoja de caacutelculo Si se desplaza a menudo por la hoja de caacutelculo o si tiene datos que no desea que sean visualizados por los lectores puede ser uacutetil limitar el aacuterea visible de la hoja de caacutelculo soacutelo al rango que actualmente tiene datos

Todas las hojas de Excel creadas a partir de Excel 97 disponen de 256 columshynas (de la A a la IV) y de 65536 filas En la mayoriacutea de los casos las hojas soacutelo utilizaraacuten un pequentildeo porcentaje de todas las celdas disponibles Existe la posibishylidad de establecer el aacuterea por el que se puede desplazar el usuario de forma que soacutelo pueda ver los datos que desee Luego puede colocar datos que no deben ser

48 Excel Los mejores trucos

vistos fuera de esa aacuterea Esto tambieacuten puede hacer maacutes sencillo desplazarse por una hoja de caacutelculo y que los usuarios no se encuentran en la fila 50000 para tener que empezar a buscar los datos que desea

La manera maacutes sencilla para establecer los liacutemites es simplemente ocultar to shydas las columnas y filas que no se utilizan Estando en una hoja localice la uacuteltishyma fila que contiene datos y seleccione la fila entera que estaacute debajo de ella haciendo clic en el selector de fila Mantenga pulsadas las teclas Control y Mayuacutes mienshytras pulsa la tecla Flecha abajo para seleccionar todas las filas hacia abajo Seshyleccione entonces la opcioacuten FormatogtFilagtOcultar para ocultarlas todas Haga esto mismo para las filas no utilizadas busque la uacuteltima columna seleccione toda la columna siguiente y manteniendo pulsadas las teclas Control y Mayuacutes pulse la tecla Flecha derecha hasta seleccionar todas las columnas Luego selecshycione la opcioacuten FormatogtColumnagtOcultar Una vez hecho esto el rango de celshydas uacutetiles quedaraacute rodeado de una zona gris por la que no se puede desplazar

La segunda alternativa para establecer los liacutemites es especificar un rango vaacuteshylido en la ventana de propiedades de la hoja Haga clic con el botoacuten derecho en la pestantildea de la hoja que estaacute situada en la parte inferior izquierdo de la ventana y luego seleccione la opcioacuten Ver coacutedigo Entonces seleccione la opcioacuten VergtExplorador de proyectos (Control-R en Windows o Comando-R en Mac OS X) para mostrar la ventana de proyectos Si la ventana de propiedades no estaacute visible pulse la tecla F4 Seleccione la hoja adecuada y busque la propiedad ScrollArea en la venshytana de propiedades (veacutease figura 112)

Introduzca entonces en el cuadro de texto de dicha propiedad los liacutemites para la hoja (por ejemplo $A$1$G$50)

Una vez hecho esto no podraacute desplazarse fuera del aacuterea que haya especificashydo Por desgracia Excel no guarda esta configuracioacuten despueacutes de cerrarse Esto significa que necesitamos una simple macro que automaacuteticamente establezca el aacuterea de desplazamiento al rango deseado escribiendo el coacutedigo para el evento w o r k s h e e t _ A c t i v a t e

Para ello haga clic con el botoacuten derecho sobre la pestantildea de la hoja en la que desea limitar el desplazamiento y seleccione la opcioacuten Ver coacutedigo introduciendo a continuacioacuten

Priacutevate Sub Worksheet_Activate ( ) MeScrollArea = A1G50 End Sub

Como siempre pulse AltComando-Clpara volver a la ventana principal de Excel y guardar los cambios

Aunque en este caso no habraacute una indicacioacuten clara como pueda ser la zona gris que se mostraba con el primer meacutetodo seraacute incapaz de desplazarse o selecshycionar cualquier cosa fuera del aacuterea especificada

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 49

J J 0 Jg$ EuroTocJOEL^ iquest VBAProject (Libro7) j$ VBAProject (LibroS)

Microsoft E bull cel uumlbietos S ]Ho ia l (Hoial) H] Hoia2 (Hoia2) IT] Hoia3 (Ho]a3) Q ThisWorlbool

Hoja3 Worksheet

Alfabeacutetica j por categoriacuteas ]

(Ntildeame)

DisplayPageBreaks DisplayRightToLeft EnableAutoFilter EnableCalculation EnableOutlining EnablePivotTable EnableSelection Ntildeame

StandardWidth Visible

^X]|

Figura 112 Ventana de propiedades y del explorador de proyectos

Cualquier macro que intente seleccionar un rango fuera de esta aacuterea de desplazamiento (incluyendo la seleccioacuten de filas o columnas enteras) no podraacute hacerlo Esto es particularmente cierto para aquellas macros grabadas que a menudo hacen uso de las selecciones

Si las macros seleccionan un rango fuera del aacuterea de desplazamiento puede modificarlas de forma que no esteacuten limitadas a dicha hariacutea mientras realicen sus tareas Para ello simplemente seleccione la opcioacuten HerramientasgtMacrogtMacros (Alt-F8) busque el nombre de la macro seleccioacutenela y luego haga clic en el boshytoacuten Modificar Escriacutebala siguiente liacutenea de coacutedigo al principio del todo

ActiveSheetScrollArea =

Y al final del todo de la macro escriba

ActiveSheetScrollArea = $A$1$G$50

Con esto el coacutedigo de la macro quedariacutea maacutes o menos asiacute

S u b M y M a c r o ( )

50 Excel Los mejores trucos

MiMacro Macro Macro grabada el 1992003 by OzGridcom

ActiveSheetScrollArea = Range(Z100)Select SelectionFontBold = True

ActiveSheetScrollArea = $A$1$G$50 Sheets(Presupuesto diario)Select ActiveSheetScrollArea =

Range (T500)Select SelectionFontBold = False

ActiveSheetScrollArea = $A$1$H$25

End Sub

Nuestra macro selecciona la celda Z100 y le da formato negrita Luego selecshyciona la hoja llamada Presupuesto diario selecciona la celda T500 de dicha hoja y quita el formato negrita Hemos antildeadido A c t i v e S h e e t S c r o l l A r e a = de forma que pueda seleccionarse cualquier celda y maacutes adelante volvemos a establecer los liacutemites del aacuterea de desplazamiento al valor deseado Cuando selecshyciona amos otra hoja (Presupuesto diario) volvemos a permitir al coacutedigo selecshycionar cualquier celda y despueacutes de que la macro realice sus tareas volvemos a establecer el rango a los liacutemites deseados Un tercer meacutetodo el maacutes flexible limishyta automaacuteticamente el aacuterea de desplazamiento al rango que estaacute siendo usado en la hoja en la que escribe el coacutedigo Para utilizar este meacutetodo haga clic con el botoacuten derecho en la pestantildea de la hoja en la que desea limitar el aacuterea de desplazashymiento seleccione la opcioacuten Ver coacutedigo y escriba lo siguiente

Private Sub Worksheet_Activate( ) MeScrollArea = Range(MeUsedRange MeUsedRange(22))Address

End Sub

Luego pulse AltComando-CLo haga clic en el botoacuten para cerrar la ventana de Visual Basic para volver a la ventana principal y guardar los cambios

La macro anterior se ejecutaraacute automaacuteticamente cada vez que se active la hoja en la cual introdujo este coacutedigo Sin embargo puede encontrarse un probleshyma con esta macro cuando necesite introducir datos fuera del aacuterea utilizable Para evitar este problema simplemente utilice una macro estaacutendar que restashyblezca el aacuterea de desplazamiento de nuevo a toda la hoja Para ello seleccione la opcioacuten HerramientasgtMacrogtEditor de Visual Basic seleccione luego la opcioacuten lnsertargtMoacutedulo e introduzca el siguiente coacutedigo

Sub ResetScrollArea( ) ActiveSheetScrollArea =

End Sub

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 51

Entonces pulse A l t Comando- ( ipa ra volver a la ventana principal de Excel y guardar el trabajo

Si lo desea puede hacer que la macro sea faacutecilmente accesible asignaacutendole una tecla de acceso raacutepido Seleccione la opcioacuten HerramientasgtMacrogtMacros (Alt Opcioacuten-F8) seleccione ResetScrollArea (el nombre que le dimos a la macro anteshyrior) haga clic en Opciones y luego asigne una tecla de acceso raacutepido

Cada vez que necesite antildeadir datos fuera de los liacutemites establecidos de la hoja ejecute esta macro que quita dicha limitacioacuten Entonces haga aquellos cambios que no podiacutea hacer cuando el liacutemite estaba establecido y cuando haya terminashydo active cualquier otra hoja y luego vuelva a activar eacutesta para que se vuelva a limitar el aacuterea de desplazamiento La activacioacuten de la hoja haraacute que se ejecute el coacutedigo inicial que escribimos el cual limitaba el aacuterea de desplazamiento

^ ^ Q 9 Bloquear y proteger celdas que contienen foacutermulas II ^ ^ V f ^ H Quizaacute desee permitir a los usuarios cambiar celdas que contienen datos

^ ^ K ^ ^ H pero no permitirles cambiar las foacutermulas Puede mantener bloqueadas las celdas que contienen foacutermulas sin tener que proteger toda la hoja o el libro

Cuando creamos una hoja de caacutelculo muchos de nosotros necesitamos utilishyzar foacutermulas de alguacuten tipo Aveces sin embargo no desearaacute que otros usuarios puedan estropear eliminar o sobrescribir cualquiera de las foacutermulas incluidas en la hoja de caacutelculo La forma maacutes faacutecil y raacutepida de impedir que las personas jueshyguen con las foacutermulas es proteger la hoja de caacutelculo Sin embargo proteger la hoja de caacutelculo no soacutelo evita que los usuarios estropeen las foacutermulas sino que tambieacuten evitan que se pueda introducir cualquier informacioacuten Y a veces no queshyrraacute ir tan lejos en la seguridad

De forma predeterminada todas las celdas de una hoja de caacutelculo estaacuten bloshyqueadas aunque esto no tiene efecto hasta que se aplique la proteccioacuten de la misma A continuacioacuten mostramos un meacutetodo m u y sencillo para aplicar una proteccioacuten a la hoja de caacutelculo de forma que soacutelo las celdas con foacutermulas esteacuten bloqueadas y protegidas

Seleccione todas las celdas de la hoja bien pulsando Cont ro l Comando-E o bien pulsando el cuadrado gris situado en la interseccioacuten de la columna A y la fila 1 Entonces vaya a FormatogtCeldasgtProteger y desactive la casilla de verifishycacioacuten Bloqueada Haga clic en Aceptar

Ahora seleccione cualquier celda seleccione Edicioacutengtlr a (Control-I oacute F5) y haga clic en el botoacuten Especial Veraacute entonces un cuadro de diaacutelogo como el que se muestra en la figura 113

Seleccione el botoacuten de opcioacuten Celdas con foacutermulas del cuadro de diaacutelogo Ir a especial y si es necesario limite las foacutermulas a los tipos subyacentes Luego

Excel Los mejores trucos

haga clic en Aceptar Una vez esteacuten seleccionadas las celdas con las foacutermulas vaya a FormatogtCeldasgtProteger y active la casilla de verificacioacuten Bloqueada Haga clic en Aceptar Ahora seleccione la opcioacuten HerramientasgtProtegergtProteger hoja para proteger la hoja de caacutelculo y utilizar una contrasentildea si es requerida

iHgia iaf lmdashi Seleccionar

^ Comentarios

lt Constantes iCeldas con foacutermulas i

iacuteiexcl Nuacutemeros

f Texto

f Valores loacutegicos

f Errores

^ Celdas en blanco r Regioacuten actual f Matriz actual

Obietos

lt Diferencias entre filas j

f Diferencias entre columnas (1) j

lt~ Celdas precedentes j

( Celdas dependientes j

r c

Uacuteltima celda

f~ Soacutelo celdas visibles (2)

bull Celdas con formatos condicionales l Celdas con validacioacuten de datos

r r

1 Aceptar J Cancelar ] j

Figura 113 El cuadro de diaacutelogo Ir a especial

Este meacutetodo realmente ahorra gran cantidad de tiempo y elimina posibles errores al buscar las foacutermulas de forma que pueda protegerlas Por desgracia tambieacuten evita que los usuarios puedan utilizar otras funciones como puede ser ordenar cambiar el formato alinear el texto y otras muchas incluso cuando la celda no estaacute bloqueada Puede solucionar este problema de dos formas

La primera aproximacioacuten consiste en no utilizar la proteccioacuten de la hoja sino la validacioacuten de datos en lugar de ello

La validacioacuten de datos estaacute lejos de ser del todo segura a la hora de evitar que los usuarios introduzcan datos no vaacutelidos en celdas Los usuarios todaviacutea pueden pegar en una celda con validacioacuten cualquier tipo de dato quitando la validacioacuten de dicha celda a menos que la celda original que se estaacute copiando tambieacuten tuviese alguacuten tipo de validacioacuten en cuyo caso tambieacuten se estariacutea sobrescribiendo

Para ver a queacute nos referimos seleccione cualquier celda seleccione la opcioacuten Edicioacutengtlr a y luego haga clic en el botoacuten Especial Ahora seleccione la opcioacuten Celdas con foacutermulas en el cuadro de diaacutelogo y si es necesario especifique que tipos de foacutermulas desea buscar Haga clic en el botoacuten Aceptar

Ahora que soacutelo tenemos seleccionadas las celdas con foacutermulas seleccione la opcioacuten DatosgtValidacioacuten y en la pestantildea Configuracioacuten seleccione la opcioacuten Pershysonalizada en el cuadro de lista desplegable y en el cuadro de texto Foacutermula es-

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 53

criba = tal y como se muestra en la figura 114 Luego haga clic en el botoacuten Aceptar

MBHIMSS^^^^^^^- bull Configuracioacuten j Mensaje entrante j Mensaje de error j

Criterio de validacioacuten

Permitir

| Personalizada j r j P Omitir blancos

Datos

1 J Foacutermula

k i

r

Borrar todos j | Aceptar j

2SJ

Cancelar j

Figura 114 Foacutermulas de validacioacuten

Este meacutetodo evitaraacute que un usuario sobrescriba accidentalmente una celda que tenga una foacutermula (aunque como dijimos anteriormente no es un meacutetodo totalmente seguro y soacutelo deberiacutea ser utilizado para evitar sobrescribir accidentalshymente) De todas formas la gran ventaja de utilizar este meacutetodo es que todas las funciones de Excel todaviacutea se pueden utilizar en la hoja de caacutelculo

El uacuteltimo meacutetodo tambieacuten permite utilizar todas las funciones de Excel pero solamente cuando se encuentra una celda que no esteacute bloqueada Para empezar aseguacuterese de que solamente las celdas que desea proteger estaacuten bloqueadas y que el resto no lo estaacuten Haga clic con el botoacuten derecho del ratoacuten en la pestantildea de la hoja en cuestioacuten seleccione la opcioacuten Ver coacutedigo e introduzca el siguiente coacutedigo

Priacutevate Sub Worksheet_SelectionChange(ByVal Target As Range) If TargetLocked = True Then

MeProtect Password=Secreta Else

MeUnprotect Password=Secreta End If

End Sub

Si no desea utilizar una contrasentildea omita la parte Pas sword = S e c r e t a Si por el contrario quiere utilizar una entonces debe cambiar la palabra Secreta por aquella contrasentildea que desee Luego pulse AltComando-(Xo cierre la venshytana para volver a Excel y guardar los cambios Ahora cada vez que seleccione una celda que estaacute bloqueada la hoja se bloquearaacute a siacute misma automaacuteticamente En el momento en el que seleccione cualquier celda que no esteacute bloqueada la hoja se desbloquearaacute

Excel Los mejores trucos

Este truco no funciona perfectamente aunque normalmente funciona lo suficientemente bien La palabra clave utilizada en el coacutedigo Target soacutelo se refiere a la celda que estaacute activa el momento de la seleccioacuten Por esta razoacuten es importante destacar que si el usuario selecciona un rango de celdas (con la celda activa estando desbloqueada) puede eliminar la seleccione entera porque la celda objetivo estaba desbloqueada y por tanto la hoja se ha desprotegido automaacuteticamente a siacute misma

Encontrar datos duplicados utilizando el formato condicional El formato condicional de Excel se utiliza normalmente para identificar valores en rangos en particular pero podemos usar un truco con esta caracteriacutestica para identificar datos duplicados dentro de una lista o una tabla

Normalmente la gente tiene que identificar datos duplicados dentro de una lista o tabla Hacer esto manualmente puede llevar mucho tiempo y a veces se pueden cometer errores Le aconsejamos que para hacerlo mucho maacutes sencillo utilice un truco sobre una de las caracteriacutesticas estaacutendar de Excel el formato condicional

Tomemos por ejemplo una tabla con datos en el rango $A$ 1 $H$100 Selecshycione la celda superior izquierda (Al) y arrastre el cursor del ratoacuten hasta la celda H100 Es importante que Al sea la celda activa en la seleccioacuten por lo que no es lo mismo seleccionar primero la celda H100 y luego arrastrar hasta la celda A l Seshyleccione entonces la opcioacuten FormatogtFormato condicional y en el cuadro de diaacutelogo Formato condicional seleccione la opcioacuten Foacutermula en el primer cuadro de lista desplegable En el campo que hay a su derecha introduzca el siguiente coacutedigo

= C 0 N T A R S I ( $ A $ 1 $ H $ 1 0 0 A 1 ) gt 1

Haga clic en el botoacuten Formato y luego seleccione la pestantildea Tramas y selecshycione un color que desee aplicar para identificar visualmente los datos duplicashydos Haga clic en Aceptar para volver al cuadro de diaacutelogo anterior y vuelva a hacer clic en Aceptar para aceptar el formato

Todas aquellas celdas que contengan datos duplicados deberiacutean aparecer ahoshyra como un aacuterbol de Navidad con el color que eligioacute haciendo mucho maacutes sencishyllo el hecho de localizar datos duplicados para asiacute poder eliminarlos moverlos o alterarlos

Es m u y importante comentar que como la celda Al era la activa la direccioacuten de la celda es una referencia relativa y no absoluta como en la tabla de datos

uuml

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 55

$A$1$H$100 Utilizando el formato condicional de esta forma Excel sabe automaacuteticamente que debe utilizar la celda correcta como el criterio de la funshycioacuten CONTAR S I Con esto queremos decir que la foacutermula de formato condicioshynal en la celda Al se leeriacutea asiacute

= C O N T A R S I ( $ A $ 1 $ H $ 1 0 0 A 1 ) gt 1

Mientras que en la celda A2 se leeriacutea

= C O N T A R S I ( $ A $ 1 $ H $ 1 0 0 A 2 ) gt 1

En la celda A3 se leeriacutea

= C O N T A R S I ( $ A $ 1 $ H $ 1 0 0 A 3 ) gt 1

y asiacute sucesivamente Si necesita identificar datos que aparecen dos o maacutes veces puede utilizar el

formato condicional con tres condiciones diferentes y coacutedigos de color para cada una de las condiciones todo ello para conseguir una identificacioacuten visual Para hacer esto seleccione la celda Al (la celda que estaacute situada en la parte superior izquierda de la tabla) y arrastre el cursor del ratoacuten hasta la celda H100 De nueshyvo es importante que la celda Al sea la celda activa en la seleccioacuten

Ahora seleccione la opcioacuten FormatogtFormato condicional y seleccione la opshycioacuten Formato en el cuadro de lista desplegable En el cuadro de texto situado a su derecha introduzca el siguiente coacutedigo

= C 0 N T A R S I ( $ A $ 1 $ H $ 1 0 0 A 1 ) gt 3

Haga clic en el botoacuten Formato y luego vaya a la pestantildea Tramas para selecshycionar el color que desee aplicar para identificar los datos que aparecen maacutes de tres veces Haga clic en Aceptar luego haga clic en el botoacuten Agregar y en el cuadro de lista desplegable para la Condicioacuten 2 seleccione la opcioacuten Foacutermula y luego escriba el siguiente coacutedigo en el cuadro de texto situado a su derecha

= C O N T A R S I ( $ A $ 1 $ H $ 1 0 0 A 1 ) = 3

En vez de tener que reescribir la foacutermula maacuterquela en el cuadro de texto de la Condicioacuten 1 pulse la tecla ControlComando-C para copiarla en el portapapeles haga clic en el cuadro de texto de la Condicioacuten 2 pulse ControlComando-V para pegarla ahiacute y luego cambiegt3 por =3

Haga clic en el botoacuten Formato y luego seleccione la pestantildea Tramas para seleccionar el color que desee utilizar para identificar los datos que aparecen justa-

Excel Los mejores trucos

mente tres veces Haga clic en Aceptar y luego haga clic en Agregar En el cuashydro de lista desplegable de la Condicioacuten 3 seleccione la opcioacuten Foacutermula y escriba lo siguiente en el cuadro de texto situado a su derecha

= C O N T A R S I ( $ A $ 1 $ H $ 1 0 0 A 1 ) = 2

Para terminar haga clic en el botoacuten Formato elija la pestantildea Tramas y seleccione ahiacute el color que desea aplicar a los datos que aparecen exactamente dos veces Luego haga clic en el botoacuten Aceptar Ahora ya tenemos colores diferentes de celda dependiendo del nuacutemero de veces en el que aparecen los datos dentro de la tabla De nuevo es importante recordar que la celda Al debe ser la celda activa en la seleccioacuten puesto que la direccioacuten de celda es una referencia relativa y no absoluta como en la tabla de datos $A$1 $H$100 Utilizando el formato condishycional de esta forma Excel sabraacute utilizar la celda correcta como criterio de la funcioacuten CONTAR S I

Asociar barras de herramientas personalizadas a un libro en particular A pesar de que la mayoriacutea de barras de herramientas que cree sirven para praacutecticamente todos los libros con los que trabaje a veces la funcionalidad de una barra de herramientas personalizada solamente es aplicable a un libro en particular Con este truco podremos asociar barras de herramientas personalizadas a sus respectivos libros

Si nunca ha creado una barra de herramientas personalizada sin duda se habraacute dado cuenta que las barras herramientas se cargan y son visibles indepenshydientemente de que libro tenga abierto iquestQueacute ocurre si su barra de herramientas personalizada contiene macros grabadas que soacutelo tienen sentido con un libro en particular Probablemente es mejor poder asociar barras de herramientas persoshynalizadas cuyo propoacutesito sea especial con los libros apropiados para asiacute evitar cualquier tipo de confusioacuten y otros problemas Podemos hacer esto insertando un coacutedigo m u y sencillo en el moacutedulo privado del libro Para acceder al moacutedulo privado haga clic con el botoacuten derecho en el icono de Excel que encontraraacute en la esquina superior izquierda de la pantalla cerca del menuacute Archivo y luego selecshycione la opcioacuten Ver coacutedigo

Este acceso directo no estaacute disponible en Macintosh Tendraacute que abrir el Editor de Visual Basic pulsando Opcioacuten-Fll o bien seleccionando la opcioacuten de menuacute HerramientasgtMacrogtEditor de Visual Basic Una vez ahiacute haga clic con el botoacuten derecho del ratoacuten (o clic mientras mantiene pulsada la tecla Control) en ThisWorkbook que aparece en la ventana de proyectos

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 57

Entonces introduzca este coacutedigo

Priacutevate Sub Workbook_Activate( ) On Error Resume Next

With ApplicationCommandBars(MiBarraPersonalizada) Enabled = True Visible = True

End With On Error GoTo 0

End Sub

Private Sub Workbook_Deactivate( ) On Error Resume Next

ApplicationCommandBars(MiBarraPersonalizada)Enabled = False On Error GoTo 0

End Sub

Cambie el texto de MiBarraPersonalizada por el nombre que desee darle a la barra de herramientas personalizada Para volver a la ventana principal de Excel cierre la ventana de moacutedulo o pulse AltComando-CL En cuanto abra o active otro libro la barra de herramientas personalizada desapareceraacute y no podraacute ser utilizada Reactivando el libro adecuado la barra volveraacute a aparecer Todaviacutea poshydemos llegar maacutes lejos haciendo que una barra de herramientas personalizada esteacute disponible solamente para una hoja en particular del libro Haga clic con el botoacuten derecho del ratoacuten sobre el nombre de una hoja en la que desea activar la barra de herramientas seleccionando la opcioacuten Ver coacutedigo Entonces introduzca el siguiente coacutedigo

Private Sub Worksheet_Deactivate( ) On Error Resume Next

ApplicationCommandBars(MiBarraPersonalizada)Enabled = False On Error GoTo 0

End Sub

Private Sub Worksheet_Activate( ) On Error Resume Next

With ApplicationCommandBars(MiBarraPersonalizada) Enabled = True Visible = True

End With On Error GoTo 0

End Sub

Ahora pulse AltComando-ltXo cierre la ventana para volver a Excel El prishymer procedimiento ( W o r k s h e e t _ D e a c t i v a t e () ) se ejecutaraacute automaacuteticamente cada vez que deje hoja en particular y active otra Este coacutedigo cambia la propieshydad Enab l ed de la barra de herramientas personalizada a F a l s e de forma que no pueda ser vista o utilizada El segundo procedimiento se ejecuta cada vez que

58 Excel Los mejores trucos

se activa la hoja en cuestioacuten estableciendo la propiedad E n a b l e d a True con lo que la barra vuelve a ser visible La liacutenea de coacutedigo que dice A p p l i c a t i o n CommandBars (MyCustomToolbar) V i s i b l e = True simplemente muesshytra la barra de herramientas de nuevo de forma que el usuario pueda verla Cambie de una hoja a otra y veraacute como la barra de herramientas desaparece y vuelve a aparecer dependiendo de la hoja que tenga seleccionada

TRUCO Burlar el gestor de referencias relativas de Excel En Excel una referencia de foacutermula puede ser o bien relativa o bien absoluta pero a veces desearaacute mover celdas que utilicen referencias relativas sin tener que hacer las referencias absolutas Veamos coacutemo hacer esto

Cuando se necesita hacer una foacutermula absoluta se utiliza el signo del doacutelar ($) delante de la letra de la columna y o del nuacutemero de la fila en la referencia a la celda como por ejemplo en $A$1 Una vez haya hecho esto no importa doacutende copie la celda que la foacutermula seguida haciendo referencia a la misma celda o celdas A veces sin embargo ya ha creado numerosas foacutermulas que no contieshynen referencias absolutas sino relativas Normalmente hace esto cuando desea copiar la foacutermula original o propagarla por la hoja y que Excel cambie las refeshyrencias de forma adecuada Si ya ha creado las foacutermulas utilizando solamente referencias relativas o quizaacutes utilizando una mezcla entre referencias absolutas relativas puede reproducir las mismas foacutermulas en cualquier otro rango y en la misma hoja en otra hoja del mismo libro o incluso en otra hoja situada en otro libro Para hacer esto sin cambiar ninguna de las referencias que hay dentro de las foacutermulas seleccione el rango de celdas que desea copiar y luego seleccione la opcioacuten EdicioacutengtReemplazar En el cuadro de texto Buscar introduzca el signo = y en el cuadro de texto Reemplazar con el siacutembolo (por supuesto puede utilishyzar cualquier otro siacutembolo que esteacute seguro no se utiliza en cualquiera de las foacutermulas) Luego haga clic en el botoacuten Reemplazar todos El signo = de todas las foacutermulas de la hoja seraacute reemplazado con el siacutembolo Ahora puede copiar este rango y pegarlo en el destino que desee Luego seleccione el rango que acaba de pegar y vuelva a seleccionar la opcioacuten EdiciexcloacutengtReemplazar Esta vez reemplace el siacutembolo por el siacutembolo = Con esto las foacutermulas quedaraacuten con las mismas referencias que las originales

TRUCO Quitar viacutenculos fantasma en un libro iexclAh Viacutenculos fantasmas Al abrir un libro se le pregunta si desea actualizar los viacutenculos iexclpero no hay ninguacuten viacutenculo iquestCoacutemo puede actualizar los viacutenculos cuando no existen

Los viacutenculos externos son viacutenculos que hacen referencia a otros libros El heshycho de que se produzcan viacutenculos externos no esperados puede darse por diferen-

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 59

tes razones la mayoriacutea de las veces por mover o copiar graacuteficos hojas de graacuteficos u hojas a otros libros Auacuten asiacute saber doacutende estaacuten no siempre le ayudaraacute a enconshytrarlos A continuacioacuten le mostramos algunas alternativas para solucionar el problema de los viacutenculos fantasmas

Primeramente debe comprobar si realmente tiene viacutenculos externos (que no son fantasmas) de los cuales nos olvidaremos Si no estaacute seguro si tiene viacutencushylos externos reales comience buscando en el lugar maacutes obvio las foacutermulas Pueshyde hacer esto aseguraacutendose de que no hay otros libros abiertos y entonces buscando por [] dentro de las foacutermulas de cada hoja Cierre todos los demaacutes libros para asegurarse de que cualquier viacutenculo de foacutermula incluiraacute [] donde el asterisco representa el caraacutecter comodiacuten de buacutesqueda

Excel 9 7 no proporciona una opcioacuten para buscar en todo el libro pero puede buscar en todas las hojas de un libro si las agrupa Puede hacer esto haciendo clic con el botoacuten derecho en el nombre de cualquiera de las hojas y eligiendo la opcioacuten Seleccionar todas las hojas En versiones posteriores de Excel la funcioacuten de Buscar y reemplazar admite la posibilidad de buscar dentro de una hoja o de todo un libro

Una vez que haya encontrado los viacutenculos de foacutermula simplemente cambie la foacutermula de forma adecuada o bien elimiacutenela Cambiar o eliminar la foacutermula depende de la situacioacuten y debe ser usted el que decida queacute hacer Tambieacuten puede ir al centro de descargas de Microsoft Office ubicado en httpofficemicrosoftcom Downloadsdefaultaspx y desde la categoriacutea de complementos seleccionar el Asistente de eliminacioacuten de viacutenculos Este asistente estaacute disentildeado para encontrar y eliminar viacutenculos tales como viacutenculos de nombres definidos viacutenculos de nomshybres ocultos viacutenculos a graacuteficos viacutenculos a consultas de Microsoft y viacutenculos a objetos De todas formas por nuestra experiencia no es capaz de encontrar viacutenshyculos fantasmas Una vez que esteacute seguro de que no hay viacutenculos de foacutermula debe asegurarse de que no tiene ninguacuten otro viacutenculo que no sea fantasma Para ello solemos comenzar desde el libro de Excel que contiene los viacutenculos fantasshymas Seleccione la opcioacuten lnsertargtNombregtDefinir Desplaacutecese a lo largo de la lista de nombres seleccionando cada uno de ellos y mirando en el cuadro de texto Se refiere a situado en la parte inferior Aseguacuterese de que ninguno de estos nomshybres estaacute haciendo referencia a un libro diferente

En vez de tener que hacer clic en cada nombre puede insertar una nueva hoja y seleccionar la opcioacuten lnsertargtNombregtPegar Luego desde el cuadro de diaacutelogo haga clic en Pegar viacutenculo Esto crearaacute una lista de todos los nombres de libro con sus rangos referenciados en la columna correspondiente

60 Excel Los mejores trucos

Si alguno de los nombres se refiere a un elemento que estaacute fuera de libro ha encontrado el origen de al menos uno de los viacutenculos a los cuales hace referencia el mensaje de actualizar los viacutenculos Ahora es decisioacuten suya si desea cambiar este nombre de rango para que haga referencia solamente al propio libro o bien dejarlo como estaacute

Otra fuente potencial de viacutenculos son sus graacuteficos Es posible que los graacuteficos tengan el mismo problema que acabamos de explicar Deberiacutea comprobar que los rangos de datos y las etiquetas del eje X del traacutefico no estaacuten haciendo referencia a libros externos De nuevo debe tomar la decisioacuten de si los viacutenculos que ha enconshytrado son o no correctos

Los viacutenculos tambieacuten pueden acechar en los objetos como puedan ser dos cuadros de texto las autoformas etc Los objetos pueden intentar hacer referenshycia a un libro externo La forma maacutes sencilla de localizar los objetos es seleccioshynar cualquier celda de cada hoja y luego seleccionar la opcioacuten Edicioacutengtlr a (F5) Desde el cuadro de diaacutelogo haga clic en el botoacuten Especial y luego active la casilla de verificacioacuten Objetos y haga clic en Aceptar para comenzar la buacutesqueda Con esto seleccionaremos todos los objetos de la hoja En cualquier caso deberiacutea hashycer esto en una copia del libro Despueacutes una vez tengamos todos los objetos seleccionados puede eliminar guardar cerrar y volver a abrir la copia del libro para ver si con esto hemos solucionado el problema

Finalmente el lugar que no es tan obvio comprobar es en las hojas ocultas que puede haber creado y de las que se ha olvidado Vuelva a mostrar esas hojas seleccionando la opcioacuten FormatogtHojagtMostrar Si la opcioacuten Mostrar esta desactivada significa que no hay hojas ocultas

Ahora que ya ha eliminado la posibilidad de viacutenculos reales es hora de elimishynar los viacutenculos fantasmas Vaya al libro en cuestioacuten en el que haya viacutenculos fantasmas y seleccione la opcioacuten EdicioacutengtViacutenculos A veces simplemente puede seleccionar los viacutenculos no deseados hacer clic en Cambiar origen y luego hacer que el viacutenculo haga referencia a siacute mismo A menudo de todas formas se le informaraacute que alguna de las foacutermulas contiene un error y entonces no podraacute hacer esto

Si no puede tomar el camino sencillo apuacutentese a queacute libro de Excel cree que puede estar vinculado (llamaremos a ese libro el libro bueno) Cree un viacutenculo real entre ambos abriendo los dos Vaya al libro problemaacutetico y en cualquier celda de cualquier hoja escriba = Ahora haga clic en una celda del libro bueno y pulse Intro para tener un viacutenculo externo real con dicho libro Guarde ambos libros pero no los cierre todaviacutea Estando todaviacutea en el libro con viacutenculos fantasshymas seleccione la opcioacuten EdicioacutengtViacutenculos y utilice el botoacuten Cambiar origen para referenciar todos los viacutenculos con el nuevo libro con el que acabamos de crear el viacutenculo Guarde el libro de nuevo y elimine la celda en la que creoacute el viacutenculo real Para terminar guarde el archivo

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 61

A menudo esto elimina el problema de los viacutenculos fantasmas dado que ahoshyra Excel es consciente de que ha eliminado el viacutenculo externo con dicho libro Si esto no ha solucionado problema pruebe con los siguientes pasos pero aseguacutereshyse de guardar una copia primero

El siguiente proceso implica eliminar datos permanentemente Por tanto antes de comenzar tiene que crear una copia de seguridad del libro de Excel ya que si no lo hace puede crearle nuevos problemas

Con el libro problemaacutetico abierto elimine una hoja guarde el libro cieacuterrelo y vuelva a abrirlo Si al hacerlo no se le pregunta sobre actualizar los viacutenculos perdidos entonces es que la hoja que acaba de eliminar era la que teniacutea los viacutenshyculos fantasmas Esto deberiacutea arreglar el problema pero si no fuera asiacute repita el primer paso para cada una de las hojas del libro Necesitaraacute antildeadir una nueva hoja antes de eliminar la uacuteltima ya que cualquier libro debe tener al menos una hoja Supongamos que esta teacutecnica ha funcionado Entonces veamos queacute hay que hacer a continuacioacuten Abra la copia del libro (la que todaviacutea tiene los datos dentro de ella) y cree otra copia Deberaacute trabajar con la hoja problemaacutetica (u hojas) y utilizar el proceso de eliminacioacuten para descubrir doacutende estaacute el problema

Teniendo activada la hoja problemaacutetica seleccione un grupo de celdas (de alshyrededor de 10x10) y entonces seleccione la opcioacuten EdicioacutengtBorrargtTodo iquestEstaacute totalmente seguro de que ha guardado una copia Si es asiacute guarde cierre y vuelshyva a abrir la hoja Si no se le pregunta acerca de actualizar los viacutenculos entonces es que ha encontrado el problema y el objetivo seraacute volver a restablecer ese conshyjun to de celdas Si vuelve a recibir el mensaje de actualizar los viacutenculos continuacutee eliminando celdas hasta que ya no se le pregunte Luego tendraacute que restaurar las celdas problemaacuteticas

Esperamos que estas teacutecnicas le hayan solucionado algo la frustracioacuten de teshyner viacutenculos fantasmas en sus libros de Excel No es sencillo ni divertido pero puede ayudarle a solucionar el problema

IQ221 Reducir un libro que estaacute hinchado ^^wPgt^H iquestNunca ha observado que un libro estaacute aumentando de tamantildeo a un ritmo H k f l alarmante sin una razoacuten aparente Existen numerosas causas que pueden

provocarlo y algunas soluciones para ello

iquestNunca ha comido tanto que no puede funcionar correctamente Lo mismo ocurre con las hojas de Excel Un libro de Excel que engorda tanto es aquel en el que se han hecho tantas cosas que ha llegado a un tamantildeo tal en el que ya no puede funcionar correctamente

Excel Los mejores trucos

Comprobamos el tamantildeo de un libro tiacutepico que conteniacutea gran cantidad de datos y observamos que soacutelo con datos el tamantildeo del archivo era de 137 Mb Entonces antildeadimos una tabla dinaacutemica que haciacutea referencia a cuatro columnas enteras como origen de los datos y observamos que el tamantildeo del archivo se incrementoacute espectacularmente hasta los 24 Mb Antildeada algunos formatos y el tamantildeo del libro se incrementaraacute praacutecticamente al doble soacutelo haciendo algunas acciones

Una de las causas maacutes comunes por las que un archivo engorda particularshymente en las versiones anteriores de Excel es la aplicacioacuten de formatos a columshynas o filas completas en vez de a un rango de datos que se esteacute utilizando Otro error es referenciar columnas enteras como fuente de datos para graacuteficos y tashyblas dinaacutemicas en vez de referenciar solamente las celdas que actualmente conshytienen datos Para solucionar estos problemas tendremos que eliminar todos los formatos superfluos y restringir el origen de datos solamente a aquellos rangos de celdas uacutetiles

Antes de hacer estos arreglos haga siempre una copia del libro por seguridad

Eliminar Formatos superfluos

El primer paso para eliminar formatos superfluos es averiguar cuaacutel es la esshyquina inferior derecha en la que acabaraacuten los datos No se confiacutee en la opcioacuten Edicioacutengtlr agtEspecialgtUacuteltima celda ya que puede llevarle a la uacuteltima celda que contiene formato no datos Habiendo localizado manualmente la celda que sabe que es la uacuteltima que contiene datos reales marque la fila que estaacute inmediatashymente debajo de ella Mientras pulsa las teclas Control y Mayuacutes pulse la tecla Flecha abajo del teclado para marcar todas las filas que se encuentran por debashyjo Luego seleccione la opcioacuten EdicioacutengtBorrargtTodos para eliminarlas

Ahora utilice el mismo meacutetodo para eliminar todas las columnas sobrantes Localice la celda que se encuentre maacutes a la derecha y que auacuten contenga datos y seleccione la columna inmediatamente posterior Luego mientras mantiene pulshysadas las teclas Control y Mayuacutes pulse la tecla Flecha derecha del teclado para seleccionar todas las columnas hasta el final y finalmente seleccione la opcioacuten de menuacute EdicioacutengtBorrargtTodos

Evite la tentacioacuten de eliminar por completo todas esas filas que columnas en vez de borrarlas ya que al hacerlo se produce normalmente errores de tipo iexclREF en cualquiera de las celdas con foacutermulas que pudiesen estar haciendo referencia a ellas

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 63

Guarde el libro y tome buena nota del cambio producido en su tamantildeo a traveacutes de la opcioacuten ArchivogtPropiedades y mirando en la pestantildea General Si tiene macros ahora tendraacute que dirigir los moacutedulos en los que reside el coacutedigo de las macros Este seraacute un proceso raacutepido directo y sencillo que exporta todos los moacutedulos y formularios de usuario al disco duro que luego los elimina y vuelve a importarlos de nuevo Para hacer esto vaya al Editor de Visual Basic y desde el explorador de proyectos haga clic con el botoacuten derecho en cada moacutedulo y selecshycione la opcioacuten Quitar moacutedulol (o cualquier otro nombre que tuviese el moacutedulo) Cuando se le pregunte si desea exportar el moacutedulo antes de quitarlo diga Siacute teniendo en cuenta la ru ta que seleccione

Haga esto mismo para cada moacutedulo asiacute como para todos los formularios de usuario que pueda tener No se olvide de los moacutedulos privados del libro y hojas si eacutestos contienen coacutedigo Una vez que haya hecho todo guarde el libro Entonces seleccione la opcioacuten ArchivogtImportar archivo e importe cada moacutedulo y cada forshymulario de usuario de nuevo al libro Siguiendo este proceso se crearaacute un archivo de texto para cada moacutedulo lo cual eliminaraacute cualquier residuo que pudiesen contener Existen en Internet algunas utilidades gratis que pueden automatizar esta tarea en cierto grado pero hemos oiacutedo casos en los que estas herramientas han desorganizado el coacutedigo o incluso han aumentado maacutes el tamantildeo de los archivos En caso de que utilice una de estas herramientas siempre haga una copia de seguridad primero ya que los desarrolladores no se haraacuten responsables de cualquier peacuterdida de datos

Puesta a punto de los oriacutegenes de datos

Si despueacutes de llevar a cabo los pasos previos todaviacutea cree que el tamantildeo del archivo es m u y grande otra causa posible es que hay referencias a celdas no utilizadas dentro de tablas o graacuteficos dinaacutemicos Esto suele ocurrir normalmente con las tablas dinaacutemicas ya que muchas personas hacen referencia a las 65536 filas para evitar tener que actualizar manualmente los rangos cada vez que se antildeaden nuevos datos

Limpiar libros corruptos

Si todaviacutea cree que el tamantildeo del libro es demasiado grande es posible que el libro o sus hojas esteacuten corruptos Por desgracia encontrar el punto de corrupshycioacuten requiere de un proceso manual de eliminacioacuten

De nuevo le recomendamos encarecidamente que haga una copia de seguridad antes de proceder

64 Excel Los mejores trucos

Para asegurarse de que no se pierde nada muestre todas las hojas que puedan estar ocultas seleccionando la opcioacuten FormatogtHojagtMostrar En caso de que la opcioacuten esteacute desactivada es que no tiene hojas ocultas por las que preocuparse Teniendo todas las hojas visibles comience por la hoja que esteacute maacutes a la izquiershyda y vaya recorriendo una a una hacia la derecha Para cada una de ellas elimiacuteshynela guarde el libro y anote el tamantildeo del mismo a traveacutes de ArchivogtPropiedadesgt General Si el tamantildeo del archivo se reduce draacutesticamente considerando la cantishydad de datos que habiacutea en dicha hoja entonces es que probablemente haya enshycontrado el punto de corrupcioacuten

Para reemplazar una hoja corrupta de un libro cree una nueva hoja seleccioshyne manualmente los datos situados en la hoja corrupta corte (no utilice nunca copiar) y pegue dichos datos en la nueva hoja Entonces elimiacutenela hoja corrupta guarde y repita el proceso

iacuteiquest Al cortar en vez de copiar Excel traspasa los datos a la nueva hoja iX manteniendo las referencias intactas

TRUCO Extraer datos de un libro corrupto La corrupcioacuten de libros de Excel puede suponer la peacuterdida de datos vitales lo cual puede resultar un coste maacutes que monetario Este truco examina algunos meacutetodos que pueden ayudarle a recuperar los datos

Aveces los libro se corrompen sin ninguna razoacuten aparente Esto puede provoshycar todo tipo de problemas especialmente si el libro es vital y por cualquier rashyzoacuten no tiene una copia de seguridad Leccioacuten 1 siempre haga una copia de seguridad de los datos en alguacuten otro lugar Siendo realistas esto no siempre ocushyrre y puede que la corrupcioacuten se produzca justo antes de que se realizase una copia de seguridad regular Para antildeadir maacutes frustracioacuten aunque un libro este corrupto a veces es posible abrirlo e incluso realizar ciertas acciones en eacutel

Si no puede abrir un libro

Si no puede abrir el libro en cuestioacuten antes de hacer cualquier otra cosa aseshyguacuterese de hacer una copia de seguridad del mismo ya que de lo contrario podriacutea perderlo Teniendo una copia siempre puede buscar ayuda profesional

Ahora intente abrir el libro en una versioacuten posterior de Excel y pruebe a guarshydar Obviamente esto no seraacute posible si ya estaacute utilizando la uacuteltima versioacuten de Excel Si esto no funciona pruebe a abrir el libro y guardarlo en formato HTML o HTM Luego cierre el archivo y vuelva a abrirlo esta vez volviendo a guardarlo en el formato original es decir en formato xls

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 65

Cuando se guarda un libro en formato HTML las siguientes funciones N^ se perderaacuten

Vistas personalizadas

Formatos de nuacutemero no utilizados

Estilos no utilizados

Configuracioacuten de consolidacioacuten de datos

Escenarios

Foacutermulas el lenguaje natural (seraacuten convertidas a referencias estaacutendar de rango)

Categoriacuteas personalizadas de funciones

Elementos con fuente tachada superiacutendice o subiacutendice

Historial de cambios

Configuracioacuten de paacutegina personalizada para los graacuteficos que se hayan incrustado en una hoja

Configuraciones de lista para los objetos del cuadro de lista y cuashydro de lista desplegable de la barra de herramientas de Formulashyrios

Formato condicional almacenado en una hoja de macro XLM

Tambieacuten los libros compartidos dejaraacuten de estarlo La configuracioacuten Eje de valores (Y) cruza el nuacutemero de categoriacutea de la pestantildea Escala del cuadro de diaacutelogo Formato de ejes no se guardaraacuten si la casilla de verificacioacuten Eje de valores (Y) cruza la en maacutexima categoriacutea estaacute activada La configuracioacuten de variar los colores por cada punto del cuadro de diaacutelogo Formato de las series de datos no seraacute guardada si el traacutefico contiene maacutes de una serie de datos

Finalmente intente abrir el archivo y guardarlo en formato SYLK (slk que significa viacutenculo simboacutelico) Observe que cuando guarda un libro en este formashyto soacutelo se guarda la hoja activa Por tanto deberaacute hacer lo mismo para cada una de las hojas Vuelva a abrir el archivo y guaacuterdelo nuevamente en el formato deseado es decir en formato xls

Si no puede abrir el archivo

Si el libro estaacute corrupto hasta el punto en el que no puede ni siquiera abrirlo abra la hoja de caacutelculo en Microsoft Word o a traveacutes del visor de hojas de caacutelculo que se puede descargar desde el sitio Web de Microsoft luego copie los datos

66 Excel Los mejores trucos

desde el archivo abierto De todas formas muchas de las foacutermulas formatos etc se perderaacuten

A continuacioacuten abra el nuevo libro y cree un viacutenculo externo con el libro corrupto Por ejemplo =CDocuments and SettingsAlexMis Documentos[Hoja xls]HojalAl Copie este viacutenculo hacia abajo y hacia la derecha tantas filas y columnas como sea necesario Haga lo mismo para cada una de las hojas que contiene el libro Si no puede recordar los nombres de las hojas utilice cualquier nombre utilizando la ruta de archivo correcta y Excel le mostraraacute los nombres de las hojas cuando pulse la tecla Intro

Una uacuteltima cosa que puede hacer es visitar la paacutegina Web de OpenOfficeorg y descargar la versioacuten gratuita de OpenOfficeorg Aunque hay nombres diferentes para las herramientas y los comandos OpenOfficeorg es m u y similar a Excel Esta aplicacioacuten estaacute basada en la misma estructura baacutesica de hoja de caacutelculo que Excel lo que resulta m u y sencillo para los usuarios acostumbrados a la aplicashycioacuten de Microsoft De hecho alrededor del 96 de las foacutermulas que se utilizan en Excel se pueden crear y utilizar en las hojas de caacutelculo de OpenOfficeorg

Para descargar una versioacuten gra tu i ta de OpenOfficeorg vaya a h t t p downloadopenofficeorgindexhtml y descarguacuteela desde el sitio FTP que prefieshyra Luego instale el programa Hay que decir que tambieacuten hay una versioacuten disshyponible de OpenOfficeorg para Macintosh

En muchos casos los datos de Excel se pueden recuperar Sin embargo el coacuteshydigo VBA no podraacute recuperarse debido a incompatibilidades entre Excel y OpenOfficeorg

Si ninguno de estos meacutetodos funciona probablemente tendraacute que pagar dineshyro para intentar recuperar su libro de Excel utilizando alguacuten software especial Puede encontrar software a la venta (para Windows) en el sitio Web de los au toshyres de este libro en la direccioacuten httpwwwozgridcomServicescorrupt-file-recovery-indexhtm

Despueacutes de haber comprado e instalado ExcelFix ejecuacutetelo Seleccione File luego elija el archivo corrupto y haga clic en Diagnose para recuperarlo Entonshyces deberiacutea ver el archivo recuperado en el visor de libros Haga clic en Save Workbook para guardar el libro en un nuevo archivo que pueda ser abierto por Excel

Existe tambieacuten una versioacuten de demostracioacuten que no le permite guardar el archivo pero recuerde que todas las versiones le permiten recuperar tantos arshychivos como desee

CAPIacuteTULO 2

Trucos sobre las caracteriacutesticas

incorporadas en Excel Trucos 16 a 38

Aunque Excel incorpora una gran variedad de caracteriacutesticas estaacutendar para administrar y analizar datos los liacutemites de dichas caracteriacutesticas son a menudo frustrantes Los trucos de este capiacutetulo le proporcionaraacuten numerosos meacutetodos para escaparse de esos liacutemites y hacer de Excel una herramienta mucho maacutes poderosa

Validar datos en base a una lista situada en otra hoja La validacioacuten de datos permite de forma faacutecil especificar reglas que deben seguir los datos Por desgracia Excel obliga a que las listas utilizadas en la validacioacuten de datos deben aparecer en la misma hoja en la que se encuentran eacutestos Pero por fortuna existen formas para saltarse esta limitacioacuten

En este truco proporcionaremos dos meacutetodos que puede utilizar para validar datos basaacutendose en una lista que estaacute situada en otra hoja El primer meacutetodo hace uso de los rangos con nombre que ofrece Excel (que veremos con maacutes detashylle en el capiacutetulo 3) y el segundo utiliza una llamada a una funcioacuten

Meacutetodo 1 Rangos con nombre

Quizaacute el meacutetodo maacutes raacutepido y sencillo para superar la barrera en cuanto a la validacioacuten de datos en Excel es dar nombre al rango donde estaacute situada la lista Para crear un rango con nombre seleccione las celdas que contienen la lista e

uuml

70 Excel Los mejores trucos

introduzca un nombre en el cuadro de nombres que estaacute situado en la parte superior izquierda justo a la izquierda de la barra de foacutermulas Para los propoacutesishytos de este ejemplo supondremos que a dicho rango le llamaremos MiRango

Seleccione la celda en la que desea que aparezca una lista desplegable y entonshyces seleccione la opcioacuten DatosgtValidacioacuten Seleccione la opcioacuten Lista en el cuadro de lista desplegable Permitir y en el cuadro de texto Origen escriba =MiRango Luego haga clic en el botoacuten Aceptar

Dado que hemos utilizado un nombre de rango la lista (aunque resida en otra hoja) puede ser utilizada como lista de validacioacuten

Meacutetodo 2 La funcioacuten INDIRECTO

La funcioacuten INDIRECTO permite hacer referencia a una celda que contiene un texto que representa la direccioacuten de otra celda Entonces puede utilizar esa celda como una celda local de referencia incluso aunque tome sus datos a partir de otra hoja Puede utilizar esta caracteriacutestica para hacer referencia a la hoja en la que reside la lista

Supongamos que la lista esteacute situada en la Hojal en el rango $A$1$A$8 Haga clic en cualquier hoja de una hoja distinta en donde desee que aparezca esta l is ta de va l idac ioacuten (lista de b uacute s q u e d a ) Entonces seleccione la opcioacuten DatosgtValidacioacuten y elija la opcioacuten Lista del cuadro de lista desplegable y en el cuadro de texto Origen escriba el siguiente coacutedigo

= INDIRECTO(Hoj al$A$1$A$8)

Aseguacuterese de que estaacute activada la casilla de verificacioacuten Celda con lista despleshygable y entonces haga clic en el botoacuten Aceptar En ese momento deberiacutea aparecer la lista ubicada en la Hojal en la lista desplegable de validacioacuten

Si el nombre de la hoja en la que estaacute ubicada la lista contiene espacios en blanco necesita utilizar la funcioacuten INDIRECTO de la siguiente forma

=INDIRECTO(Hoja 1$A$1$A$8)

Aquiacute la diferencia es que debe utilizar un apostrofe simple inmediatamente despueacutes de las primeras dobles comillas y otro inmediatamente antes del signo de exclamacioacuten

Siempre es una buena idea utilizar el apostrofe simple independien-H teniente de que el nombre de la hoja contenga espacios o no En

iA cualquier caso siempre podraacute hacer referencia a una hoja que no tenga espacios en su nombre y permite hacer cambios faacutecilmente en un futuro

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 71

Ventajas y desventajas de ambos meacutetodos

Los rangos con nombre y la funcioacuten INDIRECTO tienen cada uno de ellos una ventaja y una desventaja

La ventaja de utilizar nombres de rangos es que los cambios que realice al nombre de la hoja no afectaraacuten a la lista de validacioacuten Esto es precisamente la desventaja de la funcioacuten INDIRECTO en tanto que cualquier cambio que realice al nombre de la hoja no se actualizaraacute automaacuteticamente dentro de la funcioacuten por lo que tendraacute que cambiarla manualmente para que refleje el nuevo nombre

La ventaja de utilizar la funcioacuten INDIRECTO es que si la primera celdafila o la uacuteltima celdafila es eliminada del rango con nombre eacuteste devolveraacute un error de tipo iexclREF Por contra esto es una desventaja de utilizar nombres de rangos si elimina celdas o filas del rango con nombre los cambios no afectaraacuten a la lista de validacioacuten

Controlar el formato condicional con casillas de verificacioacuten Aunque el formato condicional es una de las caracteriacutesticas maacutes potentes de Excel resulta bastante incoacutemodo activarla y desactivarla a traveacutes de los menuacutes y cuadros de diaacutelogo de la interfaz de Excel Si pudieacuteramos antildeadir casillas de verificacioacuten en la hoja de caacutelculo que activasen y desactivasen en el formato condicional podriacuteamos leer los datos de forma mucho maacutes sencillo de cualquier forma el momento que queramos

El formato condicional una caracteriacutestica disponible a partir de Excel 97 aplica formatos a las celdas seleccionadas que coincidan con un cierto criterio que se basa en los valores o foacutermulas que se especifiquen Aunque el formato condicioshynal se utiliza normalmente basaacutendose en valores de celdas si lo basamos en foacutershymulas conseguiremos una flexibilidad mayor para extender el formato condicional a cualquier parte de la hoja de caacutelculo

Configurar casillas de verificacioacuten para formato condicional

Las casillas de verificacioacuten disponibles en la barra de herramientas Formulashyrios devuelven un valor VERDADERO o FALSO (activadadesactivada) a la celda a la que estaacuten vinculadas Combinando una casilla de verificacioacuten de dicha barra de herramientas con el formato condicional utilizando la opcioacuten de foacutermulas (veacutease figura 21) puede activar o desactivar el formato condicional a traveacutes de la casilla de verificacioacuten

D

72 Excel Los mejores trucos

MWWIWfflffl j x j Condicioacuten i

Foacutermula

Valor de la celda

_ j | -Hque desea usar ^BSTv-erdadera

Agre

Sin formato establecido

gar gtgt Eliminar | Aceptar

Uuml

Formato

I Cancelar

Figura 21 Cuadro de diaacutelogo de formato condicional con la opcioacuten de foacutermulas

Cuando se utiliza en combinacioacuten con una foacutermula (como por ejemplo S con la opcioacuten de foacutermulas) el formato condicional da formato

w k automaacuteticamente a una celda siempre que la foacutermulas devuelva VERDADERO Por ello cualquier foacutermula que utilice para este truco debe devolver VERDADERO o FALSO

Para entender de lo que estamos hablando pruebe este sencillo ejemplo que oculta los datos utilizando el formato condicional y una casilla de verificacioacuten Utilizaremos el rango $A$1 $A$10 que estaacute rellenado consecutivamente con los nuacutemeros del 1 al 10 Para insertar una casilla de verificacioacuten desde la barra de he r r amien ta s Formular ios seleccione la opcioacuten de m e n uacute VergtBarras de herramientasgtFormularios y luego haga clic en el icono de casilla de verificacioacuten A continuacioacuten haga clic cerca de la celda Cl situada en la hoja para insertar la casilla de verificacioacuten Haga clic con el botoacuten derecho del ratoacuten en la casilla de verificacioacuten y seleccione la opcioacuten Formato de control Luego vaya a la pestantildea Control y escriba Cl en el cuadro de texto Vincular con la celda tal y como se muestra en la figura 22 y finalmente haga clic en Aceptar

Cuando seleccione la casilla de verificacioacuten que estaacute sobre la celda Cl devolshyveraacute VERDADERO o FALSO a dicha celda Como no tenemos intereacutes en ver dicho valor en la celda cambie el color de la fuente a blanco Ahora seleccione las celdas $A$1$A$10 comenzando por A l Seleccione FormatogtFormato condicional y luego elija la opcioacuten Foacutermula en el primer cuadro de lista desplegable En el cuashydro de texto de la derecha escriba =$C$1 A continuacioacuten haga clic en el botoacuten Formato luego seleccione la pestantildea Fuente y cambie el color de fuente a blanco Finalmente haga clic en Aceptar y de nuevo en Aceptar

Seleccione la casilla de verificacioacuten para activarla y entonces el color de la fuente de las celdas en el rango $A$1 $A$10 cambiaraacute automaacuteticamente al color blanco Si desactiva la casilla de verificacioacuten entonces volveraacute a su color normal

Activar o desactivar el resaltado de los nuacutemeros

La posibilidad de resaltar automaacuteticamente los nuacutemeros que cumplan cierto criterio puede resultar m u y uacutetil para encontrar los datos que necesite en una

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 73

hoja de caacutelculo Para hacer esto comenzaremos seleccionando la celda El (o cualshyquier otra celda que prefiera) y llaacutemela CheckBoxLink utilizando el cuadro de nombre situado en la parte superior a la izquierda de la barra de foacutermulas (veacutease figura 23)

II bullIllll

Colores y liacuteneas j Tamantildeo

Valor

(bull Sin activar ~~ Activado

pound Mixto

Vincular con la celda jCl

i Sombreado 3D

Proteger | Propiedades iexcl Web

M

Aceptar J

xjl

Control

Cancelar

Figura 22 Cuadro de diaacutelogo de formato del control

1 bull (iliacuteffililffflB^^ bull lU archivo Edicioacuten Ver Insertar Formato Herramientas Datos

J d i j U iacute JL -J j j - Anal T 10 - H K S I 1 I ^j -3

CheckBoxLink bull amp

| A B C D E

H I 1 2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

|n A bull H H o j a l Hoja2 Hoja3

Listo

Ventana

a iquest z -4 000 euro -ooacute

I F

i

M

- - fl x

l U U ~Jgt 100 - laquobull i

i =F sF bull - laquo1 T -^

G H 1 T j

mdash 1

^ | i bull m

NUM

Figura 23 Celda El con el nombre CheckBoxLink

74 Excel Los mejores trucos

Antildeada una casilla de verificacioacuten desde la barra de herramientas Formularios a una hoja en blanco llame a esta hoja Casillasdeverificacioacuten y coloquacuteese en la celda A l Vincule esta casilla de verificacioacuten a la celda CheckBoxLink haciendo clic con el botoacuten derecho en la casilla y seleccionando la opcioacuten Formato de conshytrol y luego yendo a la pestantildea Control Escriba CheckBoxLink en el cuadro de texto correspondiente y haga clic en Aceptar Haga clic con el botoacuten derecho nuevamente sobre la casilla de verificacioacuten seleccione Modificar texto y entonces introduzca el texto Mostrarme En la columna A de otra hoja introduzca los nuacutemeros del 25 al 2500 en incrementos de 25 Deacutele el nombre Nuacutemeros a este rango y luego oculte la hoja mediante la opcioacuten FormatogtHojagtOcultar

Para introducir raacutepidamente estos nuacutemeros introduzca el nuacutemero 25 en la celda Al y 50 en la celda A2 Haga clic en el marcador de

s - propagacioacuten (el pequentildeo cuadro negro que aparece en la esquina inferior derecha de la celda A2) y sin soltar el botoacuten del ratoacuten arraacutestrelo hasta la fila 100

Seleccione la celda Bl de la hoja Casillasdeverificacioacuten y deacutele el nombre PrimerNum Seleccione la celda DI y deacutele el nombre SegundoNum En la celda Cl escriba la palabra Y Ahora seleccione la celda Bl (PrimerNum) y mantenienshydo pulsada la tecla Control seleccione la celda DI (SegundoNum) Entonces vaya a DatosgtValidacioacutengtConfiguracioacuten y en el cuadro de lista desplegable Permitir seshyleccione la opcioacuten Lista y en el cuadro de texto Origen escriba =Nuacutemeros Aseshyguacuterese de que la casilla de verificacioacuten Celda con lista desplegable esteacute activada y entonces haga clic en Aceptar Esto crearaacute una lista desplegable de nuacutemeros del 25 al 2500 en ambas celdas

En la celda Al escriba el encabezado Cantidad Inmediatamente debajo reshyllene el rango A2A20 con cualesquiera nuacutemeros entre 25 y 2500 Seleccione las celdas A2A20 (asegurando se debe comenzar desde la celda A2 para que sea la seleccioacuten activa) y seleccione FormatogtFormato condicional En el cuadro de diaacuteshylogo que aparece mostrado en la figura 24 seleccione la opcioacuten Foacutermula y en el cuadro de texto de la derecha escriba la siguiente foacutermula

=Y($A2gt=PrimerNum$A2lt=SegundoNumCheckBoxLink)

Haga clic en el botoacuten Formato y configure el formato que desee o combinashycioacuten de formatos Luego haga clic en Aceptar y de nuevo en Aceptar para cerrar el siguiente cuadro de diaacutelogo Cambie tambieacuten el color de la fuente de la celda El a blanco para que no aparezcan los valores VERDADERO o FALSO Desde la celda Bl seleccione cualquier nuacutemero y luego cualquier otro que sea mayor que el primero desde la celda DI

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 75

IJ1WB Il l l i l l MI 1 1 1 1 Mi Condicioacuten I

MBEZm^

j Foacutermula bull | =Y(|A2 gt=PrimerNum $A2 lt=SegundoNum CheckBoxLink

Vista previa del formato que desea usar cuando la condicioacuten sea verdadera AaBbCcYyZz

Agrega rraquo J Eliminar | Aceptar

x|

) 3 1 tEff^^degJ

| Cancelar j gt

Figura 24 Cuadro de diaacutelogo de formato condicional

Active la casilla de verificacioacuten con lo que los formatos condicionales que acabamos de configurar se aplicaraacuten automaacuteticamente a los nuacutemeros que esteacuten dentro del rango que acabamos de especificar Desactive la casilla de verificacioacuten y el formato volveraacute a ser el predeterminado Como puede ver utilizando una casilla de verificacioacuten en combinacioacuten con el formato condicional puede hacer cosas que nadie imaginariacutea todo ello sin utilizar coacutedigo VBA

Identificar foacutermulas con el formato condicional Excel no dispone de una funcioacuten incorporada para identificar foacutermulas Una vez que una foacutermula es introducida en una celda soacutelo puede descubrir siacute una celda contiene un valor estaacutetico o un valor calculado a partir de una foacutermula haciendo clic sobre ella y mirando la barra de foacutermulas Este truco soluciona esta carencia

El coacutedigo VBA para esta funcioacuten personalizada (tambieacuten llamada funcioacuten deshyfinida por el usuario) le permite identificar las celdas que contienen foacutermulas sin necesidad de tener que hacer clic en 10000 celdas y examinarlas una a una Para crear un cazador inteligente de foacutermulas comience seleccionando la opcioacuten HerramientasgtMacrogtEditor de Visual Basic (Al t Opcioacuten-Fl l ) y luego seleccione lnsertargtMoacutedulo Entonces introduzca la siguiente funcioacuten

Function IsFormula(Check_Cell As Range) IsFormula = Check_CellHasFormula

End Function

Ahora cierre la ventana (pulse AltComando-Q) A partir de entonces la funshycioacuten estaraacute disponible para cualquier celda de cualquier hoja de este libro introshyduciendo por ejemplo la foacutermula = I sFo rmula ($A$1) Tambieacuten puede acceder a la funcioacuten a traveacutes de lnsertargtFuncioacuten seleccionando la opcioacuten Definidas por el usuario en la lista de categoriacuteas y luego seleccionando IsFormula

La foacutermula devuelve VERDADERO si la celda a la que se hace referencia conshytiene una foacutermula y FALSO en caso contrario Puede utilizar este resultado booleano en combinacioacuten con el formato condicional de forma que todas las foacutershymulas se resalten automaacuteticamente con el formato que elija Una de las mejores

76 Excel Los mejores trucos

cosas a la hora de utilizar este meacutetodo es que el sistema de identificacioacuten de foacutershymulas para la hoja de caacutelculo seraacute dinaacutemico Esto significa que si antildeade o quita una foacutermula el formato cambiaraacute de acuerdo con ello A continuacioacuten explicashyremos coacutemo hacer esto Seleccione un rango de celdas de la hoja de caacutelculo (por ejemplo A1J500) e incluya algunas celdas extra en caso de que vaya a antildeadir maacutes foacutermulas posteriormente

Evite la tentacioacuten de seleccionar toda la hoja ya que esto antildeadiraacute una sobrecarga de trabajo innecesaria

Teniendo seleccionadas estas celdas y siendo la celda Al la activa seleccione FormatogtFormato condicional Seleccione la opcioacuten Formato en el cuadro de lista desplegable e introduzca =IsFormula(Al) en el cuadro de texto situado a la dereshycha Haga clic el botoacuten Formato y elija cualquier formato que desee para idenshytificar las celdas con foacutermulas Luego haga clic en Aceptar dos veces para cerrar ambos cuadros de diaacutelogo

A veces cuando se introducen foacutermulas en el formato condicional Excel intentaraacute colocar comillas alrededor de las foacutermulas despueacutes de hacer clic en Aceptar Esto ocurre porque Excel reconoce que ha introducido un texto no una foacutermula Si ocurre esto vuelva al cuadro de diaacutelogo de formato condicional elimine las comillas y pulse Aceptar

Llegados a este punto la foacutermula especificada deberiacutea aplicarse a todas las celdas de la hoja que contengan una foacutermula Si elimina o sobrescribe una celda que contenga una foacutermula el formato condicional desapareceraacute Igualmente si introduce una nueva foacutermula en cualquiera de las celdas dentro del rango queshydaraacute resaltada Este sencillo truco que utiliza el formato condicional hace mucho maacutes sencillo manejar hojas de caacutelculo cuando es necesario mucho tiempo para poder mantenerla o modificarla

BM Contar o sumar celdas que se ajustan al criterio W del formato condicional ^H Despueacutes de ver los resultados del formato condicional quizaacute desee crear

foacutermulas que hagan referencia solamente a los datos que han sido formateados condicionalmente Este no entiende bien este tipo de caacutelculos pero puede aprender a hacerlo

Normalmente los usuarios de Excel se preguntan iquestCoacutemo puedo hacer caacutelcushylos solamente en las celdas que tienen un color de fondo en especial Esta cues-

N

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 77_

tioacuten surge a menudo porque Excel no dispone de una funcioacuten estaacutendar para lleshyvar a cabo esta tarea Sin embargo se puede hacer utilizando una funcioacuten persoshynalizada como ya veremos posteriormente en otro truco

El uacutenico problema que surge al utilizar una funcioacuten personalizada es que no utiliza cualquier formato que se haya aplicado mediante el formato condicional Sin embargo pensando un poco maacutes podraacute obtener los mismos resultados sin tener que utilizar una funcioacuten personalizada

Digamos que tiene u n a larga lista de nuacutemeros en el r ango de celdas $A$2$A$100 Ha aplicado un formato condicional a estas celdas de forma que cualquier nuacutemero que esteacute entre 10 y 20 esteacute marcado Entonces tiene que antildeashydir el valor de las celdas que se ajusten al criterio que acaba de establecer y luego realizar la suma de dichos valores utilizando el formato condicional No tiene que preocuparse por el formato condicional que ha aplicado a esas celdas pero necesita conocer el criterio que fue utilizado para marcarlas (en este caso aqueshyllas celdas cuyos valores estaacuten entre 10 y 20)

Puede utilizar la funcioacuten SUMAR SI para antildeadir un rango de celdas que se ajusten a un cierto criterio pero soacutelo a uno Si necesita utilizar maacutes de un factor en el criterio puede utilizar una foacutermula matricial

Puede utilizar una foacutermula matricial de esta forma

=SUMA(SI($A$2$A$10 0gt10SI($A$2$A$10 0lt20$A$2$A$10 0)))

Cuando introduzca foacutermulas matriciales no pulse la tecla Intro en vez de ello pulse Control-Mayuacutes-Intro De esta forma Excel colocaraacute llaves alrededor de la foacutermula de esta forma

=SUMA(SI($A$2$A$100gt10SI($A$2$A$100lt2 0$A$2$A$100)))

Si introduce las llaves manualmente no funcionaraacute Debe permitir que Excel lo haga automaacuteticamente Tambieacuten tenga en cuenta que utilizar foacutermulas matriciales puede ralentizar los caacutelculos de Excel si hay muchas referencias a rangos de gran tamantildeo

Una alternativa

Como alternativa puede utilizar una columna de maacutes (por ejemplo la coshylumna B) para hace referencia a las celdas de la columna A Las referencias devolshyveraacuten resultados en la columna B soacutelo si el valor cumple las condiciones que haya establecido por ejemplogt10 y lt20 Para hacer esto siga estos pasos

Seleccione la celda B l e introduzca la siguiente foacutermula

= S I ( Y ( A 2 gt 1 0 A 2 lt 2 0 ) A 2 )

78 Excel Los mejores trucos

Propague esta foacutermula a cada celda llegando a la B100 Despueacutes debe rellenar los valores deberiacutea tener los valores en la columna B que esteacuten entre 10 y 20

Para copiar raacutepidamente una foacutermula hacia abajo hasta la uacuteltima Ci fila utilizada de la columna adyacente introduzca la foacutermula en la

primera celda (B2) vuelva a seleccionar esa celda y haga doble clic en el pequentildeo recuadro negro de propagacioacuten situado en la esquina inferior derecha de la celda Tambieacuten puede hacer esto seleccionando la opcioacuten EdicioacutengtRellenargtHacia abajo

Ahora ya puede seleccionar cualquier celda en la que desea que aparezca el resultado de la suma utilizando la funcioacuten estaacutendar SUMA (si lo desea puede ocultar la columna B de forma que no vea una columna extra llena de los valoshyres devueltos por la foacutermula)

Ciertamente los meacutetodos anteriores hacen bien su trabajo pero Excel proporshyciona otra funcioacuten que le permite especificar dos o maacutes criterios Esta funcioacuten es parte de las funciones de base de datos de Excel y se llama BDSUMA Para probarshyla utilice el mismo conjunto de nuacutemeros situados en el rango A2A100 Selecshycione las celdas C1D2 y deacutele el nombre CriterioSuma a este rango Luego seleccione la celda Cl e introduzca =$A$1 una referencia a la primera celda de la hoja Copie esto a la celda DI con lo que tendriacutea un duplicado del encabezado de la columna A Estas copias las utilizaremos como encabezados para el criterio de BDSUMA (C1D2) que llamamos CriterioSuma

En la celda C2 introduzcagt 10 En la celda D2 introduzca lt20 En la celda de la que desea mostrar el resultado introduzca el siguiente coacutedigo

=BDSUMA($A$1$A$10 0$A$1CriterioSuma)

BDSUMA es el meacutetodo preferido y maacutes eficaz para trabajar con celdas que deshyben cumplir un cierto criterio A diferencia de las matrices las funciones de base de datos incorporadas estaacuten disentildeadas especiacuteficamente para este propoacutesito e inshycluso cuando hacen referencia a un rango m u y amplio y se utilizan con grandes nuacutemeros los efectos negativos que provocan en el rendimiento son mucho meshynores que los provocados por las foacutermulas matriciales

Resaltar Filas o columnas impares Seguramente habraacute visto hojas de caacutelculo de Excel que utilizan colores alternos para las filas Por ejemplo las filas impares podriacutean ser blancas y las pares grises El formato condicional hace que esto sea muy sencillo

Alternar colores o sombreados da un aspecto profesional y puede hacer maacutes faacutecil la lectura de los datos Puede aplicar este formato manualmente pero como

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 79

ya se imaginaraacute resulta una tarea m u y pesada si tiene que actualizar dicho formato cada vez que antildeade o quita datos de la tabla ademaacutes de una infinita paciencia Por fortuna el formato condicional puede reducir la paciencia necesashyria y mejorar en gran medida su imagen profesional

Supondremos que los datos abarcan el rango Al H 100 Seleccione este rango de celdas comenzando por la celda A l de forma que nos aseguramos que sea la celda activa Entonces vaya a FormatogtFormato condicional Seleccione la opcioacuten Foacutermula del primer cuadro de lista desplegable y en el cuadro de texto situado a su derecha introduzca la siguiente foacutermula tal y como se muestra en la figura 25

=RESIDUO(FILA()2)

mmmmmmwm^^mKm Condicioacuten i

| Foacutermula j r ] |=RESIDUO(FILA()j2)|

Vista previa del formato que desea usar cuando la condicioacuten sea verdadera

Agregar gtgt

amp$$bullgtbullampgtbull

AaBbCcYyZz

Eliminar 1 Aceptar

2lt1|

1 Aacute bull

Formato j

1 Cancelar ]

Figura 25 Cuadro de diaacutelogo del formato condicional con la foacutermula RESIDUO para especificar un formato a cada fila par

Haga clic en el botoacuten Formato y elija el formato que desee aplicar a cada fila par haga clic en Aceptar y luego haga clic otra vez en Aceptar Entonces el formato que haya especificado deberiacutea aplicarse a cada fila par situada en el rango Al H100 Con esto ya puede reservarse parte de su paciencia para el resto del diacutea

Si desea utilizar este meacutetodo con las columnas en vez de con las filas utilice esta foacutermula

=RESIDUO(COLUMNA()2)

Aunque este meacutetodo aplica el formato especificado a cada fila o columna par de forma raacutepida y sencilla no es dinaacutemico Las filas que no contengan datos seguiraacuten teniendo el formato especificado Esto puede no resultar ideal y hacer que la lectura de la hoja de caacutelculo sea algo maacutes difiacutecil Hacer que el resaltado de filas o columnas sea dinaacutemico requiere de un truco un poco maacutes sofisticado

Nuevamente seleccione el rango A1H100 aseguraacutendose de que la celda Al sea la activa Entonces vaya a FormatogtFormato condicional y seleccione la opshycioacuten Foacutermula en el cuadro de lista desplegable Luego en el cuadro de texto de la derecha introduzca la siguiente foacutermula

=Y(RESIDUO(FILA()2)CONTARA($A1$H1))

80 Excel Los mejores trucos

^ Observe que no se hace referencia absoluta a las filas (utilizamos el ^laquo signo del doacutelar) pero siacute a las columnas w

Haga clic en el botoacuten Formato y seleccione el formato que desee haciendo clic en el botoacuten Aceptar dos veces para cerrar ambos cuadros de diaacutelogo Con esto cualquier fila que esteacute en el rango A1H100 y que no contengan datos no cambiaraacute su formato Si elimina datos de una fila en particular de la tabla t amshypoco tendraacute el formato condicional Si antildeade nuevos datos en cualquier lugar del rango Al H100 entonces se le aplicaraacute el formato condicional automaacuteticamente

Esto funciona asiacute porque cuando introdujimos la foacutermula para el formato condicional la foacutermula en siacute debe devolver un valor VERDADERO o FALSO En el lenguaje de las foacutermulas de Excel el valor 0 corresponde con el valor FALSO mientras que cualquier nuacutemero mayor que 0 corresponde con el valor VERDAshyDERO Cuando utilizamos la foacutermula =RESIDU0 (FILA () 2 ) devuelve un valor 0 (FALSO) o bien un nuacutemero mayor que 0 (VERDADERO)

La funcioacuten =FILA () es una funcioacuten volaacutetil que siempre devuelve el nuacutemero de fila que corresponde con la celda en la que reside Utilizamos la funcioacuten REshySIDUO para devolver el resto de dividir un nuacutemero por otro En nuestro caso estamos dividiendo el nuacutemero de fila por 2 por lo que todas las filas pares devolshyveraacuten un valor de 0 mientras que las impares devolveraacuten un valor mayor que 0

Cuando incluye las funciones FILA () y CONTARA dentro de la funcioacuten Y sigshynifica que deben devolver VERDADERO (o cualquier nuacutemero mayor que 0) las funciones RESIDUO y CONTARA para que la funcioacuten Y devuelva VERDADERO La funcioacuten CONTARA sirve para contar todas aquellas celdas que no esteacuten vaciacuteas

Crear efectos en 3D en tablas o celdas Cuando ve un efecto 3D en un programa como pueda ser Excel lo que estaacute viendo en realidad es una ilusioacuten creada por un formato en particular Es sencillo crear esta ilusioacuten aplicando un cierto formato a una celda o rango de celdas

Para comenzar con un ejemplo sencillo daremos un efecto 3D a una celda para que aparezca en relieve como si fuera un botoacuten En una hoja en blanco seleccione la celda D5 (seleccionamos esta celda para que no esteacute en uno de los bordes y no apreciemos bien el efecto) Vaya a FormatogtCeldasgtBordes En la lista de estilos elija la segunda liacutenea maacutes gruesa Aseguacuterese de tener seleccionado el color negro (o bien el automaacutetico en caso de no haber cambiado el valor predeshyterminado) Haga clic entonces en el borde derecho y luego en el borde inferior que aparece en la muestra de la parte de izquierda Seleccione ahora el color blanco en el cuadro de lista desplegable de colores Todaviacutea deberiacutea estar seleccio-

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 82

nado el segundo borde maacutes grueso por lo que esta vez haga clic en los otros dos bordes que quedan por seleccionar en la celda es decir el izquierdo y el superior Vaya a la pestantildea Tramas y seleccione el sombreado gris para la celda Haga clic en Aceptar y quite la seleccioacuten de la celda D5 Ahora deberiacutea ver coacutemo la celda D5 tiene un efecto relieve que le da un aspecto de botoacuten Todo ello lo hemos conseguido utilizando los bordes y el sombreado

Si por diversioacuten o por dar variedad desea dar a una celda la apariencia de estar presionada seleccione por ejemplo la celda E5 (porque es la que estaacute jun to a la D5 y hace que funcione este ejemplo) Vaya a FormatogtCeldasgtBordes selecshycione el segundo borde maacutes grueso para los estilos de liacutenea y aseguacuterese de que el color elegido es el negro

Aplique el formato a los bordes superior e izquierdo de la celda Seleccione el color blanco y aplique la liacutenea blanca a los bordes derecho e inferior de la celda Haga clic entonces en la pestantildea Tramas y cambie el formato de la celda a gris Haga clic en Aceptar y podraacute ver coacutemo la celda aparece con el efecto de estar presionada Este efecto es maacutes impresionante si se contrasta con el efecto de la celda D5 que estaacute en relieve

Utilizar un efecto 3D en una tabla de datos

A continuacioacuten vamos a experimentar con esta herramienta para ver los efecshytos que podemos aplicar a las tablas o a las hojas de caacutelculo

Seleccione las celdas D5 y E5 y haga clic en el icono Copiar formato (con forma de brocha) situado en la barra de herramientas estaacutendar Haga clic en la celda F5 y sin soltar el botoacuten del ratoacuten arraacutestrelo hasta la celda J5 Ahora selecshycione las celdas D5 J5 y de nuevo haga clic en el icono Copiar formato de la barra de herramientas estaacutendar Haga clic en la celda D6 y sin soltar el botoacuten del ratoacuten arraacutestrelo hasta la celda J15 Esto deberiacutea provocar un efecto como el que apareshyce en la figura 26

Hemos utilizado un borde bastante grueso para asegurarnos de que el efecto puede verse claramente Sin embargo quizaacute desee matizarlo utilizando un estilo de liacutenea algo maacutes fino Tambieacuten podriacutea utilizar cualquiera de los otros estilos de liacutenea para producir un efecto auacuten mayor La mejor forma de encontrar una bueshyna combinacioacuten es utilizar el sistema de prueba y error en una hoja en blanco hasta dar con el efecto deseado La uacutenica limitacioacuten que tiene que es su imaginashycioacuten y quizaacute su gusto

Tenga siempre en mente que los efectos 3D puede mejorar la lectura de una hoja de caacutelculo y proporcionar un aspecto maacutes profesional pero cuando se utiliza en exceso puede tener el efecto contrario Recuerde utilice todo como delacioacuten

Excel Los mejores trucos

i C D

MM^IM

E F G H

SlllliMntildeSiacute lEacutel i l l l l^

Silii i i l iSiSII^

^SSimWMampMB

i J p-^7~^

Figura 26 Efecto 3D aplicado a un rango de celdas

Si desea dar un paso maacutes allaacute a la hora de aplicar efectos 3D de forma au to shymaacutetica y dinaacutemica puede combinar este truco con el uso del formato condicioshynal de forma que la aplicacioacuten de estilos sea automaacutetica

Activar y desactivar el formato condicional y la validacioacuten de datos con una casilla de verificacioacuten La validacioacuten de datos puede resultar uacutetil para evitar que un usuario introduzca accidentalmente datos incorrectos Sin embargo algunas veces desearaacute hacer maacutes sencilla la introduccioacuten de datos que de otra forma seriacutea imposible bien porque fuese marcada por el formato condicional o bien completamente bloqueada por una validacioacuten de datos

Normalmente permitiraacute que los usuarios introduzcan datos que de otra forshyma no podriacutean desactivando el formato condicional o la validacioacuten de datos para dichos celdas De todas formas existe una forma sencilla para hacer esto puede combinar una simple casilla de verificacioacuten con la validacioacuten de datos

Para este ejemplo aplicaremos un formato condicional a un rango de celdas de forma que cualquier dato que aparezca maacutes de una vez quedaraacute resaltado para su faacutecil identificacioacuten Supondremos que la tabla de datos se extiende por el rango $A$1 $H$100 Para aplicar un formato condicional a este rango de forma que se puedan identificar los duplicados hacen falta unos cuantos pasos

Primeramente seleccione la celda Kl y deacutele el nombre CheckBoxLink escrishybiendo dicho nombre en el cuadro de nombres de la parte superior izquierda de la pantalla Si la barra de herramientas Formularios no estaacute visible mueacutestrela Enshytonces haga clic en el icono correspondiente a la casilla de verificacioacuten Luego

TRUCO

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 83

haga clic en cualquier lugar de la hoja de caacutelculo que esteacute fuera del rango anteshyriormente citado para antildeadir la casilla de verificacioacuten

Haga clic con el botoacuten derecho en la casilla de verificacioacuten y seleccione la opshycioacuten Formato de control Luego vaya a la pestantildea Control y escriba en el cuadro de texto CheckBoxLink y haga clic en Aceptar Seleccione la celda A l y sin soltar el botoacuten del ratoacuten seleccione un rango hasta la celda H100 Es importante que la celda Al sea la activa en la seleccioacuten Vaya a FormatogtFormato condicioshynal seleccione la opcioacuten Foacutermula en el cuadro de lista desplegable e introduzca la siguiente foacutermula en el cuadro de texto situado a su derecha (tal y como se muestra en la figura 27)

=Y(CONTARSI($A$1$H$10 0 A1)gt1 CheckboxLink)

Condicioacuten i

| Foacutermula j | | = V(CONT AR 5I($ A$ 1 $H$ 100 A1) gt 1 CheckboxLink)

Vista previa del formato que desea usar cuando la condicioacuten sea verdadera

Agre

aacuteEacuteUumlkCampamp y

^gar raquo j Eliminar j Aceptar

2Siexcl

1iexcl |[Formato jj j

Cancelar

Figura 27 Cuadro de diaacutelogo de formato condicional con la foacutermula que da formato resaltando los valores duplicados

Haga clic en el botoacuten Formato y en la pestantildea Tramas seleccione el color que desea aplicar a los datos duplicados Haga clic en el botoacuten Aceptar de ambos cuadros de diaacutelogo para salir

Dado que la casilla de verificacioacuten que acabamos de antildeadir estaacute activada el viacutenculo de celda en Kl (CheckBoxLink) leeraacute el valor VERDADERO por lo que todos los valores duplicados dentro del rango $A$1$A$100 apareceraacuten resaltashydos En el momento en el que desactive la casilla de verificacioacuten el viacutenculo de su celda (CheckBoxLink) devolveraacute el valor FALSO por lo que los valores duplicados no se resaltaraacuten

Esta casilla de verificacioacuten le proporciona un interruptor con el cual poder activar o desactivar el formato condicional de una hoja sin tener que utilizar el cuadro de diaacutelogo Formato condicional Puede utilizar el mismo principio con la validacioacuten de datos utilizando la opcioacuten de foacutermula

Todo esto funciona porque hemos utilizado la funcioacuten Y Esta funcioacuten devolshyveraacute el valor VERDADERO si ocurren estas dos siguientes cosas

CONTAR SI ($ A$ 1$H$100A1)gt1 debe devolver VERDADERO y el viacutenculo de celda para la casilla de verificacioacuten (CheckBoxLink) tambieacuten debe devolver VERshyDADERO En otras palabras para que la funcioacuten Y devuelva VERDADERO amshybas condiciones tambieacuten deben ser verdaderas

84 Excel Los mejores trucos

TRUCO Admitir muacuteltiples listas en un cuadro de lista desplegable Cuando trabajamos con muacuteltiples listas podemos forzar que cambie una lista utilizando una combinacioacuten de botones de opcioacuten y un cuadro de lista desplegable

Externo ofrece numerosas alternativas a los usuarios para seleccionar eleshymentos de una lista como pueda ser nombres productos diacuteas de la semana o sea lo que sea que componga la lista Sin embargo para acceder a maacutes de una lista de elementos simultaacuteneamente generalmente es necesario utilizar tres controles separados como por ejemplo tres cuadros de lista desplegable de la barra de herramientas Formularios

En vez de esto podemos utilizar un cuadro de lista desplegable en combinashycioacuten con botones de opcioacuten (tambieacuten disponibles en la barra de herramientas Formularios) para hacer que una lista cambie automaacuteticamente de acuerdo al botoacuten de opcioacuten que se haya elegido Para ver coacutemo funciona esto introduzca los nuacutemeros del 1 al 7 en el rango de celdas Al A7 de una nueva hoja En las celdas Bl B7 introduzca los diacuteas de la semana empezando por el lunes y terminando el domingo En las celdas C1C7 introduzca los meses desde enero hasta julio

Las caracteriacutesticas de propagacioacuten automaacutetica de Excel pueden hacer S^ este trabajo de forma mucho maacutes raacutepida y sencilla Simplemente

w^ introduzca un 1 en la celda Al seleccioacutenela y mientras mantiene pulsada la tecla Control haga clic en el cuadro de propagacioacuten situado la esquina inferior derecha de la celda Manteniendo pulsado el botoacuten del ratoacuten y la tecla Control arraacutestrelo hasta la celda A7 Es el rellenaraacute automaacuteticamente las celdas con los nuacutemeros del 1 al 7 Igualmente puede introducir lunes en la celda Bl y haga doble clic en el cuadro de propagacioacuten de dicha celda Finalmente introduzca enero en la celda Cl y haga lo mismo que con los diacuteas de la semana Veraacute como Excel rellenaraacute los diacuteas los meses de forma automaacutetica

Seleccione la opcioacuten VergtBarras de herramientasgtFormularios y haga doble clic en el icono Botoacuten de opcioacuten de dicha barra de herramientas Luego haga clic en tres lugares cualesquiera de la hoja de caacutelculo para colocar tres botones de opshycioacuten

Igualmente haga clic en el icono de Cuadro combinado que haga clic en cualshyquier lugar de la hoja de caacutelculo para insertar un cuadro de lista desplegable en ella Utilice los marcadores del cuadro de lista desplegable para cambiar su tamashyntildeo y su posicioacuten asiacute como el de los botones de opcioacuten para que esteacuten situados justo debajo de eacutel

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 85

Haga clic con el botoacuten derecho en el primer botoacuten de opcioacuten seleccione la opcioacuten Modificar texto y entonces reemplace el texto predeterminado por el texto Nuacutemeros Haga lo mismo con el segundo botoacuten de opcioacuten cambiando el texto por Diacuteas de la semana y con el tercero cambiando el texto por Meses Puede ver el resultado de esto en la figura 28

1

2

3

4

5

6

7

3

9

10 l

11 12 13 14 15

16

17

13

19 20

H i bull bull

B

1 Lunes

2 Martes

3 Mieacutercoles

4 Jueves

5 Viernes

6 Saacutebado

7 Domingo

C

Enero

Febrero

Marzo

Abril

Mayo

Junio

Julio

Esta celda contendraacute los nuacutemeros 1 2 oacute 3 dependiendo del botoacuten

[de opcioacuten seleccionado

f-

$C$1$C$

Esta celda reflejaraacute el elemento elegido en el cuadro de lista I desplegable y se puede usar-corno el argumento necesario para la foacutermula de buacutesqueda

Mayo

O Nuacutemeros

O Diacuteas de la semana

$bull Meses

I Esta direccioacuten cambiaraacute con cada seleccioacuten realizada en los botones de opcioacuten provocando que la lista del cuadro desplegable cambie

Hojal Hoja2 Hoja3 iexclD Figura 28 Cuadro de lista desplegable con muacuteltiples listas controlado por

de opcioacuten botones

Ahora mientras mantiene pulsada la tecla Control haga clic en cada uno de los botones de opcioacuten de forma que todos queden seleccionados y entonces haga clic con el botoacuten derecho del ratoacuten sobre uno de ellos y seleccione la opcioacuten Forshymato de control En la pestantildea Control especifique $F$1 como celda vinculada (aseguacuterese de utilizar esta referencia absoluta con los siacutembolos del doacutelar)

En la celda E6 introduzca la siguiente foacutermula

=DIRECCION(l$F$l) amp amp DIRECCIOacuteN(7$F$1)

Seleccione la opcioacuten lnsertargtNombregtDefinir En el cuadro de texto de la parte superior escriba MiRango y en el cuadro de texto Se refiere a escriacutebalo siguiente

=INDIRECTO($E$6)

Haga clic en Agregar y luego en Aceptar Haga clic con el botoacuten derecho del ratoacuten en el cuadro de diaacutelogo que antildeadimos anteriormente y seleccione la opcioacuten Formato de control En la pestantildea Control escriba MiRango en el cuadro de texto Rango de entrada y la celda $G$1 como viacutenculo Pulse entonces el botoacuten Acepshyta r Ahora deberiacutea ser capaz de seleccionar uno de los botones de opcioacuten con lo que la lista contenida en el cuadro de lista desplegable deberiacutea reflejar

86 Excel Los mejores trucos

automaacuteticamente el botoacuten de opcioacuten elegido Cuando configure todo esto para su propia hoja de caacutelculo deberiacutea utilizar algunas celdas que estuviesen fuera de la pantalla como origen de las listas y viacutenculos del cuadro de lista desplegable Incluso desearaacute ocultar estas celdas a los usuarios de forma que los viacutenculos esteacuten donde deberiacutean Tambieacuten necesitaraacute modificar las dos funciones DIRECshyCIOacuteN para que reflejen el rango de celdas que esteacute utilizando En las funciones que hemos utilizado en este ejemplo el 1 representa la primera fila de la lista mientras que el 7 representa el nuacutemero de la uacuteltima fila

Crear listas de validacioacuten que cambien en base a la seleccioacuten realizada en otra lista Las necesidades en la validacioacuten pueden variar dependiendo del contexto en el que sean utilizadas De todas formas puede crear una hoja de caacutelculo en la que una lista de validacioacuten cambie dependiendo de lo que se seleccione en otra

Para hacer que funcione este truco lo primero que tiene que hacer es rellenar la hoja de caacutelculo con algunos datos En una hoja en blanco llamada Listas y con la celda Al seleccionada escriba el siguiente encabezado Objetos En la celda Bl escriba el encabezado Lista correspondiente En las celdas A2A5 repishyta la palabra Cubo

En las celdas A6A9 repita la palabra Sofaacute En las celdas A l 0 A l 3 repita la palabra Ducha En las celdas A1417 repita la palabra Coche Luego comenshyzando por la celda B2 y terminando por la celda B17 introduzca las siguientes palabras (que se corresponden con la lista de objetos) Plomo Acero Abrishydor Tapa Cama Asiento Saloacuten Colchoacuten Lluvia Caliente Friacuteo Temshyplado Viaje Vacaciones Sombrero y Bota

En la celda Cl introduzca el encabezado Lista de validacioacuten A continuacioacuten para crear una lista de entradas uacutenicas introduzca la palabra Cubo en la celda C2 la palabra Sofaacute en la celda C3 la palabra Ducha en la celda C4 y la palabra Coche en la celda C5

Tambieacuten puede utilizar el filtro avanzado para crear una lista de H^ elementos uacutenicos Seleccione las celdas Al A17 seleccione DatosgtFiltrogt

Filtro avanzado y entonces active la casilla de verificacioacuten Soacutelo registros uacutenicos y seleccione el botoacuten de opcioacuten Filtrar la listas y moverla a otro lugar Haga clic en Aceptar y entonces seleccione las celdas A2A14 (que incluiraacuten las celdas ocultas) Coacutepielas y peguacuteelas a la celda Al8 Seleccione entonces la opcioacuten DatosgtFiltrogtMostrar todos seleccione la lista de objetos uacutenicos y coacutepielas y peguacuteelas en la celda A2 Con esto ya tendraacute la lista

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 87

Seleccione la opcioacuten lnsertargtNombregtDefinir y en el cuadro de texto Nombres en el libro escriba la palabra Objetos

En el cuadro de texto Se refiere a escriacutebalo siguiente foacutermula y luego haga clic en Agregar

=DESREF($A$200CONTARA($A$1$A$2 0) 1)

Ahora escriba en el cuadro de texto Nombres en el libro el nombre ListaVal y en el cuadro de texto Se refiere a introduzca $C$2$C$5 Haga clic en Agregar Ahora inserte otra hoja llaacutemela Hojal y coloque todos estos datos en ella Teniendo activa auacuten la Hojal seleccione la opcioacuten de menuacute lnsertargtNombregt Definir

En el cuadro de tex to de la pa r t e super ior a i n t roduzca la pa l ab ra ListaCorrespondiente y en el cuadro de texto de la parte inferior introduzca esta foacutermula y haga clic en Agregar

= DESREF(INDIRECTO(DIRECCIOacuteN(COINCIDIR(CeldaVallObj ectos0)+12

Listas))00CONTARSI(ObjectosCeldaVall)1)

En el cuadro de texto Nombres en el libro escriba la palabra CeldaVall y en el cuadro de texto Se refiere a introduzca $D$6 y haga clic en Agregar De nuevo e introduzca en el primer cuadro de texto la palabra CeldaVal2 y $E$6 en el seshygundo y luego haga clic en Agregar

Ahora haga clic en Aceptar para volver a la Hojal y entonces seleccione la celda $D$6

Eacuteste es un proceso largo pero ya estamos cerca del finalVaya a Datosgt ValidacioacutengtConfiguracioacuten Seleccione la opcioacuten Lista del cuadro de lista desplega-ble y en el cuadro de texto Origen escriba = ListaVal Aseguacuterese de que estaacute activada la casilla de verificacioacuten Celda con lista desplegable y haga clic en Acepshytar

Seleccione ahora la celda E6 y de nuevo vaya a DatosgtValidacioacutengtConfiguracioacuten Seleccione la opcioacuten Lista en el cuadro de lista desplegable y en el cuadro de texto Origen escriba ListaCorrespondiente Aseguacuterese tambieacuten de que la casilla de veshyrificacioacuten Celda con lista desplegable estaacute activada y haga clic en Aceptar Selecshycione uno de los objetos de la lista de validacioacuten que aparece en la celda D6 y la celda de validacioacuten en la celda E6 cambiaraacute automaacuteticamente para reflejar el obshyjeto que acaba de seleccionar

Ahora ya tiene una lista de validacioacuten m u y uacutetil como la que se muestra en la figura 29 cuyos contenidos cambiaraacute automaacuteticamente basaacutendose en el eleshymento elegido en la otra lista

En cualquier celda o rango de celdas puede utilizar una lista que contenga hasta cinco listas separadas

88 Excel Los mejores trucos

iacute iacute 2 i

3 | 4 i 15 1 6

7

8 9 i 10]

H lt bull

Listo

_ A _

bull l Hoja

B

Seleccione un objeto

Sofaacute

XHoja2Hojas

[ bull v ^ ^ g ^ i-=---|

La tote eofecWM colaquo la Mi efe tiacutecfto objeto que se encuentra ei ta hoiexclja Listas

I H

~ bull uumlJ

D

LU

J NUM

F p=f

bull bull bull |

bullir

TRUCO

Figura 29 Dos listas de validacioacuten que se corresponden

Forzar la validacioacuten de datos para hacer referencia a una lista en otra hoja Una de las opciones disponibles en la funcioacuten de validacioacuten de datos es la opcioacuten Lista que proporciona un cuadro de lista desplegable con elementos especiacuteficos que el usuario puede elegir Un problema que surge con la validacioacuten de datos es que en el momento en el que intenta hacer referencia a una lista que reside en otra hoja veraacute que es imposible Por fortuna seraacute posible mediante este truco

Puede forzar a que la validacioacuten de datos haga referencia a una lista que estaacute situada en otra hoja existiendo para ello dos posibles aproximaciones rangos con nombre y la funcioacuten INDIRECTO

Meacutetodo 1 Rangos con nombre

Quizaacute la forma maacutes sencilla y raacutepida para realizar esta tarea es dar nombre al rango en el que reside la lista Para los propoacutesitos de este ejercicio supondremos que ha llamado ha dicho rango MiRango Seleccione la celda en la que desea que aparezca el cuadro de lista desplegable y luego vaya a DatosgtValidacioacuten Seshyleccione la opcioacuten Lista en el cuadro de lista desplegable y en el cuadro de texto Origen escriba =MiRango Haga clic en Aceptar Ahora la lista (que se encuenshytra en otra hoja) puede ser utilizada por la lista de validacioacuten

Meacutetodo 2 La funcioacuten INDIRECTO

La funcioacuten INDIRECTO le permite hacer una referencia a una celda que conshytiene un texto que a su vez representa la direccioacuten de otra celda Puede utilizar la celda que contiene la funcioacuten INDIRECTO como referencia a una celda y puede

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 89

utilizar esta caracteriacutestica para hacer referencia a la hoja en la que reside la lista Supongamos que la lista estaacute situada en la Hojal en el rango $A$1 $A$10 Haga clic en cualquier celda de otra hoja en la que desee tener esta lista de validacioacuten Entonces seleccione DatosgtValidacioacuten y seleccione la opcioacuten Lista del cuadro de lista desplegable

En el cuadro de texto Origen escriba la siguiente funcioacuten

= I N D I R E C T O ( H o j a l $ A $ 1 $ A $ 1 0 )

Aseguacuterese de que la casilla de verificacioacuten Celda con lista desplegable esteacute activada y entonces haga clic en Aceptar Ahora la lista que reside en Hojal deberiacutea estar en la lista desplegable de validacioacuten

Si el nombre de la hoja en la que reside la lista contiene espacios en blanco utilice la funcioacuten INDIRECTO de la siguiente forma

=INDIRECTO(Hoja 1$A$1$A$10)

Aquiacute hemos utilizado un apostrofe justo despueacutes de las dobles comillas y jus shyto antes del signo de exclamacioacuten Los apostrofes sirven para acotar los liacutemites del nombre de una hoja de Excel

Siempre es una buena idea utilizar el apostrofe independientemente de que la hoja tenga o no espacios en blanco en su nombre Siempre podraacute hacer referencia a hojas que no contengan espacios por lo que resulta muy uacutetil para evitar problemas

Ventajas y desventajas de cada meacutetodo

Existen ventajas y desventajas a la hora de utilizar nombres de rango y la funcioacuten INDIRECTO para forzar la validacioacuten de datos para que haga referencia a una lista situada en otra hoja

La ventaja de utilizar nombres de rango en este escenario es que cualquier cambio que realice en el nombre de la hoja no tendraacute efecto en la lista de validashycioacuten Esto siacute supone una desventaja en el caso de la funcioacuten INDIRECTO ya que cualquier cambio en el nombre de la hoja no se actualiza automaacuteticamente denshytro de dicha funcioacuten por lo que tendraacute que cambiarlo de forma manual

La ventaja de utilizar la funcioacuten INDIRECTO es que si la primera celda o fila o la uacuteltima celda o fila es eliminada del rango con nombre dicho rango devolveraacute un error iexclREF Esto supone una desventaja en caso de utilizar rangos con nomshybre si elimina cualquier celda o fila dentro del rango con nombre esos cambios no afectaraacuten a la lista de validacioacuten

Excel Los mejores trucos

Utilizar Reemplazar para eliminar caracteres no deseados Cuando importa datos externos o los copia desde otras ubicaciones dentro de Excel pueden aparecer caracteres no deseados en la hoja de caacutelculo Mediante este truco puede evitar el inconveniente de tener que eliminar a mano dichos caracteres

La funcioacuten Reemplazar de Excel puede ayudarle a eliminar caracteres no deshyseados de una hoja de caacutelculo pero requiere de unos cuantos pasos extra Por ejemplo puede reemplazar las celdas que contengan los caracteres no deseados con nada (es decir realmente eliminaacutendolos) Para hacer esto necesita saber los coacutedigos de los caracteres que desea eliminar Todos los caracteres tienen un coacutedishygo y Excel le informaraacute cuaacutel es si utiliza la funcioacuten COacuteDIGO sobre ellos Esta funcioacuten devuelve un coacutedigo numeacuterico para el primer caraacutecter de una cadena de texto Dicho coacutedigo corresponde con el conjunto de caracteres que esteacute utilizando el ordenador Para que esto funcione seleccione una de las celdas que contengan un caraacutecter no deseados En la barra de foacutermulas seleccione el caraacutecter en cuesshytioacuten y coacutepielo en el portapapeles Luego seleccione cualquier celda que no esteacute utilizando (por ejemplo la celda Al) y copie el caraacutecter en ella En otra celda introduzca la siguiente foacutermula

=C0DIG0($A$1)

Esto devolveraacute el coacutedigo del caraacutecter no deseado A continuacioacuten seleccione todos los datos y vaya a EditargtReemplazar Haga clic en el cuadro de texto Busshycar y mientras mantiene pulsada la tecla Alt o Comando introduzca utilizando el teclado numeacuterico un 0 seguido del coacutedigo que devolvioacute la funcioacuten COacuteDIGO Por ejemplo si el coacutedigo es 163 mantenga pulsada la tecla Alt o Comando mienshytras escribe en el teclado numeacuterico el nuacutemero 0163 Deje vaciacuteo el cuadro de texto Reemplazar con y luego haga clic en el botoacuten Reemplazar todos Esto eliminaraacute raacutepidamente todos los caracteres no deseados que coincidan con dicho coacutedigo Ahora repita el mismo proceso para el resto de caracteres no deseados

Convertir nuacutemeros de texto en nuacutemeros reales Los contenidos de una celda pueden parecer nuacutemeros especialmente si han sido importados pero probablemente sea imposible utilizar dichos nuacutemeros en los caacutelculos A continuacioacuten mostramos algunos meacutetodos para convertir faacutecilmente esos nuacutemeros de texto en verdaderos nuacutemeros

Recuerde que los nuacutemeros en Excel estaacuten alineados a la derecha de forma preshydeterminada mientras que los textos se alinean a la izquierda Una forma senci-

90

uuml

TRUCO

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 91

lia de identificar estos nuacutemeros de texto problemaacuteticos en una columna que se supone deberiacutea contener nuacutemeros verdaderos dicha columna luego ir a FormatogtCeldasgtAlineacioacuten asegurarse de que la alineacioacuten horizontal estaacute esshytablecida a la opcioacuten estaacutendar General y luego hacer clic en Aceptar Ampliacutee el ancho de la columna y veraacute como los nuacutemeros verdaderos quedaraacuten alineados a la derecha mientras que aquellos nuacutemeros de texto quedaraacuten a la izquierda Las fechas tambieacuten quedan alineadas a la derecha ya que en realidad son nuacutemeros

Ahora que ya sabe que tiene nuacutemeros que son tratados como texto veamos un meacutetodo raacutepido y sencillo para convertirlos a verdaderos nuacutemeros de forma que Excel pueda utilizarlos para sus caacutelculos Copie cualquier celda en blanco y entonces seleccione aquellas celdas con los nuacutemeros Vaya a EdicioacutengtPegado esshypecial y seleccione la opcioacuten Valores Tambieacuten seleccione la opcioacuten Sumar en el apartado de operaciones y haga clic en Aceptar

Esto haraacute que cualquier nuacutemero que estuviese como texto se convierta a un verdadero nuacutemero Esto es asiacute porque una celda vaciacutea tiene un valor de 0 y cuanshydo antildeade cualquier nuacutemero a un nuacutemero que Excel estaacute tratando como un texto forzaraacute a que dicho nuacutemero se convierta a un nuacutemero verdadero

Puede aplicar esta misma loacutegica a algunas funciones estaacutendar de Excel en particular a las funciones TEXTO Normalmente cuando utiliza las funciones TEXTO de Excel y el resultado obtenido es un nuacutemero Excel seguiraacute devolviendo ese nuacutemero como si fuera un texto en vez de un valor numeacuterico Supongamos que tiene un rango de celdas comenzando por la $A$1 Cada celda contiene una cantidad de dinero con el signo del doacutelar al principio seguida de un espacio y el nombre de una persona Utilizando la siguiente foacutermula que combina las funshyciones IZQUIERDA y ENCONTRAR puede extraer dicho siacutembolo del doacutelar

=IZQUIERDA(AlENCONTRAR( A1)-1)

Si por ejemplo la celda Al contuviese el valor $2270 Federico el resultado de la foacutermula seriacutea $2270 Sin embargo dicho resultado seriacutea devuelto como un texto no como un valor numeacuterico Por tanto de forma predeterminada quedaraacute alineado a la izquierda Puede modificar esta foacutermula de forma que el resultado no sea de tipo texto sino un valor numeacuterico de verdad Para ello antildeada un 0 al final de la siguiente forma

=IZQUIERDA(Al ENCONTRAR( A 1 ) - 1 ) + 0

Esto obligaraacute a que el valor devuelto sea un verdadero nuacutemero por lo que quedaraacute alineado a la derecha de forma predeterminada Todo lo que queda por hacer ahora es dar formato a la celda de forma adecuada Otro de los problemas que pueden surgir en relacioacuten con los textos y nuacutemeros es cuando mezcla texto y nuacutemeros en una misma celda pero sin haber una forma de extraer la parte nu-

92 Excel Los mejores trucos

meacuterica (como ocurriacutea en el caso anterior) En este caso tendremos que utilizar una funcioacuten personalizada que extraiga la parte numeacuterica de la cadena de texto Para crear dicha funcioacuten personalizada pulse A l t Opc ioacuten-F l l seleccione lnsertargtMoacutedulo e introduzca el siguiente coacutedigo

Function ExtraerNumero(rCell As Range) Dim ICount As Long L As Long Dim sText As String Dim lNum As String

sText = rCell

For ICount = Len(sText) To 1 Step -1 If IsNumeric(Mid(sText ICount 1)) Then

L = L + 1 lNum = Mid(sText ICount 1) amp lNum

End If

If L = 1 Then lNum = CInt(Mid(lNum 1 1)) Next ICount

ExtraerNumero = CLng(lNum)

End Function

Salga del editor y vuelva a la ventana principal de Excel La funcioacuten que acashybamos de crear apareceraacute en la categoriacutea de funciones definidas por el usuario Utiliacutecela tal y como se muestra en la figura 210

A B C 1 dfgd878sdd77dd 87877 =ExtraerNumero(A1) 2 jtjt330dfll33 33033 =ExtraerNumero(A2) 3 iexclfdkfjk332kki9Uuml2 332902 =ExtraerNurnero(Aacute2i

Figura 210 Extraer la parte numeacuterica de un texto

En la figura 210 la columna A contiene una mezcla de texto y nuacutemeros la columna B contiene el resultado de utilizar esta funcioacuten y la columna C muestra la apariencia de la foacutermula en la columna B

Personalizar los comentarios de las celdas Los comentarios de celda le permiten colocar el equivalente a una nota en una celda especiacutefica de una hoja Aunque muchas personas utilizar estos comentarios la mayoriacutea no saben que pueden ser personalizados

Cuando inserta un comentario de celda a traveacutes de la opcioacuten lnsertargtComen-tario Excel de forma predeterminada inserta tambieacuten el nombre del usuario del

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 93

ordenador que estaacute utilizando el programa Puede cambiar este comportamiento a traveacutes de HerramientasgtOpcionesgtGeneral Observe que en la parte inferior del cuadro de diaacutelogo puede cambiar el nombre de usuario que desea que aparezca de forma predeterminada

Aunque los comentarios de celda tienen el propoacutesito de mostrar un mensaje escrito por usted o cualquier otro usuario puede personalizar dichos comentashyrios de forma que reflejen mejor las intenciones del que lo crea Aseguacuterese de que la barra de herramientas de dibujo esteacute visible seleccionando la opcioacuten VergtBarras herramientasgtDibujo Introduzca un comentario de celda seleccionaacutendola y luego yendo a la opcioacuten lnsertargtComentario Esto haraacute que entre en modo de edicioacuten automaacuteticamente listo para introducir el texto en el cuadro de comentario

Haga clic justo en el borde del comentario para salir del modo de edicioacuten pero mantenieacutendolo seleccionado Entonces seleccione Dibujo y elija la opcioacuten Cambiar autoforma del menuacute que aparece Obtendraacute una lista con opciones en la que se incluyen formas baacutesicas flechas de bloque graacuteficos de flujo etc Elija una opshycioacuten y veraacute como el comentario de la celda cambiaraacute su aspecto en funcioacuten de ello tal y como se muestra la figura 2 11

1 2 3 4 5

6 7 8 9 10 11 12

I 13

A B C

--ltbull ~gtv

y bull

D E 1

Figura 211 Un comentario de celda con un formato totalmente diferente

Puede ir maacutes lejos si aplica un estilo sombreado al comentario daacutendole maacutes vida y un aspecto en tres dimensiones Aseguacuterese de que todaviacutea tiene seleccioshynado el comentario pero que no estaacute en modo de edicioacuten En la barra de herrashymientas de dibujo haga clic en el icono Estilo de sombra que se muestra la figura 212 y elija una configuracioacuten de sombra para el comentario de la celda

Otra cosa interesante que puede hacer con los comentarios de celda es utilishyzarlos para mostrar imaacutegenes sin que impidan ver los datos Por ejemplo podriacutea insertar la imagen de un graacutefico en el comentario de la celda para ilustrar los datos del graacutefico sin tener que mostrarlo todo el tiempo

Para antildeadir una imagen aseguacuterese de tener seleccionada el comentario pero sin estar en modo de edicioacuten Seleccione FormatogtComentario o bien haga doble clic en el borde del comentario Vaya a la pestantildea Colores y liacuteneas y en el cuadro

94 Excel Los mejores trucos

de lista desplegable Color seleccione la opcioacuten Efectos de relleno Vaya entonces a la pestantildea Imagen Ahora busque la imagen que desee insertar en el comentario de la celda

EacuteP

Configuracioacuten de sombra

Dibujo | Autoformas bull bullbdquogt zJ -Jjiacute (iquest bull yiquest amp ~ zplusmn Wi ltpound J J -

Figura 212 Opciones de estilo de sombra

Una uacuteltima cosa que puede hacer con los comentarios de celdas es extraer el texto que contienen y hacer que aparezca dentro de una celda Para ello tendreshymos que crear una sencilla funcioacuten personalizada en un moacutedulo estaacutendar Vaya al Editor de Visual Basic ( A l t O p c i oacute n - F l l ) e inserte un nuevo moacutedulo (lnsertargtMoacutedulo) A continuacioacuten escriba el siguiente coacutedigo

Function ObtenerTextoComentario(rCommentCell As Range) Dim strGotlt As String

On Error Resume Next strGotlt = WorksheetFunctionClean (rCommentCellCommentText) ObtenerTextoComentario = strGotlt On Error GoTo 0

End Function

Vuelva a la ventana principal de Excel bien cerrando esta ventana o pulsando AltComando-Q Ahora en cualquier celda introduzca la siguiente foacutermula

=ObtenerTextoComentario(Al)

donde Al es la celda que contiene un comentario Entonces deberiacutea aparecer el texto del comentario en la celda en la que haya introducido esta foacutermula

Ordenar maacutes de tres columnas La funcioacuten de ordenacioacuten de Excel estaacute limitada en cuanto a que soacutelo permite elegir tres campos de datos por los que ordenar En muchos casos puede ser suficiente pero a veces es necesario poder ordenar por maacutes de tres columnas de datos A continuacioacuten mostraremos coacutemo superar esta limitacioacuten

Para este ejemplo supondremos que tiene datos relacionados en las columnas A B C D y E y que desea ordenar estos datos por ese mismo orden Para poder

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 95

hacer esto debe poder ordenar de atraacutes a adelante es decir ordenar por el uacuteltimo campo primero y luego ir hacia atraacutes hasta el primer campo

Seleccione desde la co lumna A has ta la columna E y entonces vaya a DatosgtOrdenar Seleccione el criterio de ordenacioacuten para que primero se ordene la columna C luego D y luego E Haga clic en Ordenar Ahora seleccione desde la columna A a la columna E y vaya a DatosgtOrdenar Esta vez ordene primero por la columna A y luego por la B Haga clic en Ordenar Con esto hemos conseguido que Excel ordene las columnas por cinco campos en vez de por tres

Si desea automatizar esta tarea puede utilizar una macro que ordene la selecshycioacuten y que reconozca si los datos poseen encabezados de columna en base al formato de la primera fila de la seleccioacuten Si los encabezados estaacuten en negritas Excel sabraacute que son encabezados de columna y no los ordenaraacute Por otro lado ordenaraacute primero por la columna que esteacute maacutes a la izquierda y asiacute sucesivamenshyte para el resto de columnas hasta llegar a un maacuteximo de 256

El coacutedigo de la macro que necesitamos debe ser colocado en un moacutedulo estaacutendar Para ello vaya a la opcioacuten HerramientasgtMacrogtEditor de Visual Basic luego vaya a lnsertargtMoacutedulo e introduzca el siguiente coacutedigo

Sub OrdenarPorX( ) Dim L As Long

For L = SelectionColumnsCount To 1 Step -1 SelectionSort Keyl=SelectionCells(2 1) _ Orderl=xlAscending Header=xlGuess Orientation=xlTopToBottom

Next L

End Sub

Para volver a Excel cierre de esta ventana o bien pulse AltComando-(X Ahora ya podraacute realizar ordenaciones mucho maacutes complicadas que las que ofrece Excel

En Ordenacioacuten aleatoria ^H Puede hacer que Excel escoja los tres primeros ganadores elegidos ^H aleatoriamente de una lista de una hoja de caacutelculo El meacutetodo maacutes sencillo ^trade y raacutepido para hacer esto es utilizar la funcioacuten ALEATORIO de Excel en

combinacioacuten con las funciones de ordenacioacuten

Supongamos que tiene una tabla con tres columnas en la hoja de caacutelculo comenzando por la columna B y que contienen en este orden Nombre edad y Ndeg de Id Coloque la funcioacuten ALEATORIO en la celda A2 y propaguacuteela hacia abajo tantas filas como necesite

Cuando haga esto cada una de las celdas de la columna A devolveraacute un nuacuteshymero aleatorio por el cual puede ordenar la tabla En otras palabras si ordena las

96 Excel Los mejores trucos

columnas A B C y D utilizando como criterio el valor de la columna A ya sea ascendentemente o descendentemente tendraacute a los tres ganadores en la parte superior de la tabla

La funcioacuten ALEATORIO es una funcioacuten volaacutetil que se calcula automaacuteticamente cada vez que se realiza una accioacuten en Excel (como por ejemplo introducir datos en alguacuten lugar o bien forzando a que se recalculen todas las foacutermulas pulsando la tecla F9) Por tanto ya puede escribir en una hoja de papel quieacutenes eran los ganadores antes de que vuelva a calcularse de nuevo todo ya que el orden camshybiaraacute

Sin embargo puede utilizar esta volatilidad en su beneficio y grabar una macro que ordene los datos inmediatamente despueacutes de recalcular y forzar a que la funcioacuten ALEATORIO devuelva a otro conjunto de nuacutemeros aleatorio Entonces puede asociar esta macro a un botoacuten de forma que cada vez que desee calcular los tres ganadores todo lo que debe hacer es hacer clic en eacutel y utilizar las tres filas de la parte superior

Por ejemplo supongamos que tiene los datos en las columnas B C y D y que la fila 1 se utiliza para los encabezados Primeramente introduzca el encabezado Aleatorio en la celda A l En la celda A2 introduzca ^ALEATORIO () y propashyguacuteela hacia abajo Luego seleccione cualquier celda y vaya a HerramientasgtMacrogt Grabar nueva macro

Seleccione las columnas A B C y D y pulse F9 (para forzar de sede recalculen las foacutermulas) Vaya a DatosgtOrdenar y ordene los datos por la columna A Deshytenga entonces la grabacioacuten de la macro

A continuacioacuten seleccione VergtBarras de herramientasgtFormularios Seleccioshyne el icono Botoacuten en el cuadro de herramientas y coloacutequelo en cualquier lugar de la hoja

Asignen la macro que acaba de grabar a este botoacuten y luego haga clic en Acepshyt a r (tambieacuten cambie el texto del botoacuten por algo maacutes representativo) Puede oculshytar la columna A completamente ya que los usuarios no tienen por queacute ver los nuacutemeros aleatorios Cada vez que haga clic en el botoacuten los datos se ordenaraacuten aleatoriamente y simplemente bastaraacute con leer los tres nombres que aparezcan en la parte superior de la tabla para ver quieacutenes son los ganadores Observe la figura que le mostramos a continuacioacuten

La funcioacuten ALEATORIO de Excel 2003 tiene un fallo muy importante Aunque la ayuda asegura claramente que el nuacutemero aleatorio devuelto estaacute entre 0 y 1 esto no siempre es cierto si la funcioacuten se utiliza en muchas celdas A veces ocurriraacute que la funcioacuten devuelva un nuacutemero menor que 0 Para saber porqueacute Microsoft ha cambiado el algoritmo visite la paacutegina httpsupportmicrosoftcomdefaultaspxkbid= 828795httpsupportmicrosoftcomdefaultaspxkbid=828795

V

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 97

_ 1 _ A 1 Nombre 2 David 3 lAlex 4 Ana 5 Marta 6 Juan 7 Santos 8 Laida 9 Mar 10 Luis 11 12

I sect Edad Ndeg

32 30 23 36 25 30 31 30 28

Id C

11343 11543 11345 11234 11321 11545 11656 11451 11331

P Posicioacuten

E I F Escoger Ganadores

1

2 3

Figura 213 Resultado final de la ordenacioacuten aleatoria de la columna oculta A

Manipular datos con el filtro avanzado Si estaacute familiarizado con la herramienta de auto filtrado de Excel tambieacuten estaraacute familiarizado con sus limitaciones Si necesita hacer una manipulacioacuten exhaustiva de los datos la solucioacuten es utilizar la herramienta de filtrado avanzado de Excel

A pesar de su limitacioacuten el filtrado automaacutetico es uacutetil para mostrar solamenshyte aquellos datos que cumplan un criterio en particular Sin embargo en algunas ocasiones no podraacute extraer la informacioacuten que necesita utilizando las opciones estaacutendar disponibles en el filtrado automaacutetico Por ello existe una herramienta maacutes versaacutetil el filtro avanzado que le permite manipular los datos maacutes allaacute de dichas limitaciones Cuando utilice esta herramienta la tabla debe estar configushyrada en un formato claacutesico tal y como describimos al comienzo del capiacutetulo 1

Cuando utilice la herramienta de filtrado avanzado de Excel necesitaraacute una copia de los encabezados de las columnas en alguacuten lugar por encima de los datos Siempre deberiacutea dejar al menos tres filas en blanco por encima de la tabla con los datos Para asegurarse de que los encabezados son siempre los mismos y se manshytengan asiacute independientemente de que cambie los encabezados de las columnas haga siempre las referencias a los encabezados de las columnas con una foacutermula de referencia simple como pueda ser =A4 donde la celda A4 contiene el encabeshyzado de la columna Copie esto a lo largo de los encabezados de las columnas que tenga en la tabla Esto aseguraraacute que los encabezados de los criterios para el filtrado avanzado sean dinaacutemicos Directamente debajo de los encabezados coshypiados coloque el criterio que desea utilizar para el filtro avanzado Para maacutes detalles sobre este proceso consuacuteltela ayuda de Excel acerca de los criterios de los filtros avanzados Hay que tener en cuenta que cuando se utiliza el filtro avanshyzado si hay dos o maacutes criterios colocados directamente por debajo del encabezashydo utilizaraacuten un operador de comparacioacuten O Si desea utilizar el operador de comparacioacuten Y entonces los encabezados de columna y sus criterios deben apashyrecer dos veces del lado a lado En la figura 214 se muestra coacutemo utilizar el operador O para filtrar los datos y en la figura 215 coacutemo utilizar el operador Y

uuml

98 Excel Los mejores trucos

bullaacutejjj Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana

-Inl 1

A

1 Nombres

2

3

4 |

5 Nombres

6 David

7 Alex

8 Ana

9 Marta

10 Juan

11 Santos

12 Laida

13 Mar

14 Luis

15

16

17

18

M 4 bull H Hojal

B

iexclTasa

iexclgt1600

iexcllt 15J30

Tasa

$ 1700

$ 1225

$ 2120

$ 1800

1650

$ 2100

$ 1080

$ 1550

$ 1320

C

Edad

X Hoja2 HojaS X Hoja4

32

30

23

36

25

30

31

30

28

X HojaS

D E |

11 ipiiacutewraffiM^v bull -Accioacuten

F

f Filtrar la lista sin moverla a otro lugar

lt Copiar a otro lugar

Rango de la lista j$A$5$C$14

Rango de criterios j^B$l$B$3

1 f~ Soacutelo registros uacutenicos

1 Aceptar j

XHoja6 |lt

G

Jltl

3 31 3

Cancelar

H

|

1 T mdash

mdash w

bull i r

Figura 2 14 Usar el filtro avanzado con el operador O para mostrar solamente aquellas personas que tengan una paga mayor que $1600 o menor que $1500

-4] Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana

A5

1

2

3

4

5

_ 15

16

17

18

19 70

21

22

23

24

25

H 4

A

Nombres

D

Nombres

David

Laida

bull bull Hojal

B Nombres

L

Tasa

1700

1080

Ed

X Hoja2 X Hoja3 X

C

ad

Hoja4

32

31 iexcl

X H deg iacute a 5

D E | F

lilHPJliexcliquesti^1 Accioacuten

(bull Filtrar la iista sin moverla a otro lugar r Copiar a otro lugar-

Rango de la lista |$A$5$C$14

Rango de criterios j$A$l$B$2

1 f Soacutelo registros uacutenicos

1 Aceptar j Cancel

XHoja6Hoja7 j laquo |

G

2ltj

3d 3 31

ar

H

1

1 mdash

~~~

mdash w

bull i r

Figura 2 15 Usar el filtro avanzado con el operador Y para mostrar solamente aquellas personas cuyo nombre comienza por B y termina por L

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 99

Los dos ejemplos anteriores muestran algunos de los usos simples que se pueshyden hacer de la herramienta de filtrado avanzado y que tambieacuten se podriacutean reashylizar ut i l izando la funcioacuten de filtrado au tomaacutet ico si fuera necesario A continuacioacuten presentaremos algunos ejemplos de la utilizacioacuten del filtro avanzashydo en los que no seriacutea posible utilizar el Autofiltro

Es importante destacar que cuando utilice una foacutermula para el criterio S no debe utilizar por encima del criterio un encabezado que sea ideacutentico

w a uno que haya en la tabla Por ejemplo si tiene un listado con datos numeacutericos en la columna A y la lista comienza en la celda A5 (siendo A4 el encabezado) si necesita extraer todos los nuacutemeros de dicha lista que sean mayor que la media deberiacutea utilizar un criterio como este

=A5gtPR0MEDI0($A$5$A$500)

Si el criterio fuese colocado en la celda A2 el rango del criterio seriacutea $A$1 $A2 pero $A$ 1 no podriacutea contener el mismo encabezado que el usado en la lista Debe ser o bien vaciacuteo o bien un encabezado diferente Tambieacuten es importante resentildear que cualquier foacutermula que utilice deberiacutea devolver o bien VERDADERO o FALSO El rango para la funcioacuten promedio se hace absoluto al utilizar el signo del doacutelar mientras que la referencia a la celda A5 es relativa Esto es necesario porque cuando aplique el filtro avanzado Excel veraacute que la celda A5 es una referencia relativa y se moveraacute por la lista hacia abajo por cada entrada devolviendo VERDADERO o FALSO Si devuelve VERDADERO entonces habraacute que necesita ser extraiacutedo Si devuelve FALSO entonces es que no coincide con el criterio y por lo tanto no seraacute mostrado

Supongamos que muchos de los nombres estaacuten repetidos en el rango $A$5$A$500 siendo la celda A4 el encabezado Tambieacuten que muchos de los encabezados se repiten numerosas veces Se le ha asignado la tarea de extraer de la lista todos los nombres que aparecen maacutes de una vez Para hacer esto necesita utilizar el filtro avanzado asiacute como la siguiente foacutermula como criterio

= C O N T A R S I ( $ A $ 5 $ A $ 5 0 0 A 5 ) gt 1

Una vez que aplique el filtro avanzado a esto y utilice la opcioacuten Copiar en otra ubicacioacuten la recieacuten creada lista contendraacute todos los nombres que aparecen maacutes de una vez en la lista original (veacutease figura 216) Muchos de estos nombres estaraacuten repetidos numerosas veces pero puede filtrar faacutecilmente esta nueva lista de nuevo utilizando el filtro avanzado aunque esta vez seleccionando la opcioacuten Soacutelo los registros uacutenicos (veacutease figura 217)

Esto le proporcionaraacute un listado de nombres que aparecen en la lista maacutes de una vez

100 Excel Los mejores trucos

iquestaacutej Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana

Ojx] figt x

A2 f =CQNTARSI($At5$A$2QAB)gt1

4) bullbullbull - ^ g

H 1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

Criterio

IVERDADEROl

Nombres

David

Alex

Ana

Marta

Juan

Santos

Laida

Mar

Luis

Marta

David

Juan

Antonio

Mar

Alex

Nombres David Alex Marta Juan Mar Marta David Juan Mar Alex

Accioacuten

f Filtrar la lista sin moverla a otro lugar

(bull iexclCopiar a otrolugar]

JpoundIacute

Rango de la lista j$A$4$A$500 3 Rango de criterios ]$A$1$A$2

Copiar a |$C$4

Soacutelo registros uacutenicos

Aceptar

H 4 bull H Hoja2 Hoja3 Hoja4 Hoja5 Hojaoacute Hoja X H o J a 8 ir

Figura 216 Usar el filtro avanzado para extraer los nombres de una lista en la que aparecen maacutes de una vez

A B C D

1 Criterio

2 FALSO

3

4 Nombres Nombres Nombres

5 David David David

6 Alex Alex Alex

7 [Ana Marta Marta

8 Marta Juan Juan

9 Juan Mar Mar

10 Santos Marta

11 Laida David

12 Mar Juan

13 Luis Mar

14 Marta Alex

15 David

16 Juan

17 Antonio

18 Mar

19 Alex iexclH 4 bull M Hoja2 Hoja3 Hoja4 HojaS Hojaoacute Hoja

E F | G

l l i W i i i l i S I E ^ ^ Accioacuten

iacute Filtrar la lista sin moverla a otro lugar

ltbull Copiar a otro lugar

Rango de la lista j $c$4 $C$ 14

Rango de criterios j

Copiar a |$D^4

P Soacutelo registros uacutenicos

j Aceptar J Cancel

HojaS H o j a 9 | lt f

X j

3 3 3

raquo 1

H 1 d

laquo-

i nr Figura 217 Usar el filtro avanzado en la lista extraiacuteda de nombres para mostrar cada

uno de ellos solamente una vez

Los usuarios que utilicen el filtro avanzado a menudo se preguntan ^ coacutemo pueden forzar a Excel para que filtre sus datos por el criterio

exacto que han especificado Si el criterio que ha elegido es Juan por

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 101

ejemplo y realiza un filtro avanzado en una larga lista de nombres Excel no soacutelo mostraraacute el nombre de Juan sino tambieacuten nombres como Juana Juan Carlos etc en otras palabras cualquier nombre que comience con las letras Juan en ese orden seraacuten considerados como que cumplen el criterio Para obligar a Excel a que encuentre solamente aquellos que coincidan totalmente introduzca el criterio asiacute ==Juan

m g 3 j Crear formatos de nuacutemero personalizados II ^ E C j H E x c e incorpora una serie de formatos para nuacutemeros pero a veces

^ ^ ^ pound ^ B necesitaraacute utilizar un formato de nuacutemero que no esteacute entre los predefinidos Mediante los trucos de este apartado podraacute crear formatos de nuacutemero que puede personalizar de acuerdo a sus necesidades

Antes de probar estos trucos es importante que entienda coacutemo Excel mira los formatos de una celda Lo hace tomando las siguientes secciones (de izquierda a derecha) Nuacutemeros positivos nuacutemeros negativos valores cero y valores de tipo texto Cada una de estas secciones estaacute separada por un punto y coma ()

Cuando cree un formato de nuacutemero personalizados no necesitaraacute especificar las cuatro secciones Es decir si soacutelo incluye dos secciones la primera seraacute utilishyzada tanto para los nuacutemeros positivos como para los valores cero mientras que la segunda se utilizaraacute para los nuacutemeros negativos Si soacutelo incluye una seccioacuten todos los tipos de nuacutemero utilizaraacuten ese formato Los textos se veraacuten afectados por el formato personalizado soacutelo cuando se incluyen las cuatro secciones (utilishyzando la uacuteltima de ellos)

Cuando nos referimos a nuacutemeros no significa que el formato personalizado soacutelo se aplique a datos de tipo numeacuterico Dicho formato tambieacuten se aplicaraacute a los nuacutemeros que esteacuten en formato texto

El formato personalizado de nuacutemero mostrado en la figura 218 es el formato estaacutendar de moneda de Excel que muestra los valores negativos en rojo Lo heshymos modificado antildeadiendo un formato aparte para los valores cero y otro para los textos

Si introduce un nuacutemero positivo como un valor de moneda Excel le daraacute formato automaacuteticamente de forma que incluya un punto como separador de millares seguido de dos lugares decimales Haraacute lo mismo con los valores negatishyvos excepto que los mostraraacute en color rojo Cualquier valor cero no tendraacute el siacutembolo de moneda y soacutelo mostraraacute dos lugares decimales En caso de que introshyduzca un texto en la celda Excel mostraraacute el texto No introduzca texto en vez de el texto que haya introducido el usuario

102 Excel Los mejores trucos

Formato para Formato para Formato para Formatos para nuacutemeros positivos nuacutemeros negativos valores cero texto

$000 [Rojo]$000 000 No escribir texto Figura 218 Secciones del formato de nuacutemero personalizado

Es importante recordar que dar formato al valor de una celda no afecta al verdadero valor que eacutesta contiene Por ejemplo escriba cualquier nuacutemero en la celda A l Luego vaya a FormatogtCeldasgtNuacutemerogtPersonalizado y escriba en el cuadro de texto Tipo la palabra Hola (incluyendo las dobles comillas) Haga clic en Aceptar para cerrar el cuadro de diaacutelogo

Aunque la celda muestre el texto Hola puede ver el verdadero valor contenishydo de la celda seleccionaacutendola y mirando la barra de foacutermulas de la parte supeshyrior de la ventana (o bien pulsando F2) Si fuese a hacer una referencia a esta celda en una foacutermula (por ejemplo =Al + 2 0) la celda resultante tomariacutea el forshymato personalizado Si hiciese referencia a la celda Al jun to a otras muchas celshydas que tuviesen un formato estaacutendar por ejemplo =SUM (Al A10) la celda resultante seguiriacutea tomando el formato personalizado de la celda A l Esto es asiacute porque Excel tiene la delicadeza de dar al resultado el mismo formato que tengan aquellas celdas referenciadas En caso de que eacutestas tuviesen maacutes de un formato si existe alguno personalizado tendraacute preferencia sobre los demaacutes

Esto significa que siempre deberaacute recordar que Excel utiliza el valor real de una celda para hacer sus caacutelculos y no el valor que muestra resultado de un formato en particular Esto puede provocar una sorpresa cuando Excel hace caacutelshyculos basaacutendose en celdas que estaacuten formateadas para no mostrar lugares decishymales o para mostrar solamente unos cuantos por ejemplo Para ver esto por siacute mismo introduzca 14 en la celda Al y 14 en la celda A2 Cambie el formato de ambas celdas para que no muestren lugares decimales y luego introduzca la foacutershymula =A1+A2 en otra celda cualquiera Veraacute que el resultado es 3 ya que Excel ha redondeado el caacutelculo Excel tiene una opcioacuten llamada Precisioacuten de pantalla que encontraraacute en HerramientasgtOpcionesgtCalcular pero debe tener en cuenta que esta opcioacuten cambiaraacute definitivamente los valores almacenados en las celdas a la precisioacuten maacutexima (15 diacutegitos) independientemente del formato incluyendo los lugares decimales en caso de que se muestren Dicho de otra forma una vez que se activa esta opcioacuten no hay posibilidad de volver atraacutes (puede intentarlo pero la informacioacuten extra sobre la precisioacuten se perderaacute)

El formato predeterminado para cualquier celda es General Si introduce un nuacutemero en una celda Excel le asignaraacute el formato numeacuterico que considere maacutes apropiado Por ejemplo si introduce 10 en una celda Excel le daraacute el formato de porcentaje La mayoriacutea de las veces Excel acierta correctamente con el formashyto aunque a veces seraacute necesario cambiarlo

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 103

Cuando utilice la opcioacuten FormatogtCeldas resista la tentacioacuten de forzar la alineacioacuten a la izquierda derecha o al centro para el formato horizontal De forma predeterminada los nuacutemeros se alinean a la derecha y el texto a la izquierda Si deja esto asiacute puede decir en cualquier momento si una celda contiene texto o nuacutemeros como ya vimos en el ejemplo anterior en el que en la celda Al pareciacutea haber un texto pero en realidad conteniacutea un nuacutemero

Cada una de las secciones de un formato dado utiliza su propio conjunto de coacutedigos de formato Estos coacutedigos obligan a Excel a hacer que los datos aparezshycan de una cierta forma Asiacute por ejemplo supongamos que quiere que los nuacuteshymeros negativos aparezcan entre pareacutentesis y por lo demaacutes que cualquier nuacutemero ya sea positivo negativo o cero muestre dos lugares decimales Para hacer esto utilice este formato personalizado

0 0 0_ ( - 0 0 0 )

Si desea que los nuacutemeros negativos aparezcan en rojo utilice este formato

0 0 0 _ [ R o j o ] ( - 0 0 0 )

Observe que hemos utilizado corchetes en el coacutedigo anterior El coacutedigo de forshymato indica a Excel que haga que los nuacutemeros aparezcan en color rojo

Puede utilizar muchos coacutedigos de formato diferentes dentro de las secciones de un formato personalizado Las tablas 2 1a 25 realizadas a partir de la docushymentacioacuten de Microsoft explican estos coacutedigos

Tabla 2 1 Coacutedigos de formato

Coacutedigo de nuacutemero Descripcioacuten

General Formato de nuacutemero general

0 (cero) Muestra los ceros sin valor si un nuacutemero tiene menos diacutegitos que ceros en el formato

Muestra uacutenicamente los diacutegitos significativos y no muestra los ceros sin valor

Antildeade los espacios de los ceros sin valor a cada lado del separador decimal Tambieacuten se puede utilizar para las fracciones que tengan un nuacutemero de diacutegitos variable

Un porcentaje Excel multiplicaraacute el valor por 100 y mostraraacute el caraacutecter despueacutes del nuacutemero

104 Excel Los mejores trucos

Coacutedigo de nuacutemero

(punto)

E+ E- e+ e-

Descripcioacuten

Separador de millares Un punto seguido de un coacutedigo ampliaraacute el nuacutemero por 1000

Notacioacuten cientiacutefica

Tabla 22 Coacutedigos de texto

Coacutedigo de texto

$- + ( ) y espacio en blanco

caraacutecter

texto

_ (subrayado)

Descripcioacuten

Estos caracteres se mos t ra raacuten en el nuacutemero Para mostrar cualquier otro caraacutecter encieacuterrelo entre doshybles comillas o bien precedido de una barra invertida

()

Este coacutedigo muestra el caraacutecter especificado Observe que si escribe ^ amp ~ = lt ogtse colocaraacute automaacuteticamente una barra invertida delante del cashyraacutecter

Este coacutedigo muestra el texto que hay encerrado entre las dobles comillas

Este coacutedigo repite el siguiente caraacutecter en el formato para rellenar el ancho de la columna Soacutelo se admite un asterisco por cada seccioacuten del formato

Este coacutedigo omite el ancho del siguiente caraacutecter Norshymalmente se utiliza asiacute _) para dejar un espacio para un pareacutentesis de cierre en el formato de un nuacutemero positivo cuando el formato para nuacutemeros negativos incluye pareacutentesis Esto permite que tanto valores poshysitivos como negativos se alineen en el punto decimal

Lugar para un texto

Tabla 23 Coacutedigos de fecha

Coacutedigo de fecha Descripcioacuten

m Un mes representado como un nuacutemero sin ceros de reshylleno (1-12)

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 105

Coacutedigo de fecha

mm

m m m

m m m m

d

dd

ddd

dddd

aa

aaaa

Descripcioacuten

Un mes representado como un nuacutemero con ceros de relleno (01-12)

Un mes dado como su abreviatura (ene-dic)

Un mes dado tal cual sin abreviar (enero-diciembre)

Un diacutea representado como un nuacutemero sin ceros de reshylleno (1-31)

Un diacutea representado como un nuacutemero con ceros de reshylleno (01-31)

Un diacutea dado como su abreviatura (lun-dom)

Un diacutea dado tal cual sin abreviar (lunes-domingo)

Un antildeo dado como un nuacutemero de dos diacutegitos (por ejemshyplo 96)

Un antildeo dado como un nuacutemero de cuatro diacutegitos (por ejemplo 1996)

Tabla 24 Coacutedigos de hora

Coacutedigo de hora

h

hh

m

m m

m

m m

AMPM a m p m

Descripcioacuten

Una hora representada como un nuacutemero sin ceros de relleno (0-23)

Una hora representada como un nuacutemero con ceros de relleno (00-23)

Un minuto representado como un nuacutemero sin ceros de relleno (0-59)

Un minuto representado como un nuacutemero con ceros de relleno (00-59)

Un segundo representado como un nuacutemero sin ceros de relleno (0-59)

Un segundo representado como un nuacutemero con ceros de relleno (00-59)

Hora en formato del reloj de 12 horas

106 Excel Los mejores trucos

Tabla 25 Coacutedigos miscelaacuteneos

Coacutedigo miscelaacuteneo Descripcioacuten

[Negro] [Azul] Estos coacutedigos muestran los caracteres en el color espe-[Aguamarina] cificado Observe que n puede ser un valor entre 1 y [Verde] [Magenta] 56 y se refiere al eneacutesimo color de la paleta [Rojo] [Blanco] [Amarillo] [Color n]

[Condicioacutenvalor] Las condiciones pueden ser lt gt = gt = lt= oacute o mientras que el valor puede ser cualquier nuacutemero Un formato de nuacutemero puede contener hasta dos condishyciones

Observe en particular el uacuteltimo tipo de coacutedigos de formato de la tabla 25 es decir los operadores de comparacioacuten Supongamos que desea un formato de nuacuteshymero personalizado del tipo de 000_ [Rojo](-000) para mostrar los nuacutemeros negativos en color rojo y entre corchetes pero solamente si el nuacutemero es menor que -100 Para conseguir esto tendriacutea que escribir el formato de esta forma

0 0 0 _ [ R o j o ] [ lt - 1 0 0 ] ( - 0 0 0 ) 0 0 0

Los coacutedigos de formato [Rojo][lt-l00](-000) colocados en la seccioacuten para nuacuteshymeros negativos hacen que esto sea posible Utilizando este meacutetodo jun to con el formato condicional puede doblar el nuacutemero de formatos condicionales disponishybles de tres a seis

A menudo los usuarios desean mostrar el siacutembolo del euro como una palashybra Para conseguir eso utilice el siguiente formato personalizado

0 e u r o s con 00 c eacute n t i m o s

Este formato obliga a que un nuacutemero introducido como 5525 se muestre como 55 euros con 25 ceacutentimos Tambieacuten podriacutea utilizar un formato condicional para mostrar las palabras Bajo En la media o Alto dependiendo del nuacutemero introducido Para ello utilice este simple formato

[ lt l l ] M B a j o M 0 [ gt 2 0 ] A l t o 0 E n l a m e d i a 0

Observe el uso del Esto hace que se repita el siguiente caraacutecter en el formato para rellenar el ancho de la columna de forma que los textos Bajo En la meshydia o Alto se alinearaacuten forzosamente a la derecha mientras que el nuacutemero quedaraacute a la izquierda

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 107

Antildeadir maacutes niveles de Deshacer a Excel Todos estamos familiarizados con la maravillosa caracteriacutestica de Deshacer de Excel que permite a los usuarios deshacer aquellas acciones que desee en caso de equivocacioacuten Por desgracia el nivel predeterminado de cambios que se pueden deshacer es tan soacutelo de 16 Con este truco podemos cambiar el registro de forma que podamos deshacer hasta 100 equivocaciones

Cuando utiliza la caracteriacutestica Deshacer de Excel y alcanza el nuacutemero de 16 acciones el primer deshacer es reemplazado por el nuacutemero 17 y asiacute sucesivashymente Ademaacutes en cuanto guarde el libro toda la lista de acciones a deshacer se elimina coloque se pierde el historial de acciones Esto es asiacute porque se supone que a pulsar Guardar estaacute indicaacutendole a Excel que estaacute de acuerdo con los camshybios realizados y que por lo tanto no tiene sentido deshacer nada

Probablemente haya descubierto que en ocasiones poder deshacer tan soacutelo en vez de tener que aguantar esto puede cambiar este comportamiento modifishycando el registro algo que soacutelo funciona en Windows Para ello lo primero que hay que hacer es cerrar Excel Luego vaya a lniciogtEjecutar y en el cuadro de texto escriba Regeditexe Luego haga clic en Aceptar Cuando se abra el Editor del registro despliegue la carpeta HKEY_CURRENT_USER Luego despliegue la carpeta Software luego Microsoft Office y por uacuteltimo la carpeta 100 (esta uacuteltishyma carpeta depende de la versioacuten de Office que tenga En este caso la carpeta 110 es la correspondiente a Excel 2002) A continuacioacuten despliegue la carpeta Excel y finalmente abra la carpeta Options

Ahora v a y a a EdicioacutengtNuevogtValor DWORD i n t r o d u z c a la p a l a b r a UndoHistory y pulse Intro Luego haga doble clic sobre el elemento que acaba de crear seleccione el botoacuten de opcioacuten Decimal y a continuacioacuten escriba en el cuadro de texto un valor mayor que 16 y menor que 100

En general disponer de 100 acciones para deshacer seraacute suficiente para la mayoriacutea de los usuarios aunque el problema de que la opcioacuten Deshacer se pierda una vez guardada la hoja seguiraacute ocurriendo

H Crear listas personalizadas Siacute antildeade una lista personalizada a Excel podraacute escribir el primer elemento de la lista arrastrarlo utilizando el recuadro de propagacioacuten y ver coacutemo la lista se rellena automaacuteticamente

Una de las funciones maacutes populares que tiene Excel para ahorrar trabajo es la posibilidad de incrementar no solamente nuacutemeros sino tambieacuten algunos textos automaacuteticamente Normalmente cuando utiliza el recuadro de propagacioacuten esshycribe el primer elemento y luego lo utiliza para rellenar las celdas con los si-

uuml

108 Excel Los mejores trucos

guientes elementos de la lista De esta forma puede crear faacutecilmente su propia lista personalizada con aquellos elementos utilizados maacutes a menudo

La forma maacutes flexible de crear una lista personalizada es introducir sus conshytenidos en un rango de celdas Por ejemplo digamos que tiene una lista de 100 nombres de empleados Introduzca cada nombre comenzando por la celda Al y terminando en la celda Al 00 y luego ordenaacutendola si es necesario A continuashycioacuten seleccione HerramientasgtOpciones y en la pestantildea Listas personalizadas haga clic en el cuadro de texto Importar lista desde las celdas Utilizando el cursor del ratoacuten haga clic en la celda Al y arraacutestrelo hasta la celda Al 00 y luego haga clic en el botoacuten Importar Llegados a este punto la lista personalizada estaraacute disposhynible para todos los libros con los que se trabaje en este mismo ordenador

S Si la lista estaacute ordenada y desea que esteacute colocada de arriba a abajo encontraraacute maacutes sencillo ordenarla de Z a A en caso de que la lista original estuviese ordenada al reveacutes

TRUCO Subtotales en negritas de Excel iquestNo seriacutea muy interesante si pudiese identificar los subtotales en sus hojas de caacutelculo de forma que los pudiera encontrar faacutecilmente Con los trucos de este apartado podraacute hacerlo

Cuando estaacute trabajando con una hoja de caacutelculo que contiene subtotales creashydos a partir de la opcioacuten DatosgtSubtotales eacutestos pueden ser muy difiacuteciles de idenshytificar haciendo que la hoja de caacutelculo no pueda leerse con facilidad Esto es especialmente cierto cuando utiliza esos Subtotales en una tabla de datos que tiene muchas columnas

Normalmente los subtotales resultantes aparecen en la parte derecha mienshytras que sus encabezados asociados se situacutean en la primera columna Dado que los valores de esos subtotales no aparecen en negritas puede ser difiacutecil de alinearshylos visualmente con sus encabezados de fila Puede hacer que sea mucho maacutes sencillo leerlos siacute aplica un formato negritas a esos valores

Para probar este problema introduzca algunos datos de forma similar a los que se muestran en la figura 219

Ahora antildeada los subtotales seleccionando la opcioacuten DatosgtSubtotales aceptando los valores predeterminados del cuadro de diaacutelogo y haciendo clic en Aceptar

En la figura 220 los encabezados de los subtotales estaacuten en negritas pero sus resultados asociados no Dado que esta tabla soacutelo tiene dos columnas no resulta tan difiacutecil leer y encontrar las cantidades correspondientes a dicho subtoshytales

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 109

A 1 Trimestre 2 Primero 3 Primero 4 Segundo 5 Segundo 6 Segundo 7 Tercero 8 Tercero 9 Tercero

iacute 10 11

B Coste $1000 $2000 $1000 $1000 $1000 $1500 $1000 $2500

C

Figura 219 Datos de una hoja de caacutelculo antes de antildeadir los subtotales

r 2 3 - A

I bull 1 Trimestre 1 [ bull bull 2 Primero I J bull 3 Primero 1 - 4 Total trimestrel

5 Segundo 6 Segundo 7 Segundo

1 - 8 Total trimestre2 9 iexclTercero

bull 10 Tercero bull 11 Tercero

1 - 12 Total trimestre3 13 Total finil 14 15

a Coste $1000 $2000 $3000 $1000 $1000 $1000 $3000

11500 | $1000 $2500 $5000 $11000

C

Figura 220 Datos de la hoja de caacutelculo despueacutes de que se hayan aplicado los subtotales

Sin embargo cuantas maacutes columnas tenga la tabla maacutes difiacutecil seraacute encontrar visualmente esos subtotales Puede solucionar este problema utilizando el forshymato condicional de Excel Usando la tabla de la figura 219 como ejemplo prueshybe esto antes de antildeadir los subtotales Seleccione las celdas Al B9 aseguraacutendose de que la celda Al sea la activa Entonces seleccione FormatogtFormato condicioshynal luego elija la opcioacuten Foacutermula del cuadro de lista desplegable y antildeada la sishyguiente foacutermula

= DERECHA ( $ A 1 5 ) = T o t a l

Ahora haga clic en el botoacuten Formato vaya a la pestantildea Fuente y seleccione como estilo de fuente la opcioacuten negrita Haga clic en Aceptar dos veces hasta cerrar los dos cuadros de diaacutelogo

La parte maacutes importante de la foacutermula es la utilizacioacuten de una referencia absoluta de la columna ($A) y de una referencia relativa de la fila (1) Como empezoacute la seleccioacuten desde la celda A l Excel cambiaraacute automaacuteticamente la foacutershymula para cada celda Por ejemplo las celdas A2 y B2 contendraacuten la foacutermula de formato condicional = DERECHA ($A2 5) = T o t a l y las celdas A3 y B3 tenshydraacuten = DERECHA ( $ A 3 5 ) = T o t a l

110 Excel Los mejores trucos

Ahora antildeada los subtotales y veraacute coacutemo se parecen a los que se muestran en la figura 2 21

I 1 2 3 bull A B 1 C | 1 Trimestre 2 Primero 3 Primero 4 Total tiimestiel 5 Segundo 6 Segundo 7 Segundo 8 Total trimestre2 9 Tercero 10 Tercero 11 Tercero 12 Total triexclmestre3 13 Total final

Coste $1000 $2000 $3000 $1000 $1000 $1000 $3000 $1500 $1000 $2500 $5000 $11000

| 15 |

Figura 221 Datos de la hoja de caacutelculo despueacutes de haber dado formato a los subtotales

Una uacuteltima cosa que debe recordar es que si elimina los subtotales no se volveraacute a aplicar la fuente en negrita

El truco sobre el truco

El uacutenico inconveniente que puede surgir con este meacutetodo es que el Total final aparezca con el mismo estilo que los subtotales Seriacutea interesante que el Total final tuviese un formato diferente de forma que resaltase de los subtotales y pudiera ser identificado maacutes faacutecilmente Utilizando el mismo ejemplo podemos hacer esto faacutecilmente

Con los mismos datos seleccione las celdas A1B9 aseguraacutendose de que la celda Al sea la activa Entonces seleccione FormatogtFormato condicional elija la opcioacuten Foacutermula del cuadro de lista desplegable e introduzca la siguiente foacutershymula

=$A1= Total f i n a l

Haga clic en el botoacuten Formato y luego vaya a la pestantildea Fuente y seleccioshyne como estilo la fuente en negrita Seleccione tambieacuten la opcioacuten Simple del cuashydro de lista desplegable Subrayado haga clic en Aceptar y de nuevo otra vez en Aceptar para cerrar todos los cuadros de diaacutelogo

A continuacioacuten seleccione la opcioacuten DatosgtSubtotales acepte las opciones predeterminadas y haga clic en Aceptar Ahora la hoja de caacutelculo deberiacutea tener el aspecto de la que se muestra en la figura 222

Puede utilizar cualquier formato que desee para conseguir que los subtotales sean maacutes sencillos de identificar

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 111

_ _ A B l C 1 [ bull 1 Trimestre Coste

[ bull 2 Primero $1000 IM bull 3 Primero $2000

- 4 Total trimestrel $3000 I bull 5 Segundo $1000

|| | bull 6 Segundo $1000 NI bull 7 Segundo $1000

- 8 Totaiacute trimestrel $3000 [ bull 9 Tercero $1500

bull 10 Tercero $1000 NI bull 11 Tercero $2500 j - 12 Total trimestre $5000

13 Total final $11000 14

l 15 I Figura 222 Datos de la hoja de caacutelculo con un total final maacutes resaltado

BSE1 Convertir las foacutermulas y funciones de Excel a valores ^ H La mayoriacutea de las hojas de caacutelculo de Excel contienen foacutermulas Pero a ^H veces desearaacute que solamente el resultado de una foacutermula quede

almacenado en una celda en vez de dejar la foacutermula que haraacute que los resultados se modifiquen cada vez que las celdas a las que haga referencia lo hagan

Puede hacer esto manualmente de dos maneras o tambieacuten puede utilizar una macro que haga el trabajo de forma automaacutetica Veamos primeramente los meacuteshytodos manuales

Utilizar Pegado especial

Puede copiar los resultados de una foacutermula y dejarla tal cual en su ubicacioacuten original utilizando la herramienta Pegado especial de Excel Supongamos que sus foacutermulas estaacuten en las celdas A1A100 Seleccione este rango luego seleccione EdicioacutengtCopiar y entonces seleccione la celda inicial en la que quiere duplicar los resultados Ahora vaya a EdicioacutengtPegado especial y seleccione la opcioacuten Valores Haga clic en Aceptar

Utilizar Copiar aquiacute soacutelo valores

Tambieacuten puede copiar los resultados de una foacutermula y dejar las foacutermulas orishyginales en su lugar utilizando el menuacute contextual que muchos usuarios ni sishyquiera saben que existe

Seleccione el rango de foacutermulas y haga clic con el botoacuten derecho sobre el borde derecho o izquierdo de la seleccioacuten (excepto en el pequentildeo recuadro de la esquina inferior derecha que sirve para la propagacioacuten) Manteniendo pulsado el botoacuten

112 Excel Los mejores trucos

derecho del ratoacuten (o haciendo clic mientras mantiene pulsada la tecla Control en Macintosh) arrastre la seleccioacuten a su destino suelte el botoacuten del ratoacuten y selecshycione en el menuacute contextual que aparece la opcioacuten Copiar aquiacute soacutelo valores Tambieacuten puede sobrescribir las foacutermulas originales con sus propios valores Para ello seleccione el rango de foacutermulas y haga clic con el botoacuten derecho del ratoacuten sobre el borde derecho o izquierdo de la seleccioacuten (de nuevo en cualquier lugar excepto en el recuadro de propagacioacuten) Mientras mantiene pulsado el botoacuten del ratoacuten arrastre la seleccioacuten una columna hacia la derecha o hacia la izquierda y luego vuelva al rango original soltando el botoacuten del ratoacuten y seleccionando la opcioacuten Copiar aquiacute soacutelo valores tal y como se muestra en la figura 223

I B Micros oftE

bull-iquesta] Archivo

J J Arial

A1

I 1 bull 2 i 3

4 5 8 7 8 9 10 11 12 13 14 15 16 17 18

d

A

laquoce - Librolxls fuumlT Edicioacuten Ver Insertar Formato

3

2 4 8 8

10 10

I

19

Arrastre ias celdaspra

j -eacute JL $ uuml - 10 - U M

f =B1C1 B C

1 2 3 4 5

L-

Mover aquiacute

Copiar aquiacute

w HHHHHHBHBS^^^ Herramientas Datos Ventana

aacute - J

i

2 2 2 2 2

i

Copiar aquiacute soacutelo como valores

Copiar aquiacute soacutelo como formatos

Crear viacutenculo aquiacute

Crear hiperviacutenculo aquiacute

Cancelar

^ -gt - B aacute E

M m ~j$ -| ooo euro osect

D E i F

f

H o j a l l | lt |

icrtradebdquomtradetradeJ Suma=42

~ lnixi raquo _ amp X i

$1 iacute l M ^ i 100 ^ j |

bull- - - gtT A ^ i G H - 1

mdash 1

i bull i r NUM

Figura 223 Menuacute contextual de acceso raacutepido

Utilizar una macro

Si con frecuencia convierte celdas que contienen foacutermulas y funciones a sus valores resultantes puede utilizar esta simple macro

Sub SoloValores( ) Dim rRange As Range

On Error Resume Next

Set rRange = ApplicationInputBox(Prompt=Seleccione las foacutermulas Title=SOacuteLO VALORES Type=8)

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 1 t3

If rRange Is Nothing Then Exit Sub rRange = rRangeValueacute

End Sub

Para utilizar esta macro vaya a HerramientasgtMacrogtEditor de Visual Basic (AltOpcioacuten-Fll) y seleccione lnsertargtMoacutedulo para insertar un moacutedulo estaacutendar Entonces escriba el coacutedigo anterior directamente dentro de la ventana del moacutedushylo Cierra esta ventana para volver a Excel y guardar los cambios Ahora seleccioshyne HerramientasgtMacrogtMacros (Alt Opcioacuten-F8) seleccione la macro que acabamos de crear SoloValores y haga clic en el botoacuten Opciones negr i t a s para asignarle una tecla de acceso raacutepido Cuando utilice la macro apareceraacute un cuashydro de diaacutelogo que le pediraacute que seleccione el rango que contiene las foacutermulas El rango que seleccione apareceraacute automaacuteticamente como una direccioacuten dentro del cuadro de diaacutelogo y en ese momento todo lo que debe hacer es realizar la conversioacuten haciendo clic en Aceptar

Antildeadir datos automaacuteticamente a una lista de validacioacuten La funcioacuten de validacioacuten de Excel es estupenda pero hay algo clave que no es capaz de hacer (al menos sin el siguiente truco) antildeadir automaacuteticamente una nueva entrada a la lista que estaacute siendo utilizada como origen de una lista de validacioacuten

Si ha utilizado la validacioacuten ya sabraacute que es una caracteriacutestica m u y intereshysante Quizaacute es maacutes impresionante su capacidad de antildeadir una lista a cualquier celda desde la cual el usuario podraacute seleccionar un elemento iquestNo seriacutea estupenshydo si cuando introdujese un nuevo nombre en una celda con validacioacuten Excel automaacuteticamente antildeadiese dicho valor a la lista Esto es posible gracias al sishyguiente truco Supongamos que tiene un listado de nombres en el rango de celshydas Al A10 como en la figura 224

[ A 1 Carlos Martiacutenez

2 Antonio Garciacutea 3 Mana Solans 4 Sergio Velase o 5 Silvia Rodriacuteguez 6 Aacutengel Blanco 7 Esther Carrasco 8 Javier Peacuterez 9 Ana Rebollo 10 Guillermo Ortega 11 12

I 13

B I

Figura 224 Configuracioacuten del libro de Excel para la lista de validacioacuten

114 Excel Los mejores trucos

Estos nombres representan los empleados de una empresa No es de extrantildear que deban antildeadirse los nuevos empleados a dicha lista pero por ahora la uacutenica forma de hacer esto es antildeadiendo los nuevos nombres al final de la lista y luego seleccionaacutendolos en la celda con validacioacuten

Para superar esta limitacioacuten siga estos pasos En la celda Al 1 introduzca la siguiente foacutermula y coacutepiela hacia abajo hasta la fila 20 tal y como se muestra en la figura 225 (observe la referencia relativa a A10)

=SI (0 ($D$l=raquo CONTARSI ($A$1A10$D$1) ) x $D$1)

A 1 Carlos Martiacutenez 2 Antonio Garciacutea 3 Mariacutea Solaris 4 Sergio Velasco 5 Silvia Rodriacuteguez 6 Aacutengel Blanco 7 Esther Carrasco

i 8 Javier Peacuterez 9 Ana Rehollo 10 Guillermo Ortega 11 X 12 x 13 x 14 x 15 x 16 x 17 x 18 x 19 x 20 x 21

B

Figura 225 Lista junto con la foacutermula antildeadida a las filas Al 1 A20

Ahora seleccione lnsertargtNombregtDefinir y en el cuadro de texto Nombres en el libro escriba MisNombres

En el cuadro de texto Se refiere a introduzca la siguiente foacutermula tal y como se muestra en la figura 226 Luego haga clic en Agregar y posteriormente en Aceptar

=DESREF(Hoj al$A$100CONTARSI (Hoj al$A$Altgtx) 1)

Seleccione la celda DI y luego vaya a DatosgtValidacioacuten Elija la opcioacuten Lista en el cuadro de lista desplegable y en el cuadro de texto Origen escriba ^MisNombres aseguraacutendose de que la casilla de verificacioacuten Celda con lista desplegable esteacute activada

Luego vaya a la pestantildea Mensaje de error y desactive la casilla de verificacioacuten Mostrar mensaje de error si se introducen datos no vaacutelidos Entonces haga clic en Aceptar y veraacute los resultados como se muestran en la figura 227

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 115

Nombres en el libro

~J

J

Agregar

Se refiere a

| =DESREF(Ho ja 1 $A$ 1 0 0 CONTAR SI(Ho ja 1 $A $A lt raquo) 1) ~3 Figura 226 Hacer que la lista sea dinaacutemica

A 1 |Carlos Martiacutenez

iexcl 2 Antonio Garciacutea 3 Mariacutea Solans 4 Sergio Velasco 5 Silvia Rodriacuteguez 6 Aacutengel Blanco 7 Esther Carrasco 8 Javier Peacuterez 9 Ana Rebollo 10 Guillermo Ortega 11 x 12 x 13 x

1 14

B C D | ||Columna1 bull ]

1 1

E

Figura 227 La lista con la validacioacuten antildeadida a la celda DI

Haga clic con el botoacuten derecho en la pestantildea con el nombre de la hoja y selecshycione la opcioacuten Ver coacutedigo

Entonces introduzca el siguiente coacutedigo

Priacutevate Sub Worksheet_Calculate( ) On Error Resume Next

ApplicationEnableEvents = False Range(MisNombres) = Range(MisNombres)Valueacute ApplicationEnableEvents = True

On Error GoTo 0

End Sub

Cierre esta ventana para volver a Excel y guardar los cambios Ahora seleccioshyne la celda DI escriba cualquier nombre que no exista en la lista y pulse Intro Seleccione de nuevo la celda DI y observe la lista veraacute como el nombre ha sido antildeadido automaacuteticamente como puede verse en la figura 228

Si desea antildeadir maacutes de diez nombres a la lista simplemente copie la foacutermula hacia abajo a partir de la fila 20

116 Excel Los mejores trucos

I ~A B c D I uanos Martiacutenez Isitvia Rodriacuteguez ^ iquest lAntonio Garciacutea l | ^ J

I 3 Mariacutea Solans 4 Sergio Velasco 5 Silvia Rodriacuteguez

I 6 Aacutengel Blanco I 7 Esther Carrasco

8 Javier Peacuterez 9 Ana Rebollo 10 Guillermo Ortega 1 1 X

12 x 13 x 14 x

E

Figura 228 La lista despueacutes de antildeadir una nueva entrada en la celda DI

Trucar las caracteriacutesticas de fecha y hora de Excel Las caracteriacutesticas de fecha y hora de Excel son estupendas si crea hojas de caacutelculo sencillas pero pueden causar problemas para proyectos maacutes avanzados Por suerte existen formas de evitar estos problemas

Excel de forma predeterminada utiliza el sistema de fecha 1900 Esto signifishyca que la fecha 1 de enero de 1900 tiene un valor numeacuterico de 1 la fecha 2 de enero de 1900 un valor numeacuterico de 2 y asiacute sucesivamente A estos valores se les llama valores en serie en Excel y permiten utilizar fechas en los caacutelculos

Con las horas ocurre praacutecticamente lo mismo aunque Excel las t rata como fracciones decimales siendo 1 la representacioacuten de 2400 oacute 0000 y por ejemplo 0 75 la representacioacuten de las 1800 ya que esta hora representa los tres cuartos de las 24 horas del diacutea

Para ver el valor numeacuterico de una fecha y o una hora asigne el formato Geshyneral a la celda que contenga dicho valor Por ejemplo la hora y fecha 3 de julio de 2002 150000 tiene un valor numeacuterico de 37440625 siendo el nuacutemero 625 la representacioacuten de la hora y el 3 7440 el nuacutemero de serie para la fecha

Sumar maacutes allaacute de las 24 horas

Puede sumar horas utilizando la funcioacuten SUMA (o simplemente el signo +) De esta forma la funcioacuten =SUMA(A1 A5) seriacutea el resultado total de horas en caso de que dichas celdas tuviesen valores vaacutelidos Sin embargo aquiacute nos enconshytramos un gran problema a menos que se diga lo contrario Excel no sumaraacute maacutes allaacute de las 24 horas Esto es debido a que cuando una hora excede el valor de 24 horas (un valor verdadero de 1) entonces se convierte en un nuevo diacutea y comienza de nuevo Para obligar a Excel a que no pase a un nuevo diacutea despueacutes de las 24 horas puede utilizar un formato de celda de 373055 o bien un formato personalizado de [h]mmss

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 117

Puede utilizar un formato similar para obtener el total de minutos o segunshydos de una hora en particular Para obtener el nuacutemero total de minutos de la hora 2400 por ejemplo asigne el formato [m] a la celda y obtendraacute un resultashydo de 1440 Para obtener el nuacutemero total de segundos utilice un formato persoshynalizado [s] con lo que obtendraacute 86400

Caacutelculos de fecha y hora

Si desea utilizar estos valores reales de hora en otros caacutelculos tenga siempre en mente estos nuacutemeros maacutegicos

60 60

3600 60

24 24

1440 60

86400 24

minutos o 60 segundos

segundos 6 0 minutos

horas

minutos 24 horas

horas 60 minutos 60 segundos

Sabiendo esto encontraraacute mucho maacutes sencillo manipular las horas y las feshychas Eche un vistazo a los siguientes ejemplos para ver a queacute nos referimos (suponiendo que la hora este en la celda Al ) Si tiene el nuacutemero 550 y lo que realmente quiere es 530 o 530 am utilice esto

=Al24

y aplique el formato que sea necesario Si tuvieron que ser las 1730 o las 530 am utilice esto

= ( A l 2 4 ) + 0 5

Para conseguir lo contrario es decir una hora decimal a partir de una hora real utilice esto

Al24

Si una celda contiene la fecha y hora real (por ejemplo 22 de enero de 2003 1536) y soacutelo desea obtener la fecha utilice esto

=ENTERO(Al)

Para obtener solamente la hora utilice esto

=A1-ENTERO(Al)

118 Excel Los mejores trucos

o bien

= R E S I D U 0 ( A 1 1 )

y aplique el formato que sea necesario Para averiguar la diferencia entre amshybas fechas utilice esto

A1-A2

Siendo Al la fecha posterior y A2 la fecha anterior El resultado que obtendreshymos seraacute el nuacutemero de diacuteas transcurridos entre ambas fechas Para que funcione correctamente la celda que contenga este caacutelculo debe tener formato numeacuterico ya que de lo contrario obtendremos un error Si no sabe cuaacutel de las dos fechas es la maacutes antigua puede utilizar las funciones MIN y MAX Por ejemplo para aseshygurarse de que el resultado es el correcto utilice esto

= M A X ( A 1 A 2 ) - M I N ( A l A 2 )

Igualmente cuando trabaje con horas quizaacute desee contar desde una hora inicial a una hora final por ejemplo conteniendo la celda Al el valor 850 pm y la celda A2 el valor 950 am Si calcula la resta de la hora final y la hora inicial (=A2-A1) obtendraacute ya que Excel de forma predeterminada no puede trabajar con horas negativas Para solucionar este problema puede usar uno de estos dos meacutetodos

=MAX(A1A2) -MIN ( A l A2 )

o bien

A1-A 2 + IF ( A 1 gt A 2 1 )

Tambieacuten le puede decir a Excel que antildeada cualquier nuacutemero de diacuteas meses o antildeos a una fecha en particular

=FECHA(ANtilde0(A1)+valorlMES(Al)+valor2DIacuteA(Al)+valor3)

Para antildeadir un mes a una fecha almacenada en la celda A l escriba

= FECHA(ANtilde0(A1) MES (Al ) + 1 DIacuteA ( A l ) )

Excel tambieacuten ofrece algunas funciones adicionales que forman parte del pashyquete de anaacutelisis Para acceder a ellas seleccione la opcioacuten Complementos del menuacute Herramientas Luego haga clic en la casilla de verificacioacuten Herramientas para anaacutelisis para activarla y cuando se le pregunte responda que siacute para instashylarlas A partir de entonces dispondraacute de funciones adicionales tales como DIALAB FINMES NUMDESEMANA etc

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 119

Encontraraacute todas estas funciones dentro de la categoriacutea Fecha y hora del asisshytente para funciones En realidad estas funciones son faacuteciles de utilizar Lo que es difiacutecil es saber que estaacuten disponibles y coacutemo activarlas

Horas y fechas reales

Aveces las hojas de caacutelculo con datos importados (datos que se han introdushycido incorrectamente) acaba mostrando las fechas y las horas como texto y no como nuacutemeros reales Puede solventar esto faacutecilmente en Excel aumentando el ancho de las columnas un poco Para ello seleccione una columna vaya a FormatogtCeldasgtAlineacioacuten y luego cambie la alineacioacuten horizontal a General (que es el formato predeterminado para las celdas) Haga clic en Aceptar y obshyserve cuidadosamente las fechas y las horas Si no estaacuten correctamente alineashydas entonces es porque Excel no sabe que son fechas

Para arreglar esto primero copie una celda vaciacutea y luego seleccione la columshyna daacutendole formato de fecha y o hora Teniendo la columna seleccionada vaya a EdicioacutengtPegado especial seleccione las opciones Valores y Sumar Esto obliga a Excel a convertir cualquier fecha u hora en formato texto a fecha y hora real Puede que necesite cambiar el formato nuevamente Otro meacutetodo tambieacuten sencishyllo es hacer referencia a las celdas de esta forma

=Al + 0

o bien

=A11

iquestUn fallo de fechas

Excel asume de forma incorrecta que 1900 no fue un antildeo bisiesto Esto sigshynifica que el sistema interno de fechas de Excel cree que existioacute el 29 de febrero de 1900 cuando en realidad no fue asiacute Lo maacutes sorprendente es que Microsoft hizo esto de forma intencionada o al menos eso dicen Puede encontrar maacutes informashycioacuten en la direccioacuten httpsupportmicrosoftcomdefault aspxscid=kbEN-USql81370 A continuacioacuten le presentamos algunos viacutenculos interesantes con informacioacuten referente a fechas y horas

bull Coacutemo utilizar fechas y horas en Excel 2000

httpsupportmicrosoftcomdefaultaspxscid=kben-usQ2140946

bull Texto o nuacutemero convertido al formato numeacuterico no deliberado

httpsupportmicrosoftcomdefaultaspxscid=kben-usQ214233

120 Excel Los mejores trucos

bull Horas maacuteximas en Microsoft Excel

httpsupportmicrosoftcomdefault aspxscid=kben-usQ214386

bull Fechas y horas mostradas como nuacutemeros de serie cuando se visualishyzan foacutermulas

httpsupportmicrosoftcomdefault aspxscid=kben-usQ241072

bull Manipular y comprender las configuraciones del cuadro de diaacutelogo Formato de celdas

httpsupportmicrosoftcomdefaultaspxscid=kben-usa264372

bull Coacutemo utilizar fechas y horas en Microsoft Excel

httpsupportmicrosoftcomdefaultaspxscid=kben-us214094

Probablemente el t ratamiento de fechas y horas es uno de los aspectos maacutes confusos de Excel De todas formas con toda esta informacioacuten podraacute entender mejor todos los entresijos en relacioacuten a este tema

CAPIacuteTULO 3

Trucos sobre nombres Trucos 39 a 44

Probablemente la mayor ventaja de utilizar rangos con nombre es que las foacutermulas son mucho maacutes faacuteciles de leer y comprender no soacutelo para usted sino para todos aquellos que tengan que trabajar con sus hojas de caacutelculo Al utilizar rangos con nombres (una de las caracteriacutesticas maacutes faacuteciles y uacutetiles de Excel) puede seleccionar un rango de celdas y darle un hombre especiacutefico Llegados a ese punto puede hacer una referencia a ese rango utilizando el nombre en vez de su direccioacuten A pesar de que los rangos con nombre son una caracteriacutestica m u y potente podemos ir maacutes allaacute de su uso estaacutendar mediante algunos meacutetodos

Usar direcciones de datos por el nombre Aunque los nuacutemeros de celda son el fundamento de todo lo que hace Excel resulta mucho maacutes sencillo recordar nombres como por ejemplo Nuacutemero y cantidad de elementos que recordar los nuacutemeros de celdas como por ejemplo A1A100 Excel nos permite hacer esto de forma muy sencilla

Excel utiliza la misma teacutecnica para definir nombres de celdas y de rangos mediante el Cuadro de nombres que estaacute situado en la parte superior izquierda de la ventana jun to a la barra de foacutermulas Para dar nombre a una celda selecshycioacutenela escriba el nombre que desee darle en el Cuadro de nombres (veacutease figura 31) y pulse Intro Para dar nombre a un rango de celdas seleccione primero el rango escriba el nombre que desee darle en el Cuadro de nombres y luego pulse la tecla Intro

La lista desplegable que aparece a la derecha del Cuadro de nombres le permite buscar nombres de rangos y celdas que ya esteacuten almacenados Si selecciona ma-

m

124 Excel Los mejores trucos

nualmente un rango que ya tuviese un nombre apareceraacute dicho nombre en lushygar de la referencia al rango de celdas

IffM^^c^i^N^^w^MHMBPiMiMii i i lili iiiiPiiiwn

laquo^j Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana - amp X j

J J d Jraquo _J J J yen iquestgt - J - gg 2 - i i kg ktgt | j Anal - io ^ N ^ $ = = = ^ c IF _ - -^ - AT pound

MiCeldaFavorita bull pound 1000000 1 r mdash A B T ~C D | mdash =

1 [Celda muy interesantemdash -gt 1 1000000 euro1 mdash | 2

3 4 5 6 7 8 9 _J 10 11 12 13

14 |llt 4 bull w Ho ja l Ho ja2 Ho ja3 | ltraquo | j bull | f| Listo NUM 1

Figura 31 Dar el nombre MiCeldaFavorita a una celda

En las foacutermulas puede utilizar estos nombres en vez de los identificadores de celdas o rangos Si por ejemplo le dio el nombre fecha a la celda E4 podriacutea escribir la foacutermula =f echa en vez de =E4 De forma similar si creoacute el nombre cantidad para el rango de celdas A3A10 y quisiera obtener el total de los valoshyres almacenados en ellas la foacutermula podriacutea ser =SUMA ( c a n t i d a d ) en vez de = SUMA(A3A10)

Dado que las hojas de caacutelculo se van haciendo maacutes y maacutes grandes e intrincashydas resulta vital utilizar nombres de celdas y rangos para hacerlas manejables

Utilizar el mismo nombre para rangos en diferentes hojas de caacutelculo A veces resulta conveniente utilizar el mismo nombre para los datos que se encuentran en el mismo lugar pero en diferentes hojas dentro de un mismo libro Ello requiere de unos cuantos pasos adicionales para que pueda funcionar

Normalmente cuando da nombre a un rango eacuteste se asigna a nivel del libro lo que significa que un nombre se refiere a un rango especiacutefico de una hoja en particular que esteacute situada dentro de un libro Una vez asignado el nombre no

3 Trucos sobre nombres 125

puede ser utilizado otra vez para representar un rango que esteacute en otra hoja Sin embargo existe una forma de solucionar esto

Supongamos que tiene un libro que contiene tres hojas cuyos nombres son Hojal Hoja2 y Hoja3 Desea tener un rango con el nombre MiRango (podriacutea ser cualquier otro nombre) que haga referencia al rango A1A10 de la Hojal en caso de estar situados en ella al rango Al A10 de la Hoja2 en caso de estar situashydos en ella etc

Para conseguir esto active la Hojal seleccione el rango Al A10 y luego haga clic en el Cuadro de nombres como hicimos en el t ruco anterior Escriba Hojal IMiRango y luego pulse la tecla Intro Haga lo mismo para la Hoja2 y Hoja3 escribiendo Hoja2 IMiRango y Hoja3IMiRango respectivamente Ahora active cualquier hoja y haga clic en la lista desplegable del Cuadro de nombres Deberiacutea ver tan soacutelo un elemento con el nombre MiRango Seleccioacutenelo y veraacute como se selecciona directamente el rango A1A10 Ahora active cualquier otra hoja y haga lo mismo

Observaraacute como se selecciona automaacuteticamente el rango A1A10 de la hoja que tenga activa Esto es posible porque hemos introducido el nombre de la hoja seguido del s igno de admi rac ioacuten an tes del n o m b r e del r a n g o Si va a lnsertargtNombregtDefinir soacutelo veraacute un nombre aquel que se refiere a la hoja que se encuentra activa en este momento

En caso de que el nombre de la hoja incluya espacios no podraacute hacer la refeshyrencia simplemente escribiendo Hoja 1 IMiRango Tendraacute que escribir Hoja 1IMiRango es decir escribiendo comillas simples antes y despueacutes del nombre de la hoja De hecho podriacutea utilizar esas comillas simples aunque el nombre de la hoja no contuviese espacios lo cual siempre es una buena idea para usar siempre la misma nomenclatura

Tambieacuten puede utilizar un nombre de rango con referencias relativas De forshyma predeterminada los nombres de rango son absolutos pero no tiene porqueacute ser asiacute Intente lo siguiente

Seleccione la celda A l l de cualquier hoja y luego vaya a lnsertargtNombregt Definir En el cuadro de texto Nombres en el libro escriba MisNuacutemeros En el cuadro de texto Se refiere a escriba =A$1 A$10 y luego haga clic en Agregar y en Aceptar Ahora introduzca el nuacutemero 1 en la celda A l Seleccioacutenela y coloque el cursor del ratoacuten sobre el pequentildeo recuadro situado en la esquina inferior dereshycha que se utiliza para propagar Haga clic en eacutel y mientras mantiene pulsada la tecla Control arrastre el cursor hasta la celda A10

Al mantener pulsada la tecla Control mientras que se propaga una celda con un uacutenico nuacutemero Excel incrementa dicho nuacutemero de 1 en 1

Ahora introduzca un 1 en la celda Bl y propaguacuteela hasta la celda B10 pero esta vez sin mantener pulsada la tecla Control

126 Excel Los mejores trucos

Estando en la celda Al 1 introduzca la siguiente foacutermula

=SUMA(MisNuacutemeros)

En la celda Bl 1 introduzca esta foacutermula

= SUMA(Mi sNuacuteme r o s )

Deberiacutea obtener los resultados 55 y 10 respectivamente Esto es debido a que la celda A l l estaba activa cuando seleccionoacute lnsertargtNombregtDefinir y asignoacute al nombre de rango la referencia A$l A$10 que es una columna relativa y una fila absoluta

gt El signo del doacutelar ($) obliga a que cualquier rango sea absoluto

Cuando utilizamos el nombre MisNuacutemeros en una foacutermula siempre haraacute referencia a las 10 celdas que se encuentran inmediatamente por encima de la foacutermula Si escribimos la foacutermula =SUMA (MisNuacutemeros) en la celda Al 1 de cualshyquier otra hoja seguiraacute haciendo referencia a las celdas A1A10 de la hoja que estaba activa cuando creoacute el nombre del rango

Supongamos que desea simplificar la suma de las 10 celdas que hemos menshycionado anter iormente Seleccione la celda A l l de cualquier hoja Vaya a lnsertargtNombregtDefinir y escriba en el cuadro de texto de la parte superior MiSuma Luego en el cuadro de texto Se refiere a escriba lo siguiente

=SUMA(A$1A$10)

Haga clic en Agregar y luego en Aceptar Ahora introduzca el nuacutemero 1 en la celda A l seleccioacutenela de nuevo coloque el cursor del ratoacuten sobre el cuadro de propagacioacuten y mientras mantiene pulsada la tecla Control arraacutestrelo hasta la celda A10 Una vez hecho esto introduzca un 1 en la celda Bl y propaguacuteelo hasta la celda B10 pero esta vez sin mantener pulsada la tecla Control

En la celda Al 1 introduzca la siguiente foacutermula

=MiSuma

En la celda Bl 1 introduzca la foacutermula

=MiSuma

Obtendraacute los mismos resultados que la vez anterior pero esta vez sin que sea necesario utilizar la funcioacuten SUMA Mezclar las referencias absolutas que relatishyvas y juntando algunas funciones puede ser m u y uacutetil para ahorrarse gran cantishydad de trabajo

3 Trucos sobre nombres 127

QnKjQI Crear funciones personalizadas utilizando nombres M ^ V ^ w ^ l Aunque hacer referencia a datos por su nombre es muy uacutetil a veces lo seriacutea

K l f l maacutes si pudieacutesemos almacenar un valor constante o incluso una foacutermula especialmente si ha estado creando funciones personalizadas en VBA

Supongamos que tiene un impuesto del 10 que se necesita utilizar a lo larshygo de todo el libro para algunos caacutelculos En vez de tener que introducir el valor 10 (01) en cada una de las foacutermulas que aplican este impuesto podriacutea introshyducir la palabra Impuesto y que Excel supiese automaacuteticamente que debe sustishytuirlo por el valor 0 1 Veamos coacutemo puede hacerse esto

Seleccione lnsertargtNombregtDefinir En el cuadro de texto Nombres en el libro escriba Impuesto y en el cuadro de texto Se refiere a introduzca = 0 1 Luego haga clic en Aceptar

Ahora puede introducir cualquier foacutermula en una celda y en vez de antildeadir 10 como parte del caacutelculo puede sustituirlo por la palabra Impuesto Probableshymente una de las grandes ventajas de utilizar este meacutetodo es que si tiene que incrementar o de incrementar el impuesto y las foacutermulas deben reflejar dicho cambio simplemente basta con ir a lnsertargtNombregtDefinir seleccionar el nomshybre Impuesto y luego modificarlo convenientemente

Para dar un paso maacutes allaacute en este concepto puede utilizar las foacutermulas con los rangos definidos en Se refiere a en vez de utilizar direcciones de celdas o valores constantes Supongamos que desea crear un nombre que cuando se inshytroduzca en una celda devuelva automaacuteticamente la SUMA de las 10 celdas que se encuentran por encima Seleccione la celda Al 1 de cualquier hoja y luego vaya a lnsertargtNombregtDefinir En el cuadro de texto Nombres en el libro escriba Toshytal y en el cuadro de texto Se refiere a escriba lo siguiente

=SUMA(A1A10)

Luego haga clic en Agregar y en Aceptar Introduzca cualesquiera 10 nuacutemeros en cualquier columna empezando en la

fila 1 Ahora vaya a la fila 11 de la misma columna y escriba lo siguiente

=Total

El nombre Total automaacuteticamente devolveraacute la SUMA de los 10 valores que haya introducido en el rango A1A10 Si desea crear una foacutermula similar a la anterior pero que no esteacute restringida a solamente 10 celdas sino que haga refeshyrencia a todas las celdas que se encuentren por encima de la fila en cuestioacuten siga estos pasos

Seleccione la celda BU y luego vaya a lnsertargtNombregtDefinir Seleccione el nombre Total

128 Excel Los mejores trucos

Vaya al cuadro de texto Se refiere a que deberiacutea contener el tex to =SUMA (Bl B l 0 ) Esto le permite crear foacutermulas con nombre En otras palabras como no hizo referencias absolutas para columna en el nombre original Total siempre haraacute referencia a la columna en la que se utilice el nombre

Ahora haga clic en el cuadro de texto Se refiere a y cambie la foacutermula por la siguiente

=SUMA(B$1B10)

Haga clic en Agregar y luego en Aceptar

Seleccione cualquier fila de cualquier columna que no sea la fila 1 e introduzshyca = T o t a l con lo que obtendraacute automaacuteticamente la SUMA de todas las celdas que se encuentran por encima independientemente de cuantas filas haya Esto se debe a que ha vinculado la fila nuacutemero 1 utilizando una referencia absoluta dejando la referencia a la celda B10 como relativa lo que significa que siempre terminaraacute en la celda inmediatamente superior a donde se introduzca la foacutermula = T o t a l

Combinando este truco con una de las caracteriacutesticas estaacutendar (aunque poco conocida) de Excel el meacutetodo de la interseccioacuten es posible crear funciones de buacutesqueda sofisticadas Si no conoce coacutemo funciona el meacutetodo de la interseccioacuten a continuacioacuten mostramos un pequentildeo ejemplo sobre su uso

En la celda A l introduzca el encabezado Nombre en la celda Bl Pagar y en la celda Cl Tiacutetulo Introduzca Juan en la celda A2 y Antonio en la celda A3 Introduzca 10 en la celda B2 y 20 en la celda B3 Introduzca Sr en la celda C2 y Dr en la celda C3 Ahora seleccione el rango A1C3 y luego vaya a lnsertargtNombregtCrear Aseguacuterese de que estaacuten activadas las casillas de verificashycioacuten Fila superior y Columna izquierda y luego haga clic en Aceptar

Seleccione cualquier celda que esteacute fuera de ese rango e introduzca = A n t o shyn i o T iacute t u l o Deberiacutea obtener el tiacutetulo correspondiente a la persona que ha inshytroducido

El espacio entre las palabras Antonio y Tiacutetulo es importante ya que r es la forma por la que Excel entiende que se trata de un operador de ^ interseccioacuten

Basaacutendonos en este concepto podemos combinar esta caracteriacutestica con las de foacutermulas con nombre de Excel para conseguir no soacutelo que las hojas de caacutelculo sean maacutes sencillas utilizar sino tambieacuten mucho maacutes sencillas de leer y comprenshyder Supongamos que tiene una tabla configurada en una hoja de caacutelculo de forshyma m u y similar a la que se muestra en la figura 32 y que estaacute utilizando esa tabla para crear los nombres en Excel

3 Trucos sobre nombres 129

mmmmmmmmmmmmmm sj Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana l - S x

j JS y 3 J J A ^ a aacute -iquest iquestgt - laquoo - -- a pound - uuml ti M 1 Arial raquo 10 ^ [ Ntilde ] ^ S E M M -g S| 000 euro o8 1^ _iquest 3raquo A sect1

A1 bull ^ Nombre empleado B

Nombre empleado Carlos Martiacutenez Antonio Garciacutea Mariacutea Solans Sergio Velasco Silvia Rodriacuteguez Aacutengel Blanco Esther Carrasco Javier Peacuterez Ana Rebollo iexclGuillermo Ortega

Tarifa Hora Puesto 1725 Jefe de proyecto 124 Consultor Juacutenior

12 Analista seacutenior 1325 Comercial

98 Administrativo 1185 Programador seacutenior 1545 Representante 181 Jefe de proyecto

14 Coordinador 143 Consultor seacutenior

F-_T

BSCEiSSl- Crear nombres en

Iiexcl7 Ma superior]

W Columna igquierda

f Riacutea inferior

V Columna iquesterecha

j Aceptar sect Cancelar

J

J

bull M H o j a l ^ H o j a 2 H p j a 3 J JltJ 5uma=i384

lf

Figura 32 La tabla y el cuadro de diaacutelogo de Crear nombres

Una vez que cree los nombres para la tabla observaraacute que Excel coloca automaacuteticamente un siacutembolo de subrayado en los espacios situados entre dos o maacutes palabras Esto es debido a que los nombres de los rangos no pueden contener espacios Seleccione lnsertargtNombregtDefinir introduzca TarifaHoraAntonio en el cuadro de texto Nombres en el libro y =Antonio_Garciacutea Tarifa_Hora Luego haga clic en Agregar tal y como se muestra en la figura 33

Ahora en cualquier celda fuera de la tabla introduzca lo siguiente

=TarifaHoraAntonio

La tarifa por hora para Antonio se devolveraacute automaacuteticamente Quizaacute desee experimentar ahora con las intersecciones para ver coacutemo funcioshy

nan de forma oacuteptima en sus proyectos

Crear rangos que se expandan y contraigan Si constantemente necesita actualizar y antildeadir informacioacuten a los datos o si trabaja con graacuteficos y tablas dinaacutemicas desearaacute poder crear rangos dinaacutemicos con nombre que se expandan y contraigan en funcioacuten de los datos

Para entender coacutemo funcionan los rangos con nombre deberiacutea en primer lugar familiarizarse con la funcioacuten DESREF (si es que no lo ha hecho todaviacutea) una de las funciones de buacutesqueda de referencia de Excel

130 Excel Los mejores trucos

^sect] Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana

J J d Jgt _JI J JL iquest iquest - J ^ - J -i - 81

bull bull bull 2iacuteJ ^ 1 000 euro B12 - f

gtli iacute i M bull

B D Nombre empleado Tarifa iquestpound

Carlos Martiacutenez

Antonio Garciacutea

Mariacutea Solans

Sergio Velasco

Silvia Rodriacuteguez

Aacutengel Blanco

Esther Carrasco

Javier Peacuterez

Ana Rebollo

Guillermo Ortega

iSi Nombres en el libro

TarifaHoraAntonio

Guillermo_Ortega Javier_Peacuterez Mariacutea_Solans Nombre_empleado Puesto 5ergio_Velasco 5ilvia_Rodriguez Tarifa Hora

Agregar

|=Antonio_Garciacutea Tarifa_Hora

M i bull bull l H o j a l H o j a 2 H o j a 3 llaquol ir

Figura 33 Buacutesqueda de nombre creada

Comenzaremos con el rango dinaacutemico con nombre maacutes simple aquel que se expandiraacute hacia abajo una uacutenica columna pero solamente tanto como entradas contenga la columna Por ejemplo se la columna A contiene 10 filas continuas de datos el rango dinaacutemico con nombre incorporaraacute el rango Al A10 Siga estos pasos para crear dicho rango

Vaya a lnsertargtNombregtDefinir introduzca MiRango en el cuadro de texto Nombres en el libro y en el cuadro de texto Se refiere a introduzca lo siguiente

=DESREF($A$100CONTARA($A$1$A$10 0)1)

Ahora haga clic en Agregar y luego en Aceptar

Cuando defina el rango para CONTARA evite la tentacioacuten de incluir toda la columna de datos para asiacute no obligar a dicha funcioacuten a contar

^ miles de celdas innecesarias

Teniendo ahora los datos en la columna A este rango con nombre incorporashyraacute todos los datos que se encuentren en filas contiguas comenzando por la celda A l Si desea comprobar el rango dinaacutemico con nombre puede hacerlo de diferenshytes formas

Por desgracia los rangos dinaacutemicos con nombre no estaacuten accesibles a traveacutes del Cuadro de nombres estaacutendar de la parte superior izquierda de la ventana de

3 Trucos sobre nombres 131

Excel Pero siacute puede hacer clic en dicho cuadro escribir el nombre MiRango y pulsar Intro Excel seleccionaraacute automaacuteticamente el rango Por supuesto t amshybieacuten puede utilizar el cuadro de diaacutelogo Ir a yendo a Edicioacutengtlr a (ControlCo-mando-I) escribiendo MiRango en el cuadro de texto y haciendo clic en Aceptar

El rango dinaacutemico con nombre que acaba de crear en el ejemplo anterior conshytiene la funcioacuten CONTARA como paraacutemetro de la funcioacuten DESREF

Recuerde que la funcioacuten CONTARA contaraacute todas las celdas que no esteacuten vaciacuteas Tenga en cuenta que esto tambieacuten incluye las foacutermulas que dichas celdas contenga que puedan estar devolviendo un texto vaciacuteo ()

Si tiene una lista que soacutelo contiene datos numeacutericos y al final de ella desea almacenar un texto pero no quiere que dicho texto quede incluido como parte del rango dinaacutemico con nombre puede reemplazar la funcioacuten CONTARA con la funcioacuten estaacutendar de Excel CONTAR funcioacuten que soacutelo cuenta las celdas que conshytienen datos numeacutericos

El siguiente ejemplo utilizaremos el rango dinaacutemico con nombre para definir una tabla de datos que deseamos sea dinaacutemica Para ello escriba la siguiente funcioacuten en el cuadro de texto Se refiere a

=DESREF($A$100CONTARA($A$1$A$10 0)CONTARA($1$1))

Aquiacute el rango dinaacutemico con nombre se expandiraacute hacia abajo tantas entradas como datos haya que la columna A y a lo largo de tantas filas como encabezados haya en la fila 1 Si estaacute seguro de que el nuacutemero de columnas para la tabla se va a mantener estable puede reemplazar la segunda funcioacuten CONTARA por un nuacuteshymero fijo como pueda ser 10

El uacutenico problema al utilizar rangos dinaacutemicos con nombre para una tabla de datos es que presupone que la columna A estableceraacute la longitud maacutexima para la tabla En la mayoriacutea de los casos esto seraacute cierto pero a veces puede que la columna maacutes larga sea otra diferente Para evitar este problema puede utilizar la funcioacuten MAX de Excel que devuelve el nuacutemero maacutes alto en un rango de celshydas Como ejemplo configure una tabla de forma similar a la que se muestra en la figura 34

Utilice la fila 1 para almacenar un nuacutemero de las funciones CONTARA que estaacuten haciendo referencia a la columna y por tanto devolviendo el nuacutemero de entradas en cada columna Utilice la funcioacuten MAX para el argumento alto de la funcioacuten DESREF Esto asegura que el rango dinaacutemico con nombre para la tabla siempre se expandiraacute tanto como la columna maacutes larga Por supuesto puede ocultar la fila 1 ya que el usuario no necesita verla

132 Excel Los mejores trucos

Figura 34 Tabla dinaacutemica de datos y el cuadro de diaacutelogo Definir nombre

En todos estos ejemplos hemos supuesto que los datos siempre estaraacuten en filas contiguas sin celdas en blanco entre medias Aunque este es el meacutetodo coshyrrecto para configurar una lista a una tabla de datos a veces no se tiene control sobre esto En el siguiente ejemplo el listado de nuacutemeros de la columna A tamshybieacuten contiene celdas en blanco Esto significa que si intenta utilizar las funciones CONTAR o CONTARA el rango dinaacutemico con nombre no funcionaraacute correctashymente como puede verse en la figura 35

En este caso aunque el uacuteltimo nuacutemero en el rango estaacute en la fila 10 el rango dinaacutemico se estaacute expandiendo solamente hasta la fila 6 Esto es debido a que hemos utilizado la funcioacuten CONTAR para contara desde la celda Al a la celda Al 00 Sin embargo soacutelo hay 6 datos numeacutericos en la lista por lo que el rango se expande solamente 6 filas

Para evitar este problema utilizaremos la funcioacuten de Excel COINCIDIR Esta funcioacuten se utiliza para devolver la posicioacuten relativa de un elemento en una mashytriz de aquel que coincida con un valor especiacutefico en un orden especiacutefico Por ejemplo se utiliza esta funcioacuten COINCIDIR

=COINCIDIR(6$A$1$A$1000)

en el mismo conjunto de nuacutemeros que mostraacutebamos de la figura 35 la funshycioacuten COINCIDIR devolveraacute el nuacutemero 10 que representa la fila 10 de la columna

3 Trucos sobre nombres 133

A Ha devuelto 10 porque le hemos dicho a la funcioacuten que encuentre el nuacutemero 6 en el rango Al A100

Agregar |

Qiminar

Se refiere a

=DE5REF(Hoja2$A$l00CONTAR(Hoja2$A$l $A$100) 1)| 31

llt i bull bull l lVHoa l Ho ia2 HQja3Z LiacuteL JID Figura 35 Un rango de nuacutemeros y cuadro de diaacutelogo Definir nombre

Obviamente cuando utilicemos esta funcioacuten como parte de un rango dinaacutemishyco con nombre lo maacutes probable es que no conozcamos el uacuteltimo nuacutemero del rango Por tanto necesitamos decirle a la funcioacuten COINCIDIR que intente buscar un nuacutemero exageradamente alto en el rango que nunca podriacutea existir y camshybiar el uacuteltimo argumento de la funcioacuten por 1

El ejemplo anterior le dijimos a la funcioacuten COINCIDIR que encontrarse el nuacuteshymero exacto 6 ni maacutes ni menos Ahora si reemplazamos el 0 por 1 en el uacuteltimo argumento de la funcioacuten estamos indicaacutendole que busque el valor maacutes alto que sea menor o igual que el valor indicado

Para ello utilice esta foacutermula

=COINCIDIR(1E+306$A$1$A$1001)

Para crear un rango dinaacutemico con nombre que se expanda hasta la uacuteltima fila que contenga un nuacutemero (independientemente de que haya celdas entre medias) escriba esta foacutermula en el cuadro de texto Se refiere a del cuadro de diaacutelogo Definir nombre tal y como se muestra en la figura 36

=DESREF(Hoja2$A$l00COINCIDIR(lE+3 0 6 H o j a 2 $ A $ l $ A $ 1 0 0 l ) 1 )

El siguiente tipo loacutegico de rango dinaacutemico con nombre que podriacutean surgir de esto es aquel que se expanda hasta la uacuteltima entrada de texto independienteshymente de que haya celdas en blanco en la lista o en la tabla

134 Excel Los mejores trucos

uumlj

Aceptar j

O Agregar

9 10 11 12 13 14 15 16 17 18 19 20 4 4 bull H Hojal H o j a 2 H o j a 3

J

Se refiere a

j =DESREF(Hoja2 $A$ 1 0 0 COINCIDIRAacute E+306 Ho ja2$A$1 $A$ 100 1) 1 )| 5

X iexclD Figura 36 Un rango dinaacutemico que se extiende hasta la uacuteltima entrada numeacuterica

Para hacer esto reemplace la funcioacuten COINCIDIR con la siguiente

C O I N C I D I R ( $ A $ 1 $ A $ 1 0 0 - 1 )

Esto siempre devolveraacute el nuacutemero de fila de la uacuteltima entrada de texto situada en el rango $A$1$A$100

Ahora que ya sabe coacutemo hacer esto para entradas numeacutericas y de texto es loacutegico que necesite definir de alguna forma un rango dinaacutemico con nombre que sea capaz de buscar maacutes allaacute de las celdas en blanco en una lista que contenga tanto texto como nuacutemeros

Para poder hacer esto primeramente insertados celdas en blanco por encima de la lista seleccionando las filas 1 y 2 y luego seleccionando la opcioacuten lnsertargtFila En la primera fila antildeada esta funcioacuten

=MAX(COINCIDIR($A$3$A$100-1)COINCIDIR(1E+306$A$3$A$1001))

En la celda inmediatamente por debajo introduzca el nuacutemero 1 La celda por debajo de ella debe contener un encabezado de texto para la lista Hemos antildeadido el nuacutemero 1 de forma que la segunda funcioacuten COINCIDIR no devuelva N A cuando no haya nuacutemeros en el rango A3A100 Esta segunda funcioacuten siempre encontraraacute el texto porque disponemos de un encabezado

Deacutele el nombre FilaMax a la celda Al y luego seleccione lnsertargtNombregt Definir De un nombre al rango dinaacutemico como por ejemplo MiLista y en el cuadro de texto Se refiere a introduzca los siguiente tal y como se muestra en la figura 37

= DESREF(Hoj a2$A$ 300Fi1aMax1)

3 Trucos sobre nombres 135

- ^ j Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana

bullJal -1 _ fi x

A3

plusmnpound 12

pound =MAX(CQINCIDIR( $A$3$A$100-1) COINCIDIR(1 E+3QG$A$3$A$100 1))

1

Mi Listn

Daniel

Carlos

100iexcl

iexclJavier

Fernando

500

antos

iexclJorge

300

Definir nombre

Nombres en el libro 3 4 5 6 7 8 9 10 11 12 13 14 15 _ _ _ _ _ 16 17 18 19 20

llt lt bull bulliXHojal gtHoja2( Hoja3

Sentildealar

Aceptar i

Z3 Agregar

J

=DE5REF(Ho ja2 $ A $3 0 0 FilaMax 1) 3

H T

Figura 37 Lista dinaacutemica con entradas numeacutericas y de texto conteniendo celdas en blanco

La siguiente lista muestra otros tipos de rangos dinaacutemicos con nombre que puede encontrar uacutetiles Para todos estos ejemplos necesitaraacute rellenar la columna A con una mezcla de entradas de texto y numeacutericas Para ello seleccione la opshycioacuten lnsertargtNombregtDefinir introduzca en el cuadro de texto Nombres en el libro cualquier palabra (por ejemplo MiRango) La uacutenica parte que va a cambiar es la foacutermula que introduciremos en el cuadro de texto Se refiere a

Expandir tantas filas como entradas numeacutericas haya

En el cuadro de texto Se refiere a introduzca los siguiente

= D E S R E F ( $ A $ 1 0 0 C O N T A R ( $ A $ A ) 1 )

Expandir tantas filas como entradas de texto y numeacutericas haya

En el cuadro de texto Se refiere a introduzca los siguiente

=DESREF($A$100CONTARA($A$A)1)

Expandir hasta la uacuteltima entrada numeacuterica

En el cuadro de texto Se refiere a introduzca los siguiente = DESREF($A$100COINCIDIR(1E + 3 06$A$A) )

136 Excel Los mejores trucos

Si espera un nuacutemero mayor que 1E+306 (un 1 con 306 ceros) caacutembielo por un nuacutemero mayor auacuten

Expandir hasta la uacuteltima entrada de texto

En el cuadro de texto Se refiere a introduzca los siguiente

=DESREF($A$100COINCIDIR($A$A-1))

Expandir basaacutendose en el valor de otra celda

Introduzca el nuacutemero 10 en la celda Bl y luego en el cuadro de texto Se refiere a introduzca los siguiente

=DESREF($A$100$B$11)

Hora cambie el nuacutemero en la celda Bl y el rango cambiaraacute de acuerdo a ello

Expandir una fila por cada mes

En el cuadro de texto Se refiere a introduzca los siguiente

=DESREF($A$100MES(HOY())1)

Expandir una fila por cada semana

En el cuadro de texto Se refiere a introduzca los siguiente

=DESREF($A$100NUMDESEMANA(HOY())1)

Esta uacuteltima requiere que el paquete de anaacutelisis esteacute instalado Para ello debe seleccionarlo en la opcioacuten HerramientasgtComplementos

Anidar rangos dinaacutemicos para obtener una flexibilidad maacutexima Un rango dinaacutemico con nombre que reside dentro de otro rango dinaacutemico con nombre puede ser muy uacutetil cuando tengamos que trabajan con grandes listas de nombres por ejemplo

Por ejemplo es posible crear un rango con nombre llamado NombresJ que se refiere a todos los nombres de una lista ordenada que comienzan con la letra J Comenzamos con la lista de nombres de la columna A como la que se muestra en la figura 38 en donde la celda Al es un encabezado y la lista estaacute ordenada Seleccione lnsertargtNombregtDefinir En el cuadro de texto Nombres en el libro introduzca Nombres y en el cuadro de texto Se refiere a introduzca la siguiente foacutermula

=DESREF($A$200CONTARA($A$2$A$1000)1)

3 Trucos sobre nombres 137

Haga clic en Agregar Nuevamente haga clic en el cuadro de texto Nombres en el libro e introduzca NombresJ (o podriacutea ser cualquier otra letra que desee) y luego haga clic en Se refiere a e introduzca lo siguiente

=DESREF(INDIRECTO(DIRECCIOacuteN(COINCIDIR(raquoJ CONTARSI(NombresraquoJn)1)

Nombres0)+11))00

donde J es el criterio de coincidencia que deseamos en este caso es decir aquellos nombres que comienzan por J Ahora haga clic en Agregar Cuando haga clic en el cuadro de texto Se refiere a en el que se encuentra la funcioacuten todos los nombres que comienzan por la letra J tienen una marca a su alrededor tal y como se muestra en la figura 38

Nombres en el libro

NombresJ

A

Nombres

Al ex

Ana

David

Guadalupe

paime laquoJavier

8 laquoJuan

9 Caiacuteda

10 Luis

11 Mar

12 Marta

13 Sandra

14 Santos

1 5 S o n i a - mdash bull bull bull bull - - bull bull - - bull bullbullbull -

16 Tama

17

llt 4 bull H H o j a l Hoja2 Hoja3

JSi

-3 Agregar

EJMnar

J

| S=DE5REF(INDIRECTO(DIRECCION(COINCIDIRf J Nombres 0)+1 1)) 0 0 ^J

J_ Figura 38 Un rango dinaacutemico con nombre con otro rango dinaacutemico dentro de eacutel

Si lo desea puede crear un rango con nombre para cada letra del alfabeto pero quizaacute una opcioacuten mejor seriacutea que el rango con nombre cambiase en funcioacuten de la letra que escribieacutesemos en una celda de la hoja Para poder hacer esto simshyplemente introduzca cualquier letra en una celda que no esteacute utilizando y luego deacutele el nombre Letra a dicha celda Ahora seleccione DatosgtValidacioacuten y en el cuadro de lista desplegable seleccione la opcioacuten Lista En el cuadro de texto Origen introduzca ABC es decir cada una de las 26 letras del abecedario como puede verse la figura 39 Al terminar haga clic en Aceptar

Seleccione lnsertargtNombregtDefinir e introduzca Nombres en el cuadro de texto Nombres en el libro Luego introduzca la siguiente foacutermula en el cuadro de texto Se refiere a y haga clic en Agregar

= DESREF($A$ 200CONTARA($A$ 2$A$10 0 0) 1)

Haga clic de nuevo en el cuadro de texto Nombres en el libro y escriba NombresDeLetra Luego en el cuadro de texto Se refiere a introduzca la si-

138 Excel Los mejores trucos

guiente foacutermula y cuando haya terminado haga clic en Agregar y luego en Aceptar

=DESREF(INDIRECTO(DIRECCIOacuteN(COINCIDIR(LetraNombres0)+11))00 CONTARSI(NombresLetra)1)

El resultado deberiacutea ser como el de la figura 310

fflfffflfflWTWff i Configuracioacuten i J Mensaje entrante ] Mensaje de error ]

Criterio de validacioacuten

Permitir

iexclLista

Datos

1 Origen

JAjBjCjDEjFG

bull j Jv Omitir blancos

P Celda con lista desplegable

13 HIJjKLM^J

r Aplicar estos cambios a otras celdas con la misma configuracioacuten

Aceptar j Cancelar

Figura 39 Una lista de validacioacuten de letras seguidas de los caracteres comodines

^|] Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana l d J

- f l X

4) w ~

A9 pound L

Definir nombreacute

Nombres en el libro

NombresDeLetra

Letra Nombres

A

1 [Nombres

2 Al ex

3 Ana

4 David

5 Guadalupe

6 Jaime

7 Javier

8 Juan

9 la ida

10 l u i s

11 Maiacute

12 Marta

13 Sandra

14 Santos

15 Sonia

16 Tania

17 ~~

H i bull wHoial Hoja2Hoja3

Sentildealar

Aceptar

U Agregar

Eliminar

J Se refiere a

| hDESREF(INDIRECTO(DIRECCION(COINCIDIR(Letra Nombres 0)+1 1))0C iexclj

bull i r

Figura 310 Un rango dinaacutemico con nombre controlado por el contenido de otra celda

3 Trucos sobre nombres 139

No tiene que reescribir las foacutermulas desde cero para los rangos S^ dinaacutemicos con nombre En vez de ello mientras esteacute trabajando con el

cuadro de diaacutelogo Definir nombre puede hacer clic en cualquier rango dinaacutemico de nombre sobrescribir el nombre que aparece en el cuadro de texto Nombres en el libro ir al cuadro de texto Se refiere a modificarlo de forma adecuada y luego hacer clic en Agregar Esto no reemplazaraacute el rango dinaacutemico de nombres original sino que antildeadiraacute uno totalmente nuevo que tendraacute el nuevo nombre que le haya dado

Identificar rangos con nombre en una hoja de caacutelculo Excel permite a los usuarios asociar nombres representativos a rangos especiacuteficos dentro de las hojas de caacutelculo A medida que el nuacutemero de diferentes rangos con nombre crezca en la hoja de caacutelculo necesitaraacute algunas herramientas para poder identificar las aacutereas que son referenciados por dichos rangos con nombre

A continuacioacuten veamos un par de meacutetodos raacutepidos que puede utilizar para identificar las aacutereas que son referenciadas por cada rango con nombre

Meacutetodo 1

Un meacutetodo muy raacutepido para identificar rangos referenciados es seleccionando la opcioacuten lnsertargtNombregtPegar o pulsar la tecla F3 En el cuadro de diaacutelogo Pegar nombre haga clic en Aceptar como se muestra en la figura 311 y Excel mostraraacute una lista de todos los nombres en filas comenzando por la celda activa y mostrando los nombres que corresponden a cada referencia en la otra columshyna Esto le proporcionaraacute un listado de todos los nombres del libro de Excel actishyvo Aunque esto pueda ser m u y uacutetil para identificar rangos especiacuteficos todaviacutea requiere que tenga que seleccionar manualmente un rango con nombre especiacutefishyco o quizaacute utilizar el cuadro de diaacutelogo Ira Sin embargo una vez que tenga la lista de rangos con nombre puede eliminar todas las direcciones de celdas referenciadas que se corresponden con los nombres y reemplazarlas con una funcioacuten de viacutenculo m u y simple

Todo esto le permitiraacute crear una lista de todos los rangos con nombre Hacienshydo clic en cualquier elemento de dicha lista le llevaraacute automaacuteticamente al rango especificado Por ejemplo suponiendo que la lista de nombres se encuentre la columna A comenzando por la celda A l Situacuteese en la celda B l e introduzca esta foacutermula

=HIPERVINCULO([Librolxls]ampA1A1)

140 Excel Los mejores trucos

^ I I H H I H I IacuteSjiexcl ArcNvo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana ff x

bull J U Iacute J Iacute J J a ^ a amp - y -gt B ^ Z ^ I Uuml I Uuml bull- |

A r i a l - 10 - N iquestT S raquo S 3 ^ iquestsect 000 euro gsect pE L_ - ^ amp I

A1 ltr fx Diacuteas

B

JL 2 I i AJ JJ 7 V _ j

Si J2J

11-15 i Si RA N lt

[Diacuteas |=Hoja1$DJ2$D$24

Meses =Hoja1$F$6$K$9

Miembros =Hoja1$C$4$C$27

Mis totales =Hoja1$G$12$G31

__D __ E _ J F

Pegar nombre [Piacuteas Meses Miembros Misjtotales

Pegar lista I

-m

zl J Cancelar

bull w H o j a l H o iexcl t oacute H o 3 3 l iacuteJ l NUM

_G__Tiacute

gtir

Figura 311 El cuadro de diaacutelogo Pegar nombre

Copie esta foacutermula hacia abajo tantas filas como sean necesarias y reemplace Libro 1 por el nombre real del libro

aacute] Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana

J J J Iacute J J Iacute ^ Uuml j i ^ - i ^ iacute - iacute i k39

Arial - 10 - N X S ^ M ^ ^ ~sect 000 euro Ip _ ~ iquestraquo N20 ^ pound

- f l X

VZl

M

s $ (gt CD

()

MI

O Q) m

iquestMiembros

M i bull M j V H o j a l H o j a 2 Hoja3

Listo til bull i r

Figura 312 Zoom de la hoja que proporciona los nombres de rangos para su faacutecil identificacioacuten

3 Trucos sobre nombres 141

Meacutetodo 2

Este meacutetodo es m u y sencillo pero raramente conocido Todo lo que tiene que hacer es establecer el zoom de la hoja Excel a un nuacutemero inferior a 40 (es decir 39 o menos) Observaraacute como se muestran todos los nombres de rangos en la hoja para su faacutecil identificacioacuten tal y como se muestra en la figura 312

CAPIacuteTULO 4

Trucos sobre tablas dinaacutemicas Trucos 45 a 49

Las tablas dinaacutemicas son uno de los atractivos maacutes potentes de Excel a pesar de que mucha gente no sabe queacute es lo que pueden hacer Las tablas dinaacutemicas muestran y extraen gran variedad de informacioacuten a partir de una tabla de datos que se encuentra en Microsoft Excel o bien en otro tipo de base de datos compashytible Las tablas dinaacutemicas se utilizan con frecuencia para extraer informacioacuten estadiacutestica a partir de datos almacenados en serie Luego podraacute desplazarse por los diferentes campos de la tabla dinaacutemica para ver sus datos desde perspectivas diferentes

Los datos en serie para una tabla dinaacutemica deben estar organizados en vv un formato claacutesico de tabla La fila uno debe contener los encabezados

w y los datos relacionados debajo de ellos Los datos no deberiacutean contener filas o columnas en blanco Incluso aunque no tenga planeado utilizar tablas dinaacutemicas mantener los datos en este formato haraacute posible que otras personas puedan analizarlo utilizando dicha caracteriacutestica

Tablas dinaacutemicas un truco en siacute mismas Las tablas dinaacutemicas son una de las caracteriacutesticas maacutes potentes e impresionantes de Excel un truco muy ingenioso en siacute mismo y que requiere cierta experimentacioacuten para poder comprender

Utilizaremos con frecuencia las tablas dinaacutemicas cuando desarrollemos hojas de caacutelculo para nuestros clientes Una vez que un cliente vea una tabla dinaacutemica a partir de entonces siempre nos pediraacute que si le podemos crear una para ellos

144 Excel Los mejores trucos

mismos Aunque cualquiera puede crear una tabla dinaacutemica por desgracia m u shychas personas tienen miedo de hacerlo porque ven que puede ser m u y complejo De hecho cuando utilice una tabla dinaacutemica por primera vez el proceso puede parecer algo engorroso Por ello estaacute claro que es necesaria cierta persistencia Descubriraacute que esa persistencia mereceraacute la pena una vez que experimente la mejor caracteriacutestica de las tablas dinaacutemicas su capacidad de ser manipulada mediante prueba y error e inmediatamente mostrar los resultados de dicha mashynipulacioacuten Si el resultado que obtiene no es el esperado puede utilizar la funshycioacuten Deshacer de Excel e intentar otra cosa nueva Haga lo que haga nunca estaraacute cambiando la estructura de la tabla original por lo que no tendraacute que preocuparse

iquestPor queacute se les llama tablas dinaacutemicas

Las tablas dinaacutemicas le permiten organizar los datos utilizando teacutecnicas de arrastrar y colocar y luego obtener los resultados de forma inmediata Las tablas dinaacutemicas son interactivas una vez que la tabla esteacute completa podraacute ver faacutecilshymente coacutemo la informacioacuten se ve afectada cuando mueve los datos dinaacutemicamente Esto resultaraacute m u y claro una vez que pruebe las tablas dinaacutemicas

Incluso para los desabolladores experimentados de tablas dinaacutemicas un eleshymento de prueba y error siempre es necesario a la hora de producir los resultados deseados i Al final se encontraraacute a siacute mismo manejando dinaacutemicamente su tabla con frecuencia

iquestPara queacute cosas resultan buenas las tablas dinaacutemicas

Las tablas dinaacutemicas pueden producir informacioacuten de resumen para una tashybla con datos Imagine que tiene una tabla con informacioacuten que contiene nomshybres direcciones edades puestos nuacutemeros de teleacutefono y coacutedigos postales Con una tabla dinaacutemica podraacute encontrar faacutecil y raacutepidamente cosas como las que le mostramos a continuacioacuten

bull Cuaacutentas personas tienen el mismo nombre

bull Cuaacutentas personas comparten el mismo coacutedigo postal

bull Cuaacutentas personas ostentan el mismo puesto

Tambieacuten podriacutea obtener informacioacuten como esta

bull Un listado con las personas que tienen el mismo puesto

bull Un listado de aquellas direcciones con el mismo coacutedigo postal

4 Trucos sobre tablas dinaacutemicas 145

Si necesita separar segmentar y hacer informes de los datos las tablas dinaacuteshymicas se convertiraacuten en una herramienta critica para su trabajo

iquestPor queacute utilizar tablas dinaacutemicas cuando las hojas de caacutelculo ya ofrecen muchas funciones de anaacutelisis

Quizaacute la ventaja mayor de utilizar tablas dinaacutemicas es el hecho de que puede generar y extraer informacioacuten m u y uacutetil a partir de una tabla m u y grande de datos en cuestioacuten de minutos y sin tener que utilizar gran cantidad de memoria del ordenador En muchos casos podriacutea obtener los mismos resultados de una tabla utilizando las funciones incorporadas de Excel pero le llevariacutea maacutes tiempo y utilizar maacutes memoria

Otra de las ventajas de utilizar tablas dinaacutemicas es que si desea tener alguna informacioacuten nueva simplemente basta con arrastrar y colocar Ademaacutes puede optar por tener la informacioacuten actualizada cada vez que abre el libro o hace clic en Actualizar

Los graacuteficos dinaacutemicos como extensioacuten de las tablas dinaacutemicas

Microsoft ya introdujo los graacuteficos dinaacutemicos en Excel 2000 La tabla que genera a traveacutes del Asistente para tablas dinaacutemicas tambieacuten produce un graacutefico dinaacutemico (o maacutes bien una tabla dinaacutemica y un informe de graacutefico dinaacutemico) Cuando crea una tabla dinaacutemica tambieacuten puede crear un graacutefico dinaacutemico al mismo tiempo sin ninguacuten esfuerzo extraordinario Los graacuteficos dinaacutemicos le permiten crear graacuteficos interactivos que antes eran imposibles a menos que se utilizara VBA o los controles de Excel

Veremos maacutes detalle el Asistente para graacuteficos dinaacutemicos maacutes adelante en este mismo capiacutetulo

Camp Los graacuteficos dinaacutemicos no estaacuten disponibles en la versioacuten de Excel para ^^ Macintosh

Crear tablas y listas para ser utilizadas en tablas dinaacutemicas

Cuando crea una tabla dinaacutemica debe organizar el conjunto de datos que estaacute utilizando en una tabla y o en una lista Dado que las tablas dinaacutemicas basan todos sus datos en esta tabla o lista es de vital importancia que configure dichas tablas y listas de forma uniforme En este contexto una tabla no es maacutes que una lista que tiene un tiacutetulo que tiene maacutes de una columna con datos y que tiene

146 Excel Los mejores trucos

diferentes encabezados para cada una de esas columnas A menudo se hace refeshyrencia a un listado en el mismo contexto en el que crea una tabla Las mejores praacutecticas que se deberiacutean aplicar a la hora de configurar un listado le ayudaraacuten enormemente cuando necesite generar una tabla dinaacutemica para los datos

Cuando se extraen datos a traveacutes del uso de funciones de buacutesqueda o de base de datos se puede ser algo menos exigente a la hora de configurar la tabla o la lista Esto es debido a que siempre puede compensar esa carencia con la ayuda de una funcioacuten obteniendo al final los resultados deseados De todas formas siemshypre seraacute maacutes sencillo si configura las tablas o las listas de la forma maacutes clara posible Las caracteriacutesticas incorporadas de Excel presuponen mucho acerca de la configuracioacuten y la distribucioacuten de los datos Aunque ofrecen cierto grado de fleshyxibilidad m u y a menudo encontraraacute que es maacutes sencillo todo si se ajusta a la siguiente guiacutea a la hora de configurar dichas tablas o listas

bull Es necesario la utilizacioacuten de encabezados ya que las tablas dinaacutemicas los utilizaraacuten para dar nombre a los campos Dichos encabezados deberiacutean aparecer siempre en la fila inmediatamente superior a la que se encuentra los datos Ademaacutes nunca dejeacute una fila en blanco entre los datos y los encabezados Maacutes auacuten haga que los encabezados sean diferentes de algushyna manera por ejemplo ponieacutendolos en letra negrita

bull Al menos deje tres filas en blanco por encima de los encabezados Podraacute utilizarlos para foacutermulas datos criacuteticos etc En cualquier caso siempre podraacute ocultar dichas filas si asiacute lo desea

bull Si tiene maacutes de una listado tabla en la misma hoja de caacutelculo deje al meshynos una columna en blanco entre cada lista o tabla Esto ayudaraacute a Excel a reorganizarlas como entidades diferentes Sin embargo si esas listas y tashyblas estaacuten relacionadas unas con otras entonces es mejor que las combine en una uacutenica tabla maacutes grande

bull Evite tener celdas en blanco dentro de los datos En vez de dejar celdas en blanco para indicar datos repetidos en una misma columna repita el dato tantas veces como sea necesario

bull Ordene la lista o los datos preferiblemente por la columna situada maacutes a la izquierda Esto haraacute que los datos sean maacutes sencillos de leer y de intershypretar

Si sigue estas directrices de la forma maacutes estricta posible veraacute que utilizar las tablas dinaacutemicas seraacute una tarea relativamente sencilla En la figura 41 puede ver una tabla con datos que estaacute bien organizada jun to a una tabla dinaacutemica que se estaacute generando Observe que la mayoriacutea de las fechas que son iguales estaacuten repetidas en la columna Fecha Por delante de estos datos estaacute el paso en el

4 Trucos sobre tablas dinaacutemicas 147

que se configura la distribucioacuten de los datos en el asistente en el que se muesshyt ran los campos opcionales Paacutegina Fila y Columna asiacute como el campo obligatoshyrio Datos

c Cantidad Comisioacuten Venta

UZ2 Construya el informe de tabla dinaacutemica arrastrando los botones de campo de la derecha sobre el diagrama a la izquierda

I Producto I

| Fecha l

iexclCantidad j

ComisioacutenI

Ayuda Aceptar

Mieacute 3 Mioacute 2004 X] Uo 2004

julio 2004 julio 2004 julio 2004 julio 2004 julio 2004 blio 2004 julio 2004 kgosto 2004 hgosto 2004 kgosto 2004 kgosto 2004 kgosto 2004 hgosto 2004 kgosto 2004 jigosto 2004 fegosto 2004 kgosto 2004 kgosto 2004 agosto 2004 kgosto 2004 fegosto 2004

j kgosto 2004 L_J kgosto 2004 wmrxagosto 2004

1850 1325 1225 900 850

7536 4500 1268 7400 4521 1340 2632 1200 563 990

1875 6530 1400 7536 4500 1268 7400 4521 1340 2632 1200

euro Comisioacuten euro Comisioacuten euro Comisioacuten ^ Comisioacuten euro Comisioacuten euro Comisioacuten euro Comisioacuten euro Comisioacuten euro Comisioacuten euro Comisioacuten euro Comisioacuten euro Comisioacuten euro Comisioacuten euro Venta euro Comisioacuten euro Comisioacuten euro Venta euro Comisioacuten euro Comisioacuten euro Comisioacuten euro Comisioacuten euro Comisioacuten euro Comisioacuten euro Comisioacuten euro Venta euro Comisioacuten

lt lt bull bull XHojal Hoja2 Hoja3 J i L bull i n Figura 41 Tabla dinaacutemica generada a partir de una tabla de datos bien distribuida

El Asistente para tablas dinaacutemicas y graacuteficos dinaacutemicos

Como ya mencionamos anteriormente para ayudar a los usuarios a crear tablas dinaacutemicas Excel ofrece un asistente para tablas dinaacutemicas y graacuteficos dishynaacutemicos Este asistente le guiaraacute a traveacutes de los pasos para crear la tabla dinaacutemishyca utilizando un proceso consistente en cuatro pasos en los que le diraacute a Excel las siguientes cosas

bull Coacutemo estaacuten configurados los datos y si desea crear un graacutefico dinaacutemico asociado (en caso de que esteacuten disponibles en la versioacuten que esteacute utilizanshydo de Excel)

bull Doacutende estaacuten almacenados los datos por ejemplo un rango de celdas en el mismo libro una base de datos otro libro etc

bull Queacute columnas de datos van en cada campo los campos opcionales Paacutegishyna Fila y Columna asiacute como el campo obligatorio Datos

bull Doacutende colocar la tabla dinaacutemica (por ejemplo en una nueva hoja o en la ya existente)

148 Excel Los mejores trucos

Existen otros pasos que se pueden seguir para manipular la tabla dinaacutemica pero la mayoriacutea de los usuarios encuentran maacutes sencillo hacer esto despueacutes de decir a Excel doacutende colocarla

Excel 2000 y las versiones posteriores tienen una gran ventaja sobre Excel 97 le permiten elegir coacutemo configurar los datos despueacutes de que el asistente haya finalizado

Ahora que ya sabe algo maacutes sobre las tablas dinaacutemicas y sus funciones ha llegado el momento de conocer algunos trucos uacutetiles que pueden hacer que esta caracteriacutestica sea todaviacutea maacutes potente

Q M 9 Compartir tablas dinaacutemicas pero no sus datos M ^ P f f T ^ I Crearemos una imagen de la tabla dinaacutemica que no necesita de la

^ H M ^ H estructura de datos subyacente

Es posible que necesite enviar tablas dinaacutemicas a otras personas para que las visualicen pero por alguna razoacuten no desea enviar los datos subyacentes que estaacuten asociados a ella Quizaacute desee que los demaacutes soacutelo vean ciertos datos por motivos de confidencialidad por ejemplo Si este fuese el caso puede crear una copia estaacutetica de una tabla dinaacutemica y permitir que los destinatarios soacutelo vean lo que necesitan ver

Y lo mejor de todo es que el tamantildeo del archivo con la copia estaacutetica seraacute mucho menor que el del archivo original

Suponiendo que tenga una tabla dinaacutemica en un libro de Excel todo lo que necesita hacer es seleccionar la tabla dinaacutemica por completo copiarla y en una hoja en blanco ir a EdicioacutengtPegado especial y luego seleccionar la opcioacuten Valoshyres Entonces ya podraacute mover esta hoja a otro libro o quizaacute utilizarla tal cual

El uacutenico inconveniente de este meacutetodo es que Excel no pega los formatos de la tabla dinaacutemica jun to con los valores Esto puede hacer que la copia estaacutetica sea maacutes difiacutecil de leer y quizaacute sea menos impresionante Si tambieacuten desea incluir el formato puede tomar una imagen estaacutetica (en vez de una copia estaacutetica) de la tabla dinaacutemica y luego pegarla en una hoja en blanco lo que le proporcionaraacute una copia a todo color y con formato de la tabla dinaacutemica original a la que podraacute aplicar cualquier tipo de formato que desee sin tener que preocuparse de que el formato se perderaacute cuando la actualice Todo esto ocurre gracias a que la imagen no estaacute vinculada de ninguna forma con la tabla dinaacutemica original

Para crear una imagen estaacutetica aplique el formato que desee a la tabla dinaacuteshymica y luego seleccione cualquier celda que se encuentre dentro de ella Desde la

4 Trucos sobre tablas dinaacutemicas 149

barra de herramientas Tabla dinaacutemica despliegue el menuacute Tabla dinaacutemica y lueshygo vaya a la opcioacuten SeleccionargtToda la tabla Una vez hecho esto mantenga pulsada la tecla Mayuacutes y entonces vaya a EdicioacutengtCopiar imagen En el cuadro de diaacutelogo que apareceraacute elija las opciones tal y como se muestran en la figura 42 y luego haga clic en Aceptar

1 2

Ti Ti

5 6 | 7 8 9 10 11 12

113 14

PT FT iexcl17 M8~ FT H 4

A | B Nombre H Ndeg de nombres

Ana HiHlM^raquo David ^ J ^ ^ p ^ S Guadalupe ^ H H | j | iexcl g j | |

Javier p y l ^ i g ^ p i p i Juan I B i Uuml uuml i g i ^ K Laida j H ^ B I B B B LUIacuteS Pff^yy^PJ Mar ^ ^ ^ ^ ^ H Marta R S S B ^ ^ Sandra t Iacute 8 Iacute ^ ^ 8 i M I Santos B i S ^ ^ ^ ^ S Sonia i o | S S g ^ ^ K Tantildeiacutea g E H f f l B Vanesa J iB i ^ ^ ^puumly WiHiam JSiiBS

bull M Hoja i XHoja2 Hoja3

C j D I E

Apariencia

bull iComo en pantalla]

lt Como en impresora

Formato

( Imagen

C Mapa de bits

I Aceptar | Cancelar I

H

i F i G t iacute

Figura 42 Cuadro de diaacutelogo Copiar imagen

Finalmente haga clic en cualquier lugar fuera de la tabla dinaacutemica y seleccioshyne EdicioacutengtPegar Acabaraacute teniendo una imagen a todo color y con formato de la tabla dinaacutemica tal y como se muestra en la figura 43 Esto puede ser m u y uacutetil especialmente si tiene que mandar la tabla dinaacutemica por e-mail a otras personas para que puedan verla Tendraacuten la informacioacuten que necesitan incluyendo todos los formatos que sean relevantes y todo ello con un tamantildeo del archivo que seraacute menor Sin embargo no podraacuten manipular los datos De igual forma soacutelo poshydraacuten ver aquello que desee que vean

Tambieacuten puede utilizar este meacutetodo de tomar una imagen para un rango de celdas Puede seguir los pasos que hemos indicado anteriormente o puede utilishyzar la herramienta que proporciona el pequentildeo icono en forma de caacutemara situashydo en la barra de herramientas

Para utilizar este uacuteltimo meacutetodo vaya a VergtBarras de herramientasgtPersona-lizar En el cuadro de diaacutelogo haga clic en la pestantildea Comandos luego seleccione la opcioacuten Herramientas en la lista de categoriacuteas y en el cuadro de lista de la parte derecha desplaacutecese hasta que encuentre la opcioacuten Caacutemara Haga clic en ella y arraacutestrela hasta aquella barra de herramientas en la que desee mostrarla Ahora seleccione un rango de celdas haga clic en el icono de la caacutemara y luego haga clic en cualquier lugar de la hoja con lo que obtendraacute una imagen vinculada de

150 Excel Los mejores trucos

dicho rango Cualquiera que fuera el formato o los datos que tuviese el rango original queda reflejado automaacuteticamente en la imagen

A 6 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

H lt

Tabla dinaacutemica original Horahrfe Ns de nombres 1 Al ex Ana David Guadalupe Jaime Javier Juan Laida Luis Mar-Marta Sandra Santos Sonia Tan i a Vanesa William Total general

bull raquo i Hojal H

1 -

_ 3ja2 )Hoja3

c TD E F

Imagen ele la tabla dinaacutemica Nombre H Ndeg de nombres I ^ ^ ^ ^ H Al ex Ana David Guadalupe Jaime Javier Juan Laida Luis Mar Marta Sandra Santos Sonia Tania Vanesa William Total general

1o

if M

G mdash

mdash

_J plusmniexclntilde Figura 43 Tabla dinaacutemica original contrastada con su imagen

Automatizar la creacioacuten de tablas dinaacutemicas Los pasos que debe seguir para crear una tabla dinaacutemica requieren de un cierto esfuerzo y a menudo dicho esfuerzo resulta redundante Con un poco de coacutedigo VBA podraacute crear tablas dinaacutemicas de forma automaacutetica

Las tablas dinaacutemicas son una caracteriacutestica m u y potente e inteligente para ser utilizadas con datos que estaacuten almacenados en una lista una tabla Por desshygracia el esfuerzo para crear una tabla dinaacutemica es suficiente como para disuashydir a algunas personas a que experimenten con ello Aunque la configuracioacuten de algunas tablas dinaacutemicas puede ser m u y complicada la mayoriacutea de ellas pueden ser creadas de forma raacutepida y sencilla Dos de las preguntas maacutes frecuentes en Excel tienen que ver con coacutemo obtener la cuenta de todos los elementos de una lista y coacutemo crear una lista de elementos uacutenicos a partir de una lista que contieshyne muchos datos duplicados En este apartado le mostraremos coacutemo crear una tabla dinaacutemica raacutepida y faacutecilmente que resuelva estas tareas

Supongamos que tiene una larga lista de nombres en la columna A siendo la celda Al el encabezado Desea conocer cuaacutentos elementos hay en la lista asiacute como generar un listado con los elementos uacutenicos Para ello seleccione la celda Al (el encabezado) y luego vaya a DatosgtInforme de tablas y graacuteficos dinaacutemicos (en las versiones para Macintosh Datosgtlnforme de tablas dinaacutemicas) para abrir el asistente

4 Trucos sobre tablas dinaacutemicas 151

Aseguacuterese de que o bien tiene seleccionada la opcioacuten Lista o base de datos de Microsoft Excel o bien ha seleccionado una uacutenica celda dentro de los datos Esto permitiraacute a Excel detectar automaacuteticamente los datos subyacentes que se van a utilizar posteriormente Si estaacute utilizando la versioacuten de Windows seleccione la opcioacuten Tabla dinaacutemica en la parte inferior del cuadro de diaacutelogo Haga clic en el botoacuten Siguiente y el asistente deberiacutea haber tomado automaacuteticamente el rango correcto para los datos situados en la columna A (de hecho los marcaraacute en la hoja) Si es asiacute haga clic en el botoacuten Siguiente En caso contrario utilice el ratoacuten para seleccionar el rango correcto Ahora haga clic en el botoacuten Disentildeo y arrastre al aacuterea DATOS los que seraacuten soacutelo campos (deberiacutea ver el tiacutetulo que aparece en la celda Al ) Arrastre el campo nuevamente pero esta vez al aacuterea FILA Con ello la pantalla deberiacutea quedar como la que se muestra la figura 44 A continuacioacuten haga clic en Aceptar

A B

1 Nombres

2 Alex t -T 1 Ana

4 David

5 Guadalupe

6 Jaime 7 iexclJavier

8 Juan

9 Laida

10 Luis

11 Mar

14

15

16 bull

_ampo ae origen Nombres

hombre j dlfjiUAtJJMiilJfcU

1tiacute bull

19

20

21

22

H 4

Suma +

Promedio Max Miacuten Producto Contar nuacutemeros Juuml

C

I

-1 | PAGINA |

bull

D E I F

1 Nombres

ltJ

1 Aceptar ]

Cancelar

Ocultar j

Nuacutemero

FILA

G H

2ltiexcl

Construya el informe de tabla dinaacutemica arrastrando los botones de campo de la derecha sobre el diagrama a la izquierda

COLUMNA

Luenta de Nombres

DATOS

1 Nombres |-

Ayuda j | Aceptar | Cancelar j

l laquo l bull i r

Figura 44 Cuadros de diaacutelogo Campo de la tabla dinaacutemica y Asistente para tablas y graacuteficos dinaacutemicos

Llegados a este punto si lo desea puede hacer doble clic en el botoacuten de CL campo situado en el aacuterea DATOS (que tendraacute la etiqueta Cuenta de

v^^ nombres como puede verse la figura 43) y cambiar en el cuadro de lista Resumir por la opcioacuten seleccionada por cualquier otra (por ejemplo Suma Promedio etc) De forma predeterminada Excel utiliza la funcioacuten CONTAR si estaacute trabajando con texto y la funcioacuten SUMA si estaacute trabajando con nuacutemeros

Para terminar seleccione la opcioacuten Hoja de caacutelculo nueva como destino del informe de tabla dinaacutemica y haga clic en el botoacuten Finalizar Al hacer esto deberiacutea

152 Excel Los mejores trucos

ver la tabla dinaacutemica en una nueva hoja con teniendo los elementos uacutenicos de la lista jun to con el caacutelculo de cuaacutentas veces aparece cada elemento (nombre) en la lista

iquestQueacute ocurre si desea tener una macro que realizase todos estos pasos creando la tabla dinaacutemica a partir de una columna que especifique Si simplemente grashyba una macro se encontraraacute que a menudo soacutelo funciona si los datos tienen el mismo encabezado Para evitar este inconveniente puede crear una simple macro almacenada en el libro o en el libro personal de macros (lo veremos en el capiacutetulo 7) y que puede utilizar para crear una tabla dinaacutemica sobre cualquier lista de elementos Esto requeriraacute que escriba algo de coacutedigo geneacuterico en VBA e introdushycirlo en un moacutedulo estaacutendar dentro del libro de macros personal o en cualquier otro libro de trabajo

Para empezar vaya a HerramientasgtMacrogtEditor de Visual Basic (Alt Op-cioacuten-Fl 1) y luego vaya a lnsertargtMoacutedulo A continuacioacuten introduzca el siguiente coacutedigo

Sub ObtenerCuenta( ) Dim Pt As PivotTable Dim strField As String

strField = SelectionCells(11)Text Range(Selection SelectionEnd(xlDown))Ntildeame = Elementos

ActiveWorkbookPivotCachesAdd(SourceType=xlDatabase _ SourceData==Elementos)CreatePivotTable TableDestination= _ TableName=ListaElementos

Set Pt = ActiveSheetPivotTables(ListaElementos) ActiveSheetPivotTableWizard TableDestination=Cells(3 1) PtAddFields RowFields=strField PtPivotFields(strField)Orientation = xlDataField

End Sub

Para volver a la ventana principal de Excel cierre esta ventana o pulse Alt Comando-CLy grabe el libro de trabajo Antes de ejecutar este coacutedigo seleccione el encabezado de la lista y aseguacuterese de que eacutesta no contiene celdas en blanco

^ Si ordena lista se eliminaraacuten raacutepidamente las celdas en blanco

Este coacutedigo crearaacute automaacuteticamente un rango con nombre para la lista llashymado Elementos para a continuacioacuten crear una tabla dinaacutemica en una nueva hoja basaacutendose en este rango La proacutexima vez que tenga una larga lista con datos le bastaraacute con seleccionar su encabezado y ejecutar esta macro Todo el

4 Trucos sobre tablas dinaacutemicas 153

trabajo de configuracioacuten de la tabla dinaacutemica se realizaraacute en un abrir y cerrar de ojos

Q ^ Q Mover los totales finales de una tabla dinaacutemica n P^^fl U n a ^ e ^as c o s a s m a s gt r r t a n t e s de las tablas dinaacutemicas es que los totales ^ ^ ^ U ^ H finales que resumen los datos siempre terminan en la parte inferior de la

tabla lo que significa que tiene que desplazarse hasta ellos para poder verlos Moveremos estos totales a la parte superior donde es maacutes sencillo encontrarlos

Aunque las tablas dinaacutemicas son un gran meacutetodo para resumir datos y exshytraer informacioacuten uacutetil no hay una opcioacuten incorporada para hacer que el Total general aparezcan la parte superior de forma que sea localizable raacutepidamente

Antes de que pasemos a describir un meacutetodo m u y geneacuterico para mover dicho total a la parte superior explicaremos coacutemo puede atacar este problema utilizanshydo la funcioacuten IMPORTARDATOSDINAMICOS que ha sido disentildeada especiacuteficamente para extraer datos a partir de una tabla dinaacutemica

Puede utilizar esta funcioacuten de la siguiente forma

=IMPORTARDATOSDINAMICOS(Suma de la cantidad$B$5)

o asiacute

IMPORTARDATOSDINAMICOS ( C a n t i d a d $ B $ 5 )

Cada una de estas funciones extraeraacute los datos y haraacute un seguimiento del Total general a medida que eacuteste se mueva arriba abajo a izquierda o a derecha Hemos utilizado la direccioacuten $B$5 pero con tal de que utilice cualquier celda que esteacute dentro de la tabla dinaacutemica siempre obtendraacute el total

La primera funcioacuten utiliza el campo Suma de la cantidad mientras que la segunda utiliza el campo Cantidad Si la tabla dinaacutemica tiene el campo Cantishydad en el aacuterea de datos debe darle nombre a dicho campo Si por el contrario el campo estaacute siendo utilizado dos o maacutes veces en el aacuterea de datos deberaacute especifishycar el nombre que le dio o bien el nombre que aceptoacute de forma predeterminada (veacutease figura 45)

Puede hacer doble clic en estos campos para cambiarlos Este hecho puede parecer confuso si no estaacute m u y familiarizado con las tablas dinaacutemicas Por suershyte en Excel 2002 y posteriores el proceso es mucho maacutes sencillo ya que puede rellenar en una celda los argumentos y dar la sintaxis correcta utilizando el cursor del ratoacuten En cualquier celda escriba = (el signo de igual) y luego utilice el cursor del ratoacuten para hacer clic en la celda que actualmente contiene el Total general Excel rellenaraacute automaacuteticamente los argumentos

154 Excel Los mejores trucos

Aacuteltente para tmampmmmMmm i

oacute Construya el informe de tabla dinaacutemica arrastrando los botones de campo de la derecha sobre el diagrama a la izquierda

| PAGINA |

Producto

FILA

COLUMNA

Suma de Cantidad

ldeg de veces vendido

DATOS

[Producto j

| Cantidad I

[Comisioacuten iacute

I Meses |

1 A ntilde o s

Ayuda Aceptar |iexcl

Figura 45 El campo Cantidad utilizado dos veces con el nombre Suma de Cantidad en un caso y Ndeg de veces vendido en otro

Por desgracia si utiliza el asistente para funciones o escribe directashymente = IMPORTARDATOSDINAMICOS( ) y luego hace clic en la celda que contiene el Total general Excel se hace un liacuteo intentando anidar otra funcioacuten IMPORTARDATOSDINAacuteMICOS dentro de la celda

Probablemente el meacutetodo maacutes sencillo aunque menos sofisticado para exshytraer el Total general es utilizar la siguiente funcioacuten

=MAX(ColTFTab)

donde la columna que ac tua lmente contiene el Total general se l lama ColTFTab

Utilizar de forma efectiva datos de otro libro dinaacutemicamente Utilizaremos los datos que se encuentran en otro libro como origen para nuestra tabla dinaacutemica

Cuando se crea una tabla dinaacutemica en Excel disponemos de numerosas opshyciones a la hora de elegir el origen de los datos La aproximacioacuten maacutes sencilla y potente es utilizar los datos que residen dentro del mismo libro Sin embargo por alguna otra razoacuten esto no siempre es posible o factible Puede que los datos residan en otro libro en el que se introducen a diario por ejemplo y por otro lado no desea que esos usuarios puedan ver la tabla dinaacutemica

4 Trucos sobre tablas dinaacutemicas 155

Si utilizamos un rango dinaacutemico con nombre se produciraacute enormemente el tiempo para actualizar la tabla dinaacutemica Dado que no se puede hacer referencia a un rango dinaacutemico con nombre desde otro libro significa que no puede hacer que una tabla dinaacutemica haga referencia a quizaacute cientos de filas en blanco lo que causariacutea que el tamantildeo del archivo se incrementase sustancialmente De esta manera lo mejor es traspasar los datos desde otro libro y luego basar la tabla dinaacutemica en ellos en vez de tener que hacer una referencia externa

Estando en el libro que contendraacute la tabla dinaacutemica inserte una nueva hoja y llaacutemela Datos Abra el libro que contiene los datos a ser referenciados y aseguacuteshyrese de que la hoja que los contenga sea la activa A continuacioacuten en cualquiera de las celdas que sobre introduzca la siguiente foacutermula

= S I ( A 1 = M A 1 )

donde Al es el primero de todos los encabezados de la tabla con los datos Ahora seleccione la celda A l coacutertela active el libro original y peguacuteela en la

celda Al de la hoja Datos Esto le proporcionaraacute la referencia al otro libro Copie esta celda tantas columnas como encabezados haya en el origen de datos y luego seleccione la opcioacuten lnsertargtNombregtDefinir En el cuadro de texto Nombres en el libro escriba DatosDinamicos y en el cuadro de texto Se refiere a escriba lo siguiente

=DESREF($A$100CONTARA($A$A)CONTARA($1$1))

Haga clic en Agregar y luego en Aceptar A continuacioacuten inserte un coacutedigo que se ejecutaraacute cada vez que se abra el libro haciendo clic con el botoacuten derecho del ratoacuten en el icono de Excel (situado en la esquina superior izquierda la ventashyna)

Priacutevate Sub Workbook_Open( ) With Worksheets(Datos)

Range(21000)Clear

Range(11)AutoFill Range(11000)

Range(21000) = Range(21000)Valueacute End With End Sub

Este acceso directo no estaacute disponible para Macintosh Tendraacute que abrir el editor de Visual Basic pulsando Opcioacuten-Fll o bien yendo a HerramientasgtMacrogtEditor de Visual Basic Luego haga clic mientras pulsa la tecla Control en ThisBook situado en la ventana de proyectos

Para volver a la ventana principal de Excel cierre esta ventana o bien pulse Alt Comando-a

Excel Los mejores trucos

El coacutedigo anterior soacutelo incluye 1000 filas con datos Dicho nuacutemero siempre deberiacutea ser superior al nuacutemero de filas que cree que necesitaraacute En otras palabras si la tabla en el otro libro contiene 500 filas antildeada unos cientos maacutes para asiacute dejar espacio por si la tabla original crece

Evite utilizar un nuacutemero muy alto de filas (como por ejemplo 10000 a menos que tenga esa cantidad de datos) ya que esto afectaraacute a la velocidad con la que se ejecute el coacutedigo y se actualicen los datos

Guarde el libro cieacuterrelo y luego vuelva a abrirlo aseguraacutendose primero de activar las macros El coacutedigo que acabamos de antildeadir se lanzaraacute automaacuteticamente y copiaraacute las foacutermulas en la fila 1 de la hoja Datos y luego convertiraacute todas las filas excepto la primera en valores Esto no dejaraacute una copia del origen que se actualizaraacute cada vez que abra el libro

Ahora ya puede ocultar esta hoja si no desea seleccionando la opcioacuten FormatogtHojagtOcultar

A continuacioacuten para hacer que una tabla dinaacutemica se base en este rango dinaacutemico con nombre seleccione cualquier celda dentro de la tabla dinaacutemica y luego seleccione la opcioacuten del asistente situado en la barra de herramientas de tablas dinaacutemicas Haga clic en el botoacuten Anterior del asistente hasta que llegue al paso 1 Ahora seleccione la primera opcioacuten Lista o base de datos de Microsoft Excel haga clic en Siguiente y en el paso 2 escriba =DatosDinamicos (que es el nombre del rango dinaacutemico) Luego haga clic en Finalizar

No experimentaraacute el lapso de tiempo que a menudo ocurre cuando una tabla dinaacutemica hace referencia a un origen de datos externo porque ahora los datos se encuentran situados dentro del propio libro Ademaacutes de ello como puede utilizar el rango dinaacutemico con nombre la tabla dinaacutemica seraacute dinaacutemica sin tener que hacer referencia a filas en blanco mientras que el tamantildeo del archivo se mantieshyne razonablemente

CAPIacuteTULO 5

Trucos sobre graacuteficos Trucos 50 a 59

Los graacuteficos son una de las caracteriacutesticas maacutes populares de externo ya que proporcionan a las hojas de caacutelculo una potencia visual maacutes allaacute de unos caacutelculos

Aunque las capacidades graacuteficas de Excel son impresionantes muchas veces desearaacute ir maacutes allaacute de la funcionalidad baacutesica proporcionada por el asistente para graacuteficos incorporado para poder crear graacuteficos que sean maacutes activos en cuanto cambie los datos o simplemente para ir maacutes allaacute del rango de opciones que Excel ofrece Los trucos que presentaremos en este capiacutetulo le permitiraacuten hacer todo esto y mucho maacutes

Separar una porcioacuten de un graacutefico circular Aunque los graacuteficos circulares son una excelente ayuda visual a veces desearaacute separar una porcioacuten en particular del graacutefico Si la separa del resto del graacutefico le daraacute maacutes importancia

La opcioacuten predeterminada en un graacutefico circular seccionado que se separan todas las porciones y a la misma distancia Sin embargo con un par de clics de ratoacuten podremos separar una de ellas

Para comenzar configure un graacutefico circular baacutesico como el que se muestra en la figura 51

A continuacioacuten ha de hacer clic en el graacutefico circular y luego haga doble clic lentamente (dejando un pequentildeo espacio entre ambos clics) sobre la porcioacuten que desea separar Arrastre la porcioacuten seleccionada hacia fuera del centro del graacutefico y veraacute coacutemo queda separada tal y como puede verse en la figura 52

160 Excel Los mejores trucos

i A B C D i E bull F G 1 j Circular 2 A 1 3 B 1 4 C 1 5 -D 1 6 7 8 9 10 11 12 13 14

J5J 16 17 18 19

Circular

-^

1

^ m

s~ H F v^__g^

n H 4 bull bull Hojal MI

- j _ _ ^

BB

DC

D D |

ltr|

i raquoin Figura 51 Graacutefico circular simple configurado a partir de los datos de una hoja

A FJ C D 1 Eacute F G ] H iexcl J -H 1 Circular j 2 A 3 B 4 C 5 D 6 7 8 9 10 11 12 13 14 15 16 17 18 19

|M Iacute bull bull i Ho ja i | j j i raquo i n

Figura 52 Graacutefico circular simple con una porcioacuten separada

Al arrastrar una uacutenica porcioacuten dejaraacute el resto como estaban Puede repetir este proceso para el resto de las porciones si asiacute lo desea Esta teacutecnica tambieacuten funciona con los graacuteficos circulares en 3D Para hacer un graacutefico de este estilo haga clic en eacutel haga clic con el botoacuten derecho del ratoacuten y luego seleccione la opcioacuten Tipo de graacutefico y entonces seleccione el icono de graacutefico circular en 3D

Si desea separar todas las porciones al mismo tiempo simplemente haga clic en el graacutefico para seleccionarlo luego arraacutestrelo hacia fuera del centro del mismo y todas las porciones quedaraacuten separadas tal y como se muestra en la figura 53 Recuerde que cuanto maacutes separe las porciones maacutes pequentildeas quedaraacuten

5 Trucos sobre graacuteficos 161

A B C 1 Circular 2 A 1 3 B 1 4 C 1 5 D 1 6 7 8 9 10

JU 12 13 14 15 16 17 18 19

H i bull bulliXHojal

D E F G H I

Circular

Ilaquo

J z

_

bull i r Figura 53 Graacutefico circular en 3D con porciones separadas

Tambieacuten puede utilizar el proceso inverso si desea volver a jun ta r las porcioshynes de un graacutefico Para ello simplemente haga clic en una de las porciones y arraacutestrela hacia el centro del mismo para colocarlas juntas otra vez

TRUCO Crear dos conjuntos de porciones en un uacutenico graacutefico circular Muchas personas creen que un graacutefico circular estaacute limitado a solamente un conjunto de valores pero existe una forma de crearlo basaacutendose en dos columnas con valores

Resulta un poco complicado hacer que se puedan ver dos series de valores representados en ejes separados dentro de un uacutenico graacutefico pero el esfuerzo meshyrece la pena para ver el efecto resultante Para ver coacutemo funciona esto primero cree un graacutefico circular baacutesico Coloque algunos datos en el rango de celdas Bl C5 seleccione dicho rango y haga clic en el botoacuten Asistente para graacuteficos de la barra de herramientas En el paso 1 bajo el apartado Tipo de graacutefico seleccione el prishymer graacutefico circular Ahora haga las modificaciones pertinentes en el resto de pasos del asistente hasta llegar al paso 4 Al llegar ahiacute aseguacuterese de colocar el graacutefico como un objeto en la hoja actual

A continuacioacuten seleccione el graacutefico haga clic con el botoacuten derecho del ratoacuten sobre eacutel y vaya a Origen de datosgtSerie Haga clic en Agregar para antildeadir otra serie Seleccione la celda DI para el nombre y las celdas D2D5 para los valores y luego haga clic en Aceptar Obtendraacute un graacutefico como el que se muestra en la figura 54

162 Excel Los mejores trucos

A I B C 1 l 1 Graacutefico 1 Graacutefico 2 2 A 0049619 076617

D E

7

3 B 0416347 0835703 4 C 0157347 0650905 5 D 6 j

7 8 9 10 11 12 13 14 15 16 17 18 1 9

H 4 bull

0514901 0744752

Graacutefico 1

^^r^^

^

(

aW AfaV 1

v W bull ^ ^

bullI Hoja 1 ~~ trade~ | 4

F G H mdash

l A

BB

D C

D D

1 i gtir Figura 54 Un graacutefico circular configurado a partir de los datos de una hoja

Haga doble clic de nuevo en el graacutefico vaya a la pestantildea Eje y coloque la series en el segundo eje Haga clic en Aceptar El graacutefico circular todaviacutea parece ser el mismo en la superficie pero por debajo no lo es

Seleccione el graacutefico y mientras mantiene pulsado el botoacuten del ratoacuten arraacutesshytrelo fuera del centro y entonces suelte el botoacuten del ratoacuten con todo esto crearaacute un efecto de separacioacuten que era el que estaacutebamos buscando (veacutease figura 55)

A

1 I 2 A 3 B 4 C 5 D 6

7 8 9 bull 10 11 12 i

13 14 15 16 17 18 19 20

21 bull H 4 bull H ^

I B C D E F G H I i T i IGiifico 1 Graacutefico 2 I

0049619 0766177 0416347 0835703 0157347 0650905 0514901 0744752

^ ^ mdash I

^ r

[ ABBW W l^m D Graacutefico 2

D Graacutefico 11

V ^ ^ ^JLJ^

vHolal M I bull l l

Figura 55 Graacutefico circular con el eje secundario separado

Al separar el graacutefico circular no solamente estaacute separando los dos ejes (con lo que se ve el segundo graacutefico circular) sino que tambieacuten estaacute comprimiendo el

5 Trucos sobre graacuteficos 163

graacutefico circular situado en el eje secundario con lo que puede ver ya ambos graacuteshyficos

Ahora seleccione cada una de las porciones del graacutefico y arraacutestrelas de nuevo hacia el centro del mismo con lo que obtendraacute un graacutefico como el que se muesshytra en la figura 56 Recuerde que si hace dos clics lentamente se marcaraacute una porcioacuten individual del graacutefico

2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 4 4 bull HlXHojal

IGi oacutefico 1 Gi oacutetico 2 0049619 0766177

0416347 0157347 0514901

0835703 0650905 0744752

11 Graacutefico 2

B Graacutefico 1 I

id Figura 56 Graacutefico circular completo compuesto de dos graacuteficos

Si jun ta de nuevo todas las porciones de graacutefico circular tendraacute un graacutefico circular totalmente funcional en el que estaacuten dibujadas dos series de datos en ejes separados Ahora ya puede aplicar el color y el formato que desee

Crear graacuteficos que se ajusten a los datos Los graacuteficos pueden incluir y dibujar nuevos datos automaacuteticamente en el momento en el que los antildeada a la hoja de caacutelculo

Si utiliza rangos dinaacutemicos con nombre en vez de referencias a rangos el graacutefico dibujaraacute cualquier dato nuevo en el momento en el que lo antildeada a la hoja de caacutelculo Para ver coacutemo funciona esto comenzaremos con una hoja en blanco y la rellenaremos con algunos datos de forma parecida a como se muestra en la figura 57

Para crear el graacutefico y hacerlo dinaacutemico necesitaremos antildeadir dos rangos con nombre Uno de esos rangos seraacute para las etiquetas de la categoriacutea (Fechas) y otro para los puntos representados por los datos (Temperatura)

164 Excel Los mejores trucos

1 2 3 4 5 6 7 8 9 10 11 12 13 14

H 4

A B Fechas Temper 1102003 2102003 3102003 4102003 5102003 6102003 7102003 8102003 9102003

10102003 11102003

C aturas

10 12 13 13 12 14 15 13 12 11 10

bull H Hojal Hoja2 Hoja3 j lt

I D

l

E mdash

mdash

^ bull i r

Figura 57 Datos a partir de los cuales crearemos un graacutefico

Cree un rango dinaacutemico con el nombre FECHAS_TEMP para las fechas sishytuadas en la columna A Para ello vaya a lnsertargtNombregtDefinir y escriba la siguiente foacutermula

=DESREF($A$110CONTARA($A$A)-11)

Observe que hemos incluido un -1 inmediatamente despueacutes del primer argushymento de la funcioacuten CONTARA Esto asegura que el encabezado no se incluya en el rango con nombre para esa serie en particular

En este ejemplo hemos hecho referencia a toda la columna A en el S^ argumento ($A$A) de la funcioacuten CONTARA En versiones anteriores

~-V de Excel resulta una buena praacutectica restringir este rango al menor grupo de celdas posible para no antildeadir una sobrecarga innecesaria a los caacutelculos Esto es porque estaacute forzando a externo a buscar en miles de celdas innecesariamente De todas formas algunas funciones de Excel son lo suficientemente inteligentes para saber queacute celdas contienen datos aunque no todas ellas lo hacen A pesar de todo esto ya no es tan necesario en las versiones maacutes recientes de Excel ya que eacuteste ha mejorado el manejo de rangos de gran tamantildeo

A continuacioacuten para las lecturas de temperaturas de la columna B configure otro rango dinaacutemico que se llame LECTURAS_TEMP y utilizando la siguiente foacutermula

=DESREF($B$200CONTARA($B$B)-11)

Ahora ya puede crear el graacutefico utilizando los rangos dinaacutemicos con nombre que hemos creado en vez de utilizar referencias a celdas Seleccione el aacuterea de datos (el rango $A$1$B$11) y luego haga clic en el icono Asistente para graacuteficos

5 Trucos sobre graacuteficos 165

situado en la barra herramientas estaacutendar En el paso 1 seleccione el tipo de graacutefico que desee utilizar (para este ejemplo utilizaremos una columna) y haga clic en el botoacuten Siguiente En el segundo paso se le presentaraacuten dos pestantildeas Rango de datos y Serie Elija la segunda y entonces elimine la foacutermula que apashyrece en el cuadro de texto Valores introduciendo lo siguiente

=Hoj alLECTURAS_TEMP

Es muy importante que incluya el nombre de la hoja a la que hacen referencia las foacutermulas Si no lo hace no podraacute introducir el rango con nombre dentro de la foacutermula

Para terminar elimine la foacutermula que actualmente se encuentra en el cuadro de texto Roacutetulos del eje de categoriacuteas (X) e introduzca lo siguiente

=Hoj alFECHAS_TEMP

Complete los datos que se solicitan en el resto de pantallas del asistente realishyzando los cambios que sean necesarios El resultado deberiacutea parecerse al que se muestra en la figura 58

- t Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana l - 0 X

JUumlit

A1 fx Fechas

A T B Fechas Temperaturas

1102003 101

2102003 12

3102003 13

4102003 13

5102003 12

6102003 14

7102003 15

8102003 13

9102003 12|

10102003 11

11102003 101

bull M H o j a l Hoja2 Hoja3

Rango de datos Serie

u

mdash laTcmpcraturaJ

Agregar

Roacutetulos del eje de

M M B raquo bdquo j Nombre

_J Valores

Quitar |

categoriacuteas (X)

Cancelar

j=Hojal$B$l

|=HojalLECTURAS_TEMP

|=HojaliFECHAS_TEMP

lt Atraacutes 1 [SJSyregniquestegt|j

3

uuml

Uuml

Finalizar

MT

__

r Figura 58 Rangos dinaacutemicos con nombre en vez de referencias estaacuteticas a rangos

166 Excel Los mejores trucos

Una vez configurado este graacutefico cada vez que antildeada una nueva entrada ya sea en la columna A (Fechas) o en la columna B (Temperatura) se incluiraacute automaacuteticamente graacutefico

Dibujar los uacuteltimos x valores correspondientes a las lecturas

Otro tipo de rango con nombre que puede utilizar en los graacuteficos es aquel que solamente recoge las uacuteltimas 10 lecturas (o cualquier otro nuacutemero que desee) de una serie de datos Probaremos esto con los mismos datos que hemos utilizado en la primera parte del truco

Para las fechas que hay en la columna A configure un rango dinaacutemico con nombre llamado FECHAS_TEMP_1 ODIAS que hace referencia de la siguiente forshyma

= D E S R E F ( $ A $ 1 C O N T A R A ( $ A $ A ) - 1 0 0 1 0 1 )

Para las lecturas de la columna B configure otro rango dinaacutemico con nombre llamado LECTURAS_TEMP_1 ODIAS e introduzca lo siguiente

= DESREF(Hoj al$A$1CONTARA(Hoj al51$A$A) -101101)

Si desea cambiar el nuacutemero de lecturas (por ejemplo a 20) simplemente camshybie la uacuteltima parte de la foacutermula de forma que quede asiacute

= DESREF(Hoj al$A$1CONTARA(Hoj al5$A$A) - 2 0 12 01)

Al utilizar rangos dinaacutemicos con nombre en los graacuteficos dispone de una gran flexibilidad y ahorraraacute gran cantidad de tiempo al no tener que manipular los graacuteficos cada vez que antildeade nuevos datos

TRUCO Interactuar con los graacuteficos utilizando controles personalizados Para hacer que los graacuteficos sean realmente interactivos puede utilizar uno o maacutes rangos dinaacutemicos en los graacuteficos y luego utilizar una barra de desplazamiento o un cuadro de lista desplegable personalizado para mostrar las figuras que los usuarios de la hoja de caacutelculo desean ver

Como vimos en el truco anterior puede utilizar rangos dinaacutemicos con nomshybre para antildeadir flexibilidad a los graacuteficos Pero tambieacuten puede utilizar rangos dinaacutemicos con nombre para crear interfaces que controlen queacute datos deben ser dibujados por los graacuteficos Si vinculamos los rangos dinaacutemicos con nombre con controles personalizados permitiremos a los usuarios cambiar los datos de los

5 Trucos sobre graacuteficos 167

graacuteficos mediante dichos controles que se encargaraacuten de actualizar automaacuteticashymente los datos en la hoja o viceversa

Utilizar un rango dinaacutemico con nombre vinculado a una barra de desplazamiento

En este ejemplo utilizaremos una barra de desplazamiento para mostrar las figuras mensuales de un periacuteodo de 12 meses La barra de desplazamiento se utilizaraacute para modificar el nuacutemero de meses que se presentan El valor de dicha barra tambieacuten se utilizaraacute en el rango dinaacutemico que serviraacute como origen de los datos para graacutefico Para comenzar configure algunos datos de forma similar a los que se muestra en la figura 59

1 2 3

Mes

4 5 JAN 6 FEB 7 MAR 8 APR 9 MAY 10 JUN

[11 JUL 12 AUG 13 SEP 14 UumlCT 15 NOV 16 DEC 17 1 18

Producto XYZ

Ventas 2003

505 943 500 624 894 612 526 629 665 954 893 954

1 H 4 bull bull l H o j a l Hoja2 Hoja3 _ili

Figura 59 Datos de la hoja para un graacutefico dinaacutemico vinculado a una barra de desplazamiento

Cree un rango dinaacutemico con nombre seleccionando la opcioacuten lnsertargtNombregt Definir y llaacutemelo PERIODO_VENTAS En el cuadro de texto Se refiere a escriba lo siguiente

=DESREF($B$500$C$51)

Al utilizar la funcioacuten DESREF podemos usar la celda $C$5 para forzar al ranshygo referenciado en PERIODO_VENTAS a expandirse tanto arriba como abajo en funcioacuten del nuacutemero que aparezca en la celda $C$5 Es decir si por ejemplo camshybiamos el nuacutemero que hay en $C$5 por 5 estaremos obligando a que el rango incorpore las celdas B5B10

168 Excel Los mejores trucos

Si no desea que el usuario pueda ver la celda C5 puede ir maacutes allaacute y H^ ocultar el contenido de $C$5 haciendo clic con el botoacuten derecho del

^ ratoacuten sobre ella y seleccionando la opcioacuten Formato de celdas Luego seleccione la categoriacutea Personalizado e introduzca el formato Haga clic en Aceptar y el contenido de la celda C5 quedara oculto tal y como puede verse en la figura 59

Ahora cree un graacutefico (un graacutefico de liacuteneas o de columnas seriacutean los ideales) Cuando llegue al paso 2 del asistente vaya a la pestantildea Serie y cambie la foacutermushyla que aparece en el cuadro de texto Valores de forma que quede asiacute lt Nombre del libroxlsgtPERIODO_VENTAS Con esto el graacutefico seraacute dinaacutemico

Una vez haya creado graacutefico deberaacute insertar una barra de desplazamiento a traveacutes del cuadro de herramientas Formularios

La forma maacutes sencilla para hacer esto es hacer clic con el botoacuten derecho del ratoacuten en el aacuterea gris de la parte superior de la pantalla (donde estaacuten situadas las barras de herramientas pero en una parte que esteacute vaciacutea) y luego seleccionar la opcioacuten Formularios Con ello apareceraacute el cuadro de herramientas Formularios en la pantalla

Ahora haga doble clic en el icono Barra de desplazamiento Una vez insertada seleccioacutenela y mueacutevala hasta el graacutefico Luego haga clic con el botoacuten derecho sobre ella y seleccione la opcioacuten Formato de control

Cambie el valor miacutenimo a 1 y el valor maacuteximo a 12 y luego establezca el viacutenculo con celda a $C$5 El graacutefico resultante deberiacutea quedar como el que se muestra en la figura 510

L T 11 2

3

Mes 4 5 JAN

6 FEB 7 MAR 8 APR 9 MAY 10 JUN 11 JUL 12 AUG 13 SEP 14 OCT 15 NOV 16 DEC 17 18

Producto XYZ Ventas 2003

|n 4 bull n H o j a l

505 943 500 624 894 612 526 629 665 954 893 954

Hoja2

1000 -i

750 -

500 bull

250 -

0 -

iquest

JAN

A

A -y

FEB

Producto XYZ Ventas 2003

X V ^A X_

MAR APR MAY JUN JUL

_ 1 plusmnJ

UumlJJ

Figura 510 Graacutefico dinaacutemico vinculado a una barra de desplazamiento

5 Trucos sobre graacuteficos 169

Utilizar un rango dinaacutemico con nombre vinculado a un cuadro de lista desplegable

Otra variante posible es vincular el graacutefico con un cuadro de lista desplegable Comenzamos con algunos datos configurados como en la figura 59 Antildeada un rango dinaacutemico que utilizaremos como origen de los datos para graacutefico y que estaraacute vinculado a un cuadro de lista desplegable que podemos utilizar para ver los resultados de los exaacutemenes de un estudiante Utilizaremos por tanto el cuashydro desplegable para seleccionar el nombre del estudiante cuyos resultados deshyseamos ver Para ello introduzca la foacutermula =PROMEDIO (B6 B11) en la celda B12 y propaguacuteela hasta la celda F12 tal y como se muestra en la figura 511

A

1 l 2 3 4 5 6 Andreacutes 7 Carlos 8 Carolina 9 David 10 Esther 11 Frank 12 Promedio 13 14 15 16 17

4 sect 1

Ex ti ni A

C

Exam B 54 48 44 81 37 46 52

H lt bull H Hojal Hoja2Hoja3

89 72 39 93 58 69 70

D

Exam C 90 67 43 42 62 55 60

LLI

Exam D

H

74 85 68 47 67 41 64

F

Exam E 56 47 45 64 72 57 57

G

_J

plusmn

-

T bull i r

Figura 511 Graacutefico dinaacutemico vinculado a un cuadro de lista desplegable

Cree un rango dinaacutemico seleccionando la opcioacuten lnsertargtNombregtDefinir y llaacutemelo ESTUDIANTES En el cuadro de texto Se refiere a escriba lo siguiente

=DESREF($A$5$G$6115)

Cree otro rango dinaacutemico llamado NOMBRE_ESTUDIANTE y en el cuadro de texto Se refiere a escriba lo siguiente

= DESREF($A$5$G$60 1 1)

El uso de la referencia $G$6 en la foacutermula DESREF obliga a que los rangos referenciados para ESTUDIANTES y NOMBRE_ESTUDIANTE se expandan en funshycioacuten del nuacutemero introducido en la celda G6 Ahora cree un graacutefico de columnas agrupadas utilizando el rango A11F12 Cuando llegue al paso 2 del asistente vaya a la pestantildea Serie y cambie la referencia que aparece en el cuadro de texto Valores para la primera serie de forma que quede =ltNombre d e l l i b r o

170 Excel Los mejores trucos

x l s gt ESTUDIANTES En el cuadro de texto Nombre escriba =ltNombre d e l l i b r o x l s gt NOMBRE_ESTUDIANTE Llegados a este punto inserte un cuadro de lista desplegable desde el cuadro de herramien-tas Formularios Luego haga clic con el botoacuten derecho en dicho control y seleccio-ne la opcioacuten Formato de control e introduzca $A$6$A$11 para el rango de entrada y $G$6 como viacutenculo de celda Para terminar introduzca la funcioacuten CONCATENAR en una celda vaciacutea como por ejemplo la B4 de la siguiente forma

=CONCATENAR(MResultados para IacuteNDICE(A6A11G6))

Ahora si abre el cuadro de lista desplegable y selecciona un estudiante (veacutease figura 512) se mostraraacuten los resultados de sus exaacutemenes

B C D E Resultoacutelos |raquolttia Esthei Exam A Exam B Exam C Exam D

Andreacutes iexclCarlos (Carolina iexclDavid iexclEsther iexclFrank iexclPromedio

54 48 44 81 37 46 52

89 72 39 93 58 69 70

90 67 43 42 62 55 60

74 85 68 47 67 41 64

56 47 45 64

57 57

100

90

I I s f 1 1 1 p l iexcl J M M | f l f e l ^ M i f laquo ^ ^ I bull Esther I

Exam A bull Hiexcl HojalHoja2

Exam D

Figura 512 Un graacutefico dinaacutemico completo vinculado a un cuadro de lista desplegable

Tres formas raacutepidas para actualizar los graacuteficos Aunque es maravilloso crear nuevos graacuteficos actualizarlos para que reflejen los cambios producidos en la hoja puede llevar su tiempo Podemos reducir la cantidad de trabajo necesario para cambiar los datos utilizados por un graacutefico de diferentes formas

Utilizar arrastrar y colocar

Podemos antildeadir datos a una serie ya existente o crear una completamente nueva simplemente arrastrando y colocando los datos en un graacutefico Excel inten

5 Trucos sobre graacuteficos 171

tara decidir coacutemo debe t ratar los datos lo que significa que puede que antildeada la informacioacuten a una serie ya existente cuando en realidad lo que queriacuteamos era crear una nueva Sin embargo podemos hacer que Excel muestre un cuadro de diaacutelogo que nos permita elegir queacute accioacuten queremos realizar Introduzca algunos datos como los que se muestran en la figura 513

A 1 2 Enero 3 Febrero 4 Marzo 5 Abril 6 Mayo 7 8 9

| 10

B 2001

743 1

213 116

10

C 2002

7 3 2 1 3

D | 2003

3 10 4 9 4

Figura 513 Datos para un graacutefico de columnas agrupadas

Mediante el asistente para graacuteficos cree un graacutefico de columnas agrupadas soacutelo para el rango $A$1 $D$5 con lo que se obtendraacuten los resultados de la figushyra 514

25 -

jHi -J M

n

ariun Enero Febrero Marzo Abril

Figura 514 Graacutefico de columnas agrupadas creado para el rango A1D5

Seleccione el rango A6D6 haga clic con el botoacuten derecho en el borde de la seleccioacuten y sin soltarlo arraacutestrela hasta el graacutefico Suelte entonces el botoacuten y apareceraacute el cuadro de diaacutelogo Pegado especial tal y como se muestra en la figura 515 Seleccione la opcioacuten Columnas y haga clic en el botoacuten Aceptar Con esto se antildeadiraacute al graacutefico la serie de datos correspondiente a mayo tal y como se muestra en la figura 516 El cuadro de diaacutelogo Pegado especial nos ofrece la mayoriacutea de las acciones que necesitaremos para poder utilizar este truco

Utilizar la barra de foacutermulas

Tambieacuten podemos actualizar el graacutefico utilizando la barra de foacutermulas Cuando seleccionamos un graacutefico y hacemos clic en u n a serie de datos del mismo

172 Excel Los mejores trucos

observaraacute que en la barra de foacutermulas aparece la funcioacuten que Excel utiliza para la serie

Enero

Febrero

Marzo

Abril

M a j o

B

2001 C

2002 D

2003

743 1

213 116

1 0

F G

B B S Agregar celdas como

( Nueva serie

f Nuevos puntos

Valores (Y) en

lt Blas

amp iiquestolumnasj

Aceptar J

Cancelar I

25 -

20

15

10

5 -H

0 1poundL

D 2CL

uuml 2002

D 2003

P Categoriacuteas (roacutetulos de X) en ta pirnera columna

r

Enero Febrero Marzo Abril

bull bull Drag and Drop Usmg Formula Bat Dragging Bounding Atea j j _L ID Figura 515 Graacutefico de columnas agrupadas junto con el cuadro de diaacutelogo espacio

Pegado especial

Figura 516 Graacutefico de columnas agrupadas con la serie de datos correspondiente a mayo antildeadida

Dicha funcioacuten se llama SERIES y normalmente utiliza cuatro argumentos aunque el graacutefico de burbujas requiere un quinto elemento adicional (para el tamantildeo) La sintaxis de la funcioacuten SERIES es la siguiente

=SERIES( [Nombre][Valores X][Valores Y][Orden de dibujo])

Asiacute una funcioacuten SERIES vaacutelida podriacutea ser de la siguiente forma (veacutease figura 517)

= SERIES(Hoj al$B$1Hoj al$A$2$A$5Hoj al$B$2$B$51)

5 Trucos sobre graacuteficos 173

M raquo M I f H ^ iexcl j Archivo Edicioacuten Ver Insertar Formato Herramientas Graacutefico Ventana

J J A _J _ j j J J l C -j^ gU M

- ID) x |

- f f x

Sem lt 2004 bull ft =SERIES(Hoja2$B$1Hoja2$A$2$A$5Hoja2$B$2$B$51) A B C D E F G H

1 i 2 Enero T 3 IacuteFebrero 4 iMarzo 5 yAbnl 1 6

7 iexcl -Q-j

_

11 12 13 14

151 16 17 ]

18 19 20 21

23 H 4

2004 iexcl 743

1 213 116

2004

25 -i

20 -

15 -

5 -lis

fara

bull

laquo

IQ 20041 1

Enero Febrero Marzo Abril

bull n H oja 1gtH aja lHoja3 H |

J T

i gtir

Figura 517 Un graacutefico de columnas agrupadas con la barra de foacutermulas resaltada

Como puede verse en la figura anterior la primera parte de la referencia (Hojal$B$l) se refiere al nombre o al tiacutetulo del graacutefico que en este caso es 2004 La segunda parte (Hojal $A$2$A$5) se refiere a los valores X que en este caso son los meses La tercera parte (Hojal $B$2$B$5) se refiere a los valores Y que son 743 15 213 y 116 Finalmente la uacuteltima parte de la foacutermula (el 1) se refiere al orden de dibujo o al orden de la series En este caso como soacutelo hay una serie soacutelo podemos elegir el valor 1 Si hubiese maacutes de una serie la primera tenshydriacutea el nuacutemero 1 la segunda el nuacutemero 2 y asiacute sucesivamente Para realizar cambios al graacutefico simplemente modifique las referencias a celdas en la barra de foacutermulas

Ademaacutes de utilizar referencias a celdas puede introducir en los graacuteficos valoshyres expliacutecitos conocidos tambieacuten como constantes matriciales Para ello deberaacute antildeadir unas llaves por delante y por detraacutes de los valores X e Y como puede verse en la siguiente foacutermula

=SERIES(Mi b a r r a 11C D 1 2 3 4 1)

En esta foacutermula A B C y D seriacutean los valores X mientras que 1 2 3 y 4 seriacutean los valores Y correspondientes

174 Excel Los mejores trucos

Utilizando este meacutetodo puede crear o actualizar un graacutefico sin tener que alshymacenar los datos en celdas

Arrastrar el aacuterea del borde

Si los datos del graacutefico contienen referencias a celdas continuas puede extenshyder o reducir faacutecilmente el rango de datos de la serie arrastrando el borde hasta el punto deseado Haga clic en la serie que desea extender o reducir Despueacutes de hacer dos clics lentamente apareceraacuten unos pequentildeos recuadros negros alredeshydor del aacuterea de la serie (o en medio en caso de estar utilizando un graacutefico de liacuteneas) Soacutelo tiene que hacer clic en uno de esos recuadros y arrastrar el borde en la direccioacuten deseada tal y como se muestra en la figura 518

WBiexcl Microsoft EKCCI - Graficosxls

~ j j Archivo Edicioacuten Ver Insertar Formato Herramientas Graacutefico Ventana

J j J i j J J i t iquestx ^ 5uuml kg

Serie A Pun pound =SERIES(Hoja3$B$1Hoja3IacuteAIacute2$A$5Hoja3JB$2$B$51)

x

I I

a b c d

A B

^ 11

42

9J

c D B C

7 3

3 10

2 4

1 9

H I

tJr^i HWl D A

H B

D C

bull w_Hojal Ho ja2 Ho ja3 bull j r

Figura 518 Borde de una serie seleccionado

Si extiende o reduce los datos de una serie al igual que en la figura 519 el origen de datos original asiacute como las etiquetas del eje (en caso de estar configushyradas en automaacutetico) tambieacuten se modificaraacuten para reflejar los cambios que acashyba de realizar Esta teacutecnica es ideal para probar diferentes escenarios sobre todo en aquellas ocasiones en las que desee probar cuaacuteles seriacutean los diferentes resultashydos en funcioacuten de los conjuntos de datos que se utilicen

5 Trucos sobre graacuteficos 175

N raquo i M i f l t laquo B l Eacutel Archivo Edicioacuten

J J A 3 _jl

Serie A Pun bull

Ver Insertar Formato Herramientas GraacuteFico - S x

_ gt - iquest ^ -

A =5ERIES(HQja3$B$1HQJa3$A$2$A$5HQJa3$B$2$B$51)

A B

h ^

12

10

8

6

4

2

0

D H 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 13 19 20 ^1 H i bull wHojal Hoja2Hoja3

3 10 4 9

^

mdash DA HB DC

i r

Figura 519 Borde de una serie seleccionado despueacutes de ser expandido

TRUCO Crear un simple graacutefico de tipo termoacutemetro Excel no proporciona un tipo del graacutefico termoacutemetro Si desea uno tendraacute que construirlo

Es posible crear un graacutefico de tipo termoacutemetro sin mucho esfuerzo utilizanshydo el asistente para graacuteficos para crear un graacutefico de columnas agrupadas que compare valores a lo largo de las categoriacuteas y luego manipulando los diferentes elementos graacuteficos

Introduzca algunos datos de la misma forma que aparecen en la figura 520 y utilice el asistente para graacuteficos para crear un graacutefico baacutesico de columnas agrushypadas dibujando los datos en filas Para el ejemplo utilizaremos el rango B3C4

Elimine la leyenda y la cuadriacutecula (para ello simplemente seleccioacutenelas y pulshyse Supr) Deacute formato a la serie de datos Temperatura para el eje Y2 Para ello seleccione la serie haga clic con el botoacuten derecho del ratoacuten seleccione Formato de serie de datos vaya a la solapa Eje y luego seleccione la opcioacuten Eje secundario lo que haraacute que quede un graacutefico como el de la figura 521

De formato a los ejes Yl (a la izquierda) e Y2 (a la derecha) seleccionaacutendolos haciendo clic en el botoacuten derecho del ratoacuten sobre ellos seleccionando la opcioacuten

176 Excel Los mejores trucos

Formato de ejes y luego haciendo a la pestantildea Escala Establezca el valor miacutenimo a 0 y el maacuteximo a 100 la unidad mayor a 10 y la menor a 5 Con esto podraacute ver el graacutefico que se muestra en la figura 522

Caso [Temperatura

1 2 3 4 5 6 7 8 9 10 11 12 13 14 1C

H 4 bull wTermoacutemetro

100 40

D bull

120 n

100 -

80 -

60 -

40 -

20 bull

bull

E F G m

H bull

o Caso

bull Temperatura |

bull bull bull

JJLL JID Figura 520 Datos de la serie y creacioacuten de un graacutefico baacutesico de columnas agrupadas

1 2 3 4 5 b 7 8 9 10 11 12 13 14 15 16 17 18

14 4

A B

| Caso [Temperatura^

bull w Termoacutemetro

C

i oo 40J

D E F G H bull bull i

120 -j T 4 5

100 -

80 -

60 -bull

40 -

20 -

0

bull bull Bw H Hi HWHIIacuteIIIBIIacute8II

-40

-35

-30

-25

- 20 bull

- 15

- 10

- 5

I- 0 1

bull bull bull

I laquo I

mdash

i raquoir Figura 521 Dos series dibujadas en el eje Y2

Establezca el color para la serie con los casos en blanco la serie para las temshyperaturas en rojo y el aacuterea de dibujo en blanco Llegados a este punto el termoacuteshymetro deberiacutea empezar a tomar forma

Reduzca el valor de la propiedad Ancho del rango que encontraraacute en la pestantildea Opciones del cuadro de diaacutelogo que aparece al hacer clic con el botoacuten derecho del ratoacuten sobre las serie y elegir la opcioacuten Formato de serie de datos Por uacuteltimo elimine el eje X (seleccionaacutendolo y pulsando Supr) y luego cambie el tamantildeo y la

5 Trucos sobre graacuteficos 177

posicioacuten a su gusto Como se demuestra en la figura 523 retocando algunas de las caracteriacutesticas existentes en los graacuteficos de Excel puede conseguir construir un termoacutemetro totalmente funcional y con una apariencia impresionante

1 2 3 4 5 6 7 8

i 9

10 11 12 13 14 15 16 17 18 19 911

4 4

A B

CasoT iquestTemperatura^

bull M Termoacutemetro

C

loo 40

D E F G H i bull

90 -

80 -

70 -

60 -

50 -bull

40 -

30 -

20 -

10 -

_ U -

iexcliexclbullSill l liexcliexcli l l | ||

- 1111111 [iiiiiiiiiiilaailBiij -

bull

- 9 0

bull 80

-70

-60

-50

- 40

- 30

-20

- 10

bull bull

M

bull

bull

bull

I J T i _ j

1

__i uumld Figura 522 Serie con los casos en el eje Yl y serie con las temperaturas en el eje Y2

ambos con formato ideacutentico

1

2 3 4 5

6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

|H 4

A B

Caso ^Temperatura^

bull M Termoacutemetro

C

icio 40

D E F G 1 bull bull

90 -

80 -

70 -

60 -

bull 50 -

40 -

30 -

20 -

10 -

0 -

i i iwi^^Ma -- ^ ^ H H | -

iMH^^SI -EHBB

- |sect||1| - PiPiacuteiSilil

- 90

- 80

bull 70

bull 60

- 50 bull

- 40

- 30

- 20

- 10

L M a H S plusmn 0

M

H 1 ~Z

H

1 gtir Figura 523 Graacutefico estilo termoacutemetro completada

178 Excel Los mejores trucos

Crear un graacutefico de columnas con anchos y altos variables iquestNo seriacutea estupendo poder crear un graacutefico de columnas las cuales pudiesen variar en ancho y alto Luego a medida que se dibujan los datos en dichas columnas su ancho y su alto se ajustariacutean inteligentemente y de forma simultaacutenea

Excel no proporciona esta caracteriacutestica directamente pero trucando un graacuteshyfico XY de dispersioacuten podemos crear un graacutefico de columnas de ancho variable m u y efectivo Los graacuteficos de dispersioacuten se utilizan para comparar valores por lo que proporcionan una base perfecta sobre la que comenzar a crear un graacutefico de columnas de ancho variable

La figura 524 muestra un graacutefico de columnas de ancho variable que dibuja el porcentaje compartido comparado con el coste de los siguientes gastos gas electricidad agua comida viajes y otros El eje X (el eje a lo largo de la parte inferior del graacutefico) muestra los porcentajes mientras que el eje Y (el eje que se encuentra en la parte izquierda) muestra el coste en dinero

1 2

A B C Columnas de ancho variable

3 Gas 4 Electricidad 5 Agua 6 Comida 7 Viajes 8 iexcl Otros

r 0 1

2 Iacute3

14 15 Iacute6 17 18 19 201 21 22 23 24 25 jiquestl I 4

Comp Coste (euro) 02 150 015 1125 012 90 03 225 007 525 016 120

250 -

200 -

amp 150 bull

1

u 100 -

50 -

n -c

bull M Hojal

bull

bull

02 04

L

D E X Y 0 =C3 =B3+D2 =C3 =B4+D3 =C4 =B5+D4 =C5 =B6+D5 =C6 =B7+D6 =C7 =B8+D7 =C8

bull

06 08

F Supr

=D3-D2 =D4-D3 =D5-D4 =D6-D5 =D7-D6 =D8-D7

bull

1

G I nfe r =E2 =E3 =E4 =E5 =E6 =E7 =E8

12

H Arriba =C3-E2 =C4-E3 =C5-E4 =C6-E5 =C7-E6 =C8-E7

l

bull Serie

1 J EtiqEscala X EtiqEscala Y

=f(D3-D2)2)+D2 0 =((D4-D3)2)+D3 0 =((D5-D4)2)+D4 0 =(YD6-D5)2)+D5 0 =((D7-D6)2)+D6 0 =((D8-D7)2)+D7 0

j laquo l 1

K Texto EtiqEscala

=B3 =B4 =B5 =B6 =B7 =B8

bull in Figura 524 Graacutefico XY de dispersioacuten configurado para el rango D2E8

Para crear este graacutefico introduzca algunos datos como los que se muestran en la figura 524 y utilizando el asistente para graacuteficos seleccione el rango D2E8 En el paso 1 seleccione el tipo de graacutefico XY de dispersioacuten Acepte los valores

5 Trucos sobre graacuteficos 179

predeterminados para este graacutefico que muestran solamente los puntos y haga clic en Siguiente En el paso 2 aseguacuterese de que la opcioacuten Columnas estaacute selecshycionada Haga clic en Siguiente y en el paso 3 del asistente en el cuadro de texto Valor (Y) escriba Coste ($) Haga clic en el botoacuten Siguiente y aseguacuterese de que el graacutefico seraacute generado como un objeto no en una nueva hoja Para terminar haga clic en el botoacuten Finalizar para ver el graacutefico resultante

Para ver las foacutermulas correctas en su sitio en las celdas seleccione la K^ opcioacuten HerramientasgtOpciones y luego vaya a la pestantildea Ver y actiacutevela

-V casilla de verificacioacuten Foacutermulas

Ha llegado el momento de manipular el graacutefico para crear las columnas Prishymeramente elimine la leyenda y la cuadriacutecula (basta con seleccionarlas y luego pulsar Supr) Cambie el formato del aacuterea de dibujo para que no se rellene haga clic en el color de fondo gris luego haga clic con el botoacuten derecho sobre eacutel y seleccione Formato del aacuterea de trazado Seleccione la opcioacuten Ninguna en el apartashydo Aacuterea

Seleccione el eje X y luego haga doble clic sobre eacutel para acceder al cuadro de diaacutelogo Formato de ejes Vaya a la pestantildea Escala e introduzca un miacutenimo de 0 y un maacuteximo de 1 Vaya a la pestantildea Tramas y seleccione la opcioacuten Ninguna en Marca de graduacioacuten principal y en Roacutetulos de marca de graduacioacuten seleccione Ninguno Luego haga clic en Aceptar con lo que el graacutefico se pareceraacute al que se muestra en la figura 525

El siguiente paso seraacute crear las liacuteneas para las columnas asiacute que haga doble clic sobre los puntos de los datos para abrir el cuadro de diaacutelogo Formato de serie de datos Vaya a la pestantildea Barras de error X En la seccioacuten Presentar seleccione la opcioacuten Por defecto y luego seleccione la opcioacuten Personalizada y establezca el rango G2G8 Al hacer clic en Aceptar obtendraacute los lados verticales de las coshylumnas

Ahora que ya hemos hecho el trabajo duro es el momento de retocar un poco el graacutefico y antildeadir algunas etiquetas Primeramente en el cuadro de diaacutelogo Forshymato de serie de datos vaya a la pestantildea Tramas y seleccione la opcioacuten Ninguno en el apartado Marcador Los resultados se muestran en la figura 526

Si desea utilizar etiquetas deberaacute descargar las herramientas para graacuteficos de John Walkenbach disponibles en httpj-walkcomssexcelfilescharttoolshtm Una parte de este componente estaacute disentildeado especiacuteficamente para etiquetas de datos

Le permite especificar un rango de la hoja para las etiquetas de datos que se utilizaraacuten en la serie de un graacutefico (por desgracia parece que este componente no funciona en la versioacuten de Macintosh de Excel)

180 Excel Los mejores trucos

A B C Columnas laquole ancho variable

D

Gas Electricidad Agua Comida Viajes [Otros

JoComp Coste (euro) 02 015 012 03 007 016

150 1125 90 225 525 120

0 =C3 =B3+D2 =C3 =B4+D3 =C4 =B5+D4 =C5 =B6+D5 =C6 =B7+D6 =C7 =B8+D7 =C8

F Supr

H

=D3-D2 =D4-D3 =D5-D4 =D6-D5 =D7-D6 =08-07

Infer Arriba =E2 =E3 =E4

=C3-E2 =C4-E3 =C5-E4

=E5 =C6-E5 =E6 =C7-E6 =E7 =C8-E7 =E8 iexclI

i EtiqEscala X

250

200 -I

$ 1 50 4 o

w 100

50

0

4 bull n Ho ja l

J K EtiqEacutescala Y Texto EtiqEscala

=((D3-D2)2)+D2 0 =((D4-D3)2)+D3 0 =((D5-D4)2)+D4 0 =((D6-D5)2)+D5 0 =(D7-D6)2)+D6 0 =((D8-D7V2)+D7 0

=B3 =B4 =B5 =B6 =B7

LIacuteO Figura 525 Graacutefico de dispersioacuten modificado

A Columnas lt

B C le ancho variable Comp Coste (euro)

Gas Electricidad Agua Comida Viajes Otros

02 015 012 03 007 016

150 1125 90 225 525 120

0 =B3+D2

=B4+D3 =B5+D4 = =B6+D5 B7+D6 =

=B8+D7 =C8

Supr

=03-02 =04-03 =D5-D4 =06-05 =07-06 =D8-D7

G Infer

H Arriba

=E2 =E3 =E4 =E5 =E6 =E7 =E8

=C3-E2 =C4-E3 =C5-E4 =C6-E5 =C7-E6 =C8-E7

^ bull nHojal

EtiqEscala X EtiqEscala Y Texto EtiqEscala

=((D3-D2)2)+D2 =((D4-D3)2)+D3 =((D5-D4)2)+D4 =((D6-D5)2)+D5 =((D7-D6)2)+D6 =((D8-D7)2)+D7

=B3 =B4 =B5 =B6 =B7

X Figura 526 Graacutefico de dispersioacuten manipulado para producir un graacutefico con columnas

de ancho variable

Antes de utilizar estas herramientas deberaacute antildeadir una nueva serie de datos para proporcionar las etiquetas al eje X del graacutefico Para ello seleccione el graacutefi-

5 Trucos sobre graacuteficos 181

co haga clic con el botoacuten derecho sobre eacutel y seleccione la opcioacuten Datos de origen y luego vaya a la pestantildea Serie Haga clic en Agregar para antildeadir una nueva serie En el cuadro de texto Valores X seleccione el rango 1318 y en el cuadro de texto Valores Y seleccione el rango J3J8 De formato a la nueva serie de forma que no tenga marcador para ello abra el cuadro de diaacutelogo Formato de serie de datos vaya a la pestantildea Tramas y luego en el apartado Marcador seleccione la opcioacuten Ninguno Ahora llega el momento de utilizar el componente Aseguacuterese de que tiene seleccionada la serie 2 y vaya a GraacuteficogtJWalk Chart Tools Cuando se abra el cuadro de diaacutelogo haga que el rango de la etiqueta de datos sea K3K8

Para antildeadir una nueva serie de datos para proporcionar las etiquetas de la columna seleccione el graacutefico haga clic con el botoacuten derecho sobre eacutel seleccione Datos de origen y luego vaya a Serie Haga clic en Agregar para antildeadir una nueva serie En Valores X seleccione el rango 1318 y en Valores Y seleccione el rango C3C8 De nuevo de formato a la nueva serie de forma que no tenga marshycador de la misma forma que indicamos anteriormente

Nuevamente usaremos el complemento pero esta vez seleccionaremos la serie 3 y vincularemos las etiquetas de datos a A3A8 El resultado deberiacutea ser como el que se muestra en la figura 527

1 2

A Columnas

3 Gas [ 4 Electricidad 5 Agua 6 Comida 7 Viajes | 8 |Otros | 9 10 11 12 13 14 15 16 17

18 19 20 21 22 23 24 25

|H 4

250 -

200 -

- 150 -

- 100 -

50 -

0 -

bull bull H o j a l

B C de ancho variable Cornp Coste(euroj

20 15000 euro 15 11250 euro 12 9000 euro 30 22500 euro 7 5250 euro

16 12000 euro

D E X Y

0 150 2000 150 3500 1125 4700 90 7700 225 8400 525

10000 120

F Supr

r2000 r1500 r1200 r3000 t 700 1600

Gas

Electricidad

Agua

20 15 12

G Inferior

150 150

1125 90

225 525 120Iacute

Comida

30

H Vriba

0 -375 -225

135 -1725

675

I J EtiqEscala X EtiqEscala Y

1000 0 2750 0 4100 0 6200 0 8050 0 9200 0

Viajes

Otros

7 16

M

K _ _ j

Texto EtiqEscala ~

20 15 12 30 7

16

- J

ir Figura 527 Graacutefico con columnas de ancho variable completado

Lo mejor de este tipo de graacuteficos es que las barras se expandiraacuten o contraeraacuten a lo largo de los ejes X e Y cuando los valores introducidos en las columnas Compartido y Coste cambien

182 Excel Los mejores trucos

Crear un graacutefico de tipo velociacutemetro Es posible crear un velociacutemetro realmente impresionante y funcional con su aguja movible todo ello gracias a la combinacioacuten de graacuteficos circulares y graacuteficos de anillo El truco estaacute en controlar el velociacutemetro a traveacutes de una barra de desplazamiento

El asistente para graacuteficos de Excel ofrece diferentes tipos de graacuteficos aunque no uno como el que queremos hacer Un graacutefico de tipo velociacutemetro proporciona una forma ingeniosa de representar los datos Con este truco podemos crear un velociacutemetro y una barra de desplazamiento a partir del cuadro de herramientas que serviraacute para modificar el graacutefico y cambiar los valores de la hoja simultaacuteneashymente

Lo primero que debemos hacer es introducir algunos datos al igual que se muestra en la figura 528 y luego crear un graacutefico de tipo anillo Eacutestos funcioshynan de forma similar a los graacuteficos circulares aunque permiten contener muacuteltishyples series cosa que los graacuteficos circulares no pueden

1 2 3 4 5 6 7 8 9 10 11

12 13 14 15 16 17 18 19 20

H lt

A Bandas

25 75_

bull bull l H o j

180

B Marcas

=(180100)A2 =(180100)(A3-A2) =360-

JJ_

SUMA(B2B4)

C D Etiquetas Marcas Etiquet

180 =$F$3amp50 9 0 18 10 18 20 18 30 18 40 18 50 18 60 18 70 18 80 18 90 9 100

Bajo Normal Alto

i l L

as comp

E F Aguja

200 Comp =((180100)F3)-1 |50 2 =360-SUMA(E2E4)

_ J

=

H-

MTJ Figura 528 Datos configurados para ser usados por el velociacutemetro

Aseguacuterese de mostrar las foacutermulas en la hoja Para ello vaya a Herramientasgt OpcionesgtVer y active la casilla de verificacioacuten Foacutermulas aunque esto seraacute un proceso largo

Ahora seleccione el rango B2B5 y seleccione el asistente para graacuteficos En el paso 1 en la pestantildea Tipos estaacutendar seleccione el primer tipo de graacutefico de anillo Haga clic en Siguiente y en el paso 2 aseguacuterese de que los datos se dibujaraacuten por filas Haga clic de nuevo en Siguiente y realice cualquier cambio que considere necesario en el paso 3 (aunque no lo son para este truco) Vaya al paso 4 hacien-

5 Trucos sobre graacuteficos 183

do clic en Siguiente y aseguacuterese de que el graacutefico se generaraacute como un objeto (es la opcioacuten predeterminada) Al general graacutefico como un objeto resultaraacute maacutes senshycillo trabajar con eacutel y asiacute poder configurar el velociacutemetro (veacutease figura 529)

Velociacutemetro

Figura 529 Graacutefico de anillo baacutesico

Seleccione el graacutefico de anillo y seleccione la porcioacuten maacutes grande haciendo doble clic lentamente para luego seleccionar la opcioacuten Formato de punto de datos e ir a la pestantildea Opciones Establezca el aacutengulo para esta porcioacuten en 90 grados Vaya a la pestantildea Tramas y configure el aacuterea y el borde de esta porcioacuten a Ningushyno Haga clic en Aceptar y haga doble clic lentamente para seleccionar cada uno de las porciones restantes Haga doble clic entonces para volver al cuadro de diaacuteshylogo anterior y establecer el color como sea necesario Al final el graacutefico de tipo anillo deberiacutea parecerse al que se muestra en la figura 530

V

Figura 530 Graacutefico de tipo anillo con aacutengulo de 90deg sin color ni borde en la primera porcioacuten

Ahora necesitamos antildeadir otra serie (Serie 2) de valores para formar los segshymentos para las etiquetas del semiciacuterculo Para ello seleccione el graacutefico haga clic en el botoacuten derecho sobre eacutel seleccione la opcioacuten Datos de origen y luego

184 Excel Los mejores trucos

vaya a la pestantildea Serie Haga clic en el botoacuten Agregar con el que crearaacute una nueva serie y luego en Valores seleccione el rango C2C13 Haga clic de nuevo en el botoacuten Agregar para antildeadir una tercera serie (Serie 3) con la que crearemos la aguja del velociacutemetro En Valores seleccione el rango E2E5 Al final el resulshytado deberiacutea ser como el de la figura 531

Figura 531 Graacutefico de tipo anillo con muacuteltiples series

Llegados a este punto el velociacutemetro estaacute empezando a tomar forma Si desea antildeadir etiquetas a este graacutefico necesitaraacute descargar una herramienta para poder antildeadirlas libremente Vaya a httpj-walkcomssexcelfilescharttoolshtm donde podraacute descargar Chart Tools de Jonh Walkenbach

Parte de este complemento que por desgracia soacutelo funciona con Windows estaacute disentildeado especiacuteficamente para crear etiquetas de datos Nos permite especishyficar un rango de una hoja para las etiquetas de datos que se utilizaraacuten en la serie de un graacutefico el complemento tambieacuten contiene otras caracteriacutesticas que pasamos a detallar a continuacioacuten

bull Tamantildeo del graacutefico Permite especificar un tamantildeo exacto para un graacuteshyfico y tambieacuten permite hacer que todos los graacuteficos tengan el mismo tashymantildeo

bull Exportar Le permite guardar los graacuteficos como archivos gif jpg tif o png

bull Imagen Convierte un graacutefico en una imagen (a color por escala de grises)

bull Tamantildeo del texto Congela el tamantildeo de todos los elementos de texto en un graacutefico de forma que si eacuteste cambia de tamantildeo los elementos de texto no lo haraacuten

bull Informe del graacutefico Genera un informe de resumen para todos los graacuteshyficos o bien un informe detallado para uno en particular

5 Trucos sobre graacuteficos 185

Utilice este complemento para dar formato a la serie 2 para que se muestren las etiquetas de datos utilizando el rango D2D13 Manteniendo seleccionada la serie 2 haga doble clic sobre ella para abrir el cuadro de diaacutelogo de formato Vaya a la pestantildea Tramas y seleccione Ninguno tanto para el borde como para el aacuterea Con ello el graacutefico deberiacutea parecerse al que se muestra en la figura 532

Figura 532 Graacutefico de tipo velociacutemetro mejorado junto con las etiquetas

Seleccione la serie 3 haga clic con el botoacuten derecho sobre ella y seleccione Tipo de graacutefico Cambie esta serie para que sea del tipo graacutefico circular predeterminashydo Siacute parece extrantildeo (veacutease figura 533) pero podemos asegurar que si el graacutefishyco circular se superpone con el graacutefico de anillo es que lo ha hecho todo correctamente

Figura 533 Graacutefico de tipo velociacutemetro superpuesto con el graacutefico circular

A continuacioacuten es necesario reducir el tamantildeo de graacutefico circular que acabashymos de colocar sobre el graacutefico de anillo Para ello sepaacuterelo en diferentes porcioshynes y luego vuelva a ensamblar las maacutes pequentildeas Seleccione una porcioacuten de graacutefico circular (haciendo dos clics lentamente en la porcioacuten que desea modifi-

186 Excel Los mejores trucos

car) y arrastraacutendola hacia afuera Esto haraacute que el graacutefico circular se separe y se haga maacutes pequentildeo tal y como se muestra en la figura 534

Velociacutemetro

5G Cotnp

Figura 534 Graacutefico circular separado y cambiado de tamantildeo

Ahora seleccione todo el ciacuterculo haga doble clic sobre eacutel y en el cuadro de diaacutelogo Formato de serie de datos vaya a la pestantildea Opciones Cambie el aacutengulo de la primera porcioacuten a 90 grados Seleccione una a una el resto de las porciones y haciendo clic con el botoacuten derecho del ratoacuten vuelva a este cuadro de diaacutelogo y luego vaya a la pestantildea Tramas Ahiacute seleccione Ninguno tanto para el borde como para el aacuterea de todas las porciones excepto para la tercera que deberaacute estar relleshynada con un color negro Esto produciraacute un graacutefico como el que se muestra en la figura 535

Velociacutemetro

Figura 535 Graacutefico de tipo velociacutemetro en el que solamente la tercera serie del graacutefico circular muestra un color

Si desea antildeadir una leyenda seleccione el graacutefico haga clic con el botoacuten dereshycho del ratoacuten y seleccione la opcioacuten Opciones del graacutefico Luego vaya a la pestantildea Roacutetulos de datos y seleccione la opcioacuten Clave de leyenda Esto produciraacute un velo-

5 Trucos sobre graacuteficos 187

ciacutemetro como el de la figura 536 Ahora mueva cambie el tamantildeo y modifique el graacutefico si asiacute lo desea

Velociacutemetro

D Normal

bull Alto

Figura 536 Graacutefico de tipo velociacutemetro con una leyenda

Ahora que el graacutefico de tipo velociacutemetro estaacute construido necesitamos crear una barra de desplazamiento a partir del cuadro de herramientas y hacer que este control y el graacutefico puedan comunicarse entre ellos

Para ello deberaacute mostrar el cuadro de herramientas Formularios haga clic con el botoacuten derecho ratoacuten en un aacuterea vaciacutea de la barra de herramientas (a la derecha de donde se encuentran las barras de herramientas estaacutendar y de formashyto) y seleccione en el menuacute la opcioacuten Formularios Ahora seleccione el icono Barra de desplazamiento y dibuje dicha barra en cualquier lugar de la hoja

Seleccione la barra de desplazamiento que acaba de dibujar haga clic con el botoacuten derecho sobre ella y seleccione la opcioacuten Formato de control Elija como celda vinculada la celda F3 establezca un valor maacuteximo de 100 y un valor miacutenishymo de 0 Cuando cierre este cuadro de diaacutelogo y mueva la barra de desplazashymiento sobre el graacutefico veraacute algo parecido a lo que se muestra en la figura 537

Figura 537 Graacutefico de tipo velociacutemetro ya terminado

188 Excel Los mejores trucos

Al hacer clic en las flechas o al arrastrar el selector de la barra de desplazashymiento haraacute que el velociacutemetro se modifique Pero recuerde esto tambieacuten camshybiaraacute los datos de la hoja de caacutelculo que estaacuten vinculados con el graacutefico

Vincular los elementos de texto de un graacutefico a una celda Cuando se crean y se utilizan graacuteficos repetidamente puede ser uacutetil conocer coacutemo vincular algunos de los textos de los graacuteficos como por ejemplo tiacutetulos y etiquetas directamente a una celda Esto quiere decir que si los datos subyacentes al graacutefico cambian los datos del graacutefico y sus elementos de tipo texto siempre estaraacuten en armoniacutea

Los elementos de tipo texto de un graacutefico que puede vincular a una celda son el tiacutetulo principal del graacutefico los tiacutetulos primario y secundario de los ejes X e Y asiacute como las etiquetas de datos de las series

Para ver coacutemo se hace esto vincularemos el tiacutetulo del graacutefico con una celda Para ello comenzaremos introduciendo algunos otros como los que se muestran en la figura 538 y mediante el asistente para graacuteficos crearemos un graacutefico de columnas agrupadas baacutesico Ahora haga clic en la celda Al 7 y escriba Edad de los empleados

A Fecha

1 122003 ] 2122003 3122003 4122003 5122003 6122003 iexcl 7122003 8122003

9122003 10122003 11122003 12122003 13122003 14122003

B Edad 1

2 3 4 5 6 7 8

trade9

10

TIacute 13 Iacute4 15

3S 17 bull Edad de los empleados 18

Iacute 9 mi H laquo bull bullIJXHoial

20 25 26 23 24 21 20 19 25 26 24 23 21 22

30

25

20

15 10

5

0

4

Edad

h DEdad

iquestF

_plusmnid Figura 538 Graacutefico de columnas agrupadas con su tiacutetulo creado a traveacutes del asistente

El siguiente paso seraacute crear un viacutenculo entre el tiacutetulo del graacutefico y la celda Para ello seleccione el tiacutetulo del graacutefico (Edad en este caso) luego vaya a la barra de foacutermulas escriba un = haga clic en la celda Al 7 y pulse Intro (tenga en

5 Trucos sobre graacuteficos 189

cuenta que si hace referencia a una celda que se encuentra otra hoja tendraacute que escribir primero el nombre de la hoja seguido del signo de admiracioacuten y del nomshybre de dicha celda)

Este mismo proceso funciona para las etiquetas de datos aunque necesitaraacute seleccionar una etiqueta de datos individual antes de vincularla con una celshyda Los resultados obtenidos deberiacutean parecerse a los que le mostramos en la figura 539

A Fecha

1122003 2122003 3122003 4122003 5122003 6122003 7122003 8122003 9122003

10122003 11122003 12122003 13122003 14122003

B Edad

20 25 26 23 24 21 20 19 25 26 24 23 21 22

Edad de los empleados

fEdad de los empleados I B laquo 1

30 -

25

20

15 -H D Edad

iquest y y y y y

H lt bull n H o j a l l i lL id Figura 539 Graacutefico de columnas agrupadas con el tiacutetulo vinculado a la celda Al 7

Este sencillo truco le permitiraacute conseguir que los elementos de texto del graacutefishyco y los datos del graacutefico esteacuten en armoniacutea Ademaacutes le ahorraraacute gran cantidad de tiempo a la hora de crear graacuteficos

Trucar los datos de un graacutefico de forma que no se dibujen las celdas en blanco Excel trata las celdas en blanco como si tuvieran un valor de 0 lo que puede provocar que se generen graacuteficos un tanto feos Esto provoca que la representacioacuten de valores de un graacutefico caiga de repente con lo que queda un graacutefico que no dibuja con precisioacuten la imagen que estaacute intentando mostrar Con el siguiente truco nos aseguraremos de que las celdas en blanco no sean dibujadas

Es posible impedir que se dibujen las celdas en blanco de dos formas m u y sencillas bien ocultando las filas con las columnas o bien haciendo que dichas celdas devuelvan el valor NA

Excel Los mejores trucos

Ocultar filas y columnas

Configure algunos datos de forma que queden como en la figura 540 Cree un graacutefico de liacuteneas y vea coacutemo queda si tiene valores 0 dibujados Seleccione el rango A1B12 abra el asistente para graacuteficos y configure el graacutefico de liacuteneas como un objeto para la hoja de caacutelculo actual

A 1 Enero 2 Febrero 3 Marzo 4 Abril 5 Mayo 6 Junio 7 Julio 8 Agosto 9 Septiembn 10 Octubre 11 Noviembre 12 Diciembre 13 14 15 16 17 18 19 20 21 22 i

B 300 350 325 275

0 0 0 0 0 0 0 0

|n 4 bull H Ocultar filas Devolver NA lt j bull ) f]

Figura 540 Datos y un graacutefico de liacuteneas que estaacute dibujando los valores 0

A 6 C D EacuteT F G H iexcl J 1 Enero 300 2 Febrero 350 3 Marzo 325 4 Abril 275 13 14 15 16 17 18 19 20 21 22 23 24 25

I H 4 bull H Ocultar filas Devolver NA ltiexcl j bull | f j

Figura 541 Datos con las filas 5 a 12 ocultas con el graacutefico dibujando solamente los valores de enero a abril

El graacutefico de la figura 540 estaacute dibujando los resultados de ventas por meses Esto significa que si el mes actual es abril el graacutefico estaraacute dibujando ocho meses

190

400

350

300

250

200

150

100

50

mdash eacute mdash | mdash mdash | mdash mdash | mdash mdash | mdash mdash | mdash mdash | mdash eacute mdash

iquestdeg^deggtdegaacutegtgt0 ltgtdeg w ^gtgtvy gt cr ^ iquestp

400 -i

350 bull

300 bull

250 bull

200 -

150 bull

100 bull

50 bull

0 bull

Enero

| mdash laquo mdash Ser ie l

Febrero M a r i o

^ mdash bull bull

i

Abri l

5 Trucos sobre graacuteficos 191

de celdas vaciacuteas dado que todaviacutea no disponemos de los datos desde mayo a diciembre

Para evitar este inconveniente bastariacutea con ocultar las filas 5 a 12 (mayo a diciembre) Al hacer esto Excel no dibuja los datos que haya en filas ocultas con lo que obtendremos un resultado como el de la figura 541 Para ocultar estas filas seleccioacutenelas y luego vaya a FormatogtFilagtOcultar

CAPIacuteTULO 6

Trucos sobre foacutermulas y funciones

Trucos 60 a 80

Las foacutermulas y funciones proporcionan la loacutegica que da potencia a las hojas de caacutelculo Saber manipular la loacutegica de programacioacuten siempre resulta un reto pero mantener un seguimiento de la loacutegica de programacioacuten a lo largo de muacutelt ishyples celdas hojas y libros puede ser particularmente difiacutecil especialmente cuanshydo estas hojas de caacutelculo crecen y son reutil izadas Y lo que es maacutes las caracteriacutesticas incorporadas en Excel en relacioacuten a las foacutermulas y funciones pueshyde que no siempre sean las que desea Por suerte existen numerosas formas de mantener en buen estado esas foacutermulas y funciones

Antildeadir un texto descriptivo a las foacutermulas Los rangos con nombre de Excel y los comentarios de celdas pueden ayudar a clarificar las foacutermulas pero a veces desearaacute poder antildeadir maacutes documentacioacuten dentro de los propios foacutermulas Con los trucos de este apartado podraacute antildeadir un texto descriptivo a las foacutermulas de forma raacutepida y sencilla

Incluso cuando haya escrito varias foacutermulas y funciones por usted mismo cuando tenga que volver a ellas maacutes adelante normalmente tendraacute que seguir las referencias a celdas para averiguar queacute era lo que haciacutea la funcioacuten Seriacutea una gran idea asiacute se pudiese antildeadir al final de la foacutermula alguacuten texto (que no interfishyriese con el resultado) que proporcionase maacutes informacioacuten sobre el mecanismo de la foacutermula para asiacute poder consultarlo maacutes adelante

El problema por supuesto es que en el momento en el que antildeada texto como parte de la foacutermula el resultado de la misma no seraacute numeacuterico y no podraacute ser

uuml

194 Excel Los mejores trucos

utilizado en caacutelculos posteriores Excel sin embargo proporciona una funcioacuten a menudo olvidada que puede utilizar para antildeadir texto descriptivo a las foacutermulas o a las funciones

Digamos que tiene la siguiente foacutermula en la celda Al 1

=SUMA($A$1$A$10)$B$1

Suponiendo que $A$1$A$10 contienen varios resultados numeacutericos que reshypresentan los totales para un mes en particular y que $B$1 contiene el porcenshytaje que representa un impuesto podemos antildeadir alguacuten texto descriptivo a la foacutermula utilizando la funcioacuten N de Excel

=SUMA($A$1$A$10N(Valores para abril))$B$1+N(Impuesto para abril)

Ahora puede determinar para queacute se estaacute utilizando la foacutermula simplemente seleccionando esta celda y mirando la barra de foacutermulas La funcioacuten N siempre devuelven un valor de 0 sea cual sea el texto por lo que no interfiere con el resultado total de la foacutermula

0 ^ 3 Mover foacutermulas relativas sin cambiar las referencias ) ^ V ^ ^ H En Excel una referencia de una foacutermula puede ser relativa o absoluta Sin

^ ^ ^ ^ ^ ^ | embargo algunas veces desearaacute reproducir las mismas foacutermulas en alguacuten otro lugar de la hoja o el libro o incluso en otra hoja diferente

Cuando una foacutermula necesita hacerse absoluta escriba el signo del doacutelar ($) delante de la letra de la columna y o del nuacutemero de la fila que hace referencia una celda como por ejemplo en $A$1 Una vez hecho esto no importa doacutende copie la foacutermula que la referencia se mantendraacute a la misma celda

Aveces de todas formas desearaacute configurar numerosas foacutermulas que no conshytengan referencias absolutas pero siacute relativas Normalmente hariacutea esto de forma que cuando copie la celda con la foacutermula original en otro rango las referencias a columnas y filas cambien en funcioacuten de la nueva ubicacioacuten

Por uacuteltimo otras veces desearaacute configurar las foacutermulas utilizando una mezshycla de referencias relativas y absolutas y desearaacute reproducirla en otro rango de la misma hoja en otra hoja del mismo libro o incluso en una hoja de otro libro Puede hacer todas estas cosas sin tener que cambiar ninguna referencia a rangos que haya dentro de las foacutermulas

Seleccione el rango de celdas que desea copiar Vaya a EditargtReemplazar y en el cuadro de texto Buscar escriba = (un signo de igual) En el cuadro de texto Reemplazar con escriba (el signo de la arroba) o cualquier otro siacutembolo que sepa que no esteacute siendo utilizado por ninguna de las foacutermulas A continuacioacuten haga clic en el botoacuten Reemplazar todos

6 Trucos sobre foacutermulas y funciones 195

Todas las foacutermulas apareceraacuten en la hoja con el signo en lugar del signo = Ahora simplemente puede copiar este rango pegarlo en el destino que desee seleccionar dicho rango de destino e ir a EdicioacutengtReemplazar donde esta vez reemplazaremos el signo por el signo = Con ello conseguiremos que las foacutershymulas hagan referencia a las mismas celdas que lo haciacutean las originales

Comparar dos rangos de Excel Buscar las diferencias entre dos grandes tablas con datos puede ser una tarea muy costosa Afortunadamente al menos hay dos meacutetodos con los que podemos automatizar lo que de otra manera seriacutea un proceso manual muy tedioso

Estos dos meacutetodos ya los hemos utilizado anteriormente cuando recibimos una copia actualizada de una hoja de caacutelculo y necesitaacutebamos identificar queacute celdas en la copia actualizada eran diferentes de las celdas que habiacutea en la copia original Ambos meacutetodos nos ahorraraacuten el tedioso trabajo de hacer una comproshybacioacuten manual y lo que es maacutes importante evitaraacuten la posibilidad de cometer errores Para los siguientes ejemplos hemos copiado los datos maacutes nuevos en la misma hoja en la que estaban los antiguos En la figura 61 se muestra coacutemo se presentan los datos en dos rangos Tenga en cuenta que para facilitar la lectura hemos puesto en negritas las celdas de la tabla 2 que no son iguales que las correspondientes de la tabla 1

1 A B C 1 Nombre Edad Aacuterea 2 Juan 22 1a 3 Antonio 33 la 4 Marta 55 2c 5 Cristina 48 3d 6 Mariacutea 29 3d 7 Carlos 45 4a

3 9 Nombre Edad Aacuterea 10 Juan 22 2c 11 Antonio 33 1a 12 Marta 55 2d 13 Cristina 43 3d 14 David 29 3d 15 Carlos 45 4a 16

H 4 bull raquo l _Hoia l Hoia2 jHpja3

D E F G 7

mdash-

mdash I laquol l bull i f l Figura 61 Dos rangos a ser comparados

Meacutetodo 1 Utilizar Verdadero o Falso

El primer meacutetodo implica introducir una simple foacutermula en otro rango con el mismo tamantildeo y composicioacuten La parte mejor de este meacutetodo es que puede antildea-

196 Excel Los mejores trucos

dir la foacutermula en un solo paso sin tener que copiar y pegar Para comparar los rangos que se muestran en la figura 61 seleccione el rango E1G7 comenzando por la celda El Esto aseguraraacute que dicha celda sea la activa en la seleccioacuten

Una vez seleccionado el rango haga clic en la barra de foacutermulas y escriba lo siguiente

=A1=A9

Introduzca esta foacutermula pulsando Control-Intro al mismo tiempo De esta forma estaraacute introduciendo la foacutermula con referencia relativa en cada una de las celdas de la seleccioacuten Eacuteste es un meacutetodo estaacutendar para introducir una foacutermula en una matriz de celdas y hacer que esa referencia cambie de forma apropiada seguacuten cada celda

El rango El G7 deberiacutea rellenarse con el valor Verdadero (son iguales) o Falso (no son iguales)

Si los dos conjuntos de datos residen en diferentes hojas de caacutelculo puede utilizar una tercera hoja para almacenar los valores VerdaderoFalso simpleshymente introduciendo la foacutermula en la matriz correspondiente Por ejemplo sushyponiendo que la segunda tabla estaacute en la Hoja2 y comienza en la celda A9 y la tabla original estaacute en la Hojal y comienza en la celda A l deberaacute introducir en la tercera hoja la siguiente foacutermula utilizando el meacutetodo de la matriz

=Hoja l Al=Hoja2A9

Puede que encuentre uacutetil a ajusfar el zoom cuando trabaje con gran cantidad de datos

Para eliminar una foacutermula introducida en una matriz debe seleccionar x y eliminar todo el rango No podraacute por consiguiente eliminar w solamente una parte de eacutel

Meacutetodo 2 Utilizar el formato condicional

El segundo meacutetodo es normalmente el preferido ya que es maacutes sencillo hacer los cambios necesarios una vez que se realiza la comparacioacuten Sin embargo con este meacutetodo ambos conjuntos de datos deben estar en la misma hoja lo que significa utilizar la funcioacuten de copiar y pegar simple

De nuevo supondremos que estamos comparando los dos rangos que dijimos antes Seleccione el rango Al C7 comenzando por la celda A l de forma que nos aseguremos que sea la celda activa

Eacutey

^A

6 Trucos sobre foacutermulas y funciones 197

Una vez hecho esto vaya a FormatogtFormato condicional Elija la opcioacuten Foacutershymula en el cuadro de lista desplegable y al cuadro de texto situado su derecha escriba la siguiente foacutermula

=N0(A1=A9)

Haga clic en el botoacuten Formato (veacutease figura 62) y elija el formato con el que desea remarcar aquellas celdas que sean diferentes

31

A g r e g a r raquo j Eliminar | j Aceptar | Cancelar I

Figura 62 Cuadro de diaacutelogo de formato condicional

Haga clic en Aceptar y todas las celdas que sean diferentes tendraacuten el formato que definioacute en el paso anterior

Si real iza cambios en los da tos el f o r m a t o de las celdas cambia raacute automaacuteticamente dependiendo de si la comparacioacuten con las celdas de la otra tashybla es verdadera o falsa

B| Rellenar todas las celdas en blanco en una lista H bullbullKfl A m e n u d o m u c n a gente deja celdas en blanco si el dato que deben

I ^ H Iacute I contener es el mismo que el de la celda inmediatamente superior Visualmente esto hace que las listas sean maacutes sencillas de leer pero desde el punto de vista estructural no es una buena idea Con los trucos de este apartado podraacute rellenar las celdas en blanco de una lista de forma raacutepida y sencilla

Muchas de las funciones de Excel estaacuten disentildeadas para ser utilizadas en listas Para que la mayoriacutea de estas funciones hagan su trabajo correctamente las lisshytas no deben contener ninguna celda en blanco y los encabezados de las columshynas deben estar configurados con un formato diferente al de los datos

Cuando rellenar datos en Excel resulta una buena praacutectica asegurarse de que todas las celdas que estaacuten dentro de una lista tienen alguacuten valor dentro de ellas Sin embargo muchas listas estaacuten configuradas de forma similar a como se muesshytra en la figura 63

Mientras que los precios se repiten en la columna Coste los tipos de frutas en la columna Frutas no Como ya sentildealamos al principio del capiacutetulo 1 esto puede

_j p _ _ _ Vista previa del formato que desea usar cuando a condicioacuten sea verdadera AaBbCcYyZz

198 Excel Los mejores trucos

crear muchos problemas cuando se utilicen caracteriacutesticas tales como subtotales y tablas dinaacutemicas En la mayoriacutea de los casos Excel espera que los datos relacioshynados esteacuten configurados en una lista o tabla continua en la que no haya celdas en blanco

I ^ B C D E 1 F GTJ 1 Frutas Coste 2 Manzana 125 euro 3 125 euro 4 Plaacutetano 255 euro 5 255 euro 6 255 euro 7 Naranja 155 euro 8 155 euro 9 155 euro 10 Pera 455 euro 11 12 13 14 15 16 J 17 18

|H lt bull M Hojal Hoja2 Hoja3 |_ltj l HU

Figura 63 Lista de una hoja configurada con celdas en blanco

Existen dos meacutetodos para rellenar las celdas en blanco de una lista con una foacutermula y con una macro

Meacutetodo 1 Rellenar las celdas en blanco mediante una foacutermula

Digamos que tiene una lista con entradas en la columna A similar a la del ejemplo anterior y con una lista que contiene numerosas celdas en blanco A continuacioacuten mostramos un meacutetodo faacutecil y raacutepido para rellenar esas celdas en blanco con los valores de las celdas inmediatamente superiores

Seleccione todos los datos de la columna A vaya a Edicioacutengtlr a (Control-I) y luego haga clic en Especial Seleccione el botoacuten de opcioacuten Celdas en blanco y haga clic en Aceptar Llegados este punto hemos seleccionado solamente las celshydas vaciacuteas que se encuentran dentro de la lista Pulse la tecla = (signo de igual) y luego la tecla cursor arriba Ahora mientras mantiene pulsada la tecla Control pulse la tecla Intro Puede convertir raacutepidamente las foacutermulas a valores simpleshymente seleccionando la columna A por completo Vaya a EdicioacutengtCopiar (Con-trol-C) luego vaya a EdicioacutengtPegar especial active la casilla de verificacioacuten Valores y haga clic en el botoacuten Aceptar

6 Trucos sobre foacutermulas y funciones

Meacutetodo 2 Rellenar las celdas en blanco a traveacutes de una macro

Si va a tener que rellenar celdas en blanco con frecuencia deberiacutea considerar resolver este problema utilizando una macro La siguiente macro realiza todo este trabajo

Para crearla vaya a HerramientasgtMacrogtEditor de Visual Basic (AltOpcioacuten-Fl 1) luego seleccione la opcioacuten de menuacute lnsertargtMoacutedulo e introduzca el siguiente coacutedigo

Sub RellenarBIancos( ) Dim rRangel As Range rRange2 As Range Dim IReply As Integer

If SelectionCellsCount = 1 Then MsgBox Debe seleccionar la lista e incluir las celdas en blanco_ vblnformation Aviso ~~ Exit Sub

Elself SelectionColumnsCountgtl Then MsgBox Debe seleccionar soacutelo una columna _ vblnformation Aviso Exit Sub

End If

Set rRangel = Selection

On Error Resume Next

Set rRange2 = rRangelSpecialCells(xlCellTypeBlanks) On Error GoTo 0

If rRange2 Is Nothing Then MsgBox No se encontraron celdas en blanco _

vblnformation Informacioacuten Exit Sub

End If

rRange2FormulaRICl = =R[-1]C

IReply = MsgBox(iquestConvertir a valores vbYesNo + vbQuestion Atencioacuten)

If IReply = vbYes Then rRangel = rRangelValueacute End Sub

Despueacutes de introducir este coacutedigo cierre la ventana para volver a la ventana

principal de Excel y guardar el trabajo Ahora vaya a HerramientasgtMacrogtMacros

(AltOpcioacuten-F8) seleccione la macro RellenarBIancos y haga clic en el botoacuten

Ejecutar aunque tambieacuten puede utilizar el botoacuten Opciones y asignar esta macro

a una tecla de acceso raacutepido

200 Excel Los mejores trucos

Q H Q Hacer que las foacutermulas se incrementen por filas | V ^ f l cuando las copie a lo largo de las columnas

^ M B B M La funcioacuten de Excel que incrementa automaacuteticamente las referencias a celdas funciona bastante bien en la mayoriacutea de los casos pero a veces desearaacute cambiar la forma en la que lo hace

Por ejemplo puede que desee hacer referencia a una uacutenica celda como puede ser A l y luego copiar esta referencia a lo largo de las columnas que hay a la derecha Normalmente Excel cambiaraacute la referencia de la siguiente forma = B1 = C1 =D1 etc lo cual no es el resultado que deseamos En este caso queremos que las foacutermulas se incrementen por filas en vez de por columnas es decir =A1 =A2 =A3 etc Por desgracia no hay una opcioacuten en Excel que le permita hacer esto Pero podemos conseguir realizar todo esto mediante la funcioacuten INDIRECTO y la funcioacuten DIRECCIOacuteN situada dentro del anterior

Quizaacute la mejor forma de explicar coacutemo crear la funcioacuten requerida es utilizar un ejemplo en el que los resultados sean predecibles En las celdas Al A10 introshyduzca los nuacutemeros del 1 al 10 en este orden Seleccione la celda DI e introduzca la siguiente foacutermula en ella

= INDIRECTO(DIRECCIOacuteN(COLUMNA() - 31) )

Tan pronto como introduzca esto el nuacutemero 1 deberiacutea aparecer en la celda d i Esto es debido a que la foacutermula hace referencia a la celda A l

Si copia esta foacutermula a lo largo de las columnas situadas a la derecha la celda El contendraacute el nuacutemero 2 Es decir a pesar de que estamos copiando a lo largo de las columnas la referencia de la foacutermula se estaacute incrementando por filas tal y como se muestra en la figura 64

Este meacutetodo es especialmente uacutetil cuando una hoja de caacutelculo tiene encabezados que van de arriba a abajo en una columna y desea crear una referencia dinaacutemica a esos encabezados de fila a lo largo del resto de columnas

Si sigue copiando esto hacia la derecha la celda Fl contendraacute el nuacutemero 3 la celda Gl contendraacute el nuacutemero 4 etc Eacuteste es un proceso muy faacutecil de seguir si solamente se hace referencia a una uacutenica celda Pero muchas veces necesitaraacute hacer referencia a un rango de celdas que estaacute siendo utilizado como argumento de una funcioacuten Utilizaremos la popular funcioacuten SUMA para demostrar a queacute nos referimos Suponga que recibe una larga lista de nuacutemeros y su trabajo es sumar la columna de nuacutemeros para obtener un total algo parecido a esto

=SUMA($A$1$A$2) =SUMA($A$1$A$3) y =SUMA($A$1$A$4)

6 Trucos sobre foacutermulas y funciones 201

IB Microsoft Excel -Libro bull-bull 1- WMSSU^^^^^M

41 J Aria

LU 1 2

3 4 5 6 7 8 9 10 11 12 13 14 15

16 17 18 19

illaquo 4

Listo

Archivo

J d

D1

A

Edicioacuten

J _J

1

2

3 4 5 6 7 8 9

10

Ver Insertar Formato Herramientas Datos Ventana

j Jk U -J ^ - 9 Iacuteiquest s - iquest1 M ioo iacute o N J s i i i ^ j ooo euro oE bdquodeg8 m O - gt

pound =INDIRECTO(DIRECCION(COLUMNA0-31))

B C ~~ D I

1 1

E F G

2

bull H Hojal Hoja2 X H o j a 3 j lt j |

MAYUacuteS NUM

~ _ _

mdash

^ bull i r

Figura 64 El resultado de copiar la celda DI a la celda El

El problema surge porque los resultados necesitan ser dinaacutemicos y expandirse a lo largo de las 100 columnas solamente para la fila 1 no 100 filas hacia abajo en otra columna (como suele ser lo habitual)

Naturalmente podriacutea escribir manualmente esas funciones en cada celda individual pero eso seriacutea un trabajo m u y largo En vez de eso puede utilizar el mismo principio el que hemos utilizado antes al referenciar a una uacutenica celda

Rellene el rango A l A l 0 0 con los nuacutemeros 1 al 100 en este orden Para ello introduzca un 1 en la celda A l seleccioacutenela y mientras mantiene pulsada la tecla Control haga clic en el pequentildeo recuadro de la esquina inferior derecha y arrasshytre el cursor del ratoacuten hasta la fila 100 Ahora seleccione la celda DI e introduzca la siguiente foacutermula

=SUMA(INDIRECTO(DIRECCIOacuteN(11) amp amp DIRECCIOacuteN (COLUMNA () -21) ) )

Esto le daraacute un resultado de 3 que se corresponde con la suma de las celdas A1A2 Copie esta foacutermula en la celda El y obtendraacute un resultado de 6 que se corresponde con la suma de las celdas AlA3 De igual manera al copiar la foacutershymula en la celda Fl obtendraacute un resultado de 10 que es la suma de las celdas A1A4 (veacutease figura 65)

202 Excel Los mejores trucos

B Microsoft Excel - Libro 1 ^muuml

iquestsectj Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana T f l x

J J J J J J i ^ a iquest -J ^ - ^ 9 amp pound - H Uuml JjJJ 4gt 1007o v |

Arial - 10 - N iT S ^ W M ^j ^J 000 euro t bdquodeg8 pound^ D T ^ T A T |

DI ^ ^ =SUMA(INDIRECTQ(DIRECCION(11)ampampD1RECCIQM(CQLUMNAO-21)))

2 3 4 5 6 7 8 9 10 11 12 13 14

1Fiexcl H i bull Listo

H

1 2 3 4 5 6 7 8 9

10 11 12 13 14 15

Hojal Hoja2 XHoja3

B C D I E F G H 6 10

i r

Figura 65 Resultado de copiar la celda DI en la celda Fl

La funcioacuten volaacutetil COLUMNA hace que la uacutel t ima referencia a celdas se incremente en un 1 cada vez que la copia en una nueva columna Esto es debido a que la funcioacuten COLUMNA siempre devuelve el nuacutemero de la columna (no la letra) de la celda que la contiene a menos que haga referencia a una celda difeshyrente

Otra alternativa es utilizar la funcioacuten Pegado especialgtTrasponer de Excel Antildeada la foacutermula =SUMA ($A$1 $A2) a la celda Bl (observe que hemos utilizado una referencia relativa a fila y absoluta a columna en $A2) y luego copie esta foacutermula hacia abajo hasta la celda B100 Teniendo seleccionadas las celdas B2B100 coacutepielas seleccione la celda DI (o cualquier celda que tenga 100 o maacutes columnas a la derecha) y luego vaya a EdicioacutengtPegado especialgtTrasponer Si lo desea puede eliminar las foacutermulas que hay en B2B100

Convertir fechas en fechas con formato de Excel Las fechas que se importan desde otros programas suelen causar problemas en Excel Mucha gente reescribe manualmente esas fechas pero existen meacutetodos maacutes sencillos para solucionar este problema

Como puede verse en la figura 66 las foacutermulas en la columna B convierten los datos situados en la columna A en tres resultados en la columna C todos ellos siguiendo el formato de fecha americano de mmdd aa

La figura 67 muestra el mismo meacutetodo excepto que las celdas de la columna C tienen el formato de fechas europeo (ddmmaa)

6 Trucos sobre foacutermulas y funciones 203

B Fecha antigua Foacutermula utilizada Resultado 112303 =IZQUIERDA(A2iexcl2)ampTampEXTRAE(A232)amp7ampDERECHA(A22) 112303 031123 =EXTRAE(A332)amp7ampDERECHA(A32)amp7ampIZQUIERDAfA3iexcl2) 11 23D3 231103 = EXTRAE (A4 3 2) amp ampIZQ UIE R D A(A42) amp7 ampD E R E C H A(A4 2) 11 23D3

Figura 66 Formatos de fecha convertidos en fechas vaacutelidas (formato americano)

A B C Fecha antigua Foacutermula utilizada Resultado 112303 =EXTRAEIacuteA232)amp7ampIZQUIERDAIacuteA2iexcl2)amp7ampDERECHA(A22) 2311 03 031123 =DERECHAfA3iexcl2)amp7ampEXTRAEiacuteA3iexcl32)amp7ampIZQUIERDAfA3iexcl2J 2311 flB 231103 = IZQ UIE R D A(A4 2) amp7 ampEXTR AE (A4 3 2) amp7 ampD E R E C H A(A4 2) 2311 03

Figura 67 Formatos de fecha convertidos en fechas vaacutelidas (formato europeo)

Por suerte estas interesantes foacutermulas nos quitaraacuten algo de estreacutes a la hora de trabajar con fechas importadas

Sumar o contar celdas evitando valores de error Los valores de error son advertencias muy uacutetiles pero a veces desearaacute hacer los caacutelculos sin tener en cuenta esos errores Para poder hacer esto tendremos que utilizar funciones que sean tolerantes a dichos errores

Teniendo un rango de celdas que contienen uno o maacutes valores de error la mayoriacutea de las foacutermulas que hagan referencia a ese rango tambieacuten devolveraacuten un valor de error Podemos evitar esta frustracioacuten si utilizamos la funcioacuten BDSUMA

Supongamos que tiene una larga lista de nuacutemeros de los que desea obtener la suma total Sin embargo una de las celdas por cualquier razoacuten estaacute devolvienshydo un valor de error NA

Rellene algunos datos de la misma forma que aparecen en la figura 68

Para generar el error NA introduzca la foacutermula =NA () en las celdas A2 y B2 La celda Al 2 utilizar la funcioacuten estaacutendar SUMA que suma los valores de las celdas A2A11 y dado que la celda A2 contiene el error NA la funcioacuten SUMA tambieacuten devolveraacuten dicho error Al rango DI D2 se le ha dado el nombre Criterio y se utiliza como uacuteltimo argumento para la funcioacuten BDSUMA que se encuentra en la celda B12

La sintaxis para la funcioacuten BDSUMA (y para todas las funciones de base de datos) es la siguiente

=BDSUMA(base de datoscampocriterio)

204 Excel Los mejores trucos

1 2 3 4 5 6 7 8 9 10 11 12

A Nuacutemeros

NA

B Nuacutemeros2

1 2 3 4 5 6 7 8 9

NA 1 2 3 4 5 6 7 8 9

C

Figura 68 Datos rellenados de forma que generan un error NA

El argumento base de datos identifica al rango de celdas que componen la lista o la base de datos Dentro del rango de base de datos las filas con informashycioacuten son tratadas como registros mientras que las columnas son tratadas como campos

La primera fila contiene etiquetas para todas las columnas que sirven a modo de encabezados

El argumento campo indica queacute columna es utilizada en la funcioacuten La coshylumna puede ser identificada por el nombre utilizando las etiquetas que se enshycuentran en la parte superior de la columna o bien puede ser identificada por su posicioacuten La primera columna es la 1 la cuarta es la 4 etc

El argumento criterio identifica un rango de celdas que contienen condicioshynes El rango que se utiliza para el criterio debe incluir al menos una etiqueta de columna ademaacutes de al menos una celda por debajo de ella que especifique una condicioacuten para la columna

Si los datos que desea sumar contienen diferentes tipos de errores deberaacute conshysiderar utilizar la funcioacuten BDSUMA junto con un amplio rango de criterios que se acomoden a todos los posibles errores Sin embargo lo mejor siempre es enshyfrentarse a los errores en su origen y eliminarlos siempre que sea posible en vez de evitarlos

Si de todas formas desea evitar esos errores utilizaremos la funcioacuten BDSUMA pero esta vez necesitaremos configurar un criterio que se extienda por cuatro columnas expandiendo el rango con nombre que contiene el criterio para que incluya las celdas D1G2

Para ello utilizaremos la opcioacuten lnsertargtNombregtDefinir tal y como se muesshytra en la figura 69

Excel dispone de un rico conjunto de funciones de base de datos y puede ut ishylizar cualquiera de ellas de la misma forma Por tanto considere utilizar este meacutetodo pa ra las funciones BDCONTAR BDCONTARA BDMAX BDMIN BDPRODUCTO etc

6 Trucos sobre foacutermulas y funciones 205

m Microsoft Excel - LibroZ

bullM]iexcl Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana - ff X

Times New Romaacuten 1 0 - N K S s = s ^| fsect 000 euro oo o i^ W O

B12 ^ pound ^SUMA(SI(RE5IDUQ(F1LA($A$1$A$500)2)=0iexclA$ 1A$5000))

Nuacutemerosl Nuacutemeros2

NA r NA

1

2

3

4

5

6

7

8

9

-

9 10 11

iexcl 121 NA ^ 13 14 15 16 17 18 19 20 t i

lt lt bull bull l H o j a l H o j a 2 H o j a 3 _

Esta celda ha usado | la Funcioacuten estaacutendar SUMA lo que produce un error porque A2 no tiene valor

D

Nuacutemeros2 X A estas celdas se las ha llamado Criterio

Esta celda contiene una foacutermula BDSUMA que usa el rango Criterio para ignorar cualquier error de tipo NA

bull i r

Figura 69 La funcioacuten BDSUMA utilizada para ignorar diferentes errores

Reducir el impacto de las funciones volaacutetiles a la hora de recalcular Las funciones volaacutetiles que deben ser recalculadas cada vez que el usuario realiza una accioacuten en Excel pueden consumir una gran cantidad de tiempo Aunque estas funciones son muy uacutetiles para descartarlas por completo existen algunos meacutetodos para reducir los tiempos de espera que generan

Una funcioacuten volaacutetil es simplemente una funcioacuten que debe recalcularse cada vez que se realiza una accioacuten en Excel como puede ser introducir datos cambiar el ancho de las columnas etc (una de las pocas acciones que no provocaraacuten un recaacutelculo de las funciones volaacutetiles es la de cambiar el formato de las celdas a menos que lo haga a traveacutes de la opcioacuten Pegado especialgtFormatos)

Probablemente dos de las funciones volaacutetiles maacutes conocidas son HOY y AHORA Dado que la primera devuelve la fecha actual y la segunda la fecha y la hora actual es importante que ambas tengan que recalcularse a menudo Si tiene una hoja de caacutelculo que contienen muchas funciones volaacutetiles probablemente estaraacute obligando a Excel a realizar muchos caacutelculos innecesarios de forma continua Este problema puede ser peor cuando tiene funciones volaacutetiles que estaacuten anida-

206 Excel Los mejores trucos

das dentro de funciones no volaacutetiles ya que en esos casos la foacutermula entera se convertiraacute en volaacutetil

Para entender lo que estamos hablando supongamos que tiene una hoja de caacutelculo que estaacute utilizando la funcioacuten HOY dentro de una tabla compuesta por 20 columnas y 500 filas Esto significa que tiene 10000 funciones volaacutetiles en el libro cuando en realidad una sola podriacutea realizar el mismo trabajo En vez de anidar 10000 funciones HOY dentro de cada una de las celdas de la tabla en muchos casos podraacute introducir simplemente la funcioacuten HOY en una celda que esteacute aparte darla el nombre FechaHoy (o bien utilizar el identificador de la celshyda) y luego hacer referencia a FechaHoy en todas las funciones de la tabla

(i Una forma raacutepida y sencilla para hacer esto es seleccionar toda la N tabla y luego ir a EdicioacutengtReemplazar para reemplazar el texto HOYO

x por FechaHoy en todas las foacutermulas

Ahora ya tenemos una sola funcioacuten HOY en vez de las 10000 que tendriacutea de la otra forma Para poner otro ejemplo digamos que las 500 primeras filas de la columna B estaacuten rellenadas con foacutermulas relativas como =H0Y () -Al y las prishymeras 500 filas de la columna A tienen diferentes fechas que son menores que la fecha de hoy Estamos obligando a Excel a recalcular la funcioacuten volaacutetil HOY 499 veces maacutes de lo necesario cada vez que realiza cualquier accioacuten en Excel Si coloshyca la funcioacuten HOY en cualquier celda a la que le da el nombre FechaHoy (o cualquier otro nombre similar) puede utilizar la foacutermula = FechaHoy-Al en vez de lo anterior Con esto Excel soacutelo necesitaraacute recalcular una vez la aparicioacuten de la funcioacuten HOY lo cual mejoraraacute considerablemente el rendimiento de la aplicacioacuten

^^^Q Contar solamente una aparicioacuten de cada entrada sect K j 5 J de una lista

M B Cuando tiene una larga lista de elementos puede que desea realizar la cuenta de los elementos pero sin tener incluir aquellas entradas que aparezcan en varias ocasiones Con este truco podraacute contar cada entrada uacutenica solamente una vez

Observe la lista que aparece en la siguiente figura que ha sido ordenada de forma que pueda ver las entradas repetidas faacutecilmente Un conteo normal de esta lista (utilizando la funcioacuten CONTARA) resultariacutea en que los nombres Marta Dashyvid Laida y Ana fueran contados maacutes de una vez La funcioacuten BDCONTARA ofreshyce una alternativa que resulta m u y eficiente y faacutecil de modificar La sintaxis de esta funciones la siguiente

=BDCONTARA(base de datoscampocriterio)

6 Trucos sobre foacutermulas y funciones 207

A 1 Nombres 2 David 3 Al ex 4 Ana 5 Marta 6 Ana 7 Santos 8 Laida 9 Mar 10 Luis 11 David 12 Laida 13 Aacutengel 14 Marta 15 Carolina 16 Marta 17 18

B

Figura 610 Rango con nombres ordenados

^v Los argumentos para esta funcioacuten son los mismos que para la funcioacuten w^ BDSUMA que ya vimos anteriormente

A partir de la lista anterior introduzca en la celda DI la palabra Criterio (o cualquier encabezado que no sea igual que el de una columna un campo) Debajo de eacuteste en la celda D2 introduzca la siguiente foacutermula

=CONTARSI($A$2A2A2)=1

Observe la combinacioacuten de referencias relativas (A2) y absolutas ($A$2) Esto resulta vital para que el criterio pueda funcionar

Ahora en la celda de la que desea mostrar el resultado introduzca la siguienshyte funcioacuten

=BDCONTARA($A$1$A$10 01$D$1$D$2)

Utilizaraacute el criterio para excluir los duplicados y proporcionar el resultado que necesitamos que en este caso es 10 ya que solamente hay ese nuacutemero de nombres uacutenicos

Sumar cada dos tres o cuatro filas o celdas Es probable que desee sumar cada segunda tercera cuarta etc celda de una hoja de caacutelculo Ahora es posible si utiliza el siguiente truco

Excel no dispone de una funcioacuten estaacutendar que sume cada cierto nuacutemero de celdas o filas Sin embargo podemos llevar a cabo esta tarea de diferentes for-

208 Excel Los mejores trucos

mas Todas ellas utilizan la funcioacuten FILA y la funcioacuten RESIDUO La primera la funcioacuten FILA devuelve el nuacutemero de fila de la referencia a una uacutenica celda Lo vemos

FILA(referencia)

La funcioacuten RESIDUO devuelve el resto de dividir un nuacutemero por otro

RESIDUO(nuacutemerodivisor)

Se anida la funcioacuten FILA dentro de la funcioacuten RESIDUO (en el lugar del argushymento nuacutemero) se divide por 2 (para sumar cada dos celdas) y se comprueba que el resultado es 0 (cero) Si lo es entonces la celda es sumada

Puede utilizar estas funciones de diferentes formas (consiguiendo mejores reshysultados utilizando unas en vez de otras) Por ejemplo una foacutermula matricial que sume cada dos celdas en el rango $A$1$A$100 tendriacutea esta forma

=SUMA(SI(RESIDUO(FILA($A$1$A$500)2)=0$A$1$A$5000))

Dado que esto es una foacutermula matricial debe introducirla usando Control-Mayuacutes-Intro Al hacer esto Excel introduciraacute unas llaves quedando la foacutermula de esta forma

=SUMA(SI(RESIDUO(FILA($A$1$A$50 0)2)=0$A$1$A$5000))

Debe permitir que Excel introduzca estas llaves ya que si lo hace por su cuenta haraacute que la foacutermula falle

Aunque este meacutetodo funciona no resulta un disentildeo de hoja de caacutelculo ideal ya que estamos utilizando sin necesidad una foacutermula matricial Para complicar maacutes las cosas estamos utilizando la funcioacuten volaacutetil FILA anidada dentro de ella haciendo que toda la foacutermula matricial sea volaacutetil Esto significa que la foacutermula tiene que ser recalcular constantemente mientras estaacute trabajando en el libro Por ello no resulta el mejor camino a seguir

A continuacioacuten mostramos otra foacutermula que podriacutea utilizar siendo eacutesta una mejor eleccioacuten

=SUMAPRODUCTO((RESIDUO(FILA($A$1$A$500)2)=0)($A$1$A$500))

Deberiacutea tener en cuenta de todas formas que esta foacutermula devolveraacute iexclVAshyLOR si alguna de las celdas del rango contiene texto en vez de nuacutemeros Esta foacutermula aunque no es una verdadera foacutermula matricial tambieacuten ralentizaraacute Excel si se utilizan muchas instancias de ella o si esas instancias hacen referencia a grandes rangos

S

6 Trucos sobre foacutermulas y funciones 209

Por suerte existe un meacutetodo mucho mejor que no soacutelo es maacutes eficiente sino que ademaacutes es maacutes flexible Este meacutetodo requiere del uso de la funcioacuten BDSUMA Para este ejemplo utilizamos el rango A1A500 como el rango que usaremos para sumar cada cierto nuacutemero de celdas

Introduzca el texto Criterio en la celda El y en la celda E2 introduzca la siguiente foacutermula

= R E S I D U O ( F I L A ( A 2 ) - $ C $ 2 - 1 $ C $ 2 ) = 0

Seleccione la celda C2 y luego vaya a DatosgtValidacioacuten Seleccione la opcioacuten Lista en el cuadro de lista desplegable y en el cuadro de texto Origen escriba 12345678910 Aseguacuterese de que estaacute activada la casilla de verificacioacuten Celda con lista desplegable y entonces haga clic en Aceptar En la celda Cl introduzca SUMAR cada y en cualquier otra celda a partir de la fila 1 introduzca esta forma

= B D S U M A ( $ A $ A 1 $ E $ 1 $ E $ 2 )

En la celda inmediatamente superior a la que introdujo la funcioacuten BDSUMA introduzca esto

=Sumando cada amp $C$2 amp celdas

Ahora todo lo que tiene que hacer es elegir el nuacutemero deseado en la celda C2 y la funcioacuten BDSUMA haraacute el resto

Como puede ver en la figura 611 puede utilizar una funcioacuten BDSUMA para sumar cada celda con el intervalo que haya especificado Esta funcioacuten es mucho maacutes eficiente que una foacutermula matricial o que la funcioacuten SUMAPRODUCTO Aunque su configuracioacuten puede ser algo maacutes compleja merece la pena el esfuershyzo para obtener los resultados

Encontrar la eneacutesima aparicioacuten de un valor Las funciones de buacutesqueda incorporadas en Excel pueden hacer un trabajo estupendo pero desgraciadamente Excel no dispone de una uacutenica funcioacuten que devuelva la eneacutesima aparicioacuten de un dato especificado Por suerte existen algunos meacutetodos para que Excel pueda hacer esto

Puede utilizar las funciones de buacutesqueda y de referencia de Excel sobre una tabla de datos para extraer los detalles correspondientes a un valor especiacutefico Quizaacute la maacutes popular de todas esas funciones sea BUSCARV Aunque es estupenda para encontrar un valor especiacutefico en la columna maacutes a la izquierda de una tashybla no puede utilizarla para encontrar la eneacutesima aparicioacuten de dicho valor en la columna maacutes a la izquierda

m

210 Excel Los mejores trucos

1 2 3 4 5 6 7 3 9

A Nuacutemeros

500 euro 750 euro

2345 euro 1000 euro 996 euro 600 euro

B C |

I

I Sumando cada 3 celdas 3546 euro

D E Criterio

FALSO ^-

Esta celda no puede tener el mismo encabezado que la de nuacutemeros

Figura 611 Posible resultado final con formato

Sin embargo podemos utilizar un meacutetodo m u y simple para encontrar cualshyquier aparicioacuten de un valor especiacutefico utilizando la funcioacuten BUSCARV o una de las otras funciones de buacutesqueda

Para este ejemplo supondremos que tiene una tabla con dos columnas de datos siendo la columna A la que contiene los nombres y la columna B las edashydes correspondientes a cada uno de ellos tal y como se muestra en la figura 612

1 A 1 Nombre

2 Antonio 3 Alex 4 Ana 5 Marta 6 Juan 7 Santos 8 Laida 9 Mar 10 Luis 11 David 12 Laida 13 Aacutengel 14 Sol 15 Carolina 16 Concha 17 Aitana 18 Rodrigo 19 Agustiacuten 20

B Edad

32 30 23 36 25 30 31 30 28 23 33 45 28 29 30 38 29 19

C

Figura 612 Datos configurados para ser usados por la funcioacuten BUSCARV

Puede utilizar la funcioacuten BUSCARV para extraer la edad de una persona bashysaacutendose en su nombre Por desgracia algunos nombres puede que aparezca maacutes de una vez Lo que deseamos es poder buscar el nombre de David y hacer que la funcioacuten BUSCARV no soacutelo encuentra la primera aparicioacuten sino tambieacuten todas las demaacutes que pudiera haber A continuacioacuten veremos coacutemo podemos hacer esto (recuerde que en este ejemplo los datos estaacuten en las columnas A y B)

Primeramente seleccione la columna A por completo haciendo clic en la letra A que aparece en su encabezado y luego seleccione la opcioacuten lnsertargtColumnas para insertar una nueva columna en blanco (que se convertiraacute en la nueva co-

6 Trucos sobre foacutermulas y funciones 211

lumna A) Luego haga clic en la celda A2 (no saltamos Al porque Bl es un encashybezado) e introduzca la siguiente foacutermula

=B2ampC0NTARSI($B$2B2B2)

Propague esta foacutermula hacia abajo tantas filas como datos tenga en la columshyna B (para ello haga clic en la celda A2 y luego haga doble clic sobre el pequentildeo recuadro negro de la esquina inferior derecha) Acabaraacute teniendo en la columna A nombres tales como Davidl David2 David3 etc como puede verse en la fishygura 613 Observe la referencia absoluta para $B$2 en la funcioacuten CONTARSI y el uso de una referencia relativa para todas las referencias Esto es fundamental para que la funcioacuten haga su trabajo correctamente

A 1

bull 2 Arito ni oiacute iexcl 3 Alex | 4 Davidl 1 5 Marta [ 6 David2 I 7 Santosl

8 Laida 9 Mariacuteal 10 Luisl 11 David3 12 Carlos 13 Angeliacute 14 Alex2 15 Carolina 16 Angel2 17 Aitanal 18 Marta2 19 Agustiacutenl

[ 20

B Nombre Antonio Alex David Marta David Santos Laida Mar-Luis David Laida Aacutengel Alex Carolina Aacutengel Altana Marta Agustiacuten

C Edad

32 30 23 36 25 30 31 30 28 23 33 45 28 29 30 38 29 19

D

Figura 613 Datos obtenidos con la foacutermula BUSCARV recieacuten antildeadida a la columna A

Si no se ha dado cuenta todaviacutea observe que puede utilizar la columna A para encontrar las ocurrencias de un cierto nombre

Haga clic en la celda D2 e introduzca la siguiente foacutermula

= BUSCARV(David3$A$1$ C$10 03FALSE)

La foacutermula le devolveraacute la edad de la tercera aparicioacuten del nombre David tal y como puede verse en la figura 614

Por supuesto puede ocultar la columna A ya que no es necesario verla Tambieacuten puede utilizar los nombres de la columna A como rango de origen

para una lista situada en otra celda seleccionando la opcioacuten DatosgtValidacioacuten y luego eligiendo la opcioacuten Lista Luego haga una referencia a la celda que contenshyga esta lista en la funcioacuten BUSCARV

212 Excel Los mejores trucos

i pound

M 2 Antoniol

1 3 Alex 4 David1

| 5 Marta I 6 David2

7 Santosl I 8 Laida 9 Mariacutea 1

l O L u i s I i 11 J0avid3 12 IacuteCarlos 13 Angefl Iacute4_Alex2

15 _ Cardinal 16 Angel2 17 Aitanal 18 Marta2 19 Aqustiacutenl 20

B C Nombre Edad Antonio Alex David Marta David Santos Laida Mar Luis-David Laida Aacutengel Alex Carolina Aacutengel Aitana Marta Agustiacuten

32 30 23 36 25

30 31 30 28 23 33 45 28 29 30 38 29 19

D

23

E

Figura 614 Datos obtenidos con la segunda foacutermula BUSCARV antildeadida a la columna D

TRUCO Hacer que la funcioacuten subtotal de Excel sea dinaacutemica Aunque la funcioacuten SUBTOTALES es una de las funciones de Excel maacutes recomendables a veces desearaacute poder elegir queacute operacioacuten realiza o aplica a aquellos datos que pueden expandirse y contraerse

La funcioacuten SUBTOTALES de Excel se utiliza para realizar una funcioacuten especiacuteshyfica sobre un rango de celdas que tienen configurado un Autofiltro En estos casos la funcioacuten SUBTOTALES soacutelo utilizaraacute las celdas visibles (las celdas ocultas son ignoradas) La operacioacuten que realiza esta funcioacuten depende solamente del nuacuteshymero (entre 1 y 11) que proporcione como primer argumento (nuacutem_funcioacuten) Por ejemplo

= SUBTOTALES(1AlAl0 0)

Calcula el promedio de todas las celdas visibles en el rango Al A100 despueacutes de que se haya aplicado un Autofiltro Si todas las filas son visibles esta funcioacuten simplemente obtendraacute el promedio de todas ellas al igual que lo hariacutea la funcioacuten

=PROMEDIO(Al A100)

El nuacutemero que ha de proporcionarse como primer argumento de la funcioacuten SUBTOTALES es nuacutem_funcioacuten y que se corresponde con las funciones que se muestran en la siguiente tabla

6 Trucos sobre foacutermulas y funciones 213

Tabla 61 Nuacutemeros de funcioacuten para SUBTOTALES y su correspondiente funcioacuten

Nuacutenijimcioacuten

1

2

3

4

5

6

7

8

9

10

11

Funcioacuten

PROMEDIO

CONTAR

CONTARA

MAX

MIN

PRODUCTO

DESVEST

DESVESTP

SUMA

VAR

VARP

Dado que tiene que utilizar un nuacutemero entre 1 y 11 puede tener una funcioacuten SUBTOTALES que realice cualquier funcioacuten que elija Incluso puede elegir a parshytir de una lista desplegable que se encuentre en cualquier celda Veamos coacutemo podemos hacer esto

Introduzca todos los nombres de funcioacuten en el mismo orden en el que apareshycen en la tabla 61 en un rango de celdas Para este ejemplo utilizaremos el rango D l i D l l Teniendo seleccionado dicho rango haga clic en el Cuadro de nombres situado en la parte superior izquierda de la ventana (a la izquierda de la barra de foacutermulas) y escriba el nombre Subs Luego pulse In t ro

Seleccione la columna D completamente y luego seleccione la opcioacuten For-matogtColumnagtOcultar Ahora seleccione la opcioacuten VergtBarras de herramientasgt Formularios haga clic sobre el icono Cuadro combinado y haga clic en la celda C2 Cambie el tamantildeo del cuadro de lista desplegable utilizando los pequentildeos cuadros negros que aparecen alrededor del control de forma que quepa el nomshybre maacutes largo de funcioacuten (en nuestro caso PRODUCTO)

Para hacer que el cuadro de lista desplegable se ajuste automaacuteticamente ^ al tamantildeo de la columna y la fila en la que reside mantenga pulsada

^ la tecla Alt mientras cambia el tamantildeo del control

214 Excel Los mejores trucos

Haga clic con el botoacuten derecho en el cuadro de lista desplegable y elija la opshycioacuten Formato de control y luego vaya a la pestantildea Control En el rango de entrashyda escriba Subs y en la celda vinculada escriba $C$2 Cambie tambieacuten el nuacutemero de liacuteneas a mostrar en la lista desplegable a 11 Cierre el cuadro de diaacutelogo y en la celda C3 escriba la siguiente foacutermula

=SI($C$2=Resultado de amp IacuteNDICE(Subs$C$2))

En la celda C4 introduzca la siguiente foacutermula

=SI($C$2=raquoraquoSUBTOTALES($C$2$A$4$A$10 0))

donde $A$4$A$100 es el rango sobre el que debe actuar la funcioacuten SUBTOshyTALES

Ahora todo lo que necesita hacer es seleccionar la funcioacuten SUBTOTALES en el cuadro de lista desplegable con lo que se mostraraacute el resultado correspondiente tal y como se muestra en la figura 615

1

2 3 4 7 9 10 11

A

Valoi 55421 euro 50032 euro

]

j d

B c i Elija una funcioacuten SUBTOTALES

[PROMEDIO bull |

iexclResultado de PROMEDIO I 52727 euro

E

Figura 615 Una funcioacuten SUBTOTALES ajustable

TRUCO Antildeadir extensiones de fecha Los formatos de fechas de Excel consisten en diferentes formas que pueden ser utilizadas para mostrar una fecha Sin embargo un formato que siempre se ha echado de menos en Excel (por los angloparlantes) es aquel capaz de mostrar una fecha al estilo 15th October 2003 Podemos conseguir que Excel haga esto en caso de que lo necesitemos

Este truco estaacute orientado a aquellas personas que utilicen la versioacuten Sy en ingleacutes de Excel que tengan establecida la configuracioacuten regional de

w su sistema operativo en ese mismo idioma y deseen utilizar este formato de fechas cuando creen hojas de caacutelculo que esteacuten orientadas al puacuteblico angloparlante

La posibilidad de mostrar el sufijo th despueacutes del nuacutemero 15 por ejemplo es algo que Excel no contempla en sus formatos de fecha Peor auacuten no es posible

6 Trucos sobre foacutermulas y funciones 215

configurar un formato personalizado para mostrar las fechas de esta manera Aunque muchas personas simplemente aceptan que esto no es posible mostrashyremos un meacutetodo para poder llevarlo a cabo

En una hoja en blanco comenzando por la celda A l introduzca los siguientes datos en las siguientes celdas A l = s t A2=nd A3=rd A4A20=th A21=st A22=nd A23=rd A24A30=th A31=st

Asigne el nombre Extensiones a este rango luego vaya a lnsertgtNamegtDefine y en el cuadro de texto Ntildeames in Workbook escriba HoyPersonalizado

En el cuadro de texto Refers To introduzca la siguiente foacutermula

=TEXT(TODAY()dddd dn) amp INDEX(ExtensionesDAY(TODAY())1) amp TEXT(TODAY() mmmm yyyy)

Luego haga clic en Add y en OK Ahora en cualquier celda introduzca = H o y P e r s o n a l i z a d o y la fecha actual

se mostraraacute con el formato ThursDay l oacute t h October 2003 Si prefiere utilizar celdas en la hoja para almacenar las extensiones de fecha

(es decir th st rd y nd) puede utilizar la funcioacuten CHOOSE para almacenarlas Para ello vaya a lnsertgtNamegtDefine y en el cuadro de texto Ntildeames in Workbook introduzca la palabra Dia En el cuadro de texto Refers to introduzca la sishyguiente foacutermula

=DAY(TODAY( ))

Haga clic en Add Vuelva al cuadro de texto Ntildeames in Workbook e introduzca el texto HoyPersonalizado

En el cuadro de texto Refers to introduzca la siguiente foacutermula y luego haga clic en el botoacuten Add

=TEXT(TODAY()dddd d)ampIF(Day=31stIF(Day=3 0th CHOOSE(Diastndrdthth thththththththththththththth th st nd rd th thth th thth) ) )amp TEXT(TODAY( ) mmmm yyyy)

Despueacutes de hacer clic en OK puede introducir la foacutermula =HoyPersonal izado en cualquier celda en la que desee mostrar este formato de fecha

La fecha devuelta por cualquiera de estas funciones no seraacute una fecha numeacuterica verdadera tal y como suele hacer Excel sino que simplemente seraacute una entrada de tipo texto Esto significa que no podraacute hacer referencia a esta celda en una foacutermula que esteacute esperando un dato numeacuterico

216 Excel Los mejores trucos

TRUCO Convertir nuacutemeros con signo negativo a la derecha a nuacutemeros de Excel iquestHa tenido que trabajar alguna vez con nuacutemeros negativos importados que tienen el signo negativo a la derecha SAP es uno de esos programas que hacen este tipo de cosas con los nuacutemeros (200-en vez de -200) Tener que cambiar esto a mano de forma que Excel pueda entenderlos es tedioso pero no tiene por queacute ser necesariamente asiacute

Supongamos que tiene una larga lista de nuacutemeros que acaba de importar y que algunos de ellos estaacuten en el formato que acabamos de describir Nuestro trabajo consistiraacute en convertir esos nuacutemeros en valores negativos que Excel pueshyda reconocer Para los propoacutesitos de este ejercicio utilizaremos el rango Al A100 Coloquacuteese en la celda B l e introduzca la siguiente foacutermula

=SUSTITUIR(SI(DERECHA(ESPACIOS(Al))= AlAl)-raquoraquo2)+0

-DERECHA(ESPACIOS(Al)) amp

Introduzca esta foacutermula en tantas celdas de la columna como sea necesario y luego coacutepiela Seleccione la celda Al y vaya a EdicioacutengtPegado especial y selecshycione la opcioacuten Valores para eliminar las foacutermulas y dejar solamente los valores En la figura 616 puede ver un ejemplo de la situacioacuten antes y despueacutes de llevar a cabo esta tarea (A1A7 representa el antes)

1 200-

2 3 35Eiexcl-4 5 6 301-7 8 9

A

150

200 526

258

B -200

150 -356 200 526 -301 258

C

Figura 616 Antes y despueacutes de mover el signo negativo

Para darnos una idea de coacutemo funciona la foacutermula introduzca la siguiente foacutermula en cualquier celda siempre que la celda Al contenga el valor 200-

= D E R E C H A ( E S P A C I O S ( A l ) 1 ) amp A 1

Acabaraacute teniendo -200-

La funcioacuten ESPACIOS simplemente se asegura de que no haya espacios por delante y por detraacutes del texto de una celda Dado que nuestro valor terminar con un - necesitamos quitar esa segunda aparicioacuten Aquiacute es donde entra enjuego la funcioacuten SUSTITUIR Le diremos que sustituya la segunda aparicioacuten de - por (texto vaciacuteo) El resultado de esta operacioacuten seraacute de tipo texto (ya que la funcioacuten

6 Trucos sobre foacutermulas y funciones 217

SUSTITUIR devuelve un valor de tipo texto) por lo que simplemente antildeadiremos + 0 con lo que Excel lo convertiraacute en un nuacutemero

Si va a tener que utilizar este meacutetodo con frecuencia deberiacutea considerar utilishyzar una macro que haga el trabajo por usted A continuacioacuten le presentamos dicha macro

Sub ConvertirNegativos( ) Dim rCell As Range Dim rRange As Range Dim ICount As Long Dim lLoop As Long

1 Nos aseguramos de tener seleccionados los datos y en caso contrario_ se muestra un mensaje y la macro termina If SelectionCellsCount = 1 Then MsgBox Debe seleccionar el rango a convertir vblnformation Exit Sub

End If

Establece una variable soacutelo para las celdas de tipo texto por ejemplo

200-On Error Resume Next Set rRange = SelectionSpecialCells(xlCellTypeConstants xlTextValues)

Si esta variable devuelve Nothing es que no hay nuacutemeros negativos incorrectos con lo que se muestra un mensaje y termina la macro If rRange Is Nothing Then

MsgBox No se encontraron nuacutemeros negativos incorrectos vblnformation

On Error GoTo 0 Exit Sub

End If

Cuenta el nuacutemero de celdas del tipo 200- y pasa el resultado a una variable que controlaraacute el nuacutemero de ciclos necesarios para el bucle ICount = WorksheetFunctionCountlf(Selection -) Establece una variable a la primera celda de la seleccioacuten Set rCell = SelectionCells(1 1)

Bucle que se repite tantas veces como nuacutemeros negativos incorrectos haya

For lLoop = 1 To ICount

En cada ciclo se establece una variable a la celda que contiene -

El asterisco es un siacutembolo comodiacuten Set rCell = rRangeFind(What=- After=rCell _

Lookln=xlValues LookAt=xlPart _ SearchOrder=xlByRows SearchDirection= _ xlNext MatchCase=False)

Utilizamos la funcioacuten estaacutendar Reemplazar para reemplazar el

218 Excel Los mejores trucos

signo negativo por el texto vacio es decir eliminamos dicho signo rCellReplace What=- Replacement= Multiplicamos la celda por -1 para convertirla a un nuacutemero

negativo rCell = rCell -1

Next lLoop

On Error GoTo 0 End Sub

Para escribir esta macro vaya a HerramientasgtMacrogtEditor de Visual Basic (Al t Opcioacuten-Fl l ) Ahora seleccione lnsertargtMoacutedulo y copie el coacutedigo anterior Cierre la ventana para volver a Excel y vaya a HerramiexclentasgtMacrogtMacros y seleccione la macro que acabamos de crear Haga clic en Opciones para asignar una tecla de acceso raacutepido A partir de ahora si necesita convertir esos nuacutemeros negativos importados a verdaderos nuacutemeros negativos que Excel pueda reconoshycer simplemente seleccione el rango de nuacutemeros y utilice la tecla de acceso raacutepishydo que asignoacute

Mostrar valores de hora negativos A veces desearaacute mostrar valores de hora negativos pero Excel soacutelo mostraraacute Existen numerosos meacutetodos para solucionar este problema

Si introduce la hora 120000 (mediodiacutea) en una celda y luego le asigna el formato General observaraacute que tiene un valor numeacuterico de 05 De forma simishylar introduzca la hora 240000 en cualquier celda observe la barra de foacutermulas y veraacute coacutemo Excel muestra 111900 240000

Excel trata las fechas y las horas simplemente como nuacutemeros En el caso de las fechas Excel de forma predeterminada considera que el 1 de enero de 1900 se corresponde con el valor numeacuterico 1 el dos de enero de 1900 se corresponde con el valor numeacuterico 2 y asiacute sucesivamente Las horas son consideradas como nuacutemeros decimales a excepcioacuten del mediodiacutea que tiene un valor numeacuterico de 1 Debido a esto Excel tiene un verdadero problema a la hora de t ratar horas negashytivas

A continuacioacuten mostramos tres meacutetodos para conseguir que Excel muestre valores de hora negativos

Meacutetodo 1 Cambiar el sistema de fecha predeterminado de Excel

Un meacutetodo raacutepido y sencillo para mostrar valores negativos es seleccionar HerramientasgtOpciones ir a la pestantildea Calcular y activar la casilla de verifica-

6 Trucos sobre foacutermulas y funciones 219

cioacuten Sistema de fechas 1904 (a este sistema tambieacuten se llama Fechas y horas de Macintosh)

Tenga en cuenta que al hacer esto conseguiraacute que Excel modifique las fechas de inicio (desde el 1 de enero de 1900 al 2 de enero de 1904) a partir de las cuales son calculadas todas las celdas Esta opcioacuten soacutelo afectaraacute al libro de Excel con el que esteacute trabajando

Ahora ya podraacute restar horas entre siacute y tener resultados que aparezcan como valores negativos

Pruebe esto vaya a HerramientasgtOpcionesgtCalcular y active la casilla de veshyrificacioacuten Sistema de fechas 1904 Introduzca 50000 en la celda A2 60000 en la celda A3 y en la celda A4 escriba =A2-A3 Obtendraacute un resultado de -100 pero solamente si ha activado la opcioacuten mencionada anteriormente

Si el hecho de cambiar el sistema de fechas puede causar problemas en el libro a efectos de otros caacutelculos con horas necesitar utilizar otro meacutetodo que permita cambiar la apariencia de la celda que contenga un valor negativo

Meacutetodo 2 Utilizar la funcioacuten TEXTO

El segundo meacutetodo requiere del uso de la funcioacuten TEXTO Para empezar inshytroduzca 50000 en la celda A2 60000 en la celda A3 y en la celda A4 escriba lo siguiente

= T E X T O ( M A X ( $ A $ 2 $ A $ 3 ) - M I N ( $ A $ 2 $ A $ 3 ) - H M M )

Con esta foacutermula anidada estaacute restando las celdas A2 y A3 para conseguir un valor de hora positivo Luego estaacute aplicando un formato a la celda mediante la funcioacuten TEXTO de forma que muestre una hora negativa Mediante el uso de la combinacioacuten de funciones MAX y MIN sea seguro de que siempre resta la hora mayor menos la hora menor

gt Debe saber que el resultado devuelto es de tipo texto no numeacuterico gt Esto es importante en caso de que necesitase un valor numeacuterico para

^ otra foacutermula

Meacutetodo 3 Utilizar un formato personalizado

Uacuteltimo meacutetodo para mostrar horas negativas sin tener cambiar al sistema de fechas de 1904 pero que devuelva valores numeacutericos reales es ir a FormatogtCeldas

220 Excel Los mejores trucos

seleccionar la categoriacutea Personalizado y utilizar un formato personalizado -hmm Este meacutetodo funciona solamente en caso de que siempre desee mostrar los valoshyres de hora negativos Tambieacuten requiere que siempre reste la hora que sea infeshyrior de la hora que sea superior lo que significa que todas las veces la hora seraacute realmente positiva pero se mostraraacute como negativa

Por tanto utilizando cualquiera de estos tres meacutetodos seraacute capaz de mostrar horas en negativo Simplemente recuerde que cada meacutetodo tiene sus inconveshynientes por lo que utiliacutecelos teniendo estos inconvenientes en mente

^ g g Utilizar la funcioacuten BUSCARV a lo largo de muacuteltiples WJm tabas

bull bull ^ B Aunque de por siacute la funcioacuten BUSCARV es muy uacutetil estaacute restringida a la buacutesqueda de valores en una tabla especiacutefica para devolver un resultado lo que a veces no seraacute suficiente Podemos superar esta limitacioacuten si utilizamos la funcioacuten INDIRECTO

A veces desearaacute utilizar una uacutenica foacutermula BUSCARV que busque en diferenshytes tablas con datos que esteacuten en una hoja de caacutelculo Una de las formas para poder hacer esto es anidar muchas funciones BUSCARV juntas indicaacutendoles que busquen en una tabla especiacutefica dependiendo de un nuacutemero que introduzca en otra celda Por ejemplo

=SI(Al=lBUSCARV(BlTablal2FALSO)IF(Al=2BUSCARV(BlTabla22 FALSO)))

En esta foacutermula estamos dicieacutendole a la funcioacuten BUSCARV que busque en el rango con nombre Tabla 1 en caso de que la celda Al contenga el nuacutemero 1 (SI(Al = lBUSCARV(BlTablal2FALSO)) y que busque en un rango llamado Tabla2 en caso de que la celda Al contenga el nuacutemero 2 (IF(A1= 2 BUSCARV (BlTabla22FALSO)MM))

Como puede imaginarse la foacutermula seriacutea mucho maacutes larga y enrevesada si tiene que utilizar maacutes de dos funciones SI anidadas La siguiente foacutermula por ejemplo utiliza solamente cinco funciones anidadas pero ya es complicadiacutesima

=SI(Al=lBUSCARV(BlTablal2FALSO)SI(Al=2BUSCARV(BlTabla22 FALSO)SI(Al=3BUSCARV(BlTabla33FALSO)SI(Al=4BUSCARV(BlTabla4 2FALSO)SI (Al=5BUSCARV(BlTable52FALSO))))))

Aunque esta foacutermula devuelve los resultados deseados podemos conseguir que la foacutermula sea mucho maacutes corta antildeadir maacutes de cinco condiciones y acabar teniendo una foacutermula que sea m u y sencilla de manejar Supongamos que tiene 12 tablas diferentes configuradas en una hoja de caacutelculo cada una de las cuales

6 Trucos sobre foacutermulas y funciones 221

representa un mes diferente del antildeo Cada tabla consta de dos columnas y conshytiene los nombres de cinco empleados y cinco cantidades correspondientes A cada tabla se le ha dado un nombre en funcioacuten del mes que representa (por ejemplo la tabla con los datos de enero se llama Enero etc) tal y como se muestra en la figura 617

B C D E F G H J 1

Enero Nombre Cantidad Francisco 20 Ana 21 Juan 22 Paco 23 Mariacutea 20

Mayo 1 Nombre Cantidad Alex 45 Carlos 32 Carolina 24 Torn 11 Ceacutesar 12

Septiembre iNombre Cantidad Alex 20 Carlos 23 Carolina 34 Toni 23

I Ceacutesar 18

Febrero Nombre Cantidad Francisco 23 Ana 21 Juan 14 Paco 34 Mariacutea 12

Junio Nombre Cantidad Alex 21 Carlos 45 Carolina 23 Torn 12 Ceacutesar 32

Octubre Nombre Cantidad Alex 21 Carlos 25 Carolina 18 Toni 42 Ceacutesar 34

Marzo Nombre Cantidad Francisco 25 Ana 11 Juan 21 Paco 23 Mariacutea 34

Julio Nombre Cantidad Alex 25 Carlos 23 Carolina 34 Torn 11 Ceacutesar 15

Noviembre Nombre Cantidad Alex 11 Carlos 21 Carolina 29 iexclToni 25 Ceacutesar 1_7

Abril 1 Nombre Cantidad 1 Francisco 43 Ana 34 Juan 22 Paco 13 Mariacutea 25

Agosto 1 Nombre Cantidad 1 Alex 34 Carlos 23 Carolina 11 Torn 32 Ceacutesar 35

Diciembre Nombre Cantidad I Alex 27 Carlos 16 Carolina 22 Toni 27 Ceacutesar 12

|n 4 bull H Hojal HojaZ Hoja3 Hoja4 HojaS Hoja6 Hoja HojaS j lt _ i raquoH 1

Figura 617 Doce tablas cada una representando un mes del antildeo

Seleccione la celda A l Entonces vaya a DatosgtValidacioacuten y en la pestantildea Conshyfiguracioacuten seleccione la opcioacuten Lista en el cuadro de lista desplegable El cuadro de texto Origen escriba cada uno de los meses del antildeo separaacutendolos por comas Es m u y importante que los nombres de rangos para cada tabla sean los mismos que los nombres de los meses que ha utilizado en la lista de validacioacuten Haga clic en Aceptar Ahora seleccione la celda Bl y configure para ella una lista de valishydacioacuten de la misma forma que acabamos de explicar esta vez utilizando los nomshybres de cada uno de los empleados Si los nombres de eacutestos son m u y largos para escribirlos simplemente haga una referencia al rango de celdas que los contieshynen para que sea el origen y luego haga clic en Aceptar

En la celda A2 introduzca esta foacutermula

= B U S C A R V ( $ B $ 1 I N D I R E C T O ( $ A $ 1 ) 2 F A L S O )

Seleccione el mes que desee en la lista situada en la celda Al y el nombre del empleado en la lista situada en la celda B2 y la foacutermula que se encuentra en A2 devolveraacute la cantidad correspondiente para la persona y el mes seleccionados

222 Excel Los mejores trucos

Existen algunas ventajas de utilizar esta aproximacioacuten Si no estaacute H^ familiarizado con la funcioacuten INDIRECTO la hemos utilizado para leer

v - ^ los contenidos de una celda como si fuera la direccioacuten de un rango en vez de un texto Como hemos dado nombre a 12 rangos diferentes cada uno de los cuales representando un mes del antildeo la foacutermula que utilizar la funcioacuten INDIRECTO leeraacute la palabra Enero como referencia un rango en vez de como una cadena de texto Otra ventaja de utilizar una foacutermula que incluye la funcioacuten INDIRECTO es que puede librarse de la restriccioacuten de Excel que impide tener maacutes de siete niveles de anidamiento en las funciones

Mostrar el tiempo total como diacuteas horas y minutos Cuando antildeade horas en Excel puede hacer que el resultado devuelto aparezca como el total de horas y minutos pero por desgracia no como diacuteas horas y minutos Para poder mostrar esto necesitaremos hacer alguacuten trabajo extra

Por ejemplo si el tiempo total es igual a 75 horas 45 minutos y 0 segundos el total normalmente se mostrariacutea como 754500 proporcionaacutendolos este reshysultado en una celda cuyo formato personalizado fuese [h]mmss lo que permishyte mostrar horas superiores a 24 Aunque ciertamente es un resultado correcto tambieacuten significa que tendriacuteamos que calcular manualmente cuaacutentos diacuteas hoshyras y minutos representa esta cantidad Esto puede llevar cierto tiempo y ademaacutes es susceptible de calcular sea erroacuteneamente

Supongamos que tiene una lista de horas vaacutelidas en las celdas A1A10 y que en la celda Al 1 tiene una funcioacuten SUMA normal que estaacute sumando el total de horas es decir contiene la foacutermula =SUMA ($A$1 $A$10) Si el total de esta suma excede de las 24 horas el resultado de la celda que contiene a esta funcioacuten debeshyriacutea tener el formato [h]mm Supongamos que el resultado de esta suma total es de 3062600 que por supuesto son 306 horas y 26 minutos Sin embargo con esta informacioacuten no sabemos cuaacutentos diacuteas horas y minutos representa

Para mostrar el resultado de esa forma utilizaremos la siguiente foacutermula

=ENTER0(A11) ampraquo Dias amp ENTERO(RESIDUO(AllENTERO(All))24) amp horas y amp MINUTO(All) amp raquo minutos a

Teniendo en cuenta que la celda Al 1 contiene el valor 3062600 el resultado correspondiente deberiacutea ser de 12 diacuteas 18 horas y 26 minutos Veamos coacutemo funciona esto Si no estaacute familiarizado con la forma en la que Excel almacena y utiliza las fechas y horas primero deberiacutea consultar el truco 38

Seleccione la celda con la foacutermula que calcular el resultado y haga clic en el botoacuten fx que parece justo a la izquierda de la barra de foacutermulas (en versiones anteriores de Excel y en la versioacuten para Macintosh el botoacuten contiene el signo =)

m

6 Trucos sobre foacutermulas y funciones 223

Haga clic en la primera aparicioacuten de la funcioacuten ENTERO que aparece en la barra de foacutermulas Esta funcioacuten devolveraacute el valor entero 12 a part i r del valor 1276805556 Este nuacutemero representa cuaacutentos diacuteas hay

A continuacioacuten debemos calcular cuaacutentas horas quedan despueacutes de quitar esos 12 diacuteas Haga clic en la segunda funcioacuten ENTERO que aparece en la barra de foacutermulas Aquiacute estamos utilizando la funcioacuten RESIDUO ( A l l ENTERO (All) para devolver el resto de dividir 1276805556 por 12 que es 076805556 (el nuacutemero de minutos representado como un nuacutemero decimal) Ahora debemos multiplishycarlo por 24 (lo cual nos da 18433333) para devolver un nuacutemero que represenshytaraacute la cantidad de minutos Dado que soacutelo queremos el nuacutemero entero incluimos la foacutermula RESIDUO (Al l ENTERO (Al l ) ) 24 dentro de una funcioacuten ENTERO que se encarga de quitar la parte decimal

Haga clic en la funcioacuten MINUTOS dentro de la barra de foacutermulas Esta funshycioacuten devolveraacute el valor 26 a partir del nuacutemero de serie 127680556

Dado que el valor devuelto por la funcioacuten MINUTOS nunca seraacute un valor numeacuterico seriacutea sensato mantener al menos la funcioacuten original SUMA que deshyvuelve el total de horas en una celda de forma que pueda ser referenciada y utilizada para caacutelculos posteriores en caso de que sea necesario Por supuesto la fila que contiene el total de horas puede ser ocultada

TRUCO Determinar el nuacutemero de diacuteas especificados que aparecen en cualquier mes Cuando esteacute creando aplicaciones relacionadas con calendarios en especial aplicaciones de noacutemina a veces necesitaraacute conocer cuaacutentas veces aparece un cierto diacutea de la semana en un mes en particular

A pesar de que Excel dispone de muchas funciones para fechas y horas al diacutea de hoy no existe una funcioacuten que por ejemplo nos indique cuaacutentos lunes hay en el mes de enero para el antildeo 2005 Podemos utilizar varias funciones m u y anidashydas de fecha y hora de Excel para conseguir esto pero por desgracia como ya podraacute imaginarse es m u y complicado y enrevesado

Eacuteste es uno de los casos en los que VBA puede simplificar enormemente una tarea complicada En vez de combinar complejas funciones podemos escribir una funcioacuten personalizada que haga lo mismo y que luego podamos pasarle el diacutea y la fecha que queremos calcular Podemos utilizar la siguiente funcioacuten para detershyminar cuaacutentos diacuteas hay en un mes especificado Por ejemplo

=CuantosDiasEnUnMes(11203mieacute)

la cual nos devolveriacutea 5 ya que hubo cinco mieacutercoles en el mes de diciembre de 2003

224 Excel Los mejores trucos

De forma similar la siguiente funcioacuten

=CuantosDiasEnUnMes(11203jue)

nos devolveriacutea 4 ya que solamente hubo cuatro jueves en el mes de diciembre de 2003 Para utilizar esta funcioacuten personalizada en un libro primero debe escrishybir el siguiente coacutedigo en un moacutedulo estaacutendar Para ello abra el libro en el que desea colocar esta macro y vaya a HerramientasgtMacrogtEditor de Visual Basic (Al t Opcioacuten-Fl l ) Luego seleccione lnsertargtMoacutedulo y escriba el siguiente coacutedigo

Function CuantosDiasEnUnMes(FechaCompleta As String sDia As String) As Integer Dim i As Integer Dim iDia As Integer iDiaCoincidente As Integer Dim iDiasEnMes As Integer Dim FechaCompletaNueva As Date

iDiaCoincidente = Weekday(FechaCompleta) Select Case UCase(sDia)

Case DOM iDia = 1

Case LUN iDia = 2

Case MAR iDia = 3

Case MIEacute iDia = 4

Case JUE iDia = 5

Case VIE iDia = 6

Case SAB iDia = 7

End Select iDiasEnMes = Day(DateAdd(d -1 DateSerial _

(Year(FechaCompleta) Month(FechaCompleta) + 1 1))) FechaCompletaNueva = DateSerial(Year(FechaCompleta)

Month(FechaCompleta) iDiasEnMes) For i = iDiasEnMes - 1 To 0 Step -1

If Weekday(FechaCompletaNueva - i) = iDia Then CuantosDiasEnUnMes = CuantosDiasEnUnMes + 1

End If Next i

End Function

Cierre de esta ventana para volver a Excel

Ahora simplemente ha de introducir la funcioacuten en cualquier celda como vishymos antes y Excel devolveraacute un nuacutemero que representa cuaacutentas veces aparecioacute el diacutea especificado en el mes que hayamos elegido

6 Trucos sobre foacutermulas y funciones 225

K|^^3 Construir mega foacutermulas jt ^ E T ^ H Las mega foacutermulas (foacutermulas que contienen foacutermulas y a su vez otras

^ B A ^ H foacutermulas) son lo suficientemente complicadas para que incluso los expertos en Excel salgan corriendo Con un poquito de esfuerzo y trabajando paso a paso hasta conseguir la foacutermula que deseamos podemos afrontar esas complejas mega foacutermulas sin miedo

iquestLe llena de terror el simple hecho de tener que pensar en funciones anidadas dejando aparte su construccioacuten Algunas de esas celdas con caacutelculos complicashydos y enrevesados tambieacuten nos hacen sentirnos un poco asustados a nosotros Pero con un poco de esfuerzo y trabajando paso a paso podemos crear mega foacutermulas sin tener miedo Y quizaacute soacutelo quizaacute incluso podraacute ser capaz de leer y entender estas foacutermulas maacutes adelante

El truco estaacute en construir las foacutermulas poco a poco utilizando las funciones estaacutendar de Excel Utilice una funcioacuten por celda obteniendo un resultado indivishydual que sea manejable y luego aniacutedelas juntas para obtener el resultado final que desea A continuacioacuten veamos un ejemplo de este proceso en accioacuten

Digamos que le han dado una larga lista de nombres de personas compuesta por el nombre primer apellido y segundo apellido (todos ellos en una uacutenica celda de cada fila) El trabajo consiste en escribir una foacutermula en la columna adyacente que extraiga solamente el segundo apellido de la persona

Lo que tendremos despueacutes seraacute el comienzo del segundo apellido (la tercera palabra) de la celda Por el momento lo que tendremos que buscar es la posicioacuten del segundo caraacutecter espacio dentro de la celda Excel no dispone de una funcioacuten que busque automaacuteticamente el segundo caraacutecter espacio dentro de una celda pero no proporciona la funcioacuten ENCONTRAR que permite hacer buacutesquedas lo cual es lo que necesitamos

Introduzca el nombre David Peacuterez Cardenal (o cualquier otro nombre) en la celda A l Luego en la celda Cl introduzca esta funcioacuten

=ENCONTRAR( A 1 )

La funcioacuten ENCONTRAR busca una cadena de texto (el primer paraacutemetro) dentro de otra cadena de texto (el segundo paraacutemetro) y devuelve un nuacutemero que es la posicioacuten en la que se encuentra dicha cadena dentro de la otra

Eacutesta es la sintaxis de esta funcioacuten

ENCONTRAR(texto_buscadodentro_del_textonuacutem_inicial)

Con esto encontraremos la posicioacuten inicial del primer caraacutecter espacio en la celda A l ya que dijimos que buscase la cadena (un espacio) En el caso de David Peacuterez Cardenal deberiacutea devolver el valor 6 Pero nosotros estamos buscan-

226 Excel Los mejores trucos

do el segundo espacio no el primero Lo que haremos seraacute utilizar el nuacutemero devuelto por la primera foacutermula (en Cl) y lo utilizaremos como punto de partida para otra funcioacuten ENCONTRAR que buscaraacute el segundo espacio Por tanto en la celda C2 introduzca lo siguiente

=ENCONTRAR( A 1 C 1 + 1 )

Observe que esta vez hemos pasado un tercer argumento a la funcioacuten ENshyCONTRAR que indica la posicioacuten inicial que se encuentra en la celda Cl (6 en este ejemplo) maacutes 1 Esto no serviraacute como punto de partida para que la segunda funcioacuten ENCONTRAR busque el segundo espacio Por tanto lo que esta uacuteltima funcioacuten nos devuelva seraacute la posicioacuten del segundo espacio

Teniendo esto realmente la siguiente funcioacuten que tenemos que construir es aquella que escriba todos los caracteres a partir del segundo espacio hasta el final de la cadena Para ello utilizaremos la funcioacuten EXTRAE que como su nombre indica extrae un rango de caracteres a partir de una cadena de texto En la celda C3 introduzca lo siguiente

= EXTRAE(Al C2 + 1 2 5 6)

Esta funcioacuten devuelve un nuacutemero de caracteres especificado a partir de la cashydena de texto comenzando por la posicioacuten que hayamos especificado y tomando tantos caracteres como indiquemos Aquiacute podemos ver su sintaxis

EXTRAE(textoposicioacuten_inicialnuacutem_de_caracteres)

En nuestro caso hemos pedido a la funcioacuten EXTRAE que extraiga 256 caracshyteres a partir de texto de la celda A l comenzando por el primer caraacutecter que se encuentra despueacutes del segundo espacio Hemos utilizado el nuacutemero 256 para asegurarnos de que obtenemos todos los caracteres hasta el final de la cadena independientemente de su longitud (no importa si en la cadena quedan menos caracteres de los que indiquemos la funcioacuten devolveraacute tantos como pueda)

Con todas las piezas a mano ha llegado el momento de construir la foacutermula completa una foacutermula anidada que le daba paacutenico hace unos minutos Baacutesicashymente todo lo que tenemos que hacer es reemplazar todas las referencias a celshydas (excepto Al) de las funciones con las foacutermulas que habiacutea en esas celdas Podemos hacer esto usando cortar y pegar en la barra de foacutermulas

Haga clic en la celda C2 y en la barra de foacutermulas seleccione la funcioacuten y copiacuteela por completo exceptuando el signo de = de esta forma

ENCONTRAR( A 1 C 1 + 1 )

Pulse Intro para abandonar la celda con lo que estaremos en la celda C3 Una vez seleccionada en la barra de foacutermulas sombree la referencia a la celda C2 y

6 Trucos sobre foacutermulas y funciones 227

pegue la funcioacuten ENCONTRAR (Control-V) que acabamos de copiar en el portapapeles Pulse Intro Al hacer esto la celda C3 deberiacutea quedar de la siguienshyte forma

=EXTRAE(AlENCONTRAR( AlCl+1)+12 56)

Ahora necesitamos reemplazar la referencia a la celda Cl con la funcioacuten que hay dentro de dicha celda Seleccione la celda Cl sombree toda la foacutermula excepshyto el signo de = en la barra de foacutermulas copiacuteela en el portapapeles (Control-C) y luego seleccione la celda C3 Sombree Cl en la barra de foacutermulas y pegue el contenido del portapapeles Luego pulse Intro

Ahora todo lo que hay que hacer es cortar la celda C3 y pegarla en la celda Bl luego eliminar las celdas Cl y C2 Al final deberiacuteamos tener una foacutermula como esta

= EXTRAE(AlENCONTRAR( AlENCONTRAR( Al)+1)+12 5 6)

Si sigue las directrices de este concepto observaraacute que puede construir mega foacutermulas utilizando gran variedad de funciones de Excel Lo que tiene que hacer es primeramente planificar la forma en la que puede conseguir su objetivo y luego utilizar celdas individuales para obtener los resultados parciales que neceshysita Por uacuteltimo reemplace todas las referencias a celdas con las funciones que estaacuten almacenadas en dichas celdas

R ^ ^ S Trucar mega foacutermulas que hagan referencia sect Braquo9 a o t ros libros

^ M M ^ H I Las foacutermulas de Excel se complican cuando una mega foacutermula hace referencia a otro libro No soacutelo necesita incluir las referencias a celdas sino tambieacuten los nombres de libros hojas de caacutelculo e incluso la ruta completa al libro en caso de que esteacute cerrado Existen numerosos meacutetodos para simplificar lo que podriacutea ser un proceso muy complejo

Escribir tales foacutermulas desde cero puede convertirse en pesado raacutepidamente Con este truco le mostraremos un meacutetodo raacutepido y sencillo que le permite consshytruir estas foacutermulas sin la necesidad de utilizar nombres de libros y rutas de archivos El meacutetodo es tan simple que a veces lo pasamos por alto

En primer lugar hemos de aseguraremos de que estamos utilizando los conshyvenios correctos a la hora de referencia a celdas y hojas de caacutelculo Cuando se escribe una foacutermula siempre es una buena idea no introducir nunca referencias a celdas nombres de hojas o nombres de libros porque ello podriacutea incluir tipos y sintaxis incorrectas La mayoriacutea de las personas que estaacuten en un nivel intermeshydio normalmente utilizan el cursor del ratoacuten para introducir las referencias a

228 Excel Los mejores trucos

celdas hojas y libros Realmente esto impide que se produzcan errores de sintaxis y de tipos pero si se utiliza con funciones anidadas sabraacute que la foacutermula se convertiraacute raacutepidamente en algo enorme y m u y difiacutecil de seguir

Por ejemplo eche un vistazo a la siguiente foacutermula

=ENTERO(SUMA(CMis documentosExcelFinanzasProgramas de ventas[Ventasxls]Ventas de productosC2C2924))

Se trata de una simple funcioacuten SUMA anidada dentro de una funcioacuten ENTEshyRO Como hace referencia a celdas situadas en un libro cerrado debe incluir la ruta completa jun to con las referencias a celdas el nombre de la hoja y el libro Sin embargo si tuviese que anidar alguna otra funcioacuten dentro de esta ya se convertiriacutea en algo praacutecticamente imposible de escribir

A continuacioacuten veamos un raacutepido meacutetodo para escribir mega funciones que hagan referencia a libros externos El truco consiste simplemente en escribir la funcioacuten en el libro al que haremos referencia en una celda aparte Si solamente va a hacer una referencia a una hoja en este libro es mejor utilizar una celda en esta hoja

En primer lugar al igual que hicimos en el truco para mostrar el nuacutemero de veces que apareciacutea un diacutea en un mes desarrollaremos la foacutermula en una celda aparte en el libro en el que acabaraacute la referencia Una vez tengamos el resultado deseado cortaremos la foacutermula de dicha celda activaremos el libro en el que deberiacutea aparecer el resultado seleccionaremos la celda apropiada y te daremos la foacutermula

Excel hace todo el trabajo duro al incluir los nombres de libro y cualquier nombre de hoja En caso de que necesite modificar o antildeadir algo la foacutermula simplemente abra el libro que estaacute siendo referenciado corte la foacutermula desde el libro original y peguacuteela en el libro referenciado Luego haga los cambios necesashyrios corte y pegue de nuevo la foacutermula en el lugar de donde procediacutea

Trucar una de las funciones de base de datos de Excel para que haga el trabajo de muchas funciones Las funciones de base de datos de Excel (BDSUMA BDCONTAR etc) pueden hacer el trabajo de cientos de funciones reduciendo tanto el tiempo de caacutelculo como el espacio ocupado en el libro

Cuando utilice funciones de base de datos de Excel puede especificar hasta 256 criterios diferentes Por ejemplo puede que desee sumar cantidades que hay en la columna A pero soacutelo aquellas en cuya celda correspondiente en la columna

6 Trucos sobre foacutermulas y funciones 229

B haya un nuacutemero mayor que 100 y en la de la celda C haya un nuacutemero menor que 40 Si por el contrario desea sumar las cantidades cuyos valores corresponshydientes en la columna B son menores que 50 necesita utilizar otra funcioacuten y un rango diferente como criterio Seriacutea mucho maacutes sencillo si tuvieacutesemos una uacutenica funcioacuten y pudieacutesemos cambiar faacutecil y raacutepidamente el criterio Si nunca ha utilishyzado las funciones de base de datos de Excel con anterioridad le recomendamos encarecidamente que se familiarice con ellas ya que son m u y buenas para exshytraer informacioacuten estadiacutestica a partir de una base de datos o una tabla de Excel

Para ver coacutemo funciona rellene algunos datos tal y como se muestra en la figura 618 Mantenga los encabezados de columnas de la misma forma pero puede introducir los datos que desee debajo de ellos Mientras que ahora le pone a esta tabla el nombre de TodosLosDatos incluyendo todos los encabezados a la hoja le daraacute el nombre de Datos

A 1 Nombre 2 Antonio 3 Al ex 4 David 5 Marta 6 David 7 Santos 8 Laida 9 Mar-IacuteO Luis 11 David 12 Laida 13 Anqel 14 Al ex 15 Carolina

16 Aacutengel Iacute7 18

B Fechas

1522004 1622004 1722004 1822004 1922004 2022004 2122004 2222004 2322004 2422004 2522004 2622004 2722004 2822004 2922004

C Coste total

3200 euro 3000 euro 2300 euro 3600euro 2500 euro 3000 euro 3100 euro 3000 euro 2800euro 2300euro 3300euro 4500 euro 2800 euro 2900 euro 3000euro

D E Cantidad pagada Porcentaje

2200 euro 1200 euro 1600 euro 3600euro 2100 euro 1500 euro 1800 euro 1900 euro 1200 euro 2300 euro 1200 euro 2300 euro 900 euro

1800 euro 2300 euro

pagado 69 40 70

100 84 50 58 63 43

100 36 51 32 62 77

F Coste restante

1000 euro 1800 euro 700 euro - euro

400 euro 1500 euro 1300 euro 1100 euro 1600 euro

- euro 2100 euro 2200 euro 1900 euro 1100 euro 700 euro

G

Figura 618 Datos propuestos

Inserte otra hoja y llaacutemela Resultados En la celda A2 introduzca la siguienshyte foacutermula

=Datos Al

Propague esta foacutermula hasta la celda F2 de forma que tenga una copia sincronizada de los encabezados de la tabla En la celda A3 introduzca cualquier nombre de los que exista en la tabla de la primera hoja como por ejemplo John D luego en la celda D3 introduzca la siguiente foacutermula

=BDEXTRAER(TodosLosDatosB2$A$2$A$3)

Propague esta foacutermula hasta la celda F3 y de formato a las celdas C3F3 como sea requerido

230 Excel Los mejores trucos

Para copiar raacutepidamente las celdas como eacutesta sin formato seleccione la celda haga clic con el botoacuten derecho del ratoacuten en el pequentildeo recuadro de propagacioacuten y manteniendo pulsado el botoacuten derecho del ratoacuten arrastre el cursor hasta donde sea necesario Luego seleccione la opcioacuten Rellena sin formato

Los datos correspondientes deberiacutean extraerse de la tabla cuyo nombre ha introducido en la celda A3 Eacuteste es soacutelo un ejemplo simple de coacutemo puede utilizar la funcioacuten BDEXTRAER para extraer informacioacuten relevante

Si obtiene el error NUM significa que tiene dos o maacutes nombres ideacutenticos en la columna Nombre

Llegados a este punto la mayoriacutea de las personas seguiriacutean el mismo concepshyto para todos los nombres para los que quisieran extraer informacioacuten de la tabla Sin embargo este esfuerzo no es necesario

Dado que siempre estamos haciendo referencia a la celda A3 para el nombre tendriacutea mucho maacutes sentido en la mayoriacutea de los casos si simplemente pudieacuterashymos utilizar una lista desplegable en la celda A3 que contuviese todos los nomshybres que hay en la tabla Podemos utilizar la funcioacuten estaacutendar de validacioacuten de Excel para crear dicha lista Sin embargo como la lista original de nombres estaacute ubicada en otra hoja no podemos hacer referencia para lista de la misma forma que lo hariacuteamos a una lista que estuviese en la misma hoja (es decir una referenshycia a un rango estaacutendar) Podemos resolver este problema faacutecilmente daacutendole nombre a la columna Nombre de la tabla original y luego utilizando ese nombre como origen de la lista para la validacioacuten

Dado que muchas tablas no son estaacuteticas (es decir sus datos estaacuten continuamente modificaacutendose ya sea antildeadiendo o eliminando registros) deberiacutea considerar la posibilidad de utilizar rangos dinaacutemicos con nombre para la columna Nombre

Haga clic de nuevo en la hoja Datos y teniendo seleccionada cualquier celda vaya a lnsertargtNombregtDefinir En el cuadro de texto Nombres en el libro introshyduzca Nombres y en el cuadro de texto Se refiere a introduzca la siguiente foacutermula y luego haga clic en Agregar

= D E S R E F ( $ A $ 2 0 0 C O N T A R A ( $ A $ 2 $ A $ 1 0 0 0 ) 1 )

Haga clic en la hoja Resultados seleccione la celda A3 y luego vaya a DatosgtValidacioacuten

N

6 Trucos sobre foacutermulas y funciones 231

Seleccione la opcioacuten Lista del cuadro de lista desplegable y en el cuadro de texto Origen introduzca lo siguiente

=Nombre

Aseguacuterese de que la casilla de verificacioacuten Celda con lista desplegable esteacute activada y luego haga clic en Aceptar Ahora ya puede seleccionar cualquier nombre de la lista de la celda A3 y los datos que hay a la derecha mostraraacuten la informacioacuten correspondiente de forma automaacutetica Podemos llevar esto a un nishyvel superior y utilizar la funcioacuten BDCONTAR para extraer la cantidad de persoshynas cuyo coste total es mayor que un cierto nuacutemero que especifiquemos y un porcentaje pagado menor que otro nuacutemero que tambieacuten especificaremos

Para ello primeramente necesitaraacute crear un rango dinaacutemico con nombre para la columna Coste total y para la columna Pagado En el cuadro de texto Nombres en el libro introduzca Coste_totalM y en el cuadro de texto Se refiere a introduzca la siguiente foacutermula tras lo cual debe pulsar Agregar

=DESREF($C$200CONTARA($C$2$C$1000)1)

Esta vez en el cuadro de texto Nombres en el libro introduzca PorcentajePagado y en el cuadro de texto Se refiere a introduzca la siguiente foacutermula tras lo cual debe pulsar Agregar

=DESREF($E$200CONTARA($E$2$E$1000)1)

Active la hoja Resultados seleccione la celda Al 1 y luego seleccione DatosgtValidacioacuten Seleccione la opcioacuten Lista y luego introduzca en el cuadro de texto Origen el texto M = Coste_total Haga clic en Aceptar Seleccione la celda B l l y luego vaya a DatosgtValidacioacuten Seleccione la opcioacuten Lista y luego introshyduzca en el cuadro de texto Origen el texto = Porcentaje_pagadoM Haga clic en Aceptar

En la celda A l 2 introduzca lo siguiente

= D a t o s C l

Seleccione la celda B12 e introduzca lo siguiente

= D a t o s E l

Seleccione la celda Al 3 e introduzca lo siguiente

= gt amp A l l

Seleccione la celda B13 e introduzca lo siguiente

= lt S e T E X T O ( B l l 0 )

232 Excel Los mejores trucos

En la celda Al 5 introduzca lo siguiente

=DCONTAR(TodosLosDatOS$A$12$A$12$B$13)

Seleccione cualquier cantidad de coste total desde la celda Al 1 y cualquier porcentaje pagado desde la celda B l l y la funcioacuten BDCONTAR le devolveraacute el nuacutemero de personas que coinciden con ese criterio Por ejemplo si ha seleccionashydo 65 y 100 estaraacute extrayendo la cantidad de personas que tienen un coste total mayor que 65 y un porcentaje pagado menor que el 100

Como puede ver puede utilizar esta funcioacuten BDCONTAR para extraer cualshyquier combinacioacuten de criterios para las columnas Coste total y Porcentaje pagashydo Con un poco maacutes de trabajo puede llevar esto todaviacutea a un nivel superior y hacer que los operadores de comparacioacuten utilizados en criterio sean intercambiashybles

Lo primero que tiene que hacer es crear una lista de operadores de comparashycioacuten que puedan ser utilizados en la lista de validacioacuten Vaya a una columna que no esteacute siendo utilizada en la hoja Resultados y en cualquiera de las filas de dicha columna introduzca el encabezado Operadores Debajo de eacuteste en cada una de las celdas siguientes introduzca = gt = gt lt y lt = tal y como se muestra en la figura 619

Opeiuumltloies

Figura 619 Operadores de comparacioacuten

Para dar nombre a este rango seleccione el encabezado y todos los operadores por debajo de eacutel seleccionando luego la opcioacuten Insertar mayor que NombregtCrear Aseguacuterese de que estaacute activada la opcioacuten Soacutelo fila superior y haga clic en Aceptar Excel daraacute nombre automaacuteticamente al rango basaacutendose en el encabezado (en este caso Operadores)

Seleccione la celda G7 e introduzca el encabezado Seleccione un criterios Teniendo seleccionadas las celdas G7 y H7 ceacutentrelas yendo a FormatogtCeldasgt Alineacioacuten y luego eligiendo en el cuadro de lista desplegable Horizontal la opcioacuten Centrar en la seleccioacuten Seleccione las celdas G8 y H8 vaya a DatosgtValidacioacuten y seleccione la opcioacuten Lista en el cuadro de lista desplegable En el cuadro de texto Origen introduzca = Operadores Aseguacuterese de que estaacute activada la casilla de verificacioacuten Celda con lista desplegable y luego haga clic en Aceptar

Vuelva a la hoja Datos y cree un rango dinaacutemico con nombre para la columna Fechas Vaya a lnsertargtNombregtDefinir en el cuadro de texto Nombres en el libro

6 Trucos sobre foacutermulas y funciones 233

escriba Fechas y en el cuadro de texto Se refiere a escriba la siguiente foacutermula y luego haga clic en Agregar

= DESREF($B$200CONTARA($B$2$B$10 00) 1)

Seleccione la celda G7 coacutepiela y peguacuteela en la celda G9 Cambie la palabra Criterio por Fecha Seleccione las celdas G10H10 vaya a DatosgtValidacioacuten y luego seleccione la opcioacuten Lista en el cuadro de lista desplegable En el cuadro de texto Origen introduzca = Dates

Aseguacuterese de que la opcioacuten Celda con lista desplegable esteacute activada y haga clic en Aceptar Seleccione la celda G i l e introduzca lo siguiente

=Datos$B$1

Propaguacuteela hasta la celda Hl 1 Seleccione la celda G12 introduzca la siguienshyte foacutermula (deberiacutea utilizar el formato de fecha) y coacutepiela hasta la celda H12

=G8 amp T E X T O ( G 1 0 d d m m a a )

En la celda F13 introduzca la palabra Resultado y ceacutentrelo en la seleccioacuten teniendo seleccionadas las celdas F 1 3 y G 1 3 En la celda H13 introduzca la sishyguiente foacutermula

=BDSUMAR(TodosLosDatosDatos$C$1$G$11$H$12)

El resultado final deberiacutea parecerse al que se muestra en la figura 620 que como demostracioacuten muestra todas las foacutermulas

G

Fech =G88JEXTO(G10 Resultado

Seleccione

Seleccione 190201

as ddmmaa) =

H

un criterio

un a fecha 200201

Fechas =H8ampTEXT0(H10 ddmmaa) =B D S U MAR (To d o s Lo s D at o s b at o s

I

UumliexclC$1HiexclG$11$HUumliexcl1

J

2)

Figura 620 Hoja mostrando las foacutermulas correctas y los encabezados

Oculte las filas 11 y 12 ya que no necesitamos verlas Terminaraacute teniendo una tabla lista para ser utilizada como la que se muestra en la figura 621 a la que se ha aplicado un formato en particular para facilitar su lectura

234 Excel Los mejores trucos

Seleccione un

gt= lt= criterio

Seleccione una fecha 190201

Resultado 200201

90 euro|

Figura 621 Hoja con la iacutenter faz final

Utilizando este principio puede tener faacutecilmente una o varias funciones de base de datos haciendo el trabajo que de otra manera hariacutean cientos de funcioshynes

CAPIacuteTULO 7

Trucos sobre macros Trucos 81 a 94

Las macros hacen que sea muy faacutecil automatizar tareas repetitivas en Excel pero la forma en la que son creadas y las facilidades para utilizarlas a veces son problemaacuteticas Por suerte Excel es flexible lo suficientemente como para que pueda solucionar esos problemas y crear nuevas caracteriacutesticas con un miacutenimo esfuerzo

Acelerar el coacutedigo y eliminar los parpadeos de la pantalla Cuando graba macros dentro de Excel el coacutedigo que es generado a veces produce parpadeo se la pantalla que no solamente ralentizar la macro sino que hacen que la actividad de la misma parezca muy desorganizada Por suerte podemos eliminar esos parpadeos de la pantalla a la vez que celebramos el coacutedigo

Uno de los inconvenientes de las macros grabadas en Excel es que el coacutedigo producido es a menudo m u y ineficiente Esto puede significar que las macros que deberiacutean tardar solamente unos segundos para completarse a veces requieshyren de mucho maacutes tiempo y parecen muy ineficaces Ademaacutes cuando crea macros utilizando la grabadora de macros todas las pulsaciones de teclas se graban independientemente de que tengan o no sentido Esto quiere decir que sigue coshymetiendo un error y que a continuacioacuten lo corrige las pulsaciones requeridas para completar esas acciones tambieacuten son grabadas en el coacutedigo de la macro

Si ya ha jugado algo con macros y coacutedigo en VBA probablemente habraacute oiacutedo hablar de la propiedad A p p l i c a t i o n S c r e e n U p d a t i n g Si establece esta proshypiedad a F a l s e al inicio de una macro no solamente estaraacute deteniendo los par-

uuml

238 Excel Los mejores trucos

padeos de la pantalla asociados a la macro grabada sino que tambieacuten estaraacute incrementando la velocidad de ejecucioacuten de la misma La razoacuten por la que este meacutetodo acelerar el coacutedigo es porque Excel ya no necesita volver a dibujar la panshytalla cada vez que encuentra un comando como pueda ser S e l e c t A c t iacute v a t e L a r g e S c r o l l S m a l l S c r o l l y muchos otros Para incluir la sentencia A p p l i c a t i o n S c r e e n U p d a t i n g = F a l s e al inicio de una macro existente vaya a HerramientasgtMacrogtMacros seleccione la macro en cuestioacuten haga clic en Modificar e introduzca el siguiente coacutedigo

1 una Macro Macro grabada el 1122003 por Susana

ApplicationScreenUpdating = False

bullSU COacuteDIGO

ApplicationScreenUpdating = True End Sub

Observe que hemos vuelto a establecer esta propiedad a True despueacutes de comshypletar la macro Aunque Excel siempre volveraacute a activar esta propiedad tan pronshyto como el foco vuelva a eacutel (es decir cuando la macro termine y el usuario vuelva a interactuar con la aplicacioacuten) en muchos casos es mejor asegurarse e incluir el coacutedigo al final

En algunos casos se encontraraacute con que la propiedad A p p l i c a t i o n S c r e e n U p d a t i n g ha vuelto a activarse antes de que la macro grabada se haya completado Esto puede ocurrir con macros grabadas que utilicen el comando S e l e c t con frecuencia Y en caso de que esto suceda puede que tenga que repeshytir la sentencia A p p l i c a t i o n S c r e e n U p d a t i n g = F a l s e en otras partes de la macro

^ Q Q 3 Ejecutar una macro a una determinada hora (I ^Fv^l En m u c ^ a s ocasiones seriacutea una gran idea poder ejecutar una macro a una

H H I ^ I hora predeterminada o a intervalos de tiempo especiacuteficos Por suerte Excel proporciona un meacutetodo VBA que hace que esto sea posible

El meacutetodo A p p l i c a t i o n O n T i m e puede hacer que las macros se ejecutan automaacuteticamente una vez realizadas ciertas configuraciones Supongamos que tiene una macro que desea ejecutar cada diacutea a las 1500 En primer lugar debereshymos determinar coacutemo lanzar el meacutetodo OnTime Podemos hacerlo utilizando el evento Workbook_Open en el moacutedulo privado del objeto Workbook

7 Trucos sobre macros 239

En Windows la manera maacutes raacutepida para llegar al moacutedulo privado del objeto Workbook (ThisWorkbook) es haciendo clic con el botoacuten derecho del ratoacuten en el icono de Excel situado a la izquierda del menuacute Archivo y luego seleccionar la opcioacuten Ver coacutedigo (en Macintosh debe abrir el editor de Visual Basic y luego abrir el moacutedulo para el objeto Workbook desde la ventana de proyecto) Una vez en este sitio introduzca el siguiente coacutedigo

Priacutevate Sub Workbook_Open( ) ApplicationOnTime TimeValue(150000) MiMacro

End Sub

MiMacro deberiacutea ser el nombre de la macro que desea ejecutar Deberiacutea residir en un moacutedulo estaacutendar y contener el meacutetodo OnTime de la siguiente forma

Sub MiMacro( )

ApplicationOnTime TimeValue(150000) MiMacro

SU COacuteDIGO

End Sub

Esto ejecutaraacute el procedimiento MiMacro todos los diacuteas a las 1500 tan pronshyto como se abra Excel Ahora suponga que desea ejecutar MiMacro a intervalos de 15 minutos despueacutes de abrir el libro De nuevo desearemos configurar esta programacioacuten tan pronto como se abra el libro De nuevo haga clic con el botoacuten derecho del ratoacuten sobre el icono de Excel situado a la izquierda del menuacute Archivo seleccione la opcioacuten Ver coacutedigo e introduzca el siguiente coacutedigo

Private Sub Workbook_BeforeClose(Cancel As Boolean) ApplicationOnTime dTime MiMacro False

End Sub

Private Sub Workbook_Open( ) ApplicationOnTime Now + TimeValue(001500) MiMacro

End Sub

En cualquier moacutedulo estaacutendar (accediendo a traveacutes de la opcioacuten lnsertargt Moacutedulo) introduzca el siguiente coacutedigo

Sub MiMacro( ) dTime = Now + TimeValue(0 0150 0) ApplicationOnTime dTime MiMacro

SU COacuteDIGO End Sub

Observe coacutemo pasamos el valor 15 minutos a la variable puacuteblica dTime Esto es de forma que pueda cancelar el meacutetodo OnTime cuando ocurra el evento

240 Excel Los mejores trucos

WorkbookBef o reClose estableciendo el argumento opcional Schedule a Falso De forma predeterminada el argumento S c h e d u l e estaacute establecido como True de forma que al establecerlo en False estamos indicando a Excel que cancele el meacutetoshydo OnTime que estaba establecido para que se ejecutase a una hora en particular

Si no pasoacute la hora a una variable Excel no sabraacute queacute meacutetodo OnTime desea cancelar ya que la expresioacuten Now + Time Valueacute ( 0 0 1 5 0 0 ) no es estaacutetica pero siacute lo es cuando se pasa a una variable Si no establece el argumento opcional Schedule a False el libro se abririacutea automaacuteticamente cada 15 minutos despueacutes de que lo cerrarse y ejecutase MiMacro

Q ^ Q Utilizar CodeName para hacer referencias | B 9 9 a hojas en los libros de Excel

^ ^ ^ ^ ^ B A veces necesitaraacute crear una macro que funcione incluso si los nombres de hojas a los que hace referencia cambien

Si ha grabado una macro en Excel que hace referencia a una hoja en particushylar dentro de libro debe saber que el coacutedigo seguiraacute funcionando soacutelo si los nomshybres de las hojas se mantienen iguales Por ejemplo si la hoja se llama Presupuesto el coacutedigo de la macro tiene la sentencia S h e e t s ( P r e s u p u e s t o ) S e l e c t y ahora cambia el nombre de dicha hoja la macro dejaraacute de funcionar Esto es debido a que la grabadora de macros genera el coacutedigo basaacutendose en el nombre de la pestantildea de la hoja en cuestioacuten o en el nombre que se ve cuando se trabaja en Excel Para superar esta limitacioacuten tenemos dos opciones siendo la primera de ellas la que utiliza nuacutemeros de iacutendice en vez de nombres El iacutendice de una hoja se determina por su posicioacuten dentro de libro La hoja que estaacute maacutes la izquierda siempre tendraacute el iacutendice 1 la siguiente tendraacute el iacutendice 2 y asiacute sucesivamente VBA permite especificar cualquier hoja utilizando su iacutendice en vez de su nombre aunque por desgracia el generador de coacutedigo de Excel nunca utiliza estos iacutendices

De todas formas aunque utilizar un iacutendice como por ejemplo Sheets(3)Select es una opcioacuten mejor que utilizar el nombre de la hoja resulta que la posicioacuten de la hoja podriacutea cambiar en el libro en caso de que antildeada elimine o mueva hojas

En vez de utilizar iacutendices los programadores expertos utilizan CodeName Cada hoja de un libro tiene un uacutenico CodeName que no cambia aunque la hoja se mueshyva o cambie de nombre incluso aunque se antildeadan otras hojas Puede ver el CodeName de las hojas simplemente yendo al Editor de Visual Basic (seleccione HerramientasgtMacrogtEditor de Visual Basic o pulse Alt Opcioacuten-Fll ) y luego mostrando la ventana de proyectos en caso de que sea necesario (seleccione VergtVentana Proyectos)

En la figura 71 el CodeName para la hoja cuyo nombre de pestantildea es Presushypuesto es Hoja3 El CodeName siempre es el nombre que aparece fuera de los

7 Trucos sobre macros 241

pareacutentesis cuando mira en la ventana de proyectos Puede hacer referencia a esta hoja con coacutedigo VBA en el libro utilizando la sentencia H o j a 3 S e l e c t e n vez de utilizar S h e e t s ( P r e s u p u e s t o ) S e l e c t o S h e e t s (3 ) S e l e c t

Archivo Edicioacuten Ver Insertar Formato Depuracioacuten Ejecutar Herramientas Complementos Ventana Ayuda

4$[ EuroTool (EUROTOOLXLA) lt5sect VBAProject (Librol)

Microsoft Excel Objetos EacutesectIacute Hojal (Datos antiguos) H Hoja2 (Datos nuevos)

13IZZZZI Q ThisWorkbook

iexclHoja3 Worksheet

Alfabeacutetica | por categoriacuteas j

I Hoja3 JDisplayFageBreaks False DisplayRightToLeft False EnableAutoFilter False EnableCalculation True EnableOutlining False EnablePivotTable False EnableSelection 0 - xlNoRestriction iexclNtildeame Presupuesto ScrollArea

Figura 71 Los CodeNames y los nombres de hojas en la ventana de proyectos de VBE

Si el libro ya estaacute lleno de coacutedigo VBE ya sea escrito a mano o grabado y que no utilice CodeNames para hacer referencia a las hojas puede cambiarlo al nivel del proyecto (es decir todo el coacutedigo que esteacute en todos los moacutedulos de libro) simplemente yendo a EdicioacutengtReemplazar mientras que esteacute en la ventana del editor

El uacutenico caso de que no puede utilizar el CodeName de una hoja es cuando hace referencia a una hoja que se encuentra en un libro diferente del que contiene el coacutedigo

Conectar de forma faacutecil botones a macros En lugar de asignar una macro a cada botoacuten a veces resultaraacute maacutes conveniente crear una uacutenica macro que gestione todos los botones

Normalmente los usuarios prefieren ejecutar las macros a traveacutes de una tecla de acceso raacutepido o a traveacutes de un botoacuten que pueda pulsarse faacutecilmente en vez de

242 Excel Los mejores trucos

tener que encontrarlas a traveacutes de menuacutes y cuadros de diaacutelogo La forma maacutes habitual de acceder a un botoacuten es a traveacutes del cuadro de herramientas Formulashyrios que estaacute disponible si selecciona la opcioacuten VergtBarras herramientasgtFormu-larios Estos botones en nuestra opinioacuten son la mejor eleccioacuten para ejecutar las macros especialmente aquellas que hayan sido grabadas ya que eacutestas normalshymente requieren que el usuario se encuentre en una hoja en particular cuando se ejecuten Esto es debido a que las macros grabadas siempre utilizan la hoja activa si graboacute la macro sin cambiar de hoja Esto significa que si el usuario no se enshycuentra en la hoja adecuada (es decir en una hoja que no es en la que se graboacute la macro) eacutesta puede que falle o haga cambios en una hoja incorrecta Por el conshytrario si utiliza botones en las hojas puede forzar al usuario a que vaya a la hoja adecuada y pulse el botoacuten para ejecutar la macro de forma que se ejecute en las condiciones adecuadas

iquestPor queacute utilizar un botoacuten del cuadro de herramientas Formularios en S^ vez de un botoacuten del cuadro de herramientas Cuadro de controles

w^ Porque los botones normalmente se utilizan para detectar un clic del ratoacuten y ejecutar una macro especiacutefica Soacutelo deberiacutea utilizar un botoacuten de comando del cuadro de herramientas Cuadro de controles cuando necesite atrapar eventos tales como doble clic clic con el botoacuten derecho etc Los controles del cuadro de herramientas Cuadro de controles se conocen como objetos ActiveX y utilizarlos simplemente para ejecutar una macro resulta una sobrecarga innecesaria para Excel sobre todo si utiliza nuacutemeros botones

Cuando tiene muchos botones en un libro y cada botoacuten se utiliza para ejecushytar una macro en especial puede asociar las macros a los botones haciendo clic con el botoacuten derecho del ratoacuten en su borde y elegir la opcioacuten Asignar macro Luego debe encontrar la macro adecuada en el cuadro de diaacutelogo y seleccionarla tal y como se muestra en la figura 72

Como cada botoacuten es normalmente utilizado para ejecutar una macro diferenshyte deberaacute desplazarse por la lista de macros para encontrar la que estaacute buscando Sin embargo existe una manera m u y sencilla para asignar a todos los botones una misma macro y auacuten asiacute hacer que cada uno de ellos ejecute una macro diferente Coloque el siguiente coacutedigo en cualquier moacutedulo estaacutendar Seleccione HerramientasgtMacrogtEditor de Visual Basic (Al t Opcioacuten-Fl l ) y cree un nuevo moacutedulo seleccionando la opcioacuten lnsertargtMoacutedulo y luego introduciendo el siguiente coacutedigo

Sub QueBoton( ) Run ApplicationCaller

End Sub

7 Trucos sobre macros 243

jsl- bull iquestpound) Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana

euro

1 A

1 Antildeadir fila Pegar

[ Solicitar

1 2

3

4 Horas

1 5 0 6 48

7 72

8 45

9 87

10 26

11 12

12 35 |H 4 bull bull H o j a l

Listo

Eliminar fila

Borrar C

Llamada bull

C

Imprimir

U - bull bull bull bull bull bull bull bull - bull bull bull bull bull bull bull bull bull

D E

I

Nombres

Juan Garciacutea

Mariacutea Serrano

Marta Salvador

Santos Palacios

Gonzalo Domiacutenguez

Carlos Buitrago

Susana Mulero

Lanolina Estrada Hoja2 Hoja3

Jombre de la macro

Libro2 ThisWorkbook Imprimir

Libro2 ThisWorkbook AnadirFila Libro2 ThisWorkbook Borrar bullydeg^IhJsWQr|^QQSEMlD^M

Libro2 ThisWorkbook Ir ASemana 1 y 2 Libro2 ThisWorkbook Ir ASemanaSy 4 Libro2 ThisWorkbook Llamada Libro2 ThisWorkbook PegarValores Libro2 ThisWorkbook Solicitar Libro2 ThisWorkbook Solicitar

Raeros en iexclEste libro

Descripcioacuten

1

i 4 1

bull-V

ffl-

F

3 [ J

3

Jnlxll - - S x

G

Aceptar 1

Cancelar

Nuevo j

Grabar

NUM

I-mdash

Figura 72 Botoacuten Imprimir activo teniendo

seleccionado y con el cuadro de diaacutelogo Asignar macro seleccionada tambieacuten la macro en cuestioacuten

Ahora simplemente necesita asignar a cada botoacuten el mismo nombre que tieshyne la macro que deberiacutea ejecutar Para cambiar el nombre de un botoacuten simpleshymente haga clic en eacutel y reemplace el nombre que aparece en el Cuadro de nombres (que estaacute a la izquierda de la barra de foacutermulas) con el nombre de la macro que deberiacutea ejecutar Haga esto mismo para todos los botones De esta forma si a un botoacuten le ha llamado Macrol y le ha asignado la macro QueBoton cuando haga clic sobre eacutel ejecutaraacute la macro Macrol

Crear una ventana de presentacioacuten para un libro Las ventanas de presentacioacuten proporcionan un toque de distincioacuten a una aplicacioacuten sin mencionar el hecho de que le entretienen mientras que la aplicacioacuten se carga iquestPor queacute no hacer que las hojas de caacutelculo hagan lo mismo

Es posible utilizar las caracteriacutesticas proporcionadas por VBA para crear una pantalla de presentacioacuten para cualquier libro Encontraraacute que el proceso es mushycho maacutes sencillo de lo que se habriacutea imaginado Para crear una pantalla de preshysentacioacuten que se muestre entre cinco y diez segundos en el momento en el que se abra un libro y que luego se cierre automaacuteticamente comenzaremos abriendo el

244 Excel Los mejores trucos

editor de Visual Basic seleccionando HerramientasgtMacrogtEditor de Visual Basic Luego seleccione I n se rtargt UserForm Si no aparece el cuadro de controles simshyplemente seleccione VergtCuadro de herramientas

En el cuadro de herramientas haga clic en el icono Etiqueta (para encontrarshylo simplemente pase por encima de cada icono y veraacute un pequentildeo cuadro de ayuda que le mostraraacute el nombre de cada uno) Haga clic en cualquier parte del formulario para insertar la etiqueta Luego utilice los cuadros que aparecen a su alrededor para cambiar el tamantildeo de forma que pueda escribir texto dentro del etiqueta Teniendo seleccionada la etiqueta vuelva a hacer clic en ella Con ello entraraacute en el modo de edicioacuten de texto y podraacute marcar el texto predefinido que aparece dentro de ella

Dentro de la etiqueta escriba el texto Mi pantalla de presentacioacuten Para camshybiar otras propiedades de la etiqueta (el tamantildeo de la fuente el color etc) aseshyguacuterese de tener la seleccionada y luego pulse F4 o bien seleccione la opcioacuten VergtVentana Propiedades Ahiacute puede cambiar todas aquellas propiedades que desee Ahora haga doble clic en el formulario (no en la etiqueta) y seleccione el evento I n i t i a l i z e que aparece en el cuadro de lista desplegable de la parte superior derecha de la ventana como se muestra en la figura 73

^Mmiwmmmmmmmamp^- bull ampsect Archivo Edicioacuten Ver Insertar Formato Depuracioacuten

bullbull bull XI

J - iexcl ~ g - E u r o T o o l (EUROTOOLXLA)

i - ltjg VBAProject (Libro2xls) 11 - Microsoft Excel Objetos S] Hojal (Hojal)

| Q ThisWorkbook j - v Formularios

El UserForm 1

] j UserForm 1 UserForm ~^]

Alfabeacutetica | por categoriacuteas |

fflsectamp9flflflHH UserForm 1 - 1 I iexclBackColor bull ampH8000000Famp i J BorderColor bull ampH80000012amp _J jBorderStyle 0 - fmBorderStyler Caption UserForm 1

Cycle 0 - fmCycleAllFonr DrawBuffer 32000 i

Enabled True j

Font Tahoma |

IForeColor bull ampH800000128tZJ |

JJ -J lt

1 UserForm

F

P r i v a t p Siuuml

End Sub

i l iLJ

JnJuumlJ Ejecutar Herramientas Complementos Ventana Ayuda

v i _ J v Liacuten 2 Col 1

3 Click

Click Dbiciick

Error

KevDown KeyPress KeyUp Layout MouseDown MouseMove

- S x

raquo - _ _ _ _ _ _ j

R i

JJ^I Figura 73 Cuadro de lista desplegable con los diferentes eventos para el objeto UserForm

Dentro de ese procedimiento introduzca el siguiente coacutedigo

ApplicationOnTime Now + TimeValue(000005) CerrarFormulario

7 Trucos sobre macros 245

Con lo que el coacutedigo deberiacutea quedar de la siguiente forma

Priacutevate Sub UserForm_Initialize( ) ApplicationOnTime Now + TimeValue(000005) CerrarFormulario

End Sub

A continuacioacuten vaya a InsertargtMoacutedulo e introduzca el siguiente coacutedigo exacshytamente como se muestra

Sub CerrarFormulario( ) Unload UserForml End Sub

Ahora todo lo que necesita es escribir algo de coacutedigo en el moacutedulo privado del objeto Workbook (ThisWorkbook) En el explorador de proyectos deberiacutea ver el nombre del libro Expanda las carpetas que se encuentran debajo de libro hasta que encuentre ThisWorkbook dentro de la carpeta Microsoft Excel Objetos Haga doble clic en ThisWorkbook para mostrar su moacutedulo privado En dicho moacutedulo privado introduzca el siguiente coacutedigo

Private Sub Workbook_Open( ) UserFormlShow

End Sub

Cierre la ventana para volver a Excel Guarde y cierre el libro y vuelva a abrirshylo para ver la ventana de presentacioacuten en accioacuten Puede ver un ejemplo de esto en la figura 74

Figura 74 Pantalla de presentacioacuten de ejemplo en accioacuten

246 Excel Los mejores trucos

Simplemente recuerde que la pantalla de presentacioacuten deberiacutea mostrarse tan soacutelo por un periacuteodo corto de tiempo y soacutelo deberiacutea contener texto resumido y relevante Si muestra esta pantalla durante maacutes de diez segundos puede resultar molesto para el usuario

Mostrar un mensaje de Por favor espere iquestHa tenido alguna vez una de esas macros que parece tardar una eternidad para completarse Si esto resulta un problema puede hacer que Excel muestre un mensaje de Por favor espere al usuario

Muchos usuarios esperan que el coacutedigo se ejecute y se complete praacutecticamenshyte de forma instantaacutenea Sin embargo esto no siempre ocurre asiacute Las macros grabadas en particular normalmente necesitan de mucho maacutes tiempo para comshypletarse que aquellos coacutedigos bien escritos en VBA Para complicar maacutes la cosa el lenguaje VBA de Excel es normalmente maacutes lento que la mayoriacutea de los lenguashyjes de programacioacuten

Por suerte podemos usar un poco de coacutedigo extra para crear un mensaje Por favor espere de forma que los usuarios sepan que el coacutedigo se estaacute ejecutando y que Excel no se ha bloqueado Por desgracia uno de los meacutetodos maacutes conocidos para hacer que los usuarios sean conscientes de que el coacutedigo se estaacute ejecutando es utilizando una barra de progreso de Excel

Existen dos problemas con este meacutetodo Uno la barra de progreso puede hacer que el coacutedigo sea todaviacutea maacutes lento complicando el problema Y dos el coacutedigo lento probablemente esteacute causado por un bucle y no puede utilizar la grabadora de macros para crear bucles

Nosotros preferimos utilizar coacutedigo VBA como el del siguiente ejemplo que utiliza un rectaacutengulo de la barra de herramientas Dibujo

Sub Hazlo( ) ApplicationScreenUpdating = True With HojalShapes(Rectangulol)

Visible = msoTrue = (Not HojalShapes(Rectangulol)Visible) End With

Cambiando las hojas forzamos a que Rectangulol se muestre mientras se ejecuta el coacutedigo

Hoja2Select HojalSelect

End Sub

Para utilizar este coacutedigo antildeada un rectaacutengulo desde la barra de herramientas Dibujo en cualquier hoja del libro Teniendo seleccionado el rectaacutengulo haga clic en el Cuadro de nombres y llame a esta figura Rectangulol

7 Trucos sobre macros 247

Introduzca el texto que desea mostrar mientras se estaacute ejecutando el coacutedigo cambie el formato la posicioacuten y el tamantildeo del rectaacutengulo si asiacute lo desea Escriba la macro anterior en un moacutedulo estaacutendar del libro Si es necesario cambie el texto Hojal por el CodeName de la hoja correspondiente en la que haya dibujado el rectaacutengulo (vimos coacutemo usar CodeName en un truco anterior) Luego vaya a HerramientasgtMacrogtMacros y ejecute la macro que acabamos de crear Esto haraacute que el rectaacutengulo se oculte

Al comienzo de este coacutedigo que es un coacutedigo lento coloque lo siguiente

Run Hazlo ApplicationScreenUpdating = False

El uso de la sentencia A p p l i c a t i o n S c r e e n U p d a t i n g = F a l s e hace que la pantalla no parpadee y que el coacutedigo sea maacutes raacutepido Para terminar al final del coacutedigo incluya la sentencia Run Haz lo Luego ejecute la macro lenta de forshyma habitual

H Hacer que una celda quede marcada o desmarcada al seleccionarla A veces resulta difiacutecil elegir opciones utilizando las casillas de verificacioacuten Por suerte podemos simplificar este proceso utilizando un poco de coacutedigo muy sencillo

Podemos utilizar los libros de Excel para recolectar datos para encuestas Norshymalmente hacemos esto ofreciendo los usuarios una serie de respuestas entre las que elegir y colocando casillas de verificacioacuten junto a ellas Entonces los usuarios activaraacuten las casillas que consideren oportunas El problema de usar este meacutetodo es que probablemente el libro acabaraacute teniendo cientos de casillas de verificacioacuten

En vez de ello podemos utilizar un coacutedigo VBA m u y sencillo para marcar cualquier celda dentro de un rango especificado en el momento en el que sea seleccionada En caso de que la celda vuelva a ser seleccionada el coacutedigo eliminashyraacute la marca El truco para este coacutedigo seraacute utilizar la letra a en dichas celdas utilizando la fuente Marlett Cuando llegue el momento de recolectar los resultashydos simplemente utilizaremos la funcioacuten CONTARSI para contar las apariciones de la letra a como se muestra a continuacioacuten

= C O N T A R S I ( $ A $ 1 $ A 1 0 0 a )

Los siguientes coacutedigos de ejemplo soacutelo funcionan para el rango Al A100 pero puede modificarlos faacutecilmente para que se ajusten a cualquier rango Para utilishyzar el coacutedigo active la hoja en la que deberiacutea mostrarse las marcas haga clic con el botoacuten derecho del ratoacuten sobre el nombre de la hoja (en la pestantildea de la parte

248 Excel Los mejores trucos

inferior de la ventana) y luego seleccione la opcioacuten Ver coacutedigo Escriba el primer coacutedigo (si desea que las celdas se activen con un solo clic) o el segundo coacutedigo (si desea que se activen con un doble clic)

COacuteDIGO 1 - Marcar casillas con un uacutenico clic

Private Sub Worksheet_SelectionChange(ByVal Target As Range) If TargetCellsCountgtl Then Exit Sub

If Not Intersect(Target Range(AlA100)) Is Nothing Then TargetFontNtildeame = Marlett If Target = vbNullString Then

Target = a Else

Target = vbNullString End If

End If End Sub

COacuteDIGO 2 - Marcar casillas con un doble clic

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range Cancel As Boolean)

If Not Intersect(Target Range(AlA100)) Is Nothing Then Cancel = True Evita que se entre en modo de edicioacuten

TargetFontNtildeame = Marlett If Target = vbNullString Then

Target = a Else

Target = vbNullString End If

End If End Sub

Una vez que haya colocado el coacutedigo deseado en su lugar simplemente cierre la ventana para volver a Excel y luego guarde el libro Si desea averiguar si una celda estaacute o no activada simplemente examine sus contenidos

Contar o sumar celdas que tengan un color de relleno especiacutefico Tarde o temprano necesitaraacute utilizar SUMA o CONTAR para sumar o contar celdas que tengan un cierto color de relleno y que un usuario haya cambiado manualmente ya que normalmente los usuarios ven maacutes sencillo utilizar colores que utilizar nombres de rangos

Para poder hacer esto primeramente abra el libro en el que desee contar o sumar celdas dependiendo del color de relleno Vaya a HerramientasgtMacrogtEditor

7 Trucos sobre macros 249

de Visual Basic (AltOpcioacuten-Fll) y luego seleccione lnsertargtMoacutedulo para insershytar un moacutedulo estaacutendar Dentro de este moacutedulo escriba el siguiente coacutedigo

Function FuncionColor(rColor As Range rRange As Range Optional SUM As Boolean) Dim rCell As Range Dim ICol As Long Dim vResult

ICol = rColorInteriorColorlndex

If SUM = True Then For Each rCell In rRange If rCellInteriorColorlndex = ICol Then

vResult = WorksheetFunctionSUM(rCell) + vResult End If

Next rCell Else

For Each rCell In rRange If rCellInteriorColorlndex = ICol Then

vResult = 1 + vResult End If

Next rCell End If

FuncionColor = vResult End Function

Ahora ya puede utilizar la funcioacuten personalizada FuncionColor en las foacutermushylas de la siguiente forma

=FuncionColor($C$1$A$1$A$12TRUE)

que suma los valores dentro del rango $A$1$A$12 que tengan el mismo color que la celda $C$1 En este caso la funcioacuten para una suma porque hemos utilizado TRUE como uacuteltimo argumento para la funcioacuten Si desea contar las celshydas en vez de sumarlas pero solamente aquellas cuyo color sea como el de la celda $C$1 utilice la siguiente expresioacuten

=FuncionColor($C$1$A$1$A$12FALSE)

o

=FuncionColor($C$1$A$1$A$12)

Si omitimos el uacuteltimo argumento la funcioacuten utiliza automaacuteticamente el vashylor predeterminado de FALSE (falso) Ahora ya puede sumar o contar celdas que tengan un color de relleno especiacutefico faacutecilmente tal y como se muestra en la figura 75

250 Excel Los mejores trucos

1 2 3 4

5 6 7 8

9 10 11 12 13 14 15 16 17 18

A B C D E 20 22 23 25 26 27 29 30 31 32 54 21 78 =FiincionColor($C$1$A$1$A$12VERDADERO)

3 =FuncionColor($C$1$A$1$A$12)

F

Figura 75 Utilizar la funcioacuten personalizada FuncionColor para contar dependiendo del color de relleno

Q Q Q Antildeadir el control Calendario de Microsoft Excel sect B3fM a cualquier libro

^ ^ ^ ^ ^ trade Si desea asegurarse de que los usuarios introducen fechas correctamente el control Calendario de Excel puede facilitar las cosas tanto para usted como para los usuarios de la hoja de caacutelculo Con este truco podraacute antildeadir un control Calendario a cualquier libro de Excel

A menos que una fecha sea introducida correctamente Excel no la reconoceraacute como vaacutelida Esto significa que a veces no puede realizar ciertos caacutelculos con aquellos datos que parezcan fechas pero que en realidad no lo son Tambieacuten sigshynifica que cualquier graacutefico o tabla dinaacutemica que se base en dichas fechas no seraacute vaacutelida Aunque puede ayudarnos la funcioacuten de validacioacuten de Excel (descrita en el capiacutetulo 2) estaacute lejos de ser la maacutes correcta

Con este truco podremos antildeadir un control Calendario a cualquier libro de Excel Para comenzar abra el libro en el que desee utilizar el calendario Resulta una buena idea utilizar el archivo Personalxls para esto en cuyo caso primerashymente deberiacutea mostrarlo seleccionando la opcioacuten VentanagtMostrar Si esta opcioacuten esta desactivada significa que no tiene auacuten un archivo Personalxls Puede crear uno faacutecilmente grabando una macro muy sencilla Seleccione HerramientasgtMacrogt Grabar nueva macro y luego elija a la opcioacuten Libro de macros personal en el cuadro de lista desplegable Guardar macro en Haga clic en Aceptar seleccione cualquier celda y luego detenga la grabacioacuten Con ello Excel crearaacute el archivo Personalxls automaacuteticamente

A continuacioacuten seleccione HerramientasgtIVIacrogtEditor de Visual Basic (Alt Opcioacuten-F l l ) y entonces seleccione lnsertargtUserForm Esto deberiacutea mostrar el

7 Trucos sobre macros 251

cuadro de herramientas de controles (si no es asiacute seleccione VergtCuadro de heshyrramientas) Haga clic con el botoacuten derecho del ratoacuten en el cuadro de controles y seleccione la opcioacuten Controles adicionales Desplaacutecese por la lista hasta que enshycuentre el elemento Control Calendario 100 (el nuacutemero de versioacuten puede depenshyder de el producto Excel que tenga instalado) Active la casilla de verificacioacuten para dicho control y haga clic en Aceptar Apareceraacute entonces el icono del conshytrol calendario Haga clic en eacutel y luego haga clic en el formulario que acabamos de crear

Utilice los pequentildeos recuadros del control y del formulario para cambiar sus tamantildeos de forma que queden como en la figura 76

F yen

i iaiai^a^^gw ^sect Archivo Edicioacuten Ver Insertar Formato Depuracioacuten Ejecutar Herramientas Complementos Ventana Ayuda

sectiexcl JI - d u -J - JJ J lt -i _J J [ 7 ] laquo ^

f l x

n

fc ltiacute

A abl m i iexcld n ^ - i I I El ra --i

F

JJ

Calendar 1 (alendar

Alfabeacutetica I p0r categoriacuteas iexcl

(Acerca de) Calendar 1

bull ampH8000000Famp

21 (Fuente)

bull ampH0UumlUuml00000amp Sistema (media) lun En relieve (Fuente)

bull ampHUuml0A00Uuml00amp n ftHntildennnnnmftiacute JUumlJ

may 2004 [2004^] f

lun

3

10

17

24

31

mar

4

11

18

25

mieacute

5

12

19

26

jue

6

13

20

27

vie

7

14

21

28

saacuteb

1

8

15

J-

29

dom I 2

9

16

23

30

Figura 76 Insertar un control calendario

Aseguacuterese de que el formulario esteacute seleccionado (como aparece en la figura 76) y luego vaya a la opcioacuten VergtVentana Propiedades En ella seleccione la propiedad Caption y cambie el texto que aparece por la palabra Calendario Ahora vaya a VergtCoacutedigo y en el moacutedulo privado antildeada el siguiente coacutedigo

Priacutevate Sub Calendarl_Click( ) ActiveCell = CalendarlValueacute

252 Excel Los mejores trucos

End Sub

Priacutevate Sub UserForm_Activate( ) Me Calendan Valueacute = Date

End Sub

Seleccione ahora la opcioacuten lnsertargtMoacutedulo y en el moacutedulo privado escriba el siguiente coacutedigo

Sub Mostrar( ) UserFormlShow

End Sub

Cierre esta ventana para volver a Excel Vaya a HerramientasgtMacrogtMacros y seleccione la macro Mostrar Haga clic en el botoacuten Opciones asigne una tecla de acceso raacutepido y todo estaraacute listo Simplemente pulse esa tecla y apareceraacute el cashylendario con la fecha de hoy Puede hacer clic en cualquier fecha y veraacute coacutemo se inserta en la celda activa

Proteger por contrasentildea y desproteger todas las hojas de caacutelculo raacutepidamente Por desgracia no existe la posibilidad en Excel de proteger y desproteger todas las hojas de caacutelculo de golpe Sin embargo con un simple coacutedigo podemos hacerlo

Excel proporciona un mecanismo de proteccioacuten que puede antildeadirse a las hojas de caacutelculo mediante la opcioacuten HerramientasgtProteccioacutengtProteger hoja Es posible tambieacuten indicar una contrasentildea de forma que otros usuarios no puedan acceder a la hoja a menos que conozcan dicha contrasentildea A veces sin embargo desearaacute proteger con contrasentildea y desproteger todas las hojas de un libro de forma raacutepishyda ya que protegerlas y desprotegerlas una a una resulta m u y tedioso A contishynuacioacuten veamos coacutemo podemos simplificar esta tarea

Abra el libro en el que desea aplicar el coacutedigo Tambieacuten puede seleccionar la opcioacuten VentanagtMostrar para mostrar el archivo Personalxls de forma que dicho coacutedigo esteacute disponible para todos los libros En caso de que esta opcioacuten esta desactivada significa que todaviacutea no tiene un archivo Personalxls Puede crear u n o faacutecilmente g rabando u n a macro m u y sencilla Para ello seleccione HerramientasgtMacrogtGrabar nueva macro y elegir el libro de macros personales como destino Luego haga clic en Aceptar haga clic en cualquier celda y detenga la grabacioacuten A Excel crearaacute el archivo Personalxls automaacuteticamente

A continuacioacuten seleccione HerramientasgtMacrogtEditor de Visual Basic (Alt Opc ioacuten-F l l ) y luego seleccione lnsertargtL)serForm Esto deberiacutea mostrar un for-

7 Trucos sobre macros 253

mulario y el cuadro de herramientas Si no fuese asiacute puede abrirlo a traveacutes del menuacute Ver

En el Cuadro de herramientas seleccione el cuadro de texto (cuyo icono es ab |) Luego haga clic en el formulario para antildeadir ese control en eacutel Coloacutequelo en la esquina superior izquierda del formulario y cambie el tamantildeo seguacuten sus prefeshyrencias

Teniendo seleccionado el cuadro de texto seleccione VergtVentana Propiedades (F4) En la ventana de propiedades desplaacutecese hacia abajo hasta encontrar la propiedad PasswordChar y en el cuadro de texto situado su derecha introduzca un asterisco () Vuelva al cuadro de herramientas seleccione el icono Botoacuten de comando y haga clic en el formulario colocaacutendolo en la esquina superior dereshycha del mismo

Teniendo seleccionado el botoacuten de comando vaya a la ventana de propiedades y en ella desplaacutecese hacia abajo hasta encontrar la propiedad Caption En el cuashydro de texto situado su derecha introduzca el texto Aceptar En caso de estar utilizando Excel 97 tambieacuten debe encontrar la propiedad TakeFocusOnClick y establecer su valor en F a l s e Ahora seleccione el formulario nuevamente y en la ventana de propiedades encuentre la propiedad Caption Cambie su valor por el texto Protegerdesproteger todas las hojas Al final del formulario deberiacutea pareshycerse al que se muestra en la figura 77

tnuumlmmmwMmmmmmmm njid Archivo Edicioacuten Ver Insertar Formato Depuracioacuten Ejecutar Herramientas Complementos Ventana Ayuda

-0 l

r i u r o T o o l (EUROTOOLXLA) V i

L VBAProject (Libro3) i

Microsoft E gt cel Obietos j

H j H o i a l (Hoial) j

a]Hoia (Hoia) J

B]Hoia3(Hoia3) Q ThisWotlbool iexcl

nsmanaraia UserForml UserForm

Alfabeacutetica I por categoriacuteas

j(Name)

IacuteBackColor

IBorderColor BorderStyle

RU^MiHjBH IacuteCycle

iDrawBuffer

lEnabled

iFont

iForeColor

UserForml

bull ampH8000000Famp bull ampJH80000012amp

0 - fmBorderStyler

SUffi Pr oteger despr oti

0 - fmCvcleAllForrr

32000

True

Tahoma

bull ampH80000012amp

[bull[bull

pUfflWjK

~ t bull bull bull bull bull

f

bull Iacute Iacute

uumluuml-niacute bull iHIacuteiiacute]iacuteM

Diii

j Aceptar

iraquo

_2H||

l - f i ^W-

zMsmnna

Figura 77 Formulario insertado en VBE

254 Excel Los mejores trucos

Seleccione la opcioacuten VergtCoacutedigo (F7) e introduzca el siguiente coacutedigo exactashymente igual que como aparece

Priacutevate Sub CommandButtonl_Click( ) Dim wSheet As Worksheet

For Each wSheet In Worksheets If wSheetProtectContents = True Then

wSheetUnprotect Password=TextBoxlText Else

wSheetProtect Password=TextBoxlText End If

Next wSheet Unload me

End Sub

Este coacutedigo se recorre todas las hojas que hay en el libro activo En caso de que haya alguna protegida la desprotege utilizando la contrasentildea introducida en el cuadro de texto Si la hoja ya estaba desprotegida entonces la protege utilizando la contrasentildea Ahora vaya a lnsertargtMoacutedulo introduzca el siguiente coacutedigo

Sub MostrarContrasentildea( ) UserFormlShow

End Sub

Este coacutedigo sirve para mostrar el formulario Ahora cierre esta ventana para volver a la ventana principal de Excel

Vaya a HerramientasgtMacrogtMacros (AltOpcioacuten-F8) Seleccione la macro MostrarContrasentildea y haga clic en el botoacuten Opciones para asignar una tecla de acceso raacutepido Cuando pulse dicha tecla todas las hojas desprotegidas se proteshygeraacuten y las que estuviesen protegidas quedaraacuten desprotegidas

Como esta macro no le pide que confirme la contrasentildea deberaacute estar muy seguro de lo que escriba De lo contrario puede encontrarse con que una contrasentildea mal escrita le bloquee todas las hojas de caacutelculo

Si solamente estaacute protegiendo los contenidos de usted mismo la siguiente macro realiza las mismas tareas pero utilizando una contrasentildea en blanco

Option Explicit

Sub Proteger_desproteger( ) Dim wSheet As Worksheet

For Each wSheet In Worksheets With wSheet

If ProtectContents = True Then

7 Trucos sobre macros 255

Unprotect Password= Else

Protect Password= End If

End With Next wSheet

End Sub

Aunque esto no sea demasiado seguro realmente puede resultar m u y conveshyniente

Recuperar el nombre y la ruta de un libro de Excel Tarde o temprano desearaacute devolver en una celda el nombre de un libro o incluso el nombre del archivo y la ruta del mismo Con este truco le resultaraacute sencillo recuperar dicho nombre y ruta

Las tres funciones definidas por el usuario que explicamos en este apartado colocan el nombre de un libro dentro de una celda o el nombre de archivo y la r u t a del l ibro en u n a celda Los dos p r imeros ejemplos MiNombre y MiNombreCompleto no tienen argumentos El uacuteltimo NombreHoja se utiliza en lugar de anidar la funcioacuten EXTRAER y las otras dos funciones dentro de la funcioacuten CELDA para obtener el nombre de la hoja un proceso que normalmente requeririacutea la siguiente foacutermula espantosa

=EXTRAER(CELDA(nombrearchivo$A$l)ENCONTRAR(] CELDA(nombrearchivo$A$1))+12 5 5)

Como puede ver esto requiere ciertamente escribir bastante para un resultashydo tan simple Es por ello que hemos desarrollado nuestra propia funcioacuten NombreHoja

Para utilizar esta funcioacuten definida por el usuario pulse Alt Opcioacuten-Fl l seshyleccione InsertargtMoacutedulo y copie el siguiente coacutedigo

Function MiNombre( ) As String MiNombre = ThisWorkbookNtildeame

End Function

Function MiNombreCompleto( ) As String MiNombreCompleto = ThisWorkbookFulIName

End Function

Function NombreHoja(rAnyCell) ApplicationVolatile NombreHoja = rAnyCellParentNtildeame

End Function

uuml

256 Excel Los mejores trucos

Guarde estas funciones y cierre la ventana Ahora la funcioacuten apareceraacute en la categoriacutea de funciones definidas por el usuario en el asistente para funciones

Puede utilizar estas funciones tal y como se muestra en la figura 78 No necesitan argumentos Las foacutermulas que hay en la columna A se muestran como demostracioacuten y no tienen ninguacuten efecto en el resultado

Foacutermula

=MiNombreQ

=MiNornb re Completo

=C E LD A( n o m b re a re h ivo)

=NombreHoja(A1)

B

Resultado

Presupuestosxls

CMis docurnentosExcelPresupuestos xIs

C M i s d o c u rn e nt o sE x c e l[ P re s u p u e st o s x I s ] H o j a 1

Hojal

Figura 78 Las funciones y sus resultados

En la celda A4 de la figura 78 tambieacuten hemos colocado la funcioacuten H estaacutendar CELDA que devuelve el nombre de un libro la ruta del archivo

w V y el nombre de la hoja activa En otras palabras esta funcioacuten estaacutendar devuelve informacioacuten acerca del sistema operativo actual informacioacuten sobre formatos ubicacioacuten y contenidos de un libro

Ir maacutes allaacute del liacutemite de tres criterios del formato condicional Podemos utilizar VBA para trucar el formato condicional de forma que utilice maacutes de tres criterios sobre los datos De hecho podemos utilizar el coacutedigo para aplicar virtualmente un nuacutemero ilimitado de criterios

Excel dispone de una caracteriacutestica muy interesante llamada Formato condishycional (que ya vimos en el capiacutetulo 2) Puede encontrarla a traveacutes de la opcioacuten de menuacute FormatogtFormato condicional El formato condicional le permite dar forshymato a las celdas en base a su contenido Por ejemplo puede poner en color rojo el fondo de aquellas celdas cuyos valores seraacuten superiores a 5 pero menores que 10 Aunque esto es muy uacutetil el problema estaacute en que soacutelo podemos utilizar hasshyta tres condiciones lo cual a veces puede no ser suficiente Si desea utilizar maacutes de tres condiciones podemos utilizar coacutedigo VBA de Excel que sea ejecutado automaacuteticamente cada vez que un usuario cambie un rango especiacutefico Para ver coacutemo funciona esto digamos que tiene seis condiciones separadas en el rango de celdas Al A10 en una hoja en particular Rellene algunos datos de la misma forshyma que aparecen en la figura 79 Guarde el libro luego active la hoja de caacutelculo haga clic con el botoacuten derecho del ratoacuten sobre su nombre (en la pestantildea de la parte inferior) seleccione Ver coacutedigo y luego introduzca el siguiente coacutedigo

7 Trucos sobre macros 257

Priacutevate Sub Worksheet_Change(ByVal Target As Range)

Dim icolor As Integer If Not Intersect(Target Range(AlA10)) is Nothing Then Select Case Target Case 1 To 5

icolor = 6 Case 6 To 10

icolor = 12 Case 11 To 15

icolor = 7 Case 16 To 20

icolor = 53 Case 21 To 25

icolor = 15 Case 26 To 30

icolor = 42 Case Else Cualquier cosa

End Select TargetInteriorColorlndex = icolor

End If

End Sub

Ahora cierre esta ventana para volver a la hoja de caacutelculo Los resultados deshyberiacutean parecerse a los que se muestran en la figura 710

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 13

A Nuacutemeros

3

3

13

18 23 28 3 7 12 17 23 28

B

Figura 79 Datos rellenados para el experimento del formato condicional

El color de fondo de cada celda deberiacutea haber cambiado basaacutendose en el nuacutemeshyro pasado a la variable i c o l o r que de hecho pasa este nuacutemero a T a r g e t I n t e r i o r C o l o r l n d e x El nuacutemero pasado estaacute determinado por la liacutenea de coacuteshydigo Case x To x Por ejemplo si introduce el nuacutemero 22 en cualquier celda

258 Excel Los mejores trucos

dentro del rango A1A10 el nuacutemero 15 es asignado a la variable i c o l o r que a su vez pasa ese valor a T a r g e t I n t e r i o r C o l o r l n d e x haciendo que la celda quede en gris T a r g e t siempre hace referencia a la celda que ha cambiado y por lo tanto lanzoacute la ejecucioacuten del coacutedigo

A 1 Nuacutemeros 2 3 3 4 j - 8 5

I 6 13 7

I 8 SEacuteSiPISUumlIil 9 23

10 mmm 11 3 12 7 13 12 14 17 15 23 16 28 17

| 18

B

Figura 710 Como deberiacutean aparecer los datos una vez que se haya introducido el coacutedigo

Q Q S | Ejecutar procedimientos en hojas protegidas ^KIacuteK^I

L a s m a c r o s de Excel son una gran forma de ahorrar tiempo y eliminar K f i f l errores Sin embargo tarde temprano querraacute probar a ejecutar sus macros

favoritas en hojas que han sido protegidas ya sea con o sin contrasentildea lo que provocaraacute un error de ejecucioacuten Podemos evitar este problema con el siguiente truco

Si alguna vez ha intentado ejecutar una macro de Excel en una hoja de caacutelcushylo que ha sido protegida sabe que tan pronto como se encuentra la hoja en cuesshytioacuten la macro probablemente no funciona y mostraraacute un error de ejecucioacuten

Una forma de evitar que esto suceda es utilizar cierto coacutedigo como el que se muestra a continuacioacuten para desproteger y luego volver a proteger la hoja

Sub MiMacro( )

HojalUnprotect Password=Secreta

bullSU COacuteDIGO

HojalProtect Password=Secreta

End Sub

7 Trucos sobre macros 259

Como puede ver el coacutedigo desprotege la Hojal con la contrasentildea Secreta ejecuta el coacutedigo y luego vuelve a protegerla con la misma contrasentildea Esto funshycionaraacute aunque tiene algunas desventajas Una de ellas es que el coacutedigo podriacutea tener alguacuten fallo y detenerse antes de llegar al final donde se encuentra la senshytencia S h e e t l P r o t e c t Pas sword = S e c r e t a Esto hariacutea que por supuesshyto la hoja quedase desprotegida Otro problema es que necesitaraacute un coacutedigo similar para todas las macros y todas las hojas de caacutelculo

Otro camino para evitar este problema es utilizar U s e r l n t e r f aceOnly que es un argumento opcional del meacutetodo P r o t e c t y que puede establecer en True (de forma predeterminada este argumento vale F a l s e ) Al establecer este argushymento a True Excel permitiraacute que todas las macros VBA se ejecuten en aquellas hojas que esteacuten protegidas ya sea con o sin contrasentildea Sin embargo si utiliza el meacutetodo P r o t e c t con argumento U s e r l n t e r f aceOnly establecido en True en una hoja de caacutelculo y luego graba el libro toda la hoja (no solamente la interfaz) quedaraacute completamente protegida cuando vuelva a abrir el libro Para volver a establecer el argumento U s e r l n t e r f aceOnly a True despueacutes de que el libro sea abier to debe volver a u t i l i za r el meacute todo P r o t e c t con el a r g u m e n t o U s e r l n t e r f a c e O n l y a True

Para evitar esta molestia puede utilizar el evento WorkbookOpen el cual es ejecutado tan pronto como se abra el libro Dado que eacuteste es un evento del objeto ThisWorkbook debe colocar el siguiente coacutedigo en un moacutedulo privado de ThisWorkbook Para ello en las versiones de Windows de Excel haga clic con el botoacuten derecho del ratoacuten en el icono de Excel situado en la esquina superior izshyquierda y luego seleccione la opcioacuten Ver coacutedigo En Macintosh abra el objeto Workbook desde la ventana de proyectos del Editor de Visual Basic A continuashycioacuten introduzca el siguiente coacutedigo

Priacutevate Sub Workbook_Open( ) Si tiene diferentes contrasentildeas para cada hoja

Sheets(l)Protect Password=Secreta UserlnterFaceOnly=True Sheets(2)Protect Password=Codorniz UserlnterFaceOnly=True

Repetir tantas veces como sea necesario

End Sub

Este coacutedigo resulta bueno si cada hoja en la que desea que funcionen las macros tiene una contrasentildea diferente o si no desea proteger todas las hojas Puede estashyblecer el argumento U s e r l n t e r f aceOnly a True sin tener que desproteger prishymero Si desea establecer el argumento U s e r l n t e r f aceOnly a True en todas las hojas y eacutestas tienen la misma contrasentildea puede utilizar el siguiente coacutedigo que deberaacute ser colocado en el mismo lugar en el que fue colocado el anterior

260 Excel Los mejores trucos

Priacutevate Sub Workbook_Open( ) Dim wSheet As Worksheet

For Each wSheet In Worksheets wSheetProtect Password=Secreta _

UserlnterFaceOnly=True Next wSheet

End Sub

Ahora cada vez que abra el libro el coacutedigo se ejecutaraacute y estableceraacute la proshypiedad U s e r l n t e r f aceOnly a True permitiendo a las macros operar sin que por ello queden desprotegidas las hojas de cara a los usuarios

^ ^ ^ Q Distribuir macros 11 ^ V f f f ^ l Aunque puede distribuir una macro a lo largo de un libro si solamente desea

^ K ^ ^ H distribuir su funcionalidad la solucioacuten es utilizar los complementos de Excel

Un complemento de Excel no es maacutes que un libro que ha sido guardado como un complemento yendo a la opcioacuten ArchivogtGuardar como y luego seleccionando la opcioacuten Complemento de Microsoft Excel (xla) Una vez que sea guardado y vuelto a abrir el libro quedaraacute oculto y soacutelo podraacute ser visto a traveacutes del explorashydor de proyectos en el Editor de Visual Basic No estaacute oculto de la misma forma que lo estaacute el archivo Personalxls ya que eacuteste siacute se puede ver a traveacutes de la opcioacuten VentanagtMostrar Una vez haya completado el libro que desea utilizar como un complemento debe guardar una copia de eacutel Puede guardarlo en cualshyquier ubicacioacuten que desee pero aseguacuterese de apuntarse doacutende lo colocoacute

Abra cualquier libro y en el menuacute Herramientas seleccione la opcioacuten Compleshymentos y luego haga clic en Examinar Encuentre el complemento en el lugar en el que lo haya grabado seleccioacutenelo y luego haga clic en el botoacuten Aceptar

Aseguacuterese de que el complemento aparece en la lista de complementos disposhynibles y de que la casilla de verificacioacuten esteacute activada Luego haga clic en Aceptar para instalar el complemento Puede guardar la mayoriacutea del coacutedigo en un comshyplemento de Excel sin tener que hacer demasiados cambios De todas formas existen algunas consideraciones que deberaacute tener en cuenta

bull El objeto ThisWorkbook siempre haraacute referencia al complemento no al libro del usuario En vez de ello debe utilizar el objeto Act iveWorkbook

bull No puede hacer referencia a hojas en A c t i v e W o r b o o k ut i l izando CodeNames

bull Siempre debe devolver las barras herramientas etc al lugar en el que el usuario las teniacutea originalmente No hay nada peor que un complemento que cambie todas las configuraciones del usuario sin su consentimiento

7 Trucos sobre macros 261

bull Siempre debe incluir alguacuten tipo de gestioacuten de errores (siacute la mayoriacutea de los complementos causaron errores en algunas ocasiones)

bull Tenga en cuenta que el usuario puede tener muchos sistemas de protecshycioacuten aplicados Nunca utilice coacutedigo para desproteger cualquier parte de libro del usuario Simplemente muestre un mensaje preguntando al usuario si le permite desproteger el libro

bull Haga buen uso de la hoja de que dispone en el complemento Utilizaremos las hojas para almacenar configuraciones como puedan ser barras herrashymientas

bull Si se mantiene pulsada la tecla Mayuacutes no se evitaraacute que se ejecuten los eventos del complemento (a diferencia de coacutemo ocurre con los archivos normales xls)

bull Si desea explorar o trabajar nuevamente el complemento ya sea para inshycorporar actualizaciones o para hacer modificaciones vaya al Editor de Visual Basic estando el complemento instalado y desde la ventana de proshypiedades seleccione la propiedad I sAdd in y establezca su valor a F a l s e Si desea guardar el libro como un complemento esta propiedad volveraacute a estar en True

bull Aplique alguna proteccioacuten a los moacutedulos de su complemento seleccionanshydo la opcioacuten HerramientasgtPropiedades de VBProject y yendo a la pestantildea Proteccioacuten

Una vez que haya creado el complemento necesitaraacute hacer que las macros contenidas en eacutel sean sencillas de ejecutar por el usuario Todo lo esto lo conseshyguiraacute ut i l izando los eventos W o r k b o o k _ A d d i n I n s t a l l y W o r k b o o k _ A d d i n U n l n s t a l l que se encuen t ran en el moacutedu lo pr ivado del objeto ThisWorkbook Simplemente ha de hacer doble clic en ThisWorkbook del arshychivo xla y Excel le llevaraacute directamente al moacutedulo privado en donde se enshycuentra el coacutedigo tal y como se muestra en la figura 711

A continuacioacuten tenemos un ejemplo sencillo del coacutedigo

Option Explicit Dim cControl As CommandBarButton Priacutevate Sub Workbook_AddinInstall( )

On Error Resume Next Soacutelo por si acaso 1 Elimina cualquier elemento de menuacute existente que pudiese quedar ApplicationCommandBars(Worksheet Menuacute Bar)Controls(Super

Coacutedigo)Delete

Antildeade un nuevo elemento de menuacute y establece una variable CommandBarButton a eacutel

Set cControl =ApplicationCommandBars(Worksheet Menuacute Bar) ControlsAdd

262 Excel Los mejores trucos

Trabajamos con la variable With cControl

Caption = Super Coacutedigo

Style = msoButtonCaption

OnAction = MiGranMacro estaacutendar

End With On Error GoTo 0

Macro almacenada en un moacutedulo

End Sub

Private Sub Workbook_AddinUninstall( )

On Error Resume Next En caso de que ya esteacute eliminada ApplicationCommandBars(Worksheet Menuacute Bar)Controls(Super

Coacutedigo)Delete On Error GoTo 0

End Sub

Archivo Edicioacuten Ver Insertar Formato Depuracioacuten Eiecutar Herramientas Complementos Ventana Ayuda

S j H o i a l (Henal) H] Hoia2 (HoiaJ) H] Hoiai (Hoiauuml) B] Hoia4 (Ho)a4)

9 I 1 H S Iacute Formularios

EUuml UserForml

ThisWorkbook Workbook

Alfabeacutetica | por categoriacuteas ]

(Ntildeame) ThisWorkbook

f3EBBBBfei91iiaiacuteTni False AutoUpdateFrequer 0

ChangeHistoryDura 0

ConflictResolution 1 - xlUserResolutk

Date 1904 False |DisplayDrawingObie -4104 -DisplaylnkCornment True lEnableAutoRecover True

iexclEnvelopeVisible False

xlDisplay5l

Figura 711 Explorador de proyectos con el objeto ThisWorkbook seleccionado para un complemento llamado Administrador de nuacutemerosxla

Eacuteste es todo el coacutedigo que necesita para antildeadir un uacutenico elemento de menuacute

(llamado Super Coacutedigo) al final de la barra de menuacutes de la hoja actual tan pronshy

to como el usuar io instale el componente a traveacutes de la opcioacuten de menuacute

HerramientasgtComplementos Cuando se haga clic en ese elemento de menuacute una

7 Trucos sobre macros

macro (que se encuentra dentro del moacutedulo estaacutendar del complemento) se ejecushytaraacute Recuerde que el coacutedigo anterior debe ser colocado en un moacutedulo privado del objeto ThisWorkbook del complemento

Si por ejemplo desea antildeadir el elemento de menuacute antes del elemento Formashyto puede utilizar el siguiente coacutedigo

Option Explicit

Dim cControl As CommandBarButton

Priacutevate Sub Workbook_AddinInstall( )

Dim iContlndex As Integer

On Error Resume Next Just in case Elimina cualquier elemento de menuacute que nos hayamos dejado ApplicationCommandBars(Worksheet Menuacute Bar)Controls(Super

Coacutedigo)Delete Pasa el iacutendice del menuacute Formato a una variable Utilizamos el meacutetodo FindControl para encontrar su nuacutemero de

iacutendice ID number es utilizado en caso de hacer una personalizacioacuten iContlndex = ApplicationCommandBarsFindControl(ID=30006)Index

Antildeade el nuevo elemento de menuacute y establece la variable CommandBarButton a eacutel

Usamos el nuacutemero pasado a nuestra variable entera para posicionarlo

Set cControl = ApplicationCommandBars(Worksheet Menuacute Bar) ControlsAdd(Before=iContIndex)

Trabajamos con la variable With cControl

Caption = Super Code

Style = msoButtonCaption

OnAction = MiGranMacro Macro almacenada en un moacutedulo estaacutendar End With

On Error GoTo 0 End Sub

En este caso no deberiacutea tener que cambiar el coacutedigo de W o r k b o o k _ A d d i n U n i n s t a l l ( )

En estos ejemplos todo el coacutedigo para el elemento de menuacute se encuentra en W o r k b o o k _ A d d i n I n s t a l l y Workbook_Add inUnIns t a l l Esto no resulta un problema cuando el coacutedigo soacutelo antildeade un elemento de menuacute Sin embargo si quiere antildeadir maacutes de un elemento y quizaacute elementos de submenuacute deberiacutea coloshycar el coacutedigo en un procedimiento (o dos) dentro de un moacutedulo estaacutendar Luego tendriacutea que utilizar un coacutedigo parecido al que le mostramos a continuacioacuten

Priacutevate Sub Workbook_AddinInstall( ) Run AnadirMenus

End Sub

Priacutevate Sub Workbook AddinUninstall( )

264 Excel Los mejores trucos

Run EliminarMenu End Sub

En el moacutedulo estaacutendar escriba un coacutedigo parecido al siguiente

Sub AnadirMenus( ) Dim cMenul As CommandBarControl Dim cbMainMenuBar As CommandBar Dim iHelpMenu As Integer Dim cbcCutomMenu As CommandBarControl

1(1)Elimina cualquiera que exista Debemos usarOn Error Resume next por si no existiera

On Error Resume Next

ApplicationCommandBars(Worksheet Menuacute Bar)Controls(ampNuevo

menuacute)Delete

(2)Establecemos la variable CommandBar a la barra de menuacutes de la hoja Set cbMainMenuBar =

ApplicationCommandBars(Worksheet Menuacute Bar)

1(3)Devolvemos el iacutendice del menuacute Ayuda Podemos usar esto para colocar un elemento de _

menuacute delante de eacutel iHelpMenu = _

cbMainMenuBarControls(Help)Index

1(4)Antildeadimos un control a Worksheet Menuacute Bar antes del menuacute Ayuda Establecemos una variable CommandBarControl a eacutel

Set cbcCutomMenu = _ cbMainMenuBarControlsAdd(Type=msoControlPopup _

Before=iHelpMenu)

(5)Damos un tiacutetulo al control cbcCutomMenuCaption = ampNuevo menuacute

1(6)Con el nuevo control antildeadimos un subcontrol y le damos un tiacutetulo para indicar _

queacute macro va a ejecutar (OnAction) With cbcCutomMenuControlsAdd(Type=msoControlButton)

Caption = Menuacute 1

OnAction = MiMacrol End With

1(6a)Antildeadimos otro subcontrol le damos un tiacutetulo y decimos queacute macro ejecutaraacute

With cbcCutomMenuControlsAdd(Type=msoControlButton) Caption = Menuacute 2 OnAction = MiMacro2

End With Repita el paso 6a para cada elemento de menuacute que desee antildeadir

7 Trucos sobre macros 265

Antildeadimos otro menuacute que formaraacute uno nuevo Establecemos la variable CommandBarControl a eacutel Set cbcCutomMenu = cbcCutomMenuControlsAdd(Type=msoControlPopup) Damos un tiacutetulo al control cbcCutomMenuCaption = ampSiguiente menuacute

Antildeadimos un control al submenuacute que acabamos de crear With cbcCutomMenuControlsAdd(Type=msoControlButton)

Caption = ampGraacuteficos

Faceld = 420

OnAction = MiMacro2 End With

On Error GoTo 0 End Sub

Sub EliminarMenu( ) On Error Resume Next

ApplicationCommandBars(Worksheet Menuacute Bar)Controls(ampNuevo menuacute)Delete

On Error GoTo 0 End Sub

Cuando utilicemos la propiedad OnAction es posible que encuentre probleshymas si hay una macro en el libro del usuario que tenga el mismo nombre que la macro que reside en el complemento Para asegurarnos de que no ocurre esto siempre es una buena idea utilizar un meacutetodo como el siguiente

With cbcCutomMenuControlsAdd(Type=msoControlButton) Caption = ampGraacuteficos Faceld = 420 OnAction = ThisWorkbookNtildeame amp MiMacro2

End With

Al hacer esto nos estamos asegurando de que Excel sepa queacute macro tiene que ejecutar cuando el usuario haga clic en el botoacuten Con estos coacutedigos encontraraacute que es m u y sencillo distribuir y utilizar macros con todo su potencial

CAPIacuteTULO 8

Conectando Excel con el mundo

Trucos 95 a 100

Excel ha tenido desde hace mucho tiempo conexioacuten con otros miembros de la familia Microsoft Office asiacute como con bases de datos Con el crecimiento de Internet Excel ha incorporado funciones de exportacioacuten a HTML haciendo que sea faacutecil publicar informacioacuten creada en esta aplicacioacuten Sin embargo durante los uacuteltimos antildeos Microsoft ha desarrollado algunas funciones que le permiten utilizar Excel como una interfaz para ver informacioacuten publicada en cualquier lugar asiacute como hacer que su informacioacuten pueda ser llevada fuera de Excel y ser vista en cualquier tipo de formulario que desee proporcionando solamente aqueshyllos datos que considere oportunos Al mismo tiempo numerosos programado-res han creado meacutetodos para obtener informacioacuten en Excel y para publicarla fuera de eacuteste permitiendo utilizar hojas de caacutelculo sin necesidad de tener Excel

Cargar un documento XML en Excel Si una persona le enviacutea un archivo XML que contiene datos que se pueden ajustar a tablas no es necesario que tenga que leer todo el texto y las marcas que contiene Puede cargar ese documento directamente en Excel y especificar coacutemo desea presentarlos asiacute como trabajar con ellos utilizando mapas

Extensible Markup Language (XML) se ha convertido en un formato estaacutendar de interconexioacuten durante los uacuteltimos antildeos y resulta algo habitual que las persoshynas y las empresas se enviacuteen entre siacute archivos en este formato Las estructuras sencillas del nuacutecleo de un documento XML hacen que compartir informacioacuten independientemente del software que utilicen las diferentes partes sea m u y sen-

uuml

268 Excel Los mejores trucos

cilio Sin embargo hasta hace poco resultaba difiacutecil superar el t ramo que habiacutea entre los documentos XML y la interfaz a pesar de que existiacutean herramientas geneacutericas ya disponibles Con Excel 2003 todo esto es mucho maacutes sencillo al menos para aquellos datos que puedan ajustarse a una tabla

Este truco utiliza caracteriacutesticas que solamente estaacuten disponibles en la versioacuten Excel 2003 de Windows Las versiones anteriores no soportan

^ todo esto asiacute como las versiones existentes para Macintosh

Comenzaremos con un documento XML de ejemplo como el que se muestra continuacioacuten en el que nos encontraremos un cataacutelogo de libros en ingleacutes

Ejemplo 81 Un sencillo documento XML para hacer un anaacutelisis en Excel

ltxml vers ion=10 encoding=UTF-8gt ltventasgt

ltventagt ltfechagt2 003-10-05ltfechagt ltISBNgt0596 0 053 8 5ltISBNgt ltTitulogt0ffice 2003 XML EssentialsltTitulogt ltPreciogt3495ltPreciogt ltcantidadgt2 0 0ltcantidadgt ltCliente ID=1025gtZorks Booksltclientegt ltventagt

ltventagt ltfechagt2 0 03-10-05ltfechagt ltISBNgt05 96 0 02 92 0ltISBNgt ltTitulogtXML in a Nutshell ltPreciogt3 9 95ltPrecio ltcantidadgt9 0ltcantidadgt ltCliente ID=1025gtZorks ltventagt

ltventagt ltfechagt2 003-10-05ltfechagt ltISBNgt05 96 0 02 3 78ltISBNgt ltTitulogtSAX2ltTitulo ltPreciogt2 9 95ltPrecio ltcantidadgt3 0 0ltcantidadgt ltCliente ID=1025gtZorks Booksltclientegt ltventagt

ltventagt ltfechagt2 0 03-10-05ltfechagt ltISBNgt0596 0 053 85ltISBNgt ltTituloOffice 2003 XML EssentialsltTitulo

2nd EditionltTitulo

Booksltclientegt

8 Conectando Excel con el mundo 269

ltPreciogt3495ltPreciogt ltcantidadgt10ltcantidadgt ltCliente ID=1029gtBooks of Gloryltclientegt ltventagt

ltventagt ltfechagt2003-10-05ltfechagt ltISBNgt0 596 0 02 92 0ltISBNgt ltTitulogtXML in a Nutshell 2nd EditionltTitulogt ltPreciogt3 9 95ltPrecio ltcantidadgt2 5ltcantidadgt ltCliente ID=1029gtBooks of Gloryltclientegt ltventagt

ltventagt ltfechagt2 0 03-10-07ltfechagt ltISBNgt0 5 96 0 02 3 7 8ltISBNgt ltTitulogtSAX2lt Titulo ltPreciogt2 9 95ltPrecio ltcantidadgt5ltcantidadgt ltCliente ID=M1029gtBooks of Gloryltclientegt ltventagt

ltventagt ltfechagt2 0 03-10-18ltfechagt ltISBNgt0596 0 023 78ltISBNgt ltTituloSAX2ltTitulo ltPreciogt2 9 95ltPrecio ltcantidadgt15ltcantidadgt ltCliente ID=2561gtTitulo Waveltclientegt ltventagt

ltventagt ltfechagt2 0 03-10-21ltfechagt ltISBNgt0596 002 92 0ltISBNgt ltTituloXML in a Nutshell ltPrecio39 95ltPreciogt ltcantidadgt15ltcantidadgt ltCliente ID=9021gtBooks ltventagt

ltventasgt

Puede abrir este archivo directamente desde Excel 2003 seleccionando la opshycioacuten ArchivogtAbrir Ello abriraacute el cuadro de diaacutelogo que aparece en la figura 81

Si selecciona la opcioacuten Como una lista XML Excel le advertiraacute de que va a crear su propio esquema para este documento tal y como se muestra en la figura 82 Despueacutes de hacer clic en Aceptar se le presentaraacute el mejor consejo sobre coacutemo presentar la informacioacuten del documento en una hoja de caacutelculo como puede verse en la figura 83

2nd EditionltTitulo

for Youltclientegt

270 Excel Los mejores trucos

uumlj Seleccione coacutemo desea abrir este archivo

Como libro de soacutelo lectura

r Utilizar el panel de tareas Origen XML

Ayuda Aceptar J Cancelar

Figura 81 Abrir un archivo XML en Excel 2003

BHglinfflBSWlMBB^SiSampiK

V El origen XML especificado no se refiere esquema en funcioacuten de los datos del oric

P No volver a mostrar este mensaje

a un esquema 5en XML

Aceptar J j

Excel crearaacute un

Ayuda

Figura 82 Aviso de Excel 2003 acerca de la carencia de referencias a un esquema

| fifliffPifflWBWMc^^ ~Eacute2 echivo Edicioacuten Ver Insertar Formato Herramientas

J J d bdquo j _J J _i T ^ U ~J

Arial - 10 ^ f Ntilde ] S m W M Al bull pound date

1 2

3

4

5

6

I 7 8

9

10

11

A | B C

date -rJISBN ^(Tit le - |

5102003 596005385 Office 2003 XML Essentials

5102003 596002920 XML m a Nutshell 2nd Edition

5102003 596002378 SAX2

5102003 596005385 Office 2003 XML Essentials

5102003 596002920 XML m a Nutshell 2nd Edition

7102003 596002378 SAX2

18102003 596002378 SAX2

21102003 596002920 XML in a Nutshell 2nd Edition

12

13

14

15

16

17

18

19

20

21

9 iexclH 4 bull bull H o j a l ( Hoja2 Hoja3

Listo

Datos Ventarle

s - f l ooo

D 3riceUS _^Jqi

3495

39 Q5

2995

3495

3995

2995

2995

3995

l

A z H l k 100deg euro -og deg8 iexcl s iexcl s _ - lt

E F G

antity -rjcustomer jrJlD bull

200 Zorks Books 1025

90 Zorks Books 1025

300 Zorks Books 1025

10 Books ofGlory 1029

25 Books ofGlory 1029

5 Books ofGlory 1029

15 Ti t leWave 2561

15 Books fo rYou 9021

M

gt tiacute ~

- j f -

H

1 NUM

Jnj2ltiacuteiexcl - _ ff x |

I mdash j

bull m

Figura 83 Datos XML presentados como una lista XML en Excel 2003

Observe que Excel espera que el elemento fecha sea una fecha por lo que las muestra utilizando el formato adecuado es decir que 2003-10-05 queda como 10 5 2003

Una vez que tenga cargado del documento en Excel puede tratar los datos de forma m u y similar a como lo hariacutea con cualquier hoja de caacutelculo de Excel (inser-

8 Conectando Excel con el mundo 271

tando foacutermulas creando rangos con nombre graacuteficos basados en los contenidos etc) Para ayudarle Excel proporciona cierta funcionalidad incorporada para analizar los datos Los cuadros de lista desplegables situados en los encabezados de columna le permiten elegir coacutemo ordenar los datos (de forma predeterminada el orden es el que teniacutea originalmente el documento) Tambieacuten puede activar una fila de totalizacioacuten ya sea desde la barra de herramientas Lista o haciendo clic en cualquier parte de la lista y luego seleccionando la opcioacuten DatosgtListagtFila total Una vez que aparezca en dicha fila podraacute elegir queacute tipo de total prefiere mosshytrar del menuacute desplegable que mostramos en la figura 84

CJUacute poundrchivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana

J J d iquest _ j J plusmn 1 iiquest A -J ^ Uuml

Arial T 10 T H^ - m m ^ ^ Wj euro D11 - f =SUBTOTALES(101D2D9)

1

2

3

4

5

6

7

8

9

10

11 j

A B C D 1 E ^ _

U uuml iexcld -Jgt 100 i bdquodeg8 m _- gt lt

F G

date VJ ISBNtilde T f f iacute t iacute e j rJPriceUS j r jquai i t i ly ^ c u s t o m e r _ ^ J I D ^

5102003 596005385 Office 2003 XML Essentials 3495

5102003 596002920 XML in a Nutshell 2nd Edition 3995

5102003 596002378 SAX2 2995

5102003 596005385 Office 2003 XML Essentials 3495

5102003 596002920 XML in a Nutshell 2nd Edition 3995

7102003 596002378 SAX2 2995

18102003 596002378 SAX2 2995

21102003 596002920 XML in a Nutshell 2nd Edition 3995

+ Total

M iexcl13

14 15

16

^ 18 19

3495 IT Ninguno

Cuenta Contar nuacutemeros Max Miacuten Suma Desvest Var

20 21

1 2 |H 4 bull w H q j a l H o j a 2 Hoja3 |lt Listo

200 Zorks Books 1025

90 Zorks Books 1025

300 Zorks Books 1025

10 Books ofGlory 1029

25 Books ofGlory 1029

5 Books of Glory 1029

15 TitleVVave 2561

15 Books for You 9021

660

I

J P t x t l

5 bull bull I iquestraquo T -iquest

~~~H 1-7

_ j iexcl

i bull i r i NUM iquest

Figura 84 Eleccioacuten de los totales para una lista XML en Excel 2003

Tambieacuten puede actualizar los datos recuperando la informacioacuten a partir de un documento XML que tenga la misma estructura Si dispone de otro docushymento que tenga esa misma estructura puede hacer clic con el botoacuten derecho sobre la lista seleccionar la opcioacuten XMLgtlmportar del menuacute desplegable y elegir un documento diferente Teniendo maacutes datos deberiacutea quedar todo como en la figura 85

Ademaacutes tambieacuten puede exportar datos de nuevo a un archivo XML despueacutes de modificarlos haciendo clic con el botoacuten derecho del ratoacuten sobre la lista y selecshycionando la opcioacuten XMLgtExportar en el menuacute contextual Esto hace de Excel una

272 Excel Los mejores trucos

herramienta de edicioacuten m u y uacutetil para documentos simples en XML y que tengan estructuras tabulares

U J iquest I I J m J i J j y i l K f f f l l ^ ^

bulld Archivo Edicioacuten Ver Insertar Formato Herramientas

J ~J jd _Js _J -Jf _ v iexclK h ~A Jf

Arial 10 - N iacute S S X S

C7 fx SAX2

1 2 3 4 5 6 7

j c T 9 10 11 12 13 14

A B C date j - j lSBN ^JTit le

5102003 596005385 Office 2003 XML Essent i ais 5102003 596002920 XML in a Nutshell 2nd Edition 5102003 596002378 SAX2 5102003 596005385 Office 2003 XML Essentials 5102003 596002920 XML in a Nutshell 2nd Edition 7102003 596002378IacuteSAX2

18102003 596002378 SAX2 21102003 596002920 XML in a Nutshell 2nd Edition

1112003 596002378 SAX2 1152003 596002920 XML in a Nutshell 2nd Edition

Total

15 16 17 18 19 20 21

7 iexclH 4 bull wHojalHoja2 Hoja3 Listo

Datos Ventana

9 amp l Uuml k -4 iaw

- iacute j OOUuml euro -08 deg8 poundF iexclF _ - gt -

D E F ~ 7 G P rice US bullIquantity bullJcustomer y] ID bull

3495 200 Zorks Books 1025 3995 90 Zorks Books 1025 2995 300 Zorks Books 1025 3495 10 Books ofGlory 1029 3995 25 BooksofGlory 1029

I 2995 5 Books ofGlory 1029 2995 15 TitleWave 2561 3995 15 Books for You 9021 2995 65 Amazon 1543 3995 15 Amazon 1783

3495 740

Iltl

gt T bull i

A T ^

H _

gtr NUM

Figura 85 La misma lista XML con los datos actualizados

Para datos sencillos puede confiar normalmente en los consejos de Excel en relacioacuten a los contenidos del archivo y utilizar la vista predeterminada que se recomienda A medida que los datos se compliquen especialmente si contienen fechas o textos que aparezca nuacutemeros (observe que los anteriores ejemplos falshytan los ceros iniciales del campo ISBN) puede que tenga que utilizar esquemas XML para especificar coacutemo deberaacute leer Excel los datos y coacutemo se ajustaraacuten a un mapa dado Para este documento un esquema XML podriacutea ser como el que se muestra en el siguiente ejemplo

Ejemplo 82 Un esquema para los datos de ventas de libros

ltxml version=l0 encoding=UTF-8gt ltxsschema xmlnsxs=httpwwww3org2001XMLSchema elementFormDefault=qualifiedgt

ltxselement name=ventasgt ltxscomplexTypegt

ltxssequencegt

8 Conectando Excel con el mundo 273

ltxselement maxOccurs=unbounded ref=ventagt ltxssequencegt

ltxscomplexTypegt ltxselementgt ltxselement name=ventagt

ltxscomplexTypegt ltxssequencegt

ltxselement ref=fechagt ltxselement ref=ISBNgt ltxselement ref=Tiacutetulogt ltxselement ref=Preciogt ltxselement ref=cantidadgt ltxselement ref=clientegt

ltxssequencegt ltxscomplexTypegt

ltxselementgt ltxselement name=fecha type=xsfechagt ltxselement name=ISBN type=xsstringgt ltxselement name=Titulo type=xsstringgt ltxselement name=Precio type=xsdecimalgt ltxselement name=cantidad type=xsintegergt ltxselement name=clientegt

ltxscomplexType mixed=truegt ltxsattribute name=ID use=required type=xsintegergt

ltxscomplexTypegt ltxselementgt

ltxsschemagt

Observe que el elemento fecha estaacute definido como una fecha y que el eleshymento ISBN estaacute definido como una cadena no como un nuacutemero entero Si empieza abriendo este esquema en vez del documento puede hacer que Excel cara que el documento y preserve los ceros iniciales en el campo ISBN Esta vez crearemos una lista antes de cargar el documento XML comenzando a partir de una hoja de caacutelculo blanco

Para ello debemos abrir el panel de tareas Origen XML Si no estaacute abierto auacuten aacutebralo seleccionando la opcioacuten VergtPanel de tareas o pulsando Control-Fl Lueshygo seleccione la opcioacuten Origen XML del menuacute desplegable que aparece y veraacute algo parecido a lo que se muestra en la figura 86

Para cargar el esquema haga clic en el botoacuten Asignaciones XML Esto abriraacute un cuadro de diaacutelogo como el que se muestra en la figura 87

Haga clic en el botoacuten Agregar para abrir el esquema y luego seleccione uno de la misma forma que se muestra en la figura 88

Si su esquema no restringe que los documentos tengan un uacutenico elemento posible de comienzo Excel le preguntaraacute queacute elemento desea utilizar como raiacutez como puede verse en la figura 89

Como los documentos de este ejemplo comienzan con el elemento ventas elija dicho elemento

274 Excel Los mejores trucos

02 41 J

iexclJJg fmmwmmmmm Archivo

J Arial

Al

1 F 2 3 4 5 6 7 8 9

10 11 12 13 14 15 16 17 18 19 20

r 1

JH 4

Listo

bull bull

A

A

Edicioacuten

-i _J

^

I I

Ver Insertar

J 1 tZ - 10 ^ M

B

H o j a l H o j a 2 H o j a 3

Formato

iquest Iacute T

c

A -

s

Herramientas

_5

^ ^

D

m - j

llaquol

gtatos Ventana

-I

E

Si iquest 000 euro

-gt

Z ) 0 00 00 ^ 0

F

l iacute IW

gt

id iW

bullT

ir

^MJ2ltj| - _ S x |

4Jraquo 100 - laquo r ff |

Origen XML bull x 1

-J uuml Asignaciones XML de este libro

El libro no contiene asignaciones XML ara agregar una asignacioacuten XML al ibro utilice el botoacuten Asignaciones XML

Opciones bull

Asignaciones XML

NUM

Figura 86 Panel de tareas Origen XML

2Sl Asignaciones XML de este (ibro

Nombre

J

I R

_ J

| Espacio de nombre

Agregar i Aceptar i|

1 _M Cancelar

Figura 87 El cuadro de diaacutelogo Asignaciones XML

Despueacutes de hacer clic en Aceptar Excel le avisa de posibles dificultades que pueda tener a la hora de interpretar los esquemas como se muestran el cuadro de diaacutelogo de la figura 810 Un esquema XML es una especificacioacuten enorme que admite numerosas estructuras que no encajan bien con la perspectiva de Excel sobre la informacioacuten por lo que nos encontramos con que tendremos algunas limitaciones

Conectando Excel con el mundo 275

u-mJMmuiiJ Buscar en

-V Mis documentos

recientes

Escritorio

_bdquo

Mis documentos

J MIacute PC

SHSf^^^^^^

08

^chuumlSO lxml

i i H B bull4M dinosaurios xml

^1 S Nombre de archivo

Mis sitios de red I iexcl p o de a r c h j v o

mammmim^^ ^ bull ZJ poundgt bull

zl Todos los oriacutegenes de datos XML 0 J M

4 X -J -J

Nuevo origen

jplusmnJ| Herramientas raquo

| [ Abrir |

Cancelar

Figura 88 Seleccioacuten de un esquema XML

BISE iU El esquema XML seleccionado contiene maacutes de un nodo rafe Microsoft Office Excel soacutelo puede basarse en uno de ellos para crear una asignacioacuten XML

Seleccionar raiacutez

customer date ISBN PriceUS quantity saje

Title

J

J

Figura 89 Seleccioacuten del elemento raiacutez para el esquema

SampSTampVY _xj

Los siguientes elementos de esquema y estructuras no se pueden asignar a una hoja de caacutelculo No se podraacuten ver desde el panel de tareas Origen XML

- any bull - anyAttribute 1 i - Substitution groups

N J gt - Abstract elements - Recursive structures - Mixed content

iquestDesea continuar agregando este esquema al libro

No I Ayuda 1 Figura 810 Aviso sobre el procesamiento del esquema

Excel mostraraacute que el esquema ha sido antildeadido a la hoja de caacutelculo en el cuashydro de diaacutelogo Asignaciones XML que mostramos en la figura 811

276 Excel Los mejores trucos

BB ] Asignaciones XML de este libro

| Espacio de nombre

sales_Map sales ltNo hay espacio de nombre gt

Larnbiar nombre i Agregar Eliminar Aceptar Cancelar

Figura 811 Un esquema cargado como una asignacioacuten XML

Si hace clic en Aceptar volveraacute a la pantalla principal de Excel y el panel de tareas Origen XML mostraraacute un diagrama de la estructura del esquema descrito tal y como se puede ver a la derecha de la figura 812 Ahora que ya tiene la estructura puede distribuir la lista y la manera maacutes sencilla de hacerlo (espeshycialmente con documentos pequentildeos como eacuteste) es arrastrar el icono ventas a la celda A l lo que produciraacute los mismos resultados que vemos en la siguiente figura

bullMicrosoft Ei^Si^^l

Archivo Edicioacuten Ver Insertar Formato Her r amientas Datos Ventana r _ amp X

J _bull A Arial

Al f date

1 A

date yenpound _

mdash I B JISBN mdash1 r ^JTHle

I D | E | F | ^JPricellS Jquantity _-JID Vi

bull U -i 100 ~

_bullbull_ Origen XML

Asignaciones XML de este libro

sales_Map

9 i 10 11 12 13

14 i 15 16 l7 Iacute8

20

77 H 4 bull

Listo

Para asignar elementos de repeticioacuten arrastre los elementos desde el aacuterbol a la hoja de caacutelculo en la que desea que aparezcan los encabezados de datos

Para importar los datos utilice el botoacuten Importar datos XML de la barra de herramientas Lista

bullI H o j a l Hoia2 Hoja3 llt bull i r

Figura 812 Una lista XML creada a partir de la informacioacuten de esquema situada en el panel de tareas Origen XML

8 Conectando Excel con el mundo 277

Tambieacuten puede arrastrar los elementos individualmente si desea v- cambiar el orden o desea colocar las diferentes piezas en diferentes

^ - lugares de la hoja de caacutelculo

Ahora que ya tiene un lugar para los datos es momento de representarlos Puede hacer clic en el botoacuten Importar datos XML de la barra Lista o bien hacer clic con el botoacuten derecho del ratoacuten en la lista y luego seleccionar la opcioacuten XMLgtlmportar Si elige el archivo que utilizamos anteriormente (ej 81) obtenshydraacute los resultados que se muestran en la figura 813 Observe que se han antildeadido los ceros de la parte izquierda del ISBN que ahora ya son texto como deberiacutea ser

| jiexcl fwwWi|Jwii i ipi^^

iquest] Archivo Edicioacuten Ver Insertar Formato Herramientas Datos

J -bull Aacute J _J j J t u -J Aria ^ 10 - |~Ntilde~| jT S W W m r

Al ^ f date

1

iexcll~2~ I 3 I 4

5

I 6

I 7

I 8

9

I 10 I 11

12

A | B | C |

Ventana

m 000 euro

F^Ttrade^

=inj_xj| T _ j i x

i l u 100 - ltbull -

uo o =F =F _ T laquoi

T T F date J J J I S B N zJTitle j r jP r iceUS j r j quaiitiacutety _^J1D ^

51Uuml2G03 IacuteJ596005385 Office 2003 XML Essentials 3495 200 1025

I 5102003 0596002920 XML in a Nutshell 2nd Edition

5102003 r0596002378 SAX2

5102003 t i596005385 Office 2003 XML Es sentiacute ais

5102003T1596002920 XML in a Nutshell 2nd Edition

7102003 0596002378 SAX2

18102003T)596002378 SAX2

2110200313596002920 XML in a Nutshell 2nd Edition

k

13

14

15

16

1 17 I 18

19

20

21

IH 4 bull M H o j a l Hoja2 Hoja3 lt

Listo

3995

2995

3495

3995

2995

2995

3995

90 1025

300 1025

10 1029

25 1029

5 1029

15 2561

15 9021

mdash Orinen XML bull X

Asignaciones XML de este libro

sales Map bull |

y raquo

1 bull

1 bull j bull i

- _ BHB

E3 II

Para asignar elementos de repeticioacuten arrastre los elementos desde el aacuterbol a la hoja de caacutelculo en la que desea que aparezcan los encabezados de datos

Para importar los datos utilice el botoacuten Importar datos XML de la barra de herramientas Lista

i gtiexclr Suma=39158J95 NUM

Figura 813 La lista XML representada con datos

La compatibilidad de Excel con asignaciones XML y listas significa que puede crear hojas de caacutelculo que trabajen con datos que provienen de diferentes archishyvos todo ello con mayor flexibilidad que con formatos anteriores como CSV o archivos delimitados por tabulaciones En lugar de tener que estar conectado a una base de datos para modificar los datos de forma interactiva un usuario pueshyde modificar los archivos XML mientras que esteacute volando en un avioacuten y luego proporcionar dicho archivo a su cliente cuando aterrice Quizaacute el aspecto maacutes interesante de las nuevas funciones de XML de Excel es la flexibilidad mientras

278 Excel Los mejores trucos

que los datos esteacuten en una estructura que se podraacute ajustar a una tabla Excel no pondraacute muchas limitaciones a la hora de aceptar diferentes tipos de documentos Con unos cuantos clics de ratoacuten y sin necesidad de programar puede integrar datos XML dentro de las hojas de caacutelculo

m Q | Guardar en SpreadsheetML y extraer datos C 0 ^ E T f ^ l D e s iacute e E x c e X P s e h a incluido una opcioacuten de exportacioacuten XML

K ^ b ^ l SpreadsheetML proporciona una representacioacuten en XML de sus hojas de caacutelculo incluyendo formatos e informacioacuten de foacutermulas

Aunque existen muchas formas de leer hojas de caacutelculo de Excel sin tener Excel (consulte el truco 100 para obtener maacutes informacioacuten) una de las opciones m aacute s sencillas es expor ta r a a rchivos XML que ut i l icen el vocabu la r io SpreadsheetML de Microsoft SpreadsheetML no es completo (siendo maacutes notable que no existen graacuteficos y coacutedigo VBA) pero representa los componentes baacutesicos de una hoja de caacutelculo incluyendo foacutermulas rangos con nombre y formatos

Este truco utiliza caracteriacutesticas que soacutelo estaacuten disponibles en Excel XP y Excel 2003 para Windows Las anteriores versiones no lo admiten incluyendo las vershysiones actuales de Macintosh

La mejor forma de comenzar con SpreadsheetML es guardar una hoja de caacutelshyculo como XML La hoja de caacutelculo que mostramos que la figura 814 incluye datos foacutermulas nombres de rangos y celdas y algunos formatos simples

Si graba esta hoja de caacutelculo utilizando el formato Hoja de caacutelculo XML (xml) al que puede acceder a traveacutes de ArchivogtGuardar como obtendraacute un gran docushymento XML que contiene las marcas que se muestran en el ejemplo 83

Ejemplo 83 Un documento SpreadsheetML

ltxml version=l0gt ltmso-application progid=ExcelSheetgt ltWorkbook xmlns=urnschemas-microsoft-comofficespreadsheet xmlnso=urnschemas-microsoft-comofficeoffice xmlnsx=urnschemas-microsoft-comofficeexcel xmlnsss=urnschemas-microsoft-comofficespreadsheet xmlnshtml=httpwwww3orgTRREC-html4 0gt ltDocumentProperties xmlns=urnschemas-microsoft-comofficeofficegt

ltAuthorgtSimon StLaurentltAuthorgt ltLastAuthorgtADSMltLastAuthorgt ltCreatedgt2 0 03-12-03T15483 8ZltCreatedgt ltLastSavedgt2 0 04-05-2 3T161117ZltLastSavedgt ltCompanygtAnaya multimedialtCompanygt ltVersiongtll5703ltVersiongt

ltDocumentPropertiesgt ltOfficeDocumentSettings xmlns=urnschemas-microsoft-comofficeofficegt

8 Conectando Excel con el mundo 279

IBM crosoft E

^J Archivo

J J A Arial

1

2

3

4

5

6

7

8

9

10

11

UumlU M 3

14

15

16

17

18

19

20

21

JH i

Listo

Total

Kcel - dinosaur iosKml

Edicioacuten Ver Insertar

uumlm l|f Formato

-3 i ~J - 1 V -al

10 - N K

h -

S f =SUMA(E4E11

A B

Ventas de

Nuacutemero de id Bicho

4627 Diplodocus

3912 Brontosaurus

9845 Triceratops

9625 Vulcanodon

5903 Stegosaurus

1824 Monoclonius

9728 Megalosaurus

8649 Barosaurus

bull M H o j a l Hoja2 Hoja3

ene 04

HBHHWHBI^^S^^^^^-- - bull Herramientas Datos Ventana Z

-J 93 amp z - E S 9 ^J - | ooo euro o8 sect

) ~ D Eacute~1 ~

Precio Cantidad Total

22 50euro 127 285750 euro

1750 euro 74 129500 euro

1200 euro 91 109200 euro

1900 euro 108 205200 euro

1850 euro 63 116550 euro

1650 euro 133 219450 euro

2300 euro 128 294400 euro

1700 euro 91 154700 euro

Total |1514750 euro1

jltl

i i iexclsaacute jy tw if _ -

^

100

S

H

T laquo bull $

A - f e

T~

NUM

T - s x

mdash

_ 1

bull i r

Figura 814 Una hoja de caacutelculo de prueba para SpreadsheetML

ltDownloadComponentsgt ltLocationOfComponents HRef=fileGgt

ltOfficeDocumentSettingsgt ltExcelWorkbook xmlns=urnschemas-microsoft-comofficeexcelgt

ltWindowHeightgt615 0ltWindowHeightgt ltWindowWidthgt84 7 5ltWindowWidthgt ltWindowTopXgt12 0ltWindowTopXgt ltWindowTopYgt3 0ltWindowTopYgt ltProtectStructuregtFalseltProtectStructuregt ltProtectWindowsgtFalseltProtectWindowsgt

ltExcelWorkbookgt ltStylesgt

ltStyle ssID=Default ssName=Normalgt ltAlignment ssVertical=Bottomgt ltBordersgt ltFontgt ltInteriorgt ltNumberFormatgt ltProtectiongt ltStylegt ltStyle ssID=s21gt ltNumberFormat ssFormat=mmm-yygt ltStylegt

280 Excel Los mejores trucos

ltStyle ssID=s23gt ltFont xFamily=Swiss ssBold=1gt

ltStylegt ltStyle ssID=s24gt ltNumberFormat ssFormat=000 ampquot euroampquotgt

ltStylegt ltStylesgt ltNamesgt

ltNamedRange ssName=Bichos ssRefersTo==HojalR4C2R11C2gt ltNamedRange ssName=Cantidad ssRefersTo==HojalR4C4R11C4gt ltNamedRange ssNtildeame=Fecha ssRefersTo==HojalR1C2gt ltNamedRange ssName=ID ssRefersTo==HojalR4C1RllClgt ltNamedRange ssName=Precio ssRefersTo==HojalIR4C3RllC3gt ltNamedRange ssName=Total ssRefersTo==HojalR12C5gt

ltNtildeamesgt ltWorksheet ssName=Hojalgt

ltTable ssExpandedColumnCount=5 ssExpandedRowCount=12 xFullColumns=1

xFullRows=1 ssDefaultColumnWidth=60gt ltColumn ssAutoFitWidtn=0 ssWidth=735gt ltColumn ssAutoFitWidth=0 ssWidth=9675gt ltColumn ssAutoFitWidth=0 ssWidth=48 ssSpan=lgt ltColumn ssIndex=5 ssAutoFitWidth=0 ssWidth=5625gt ltColumn ssAutoFitWidth=0 ssWidth=48 ssSpan=250gt ltRowgt ltCell ssStyleID=s23xData ssType=StringgtVentas deltDataxCellgt ltCell ssStyleID=s21gtltData ssType=DateTimegt2 004-01-

01T00 0000 000ltDataxNamedCell ssName=FechagtltCellgt

ltRowgt ltRow ssIndex=3 ssStyleID=s23gt ltCellxData ss Type= String gtNuacutemero de Id ltDataxCellgt ltCellxData ss Type= String gtBicholtDataxCellgt ltCellxData ss Type= String gtPreciolt DatagtltCellgt ltCellxData ss Type=String gtCantidadltDataxCellgt ltCellxData ss Type= String gtTotalltDataxCellgt ltRowgt ltRowgt ltCellxData ss Type=IINumberIgt4627ltDataxNamedCell ss Name=IDgtlt

Cellgt ltCellgtltData ssType=StringgtDiplodocusltDataxNamedCell

ssName=BichosgtltCellgt ltCell ss StyleID=s24xData ssType=Numbergt22 5ltDataxNamedCell

ss Name=Precio xCellgt ltCellxData ss Type= Number gt127ltDataxNamedCell

ss Name=CantidadxCellgt ltCell ssStyleID=s24 ssFormula==RC[-2]RC[-1]xData

ss Type=Number gt2 857 5ltDataxCellgt ltRowgt ltRowgt ltCellxData ss Type=Number gt3912ltDataxNamedCell ss Name=IDx

Cellgt

8 Conectando Excel con el mundo 281

ltCellgtltData ssType=StringgtBrontosaurusltDatagtltNamedCell ssName=BichosgtltCellgt

ltCell ss StyleID=s24xData ss Type=Number gt17 5ltDataxNamedCell ss Name= Precio xCellgt

ltCellxData ss Type=Number gt74ltDataxNamedCell ss Name=Cantidad xCellgt

ltCell ssStyleID=s24 ssFormula==RC[-2]RC[-1]xData ss Type= Number gt 12 95ltDataxCellgt

ltRowgt ltRowgt ltCellxData ss Type=Number gt9845ltDataxNamedCell ss Name= IDgtlt

Cellgt ltCellxData ss Type=String gtTriceratopsltDataxNamedCell

ssName=BichosgtltCellgt ltCell ss StyleID=s24xData ss Type=Number gt12ltDataxNamedCell

ssName=PreciogtltCellgt ltCellxData ss Type= Number gt91ltDataxNamedCell ss Name=Cantidad

xCellgt ltCell ssStyleID=s24 ssFormula==RC[-2] RC[-1] xData

ss Type= Number gt1092ltDataxCellgt ltRowgt ltRowgt ltCellxData ss Type=Number gt9625ltDataxNamedCell ss Name= IDgtlt

Cellgt ltCellxData ss Type= String gtVulcanodonltDataxNamedCell

ssName=BichosgtltCellgt ltCell ss StyleID=s2 4 xData ss Type= Number gt19ltDataxNamedCe 11

ssName=PreciogtltCellgt ltCellxData ss Type=Number gt108ltDataxNamedCell

ss Name=CantidadxCellgt ltCell ssStyleID=s24 ss Formula==RC [-2] RC [-1] xData

ssType= Number gt2 0 52 ltDataxCellgt ltRowgt ltRowgt ltCellxData ss Type=Number gt5903ltDataxNamedCell ss Name= IDgtlt

Cellgt ltCellxData ss Type= String gtStegosaurusltDataxNamedCell

ss Name= BichosxCellgt ltCell ss StyleID-s24xData ss Type= Number gt18 5ltDataxNamedCell

ssName=PreciogtltCellgt ltCellxData ss Type=Number gt63ltDataxNamedCell ss Name=Cantidad

gtltCellgt ltCell ssStyleID=s24 ss Formula==RC [-2] RC [-1] xData

ss Type=Numbergt1165 5ltDataxCellgt ltRowgt ltRowgt ltCellxData ss Type= Number gt1824ltDataxNamedCell ss Name= IDgtlt

Cellgt ltCellxData ss Type= String gtMonocloniusltDataxNamedCell

ssName=BichosgtltCellgt ltCell ss StyleID=s24xData ss Type=Number gt16 5ltDataxNamedCell

ss Name= PrecioxCellgt

282 Excel Los mejores trucos

ltCellxData ss Type=Number gt133ltDataxNamedCell ss Name=CantidadxCellgt

ltCell ssStyleID=s24 ss Formula==RC [-2] RC [-1] xData ss Type=Numbergt2194 5ltDataxCellgt

ltRowgt ltRowgt

ltCellxData ss Type=Number gt9728ltDataxNamedCell ss Name=IDx Cellgt

ltCellxData ss Type=String gtMegalosaurusltDataxNamedCell ss Name= BichosxCellgt

ltCell ss StyleID=s24xData ss Type=Number gt23ltDataxNamedCell ssName=PreciogtltCellgt

ltCellxData ss Type=Number gt128ltDataxNamedCell ss Name=CantidadxCellgt

ltCell ssStyleID=s24 ss Formula==RC [-2] RC [-1] xData ss Type=Numbergt2 944ltDataxCellgt

ltRowgt ltRowgt

ltCellxData ss Type=Number gt8649ltDataxNamedCell ss Name= IDgtlt Cellgt

ltCellxData ss Type= String gtBarosaurusltDataxNamedCell ssName=BichosgtltCellgt

ltCell ss StyleID=s24xData ss Type=Number gt17ltDataxNamedCell ss Name=PrecioxCellgt

ltCellxData ss Type=Number gt91ltDataxNamedCell ss Name=Cantidad gtltCellgt

ltCell ssStyleID=s24 ssFormula==RC[-2] RC[-1] xData ssType=Numbergt154 7ltDataxCellgt

ltRowgt ltRowgt ltCell ssIndex=4 ssStyleID=s23xData ssType=StringgtTotallt

DataxCellgt

ltCell ssStyleID=s24 ss Formula==SUM(R [-8] CR [-1] C) xData ssType=Numbergt151475ltDataxNamedCell

ssName=TotalxCellgt ltRowgt

ltTablegt

ltWorksheetOptions xmlns=urnschemas-microsoft-comofficeexcelgt ltPageSetupgt ltPageMargins xBottom=0984251969 xLeft=078740157499999996 XRight=078 74 015 74 99999996 XTop=0984 251969gt

ltPageSetupgt ltPrintgt ltValidPrinterInfogt ltHorizontalResolutiongt6 0 0ltHorizontalResolutiongt ltVerticalResolutiongt6 00ltVerticalResolutiongt

ltPrintgt ltSelectedgt ltPanesgt ltPanegt ltNumbergt3ltNumbergt ltActiveRowgtllltActiveRowgt

8 Conectando Excel con el mundo 283

ltActiveColgt4ltActiveColgt ltPanegt

ltPanesgt ltProtectObjectsgtFalseltProtectObjectsgt ltProtectScenariosgtFalseltProtectScenariosgt

ltWorksheetOptionsgt ltWorksheetgt ltWorksheet ssName=Hoja2gt

ltTable ssExpandedColumnCount=256 ssExpandedRowCount=1 xFullColumns=1

xFullRows=l ssDefaultColumnWidth=60gt ltColumn ssAutoFitWidth=0 ssWidth=48 ssSpan=255gt

ltTablegt ltWorksheetOptions xmlns=urnschemas-microsoft-comofficeexcelgt ltPageSetupgt ltPageMargins xBottom=0984251969 xLeft=078740157499999996 xRight=078740157499999996 xTop=0984251969gt

ltPageSetupgt ltProtectObjectsgtFalseltProtectObjectsgt ltProtectScenariosgtFalseltProtectScenariosgt

ltWorksheetOptionsgt ltWorksheetgt ltWorksheet ssName=Hoja3gt

ltTable ssExpandedColumnCount=256 ssExpandedRowCount=1 xFullColumns=l

xFullRows=l ssDefaultColumnWidth=60gt ltColumn ssAutoFitWidth=0 ssWidth=48M ssSpan=255gt

ltTablegt ltWorksheetOptions xmlns=urnschemas-microsoft-comofficeexcelgt ltPageSetupgt ltPageMargins xBottom=0984251969 xLeft=078740157499999996 xRight=078740157499999996 xTop=0984251969gt

ltPageSetupgt ltProtectObjectsgtFalseltProtectObjectsgt ltProtectScenariosgtFalseltProtectScenariosgt ltWorksheetOptionsgt

ltWorksheetgt ltWorkbookgt

La primera liacutenea importante de este documento lt m s o - a p p l i c a t i o n p r o g i d = E x c e l S h e e t gt es una destruccioacuten de procesamiento XML que inshyforma a Windows (en realidad un componente ha antildeadido de Office 2003 para Windows) de que este documento XML se trata de hecho de una hoja de caacutelculo de Excel Cuando Windows muestre el archivo observaraacute que tiene el logotipo de Excel y haciendo doble clic sobre eacutel se abriraacute Excel

El elemento raiacutez del documento Workbook aparece inmediatamente desshypueacutes de la instruccioacuten de procesamiento Sus atributos definen los nombres de espacio utilizados para las diferentes partes de SpreadsheetML Las siguientes liacuteneas componen sobre todo metadatos presentacioacuten en ventana e informacioacuten

284 Excel Los mejores trucos

de formatos y realmente no hay nada interesante que examinar hasta que lleshygue a los elementos Ntildeames y Worksheet El elemento Ntildeames identifica los rangos y celdas con nombre que hay en el documento Los dos elementos NamedRange definen el rango con nombre Cantidad (que se extiende desde la fila 4 columna 4 hasta la fila 11 columna 4) y el rango llamado Total que es justamente la celda que se encuentra en la fila 12 y columna 5

ltNamedRange ssName=Cantidad ssRefersTo==HojalR4C4RllC4gt ltNamedRange ssName=Total ss Ref ersTo= =Hoj al R12C5 gt

El meollo de la hoja de caacutelculo estaacute en el elemento Worksheet Comienza definiendo coacutemo de larga es la tabla de datos actual

ltWorksheet ssName=Hojalgt ltTable ssExpandedColumnCount=5 ssExpandedRowCount=12

xFullColumns=1 xFullRows=lgt

Esta hoja llamada Hojal estaacute compuesta por 5 columnas y 12 filas (los atributos xFullColumns y xFullRows se encuentran en otro espacio de nombres que Excel no utilizaraacute para la distribucioacuten) Luego la informacioacuten actual de la tabla se almacena dentro de los elementos Row y Cell

ltRowgt ltCell ssStyleID=s23xData ssType=StringgtVentas deltDatagtlt

Cellgt ltCell ssStyleID=s21xData ssType =DateTimegt2004-01-

01T00 00 00 000ltDataxNamedCell ssName=FechagtltCellgt

ltRowgt ltRow ssIndex=3 ssStyleID=s23gt ltCellxData ssType=StringgtNuacutemero de Id ltDataxCellgt

Esta fila la primera del hoja de caacutelculo contiene los elementos de tipo celda La primera con el formato s23 (en negrita) y con el tipo de dato String (cadena de texto) contiene el texto Ventas de La segunda celda tiene formato s21 (norshymal) y utiliza el tipo de dato DateTime (fechahora) Sus contenidos vienen dashydos en formato ISO 8601 Esta celda tambieacuten forma parte de un rango con nombre en este caso Fecha La mayoriacutea de los demaacutes elementos Row siguen patrones similares pero existen algunos elementos que merece la pena ver con maacutes atenshycioacuten El segundo elemento Row tiene un atributo extra ssIndex

ltRow s s I n d e x = 3 s s S t y l e I D = s 2 3 gt

Excel no representa filas o columnas vaciacuteas con elementos Row o Cell vashyciacuteos Simplemente antildeade un atributo ss Index a la siguiente fila o celda jun to con su contenido para indicar la ubicacioacuten en la que se encuentra Esto requiere que

8 Conectando Excel con el mundo 285

los programas que procesen este tipo de archivos presten atencioacuten a este detalle cuando formen las tablas La otra cosa importante que hay que mirar son las foacutermulas

ltCell ssStyleID=s22 ss Formula= =SUM (R [ -8] CR[-1]C) xData ss Type=Number gt15147 5ltDataxNamedCell

ssName=TotalgtltCellgt

En la figura 815 esta celda tiene el nombre Total un valor de 1514750 euro y la foacutermula =SUM (E4 E l i ) Todas las partes estaacuten aquiacute Pero deberaacute ensamshyblarlas todas a partir del estilo s22 (definido anteriormente en el documento con un formato de tipo moneda) el valor 151475 y una foacutermula que utilizar refeshyrencias relativas que digan la suma de los valores en la misma columna que esta comenzando ocho filas por encima y terminando una fila por encima

Esto parece no ser m u y divertido a la hora de procesarlo pero actualmente no es tan complicado si tiene una herramienta XML Puede utilizar C Java Perl Python VB o su lenguaje de programacioacuten XML favorito para extraer la inforshymacioacuten aunque nosotros utilizaremos XSLT para la demostracioacuten

Existen numerosos procesadores XSLT en el mercado que van desde simples herramientas de liacutenea de comandos a aplicaciones de ventanas para Windows Quizaacute desee probar Architags XRay disponible en http architagcomxray o SAXON de Michael Kay en httpsaxon sourceforgenet Microsoft ofrece numerosas herramientas XSLT incluyendo una herramienta de liacutenea de comandos que puede obtener en httpmsdnmicrosoftcomlibrary defaultaspurl=downloads listxmlgeneral asp

La hoja de estilo del ejemplo 84 puede ejecutarse contra el documento XML del ejemplo 83 lo que produciraacute un documento mucho maacutes simple como el del ejemplo 85

Ejemplo 84 Una hoja de estilo XSLT para extraer los contenidos del ejemplo 83

ltxslstylesheet version=10 xmlnsxsl=httpwwww3org1999XSLTransform xmlns=httpsimonstlcomnsdinosaurs xmlnsss=urnschemas-microsoft-comofficespreadsheet

gt

ltxsloutput method=xml omit-xml-declaration=yes indent=yes encoding=US-ASCIIgt

ltxslteacutemplate match=gt

286 Excel Los mejores trucos

ltxslapply-templates select=ssWorkbookgt ltxsltemplategt

ltxslteacutemplate match=ssWorkbookgt ltdinosauriosgt

ltxslapply-templates select=ssWorksheet[ssName = Hojal]gt ltdinosauriosgt

ltxsltemplategt

ltxslteacutemplate match=ssWorksheetgt ltfechaxxslvalueacute-of selectassTablessRowssCell[ssStyleID =

s21] gtltfechagt ltxslapply-templates select=ssTable gt

ltxsltemplategt

ltxslteacutemplate match=ssTablegt ltxslrapply-templates select=ssRow[position( ) ampgt 2] gt

lt--Observe que como Excel se salta la fila en blanco la tercera fila estaacute en la posicioacuten 2--gt ltxsltemplategt

ltxslteacutemplate match=ssRow[ssCell[4]]gt ltventagt

ltnumIDxxsl rapply-templates se lect=ss Cell [1] gtltnumIDgt ltbichoxxsl apply-templates se lec t=ssCel l [2] gtltbichogt ltprec ioxxs l apply- templates s e l e c t = ss Cel l [3] gtltpreciogt ltcantidadxxslapply-templa tes se lect=ss Cell [4] x c a n t i d a d gt lt t o t a l x x s l rapply-templates se lect=ss r Cell [5] x t o t a l gt

ltventagt ltxslr templategt

ltxslteacutemplate match=ssRowgt lttotalxxslapply-templates select=ssCell [2] gtlttotalgt ltxsltemplategt

ltxslstylesheetgt

El corazoacuten de la hoja de estilo es la plantilla que hace coincidir todas las filas

con cuatro o maacutes elementos hijos de tipo celda Extrae la informacioacuten a partir de

las celdas y la coloca en elementos XML que reflejan los datos produciendo los

resultados del ejemplo 85

Ejemplo 85 Informacioacuten extraiacuteda de SpreadsheetML a un vocabulario XML personalizado

ltdinosaurios xmlns=h t tp s imons t l comns d inosau r s xmlnsss=urnschemas-microsof t -comoff ice spreadsheetgt ltfechagt2004-01-01T0000000 0 0ltfechagt ltventagt ltNumIDgt4 62 7ltNumIDgt ltbichogtDiplodocusltbichogt

8 Conectando Excel con el mundo 287

ltpreciogt225ltpreciogt ltcantidadgt12 7ltcantidadgt lttotalgt2 8 5 75lttotalgt ltventagt ltventagt ltNumIDgt3 912ltNumIDgt ltbichogtBrontosaurusltbichogt ltpreciogt175ltpreciogt ltcantidadgt74ltcantidadgt lttotalgt1295lttotalgt ltventagt ltventagt ltNumIDgt9 84 5ltNumIDgt ltbichogtTriceratopsltbicho ltpreciogt12lt precio ltcantidadgt91ltcantidadgt lttotalgt1092lttotalgt ltventagt ltventagt ltNumIDgt962 5ltNumIDgt ltbichogtVulcanodonltbicho ltpreciogt19ltprecio ltcantidadgt108ltcantidadgt lttotalgt2 052lttotalgt ltventagt ltventagt ltNumIDgt5 9 03ltNumIDgt ltbichogtStegosaurusltbicho ltpreciogt185ltpreciogt ltcantidadgt63ltcantidadgt lttotalgt11655lttotalgt ltventagt ltventagt ltNumIDgt1824ltNumIDgt ltbichogtMonocloniusltbicho ltpreciogt16 5ltprecio ltcantidadgt13 3ltcantidadgt lttotalgt21945lttotalgt ltventagt ltventagt ltNumIDgt972 8ltNumIDgt ltbichogtMegalosaurusltbicho ltpreciogt2 3 ltprecio ltcantidadgt12 8ltcantidadgt lttotalgt2944lttotalgt ltventagt ltventagt ltNumIDgt8 64 9ltNumIDgt ltbichogtBarosaurusltbicho ltpreciogt17ltprecio ltcantidadgt91ltcantidadgt lttotalgt154 7lttotalgt

288 Excel Los mejores trucos

ltventagt lttotalgt151475lttotalgt ltdinosauriosgt

Son los mismos datos pero de una forma totalmente diferente La informashycioacuten de foacutermulas ha sido descartada en este caso pero dado que Excel proporcioshyna los valores al igual que las foacutermulas esta aplicacioacuten en particular no necesita entender dichas foacutermulas

|^Qiexcl2 Crear hojas de caacutelculo utilizando SpreadsheetML ^ K V ^ H Aunque exportar hojas de caacutelculo como XML es uacutetil Excel tambieacuten permite

K aacute f l importar informacioacuten de la misma forma permitieacutendole crear hojas de caacutelculo utilizando SpreadsheetML

Excel soporta SpreadsheetML tanto para la exportacioacuten como para la imporshytacioacuten proporcionando un camino en ambos sentidos completo para la informashycioacuten Puede abrir un documento SpreadsheetML hacer unos cuantos cambios y volver a abrirlo en Excel si asiacute lo desea (de hecho eacutesta es la uacutenica forma de modishyficar los esquemas para las asignaciones XML) De todas formas quizaacute lo maacutes importante es que puede generar documentos SpreadsheetML a partir de cualesshyquiera datos que tenga lo que proporciona un camino relativamente faacutecil y aushytomatizado para transformar informacioacuten secuencial en hojas de caacutelculo de Excel

Como demostracioacuten el coacutedigo del ejemplo 86 t ransformaraacute el documento XML del ejemplo 85 del truco anterior de nuevo en una hoja de caacutelculo de Excel utilizando XSLT La hoja de estilo del ejemplo 86 utiliza la hoja de caacutelculo origishynal como plantilla produciendo un documento XML m u y similar al del SpreadsheetML que guardamos originalmente desde Excel

El ejemplo omite algunos formatos por lo que encontraraacute algunas diferencias visibles

Este truco utiliza algunas caracteriacutesticas que soacutelo estaacuten disponibles en Excel XP y Excel 2003 para Windows Las versiones anteriores no son compatibles con esto ni siquiera las versiones conocidas para Macintosh

Ejemplo 86 XSLT para convertir el vocabulario personalizado XML de nuevo a SpreadsheetML

ltxslstylesheet version=10 xmlnsxsl=httpwwww3org1999XSLTransform xmlnsd=httpsimonstlcomnsdinosaurs

8 Conectando Excel con el mundo 289

xmlnsss=urnschemas-microsoft-comofficespreadsheet xmlns=urnschemas-microsoft-comofficespreadsheet

gt

ltxsloutput method=xml omit-xml-declaration=no indent=yes encoding=US-ASCIIgt

ltxslteacutemplate match=gt ltxslapply-templates select=ddinosaurios gt

ltxsltemplategt

ltxslteacutemplate match=ddinosauriosgt

ltxslrprocessing-instruction name=mso-applicationgtprogid=ExcelSheetltxslprocessing-instructiongt ltWorkbook xmlns=urnschemas-microsoft-comofficespreadsheet xmlnso=urnschemas-microsoft-comofficeoffice xmlnsx=urnschemas-microsoft-comofficeexcel xmlns ss=urn schemas-microsof t-com-of fice spreadsheet xmlnshtml=httpwwww3orgTRREC-html40gt ltDocumentProperties xmlns=urnschemas-microsoft-comofficeofficegt

ltAuthorgtSimon StLaurentltAuthorgt ltLastAuthorgtSimon StLaurentltLastAuthorgt ltCreatedgt2 003-12-03T15483 8ZltCreatedgt ltLastSavedgt2 0 03-12-03T15574 6ZltLastSavedgt ltCompanygtAnaya MultimedialtCompanygt ltVersiongtll5606ltVersiongt

ltDocumentPropertiesgt ltExcelWorkbook xmlns=urnschemas-microsoft-comofficeexcelgt

ltWindowHe ight gt615 0 ltWindowHe ight gt ltWindowWidthgt8475ltWindowWidthgt ltWindowTopXgt12 0ltWindowTopXgt ltWindowTopYgt3 0ltWindowTopYgt ltProtectStructuregtFalseltProtectStructuregt ltProtectWindowsgtFalseltProtectWindowsgt

ltExcelWorkbookgt ltStylesgt

ltStyle ssID=Default ssNtildeame=Normalgt ltAlignment ssVertical=Bottomgt ltBordersgt ltFontgt ltInteriorgt ltNumberFormatgt ltProtectiongt ltStylegt ltStyle ssID=s21gt ltNumberFormat ssFormat=mmm-yygt ltStylegt ltStyle ssID=s22gt ltNumberFormat ssFormat=ampquot$ampquot000gt ltStylegt

ltStylesgt

290 Excel Los mejores trucos

ltWorksheet ssName=Hojalgt ltTable ssExpandedColumnCount=5

ssExpandedRowCount=count(dventa)+4 xFullColumns=n1 xFullRows=lgt ltColumn ssAutoFitWidth=0M ssWidth=735gt ltColumn ssAutoFitWidth=0 ssWidth=9675gt ltColumn ssIndex=5 ssAutoFitWidth=0 ssWidth=5625gt ltRowgt ltCellxData ssType=StringgtVentas de ltDataxCellgt ltCell ssStyleID=s21gtltData ssType=DateTimexxslvalueacute-of

select=d fechaxDataxCellgt ltRowgt ltRow ssIndex=3gt ltCellxData ss Type=String gtNuacutemero IdltDataxCellgt ltCellxData ss Type=String gtBicholtDataxCellgt ltCellxData ss Type=String gtPrecioltDataxCellgt ltCellxData ss Type=String gtCantidadltDataxCellgt ltCellxData ss Type=String gtTotalltDataxCellgt

ltRowgt

ltxslapply-templates select=dventa gt

ltRowgt ltCell ss Index=4xData ss Type=StringgtTotal ltDataxCellgt ltCell ssStyleID=s22 ssFormula==SUM(R[-count(drventa)]CR[-

1] C) xData ssType=NumberxDataxCellgt ltRowgt

ltTablegt

ltWorksheetOptions xmlns=urnschemas-microscft-comofficeexcelgt ltPrintgt ltValidPrinterInfogt ltHorizontalResolutiongt6 0 0ltHorizontalResolutiongt ltVerticalResolutiongt6 0 0ltVerticalResolutiongt

ltPrintgt ltSelectedgt ltPanesgt ltPanegt ltNumbergt3ltNumbergt ltActiveRowgt12ltActiveRowgt ltActiveColgtlltActiveColgt

ltPanegt ltPanesgt

ltProtectObjectsgtFalseltProtectObjectsgt ltProtectScenariosgtFalseltProtectScenariosgt

ltWorksheetOptionsgt ltWorksheetgt ltWorksheet ssName=Hoja2gt

ltWorksheetOptions xmlns=urnschemas-microsoft-comofficeexcelgt ltProtectObjectsgtFalseltProtectObjectsgt ltProtectScenariosgtFalseltProtectScenariosgt

ltWorksheetOptionsgt ltWorksheetgt

8 Conectando Excel con el mundo 291

ltWorksheet ssName=Hoja3gt ltWorksheetOptions xmlns=urnschemas-microsoft-comofficeexcelgt ltProtectObjectsgtFalseltProtectObjectsgt ltProtectScenariosgtFalseltProtectScenariosgt ltWorksheetOptionsgt

ltWorksheetgt ltWorkbookgt ltxsltemplategt

ltxslteacutemplate match=dventagt ltRowgt ltCellxData ssType=Numberxxslvalue-of select=IdNumID gtlt

DataxNamedCell ss Name=IDgtltCellgt ltCellgtltData ssType=Stringxxslvalue-of select=dBicho gtlt

DataxNamedCell ss Name= Bichos xCellgt ltCell ssStyleID=s22gtltData ssType=Numberxxslvalue-of

select=dPrecio gtltDatagtltNamedCell ssName=PreciogtltCellgt

ltCellxData ss Type=Number xxsl value-of select=d Cantidad gtlt DataxNamedCell ss Name=Cantidad gtltCellgt

ltCell ssStyleID=s22 ssFormula==RC[-2]RC[-1]xData ss Type=Number xxsl value-of select=d total gtltDataxCellgt

ltRowgt ltxsltemplategt

ltxslteacutemplate match=dfecha gt ltxslteacutemplate match=dtotal gt

ltxslstylesheetgt

Merece la pena prestar atencioacuten a algunas partes de este ejemplo En primer lugar observe que el SpreadsheetML estaacute incrustado en el XSLT es decir forma parte de la hoja de estilo No hay ninguna parte de SpreadsheetML que no pueda volver a crear utilizando este meacutetodo la instruccioacuten de procesamiento que ya mencionamos anteriormente y que indica a Windows de que se trata de una hoja de caacutelculo de Excel Para ello debe utilizar lo siguiente

ltxslprocessing-instruction name=mso-applicationgtprogid=ExcelSheetltxslprocessing-instructiongt

Dado que XLST no permitiraacute utilizar el espacio de nombres predeterminado (sin prefijo) para hacer referencia al contenido que tiene un espacio de nombres todas las referencias al contenido en el documento de edicioacuten tienen ahora el prefijo d como en dventa dfecha etc

Ademaacutes dado que los rangos con nombre pueden variar dependiendo del nuacuteshymero de elementos a la venta en el original esta hoja de estilo no generaraacute el elemento Ntildeames y sus contenidos Excel volveraacute a crear los rangos con nombre a partir de los elementos NamedCell en cualquier caso De nuevo el corazoacuten de

292 Excel Los mejores trucos

esta hoja de estilo es la parte que genera los elementos Row y Cell como puede verse a continuacioacuten

ltxslteacutemplate match=dventagt ltRowgt ltCellxData ss Type= Number xxsl value-of select=ldnumID gtlt

DataxNamedCell ss Name=IDgtltCellgt

El elemento xshtemplate extraeraacute cada elemento de venta en el original y proshyduciraacute un elemento Row que contenga los elementos Cell que concuerden con sus contenidos Si abre en Excel el SpreadsheetML que produce esta hoja de estilo (muy parecido al del ejemplo 83 aunque quitando los rangos con nombre y algunos formatos) obtendraacute el resultado que se muestra en la figura 815

I S M

u J

crosoft E

Archivo

_ A Arial

1 1 I 2

I 3 4 5 6 7 8 9 10 11 12

uumlil iexcl14 15

16 17 18 19 20 21

Listo

B13 A

veritas d

^^S^^^BS Edicioacuten Ver Insertar

- j _J j ~i t a

- 10 - N

fx

B e

Nuacutemero de Id Bicho 4627 D iexclpiacuteo do cus 3912 Brontosaurus 9845 Triceratops 9625 Vulcanodon 5903 Stegosaurus 1824 Mono clon ius 9728 Megalosaurus 8649 Barosaurus

1

bull H H o j a l Hoja2 Hoja3

w iexcliexcliexclsect Formato

K

ene-

iquest -

sect

zr 114

F

deg trade |

BW^-T^-- bullbull- Herramientas Datos Ventana

J - - reg - i - m m m d - iacute ooo euro -08 i

_ _ _ __

recio Cantidad Total 2250 euro 127 285750 euro 1750 euro 74 129500 euro 1200 euro 91 109200 euro 1900 euro 108 205200 euro 1850 euro 63 116550 euro 1650 euro 133 219450 euro 2300 euro 128 294400 euro 1700 euro 91 154700 euro

Total 1514750 euro

lltl

i iexcl iexcld-iw iw

G

Iacute 100

_ gt

__

- lt -^ r

__

i NUM

- - fi X

_

_l

bull i r

Figura 815 La hoja de caacutelculo de prueba despueacutes de que sus datos hayan ido desde SpreadsheetML a otro vocabulario y de nuevo de vuelta

SpreadsheetML puede que no sea m u y bonito pero existen numerosas razoshynes por las que desearaacute utilizarlo Para empezar grabar como SpreadsheetML le proporciona un mejor acceso a la informacioacuten de asignaciones XML que ya desshycribimos en el t ruco anterior Y a largo plazo lo maacutes impor tante es que SpreadsheetML es portable por lo que puede procesarlo y generarlo en cualquier ordenador que disponga de herramientas para XML

8 Conectando Excel con el mundo 293

Importar datos directamente en Excel Utilizando los servicios Web de Amazon como origen de los datos podemos integrar faacutecilmente informacioacuten en vivo acerca de por ejemplo libros de texto en hojas de caacutelculo de Excel Este ejemplo importaraacute datos referentes a la clasificacioacuten de ventas para un libro en particular y calcularaacute la media de eacutesta

Este truco se basaraacute en la caracteriacutestica de Excel para hacer consultas Web por lo que necesitaraacute Excel 97 o una versioacuten superior La herramienta de consulshytas para Web de Excel transforma tablas sencillas en HTML en hojas de caacutelculo

Para que esto funcione necesitaraacute darse de alta en Amazon y obtener una identificacioacuten de asociado Para ello vaya a la paacutegina http wwwamazoncomassociates Luego tendraacute que ir a la paacutegina http amazoncomwebservices y hacer clic en el viacutenculo Apply for a free developers token Ambos pasos son necesarios para poder utilizar los servicios Web de Amazon

El siguiente coacutedigo utiliza numerosas caracteriacutesticas tanto de los servicios Web de Amazon como de Excel Una vez que vea coacutemo funcionan juntos podraacute crear raacutepidamente sus propias consultas

Este truco comenzaraacute utilizando una consulta estaacutendar de tipo XMLHTTP Lo que queremos es analizar la clasificacioacuten de ventas de la serie de libros de trucos de OReilly por lo que construimos una consulta estaacutendar para recuperar dichos resultados

httpxmlamazoncomoncaxml3t=insert associate tag ampdev-t=insert developer tokenampPowerSearch=publisherOReilly20and20keywords Hackamptype=heavyampmode=booksampf=xml

Esto requiere del uso del sistema de buacutesqueda avanzada de Amazon para esshypecificar una editorial (OReilly) y una palabra clave (Hack) La siguiente tarea es obtener los datos de respuesta de Amazon de una forma en la que Excel pueda trabajar con ellos Dado que las consultas Web de Excel funcionan utilizando HTML sencillo la respuesta que obtenemos deberaacute ser transformada Como ya hicimos en los dos uacuteltimos trucos las hojas de estilo XSL seraacuten el meacutetodo maacutes raacutepido para conseguir esto Coloque el siguiente coacutedigo en un archivo llamado excel_SalesRankxls Este archivo limitaraacute la respuesta de Amazon a aquellos camshypos que sean necesarios convirtiendo todo en HTML

ltxml version=10 gt ltxslstylesheet version=lO xmlnsxsl=httpwwww3org1999XSL Transformgt

uuml

294 Excel Los mejores trucos

ltxsl output method=htmlgt ltxs l t eacutempla te match=gt lthtml xmlnso=urnschemas-microsof t -comoff ice off ice xmlnsx=urnschemas-microsof t -comoff iceexcel xmlns=httpwwww3orgTRREC-html40gt ltbodygt lttable id=basicgt lttrgt

ltth bgcolor=cccccc colspan=3gtSales Dataltthgt lt t rgt lttrgt

ltth bgcolor=99 9 99 9gtASINltthgt ltth bgcolor=9 99 999gtTit leltthgt ltth bgcolor=999999gtSales Rankltthgt

lt t rgt ltxs l fo r -each se lec t=Produc t In fo De ta i l s gt lttrgt

lt t d x x s l value-of se lect=Asin gtlttdgt lt t d x x s l v a l u e - o f select=ProductName gtlttdgt lt t d x x s l v a l u e - o f select=SalesRank gtlttdgt

lt t rgt ltxslfor-eachgt lt t r x t d c o l s p a n = 3 x t d gt lt t r gt lttrgt

lttd bgcolor=ffccOO colspan=2 a l ign=r igh t gt ltbgtAverage Sales Rankltbgt

lttdgt lttd bgcolor=ffccOOgt=ROUND(AVERAGE(C3Cltxslvalue-of

select=count(ProductlnfoDetails) + 2 gt)0)lttdgt lttrgt

lttablegt ltbodygt lthtmlgt ltxsltemplategt ltxslstylesheetgt

Este archivo recibe la respuesta AWS y la convierte en una tabla sencilla HTML La seccioacuten x s l f o r - e a c h hace un bucle que recorre el nodo Details y antildeade una fila la tabla para cada resultado Una vez que transfiera este archivo a un servidor accesible deberiacutea ser capaz de ver los resultados de la transformacioacuten en un explorador de Internet simplemente especificando la URL del archivo XSL en el campo Direccioacuten Simplemente modifique la URL del uacuteltimo paso reemplazanshydo f =xml por f = h t t p e x a m p l e c o m e x c e l _ S a l e s R a n k x s l

httpxmlamazoncomoncaxml3t = insert associate tagampdev-t = insert developer tokenampPowerSearch=publisher0Reilly20and20keywords Hackamptype=heavyampmode=booksampf=httpexamplecomexcel_SalesRankxsl

Deberiacutea poder ver una tabla como la que se muestra en la figura 816 con los datos recuperados de la consulta anterior Observe que la uacuteltima celda de la tabla

8 Conectando Excel con el mundo 295

contiene una funcioacuten de Excel Puede resultar algo extrantildeo en este momento pero tiene un propoacutesito m u y importante una vez que esteacute dentro de Excel

Archivo Edicioacuten Ver

_ Atraacutes

Direccioacuten | httpxml-na

1 A M^Jtiacutegfc | 0 5 9 6 0 0 4 4 7 8

0 5 9 6 0 0 4 6 0 5

0 5 9 6 0 0 4 6 1 3

SsJ uuml s t o

avoritos

amznxsft

Herramientas Ayuda

Buacutesqueda Favoritos | J f Multimedia ^

omoncaxml3t=insert20associate20tag208(dev-t

Sales data

Google Hacks

M a c O S X H a c k s

Linux Server Hacks

- - =insert20developer20tokenj J ^Jj Ir

^aacuteSife

Average Sales Raiik= =ROUND(AVERAGE(C3C5)0)

14

278

7 6 3

mmmm

pound Mi PC

M Viacutenculos

1

raquo

J

J

Figura 816 Tabla en HTML con los datos de ventas

Para adjuntar ambas aplicaciones utilice un archivo de consultas de Excel (IQY) Este archivo contendraacute toda la informacioacuten referente a la consulta inclushyyendo la URL que a p u n t a a los da tos Cree un nuevo archivo l lamado amzn_avg_salesiqy y antildeada el siguiente coacutedigo

WEB 1 httpxmlamazoncomoncaxml3t=insert associate tagampdev-t=insert developer tokenampPowerSearch=publisherOReilly20and20keywords Hackamptype=heavyampmode=booksampf=httpexamplecomexcel_SalesRankxsl

La primera liacutenea le indica a Excel que se trata de una consulta Web El 1 de la segunda liacutenea indica a el nuacutemero de versioacuten de la consulta Web (siempre debe estar en 1) Luego aparece la URL de la consulta AWS que incluye el archivo XSL Guarde el archivo y acueacuterdese de su ubicacioacuten

Ejecutar el truco

Para ejecutarlo haga doble clic en el archivo amzn_avg_salesiqy Eso haraacute que Excel lo abra contacte con la URL y genere una hoja de caacutelculo como la de la figura 817

296 Excel Los mejores trucos

yiexcl^mmmm^^^^^^^m^M^m-- bull 41 J Aria

1 2

3 4

5 6 7 8 9 10 11 12 13 14 15

16

MU 4

Listo

Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana l

- ^ j j J j 1 d u - J O 53 bullbullgtbull E

- 10 - M T 5 m 3 3 ^ j -ff 000 euro -oo dego

H21 - pound

A B C D

Sales data $iacute t^V^

596004478 Google Hacks 14

596004605 M a c 0 S X H a c k s 278

596004613 Linux S e rver Hac k s 763

Average Sales Rank 352

bull W amzn_avg_sales | i j

l IF

LEacute 100

T bull

_

| NUM

^|nL)| 5 x

w v f

laquoiquest ~

__ __

mdash

w

gtr

Figura 817 Hoja de caacutelculo de Excel con los datos de clasificacioacuten de ventas

Ahora ya tiene algunos datos uacutetiles la clasificacioacuten media de ventas de los libros en una aplicacioacuten ideal para manipular y analizar los datos Puede actuashylizar los datos en cualquier momento haciendo clic con el botoacuten derecho del rashytoacuten en cualquier celda de la hoja de caacutelculo y eligiendo la opcioacuten Actualizar datos

El truco del truco

La parte importante de este truco es conocer coacutemo obtener los datos directashymente de AWS en Excel Una vez dentro de Excel los datos estaacuten al alcance de todas las funciones que puede ofrecernos Excel caacutelculos graacuteficos etc A contishynuacioacuten veremos algunos meacutetodos raacutepidos para extender este ejemplo

Hacer que la consulta sea dinaacutemica

En vez de limitar los datos a informacioacuten estaacutetica construida dentro de una consulta de un archivo IQY podemos antildeadir un poco de interactividad Suponshygamos que tenemos una lista de coacutedigos de libros y deseamos conocer la media de la clasificacioacuten de ventas pero no disponemos de la lista en el momento en que construimos el archivo IQY Excel ofrece la posibilidad de preguntar al usuario por cierta informacioacuten antes de realizar la consulta Web

El uacutenico cambio que necesita hacer es colocar la informacioacuten preguntada denshytro de la URL de la consulta Web en el lugar en el que desee que aparezca la

8 Conectando Excel con el mundo 297

entrada del usuario Para ello cambie la URL que se encuentra dentro del archivo amzn_avg_salesiqy a lo siguiente

http xml amazon comoncaxml3t = insert associate tagampdev-t = insert developer tokenampPowerSearch=isbn[ISBNIntroduzca una lista de ISBN separados por el signo de barra vertical (|)]amptype=heavyampmode=booksampf=httpexamplecomexcel_SalesRankxsl

Ahora se le pediraacute que introduzca una lista de ISBN al abrir el archivo como puede verse en la figura 818

3] Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana Z

Ai aacute ~J A- S

f

MM

4j[

JM raquo A T |

i pound 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ~1

H 4 bull H amzn_avg_sales

Introducir

DBBDKEESI^ Introduzca una lista de ISBN separados por el signo de barra vertical (|)

3J f Usar este valor o referencia para futuras actualizaciones

llaquol nr

Figura 818 Cuadro de diaacutelogo para preguntar los ISBN

Si no se acuerda de ninguno puede probar con los siguientes

1565927141|0596003595|0596002246 | 0596002505

Con ello deberiacutea obtener la media de la clasificacioacuten de ventas para los ISBN que haya introducido iexclY ademaacutes seraacute diferente cada vez

Utilizar datos diferentes

Como el ejemplo anterior cambiar los datos con los que estaacute trabajando es simplemente otra manera de cambiar la URL para la consulta AWS Pero si desea

298 Excel Los mejores trucos

trabajar con un conjunto diferente de datos (como el coste de cada elemento en vez de la clasificacioacuten de ventas) necesita modificar un poco la hoja de estilo XSL

Para ver hasta queacute punto la hoja de estilo puede marcar la diferencia cree un nuevo archivo llamado excel_PriceDiffxls y antildeada el siguiente coacutedigo

ltxml version=10 gt ltxslstylesheet version=10 xmlnsxsl=httpwwww3org1999XSL Transforma ltxsloutput method=htmlgt ltxslteacutemplate match=gt lthtml xmlnso=urnschemas-microsoft-comofficeoffice xmlnsx=urnschemas-microsoft-comofficeexcel xmlns=httpwwww3orgTRREC-html40gt ltbodygt lttable id=basicgt lttrgt

ltth bgcolor=cccccc colspan=4gtDatos de ventasltthgt lttrgt lttrgt

ltth bgcolor=9 9999 9gtISBNltthgt ltth bgcolor=M9 99 9 99gtTituloltthgt ltth bgcolor=999999gtPrecio originalltthgt ltth bgcolor=999999gtPrecio de Amazonltthgt

lttrgt ltxslfor-each select=ProductlnfoDetailsgt lttrgt lttdgt

ltxslvalue-of select=Asin gt lttdgt lttdgt

ltxslvalue-of select=ProductName gt lttdgt lttdgt

ltxslvalue-of select=ListPrice gt lttdgt lttdgt

ltxslvalue-of select=OurPrice gt lttdgt lttrgt ltxslfor-eachgt lt t r x t d colspan=M3 gt lt t d x t r gt lttrgt

lttd bgcolor=ffccOO colspan=3 a l ign=r igh t gt ltbgtMedia del precio originalltbgt

lttdgt lttd bgcolor=ffccOOgt=ROUND(AVERAGE(C3Cltxslvalue-of

select=count(ProductlnfoDetails) + 2 gt)2) lttdgt

lttrgt lttrgt

8 Conectando Excel con el mundo 299

lttd bgcolor=ffccOO colspan=3 align=rightgt ltbgtMedia del precio de Amazonltbgt

lttdgt lttd bgcolor=ffccOOgt=ROUND(AVERAGE(D3Dltxslvalue-of

select=count(ProductlnfoDetails) + 2 gt)2) lttdgt

lttrgt lttablegt ltbodygt lthtmlgt ltxsltemplategt ltxslstylesheetgt

Transfiera este archivo XSL a un servidor puacuteblico y anote la URL Luego cree un nuevo archivo de consulta llamado amzn_price_diffiqy y utilice el mismo coacutedigo de ejemplos anteriores pero cambiando la variable f = por la URL de la nueva hoja de estilo Abra el archivo y deberiacutea haber una nueva hoja de caacutelculo con la lista de precios y la lista de precios de Amazon tal y como se muestra en la figura 819

bulllaquobull -aacutei j

crosoft Exce - - | J ^ i 4 i | | | | | g l l i lSIIISIl Archivo Edicioacuten Ver Insertar Formato

_ ei _iquest _J - i JL v

Arial raquo 10 -

iexcl 1

2 3 4 5 6

7 8 9

10 11 12 13 14 15 16 17 18 19 20 21

MU 4

[Listo

H35 - f

A

ISBN Tiacutetulo 596002246 Web Services

4iquest S bull

U K S

Herramientas

- -1 ~Jh T

m m

B

= iquesti

Datos de ventas

Essentials (OReilly XML) 596003595 Writing Excel Marcos with VBA 2nd Edit 596002505 Proqramminq

1565927141 Excel 2000 iexcln

bull w H o j a l

NETWeb Services a Nutshell A Power User s

Datos Ventana

53 ^ s - il i i U - | 000 euro oo ~dego i p W

~ c

Iacute J gt 100

T ^ T

~~~^

T bull

iquesti -

Precio original Preda de Amazon $2995

on $3495 $3995

Quick Reference $2995

Media del precio original Media del precio de Amazon

M NUM

$2097 $2447 $2797 $2097

$3370 $2360

1

mdash

_ bull

bull i n

Figura 819 Hoja de caacutelculo Excel con los datos sobre los precios

300 Excel Los mejores trucos

Resultados con graacuteficos

Una vez que los datos estaacuten en Excel es m u y faacutecil crear graacuteficos para hacerse una idea de queacute significan los datos de un vistazo Veamos coacutemo antildeadir un graacuteshyfico la hoja de caacutelculo

1 Basaacutendonos en el ejemplo uacuteltimo ejecute el archivo amzn_price_diffiqy Deberiacutea ver los datos que incluyen una lista de libros jun to con la lista de precios originales y de precios de Amazon

2 A continuacioacuten seleccione las celdas del tiacutetulo precio original y precio de Amazon

3 Vaya a lnsertargtGraacutefico con lo que apareceraacute el asistente para graacuteficos

4 Haga clic en Finalizar

Ahora deberiacutea haber conseguido una representacioacuten graacutefica m u y uacutetil de los graacuteficos (figura 820)

bullMicrosoft EacuteKCel - Iacute M Iacute Eacute Iacute Eacute I

Archivo Edicioacuten Ver Insertar Formato Herramientas Graacutefico Ventana

Arial

Atea del graacutefico -

- 12 gt - A - j

1 i 2 i 3 j 4 1

~5i 6 i 7 1 8~] 9 1

iacuteol Til

12]

iT] 15

111 i7] 18 1 19 i 20T

21 1

23j

U 4

Listo

bull I I lB i i i l 596002246Ueb Senices Esseiiais (0ReiHy XML) 596003595

596002505

Datos de ventas

bull bull bull bull bull bull bull bull bullam Writing Excel Marcos with VBA 2nd Edition Pro g ra m m i n g N ET Web Se rviexclc e s

1565927141 [Excel 2000 in a Nutshell A Power Users Quick Reference

Media del precio original Media del precio de Amazon

$5000 $4000 $3000 $2000 $1000

$000

D Precio original

aprecio de Amazon

Web Services Writing Excel Programming Excel 2000 in Essentials Marcos with NET Web a Nutshell A

(OReilly XML) VBA2nd Services Power Users Edition Quick

Reference

bull bull l K _ H p j a l Iacutelt1 Aacuterea del graacutefico |

p r e c i o original Precio de Amazon T $2995 $2097) $2995

$3495

$3995

$2995

$2097

$2447 $2797

$2097

$3370 $2360

plusmniexclr

Figura 820 Un graacutefico con los precios

8 Conectando Excel con el mundo 301

Acceder a servicios Web SOAP desde Excel Si sus hojas de caacutelculo necesitan acceder constantemente a datos actualizados necesitan acceder a servicios que estaacuten alojados en otros ordenadores el soporte para servicios Web de Excel le permitiraacute estar conectado

Los servicios Web basados en SOAP han sido una pieza clave de Microsoft en sus planes para la plataforma NET asiacute como kits de herramientas comunes de otros fabricantes SOAP es un protocolo que utiliza XML para trasmitir informashycioacuten entre sistemas En el caso que veremos aquiacute es utilizado para llamar a proshycedimientos y devolver valores La especificacioacuten WSDL (Web Service Definition Language) describe los servicios Web de forma que las aplicaciones puedan coshynectarse entre ellas faacutecilmente La herramienta Web Service References de Microsoft puede coger un archivo WSDL y generar coacutedigo VBA que su aplicacioacuten puede utilizar para acceder a servicios Web basados en SOAP

Este truco utiliza funciones de Excel que soacutelo estaacuten disponibles en sus versiones XP y 2003 para Windows Las versiones anteriores no son compatibles con esto ni siquiera las versiones conocidas para Macintosh

Para poder utilizar este truco es necesario descargar el Office Web Services Toolkit Dado que la ubicacioacuten cambia continuamente Microsoft lo mejor es ir a httpwwwmicrosoftes y luego utilizar la paacutegina de buacutesqueda o la paacutegina de descargas y buscar por Office Web Services Toolkit Existen diferentes versiones para Office XP y 2003 Necesita instalar este programa siguiendo las directrices que vienen con eacutel para luego poder trabajar con este truco

Una vez que lo haya instalado puede comenzar a conectar sus hojas de caacutelcushylo con servicios Web Para acceder a la herramienta Web Service References (asiacute es como se llama dentro de Excel) debe abrir Visual Basic yendo a la opcioacuten HerramientasgtMacrogtEditor de Visual Basic y luego en el menuacute Herramientas encontraraacute la opcioacuten Web Service References Si selecciona esta opcioacuten se abriraacute el cuadro de diaacutelogo que se muestra en la figura 821

Puede utilizar las funciones de buacutesqueda de la parte superior izquierda de este cuadro de diaacutelogo para encontrar servicios a traveacutes del sistema de descubrimienshyto universal de Microsoft a traveacutes del servicio Description and Integration (UDDI) o puede introducir una URL para el archivo WSDL en la parte inferior izquierda Puede encontrar un l istado de servicios puacuteblicos en la direccioacuten h t t p xmethodsnet aunque deberiacutea asegurarse de que los servicios todaviacutea funcionan antes de integrarse con ellos desde las hojas de caacutelculo Tambieacuten son muchos los servicios que requieren de una licencia e incluso del pago de la misma pero para

302 Excel Los mejores trucos

este ejemplo utilizaremos una que estaacute disponible de forma gratuita Dicho sershyvicio nos devuelve la direccioacuten IP de un nombre de dominio que proporcionemos

bullB Web S e r v i c e s T eacute e l ^

iacute Buscar servicios Web

Busque servicios Web utilizando palabras clave o un nombre de empresa

Palabras clave

Nombre de empresa

Haga dic en los servicios o meacutetodos Web para ver las descripciones Seleccione uno para agregarlo al proyecto

Resultados de la buacutesqueda

[Especifique los criterios de buacutesqueda para comenzar

Direccioacuten URL del servicio Web Descripcioacuten

Ayuda

Figura 821 La herramienta Microsoft Office Web Services en accioacuten

Comenzaremos dicieacutendole a Excel cuaacutel servicio deseamos utilizar en este caso httpTvwwcosmenuservicesdnsphp7wsdl Introduzca ese valor en el cuashydro de texto URL situado en la esquina inferior izquierda y luego haga clic en el botoacuten Buscar Apareceraacuten el resultado dns en la parte superior derecha tal y como se muestra en la figura 822 Active la casilla de verificacioacuten situada justo a su izquierda Si hace clic en el botoacuten Agregar haraacute que Excel genere coacutedigo VBA para el servicio tal y como puede verse en la figura 823

A continuacioacuten cierre VBE y rellene un hoja de caacutelculo m u y simple como la que se muestra en la figura 824

Para antildeadir un botoacuten que llame al servicio abra el cuadro de controles hashyciendo clic con el botoacuten derecho del ratoacuten sobre una barra de herramientas y eligiendo la opcioacuten Cuadro de controles Haga clic en el icono Botoacuten de comando y luego haga clic dentro de la hoja de caacutelculo en el lugar en el que desee colocar el botoacuten Haga clic con el botoacuten derecho sobre el botoacuten y elija la opcioacuten Propiedashydes en el m e n uacute contextua l que aparece En la propiedad Ntildeame escriba ObtenerDatos en Caption escriba Obtener direccioacuten IP Cierre este cuadro de diaacutelogo y la hoja de caacutelculo deberiacutea verse como en la figura 825

Conectando Excel con el mundo 303

11 KUuml r IUB Baf |-fj| i wi af f uuml^iff i^n^^ r Buscar servicios Web

r _ ~ bull

1 |

bullbull Direccioacuten URL del servicio Web

Facilite una direccioacuten URL para el archivo WSDL o ASMX para ver el servicio Web

Direccioacuten URL

| http wwwcosme nuser vicesdnsphpwsdl

Buscar

Haga clic en los servicios o meacutetodos Web para ver las descripciones Seleccione uno para agregarlo al proyecto

Resultados de la buacutesqueda 1

- 0EB dns

Descripcioacuten

Descripcioacuten no disponible I

Agregar Cancelar Ayuda I

Figura 822 Indicar al Web Services Toolkit que genere coacutedigo a partir de un servicio Web

tU Archivo Edicioacuten Ver Insertar Formato Depuracioacuten Eiecutar Herramientas Complementos Ventana Ayuda

mssmmsmsM

_ amp x

uuml s Microsoft E bull cel Obietos JM

BJ Henal (Hoial) H] Hoia2 (Hoia2) H]Hoia3(Hoia3) Q ThisWorlbool

Moacutedulos de clase

_ bull ]

|clsws_dns ClassModule

Alfabeacutetica | por categoriacuteas 1

Instancing 1 - Priacutevate

bull- (Declaraciones)

P r i va t e 3c_dri3 As So apCl i en t 3 0

Figura 823 Coacutedigo VBA generado por Web Services Toolkit para acceder al servicio dns

304 Excel Los mejores trucos

l l f M i c r o s o f t f x i i ^

^j Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana

J ^ d _Iacute _ j Jf -1 ^ Jraquo uacute -^ -iacuteaacute T T SI bull

Arial ^ 10 N S ^ W =1 i f j - f j 000 euro

A3 - pound IP

iexcl1 A | B C D E

1 1 I 2 Nombre

3 |IacuteP Iacute

4

5

6

7

8

9

10 11 12

13

I 14 15

16 17

| H 4 bull M H o j a l Hoja2 Hoia3 lt

Listo

iacute pound T

oo o

F

1 iexcld 1 0 0

iexcl= _

G

1 NUM

_ 1 X

T y

T laquok

H T

^ bull m

Figura 824 Una hoja de caacutelculo para antildeadir servicios Web

rqsoft|toacuteIacutetSIEacutettIacuteI

fj Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana

J _iquest A _j _J i _1 t bdquo h - J -i T sectpound --

ComtnandBut bull f = IN C R U STAR (Fot m s i o m m a n d B utt o n 1)

_ figt x

lg 100 - yengt ^

Nombre

IP

B

o Obtener direccioacuten IP c r _ _ _ _ ( y

bullI H o j a l Hoja2 Hoja3 Ilt1

H T

i r

Figura 825 Hoja de caacutelculo con un botoacuten para llamar a los servicios Web

8 Conectando Excel con el mundo 305

Para antildeadir la uacuteltima pieza haga clic con el botoacuten derecho del ratoacuten sobre el botoacuten y elija la opcioacuten Ver coacutedigo En la ventana que aparece introduzca esta subrutina

Priacutevate Sub ObtenerDatos_Click( ) Dim info As New clsws_dns Dim ntildeame As String Dim IP As String

ntildeame = Range(B2)Text

IP = infowsm_dns(ntildeame)

Set IPRange = Range(B3)

IPRangeValue = IP

End Sub

Este coacutedigo es m u y sencillo Hace referencia al objeto que ha creado la herrashymienta para el servicio Web y luego crea variables para el nombre y la direccioacuten IP Obtiene el nombre de la celda B2 llama a servicio Web con el nombre como argumento y luego coloca el valor devuelto en la celda B3 Una vez que haya introducido este coacutedigo y haya cerrado VBA puede dejar el modo de disentildeo aseshyguraacutendose de que el icono con aspecto de cartaboacuten y un laacutepiz (situado en la esquina superior izquierda del cuadro de controles) esteacute desactivado Ahora la hoja de caacutelculo le permitiraacute introducir un nombre de dominio en la celda B2 Haciendo clic en el botoacuten Obtener direccioacuten IP se colocaraacute la direccioacuten IP coshyrrespondiente al nombre de dominio en la celda B3 Las figuras 826 y 827 muesshytran esta hoja de caacutelculo en accioacuten utilizando diferentes nombres de dominio

La resolucioacuten de direcciones IP es uno de los servicios maacutes simples que existen pero muchas veces servicios asiacute de simples pueden resultar m u y uacutetiles en una hoja de caacutelculo (por ejemplo converso desde moneda recuperacioacuten de precios procesamiento de coacutedigos postales etc) Ni siquiera necesita aprender SOAP o WSDL para utilizar estos servicios ya que Web Services Toolkit se encarga de todo esto por usted

Sin embargo es importante resentildear algunas desventajas En primer lugar el ordenador debe estar conectado a Internet para que un servicio Web funcione Probablemente no desearaacute a crear hojas de caacutelculo que dependan fuertemente de servicios Web si sus usuarios van a estar trabajando m u y lejos de aquiacute y normalshymente van a estar desconectados (normalmente es aceptable una hoja de caacutelculo como esta que utiliza un servicio Web para rellenar campos pero que no necesishyta estar conectada constantemente) El otro tema importante con los servicios Web es que en general este campo estaacute en un estado de cambio significativo

306 Excel Los mejores trucos

i raquo Microsoft Excel - Libro bull bullw amp fSMMf ^ l f ^

iquestsect] Archivo

J j A Arial

B3

1 A 1 2 Nombre 3 lIR 4

i 5 I 6

7 8 9 10 11 12

13 I 14

I 15

I 16 i 17

Edicioacuten Ver Insertar Formato Herramientas Datos Ventana

J _j aacute A H -J pound - ^ - SI aacute- z bull iquestl M 100

- 10 bdquo N iT S 1 I I iacute j ^f j 000 euro cl o iexclF _ - bullgt

amp 20820123936

bull B | C D E F G

oreillycom 120820123936 1

1 Obtener direccioacuten IP

Un 4 bull H H o j a l Hoja2 HojaS lt j

Listo NUM

- f l X

T V IacuteJ ^ T |

1

bull i r l

Figura 826 Direccioacuten IP obtenida para oreillycom

H Microsoft EKCCI - Libroiacute iexcl8IWlt -^jj Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana

J - A J _j J J ^ iquest iquest -J raquo - bull - 51 x pound - )A M 100

Arial - 10 - N K S ^ S ^ ^j -f 000 euro oo 5j W _ T -

B3 - pound 1296162223

-inlxi - ntilde x

A ^ S

9 10 11 12 13 14 15 16 17 IR

H 4 bull

Listo

B

Nombre ozqridcom iexclIP FIacuteZ96162223 iexcl

bullI H o j a l Hoja2 Hoja3

Obtener direccioacuten IP

IlaquoI ir

Figura 827 Direccioacuten IP obtenida para ozgridcom

8 Conectando Excel con el mundo 307

Cuando se escribioacute este libro SOAP estaba pasando de la versioacuten 11 a la versioacuten 12 y tambieacuten estaba en desarrollo una nueva versioacuten de WSDL Y lo que es maacutes mucha gente cree que UDDI puede ser reemplazado con otras tecnoloshygiacuteas Por ahora aseguacuterese de comprobar los servicios que utilice y esteacute atento a posibles versiones nuevas del Office Web Services Toolkit

TRUCO

100 Crear hojas de caacutelculo Excel utilizando otros entornos Aunque Excel y otros programas de hojas de caacutelculo proporcionan la iexclnterfaz tradicional para crear y leer hojas de caacutelculo a veces necesitaraacute poder crear archivos xls directamente a partir de otros programas

Independientemente de que esteacute creando archivos Excel a partir de bases de datos en un servidor Apache o si simplemente desea presentarla informacioacuten almacenada en un programa Java a los usuarios de Excel existen numerosos paquetes en el mercado que le permiten crear y acceder a archivos xls sin tener que utilizar Excel Aunque esos paquetes son normalmente maacutes difiacuteciles de utilishyzar que SpreadsheetML normalmente producen archivos que pueden ser leiacutedos por cualquier Excel a partir de la versioacuten 97 (incluyendo las versiones para Macintosh) y a menudo son compatibles con maacutes funciones de Excel Algunos de los paquetes maacutes populares (y gratuitos) para trabajar con datos de Excel son

SpreadsheetWriteExcel

Es un paquete Perl para crear documentos Excel disponible en h t t p searchcpanorgdistSpreadsheet-WriteExcel

SpreadsheetParseExcel

Una herramienta que permite a los programas Perl leer archivos Excel disposhynible en http searchcpanorg-kwitknrSpreadsheet-ParseExcel-02602

Jakarta POI

Un producto de Apache Project que proporciona tanto acceso de lectura como de escritura a las hojas de caacutelculo de Excel a traveacutes de una API de Java disponible en ht tp j akarta apache orgpoiindex html

J Excel Api

Una API de Java para leer y escribir hojas de caacutelculo Excel incluyendo convershytidores Excel-CSV y Excel-XML Lo encontraraacute disponible en h t t p w w w andykhancomjexcelapi

308 Excel Los mejores trucos

Tambieacuten puede automatizar Excel de muchas formas a menudo utilizando el NET Framework de Microsoft Para ver un ejemplo de coacutemo hacer esto usando el lenguaje C v a y a a la paacuteg ina h t t p w w w e g g h e a d c a f e c o m a r t i c l e s 20021012 asp

Como ejemplo de coacutemo funciona este proceso el coacutedigo Java del ejemplo 87 generaraacute una hoja de caacutelculo utilizando la API POI (incluso aunque no sea un programador Java podraacute hacerse una idea) Puede pasar por alto la lectura de la licencia pero seraacute necesario incluirla en el coacutedigo

Ejemplo 87 Coacutedigo Java para generar una hoja de caacutelculo Excel usando POL

This code is der ived from the org apache poi hssf dev HSSF c l a s s henee the long l i c e n s e = = = = = = = = = = = = = = = = = = = = = = = =z = = = = = = m = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = The Apache Software License Versioacuten 11 Copyright (c) 2003 The Apache Software Foundation All rights reserved bull

Redistribution and use in source and binary forms with or without modification are permitted provided that the following conditions are met 1 Redistributions of source code must retain the above copyright notice this list of conditions and the following disclaimer bull

2 Redistributions in binary form must reproduce the above copyright notice this list of conditions and the following disclaimer in the documentation andor other materials provided with the distribution 3 The end-user documentation included with the redistribution if any must include the following acknowledgment This product includes software developed by the Apache Software Foundation (httpwwwapacheorg) Alternately this acknowledgment may appear in the software itself if and wherever such third-party acknowledgments normally appear 4 The ntildeames Apache and Apache Software Foundation and Apache POI must not be used to endorse or promote produets derived from this software without prior written permission For written permission please contact apacheapacheorg 5 Products derived from this software may not be called Apache Apache POI ntildeor may Apache appear in their ntildeame without prior written permission of the Apache Software Foundation THIS SOFTWARE IS PROVIDED ^AS IS AND ANY EXPRESSED OR IMPLIED WARRANTIES INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES

8 Conectando Excel con el mundo 309

OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT INDIRECT INCIDENTAL SPECIAL EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING BUT NOT LIMITED TO PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES LOSS OF USE DATA OR PROFITS OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY WHETHER IN CONTRACT STRICT LIABILITY OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE

This software consists of voluntary contributions made by many individuaacuteis on behalf of the Apache Software Foundation For more information on the Apache Software Foundation please see lthttpwwwapacheorggt

import javaio

import javautilRandom

import orgapachepoipoifsfilesystemPOIFSFileSystem import orgapachepoihssfrecord import orgapachepoihssfmodel import orgapachepoihssfusermodel import orgapachepoihssfuacutetil

public class PoiDemo

public static void main (String[] args) throws Exception short rownum

crea un archivo de destino

FileOutputStream out = new FileOutputStream(zingotxls)

crea un nuevo objeto workbook Observe que el libro y el archivo son dos cosas diferentes casi hasta el final cuando el libro es escrito en el archivo

HSSFWorkbook wb = new HSSFWorkbook( )

crea una nueva hoja HSSFSheet ws = wbcreateSheet( )

crea una referencia a un objeto fila para su uso posterior HSSFRow r = nuil

crea una referencia al objeto celda HSSFCell c = nuil

crea dos estilos - formatos de celda necesita ser definido antes de poder usarse

HSSFCellStyle csl = wbcreateCellStyle( )

310 Excel Los mejores trucos

HSSFCellStyle cs2 = wbcreateCellStyle( ) HSSFDataFormat df = wbcreateDataFormat( )

crea dos objetos fuente para el formato HSSFFont fl = wbcreateFont( ) HSSFFont f2 = wbcreateFont( )

establece la fuente 1 a tamantildeo 10 y negrita f1setFontHeightlnPoints((short) 10) f1setBoldweight(HSSFFontBOLDWEIGHT_BOLD)

establece la fuente 2 a tamantildeo 10 y en color rojo f2setFontHeightlnPoints((short) 10) f2setColor( (short)HSSFFontCOLOR_RED )

para el estilo 1 de celda usar fuente 1 y establecer el formato de datos

cslsetFont(f1) cslsetDataFormat(dfgetFormat(00) )

para el estilo 2 de celda usar fuente 2 establecer borde fino y formato de texto

cs2setBorderBottom(cs2BORDER_THIN) cs2setDataFormat(HSSFDataFormatgetBuiltinFormat(text)) cs2setFont(f2)

establece el nombre de la hoja en Unicode wbsetSheetName(0 Hoja de prueba

HSSFWorkbookENCODING_UTF_16 )

crea una hoja con 10 filas (0-9) for (rownum = (short) 0 rownum lt 10 rownum++)

crea una fila r = wscreateRow(rownum)

rsetRowNum(( short ) rownum) crea seis celdas(0-5) (el + = 2 se entenderaacute luego) for (short cellnum = (short) 0 cellnum lt 6 cellnum += 2)

crea una celda numeacuterica c = rcreateCell(cellnum) rellena con nuacutemeros basaacutendose en la posicioacuten csetCellValue(rownum 10 + cellnum

+ (((double) rownum 10) + ((double) cellnum 100)))

crea una celda de texto c = rcreateCell((short) (cellnum + 1))

cada dos filas (por eso lo de +=2) if ((rownum 2) ==0)

8 Conectando Excel con el mundo 311

ajusta esta celda con el primer estilo que definimos csetCellStyle(csl) establece el valor de la celda a Prueba csetEncoding( HSSFCellENC0DING_UTF_16 ) csetCellValue( Prueba )

else

CsetCellStyle(cs2) establece el valor de la celda a 1 2 3 csetEncoding( HSSFCellENC0DING_UTF_16 ) csetCellValue( 1 2 3 )

usar algunas foacutermulas avanza una fila

rownum++ r = wscreateRow(rownum)

crear foacutermulas

for (short cellnum = (short) 0 cellnum lt 6 cellnum += 2)

produce SUMAS para las columnas apropiadas int column= 65+cellnum char columnLabel=(char)column String formula=SUM(M+columnLabel+1+columnLabel+10) c = rcreateCell(cellnum) csetCellStyle(csl) csetCellFormula(formula)

escribe el libro a la salida y cerramos el archivo

wbwrite(out) outcioacutese ( )

Para ejecutar este coacutedigo primero debe descargar la uacuteltima versioacuten del archishyvo binario POI y colocar el archivo principal jar del POI (poi-20-final-20040126jar en este caso) en la ruta de clases dependiendo de la plataforma en la que lo esteacute ejecutando Una vez que lo ejecute no necesitaraacute argumentos y crearaacute un uacutenico archivo llamado zingotxls Si abre este archivo veraacute una hoja de caacutelculo como la que se muestra en la figura 828 (figura 829 si estaacute usando un Macintosh)

La loacutegica del ejemplo 87 es difiacutecilmente un modelo ejemplar de coacutemo crear una hoja de caacutelculo pero muestra la funcionalidad baacutesica necesaria para crear nuevas hojas celdas y formulas

312 Excel Los mejores trucos

l IJM

42 J

crosoft Excel - zingotKls IacuteSommamm^m

Archivo Edicioacuten Ver Insertar Formato

J d ^ _J J JL

Arial - 10

1 2 3 4 5 6 7 bull

8 9 10 11 12

13 I 14 15 16

17

18 19 20 H 4

Listo

C13 - i

A B 0 Prueba

101 i 202 Prueba 303 1 bdquo j 404 Prueba 505 1 3 606 Prueba 7 0 7 i bull

808 Prueba 909 -

4545 d

bull H Hoja de prueba

- [ N | ^ S iexcl

=SUMA(C1C10)

C | D 202 Prueba

1212 bull J

2222 Prueba 3232 1 2 i 4242 Prueba 5252 1 -6262 Prueba 7272 1 8282 Prueba 9292 1 I

MAl

B i l l H f t H H H H I Herramientas Datos

-3 Iacute W

| ^ ^ ^ | o

E F 4 04 Prueba

1414 1 2 1 2424 Prueba 3434 1 2

4444 Prueba 5454 1 2 6464 Prueba 7474 i J 8484 Prueba 9494 i j

4949

W ^ sect r ^ -jgix]|

Ventana l - - firaquo X

ffi 4 S - i l iacutel iexcld ltiacutegt 1 0 0 V 1

ooo euro l bdquodeg8 iexcls iexcl^ - ^ ^ i ^ y

G H 1 J T

bull 1

NUM

Figura 828 Hoja de caacutelculo creada a partir de un programa Java para Windows de Excel

la versioacuten

o 1

1 4

h

8 9

10

11 1

13 14

15

16

A B 0 Test

101 202 Test 303

404 Test

IacuteJUD

606 Test

707

808 Test

309

4545

Testsheet

C

202

12

32

42

62

82

32

12

32

42

62 7 1

82

32

4747

l0V5

Test

Test

T e i t

Test

Test

E F

404 Test

1414 2424 Test 3434

4444 Test 5454

6464 Test

7474

8484 Test 3494

4949

6

Figura 829 Hoja de caacutelculo creada a partir de un programa Java para la versioacuten Macintosh de Excel

8 Conectando Excel con el mundo 313

Si utiliza esto para construir hojas de caacutelculo para sus propias aplicaciones seguramente reemplazaraacute los bucles con referencias a las estructuras de datos que esteacute presentando con lo que los archivos de destinos eran maacutes loacutegicos y probablemente variaraacuten dependiendo de los datos y desearaacute sacar ventaja de las funciones de las que se muestran en este ejemplo

Otra caracteriacutestica de POI que es importante destacar si va a generar hojas de caacutelculo que van a formar parte de un sitio web dinaacutemico Puede combinar POI con Cocoon un marco de trabajo para Java tambieacuten de Apache que utiliza doshycumentos XML y otras fuentes para generar contenidos accesibles a traveacutes de un explorador de Internet Puede ver un artiacuteculo que proporciona una demostracioacuten y todos los detalles para hacer esto en la direccioacuten h t tp wwwxml eompuba 20030122cocoon-excelhtml

Glosario

Aplicacioacuten

Es otro teacutermino para denominar a un programa Excel es una aplicacioacuten aunshyque algunas personas lo llaman aplicacioacuten de hojas de caacutelculo

Argumentos

Es la informacioacuten que una foacutermula o funcioacuten puede requerir para devolver un valor La mayoriacutea de funciones de Excel requieren de argumentos para poder ser ejecutadas Los argumentos se encierran entre pareacutentesis y estaacuten separados por comas

Asistente

Conjunto de pantallas utilizadas para asistir al usuario a lo largo de una serie de pasos

Barra de comandos

Es uno de los muchos objetos de Excel utilizados para albergar elementos de menuacute La barra de menuacutes de una hoja de caacutelculo es una barra de comandos que contiene los elementos de menuacute Archivo Edicioacuten Ver Insertar etc

Barra de herramientas Formularios

Barra de herramientas utilizada para almacenar los controles que estaacuten inshycluidos dentro de Excel (no los controles ActiveX)

316 Excel Los mejores trucos

Boolean

Es el significado matemaacutetico de expresar sentencias loacutegicas Un valor de este tipo siempre seraacute Verdadero o Falso

Bucle

Ejecucioacuten continua de una o maacutes liacuteneas de coacutedigo VBA hasta que una condicioacuten se cumpla o el bucle termine

Bug

Es un error en el coacutedigo Por desgracia algunos de estos errores pueden ser indetectables por las pruebas maacutes exhaustivas y por tanto son difiacuteciles de evitar

Cadena

Secuencia lineal de caracteres (por ejemplo la palabra Coche es una cadena de caracteres alfanumeacutericos)

Complemento

Es un libro guardado con la extensioacuten XLA Se abre como un libro oculto cuanshydo es instalado a traveacutes de la opcioacuten HerramientasgtComplementos Los compleshymentos ofrecen funcionalidad antildeadida a Excel

Constante

Es un elemento que representa un valor que no cambia

Contiguo

Es un rango de celdas en el que los liacutemites de todas las celdas estaacuten conectados sin espacios entre ellos Por ejemplo Al C20 es un rango contiguo

Controles ActiveX

Objetos totalmente programables que pueden ser utilizados para ayudar a pershysonalizar las aplicaciones En Excel se incluyen algunos tan comunes como el botoacuten de comando el botoacuten de opcioacuten etc

Cuadro de controles

Es una barra de herramientas que contiene controles ActiveX (veacutease Controles ActiveX)

Glosario 317

Cuadro de diaacutelogo Es una ventana que solicita informacioacuten al usuario como por ejemplo el cuashy

dro de diaacutelogo Abrir

Depuracioacuten

Es el proceso de eliminar todos los posibles errores en el coacutedigo

Editor de Visual Basic (VBE)

Tambieacuten conocido como entorno de Visual Basic Es un interfaz dentro de Excel que permite a los usuarios acceden a todos los elementos pertenecientes a VBA

Error de ejecucioacuten

Error que se produce dentro del coacutedigo VBA y que ocurre mientras que eacuteste se ejecuta La mayoriacutea de este tipo de errores vienen acompantildeados por un nuacutemero que sirve para ayudar en la depuracioacuten

Evento

Es una llamada desde Excel a un cierto coacutedigo para indicar que ha ocurrido algo Por ejemplo un clic de ratoacuten o cerrarabrir un libro son eventos reportados por Excel

Explorador de proyectos

Ventana dentro del Editor de Visual Basic en la que se pueden ver todos los objetos que pertenecen a un libro especiacutefico

Foacutermula

Una secuencia de valores referencias a celdas nombres funciones u operadoshyres situados dentro de una celda y que producen un nuevo valor Todas las foacutermushylas de Excel comienzan con el signo =

Formulario de usuario

Objeto de Excel que puede ser utilizado para albergar controles ActiveX Los formularios de usuario se pueden insertar y modificar solamente dentro de VBE

Funcioacuten

Un tipo de procedimiento (veacutease Procedimiento) que devuelve un valor Excel dispone de funciones incorporadas como por ejemplo la funcioacuten SUMA De todas

318 Excel Los mejores trucos

formas el usuario puede crear sus propias funciones (veacutease Funcioacuten definida por el usuario)

Funcioacuten definida por el usuario

Funcioacuten (veacutease Funcioacuten) escrita en coacutedigo VBA especiacuteficamente para devolver un valor basaacutendose en diferentes meacutetodos de caacutelculo

Hoja

Teacutermino geneacuterico utilizado para representar un hoja de caacutelculo hoja de graacutefico hoja de macro

Hoja de caacutelculo

Uno de los objetos fundamentales de Excel en el que se encuentran las celdas Todos los libros de Excel deben tener al menos una hoja de caacutelculo y al menos una de ellas debe estar visible La uacutenica limitacioacuten al nuacutemero de hojas de caacutelculo que se pueden tener abiertas es la memoria del ordenador

Hojas de caacutelculo

Aplicacioacuten de software o programa que permiten introducir texto nuacutemeros y funciones en una matriz de celdas individuales

Libro

Contenedor para una o maacutes hojas de caacutelculo Cada archivo xls representa un libro de Excel

Macro

Una accioacuten o conjunto de acciones utilizadas para automatizar tareas Excel permite grabar acciones y utilizarlas posteriormente como macros

Meacutetodo

Un procedimiento que actuacutea sobre un objeto

Moacutedulo

Una unidad auto-contenida en la que el coacutedigo VBA se escribe y se almacena

Moacutedulo privado Moacutedulo utilizado especiacuteficamente para un objeto como pueda ser un libro una

hoja o un formulario del usuario

Glosario 319

No contiguo

Rango de celdas en el que los liacutemites de alguna o todas las celdas no estaacuten conectados Por ejemplo el rango Al C20 E10F100 representa un rango no conshytiguo

Nombre

Teacutermino que puede ser aplicado a constantes rango de celdas o variables

Objeto

Componente de una aplicacioacuten (veacutease Aplicacioacuten) como una hoja de caacutelculo una celda o un graacutefico Existen maacutes de 100 objetos disponibles dentro de Excel y resultan fundamentales a la hora de programar con VBA

Operadores

Siacutembolo matemaacutetico que instruye a una foacutermula o funcioacuten para que realice una cierta tarea Por ejemplo el operador + indica la foacutermula o la funcioacuten que debe sumar

Pareacutentesis

Los pareacutentesis se utilizan para indicar agrupaciones en matemaacuteticas En Excel siempre debe haber un pareacutentesis de cierre por cada pareacutentesis de apertura

Plantilla

Esquema predefinido utilizado como base estaacutendar para luego hacer modificashyciones y crear un hoja de caacutelculo

Procedimiento

Secuencia de instrucciones ejecutadas como un conjunto y que tienen un nomshybre Por ejemplo f u n e t i o n y sub son tipos de procedimientos (veacutease Funcioacuten y Sub)

Propiedad

Atributo con nombre perteneciente a un objeto (veacutease Objeto) Por ejemplo la direccioacuten de una celda especiacutefica es una propiedad de la celda o del objeto rango

Rango

Aacuterea de una o maacutes celdas ya sean contiguas o no

320 Excel Los mejores trucos

Sub

Tipo de procedimiento que no devuelve ninguacuten valor (veacutease Procedimiento) Este tipo de procedimientos se utilizan normalmente para gestionar eventos

Variables

Elemento con nombre que almacena un valor y que puede ser cambiado duranshyte su uso

Visual Basic for Applications (VBA)

El lenguaje estaacutendar de macros utilizado en la mayoriacutea de los productos de Office La palabra Applications representa a cualquiera de las aplicaciones de Office en las que es utilizado el coacutedigo como por ejemplo Excel Este lenguaje es un derivado de Visual Basic que a su vez es un derivado del lenguaje Basic La diferencia fundamental entre estos dos lenguajes es que VBA soacutelo puede ser utilishyzado dentro de la aplicacioacuten que lo contiene normalmente una perteneciente a la familia Office

Page 3: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas

10 Contenido

Impedir que los usuarios inserten maacutes hojas de caacutelculo 36

4 Impedir confirmaciones innecesarias 37

Activar las macros cuando no se tenga ninguna 37

Mensajes de confirmacioacuten para guardar cambios que no se han realizado 38

Impedir los avisos de Excel para macros grabadas 39

5 Ocul tar hojas para que no puedan ser mos t r adas 41

6 Personalizar el cuadro de diaacutelogo Plantillas y el libro predeterminado 42

Crear su propia pestantildea de plantillas 43 Utilizar un libro personalizado de forma predeterminada 43

7 Crear un iacutendice de hojas en el libro 45

8 Limitar el r ango de desplazamiento de la hoja de caacutelculo 47

9 Bloquear y proteger celdas que contienen foacute rmulas 51

10 Encontrar datos duplicados ut i l izando el f o rma to condicional 54

1 1 Asociar ba r ra s de he r r amien ta s personal izadas a un libro

en par t icular 56

12 Burlar el gestor de referencias relativas de Excel 58

13 Qui tar viacutenculos fantasma en un libro 58

14 Reducir un libro que estaacute h inchado 61

Eliminar formatos superfluos 62

Puesta a punto de los oriacutegenes de datos 63 Limpiar libros corruptos 63

15 Extraer datos de un libro c o r r u p t o 64

Si no puede abrir un libro 64

Si no puede abrir el archivo 65

Capiacutetulo 2 Trucos sobre las caracteriacutesticas incorporadas en Excel 69

16 Validar datos en base a u n a lista s i tuada en o t ra hoja 69

Meacutetodo 1 Rangos con nombre 69

Meacutetodo 2 La funcioacuten INDIRECTO 70

Ventajas y desventajas de ambos meacutetodos 71

17 Controlar el f o rma to condicional con casillas de verificacioacuten 71

Configurar casillas de verificacioacuten para formato condicional 71

Activar o desactivar el resaltado de los nuacutemeros 72

18 Identificar foacute rmulas con el f o r m a t o condicional 75

19 Contar o s u m a r celdas que se ajustan al criterio del fo rmato condicional 76

Una alternativa 77

20 Resaltar Filas o co lumnas impares 78

Contenido 11

21 Crear efectos en 3D en tablas o celdas 80 Utilizar un efecto 3D en una tabla de datos 81

22 Activar y desactivar el formato condicional y la validacioacuten de datos con una casilla de verificacioacuten 82

2 3 Admitir muacuteltiples listas en un cuadro de lista desplegable 84

24 Crear listas de validacioacuten que cambien en base a la seleccioacuten realizada

en otra lista 86

25 Forzar la validacioacuten de datos para hacer referencia a una lista

en otra hoja 88 Meacutetodo 1 Rangos con nombre 88 Meacutetodo 2 La funcioacuten INDIRECTO 88 Ventajas y desventajas de cada meacutetodo 89

2 6 Utilizar Reemplazar para eliminar caracteres no deseados 90 27 Convertir nuacutemeros de texto en nuacutemeros reales 90

28 Personalizar los comentarios de las celdas 92

29 Ordenar maacutes de tres columnas 94

30 Ordenacioacuten aleatoria 95

31 Manipular datos con el filtro avanzado 97 32 Crear formatos de nuacutemero personalizados 101

33 Antildeadir maacutes niveles de Deshacer a Excel 107

34 Crear listas personalizadas 107 35 Subtotales en negritas de Excel 108

El truco sobre el truco 110 36 Convertir las foacutermulas y funciones de Excel a valores 111

Utilizar Pegado especial 111 Utilizar Copiar aquiacute soacutelo valores 111 Utilizar una macro 112

3 7 Antildeadir datos automaacuteticamente a una lista de validacioacuten 113 38 Trucar las caracteriacutesticas de fecha y hora de Excel 116

Sumar maacutes allaacute de las 24 horas 116 Caacutelculos de fecha y hora 117 Horas y fechas reales 119 iquestUn fallo de fechas 119

Capiacutetulo 3 Trucos sobre nombres 123

39 Usar direcciones de datos por el nombre 123 40 Utilizar el mismo nombre para rangos en diferentes hojas de caacutelculo 124

12 Contenido

4 1 Crear funciones personal izadas ut i l izando nombres 127

4 2 Crear rangos que se expandan y cont ra igan 129

4 3 Anidar r angos dinaacutemicos pa ra obtener u n a f l ex ib i l idad m aacute x i m a 136

44 Identificar r angos con n o m b r e en u n a hoja de caacutelculo 139

Meacutetodo 1 139

Meacutetodo 2 141

Capiacutetulo 4 Trucos sobre tablas dinaacutemicas 143

4 5 Tablas dinaacutemicas un t r u c o en s iacute m i s m a s 143

iquestPor queacute se les llama tablas dinaacutemicas 144

iquestPara queacute cosas resultan buenas las tablas dinaacutemicas 144

iquestPor queacute utilizar tablas dinaacutemicas cuando las hojas de caacutelculo ya ofrecen

muchas funciones de anaacutelisis 145

Los graacuteficos dinaacutemicos como extensioacuten de las tablas dinaacutemicas 145

Crear tablas y listas para ser utilizadas en tablas dinaacutemicas 145

El Asistente para tablas dinaacutemicas y graacuteficos dinaacutemicos 147

46 Compar t i r tablas dinaacutemicas pero no sus datos 148

4 7 A u t o m a t i z a r la creacioacuten de tablas dinaacutemicas 150

4 8 Mover los totales finales de u n a tabla dinaacutemica 153

49 Utilizar de fo rma efectiva datos de otro libro d inaacutemicamente 154

Capiacutetulo 5 Trucos sobre graacuteficos 159

50 Separar u n a porcioacuten de un graacutefico circular 159

5 1 Crear dos conjuntos de porciones en un uacutenico graacutefico circular 161

52 Crear graacuteficos que se ajusten a los datos 163

Dibujar los uacuteltimos x valores correspondientes a las lecturas 166

5 3 In terac tuar con los graacuteficos ut i l izando controles personal izados 166

Utilizar un rango dinaacutemico con nombre vinculado a una barra

de desplazamiento 167 Utilizar un rango dinaacutemico con nombre vinculado a un cuadro de lista

desplegable 169

54 Tres fo rmas raacutepidas para actual izar los graacuteficos 170

Utilizar arrastrar y colocar 170

Utilizar la barra de foacutermulas 171

Arrastrar el aacuterea del borde 174

55 Crear un simple graacutefico de t ipo t e r m oacute m e t r o 175

56 Crear un graacutefico de c o l u m n a s con anchos y altos variables 178

Contenido 13

5 7 Crear un graacutefico de tipo velociacutemetro 182 58 Vincular los elementos de texto de un graacutefico a una celda 188 59 Trucar los datos de un graacutefico de forma que no se dibujen las celdas

en blanco 189 Ocultar filas y columnas 190

Capiacutetulo 6 Trucos sobre foacutermulas y funciones 193

60 Antildeadir un texto descriptivo a las foacutermulas 193

61 Mover foacutermulas relativas sin cambiar las referencias 194

62 Comparar dos rangos de Excel 195 Meacutetodo 1 Utilizar Verdadero o Falso 195 Meacutetodo 2 Utilizar el formato condicional 196

63 Rellenar todas las celdas en blanco en una lista 197 Meacutetodo 1 Rellenar las celdas en blanco mediante una foacutermula 198 Meacutetodo 2 Rellenar las celdas en blanco a traveacutes de una macro 199

64 Hacer que las foacutermulas se incrementen por filas cuando las copie a lo largo de las columnas 200

65 Convertir fechas en fechas con formato de Excel 202 66 Sumar o contar celdas evitando valores de error 203 67 Reducir el impacto de las funciones volaacutetiles a la hora de recalcular 205 68 Contar solamente una aparicioacuten de cada entrada de una lista 206 69 Sumar cada dos tres o cuatro filas o celdas 207 70 Encontrar la eneacutesima aparicioacuten de un valor 209 71 Hacer que la funcioacuten subtotal de Excel sea dinaacutemica 212

72 Antildeadir extensiones de fecha 214

73 Convertir nuacutemeros con signo negativo a la derecha a nuacutemeros

de Excel 216 74 Mostrar valores de hora negativos 218

Meacutetodo 1 Cambiar el sistema de fecha predeterminado de Excel 218 Meacutetodo 2 Utilizar la funcioacuten TEXTO 219 Meacutetodo 3 Utilizar un formato personalizado 219

75 Utilizar la funcioacuten BUSCARV a lo largo de muacuteltiples tablas 220 76 Mostrar el tiempo total como diacuteas horas y minutos 222 77 Determinar el nuacutemero de diacuteas especificados que aparecen

en cualquier mes 223 78 Construir mega foacutermulas 225

14 Contenido

79 Trucar mega foacutermulas que hagan referencia a otros libros 227 80 Trucar una de las funciones de base de datos de Excel para que haga

el trabajo de muchas funciones 228

Capiacutetulo 7 Trucos sobre macros 237

81 Acelerar el coacutedigo y eliminar los parpadeos de la pantalla 237

82 Ejecutar una macro a una determinada hora 238 83 Utilizar CodeName para hacer referencias a hojas en los libros

de Excel 240

84 Conectar de forma faacutecil botones a macros 241

85 Crear una ventana de presentacioacuten para un libro 243

86 Mostrar un mensaje de Por favor espere 246 87 Hacer que una celda quede marcada o desmarcada al seleccionarla 247

88 Contar o sumar celdas que tengan un color de relleno especiacutefico 248 89 Antildeadir el control Calendario de Microsoft Excel a cualquier libro 250 90 Proteger por contrasentildea y desproteger todas las hojas de caacutelculo

raacutepidamente 252

91 Recuperar el nombre y la ruta de un libro de Excel 255 92 Ir maacutes allaacute del liacutemite de tres criterios del formato condicional 256

93 Ejecutar procedimientos en hojas protegidas 258 94 Distribuir macros 260

Capiacutetulo 8 Conectando Excel con el mundo 267

95 Cargar un documento XML en Excel 267

96 Guardar en SpreadsheetML y extraer datos 278

97 Crear hojas de caacutelculo utilizando SpreadsheetML 288 98 Importar datos directamente en Excel 293

Ejecutar el truco 295 El truco del truco 296

Hacer que la consulta sea dinaacutemica 296 Utilizar datos diferentes 297 Resultados con graacuteficos 300

99 Acceder a servicios Web SOAP desde Excel 301

100Crear hojas de caacutelculo Excel utilizando otros entornos 307 SpreadsheetWriteExceI 307 Spreadsheet ParseExcel 307

Contenido 15

Jakarta POI 307

JExcelApi 307

Glosario 315

iacutendice alfabeacutetico 323

CAPIacuteTULO 1

Reducir la frustracioacuten en los libros y en las hojas

de caacutelculo Trucos 1 a 15

Los usuarios de Excel saben que los libros son un concepto m u y potente Pero igualmente muchos usuarios son conscientes que trabajar con estos libros pueshyde provocar un gran nuacutemero de inconvenientes Los trucos de este capiacutetulo le ayudaraacuten a evitar algunos de esos inconvenientes a la vez que sacaraacuten provecho de algunos meacutetodos maacutes efectivos pero en ocasiones desconocidos con los que puede controlar sus libros de trabajo

Antes de profundizar en dichos trucos merece la pena echar un vistazo raacutepishydo a algunos conceptos baacutesicos que haraacuten mucho maacutes sencillo crear trucos efecshytivos Excel es una aplicacioacuten m u y potente de hojas de caacutelculo con la que se pueden hacer cosas increiacutebles Por desgracia muchas personas disentildean sus hojas de caacutelculo de Excel con poca previsioacuten haciendo difiacutecil que puedan reutilizarlas o actualizarlas En este apartado proporcionaremos numerosos trucos que puede utilizar para asegurarse de que crea hojas de caacutelculo lo maacutes eficaces posibles

La regla 8020

Quizaacute la regla maacutes importante a seguir cuando se disentildea una hoja de caacutelculo es tener una visioacuten a largo plazo y nunca presuponer que no necesitaraacute antildeadir maacutes datos o foacutermulas a la hoja de caacutelculo ya que la probabilidad de que ocurra esto es alta Teniendo esto en mente deberaacute dedicar alrededor del 80 de su tiemshypo en planificar la hoja de caacutelculo y alrededor del 20 en implementarla Aunque esto pueda parecer extremadamente ineficiente a corto plazo podemos asegurar que a largo plazo seraacute una gran ventaja ademaacutes de que despueacutes de haber hecho varias planificaciones luego seraacute mucho maacutes sencillo Recuerde que las hojas de

24 Excel Los mejores trucos

caacutelculo estaacuten pensadas para hacer sencilla la obtencioacuten de la informacioacuten por parte de los usuarios no soacutelo para presentarla y que tenga buen aspecto

Trucos sobre la estructuracioacuten

Sin duda el fallo nuacutemero uno que cometen muchos usuarios de Excel cuando crean sus hojas de caacutelculo es que no configuran y organizan la distribucioacuten de la informacioacuten en la manera en la que Excel y sus caracteriacutesticas esperan A contishynuacioacuten y sin ninguna orden en particular mostramos algunos de los fallos maacutes comunes que cometen los usuarios cuando organizan una hoja de caacutelculo

bull Dispersioacuten innecesaria de los datos a lo largo de diferentes libros

bull Dispersioacuten innecesaria de los datos a lo largo de diferentes hojas de caacutelculo

bull Dispersioacuten innecesaria de los datos a lo largo de diferentes tablas

bull Tener filas y columnas en blanco en tablas con datos

bull Dejar celdas vaciacuteas para datos repetidos

Los tres primeros puntos de la lista tienen que ver con una cosa siempre debe intentar mantener los datos relacionados en una tabla continua Una y otra vez hemos podido ver hojas de caacutelculo que no siguen esta simple regla y por tanto estaacuten limitadas en su capacidad para aprovechar por completo algunas de las funciones maacutes potentes de Excel incluyendo las tablas dinaacutemicas los subtotales y las foacutermulas En dichos escenarios soacutelo podraacute utilizar estas funciones aproveshychaacutendolas por completo cuando organice sus datos en una tabla m u y sencilla

No es una mera coincidencia que las hojas de caacutelculo de Excel puedan albergar 65536 filas pero solamente 256 columnas Teniendo esto en mente deberiacutea conshyfigurar las tablas con encabezados de columnas que vayan a lo largo de la primeshyra fila y los datos relacionados distribuidos de forma continua directamente debajo de los encabezados apropiados Si observa que estaacute repitiendo el mismo dato a lo largo de dos o maacutes filas en una de esas columnas evite la tentacioacuten de omitir los datos repetidos utilizando celdas en blanco para indicar dicha repeticioacuten

Aseguacuterese de que los datos estaacuten ordenados siempre que sea posible Excel dispone de un excelente conjunto de foacutermulas de referencia algunas de las cuales requieren que los datos esteacuten ordenados de manera loacutegica Ademaacutes la ordenashycioacuten aceleraraacute tambieacuten el proceso de caacutelculo de muchas de las funciones

Trucos sobre el formato

Maacutes allaacute de la estructura los formatos tambieacuten pueden causar problemas Aunque una hoja de caacutelculo deberiacutea ser faacutecil de leer y seguir esto suele ser a costa

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 25

de la eficiencia Somos grandes creyentes de mantenerlo todo sencillo aunque muchas personas dedican grandes cantidades de tiempo a formatear sus hojas de caacutelculo Aunque no se den cuenta este tiempo frecuentemente suele ser a costa de la eficiencia La sobrecarga de formatos hacen que aumente el tamantildeo del libro y aunque eacuteste parezca una verdadera obra de arte puede parecerle horrible a otra persona Debe considerar la posibilidad de utilizar algunos colores univershysales para sus hojas de caacutelculo como puedan ser el negro el blanco y el gris

Siempre es una buena idea dejar al menos tres filas en blanco por encima de la tabla (al menos tres aunque es preferible dejar maacutes) Se pueden utilizar estas filas para insertar funciones de base de datos y de filtrado avanzado Muchas personas tambieacuten se preocupan por cambiar la alineacioacuten de las celdas De forma predeterminada los nuacutemeros en Excel se alinean a la derecha y los textos a la izquierda y realmente existen buenas razones para dejarlo asiacute Si empieza a camshybiar estos formatos resultaraacute que no podraacute saberse si el contenido de una celda es un texto o un nuacutemero Es m u y habitual encontrar gente que hace referencia a celdas que parecen nuacutemeros pero en realidad son texto Si cambia la alineacioacuten predeterminada conseguiraacute hacerse un liacuteo La uacutenica excepcioacuten a esta regla poshydriacutean ser los encabezados de las columnas

De formato texto a las celdas soacutelo cuando sea completamente necesario ya que todos los datos que se introduzcan en dichos celdas se convertiraacuten en texto incluso si lo que deseaba era introducir un nuacutemero una fecha Peor auacuten cualshyquier celda que albergue una foacutermula que haga referencia a una celda con forshymato texto tambieacuten quedaraacute formatearla como texto Y normalmente no desearaacute que las celdas con foacutermulas esteacuten formateadas asiacute

Tambieacuten pueden crear problemas las celdas combinadas La base de datos de conocimientos de Microsoft estaacute repleta de problemas frecuentes que se encuenshyt ran en relacioacuten a las celdas combinadas Una buena alternativa es utilizar la opcioacuten Centrar en la seleccioacuten que se encuentra en el cuadro de lista desplegable Horizontal de la pestantildea Alineacioacuten del cuadro de diaacutelogo Formato de celdas

Trucos sobre foacutermulas

Otro de los grandes errores que a menudo cometen los usuarios con las foacutershymulas de Excel es hacer referencia a columnas enteras Esto hace que Excel tenga que examinar en potencia miles sino millones de celdas que de otra manera poshydriacutea ignorar

Tomemos por ejemplo un caso en el que tiene una tabla con datos que se distribuyen desde la celda Al a la celda H1000 Puede decidir que desea utilizar una o maacutes foacutermulas de referencia de Excel para extraer la informacioacuten requerida Dado que la tabla continuaraacute creciendo (a medida que antildeadan nuevos datos) es habitual hacer referencia a toda la tabla que incorpora todas las filas En otras

26 Excel Los mejores trucos

palabras la referencia seraacute algo parecido a AH o posiblemente Al H65536 Puede utilizar esta referencia de forma que cuando se antildeaden nuevos datos a la tabla seraacuten referenciados en las foacutermulas automaacuteticamente Esto resulta un haacutebito m u y malo y siempre deberiacutea evitarlo Todaviacutea puede eliminar la constante neceshysidad de actualizar las referencias de las foacutermulas al incorporar nuevos datos que se antildeaden a la tabla utilizando nombres de rangos dinaacutemicos que veremos en uno de los trucos que presentaremos maacutes adelante

Otro problema tiacutepico que surge en las hojas de caacutelculo malamente disentildeadas es el recaacutelculo tremendamente lento Mucha gente sugiere cambiar el modo de caacutelculo a manual a traveacutes de la opcioacuten que aparece en la pestantildea Calcular del cuadro de diaacutelogo Opciones

Sin embargo normalmente es un mal consejo que puede provocar numeroshysos problemas Una hoja de caacutelculo son todas las foacutermulas y caacutelculos asiacute como los resultados que producen Si utiliza una hoja de caacutelculo con el modo de caacutelculo manual tarde o temprano leeraacute alguna informacioacuten que no haya sido actualizashyda Puede que las foacutermulas esteacuten reflejando valores antiguos en vez de los actuashylizados porque cuando se utiliza el modo de caacutelculo manual debe forzar a Excel a que los realice pulsando la tecla F9

iexclPero es m u y sencillo olvidarse de hacer esto Pieacutenselo de esta forma si los frenos de su coche se estuviesen desgastando tanto que hiciesen que fuera maacutes lento iquestdesconectariacutea el pedal del freno y utilizariacutea el freno de mano en vez de intentar arreglar el problema Muchos de nosotros no hariacuteamos algo asiacute pero otras personas no tienen ninguacuten inconveniente en poner sus hojas de caacutelculo en modo de caacutelculo manual Si tiene la necesidad de utilizar la hoja de caacutelculo en modo manual entonces tiene un problema de disentildeo

Las foacutermulas matriciales son otra de las causas comunes de los problemas Estaacuten pensadas para hacer referencia a celdas simples pero si los utiliza para hacer referencia a grandes rangos haacutegalo lo menos posible Cuando un gran nuacutemero de colecciones hacen referencia a rangos extensos el rendimiento del libro se veraacute afectado a veces hasta el punto en el que ni siquiera se puede utilishyzar y tiene que cambiar a modo de caacutelculo manual

Las funciones de base de datos de Excel proporcionan muchas alternativas al uso de foacutermulas matriciales como veremos maacutes adelante en un truco Ademaacutes la ayuda de Excel ofrece algunos estupendos ejemplos de coacutemo utilizar estas foacutershymulas en grandes tablas de datos para devolver ciertos resultados en base a muacutelshytiples criterios

Otra alternativa que a menudo es pasada por alto es la utilizacioacuten de las tashyblas dinaacutemicas de Excel que veremos en el capiacutetulo 4 Aunque las tablas dinaacutemishycas puedan parecer sobrecogedoras la primera vez que se ven le recomendamos encarecidamente que se familiarice con esta potente funcioacuten de Excel ya que cuando sea un maestro se preguntaraacute coacutemo pudo sobrevivir sin ellas

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 27

Al final del diacutea sino recuerda nada maacutes acerca del disentildeo de la hoja de caacutelculo recuerde que Excel funciona mucho mejor cuando todos los datos relacionados estaacuten distribuidos en una tabla continua Eso haraacute que la utilizacioacuten de los t rushycos sea mucho maacutes sencilla

Crear una vista personal de los libros de Excel Excel le permite mostrar varios libros abiertos simultaacuteneamente y por tanto presentarlos en una vista personalizada organizada en diferentes ventanas Entonces puede guardar el espacio de trabajo como un archivo xlw y utilizarlo posteriormente cuando lo desee

A veces trabajando con Excel puede que necesite tener maacutes de un libro abiershyto en la pantalla lo que permite utilizar visualizar los datos de muacuteltiples libros de forma faacutecil y raacutepida

En los siguientes paacuterrafos describiremos coacutemo hacer esto de una forma orgashynizada y ordenada Abra todos los libros que desee utilizar

Para abrir maacutes de un libro a la vez seleccione la opcioacuten ArchivogtAbrir mantenga pulsada la tecla Control mientras selecciona los libros que

w desea abrir y finalmente baga clic en el botoacuten Abrir

Desde cualquiera de los libros de Excel (no importa cuaacutel) seleccione la opcioacuten de menuacute VentanagtOrganizar Si estaacute activada la casilla de verificacioacuten Ventanas del libro activo desactiacutevela y luego seleccione la organizacioacuten que prefiera Para terminar haga clic en el botoacuten Aceptar

Si eligioacute la opcioacuten Mosaico se le presentaraacuten los libros como un mosaico en la pantalla tal y como puede verse en la figura 11

Si selecciona la opcioacuten Horizontal se distribuiraacuten los libros de arriba a abajo ocupando todo el ancho de la pantalla tal y como se muestra en la figura 12

Si eligioacute la opcioacuten Vertical se distribuiraacuten los libros uno al lado del otro de izquierda a derecha como puede verse en la figura 13

Por uacuteltimo como muestra la figura 14 seleccionando la opcioacuten Cascada se mostraraacuten las ventanas unas encima de otras desde la parte superior izquierda a la parte inferior derecha Una vez que los libros se muestran de la forma que maacutes prefiera puede copiar pegar arrastrar etc informacioacuten entre ellos faacutecilmente

Si cree que maacutes adelante querriacutea volver a utilizar esta vista que acaba de crear puede guardar la configuracioacuten de la distribucioacuten de las ventanas como un espashycio de t r aba jo Para ello s i m p l e m e n t e seleccione la opc ioacuten de m e n uacute ArchivogtGuardar aacuterea de trabajo introduzca el nombre de archivo en el cuadro

28 Excel Los mejores trucos

de diaacutelogo correspondiente y haga clic en el botoacuten Guardar Cuando graba un aacuterea de trabajo la extensioacuten del archivo seraacute xlw en vez de xls Para recuperar un aacuterea de trabajo de Excel a una ventana completa de uno de los libros en partishycular simplemente haga doble clic en la barra de tiacutetulo de la ventana corresponshydiente Tambieacuten puede hacer clic en el botoacuten de maximizar de cualquiera de las ventanas del aacuterea de trabajo Una vez que haya acabado puede cerrar los libros de Excel de la forma habitual

Figura 11 Cuatro libros abiertos en vista mosaico

Cuando necesite volver a abrir los mismos libros bastaraacute con abrir el archivo xlw con lo que maacutegicamente se mostraraacuten con la misma distribucioacuten con la que fueron guardados Si solamente necesita abrir uno de los libros haacutegalo de la forma habitual Cualquier modificacioacuten que haga en alguno de los libros que forman parte del aacuterea de trabajo se guardaraacute automaacuteticamente cuando cierre el aacuterea de trabajo como conjunto aunque tambieacuten puede guardar cada libro de forma individual

Si dedica una pequentildea parte de tiempo a configurar algunas vistas personalishyzadas para realizar tareas repetitivas que requieren de muacuteltiples libros abiertos encontraraacute que esas tareas seraacuten maacutes faacuteciles de gestionar Quizaacute decida utilizar diferentes vistas para diferentes tareas repetitivas dependiendo de cuaacutel sea la tarea o coacutemo se sienta ese diacutea

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 29

Figura 12 Cuatro libros en vista horizontal

Figura 13 Cuatro libros en vista vertical

30 Excel Los mejores trucos

TRUCO

Figura 14 Cuatro libros en vista cascada

Introducir datos en varias hojas de caacutelculo simultaacuteneamente Es muy comuacuten tener los mismos datos en varias hojas de caacutelculo simultaacuteneamente Puede utilizar la herramienta de Excel para agrupar de forma que los datos introducidos en una hoja se introduzcan automaacuteticamente en el resto de hojas al mismo tiempo Tambieacuten disponemos de una aproximacioacuten maacutes raacutepida y maacutes flexible para hacer esta tarea que requiere de un par de liacuteneas de coacutedigo de Visual Basic for Applications (VBA)

El mecanismo que incorpora Excel para hacer que los datos se introduzcan en muacuteltiples lugares al mismo tiempo es una funcioacuten llamada Grupo la cual funshyciona agrupando las hojas de caacutelculo de forma que todas esteacuten vinculadas con el libro de Excel

Agrupar hojas de caacutelculo manualmente

Para utilizar la funcioacuten Grupo manualmente simplemente haga clic en la hoja en la que va a introducir los datos y pulse la tecla Control (tecla Mayuacutes en

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 31

Macintosh) mientras hace clic en las pestantildeas de las hojas de caacutelculo en las que desea insertar simultaacuteneamente los datos Cuando introduzca datos en cualquieshyra de las celdas de la hoja de caacutelculo se introduciraacuten automaacuteticamente en el resto de hojas de caacutelculo agrupadas Misioacuten completada

Para desagrupar las hojas de caacutelculo bien seleccione una hoja de caacutelculo que no sea parte del grupo o bien haga clic con el botoacuten derecho del ratoacuten en cualshyquiera de las pestantildeas de las hojas de caacutelculo agrupadas y seleccione la opcioacuten Desagrupar hojas

Cuando las hojas de caacutelculo estaacuten agrupadas si echa un vistazo a la barra de tiacutetulo de Excel veraacute que aparece la palabra Grupo encerrada entre corchetes Esto le hace saber que todaviacutea tiene agrupadas las hojas de caacutelculo A menos que tenga vista de aacuteguila y una memoria de elefante es maacutes que probable que no se deacute cuenta o se olvide de que tiene agrupadas las hojas de caacutelculo Por tanto le sugerimos que las desagrupe tan pronto como haya terminado con lo que estuviese haciendo

Aunque este meacutetodo es faacutecil necesita que recuerde agrupar y desagrupar las hojas cuando necesite corriendo el riesgo de sobrescribir datos en cualquier otra hoja de caacutelculo si se olvida de desagruparlas Tambieacuten significa que se produciraacuten entradas de datos simultaacuteneas independientemente de la celda en la que esteacute sishytuado Por ejemplo quizaacute solamente desee introducir datos simultaacuteneamente cuando se encuentre en un cierto rango de celdas en particular

Agrupar hojas de caacutelculo automaacuteticamente

Puede evitar estos inconvenientes faacutecilmente utilizando un coacutedigo VBA m u y sencillo Para que pueda funcionar debe residir dentro del moacutedulo privado del objeto Sheet (Hoja) Para acceder raacutepidamente al moacutedulo privado haga clic con el botoacuten derecho del ratoacuten en la pestantildea con el nombre de la hoja y seleccione la opcioacuten Ver coacutedigo Entonces podraacute utilizar uno de los eventos de Excel para las hojas de caacutelculo los cuales ocurren dentro de la propia hoja de caacutelculo como puede ser cambiar una celda seleccionar un rango activar desactivar etc meshydiante dichos eventos podraacute mover el coacutedigo dentro del moacutedulo privado del objeshyto Sheet Lo primero que hay que hacer para que funcione el agrupamiento es dar nombre al rango de celdas que desea tener agrupadas de forma que los datos se introduzcan automaacuteticamente en el resto de hojas de caacutelculo Escriba este coacuteshydigo en el moacutedulo privado

Priacutevate Sub Worksheet_SelectionChange(ByVal Target As Range) If Not Intersect(Range(MiRango) Target) Is Nothing Then

32 Excel Los mejores trucos

Hoja5 se ha colocado primero a propoacutesito ya que seraacute bullla hoja activa desde la que trabajaremos

Sheets(Array(Hoja5 MHoja3 Hojal))Select Else

MeSelect End If

End Sub

En este coacutedigo hemos utilizado el rango cuyo nombre es MiRango pero puede cambiar este nombre por el que esteacute utilizando en su hoja de caacutelculo Tamshybieacuten deberaacute cambiar los tres nombres de hoja en el coacutedigo tal y como se muestra la figura 15 con aquellos nombres de hoja que desea agrupar Cuando haya terminado cierre la ventana de moacutedulo o bien pulse AltComando-Capara volshyver a la ventana principal de Excel

Figura 15 Coacutedigo para agrupar automaacuteticamente hojas de caacutelculo

Es importante resentildear que el primer nombre de hoja utilizado en el array debe ser el de la hoja que contiene el coacutedigo y por tanto la hoja de caacutelculo en la que se introduciraacuten los datos

Una vez que haya escrito el coacutedigo en el lugar adecuado cada vez que selecshycione cualquier celda de la hoja de caacutelculo el coacutedigo comprobaraacute si la celda que ha seleccionado (el objetivo) estaacute dentro del rango llamado MiRango Si es asiacute el coacutedigo agruparaacute automaacuteticamente las hojas de caacutelculo que desea agrupar Si por el contrario esto no es asiacute desagruparaacute las hojas simplemente activando la hoja en la que se encuentra La maravilla de este truco es que no hay necesidad de agrupar manualmente las hojas y por tanto correr el riesgo de olvidarse de

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 33

desagruparlas por lo que esta aproximacioacuten le ahorraraacute gran cantidad de tiemshypo y frustracioacuten Si desea que aparezcan los mismos datos en las otras hojas pero no en las mismas direcciones de celdas escriba el siguiente coacutedigo

Priacutevate Sub worksheet_Change(ByVal Target As Range) If Not Intersect(Range(MiRango) Target) Is Nothing Then

With Range(MiRango) Copy Destination=Sheets(Hoja3)Range(Al)

Copy Destination=Sheets(Hojal)Range(DIO) End With

End If End Sub

Este coacutedigo tambieacuten necesita estar incluido dentro del moacutedulo privado del obshyjeto Sheet Siga los pasos que describimos anteriormente en este mismo truco para poder llegar a dicho moacutedulo

Impedir que los usuarios realizan ciertas acciones Aunque Excel proporciona proteccioacuten general para los libros y hojas de caacutelculo esta caracteriacutestica no proporciona privilegios limitados a los usuarios a menos que utilice un truco

Se pueden gestionar las interacciones de los usuarios con las hojas de caacutelculo monitorizando y respondiendo a los eventos Los eventos como su nombre indishyca son acciones que ocurren a medida que se trabaja con los libros y las hojas de caacutelculo Algunos de los eventos maacutes comunes incluyen abrir un libro guardarlo y cerrarlo cuando el usuario desee Se le puede indicar a Excel que ejecute cierto coacutedigo Visual Basic cuando cualquiera de estos eventos se produzca

Los usuarios pueden saltarse todas estas protecciones si desactivan las macros por completo Si la seguridad estaacute establecida a nivel medio seraacuten notificados de que existen macros en el libro abierto dando la posibilidad de desactivarlas Un nivel de seguridad alto simplemente desactivaraacute las macros automaacuteticamente Por otro lado si las hojas de caacutelculo requieren del uso de macros es maacutes que probable que los usuarios desean tener las macros activadas Estos trucos son praacutecticos y no proporcionan una seguridad de datos que requiera de gran carga de trabajo

Impedir el comando Guardar como en un libro de Excel

Se puede especificar que cualquier libro de Excel sea guardado como soacutelo lecshytura activando la casilla de verificacioacuten Se recomienda soacutelo lectura que se en-

34 Excel Los mejores trucos

cuentra accediendo a la opcioacuten Opciones generales del cuadro de diaacutelogo Guarshydar Con esto se evita que un usuario pueda guardar cualquier cambio que haya realizado al archivo a menos que lo grabe con un nombre diferente o en una ubicacioacuten distinta

A veces sin embargo desearaacute impedir que los usuarios puedan guardar una copia del libro en otra carpeta con el mismo nombre de archivo o con cualquier otro En otras palabras lo que desea es que los usuarios soacutelo puedan guardar sobre el archivo existente y no crear otra copia del mismo Esto es particularshymente interesante cuando hay maacutes de una persona guardando los cambios en un libro de Excel porque no desea que haya diferentes copias de un mismo libro guardadas con el mismo nombre pero en carpetas diferentes

El evento Bef o r e S a v e que vamos a utilizar existe desde Excel 97 Como su propio nombre indica este evento se produce justamente antes de que un libro sea guardado permitieacutendole interactuar con el usuario mostrando una advershytencia e impidiendo que Excel continuar grabando

Antes de probar esto en su casa aseguacuterese de guardar su libro de Excel antes Si coloca este coacutedigo sin haber guardado los cambios antes ya no podraacute hacerlo

Para insertar el coacutedigo abra el libro de Excel haga clic con el botoacuten derecho del ratoacuten en el icono de Excel situado justo a la izquierda del menuacute Archivo y seleccione la opcioacuten Ver coacutedigo como puede verse en la figura 16

Figura 16 Menuacute de acceso raacutepido al moacutedulo privado del objeto Workbook

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 35

Figura 17 Coacutedigo una vez introducido en el moacutedulo privado (ThisWorkbook)

Pr iacuteva t e Sub workbook_BeforeSave(ByVal SaveAsUI As Boolean Cancel As Boolean) Dim lReply As Long

If SaveAsUI = True Then lReply = MsgBox(No tiene permiso para guardar este amp _

libro con otro nombre iquestDesea guardarlo con el mismo nombre vbQuestion + vbOKCancel)

Cancel = (lReply = vbCancel) If Cancel = False Then MeSave Cancel = True

End If End Sub

Vamos a probarlo Seleccione la opcioacuten ArchivogtGuardar y el libro se guardaraacute de forma normal Ahora intente seleccionar la opcioacuten ArchivogtGuardar como y

Este acceso raacutepido no estaacute disponible en Macintosh Tendraacute que abrir el Editor de Visual Basic pulsando Opcioacuten-Fll o bien seleccionando la opcioacuten de menuacute HerramientasgtMacrogtEditor Visual Basic Una vez en eacutel haga clic con el botoacuten derecho en ThisWorkbook que estaacute situado en la ventana de proyectos de la parte izquierda

Escriba el siguiente coacutedigo en VBE tal y como se muestra en la figura 17 y luego pulse AltComando-CLpara volver a la ventana principal de Excel

36 Excel Los mejores trucos

entonces veraacute un mensaje que le indica que no tiene permiso para guardar este libro con otro nombre diferente

Impedir que los usuarios impriman un libro de Excel

Quizaacute desee impedir que los usuarios puedan imprimir un libro para que lueshygo seguramente acabe en una papelera o tirado en un escritorio a la vista de todos Utilizando el evento Bef o r e P r i n t podemos impedir esto Introduzca el siguiente coacutedigo como hicimos anteriormente en el Editor de Visual Basic

Priacutevate Sub workbook_BeforePrint(Cancel As Boolean) Cancel = True MsgBox No puede imprimir este libro vblnformation

End Sub

Pulse AltComando-Q_cuando haya terminado de introducir el coacutedigo para guardarlo y volver a la ventana principal de Excel Ahora cada vez que los usuashyrios intenten imprimir este libro no podraacuten hacerlo La liacutenea de coacutedigo con la instruccioacuten MsgBox es opcional pero siempre es buena idea incluirla para que informe al usuario de que no moleste al departamento de Tecnologiacutea Interna diciendo que su programa no funciona

Si desea impedir que los usuarios impriman solamente algunas hojas del lishybro utilice este coacutedigo en vez del anterior

Private Sub workbook_BeforePrint(Cancel As Boolean) Select Case ActiveSheetNtildeame

Case Hojal Hoja2 Cancel = True MsgBox No puede imprimir esta hoja de este libro_

vblnformation End Select

End Sub

Observe que hemos especificado las hojas Hojal y Hoja2 como las que tienen prohibido ser impresas Por supuesto puede cambiar esos nombres por el de cualshyquier otra hoja que desee bloquear Tambieacuten puede antildeadir maacutes hojas a la lista simplemente escribiendo una seguida del nombre de la hoja entre dobles comishyllas Si soacutelo desea impedir la impresioacuten de una sola hoja incluya su nombre entre dobles comillas detraacutes de la sentencia Case y elimine la coma sobrante

Impedir que los usuarios inserten maacutes hojas de caacutelculo

Excel le permite proteger la estructura de un libro de forma que los usuarios no puedan eliminar hojas de caacutelculo reordenarlas cambiar sus nombres etc A

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 37

veces sin embargo desearaacute impedir simplemente que se puedan antildeadir nuevas hojas de caacutelculo permitiendo que se realicen el resto de acciones

El siguiente coacutedigo le permitiraacute hacer esto

Priacutevate Sub Workbook_NewSheet(ByVal Sh As Object) ApplicationDisplayAlerts = False

MsgBox No puede antildeadir nuevas hojas de caacutelculo a este libro_ vbInformation

ShDelete ApplicationDisplayAlerts = True End Sub

Este coacutedigo primeramente muestra el cuadro de diaacutelogo con el mensaje y lueshygo inmediatamente elimina la nueva hoja que se acaba de antildeadir una vez que el usuario acepta el mensaje La instruccioacuten Appl i c a t i oacute n Di s p l a y A l e r t s = F a l s e impide que Excel muestre la advertencia estaacutendar que pregunta al usuashyrio si realmente desea eliminar la hoja Con este coacutedigo los usuarios seraacuten incashypaces de antildeadir maacutes hojas de caacutelculo al libro

Otra forma de impedir que los usuarios antildeadan nuevas hojas de caacutelculo es seleccionar la opcioacuten HerramientasgtProtegergtProteger libro y luego activar la cashysilla de verificacioacuten Estructura Sin embargo como ya dijimos al principio de este truco el mecanismo de proteccioacuten de Excel es menos flexible y ademaacutes de impeshydir antildeadir nuevas hojas tambieacuten impediraacute otras muchas cosas

Impedir confirmaciones innecesarias A veces las interacciones de Excel puedan resultar pesadas siempre preguntando para pedir confirmacioacuten sobre acciones Quitemos estos mensajes y dejemos que Excel realice las acciones

El tipo de mensajes a los que nos referimos son aquellos que preguntan si se desean activar las macros (incluso cuando no hay ninguna) o los que nos preshyguntan si estamos seguros de que queremos eliminar un hoja de caacutelculo A conshytinuacioacuten mostramos coacutemo evitar estos tipos de mensajes

Activar las macros cuando no se tenga ninguna

La memoria de Excel es de acero cuando se t rata de recordar que ha grabado una macro en un libro Por desgracia Excel sigue recordando que se ha grabado una macro incluso si la ha eliminado utilizando la opcioacuten HerramientasgtMacrogt Macros (AltOpcioacuten-F8) Despueacutes de hacer esto si abre el libro de nuevo seguiraacute recibiendo un mensaje que le pregunta si desea activar las macros incluso aunshyque no haya ninguna que activar

38 Excel Los mejores trucos

Se le pedir confirmacioacuten para activar las macros solamente si el nivel de seguridad estaacute establecido en medio Si estaacute establecido en bajo las macros se activan directamente pero si estaacute establecido en alto estaacuten desactivadas automaacuteticamente

Cuando graba una macro Excel inserta un moacutedulo de Visual Basic que conshytendraacute los comandos y las funciones Por ello cuando se abre un libro Excel comprueba si existe alguacuten moacutedulo este vaciacuteo o no Cuando se eliminan las macros de un libro soacutelo se elimina el coacutedigo pero no el moacutedulo en siacute (es algo asiacute como beberse toda la leche pero dejarse el bote vaciacuteo dentro de la nevera) Para impedir que se muestren este tipo de mensajes innecesarios deberaacute eliminar tambieacuten el moacutedulo Asiacute es como puede hacerse esto Abra VBE seleccionando la opcioacuten HerramientasgtMacrogtEditor de Visual Basic (o pulsando A l t C o m a n d o - F l l ) y luego seleccionando la opcioacuten VergtExplorador de proyectos (en Macintosh la venshytana de proyectos siempre estaacute abierta por lo que no necesitaraacute abrir el explorashydor de proyectos) A continuacioacuten podraacute ver una ventana como la que se muestra en la figura 18

Figura 18 Moacutedulos del Explorador de proyectos con la carpeta Moacutedulos abierta

Busque el libro en el Explorador de proyectos y haga clic en el icono + situado a su izquierda para visualizar los componentes del libro en particular los moacutedushylos Haga clic en el icono + de la carpeta Moacutedulos para obtener una lista de todos los moacutedulos Haga clic con el botoacuten derecho del ratoacuten en cada moacutedulo y elija la opcioacuten Quitar moacutedulo Cuando se le pregunte rechace la opcioacuten de exportar los moacutedulos Antes de quitar los moacutedulos que pudieran tener coacutedigo uacutetil haga doble clic en cada uno de ellos para asegurarse de que no los necesite Al terminar pulse Al t Comando-Ctpara volver de nuevo a la ventana principal de Excel

Mensajes de confirmacioacuten para guardar cambios que no se han realizado

Probablemente habraacute observado que a veces al abrir un libro y echar un vistashyzo a su informacioacuten es suficiente para que Excel le pregunte si desea guardar los

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 39

cambios en el libro de macro personal (aunque de hecho no ha realizado ningushyno) Lo maacutes probable es que tenga una funcioacuten imprevisible dentro del libro de macro personal

Un libro de macro personal es un libro oculto que se crea la primera vez que graba una macro y que se abre cada vez que se utiliza Excel Una funcioacuten (o foacutermula) imprevisible es aquella que se recalcula automaacuteticamente cada vez que realiza praacutecticamente cualquier cosa en Excel incluyendo abrir y cerrar un libro o la aplicacioacuten entera Dos de las funciones imprevisibles maacutes comunes son Hoy () y Ahora ( )

Por tanto aunque crea que no ha realizado cambios en el libro puede que esas funciones que se ejecutan en segundo plano siacute los hayan hecho Esto cuenta como un cambio y hace que Excel le pregunte si desea guardar dichos cambios

Si desea que Excel deje de preguntar por aquellos cambios que no ha realizashydo dispone de un par de opciones La maacutes obvia es no almacenar funciones imshyprevisibles al principio dentro del libro de macro personal y luego eliminar cualquier funcioacuten imprevisible que ya exista La otra opcioacuten en caso de que neshycesite utilizar funciones imprevisibles puede ser utilizar este sencillo coacutedigo para hacer que Excel crea que el libro de macro personal ha sido guardado en el m o shymento en el que se abre

Priacutevate Sub workbook_Open( ) MeSaved = True

End Sub

Este coacutedigo debe residir en el moacutedulo privado del libro del libro de macro pershysonal Para llegar ahiacute desde cualquier libro seleccione la opcioacuten VentanagtMostrar seleccione Personalxls y luego haga clic en Aceptar Luego abra VBE e introduzshyca el coacutedigo anterior Finalmente pulse AltComando-Capara volver a la ventashyna principal de Excel cuando haya terminado Por supuesto si dispone de una funcioacuten imprevisible que quiere que sea recalculada y por tanto guardar los camshybios que haya realizado entonces introduzca el siguiente coacutedigo

Priacutevate Sub workbook_Open( ) MeSave

End Sub

Esta macro guardaraacute el libro de macro personal automaacuteticamente cada vez que sea abierto

Impedir los avisos de Excel para macros grabadas

Uno de los muchos inconvenientes de las macros grabadas es que aunque son m u y uacutetiles para reproducir cualquier comando tienden a olvidar las res-

40 Excel Los mejores trucos

puestas a los avisos que se muestran en pantalla Elimine una hoja de caacutelculo y se le pediraacute confirmacioacuten ejecute una macro que realice esto mismo y todaviacutea se le pediraacute confirmacioacuten Veamos coacutemo desactivar esos avisos

Seleccione la opcioacuten HerramientasgtMacrogtMacros (AltOpcioacuten-F8) para mosshytrar un listado de todas las macros

Aseguacuterese de que estaacute seleccionada la opcioacuten Todos los libros abiertos en el cuadro de lista desplegable de la parte inferior Seleccione la macro en la que esteacute interesado y haga clic en el botoacuten Modificar Coloque el cursor antes de la prishymera liacutenea de coacutedigo (la primera liacutenea que no tiene un apostrofe delante de ella) y escriba lo siguiente

ApplicationDisplayAlerts = False

Y al final del todo del coacutedigo antildeada esto

ApplicationDisplayAlerts = True

Con lo que la macro entera quedariacutea asiacute

Sub MyMacro( ) i

1 MiMacro Macro 1 Elimina la hoja de caacutelculo actual i

ApplicationDisplayAlerts = False ActiveSheetDelete ApplicationDisplayAlerts = True

End Sub

Observe que al final del coacutedigo volvemos a activar los mensajes de confirmashycioacuten para que Excel los muestre cuando estemos trabajando normalmente Si se olvida de activarlos Excel no mostraraacute ninguna alerta lo cual puede ser pelishygroso

Si por cualquier razoacuten la macro no se completa (un error de ejecucioacuten por ejemplo) Excel puede que no llegue a ejecutar la liacutenea de coacutedigo en la que se vuelven a activar los mensajes de confirmacioacuten Si ocurriese esto probablemente seraacute mejor salir de Excel y volver a abrirlo para dejar todo en su estado normal

Ahora ya sabe coacutemo utilizar Excel sin mensajes de confirmacioacuten Tenga en cuenta de todas formas que esos mensajes estaacuten ahiacute por una razoacuten Aseguacuterese de que comprende completamente el propoacutesito de estos mensajes antes de desactivarlos

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 41

Ocultar hojas para que no puedan ser mostradas A veces deseariacutea tener un lugar donde colocar informacioacuten que no pueda ser leiacuteda o modificada por los usuarios Puede construir un lugar secreto dentro del libro un lugar donde almacenar informacioacuten foacutermulas y otros recursos que se utilizan en las hojas pero que no desea que se vean

Una praacutectica m u y uacutetil cuando se configura un nuevo libro de Excel es resershyvar una hoja para almacenar informacioacuten que los usuarios no necesitan ver caacutelculos de foacutermulas validacioacuten de datos listas variables de intereacutes y valores especiales datos privados etc Aunque se puede ocultar una hoja seleccionando la opcioacuten FormatogtHojagtOcultar es importante asegurarse de que los usuarios no puedan volver a mostrarla seleccionando la opcioacuten FormatogtHojagtMostrar

Por supuesto simplemente puede proteger la hoja pero esto todaviacutea deja al descubierto los datos privados las foacutermulas etc Ademaacutes no se puede proteger las celdas que estaacuten vinculadas a cualquiera de los controles disponibles en la barra de herramientas Formularios

En vez de esto jugaremos con la propiedad V i s i b l e de la hoja establecieacutenshydola en x lVeryHidden Desde VBE (HerramientasgtMacrogtEditor de Visual Basic o Alt Opcioacuten-Fl 1) aseguacuterese de que la ventana de exploracioacuten de proyectos esteacute visible seleccionando la opcioacuten VergtExplorador de proyectos Encuentre el nomshybre del libro y expanda su jerarquiacutea haciendo clic en el icono + que aparece a la izquierda de su nombre Expanda la carpeta Microsoft Excel Objetos para mosshytrar todas las hojas del libro

Seleccione la hoja que desea ocultar en el explorador de proyectos y muestre sus propiedades seleccionando la opcioacuten VergtVentana Propiedades (o pulsando la tecla F4) Aseguacuterese de que estaacute seleccionada la pestantildea Alfabeacutetica y busque la propiedad Visible en la lista que estaraacute situada al final Haga clic en el cuadro de texto que hay a su derecha y seleccione la uacuteltima opcioacuten 2 - xISheetVeryHidden tal y como se muestra en la figura 19 Pulse AltComando-CLpara guardar los cambios y volver a la ventana principal de Excel A partir de ahora la hoja ya no estaraacute visible desde la interfaz de Excel e incluso tampoco podraacute mostrarse a traveacutes de la opcioacuten FormatogtHojagtMostrar

Una vez que haya seleccionado la opcioacuten 2 - xISheetVeryHidden en la s$P ventana de propiedades puede parecer que dicha eleccioacuten no ha tenido

iquestiexclr efecto Este fallo visual ocurre a veces y no deberiacutea importarle Siempre $r que la hoja no aparezca entre las opciones de FormatogtHojagtMostrar

puede estar seguro de que todo ha ido bien

Para revertir el proceso simplemente siga los pasos anteriores pero esta vez seleccionando la opcioacuten 1 - xISheetVisible

42 Excel Los mejores trucos

iiffiffffmftfii

0 H EuroTool (EUROTOOLXLA) sectiacute VBAProject (Libro 1)

- bull v Microsoft Excel Objetos Uuml3 Hojal (Hojal) iQ Hoja2 (Hoja2) Q ThisWorkbook

Moacutedulos laquoiacutepound Moacutedulo 1 ltspound Moacutedulo2

iacuteHojal Worksheet

Alfabeacutetica | po r categoriacuteas 1 3

(Ntildeame) Hojal DisplayPageBreaks False DisplayRightToLeft False EnableAutoFilter False EnableCalculation True EnableOutlining False EnablePivotTable False

EnableSelection 0 - xlNoRestrictions Ntildeame Hojal ScrollArea Standard Width 1071

Figura 19 Ventana de propiedades de una hoja con la propiedad Visible establecida en 2 - xlSheetVeryHidden

Personalizar el cuadro de diaacutelogo Plantillas y el libro predeterminado Si suele realizar las mismas tareas o utilizar las mismas distribuciones para hojas de caacutelculo con frecuencia puede construir su propia pestantildea de plantillas en el cuadro de diaacutelogo estaacutendar Plantillas para proporcionar un acceso raacutepido al inicio

Imagiacutenese que tiene una hoja de caacutelculo que contiene los diacuteas del antildeo y foacutershymulas que resumen diversas informaciones para esos diacuteas Ha formateado esta hoja de caacutelculo cuidadosamente con los colores de su empresa el logotipo y con las foacutermulas necesarias todo ello para utilizarla con frecuencia En vez de tener que reinventar la rueda (o copiar y eliminar las cosas que no necesita) cada diacutea puede ahorrar un montoacuten de tiempo y de problemas creando una plantilla

Las plantillas para libros y hojas de caacutelculo le proporcionan un punto de parshytida para los siguientes proyectos permitieacutendole saltarse la configuracioacuten inishycial el proceso de dar formato la construccioacuten de foacutermulas etc Guardar una plantilla de una hoja de caacutelculo simplemente significa abrir un libro nuevo boshyrrar todas las hojas excepto una y luego crear una plantilla baacutesica que seraacute la

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 43

que utilice Una vez terminada seleccionaraacute la opcioacuten ArchivogtGuardar como y elegiraacute la opcioacuten Plantilla del cuadro de lista desplegable con los tipos de archivos posibles Si la plantilla es de un libro (es decir que contendraacute maacutes de una hoja) entonces cree un nuevo libro haga todos los cambios necesarios y luego seleccioshyne la opcioacuten ArchivogtGuardar como y guaacuterdelo como una plantilla

Con la plantilla terminada puede crear una copia exacta de la misma en cualshyquier momento seleccionando la opcioacuten ArchivogtNuevo y luego seleccionando una plantilla de libro o bien haciendo clic con el botoacuten derecho en una pestantildea de hoja y seleccionando la opcioacuten Insertar desde el menuacute contextual para insertar una nueva hoja a partir de una plantilla iquestNo seriacutea interesante poder tener todas esas plantillas disponibles desde el cuadro de diaacutelogo estaacutendar Plantillas o confishygurar su libro preferido como predeterminado Puede hacer todo esto creando su propia pestantildea de plantillas

Este truco presupone que tiene una uacutenica instalacioacuten de Excel en su ordenador Si dispone de muacuteltiples copias o versiones de Excel puede que no funcione

Crear su propia pestantildea de plantillas

Si dispone de una serie de plantillas (tanto de libros como de hojas de caacutelculo) que desea utilizar con regularidad puede agruparlas todas juntas en el cuadro de diaacutelogo Insertar o Plantillas

Desde cualquier libro seleccione la opcioacuten ArchivogtGuardar como y desde el cuadro de lista desplegable de tipos de archivo seleccione la opcioacuten Plantilla (xlt) De forma predeterminada Excel seleccionaraacute la carpeta estaacutendar Plantillas del disco duro en donde se almacenan todas las plantillas del usuario Si no existe una carpeta llamada Mis plantillas cree una utilizando el botoacuten Nueva carpeshyta Luego seleccione la opcioacuten ArchivogtNuevo en la barra de menuacutes (en Excel 2000 y posteriores seleccione Plantillas generales en el cuadro de diaacutelogo Nuevo libro En Excel 2003 debe seleccionar la opcioacuten En mi PC del panel de tareas) Entonces deberiacutea haber una pestantildea que representa la carpeta Mis plantillas que acaba de crear (veacutease figura 110) Tambieacuten deberiacutea ver las plantillas de libros y hojas de caacutelculo que guarde en dicha carpeta

Utilizar un libro personalizado de forma predeterminada

Al iniciar Excel se abre de forma predeterminada un libro en blanco llamado Librol que contiene tres hojas en blanco Esto estaacute bien si desea comenzar de nuevo cada vez que inicia Excel Sin embargo es probable que trabaje normal-

44 Excel Los mejores trucos

mente con un libro Por tanto resulta pesado tener que abrir Excel y luego busshycar el libro que se desea abrir Si desea configurar Excel para que automaacuteticamente se inicie con un cierto libro abierto siga leyendo

General ] Soluciones de hoja de caacutelculo Mis plantillas j

iaacute iexcl J 1 Libro lxlt Libro2XLT

Seleccione un icono para ver una vista previa

Plantillas de Office Online

Figura 110 El cuadro de diaacutelogo Plantillas

Para ello guarde su libro predeterminado (plantilla) en la carpeta XLSTART (que normalmente se encuentra en la carpeta CDocuments and SettingsNombre de usuarioApplication DataMicrosoftExcelXLSTART en Windows y en la carshypeta ApplicationsMicrosoft Office XOfficeStartupExcel en Macintosh) Una vez que haya hecho esto Excel utilizaraacute cualquiera de los libros que haya incluishydo en esta carpeta como predeterminados

La carpeta XLSTART es donde se crea y guarda automaacuteticamente el libro de macros personales cuando graba una macro El libro de macros personales es un libro oculto Tambieacuten puede tener sus propios libros ocultos abiertos en segundo plano si lo desea abriendo dicho libro seleccionando la opcioacuten VentanagtOcultar cerrando Excel y luego haciendo clic en Siacute para guardar los cambios en eacutel Luego coloque ese libro en la carpeta XLSTART Todos los libros que oculte y coloque dentro de la carpeta XLSTART se abriraacuten como libros ocultos cada vez que inicie Excel

Evite la tentacioacuten de colocar muchos libros en esta carpeta especialmente si son grandes dado que todos ellos se abriraacuten cuando inicie Excel Si se tiene mushychos libros abiertos se puede reducir considerablemente el rendimiento de Excel Naturalmente si cambia de opinioacuten y desea que al iniciar Excel aparezca un libro en blanco simplemente elimine los libros o plantillas de la carpeta XLSTART

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 45

Crear un iacutendice de hojas en el libro Si ha dedicado mucho tiempo en un libro que contiene muchas hojas sabe perfectamente lo complicado que puede ser encontrar una hoja en particular En estos casos es imprescindible tener una hoja iacutendice para poder navegar por el resto de hojas de libro

Utilizar una hoja de iacutendice le permitiraacute explorar de forma raacutepida y sencilla el libro de forma que con un solo clic de ratoacuten pueda ir directamente al lugar que desee Se puede crear un iacutendice de dos formas Podriacutea tener la tentacioacuten de crear el iacutendice a mano Cree una nueva hoja llaacutemela iacutendice o algo parecido introshyduzca en ella una lista de todos los nombres de las hojas e incluya viacutenculos a cada una de ellas mediante la opcioacuten de menuacute lnsertargtViacutenculo o pulsando Con-trolComando-K aunque este meacutetodo pueda ser suficiente en casos de los que no hay demasiadas hojas y no hay muchos cambios puede ser m u y tedioso teshyner que mantener el iacutendice manualmente

El siguiente coacutedigo crearaacute automaacuteticamente un iacutendice con viacutenculos a todas las hojas que esteacuten incluidas en el libro Este iacutendice se vuelve a generar cada vez que la hoja que contiene el coacutedigo es activada Este coacutedigo deberiacutea residir en el moacutedushylo privado del objeto Sheet Inserte una nueva hoja en el libro de Excel y llaacutemela con alguacuten nombre apropiado como pueda ser iacutendice Luego haga clic con el botoacuten derecho del ratoacuten soacutebrela pestantildea de dicha hoja y seleccione la opcioacuten Ver coacutedigo En la ventana de coacutedigo de Visual Basic escriba lo siguiente

Priacutevate Sub Worksheet_Activate( ) Dim wSheet As Worksheet Dim L As Long L = 1

With Me Columns(1)ClearContents Cells(l 1) = IacuteNDICE Cells(l 1)Ntildeame = iacutendice

End With

For Each wSheet In Worksheets If wSheetNtildeame oMeName Then L = L + 1 With wSheet

Range(Al)Ntildeame = Inicio amp wSheetIndex

HyperlinksAdd Anchor=Range(Al) Address=_ SubAddress=iacutendice TextToDisplay=Volver al iacutendice

End With MeHyperlinksAdd Anchor=MeCells(1 1) Address=_ SubAddress=Inicio amp wSheetIndex TextToDisplay=wSheetNtildeame

End If Next wSheet

End Sub

46 Excel Los mejores trucos

Pulse AltComando-CLpara volver al libro y guardar los cambios Observe que el coacutedigo da el nombre Inicio (al igual que cuando da nombre a una celda o un rango de celdas en Excel) a la celda Al de cada hoja ademaacutes de un uacutenico nuacutemero que representa el nuacutemero de iacutendice para dicha hoja Esto asegura que la celda Al de cada hoja tiene un nombre diferente Si la celda Al de la hoja ya tiene un nombre deberiacutea considerar cambiar cualquier mencioacuten a Al en el coacutedigo por algo maacutes adecuado (por ejemplo alguna celda no utilizada que esteacute situada en cualquier parte de la hoja)

Debe tener en cuenta que si selecciona la opcioacuten ArchivogtPropiedadesgt Resumen e introduce una direccioacuten URL como viacutenculo base el iacutendice que se crea por el coacutedigo anterior posiblemente no funcione Un viacutenculo base es una ruta o URL que desea utilizar para todos los viacutenculos con la misma direccioacuten base y que esteacuten incluidos en el documento actual

Otra forma de construir un iacutendice que es maacutes sencilla para el usuario es antildeadir un viacutenculo a la lista de hojas como un elemento de menuacute contextual al que se puede acceder haciendo clic con el botoacuten derecho del ratoacuten Haremos que dicho viacutenculo abra el menuacute estaacutendar de hojas Normalmente puede abrir este menuacute haciendo clic con el botoacuten derecho del ratoacuten en cualquiera de los botones de desplazamiento que se encuentran a la izquierda de donde se muestran las solapas de cada hoja tal y como se muestra en la figura 111

Ruuml iquest j

1 I 2 3 4 5 6 7 8

in i 11 12 13 j 14iexcl 15l 16| 17 j 18Iacute

119 i ]H 4 Listo

W W W F S l f i l W W i l f raquo ^

Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana l

Al f

A | B C D E F

i

$M Tareas para hoy

Figuras de esta semana

Hojal j

Hoja2 i

Hoja3

Hoja4

HojaS

Hoja6 T trade f p ^ aacute j j i E ^ bdquo trade ^ r a _ j ^rmdashp^u r a s d e e s t a s e m a n a ^ H o j a l pound H o j a 2 j 4 j

G

1 NUM

- S X

H mdash

bulliexcl

mdash1 ltr i

bull i n

Figura 111 Menuacute con las hojas disponibles que se muestra al hacer clic con el botoacuten derecho sobre los botones de desplazamiento entre hojas

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 47

Para vincular ese menuacute con el hecho de hacer clic con el botoacuten derecho del ratoacuten en cualquier celda escriba el siguiente coacutedigo en VBE

Priacutevate Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object ByVal Target As Range Cancel As Boolean) Dim cCont As CommandBarButton

On Error Resume Next ApplicationCommandBars(Cell)Controls(iacutendice de hojas)Delete On Error GoTo 0

Set cCont = ApplicationCommandBars(Cell)ControlsAdd _ (Type=msoControlButton Temporary=True)

With cCont Caption = iacutendice de hojas

OnAction = IndexCode End With

End Sub

A continuacioacuten deberaacute insertar un moacutedulo estaacutendar que almacene la macro IndexCode que es llamada por este coacutedigo que acabamos de introducir en el momento en el que el usuario hace clic con el botoacuten derecho del ratoacuten en una celda Es fundamental que utilice un moacutedulo estaacutendar a continuacioacuten ya que si coloca el coacutedigo en el mismo moacutedulo que el coacutedigo anterior Excel no sabraacute doacutende encontrar una macro llamada IndexCode Seleccione lnsertargtMoacutedulo y escriba el siguiente coacutedigo

Sub IndexCode( ) ApplicationCommandBars(workbook Tabs)ShowPopup End Sub

Pulse AltComando-CLpara volver a la ventana principal de Excel A contishynuacioacuten haga clic con el botoacuten derecho en cualquier celda y veraacute un nuevo eleshymento de menuacute llamado iacutendice de hojas que al seleccionarlo mostraraacute un listado de todas las hojas que contiene este libro

H Limitar el rango de desplazamiento de la hoja de caacutelculo Si se desplaza a menudo por la hoja de caacutelculo o si tiene datos que no desea que sean visualizados por los lectores puede ser uacutetil limitar el aacuterea visible de la hoja de caacutelculo soacutelo al rango que actualmente tiene datos

Todas las hojas de Excel creadas a partir de Excel 97 disponen de 256 columshynas (de la A a la IV) y de 65536 filas En la mayoriacutea de los casos las hojas soacutelo utilizaraacuten un pequentildeo porcentaje de todas las celdas disponibles Existe la posibishylidad de establecer el aacuterea por el que se puede desplazar el usuario de forma que soacutelo pueda ver los datos que desee Luego puede colocar datos que no deben ser

48 Excel Los mejores trucos

vistos fuera de esa aacuterea Esto tambieacuten puede hacer maacutes sencillo desplazarse por una hoja de caacutelculo y que los usuarios no se encuentran en la fila 50000 para tener que empezar a buscar los datos que desea

La manera maacutes sencilla para establecer los liacutemites es simplemente ocultar to shydas las columnas y filas que no se utilizan Estando en una hoja localice la uacuteltishyma fila que contiene datos y seleccione la fila entera que estaacute debajo de ella haciendo clic en el selector de fila Mantenga pulsadas las teclas Control y Mayuacutes mienshytras pulsa la tecla Flecha abajo para seleccionar todas las filas hacia abajo Seshyleccione entonces la opcioacuten FormatogtFilagtOcultar para ocultarlas todas Haga esto mismo para las filas no utilizadas busque la uacuteltima columna seleccione toda la columna siguiente y manteniendo pulsadas las teclas Control y Mayuacutes pulse la tecla Flecha derecha hasta seleccionar todas las columnas Luego selecshycione la opcioacuten FormatogtColumnagtOcultar Una vez hecho esto el rango de celshydas uacutetiles quedaraacute rodeado de una zona gris por la que no se puede desplazar

La segunda alternativa para establecer los liacutemites es especificar un rango vaacuteshylido en la ventana de propiedades de la hoja Haga clic con el botoacuten derecho en la pestantildea de la hoja que estaacute situada en la parte inferior izquierdo de la ventana y luego seleccione la opcioacuten Ver coacutedigo Entonces seleccione la opcioacuten VergtExplorador de proyectos (Control-R en Windows o Comando-R en Mac OS X) para mostrar la ventana de proyectos Si la ventana de propiedades no estaacute visible pulse la tecla F4 Seleccione la hoja adecuada y busque la propiedad ScrollArea en la venshytana de propiedades (veacutease figura 112)

Introduzca entonces en el cuadro de texto de dicha propiedad los liacutemites para la hoja (por ejemplo $A$1$G$50)

Una vez hecho esto no podraacute desplazarse fuera del aacuterea que haya especificashydo Por desgracia Excel no guarda esta configuracioacuten despueacutes de cerrarse Esto significa que necesitamos una simple macro que automaacuteticamente establezca el aacuterea de desplazamiento al rango deseado escribiendo el coacutedigo para el evento w o r k s h e e t _ A c t i v a t e

Para ello haga clic con el botoacuten derecho sobre la pestantildea de la hoja en la que desea limitar el desplazamiento y seleccione la opcioacuten Ver coacutedigo introduciendo a continuacioacuten

Priacutevate Sub Worksheet_Activate ( ) MeScrollArea = A1G50 End Sub

Como siempre pulse AltComando-Clpara volver a la ventana principal de Excel y guardar los cambios

Aunque en este caso no habraacute una indicacioacuten clara como pueda ser la zona gris que se mostraba con el primer meacutetodo seraacute incapaz de desplazarse o selecshycionar cualquier cosa fuera del aacuterea especificada

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 49

J J 0 Jg$ EuroTocJOEL^ iquest VBAProject (Libro7) j$ VBAProject (LibroS)

Microsoft E bull cel uumlbietos S ]Ho ia l (Hoial) H] Hoia2 (Hoia2) IT] Hoia3 (Ho]a3) Q ThisWorlbool

Hoja3 Worksheet

Alfabeacutetica j por categoriacuteas ]

(Ntildeame)

DisplayPageBreaks DisplayRightToLeft EnableAutoFilter EnableCalculation EnableOutlining EnablePivotTable EnableSelection Ntildeame

StandardWidth Visible

^X]|

Figura 112 Ventana de propiedades y del explorador de proyectos

Cualquier macro que intente seleccionar un rango fuera de esta aacuterea de desplazamiento (incluyendo la seleccioacuten de filas o columnas enteras) no podraacute hacerlo Esto es particularmente cierto para aquellas macros grabadas que a menudo hacen uso de las selecciones

Si las macros seleccionan un rango fuera del aacuterea de desplazamiento puede modificarlas de forma que no esteacuten limitadas a dicha hariacutea mientras realicen sus tareas Para ello simplemente seleccione la opcioacuten HerramientasgtMacrogtMacros (Alt-F8) busque el nombre de la macro seleccioacutenela y luego haga clic en el boshytoacuten Modificar Escriacutebala siguiente liacutenea de coacutedigo al principio del todo

ActiveSheetScrollArea =

Y al final del todo de la macro escriba

ActiveSheetScrollArea = $A$1$G$50

Con esto el coacutedigo de la macro quedariacutea maacutes o menos asiacute

S u b M y M a c r o ( )

50 Excel Los mejores trucos

MiMacro Macro Macro grabada el 1992003 by OzGridcom

ActiveSheetScrollArea = Range(Z100)Select SelectionFontBold = True

ActiveSheetScrollArea = $A$1$G$50 Sheets(Presupuesto diario)Select ActiveSheetScrollArea =

Range (T500)Select SelectionFontBold = False

ActiveSheetScrollArea = $A$1$H$25

End Sub

Nuestra macro selecciona la celda Z100 y le da formato negrita Luego selecshyciona la hoja llamada Presupuesto diario selecciona la celda T500 de dicha hoja y quita el formato negrita Hemos antildeadido A c t i v e S h e e t S c r o l l A r e a = de forma que pueda seleccionarse cualquier celda y maacutes adelante volvemos a establecer los liacutemites del aacuterea de desplazamiento al valor deseado Cuando selecshyciona amos otra hoja (Presupuesto diario) volvemos a permitir al coacutedigo selecshycionar cualquier celda y despueacutes de que la macro realice sus tareas volvemos a establecer el rango a los liacutemites deseados Un tercer meacutetodo el maacutes flexible limishyta automaacuteticamente el aacuterea de desplazamiento al rango que estaacute siendo usado en la hoja en la que escribe el coacutedigo Para utilizar este meacutetodo haga clic con el botoacuten derecho en la pestantildea de la hoja en la que desea limitar el aacuterea de desplazashymiento seleccione la opcioacuten Ver coacutedigo y escriba lo siguiente

Private Sub Worksheet_Activate( ) MeScrollArea = Range(MeUsedRange MeUsedRange(22))Address

End Sub

Luego pulse AltComando-CLo haga clic en el botoacuten para cerrar la ventana de Visual Basic para volver a la ventana principal y guardar los cambios

La macro anterior se ejecutaraacute automaacuteticamente cada vez que se active la hoja en la cual introdujo este coacutedigo Sin embargo puede encontrarse un probleshyma con esta macro cuando necesite introducir datos fuera del aacuterea utilizable Para evitar este problema simplemente utilice una macro estaacutendar que restashyblezca el aacuterea de desplazamiento de nuevo a toda la hoja Para ello seleccione la opcioacuten HerramientasgtMacrogtEditor de Visual Basic seleccione luego la opcioacuten lnsertargtMoacutedulo e introduzca el siguiente coacutedigo

Sub ResetScrollArea( ) ActiveSheetScrollArea =

End Sub

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 51

Entonces pulse A l t Comando- ( ipa ra volver a la ventana principal de Excel y guardar el trabajo

Si lo desea puede hacer que la macro sea faacutecilmente accesible asignaacutendole una tecla de acceso raacutepido Seleccione la opcioacuten HerramientasgtMacrogtMacros (Alt Opcioacuten-F8) seleccione ResetScrollArea (el nombre que le dimos a la macro anteshyrior) haga clic en Opciones y luego asigne una tecla de acceso raacutepido

Cada vez que necesite antildeadir datos fuera de los liacutemites establecidos de la hoja ejecute esta macro que quita dicha limitacioacuten Entonces haga aquellos cambios que no podiacutea hacer cuando el liacutemite estaba establecido y cuando haya terminashydo active cualquier otra hoja y luego vuelva a activar eacutesta para que se vuelva a limitar el aacuterea de desplazamiento La activacioacuten de la hoja haraacute que se ejecute el coacutedigo inicial que escribimos el cual limitaba el aacuterea de desplazamiento

^ ^ Q 9 Bloquear y proteger celdas que contienen foacutermulas II ^ ^ V f ^ H Quizaacute desee permitir a los usuarios cambiar celdas que contienen datos

^ ^ K ^ ^ H pero no permitirles cambiar las foacutermulas Puede mantener bloqueadas las celdas que contienen foacutermulas sin tener que proteger toda la hoja o el libro

Cuando creamos una hoja de caacutelculo muchos de nosotros necesitamos utilishyzar foacutermulas de alguacuten tipo Aveces sin embargo no desearaacute que otros usuarios puedan estropear eliminar o sobrescribir cualquiera de las foacutermulas incluidas en la hoja de caacutelculo La forma maacutes faacutecil y raacutepida de impedir que las personas jueshyguen con las foacutermulas es proteger la hoja de caacutelculo Sin embargo proteger la hoja de caacutelculo no soacutelo evita que los usuarios estropeen las foacutermulas sino que tambieacuten evitan que se pueda introducir cualquier informacioacuten Y a veces no queshyrraacute ir tan lejos en la seguridad

De forma predeterminada todas las celdas de una hoja de caacutelculo estaacuten bloshyqueadas aunque esto no tiene efecto hasta que se aplique la proteccioacuten de la misma A continuacioacuten mostramos un meacutetodo m u y sencillo para aplicar una proteccioacuten a la hoja de caacutelculo de forma que soacutelo las celdas con foacutermulas esteacuten bloqueadas y protegidas

Seleccione todas las celdas de la hoja bien pulsando Cont ro l Comando-E o bien pulsando el cuadrado gris situado en la interseccioacuten de la columna A y la fila 1 Entonces vaya a FormatogtCeldasgtProteger y desactive la casilla de verifishycacioacuten Bloqueada Haga clic en Aceptar

Ahora seleccione cualquier celda seleccione Edicioacutengtlr a (Control-I oacute F5) y haga clic en el botoacuten Especial Veraacute entonces un cuadro de diaacutelogo como el que se muestra en la figura 113

Seleccione el botoacuten de opcioacuten Celdas con foacutermulas del cuadro de diaacutelogo Ir a especial y si es necesario limite las foacutermulas a los tipos subyacentes Luego

Excel Los mejores trucos

haga clic en Aceptar Una vez esteacuten seleccionadas las celdas con las foacutermulas vaya a FormatogtCeldasgtProteger y active la casilla de verificacioacuten Bloqueada Haga clic en Aceptar Ahora seleccione la opcioacuten HerramientasgtProtegergtProteger hoja para proteger la hoja de caacutelculo y utilizar una contrasentildea si es requerida

iHgia iaf lmdashi Seleccionar

^ Comentarios

lt Constantes iCeldas con foacutermulas i

iacuteiexcl Nuacutemeros

f Texto

f Valores loacutegicos

f Errores

^ Celdas en blanco r Regioacuten actual f Matriz actual

Obietos

lt Diferencias entre filas j

f Diferencias entre columnas (1) j

lt~ Celdas precedentes j

( Celdas dependientes j

r c

Uacuteltima celda

f~ Soacutelo celdas visibles (2)

bull Celdas con formatos condicionales l Celdas con validacioacuten de datos

r r

1 Aceptar J Cancelar ] j

Figura 113 El cuadro de diaacutelogo Ir a especial

Este meacutetodo realmente ahorra gran cantidad de tiempo y elimina posibles errores al buscar las foacutermulas de forma que pueda protegerlas Por desgracia tambieacuten evita que los usuarios puedan utilizar otras funciones como puede ser ordenar cambiar el formato alinear el texto y otras muchas incluso cuando la celda no estaacute bloqueada Puede solucionar este problema de dos formas

La primera aproximacioacuten consiste en no utilizar la proteccioacuten de la hoja sino la validacioacuten de datos en lugar de ello

La validacioacuten de datos estaacute lejos de ser del todo segura a la hora de evitar que los usuarios introduzcan datos no vaacutelidos en celdas Los usuarios todaviacutea pueden pegar en una celda con validacioacuten cualquier tipo de dato quitando la validacioacuten de dicha celda a menos que la celda original que se estaacute copiando tambieacuten tuviese alguacuten tipo de validacioacuten en cuyo caso tambieacuten se estariacutea sobrescribiendo

Para ver a queacute nos referimos seleccione cualquier celda seleccione la opcioacuten Edicioacutengtlr a y luego haga clic en el botoacuten Especial Ahora seleccione la opcioacuten Celdas con foacutermulas en el cuadro de diaacutelogo y si es necesario especifique que tipos de foacutermulas desea buscar Haga clic en el botoacuten Aceptar

Ahora que soacutelo tenemos seleccionadas las celdas con foacutermulas seleccione la opcioacuten DatosgtValidacioacuten y en la pestantildea Configuracioacuten seleccione la opcioacuten Pershysonalizada en el cuadro de lista desplegable y en el cuadro de texto Foacutermula es-

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 53

criba = tal y como se muestra en la figura 114 Luego haga clic en el botoacuten Aceptar

MBHIMSS^^^^^^^- bull Configuracioacuten j Mensaje entrante j Mensaje de error j

Criterio de validacioacuten

Permitir

| Personalizada j r j P Omitir blancos

Datos

1 J Foacutermula

k i

r

Borrar todos j | Aceptar j

2SJ

Cancelar j

Figura 114 Foacutermulas de validacioacuten

Este meacutetodo evitaraacute que un usuario sobrescriba accidentalmente una celda que tenga una foacutermula (aunque como dijimos anteriormente no es un meacutetodo totalmente seguro y soacutelo deberiacutea ser utilizado para evitar sobrescribir accidentalshymente) De todas formas la gran ventaja de utilizar este meacutetodo es que todas las funciones de Excel todaviacutea se pueden utilizar en la hoja de caacutelculo

El uacuteltimo meacutetodo tambieacuten permite utilizar todas las funciones de Excel pero solamente cuando se encuentra una celda que no esteacute bloqueada Para empezar aseguacuterese de que solamente las celdas que desea proteger estaacuten bloqueadas y que el resto no lo estaacuten Haga clic con el botoacuten derecho del ratoacuten en la pestantildea de la hoja en cuestioacuten seleccione la opcioacuten Ver coacutedigo e introduzca el siguiente coacutedigo

Priacutevate Sub Worksheet_SelectionChange(ByVal Target As Range) If TargetLocked = True Then

MeProtect Password=Secreta Else

MeUnprotect Password=Secreta End If

End Sub

Si no desea utilizar una contrasentildea omita la parte Pas sword = S e c r e t a Si por el contrario quiere utilizar una entonces debe cambiar la palabra Secreta por aquella contrasentildea que desee Luego pulse AltComando-(Xo cierre la venshytana para volver a Excel y guardar los cambios Ahora cada vez que seleccione una celda que estaacute bloqueada la hoja se bloquearaacute a siacute misma automaacuteticamente En el momento en el que seleccione cualquier celda que no esteacute bloqueada la hoja se desbloquearaacute

Excel Los mejores trucos

Este truco no funciona perfectamente aunque normalmente funciona lo suficientemente bien La palabra clave utilizada en el coacutedigo Target soacutelo se refiere a la celda que estaacute activa el momento de la seleccioacuten Por esta razoacuten es importante destacar que si el usuario selecciona un rango de celdas (con la celda activa estando desbloqueada) puede eliminar la seleccione entera porque la celda objetivo estaba desbloqueada y por tanto la hoja se ha desprotegido automaacuteticamente a siacute misma

Encontrar datos duplicados utilizando el formato condicional El formato condicional de Excel se utiliza normalmente para identificar valores en rangos en particular pero podemos usar un truco con esta caracteriacutestica para identificar datos duplicados dentro de una lista o una tabla

Normalmente la gente tiene que identificar datos duplicados dentro de una lista o tabla Hacer esto manualmente puede llevar mucho tiempo y a veces se pueden cometer errores Le aconsejamos que para hacerlo mucho maacutes sencillo utilice un truco sobre una de las caracteriacutesticas estaacutendar de Excel el formato condicional

Tomemos por ejemplo una tabla con datos en el rango $A$ 1 $H$100 Selecshycione la celda superior izquierda (Al) y arrastre el cursor del ratoacuten hasta la celda H100 Es importante que Al sea la celda activa en la seleccioacuten por lo que no es lo mismo seleccionar primero la celda H100 y luego arrastrar hasta la celda A l Seshyleccione entonces la opcioacuten FormatogtFormato condicional y en el cuadro de diaacutelogo Formato condicional seleccione la opcioacuten Foacutermula en el primer cuadro de lista desplegable En el campo que hay a su derecha introduzca el siguiente coacutedigo

= C 0 N T A R S I ( $ A $ 1 $ H $ 1 0 0 A 1 ) gt 1

Haga clic en el botoacuten Formato y luego seleccione la pestantildea Tramas y selecshycione un color que desee aplicar para identificar visualmente los datos duplicashydos Haga clic en Aceptar para volver al cuadro de diaacutelogo anterior y vuelva a hacer clic en Aceptar para aceptar el formato

Todas aquellas celdas que contengan datos duplicados deberiacutean aparecer ahoshyra como un aacuterbol de Navidad con el color que eligioacute haciendo mucho maacutes sencishyllo el hecho de localizar datos duplicados para asiacute poder eliminarlos moverlos o alterarlos

Es m u y importante comentar que como la celda Al era la activa la direccioacuten de la celda es una referencia relativa y no absoluta como en la tabla de datos

uuml

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 55

$A$1$H$100 Utilizando el formato condicional de esta forma Excel sabe automaacuteticamente que debe utilizar la celda correcta como el criterio de la funshycioacuten CONTAR S I Con esto queremos decir que la foacutermula de formato condicioshynal en la celda Al se leeriacutea asiacute

= C O N T A R S I ( $ A $ 1 $ H $ 1 0 0 A 1 ) gt 1

Mientras que en la celda A2 se leeriacutea

= C O N T A R S I ( $ A $ 1 $ H $ 1 0 0 A 2 ) gt 1

En la celda A3 se leeriacutea

= C O N T A R S I ( $ A $ 1 $ H $ 1 0 0 A 3 ) gt 1

y asiacute sucesivamente Si necesita identificar datos que aparecen dos o maacutes veces puede utilizar el

formato condicional con tres condiciones diferentes y coacutedigos de color para cada una de las condiciones todo ello para conseguir una identificacioacuten visual Para hacer esto seleccione la celda Al (la celda que estaacute situada en la parte superior izquierda de la tabla) y arrastre el cursor del ratoacuten hasta la celda H100 De nueshyvo es importante que la celda Al sea la celda activa en la seleccioacuten

Ahora seleccione la opcioacuten FormatogtFormato condicional y seleccione la opshycioacuten Formato en el cuadro de lista desplegable En el cuadro de texto situado a su derecha introduzca el siguiente coacutedigo

= C 0 N T A R S I ( $ A $ 1 $ H $ 1 0 0 A 1 ) gt 3

Haga clic en el botoacuten Formato y luego vaya a la pestantildea Tramas para selecshycionar el color que desee aplicar para identificar los datos que aparecen maacutes de tres veces Haga clic en Aceptar luego haga clic en el botoacuten Agregar y en el cuadro de lista desplegable para la Condicioacuten 2 seleccione la opcioacuten Foacutermula y luego escriba el siguiente coacutedigo en el cuadro de texto situado a su derecha

= C O N T A R S I ( $ A $ 1 $ H $ 1 0 0 A 1 ) = 3

En vez de tener que reescribir la foacutermula maacuterquela en el cuadro de texto de la Condicioacuten 1 pulse la tecla ControlComando-C para copiarla en el portapapeles haga clic en el cuadro de texto de la Condicioacuten 2 pulse ControlComando-V para pegarla ahiacute y luego cambiegt3 por =3

Haga clic en el botoacuten Formato y luego seleccione la pestantildea Tramas para seleccionar el color que desee utilizar para identificar los datos que aparecen justa-

Excel Los mejores trucos

mente tres veces Haga clic en Aceptar y luego haga clic en Agregar En el cuashydro de lista desplegable de la Condicioacuten 3 seleccione la opcioacuten Foacutermula y escriba lo siguiente en el cuadro de texto situado a su derecha

= C O N T A R S I ( $ A $ 1 $ H $ 1 0 0 A 1 ) = 2

Para terminar haga clic en el botoacuten Formato elija la pestantildea Tramas y seleccione ahiacute el color que desea aplicar a los datos que aparecen exactamente dos veces Luego haga clic en el botoacuten Aceptar Ahora ya tenemos colores diferentes de celda dependiendo del nuacutemero de veces en el que aparecen los datos dentro de la tabla De nuevo es importante recordar que la celda Al debe ser la celda activa en la seleccioacuten puesto que la direccioacuten de celda es una referencia relativa y no absoluta como en la tabla de datos $A$1 $H$100 Utilizando el formato condishycional de esta forma Excel sabraacute utilizar la celda correcta como criterio de la funcioacuten CONTAR S I

Asociar barras de herramientas personalizadas a un libro en particular A pesar de que la mayoriacutea de barras de herramientas que cree sirven para praacutecticamente todos los libros con los que trabaje a veces la funcionalidad de una barra de herramientas personalizada solamente es aplicable a un libro en particular Con este truco podremos asociar barras de herramientas personalizadas a sus respectivos libros

Si nunca ha creado una barra de herramientas personalizada sin duda se habraacute dado cuenta que las barras herramientas se cargan y son visibles indepenshydientemente de que libro tenga abierto iquestQueacute ocurre si su barra de herramientas personalizada contiene macros grabadas que soacutelo tienen sentido con un libro en particular Probablemente es mejor poder asociar barras de herramientas persoshynalizadas cuyo propoacutesito sea especial con los libros apropiados para asiacute evitar cualquier tipo de confusioacuten y otros problemas Podemos hacer esto insertando un coacutedigo m u y sencillo en el moacutedulo privado del libro Para acceder al moacutedulo privado haga clic con el botoacuten derecho en el icono de Excel que encontraraacute en la esquina superior izquierda de la pantalla cerca del menuacute Archivo y luego selecshycione la opcioacuten Ver coacutedigo

Este acceso directo no estaacute disponible en Macintosh Tendraacute que abrir el Editor de Visual Basic pulsando Opcioacuten-Fll o bien seleccionando la opcioacuten de menuacute HerramientasgtMacrogtEditor de Visual Basic Una vez ahiacute haga clic con el botoacuten derecho del ratoacuten (o clic mientras mantiene pulsada la tecla Control) en ThisWorkbook que aparece en la ventana de proyectos

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 57

Entonces introduzca este coacutedigo

Priacutevate Sub Workbook_Activate( ) On Error Resume Next

With ApplicationCommandBars(MiBarraPersonalizada) Enabled = True Visible = True

End With On Error GoTo 0

End Sub

Private Sub Workbook_Deactivate( ) On Error Resume Next

ApplicationCommandBars(MiBarraPersonalizada)Enabled = False On Error GoTo 0

End Sub

Cambie el texto de MiBarraPersonalizada por el nombre que desee darle a la barra de herramientas personalizada Para volver a la ventana principal de Excel cierre la ventana de moacutedulo o pulse AltComando-CL En cuanto abra o active otro libro la barra de herramientas personalizada desapareceraacute y no podraacute ser utilizada Reactivando el libro adecuado la barra volveraacute a aparecer Todaviacutea poshydemos llegar maacutes lejos haciendo que una barra de herramientas personalizada esteacute disponible solamente para una hoja en particular del libro Haga clic con el botoacuten derecho del ratoacuten sobre el nombre de una hoja en la que desea activar la barra de herramientas seleccionando la opcioacuten Ver coacutedigo Entonces introduzca el siguiente coacutedigo

Private Sub Worksheet_Deactivate( ) On Error Resume Next

ApplicationCommandBars(MiBarraPersonalizada)Enabled = False On Error GoTo 0

End Sub

Private Sub Worksheet_Activate( ) On Error Resume Next

With ApplicationCommandBars(MiBarraPersonalizada) Enabled = True Visible = True

End With On Error GoTo 0

End Sub

Ahora pulse AltComando-ltXo cierre la ventana para volver a Excel El prishymer procedimiento ( W o r k s h e e t _ D e a c t i v a t e () ) se ejecutaraacute automaacuteticamente cada vez que deje hoja en particular y active otra Este coacutedigo cambia la propieshydad Enab l ed de la barra de herramientas personalizada a F a l s e de forma que no pueda ser vista o utilizada El segundo procedimiento se ejecuta cada vez que

58 Excel Los mejores trucos

se activa la hoja en cuestioacuten estableciendo la propiedad E n a b l e d a True con lo que la barra vuelve a ser visible La liacutenea de coacutedigo que dice A p p l i c a t i o n CommandBars (MyCustomToolbar) V i s i b l e = True simplemente muesshytra la barra de herramientas de nuevo de forma que el usuario pueda verla Cambie de una hoja a otra y veraacute como la barra de herramientas desaparece y vuelve a aparecer dependiendo de la hoja que tenga seleccionada

TRUCO Burlar el gestor de referencias relativas de Excel En Excel una referencia de foacutermula puede ser o bien relativa o bien absoluta pero a veces desearaacute mover celdas que utilicen referencias relativas sin tener que hacer las referencias absolutas Veamos coacutemo hacer esto

Cuando se necesita hacer una foacutermula absoluta se utiliza el signo del doacutelar ($) delante de la letra de la columna y o del nuacutemero de la fila en la referencia a la celda como por ejemplo en $A$1 Una vez haya hecho esto no importa doacutende copie la celda que la foacutermula seguida haciendo referencia a la misma celda o celdas A veces sin embargo ya ha creado numerosas foacutermulas que no contieshynen referencias absolutas sino relativas Normalmente hace esto cuando desea copiar la foacutermula original o propagarla por la hoja y que Excel cambie las refeshyrencias de forma adecuada Si ya ha creado las foacutermulas utilizando solamente referencias relativas o quizaacutes utilizando una mezcla entre referencias absolutas relativas puede reproducir las mismas foacutermulas en cualquier otro rango y en la misma hoja en otra hoja del mismo libro o incluso en otra hoja situada en otro libro Para hacer esto sin cambiar ninguna de las referencias que hay dentro de las foacutermulas seleccione el rango de celdas que desea copiar y luego seleccione la opcioacuten EdicioacutengtReemplazar En el cuadro de texto Buscar introduzca el signo = y en el cuadro de texto Reemplazar con el siacutembolo (por supuesto puede utilishyzar cualquier otro siacutembolo que esteacute seguro no se utiliza en cualquiera de las foacutermulas) Luego haga clic en el botoacuten Reemplazar todos El signo = de todas las foacutermulas de la hoja seraacute reemplazado con el siacutembolo Ahora puede copiar este rango y pegarlo en el destino que desee Luego seleccione el rango que acaba de pegar y vuelva a seleccionar la opcioacuten EdiciexcloacutengtReemplazar Esta vez reemplace el siacutembolo por el siacutembolo = Con esto las foacutermulas quedaraacuten con las mismas referencias que las originales

TRUCO Quitar viacutenculos fantasma en un libro iexclAh Viacutenculos fantasmas Al abrir un libro se le pregunta si desea actualizar los viacutenculos iexclpero no hay ninguacuten viacutenculo iquestCoacutemo puede actualizar los viacutenculos cuando no existen

Los viacutenculos externos son viacutenculos que hacen referencia a otros libros El heshycho de que se produzcan viacutenculos externos no esperados puede darse por diferen-

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 59

tes razones la mayoriacutea de las veces por mover o copiar graacuteficos hojas de graacuteficos u hojas a otros libros Auacuten asiacute saber doacutende estaacuten no siempre le ayudaraacute a enconshytrarlos A continuacioacuten le mostramos algunas alternativas para solucionar el problema de los viacutenculos fantasmas

Primeramente debe comprobar si realmente tiene viacutenculos externos (que no son fantasmas) de los cuales nos olvidaremos Si no estaacute seguro si tiene viacutencushylos externos reales comience buscando en el lugar maacutes obvio las foacutermulas Pueshyde hacer esto aseguraacutendose de que no hay otros libros abiertos y entonces buscando por [] dentro de las foacutermulas de cada hoja Cierre todos los demaacutes libros para asegurarse de que cualquier viacutenculo de foacutermula incluiraacute [] donde el asterisco representa el caraacutecter comodiacuten de buacutesqueda

Excel 9 7 no proporciona una opcioacuten para buscar en todo el libro pero puede buscar en todas las hojas de un libro si las agrupa Puede hacer esto haciendo clic con el botoacuten derecho en el nombre de cualquiera de las hojas y eligiendo la opcioacuten Seleccionar todas las hojas En versiones posteriores de Excel la funcioacuten de Buscar y reemplazar admite la posibilidad de buscar dentro de una hoja o de todo un libro

Una vez que haya encontrado los viacutenculos de foacutermula simplemente cambie la foacutermula de forma adecuada o bien elimiacutenela Cambiar o eliminar la foacutermula depende de la situacioacuten y debe ser usted el que decida queacute hacer Tambieacuten puede ir al centro de descargas de Microsoft Office ubicado en httpofficemicrosoftcom Downloadsdefaultaspx y desde la categoriacutea de complementos seleccionar el Asistente de eliminacioacuten de viacutenculos Este asistente estaacute disentildeado para encontrar y eliminar viacutenculos tales como viacutenculos de nombres definidos viacutenculos de nomshybres ocultos viacutenculos a graacuteficos viacutenculos a consultas de Microsoft y viacutenculos a objetos De todas formas por nuestra experiencia no es capaz de encontrar viacutenshyculos fantasmas Una vez que esteacute seguro de que no hay viacutenculos de foacutermula debe asegurarse de que no tiene ninguacuten otro viacutenculo que no sea fantasma Para ello solemos comenzar desde el libro de Excel que contiene los viacutenculos fantasshymas Seleccione la opcioacuten lnsertargtNombregtDefinir Desplaacutecese a lo largo de la lista de nombres seleccionando cada uno de ellos y mirando en el cuadro de texto Se refiere a situado en la parte inferior Aseguacuterese de que ninguno de estos nomshybres estaacute haciendo referencia a un libro diferente

En vez de tener que hacer clic en cada nombre puede insertar una nueva hoja y seleccionar la opcioacuten lnsertargtNombregtPegar Luego desde el cuadro de diaacutelogo haga clic en Pegar viacutenculo Esto crearaacute una lista de todos los nombres de libro con sus rangos referenciados en la columna correspondiente

60 Excel Los mejores trucos

Si alguno de los nombres se refiere a un elemento que estaacute fuera de libro ha encontrado el origen de al menos uno de los viacutenculos a los cuales hace referencia el mensaje de actualizar los viacutenculos Ahora es decisioacuten suya si desea cambiar este nombre de rango para que haga referencia solamente al propio libro o bien dejarlo como estaacute

Otra fuente potencial de viacutenculos son sus graacuteficos Es posible que los graacuteficos tengan el mismo problema que acabamos de explicar Deberiacutea comprobar que los rangos de datos y las etiquetas del eje X del traacutefico no estaacuten haciendo referencia a libros externos De nuevo debe tomar la decisioacuten de si los viacutenculos que ha enconshytrado son o no correctos

Los viacutenculos tambieacuten pueden acechar en los objetos como puedan ser dos cuadros de texto las autoformas etc Los objetos pueden intentar hacer referenshycia a un libro externo La forma maacutes sencilla de localizar los objetos es seleccioshynar cualquier celda de cada hoja y luego seleccionar la opcioacuten Edicioacutengtlr a (F5) Desde el cuadro de diaacutelogo haga clic en el botoacuten Especial y luego active la casilla de verificacioacuten Objetos y haga clic en Aceptar para comenzar la buacutesqueda Con esto seleccionaremos todos los objetos de la hoja En cualquier caso deberiacutea hashycer esto en una copia del libro Despueacutes una vez tengamos todos los objetos seleccionados puede eliminar guardar cerrar y volver a abrir la copia del libro para ver si con esto hemos solucionado el problema

Finalmente el lugar que no es tan obvio comprobar es en las hojas ocultas que puede haber creado y de las que se ha olvidado Vuelva a mostrar esas hojas seleccionando la opcioacuten FormatogtHojagtMostrar Si la opcioacuten Mostrar esta desactivada significa que no hay hojas ocultas

Ahora que ya ha eliminado la posibilidad de viacutenculos reales es hora de elimishynar los viacutenculos fantasmas Vaya al libro en cuestioacuten en el que haya viacutenculos fantasmas y seleccione la opcioacuten EdicioacutengtViacutenculos A veces simplemente puede seleccionar los viacutenculos no deseados hacer clic en Cambiar origen y luego hacer que el viacutenculo haga referencia a siacute mismo A menudo de todas formas se le informaraacute que alguna de las foacutermulas contiene un error y entonces no podraacute hacer esto

Si no puede tomar el camino sencillo apuacutentese a queacute libro de Excel cree que puede estar vinculado (llamaremos a ese libro el libro bueno) Cree un viacutenculo real entre ambos abriendo los dos Vaya al libro problemaacutetico y en cualquier celda de cualquier hoja escriba = Ahora haga clic en una celda del libro bueno y pulse Intro para tener un viacutenculo externo real con dicho libro Guarde ambos libros pero no los cierre todaviacutea Estando todaviacutea en el libro con viacutenculos fantasshymas seleccione la opcioacuten EdicioacutengtViacutenculos y utilice el botoacuten Cambiar origen para referenciar todos los viacutenculos con el nuevo libro con el que acabamos de crear el viacutenculo Guarde el libro de nuevo y elimine la celda en la que creoacute el viacutenculo real Para terminar guarde el archivo

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 61

A menudo esto elimina el problema de los viacutenculos fantasmas dado que ahoshyra Excel es consciente de que ha eliminado el viacutenculo externo con dicho libro Si esto no ha solucionado problema pruebe con los siguientes pasos pero aseguacutereshyse de guardar una copia primero

El siguiente proceso implica eliminar datos permanentemente Por tanto antes de comenzar tiene que crear una copia de seguridad del libro de Excel ya que si no lo hace puede crearle nuevos problemas

Con el libro problemaacutetico abierto elimine una hoja guarde el libro cieacuterrelo y vuelva a abrirlo Si al hacerlo no se le pregunta sobre actualizar los viacutenculos perdidos entonces es que la hoja que acaba de eliminar era la que teniacutea los viacutenshyculos fantasmas Esto deberiacutea arreglar el problema pero si no fuera asiacute repita el primer paso para cada una de las hojas del libro Necesitaraacute antildeadir una nueva hoja antes de eliminar la uacuteltima ya que cualquier libro debe tener al menos una hoja Supongamos que esta teacutecnica ha funcionado Entonces veamos queacute hay que hacer a continuacioacuten Abra la copia del libro (la que todaviacutea tiene los datos dentro de ella) y cree otra copia Deberaacute trabajar con la hoja problemaacutetica (u hojas) y utilizar el proceso de eliminacioacuten para descubrir doacutende estaacute el problema

Teniendo activada la hoja problemaacutetica seleccione un grupo de celdas (de alshyrededor de 10x10) y entonces seleccione la opcioacuten EdicioacutengtBorrargtTodo iquestEstaacute totalmente seguro de que ha guardado una copia Si es asiacute guarde cierre y vuelshyva a abrir la hoja Si no se le pregunta acerca de actualizar los viacutenculos entonces es que ha encontrado el problema y el objetivo seraacute volver a restablecer ese conshyjun to de celdas Si vuelve a recibir el mensaje de actualizar los viacutenculos continuacutee eliminando celdas hasta que ya no se le pregunte Luego tendraacute que restaurar las celdas problemaacuteticas

Esperamos que estas teacutecnicas le hayan solucionado algo la frustracioacuten de teshyner viacutenculos fantasmas en sus libros de Excel No es sencillo ni divertido pero puede ayudarle a solucionar el problema

IQ221 Reducir un libro que estaacute hinchado ^^wPgt^H iquestNunca ha observado que un libro estaacute aumentando de tamantildeo a un ritmo H k f l alarmante sin una razoacuten aparente Existen numerosas causas que pueden

provocarlo y algunas soluciones para ello

iquestNunca ha comido tanto que no puede funcionar correctamente Lo mismo ocurre con las hojas de Excel Un libro de Excel que engorda tanto es aquel en el que se han hecho tantas cosas que ha llegado a un tamantildeo tal en el que ya no puede funcionar correctamente

Excel Los mejores trucos

Comprobamos el tamantildeo de un libro tiacutepico que conteniacutea gran cantidad de datos y observamos que soacutelo con datos el tamantildeo del archivo era de 137 Mb Entonces antildeadimos una tabla dinaacutemica que haciacutea referencia a cuatro columnas enteras como origen de los datos y observamos que el tamantildeo del archivo se incrementoacute espectacularmente hasta los 24 Mb Antildeada algunos formatos y el tamantildeo del libro se incrementaraacute praacutecticamente al doble soacutelo haciendo algunas acciones

Una de las causas maacutes comunes por las que un archivo engorda particularshymente en las versiones anteriores de Excel es la aplicacioacuten de formatos a columshynas o filas completas en vez de a un rango de datos que se esteacute utilizando Otro error es referenciar columnas enteras como fuente de datos para graacuteficos y tashyblas dinaacutemicas en vez de referenciar solamente las celdas que actualmente conshytienen datos Para solucionar estos problemas tendremos que eliminar todos los formatos superfluos y restringir el origen de datos solamente a aquellos rangos de celdas uacutetiles

Antes de hacer estos arreglos haga siempre una copia del libro por seguridad

Eliminar Formatos superfluos

El primer paso para eliminar formatos superfluos es averiguar cuaacutel es la esshyquina inferior derecha en la que acabaraacuten los datos No se confiacutee en la opcioacuten Edicioacutengtlr agtEspecialgtUacuteltima celda ya que puede llevarle a la uacuteltima celda que contiene formato no datos Habiendo localizado manualmente la celda que sabe que es la uacuteltima que contiene datos reales marque la fila que estaacute inmediatashymente debajo de ella Mientras pulsa las teclas Control y Mayuacutes pulse la tecla Flecha abajo del teclado para marcar todas las filas que se encuentran por debashyjo Luego seleccione la opcioacuten EdicioacutengtBorrargtTodos para eliminarlas

Ahora utilice el mismo meacutetodo para eliminar todas las columnas sobrantes Localice la celda que se encuentre maacutes a la derecha y que auacuten contenga datos y seleccione la columna inmediatamente posterior Luego mientras mantiene pulshysadas las teclas Control y Mayuacutes pulse la tecla Flecha derecha del teclado para seleccionar todas las columnas hasta el final y finalmente seleccione la opcioacuten de menuacute EdicioacutengtBorrargtTodos

Evite la tentacioacuten de eliminar por completo todas esas filas que columnas en vez de borrarlas ya que al hacerlo se produce normalmente errores de tipo iexclREF en cualquiera de las celdas con foacutermulas que pudiesen estar haciendo referencia a ellas

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 63

Guarde el libro y tome buena nota del cambio producido en su tamantildeo a traveacutes de la opcioacuten ArchivogtPropiedades y mirando en la pestantildea General Si tiene macros ahora tendraacute que dirigir los moacutedulos en los que reside el coacutedigo de las macros Este seraacute un proceso raacutepido directo y sencillo que exporta todos los moacutedulos y formularios de usuario al disco duro que luego los elimina y vuelve a importarlos de nuevo Para hacer esto vaya al Editor de Visual Basic y desde el explorador de proyectos haga clic con el botoacuten derecho en cada moacutedulo y selecshycione la opcioacuten Quitar moacutedulol (o cualquier otro nombre que tuviese el moacutedulo) Cuando se le pregunte si desea exportar el moacutedulo antes de quitarlo diga Siacute teniendo en cuenta la ru ta que seleccione

Haga esto mismo para cada moacutedulo asiacute como para todos los formularios de usuario que pueda tener No se olvide de los moacutedulos privados del libro y hojas si eacutestos contienen coacutedigo Una vez que haya hecho todo guarde el libro Entonces seleccione la opcioacuten ArchivogtImportar archivo e importe cada moacutedulo y cada forshymulario de usuario de nuevo al libro Siguiendo este proceso se crearaacute un archivo de texto para cada moacutedulo lo cual eliminaraacute cualquier residuo que pudiesen contener Existen en Internet algunas utilidades gratis que pueden automatizar esta tarea en cierto grado pero hemos oiacutedo casos en los que estas herramientas han desorganizado el coacutedigo o incluso han aumentado maacutes el tamantildeo de los archivos En caso de que utilice una de estas herramientas siempre haga una copia de seguridad primero ya que los desarrolladores no se haraacuten responsables de cualquier peacuterdida de datos

Puesta a punto de los oriacutegenes de datos

Si despueacutes de llevar a cabo los pasos previos todaviacutea cree que el tamantildeo del archivo es m u y grande otra causa posible es que hay referencias a celdas no utilizadas dentro de tablas o graacuteficos dinaacutemicos Esto suele ocurrir normalmente con las tablas dinaacutemicas ya que muchas personas hacen referencia a las 65536 filas para evitar tener que actualizar manualmente los rangos cada vez que se antildeaden nuevos datos

Limpiar libros corruptos

Si todaviacutea cree que el tamantildeo del libro es demasiado grande es posible que el libro o sus hojas esteacuten corruptos Por desgracia encontrar el punto de corrupshycioacuten requiere de un proceso manual de eliminacioacuten

De nuevo le recomendamos encarecidamente que haga una copia de seguridad antes de proceder

64 Excel Los mejores trucos

Para asegurarse de que no se pierde nada muestre todas las hojas que puedan estar ocultas seleccionando la opcioacuten FormatogtHojagtMostrar En caso de que la opcioacuten esteacute desactivada es que no tiene hojas ocultas por las que preocuparse Teniendo todas las hojas visibles comience por la hoja que esteacute maacutes a la izquiershyda y vaya recorriendo una a una hacia la derecha Para cada una de ellas elimiacuteshynela guarde el libro y anote el tamantildeo del mismo a traveacutes de ArchivogtPropiedadesgt General Si el tamantildeo del archivo se reduce draacutesticamente considerando la cantishydad de datos que habiacutea en dicha hoja entonces es que probablemente haya enshycontrado el punto de corrupcioacuten

Para reemplazar una hoja corrupta de un libro cree una nueva hoja seleccioshyne manualmente los datos situados en la hoja corrupta corte (no utilice nunca copiar) y pegue dichos datos en la nueva hoja Entonces elimiacutenela hoja corrupta guarde y repita el proceso

iacuteiquest Al cortar en vez de copiar Excel traspasa los datos a la nueva hoja iX manteniendo las referencias intactas

TRUCO Extraer datos de un libro corrupto La corrupcioacuten de libros de Excel puede suponer la peacuterdida de datos vitales lo cual puede resultar un coste maacutes que monetario Este truco examina algunos meacutetodos que pueden ayudarle a recuperar los datos

Aveces los libro se corrompen sin ninguna razoacuten aparente Esto puede provoshycar todo tipo de problemas especialmente si el libro es vital y por cualquier rashyzoacuten no tiene una copia de seguridad Leccioacuten 1 siempre haga una copia de seguridad de los datos en alguacuten otro lugar Siendo realistas esto no siempre ocushyrre y puede que la corrupcioacuten se produzca justo antes de que se realizase una copia de seguridad regular Para antildeadir maacutes frustracioacuten aunque un libro este corrupto a veces es posible abrirlo e incluso realizar ciertas acciones en eacutel

Si no puede abrir un libro

Si no puede abrir el libro en cuestioacuten antes de hacer cualquier otra cosa aseshyguacuterese de hacer una copia de seguridad del mismo ya que de lo contrario podriacutea perderlo Teniendo una copia siempre puede buscar ayuda profesional

Ahora intente abrir el libro en una versioacuten posterior de Excel y pruebe a guarshydar Obviamente esto no seraacute posible si ya estaacute utilizando la uacuteltima versioacuten de Excel Si esto no funciona pruebe a abrir el libro y guardarlo en formato HTML o HTM Luego cierre el archivo y vuelva a abrirlo esta vez volviendo a guardarlo en el formato original es decir en formato xls

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 65

Cuando se guarda un libro en formato HTML las siguientes funciones N^ se perderaacuten

Vistas personalizadas

Formatos de nuacutemero no utilizados

Estilos no utilizados

Configuracioacuten de consolidacioacuten de datos

Escenarios

Foacutermulas el lenguaje natural (seraacuten convertidas a referencias estaacutendar de rango)

Categoriacuteas personalizadas de funciones

Elementos con fuente tachada superiacutendice o subiacutendice

Historial de cambios

Configuracioacuten de paacutegina personalizada para los graacuteficos que se hayan incrustado en una hoja

Configuraciones de lista para los objetos del cuadro de lista y cuashydro de lista desplegable de la barra de herramientas de Formulashyrios

Formato condicional almacenado en una hoja de macro XLM

Tambieacuten los libros compartidos dejaraacuten de estarlo La configuracioacuten Eje de valores (Y) cruza el nuacutemero de categoriacutea de la pestantildea Escala del cuadro de diaacutelogo Formato de ejes no se guardaraacuten si la casilla de verificacioacuten Eje de valores (Y) cruza la en maacutexima categoriacutea estaacute activada La configuracioacuten de variar los colores por cada punto del cuadro de diaacutelogo Formato de las series de datos no seraacute guardada si el traacutefico contiene maacutes de una serie de datos

Finalmente intente abrir el archivo y guardarlo en formato SYLK (slk que significa viacutenculo simboacutelico) Observe que cuando guarda un libro en este formashyto soacutelo se guarda la hoja activa Por tanto deberaacute hacer lo mismo para cada una de las hojas Vuelva a abrir el archivo y guaacuterdelo nuevamente en el formato deseado es decir en formato xls

Si no puede abrir el archivo

Si el libro estaacute corrupto hasta el punto en el que no puede ni siquiera abrirlo abra la hoja de caacutelculo en Microsoft Word o a traveacutes del visor de hojas de caacutelculo que se puede descargar desde el sitio Web de Microsoft luego copie los datos

66 Excel Los mejores trucos

desde el archivo abierto De todas formas muchas de las foacutermulas formatos etc se perderaacuten

A continuacioacuten abra el nuevo libro y cree un viacutenculo externo con el libro corrupto Por ejemplo =CDocuments and SettingsAlexMis Documentos[Hoja xls]HojalAl Copie este viacutenculo hacia abajo y hacia la derecha tantas filas y columnas como sea necesario Haga lo mismo para cada una de las hojas que contiene el libro Si no puede recordar los nombres de las hojas utilice cualquier nombre utilizando la ruta de archivo correcta y Excel le mostraraacute los nombres de las hojas cuando pulse la tecla Intro

Una uacuteltima cosa que puede hacer es visitar la paacutegina Web de OpenOfficeorg y descargar la versioacuten gratuita de OpenOfficeorg Aunque hay nombres diferentes para las herramientas y los comandos OpenOfficeorg es m u y similar a Excel Esta aplicacioacuten estaacute basada en la misma estructura baacutesica de hoja de caacutelculo que Excel lo que resulta m u y sencillo para los usuarios acostumbrados a la aplicashycioacuten de Microsoft De hecho alrededor del 96 de las foacutermulas que se utilizan en Excel se pueden crear y utilizar en las hojas de caacutelculo de OpenOfficeorg

Para descargar una versioacuten gra tu i ta de OpenOfficeorg vaya a h t t p downloadopenofficeorgindexhtml y descarguacuteela desde el sitio FTP que prefieshyra Luego instale el programa Hay que decir que tambieacuten hay una versioacuten disshyponible de OpenOfficeorg para Macintosh

En muchos casos los datos de Excel se pueden recuperar Sin embargo el coacuteshydigo VBA no podraacute recuperarse debido a incompatibilidades entre Excel y OpenOfficeorg

Si ninguno de estos meacutetodos funciona probablemente tendraacute que pagar dineshyro para intentar recuperar su libro de Excel utilizando alguacuten software especial Puede encontrar software a la venta (para Windows) en el sitio Web de los au toshyres de este libro en la direccioacuten httpwwwozgridcomServicescorrupt-file-recovery-indexhtm

Despueacutes de haber comprado e instalado ExcelFix ejecuacutetelo Seleccione File luego elija el archivo corrupto y haga clic en Diagnose para recuperarlo Entonshyces deberiacutea ver el archivo recuperado en el visor de libros Haga clic en Save Workbook para guardar el libro en un nuevo archivo que pueda ser abierto por Excel

Existe tambieacuten una versioacuten de demostracioacuten que no le permite guardar el archivo pero recuerde que todas las versiones le permiten recuperar tantos arshychivos como desee

CAPIacuteTULO 2

Trucos sobre las caracteriacutesticas

incorporadas en Excel Trucos 16 a 38

Aunque Excel incorpora una gran variedad de caracteriacutesticas estaacutendar para administrar y analizar datos los liacutemites de dichas caracteriacutesticas son a menudo frustrantes Los trucos de este capiacutetulo le proporcionaraacuten numerosos meacutetodos para escaparse de esos liacutemites y hacer de Excel una herramienta mucho maacutes poderosa

Validar datos en base a una lista situada en otra hoja La validacioacuten de datos permite de forma faacutecil especificar reglas que deben seguir los datos Por desgracia Excel obliga a que las listas utilizadas en la validacioacuten de datos deben aparecer en la misma hoja en la que se encuentran eacutestos Pero por fortuna existen formas para saltarse esta limitacioacuten

En este truco proporcionaremos dos meacutetodos que puede utilizar para validar datos basaacutendose en una lista que estaacute situada en otra hoja El primer meacutetodo hace uso de los rangos con nombre que ofrece Excel (que veremos con maacutes detashylle en el capiacutetulo 3) y el segundo utiliza una llamada a una funcioacuten

Meacutetodo 1 Rangos con nombre

Quizaacute el meacutetodo maacutes raacutepido y sencillo para superar la barrera en cuanto a la validacioacuten de datos en Excel es dar nombre al rango donde estaacute situada la lista Para crear un rango con nombre seleccione las celdas que contienen la lista e

uuml

70 Excel Los mejores trucos

introduzca un nombre en el cuadro de nombres que estaacute situado en la parte superior izquierda justo a la izquierda de la barra de foacutermulas Para los propoacutesishytos de este ejemplo supondremos que a dicho rango le llamaremos MiRango

Seleccione la celda en la que desea que aparezca una lista desplegable y entonshyces seleccione la opcioacuten DatosgtValidacioacuten Seleccione la opcioacuten Lista en el cuadro de lista desplegable Permitir y en el cuadro de texto Origen escriba =MiRango Luego haga clic en el botoacuten Aceptar

Dado que hemos utilizado un nombre de rango la lista (aunque resida en otra hoja) puede ser utilizada como lista de validacioacuten

Meacutetodo 2 La funcioacuten INDIRECTO

La funcioacuten INDIRECTO permite hacer referencia a una celda que contiene un texto que representa la direccioacuten de otra celda Entonces puede utilizar esa celda como una celda local de referencia incluso aunque tome sus datos a partir de otra hoja Puede utilizar esta caracteriacutestica para hacer referencia a la hoja en la que reside la lista

Supongamos que la lista esteacute situada en la Hojal en el rango $A$1$A$8 Haga clic en cualquier hoja de una hoja distinta en donde desee que aparezca esta l is ta de va l idac ioacuten (lista de b uacute s q u e d a ) Entonces seleccione la opcioacuten DatosgtValidacioacuten y elija la opcioacuten Lista del cuadro de lista desplegable y en el cuadro de texto Origen escriba el siguiente coacutedigo

= INDIRECTO(Hoj al$A$1$A$8)

Aseguacuterese de que estaacute activada la casilla de verificacioacuten Celda con lista despleshygable y entonces haga clic en el botoacuten Aceptar En ese momento deberiacutea aparecer la lista ubicada en la Hojal en la lista desplegable de validacioacuten

Si el nombre de la hoja en la que estaacute ubicada la lista contiene espacios en blanco necesita utilizar la funcioacuten INDIRECTO de la siguiente forma

=INDIRECTO(Hoja 1$A$1$A$8)

Aquiacute la diferencia es que debe utilizar un apostrofe simple inmediatamente despueacutes de las primeras dobles comillas y otro inmediatamente antes del signo de exclamacioacuten

Siempre es una buena idea utilizar el apostrofe simple independien-H teniente de que el nombre de la hoja contenga espacios o no En

iA cualquier caso siempre podraacute hacer referencia a una hoja que no tenga espacios en su nombre y permite hacer cambios faacutecilmente en un futuro

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 71

Ventajas y desventajas de ambos meacutetodos

Los rangos con nombre y la funcioacuten INDIRECTO tienen cada uno de ellos una ventaja y una desventaja

La ventaja de utilizar nombres de rangos es que los cambios que realice al nombre de la hoja no afectaraacuten a la lista de validacioacuten Esto es precisamente la desventaja de la funcioacuten INDIRECTO en tanto que cualquier cambio que realice al nombre de la hoja no se actualizaraacute automaacuteticamente dentro de la funcioacuten por lo que tendraacute que cambiarla manualmente para que refleje el nuevo nombre

La ventaja de utilizar la funcioacuten INDIRECTO es que si la primera celdafila o la uacuteltima celdafila es eliminada del rango con nombre eacuteste devolveraacute un error de tipo iexclREF Por contra esto es una desventaja de utilizar nombres de rangos si elimina celdas o filas del rango con nombre los cambios no afectaraacuten a la lista de validacioacuten

Controlar el formato condicional con casillas de verificacioacuten Aunque el formato condicional es una de las caracteriacutesticas maacutes potentes de Excel resulta bastante incoacutemodo activarla y desactivarla a traveacutes de los menuacutes y cuadros de diaacutelogo de la interfaz de Excel Si pudieacuteramos antildeadir casillas de verificacioacuten en la hoja de caacutelculo que activasen y desactivasen en el formato condicional podriacuteamos leer los datos de forma mucho maacutes sencillo de cualquier forma el momento que queramos

El formato condicional una caracteriacutestica disponible a partir de Excel 97 aplica formatos a las celdas seleccionadas que coincidan con un cierto criterio que se basa en los valores o foacutermulas que se especifiquen Aunque el formato condicioshynal se utiliza normalmente basaacutendose en valores de celdas si lo basamos en foacutershymulas conseguiremos una flexibilidad mayor para extender el formato condicional a cualquier parte de la hoja de caacutelculo

Configurar casillas de verificacioacuten para formato condicional

Las casillas de verificacioacuten disponibles en la barra de herramientas Formulashyrios devuelven un valor VERDADERO o FALSO (activadadesactivada) a la celda a la que estaacuten vinculadas Combinando una casilla de verificacioacuten de dicha barra de herramientas con el formato condicional utilizando la opcioacuten de foacutermulas (veacutease figura 21) puede activar o desactivar el formato condicional a traveacutes de la casilla de verificacioacuten

D

72 Excel Los mejores trucos

MWWIWfflffl j x j Condicioacuten i

Foacutermula

Valor de la celda

_ j | -Hque desea usar ^BSTv-erdadera

Agre

Sin formato establecido

gar gtgt Eliminar | Aceptar

Uuml

Formato

I Cancelar

Figura 21 Cuadro de diaacutelogo de formato condicional con la opcioacuten de foacutermulas

Cuando se utiliza en combinacioacuten con una foacutermula (como por ejemplo S con la opcioacuten de foacutermulas) el formato condicional da formato

w k automaacuteticamente a una celda siempre que la foacutermulas devuelva VERDADERO Por ello cualquier foacutermula que utilice para este truco debe devolver VERDADERO o FALSO

Para entender de lo que estamos hablando pruebe este sencillo ejemplo que oculta los datos utilizando el formato condicional y una casilla de verificacioacuten Utilizaremos el rango $A$1 $A$10 que estaacute rellenado consecutivamente con los nuacutemeros del 1 al 10 Para insertar una casilla de verificacioacuten desde la barra de he r r amien ta s Formular ios seleccione la opcioacuten de m e n uacute VergtBarras de herramientasgtFormularios y luego haga clic en el icono de casilla de verificacioacuten A continuacioacuten haga clic cerca de la celda Cl situada en la hoja para insertar la casilla de verificacioacuten Haga clic con el botoacuten derecho del ratoacuten en la casilla de verificacioacuten y seleccione la opcioacuten Formato de control Luego vaya a la pestantildea Control y escriba Cl en el cuadro de texto Vincular con la celda tal y como se muestra en la figura 22 y finalmente haga clic en Aceptar

Cuando seleccione la casilla de verificacioacuten que estaacute sobre la celda Cl devolshyveraacute VERDADERO o FALSO a dicha celda Como no tenemos intereacutes en ver dicho valor en la celda cambie el color de la fuente a blanco Ahora seleccione las celdas $A$1$A$10 comenzando por A l Seleccione FormatogtFormato condicional y luego elija la opcioacuten Foacutermula en el primer cuadro de lista desplegable En el cuashydro de texto de la derecha escriba =$C$1 A continuacioacuten haga clic en el botoacuten Formato luego seleccione la pestantildea Fuente y cambie el color de fuente a blanco Finalmente haga clic en Aceptar y de nuevo en Aceptar

Seleccione la casilla de verificacioacuten para activarla y entonces el color de la fuente de las celdas en el rango $A$1 $A$10 cambiaraacute automaacuteticamente al color blanco Si desactiva la casilla de verificacioacuten entonces volveraacute a su color normal

Activar o desactivar el resaltado de los nuacutemeros

La posibilidad de resaltar automaacuteticamente los nuacutemeros que cumplan cierto criterio puede resultar m u y uacutetil para encontrar los datos que necesite en una

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 73

hoja de caacutelculo Para hacer esto comenzaremos seleccionando la celda El (o cualshyquier otra celda que prefiera) y llaacutemela CheckBoxLink utilizando el cuadro de nombre situado en la parte superior a la izquierda de la barra de foacutermulas (veacutease figura 23)

II bullIllll

Colores y liacuteneas j Tamantildeo

Valor

(bull Sin activar ~~ Activado

pound Mixto

Vincular con la celda jCl

i Sombreado 3D

Proteger | Propiedades iexcl Web

M

Aceptar J

xjl

Control

Cancelar

Figura 22 Cuadro de diaacutelogo de formato del control

1 bull (iliacuteffililffflB^^ bull lU archivo Edicioacuten Ver Insertar Formato Herramientas Datos

J d i j U iacute JL -J j j - Anal T 10 - H K S I 1 I ^j -3

CheckBoxLink bull amp

| A B C D E

H I 1 2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

|n A bull H H o j a l Hoja2 Hoja3

Listo

Ventana

a iquest z -4 000 euro -ooacute

I F

i

M

- - fl x

l U U ~Jgt 100 - laquobull i

i =F sF bull - laquo1 T -^

G H 1 T j

mdash 1

^ | i bull m

NUM

Figura 23 Celda El con el nombre CheckBoxLink

74 Excel Los mejores trucos

Antildeada una casilla de verificacioacuten desde la barra de herramientas Formularios a una hoja en blanco llame a esta hoja Casillasdeverificacioacuten y coloquacuteese en la celda A l Vincule esta casilla de verificacioacuten a la celda CheckBoxLink haciendo clic con el botoacuten derecho en la casilla y seleccionando la opcioacuten Formato de conshytrol y luego yendo a la pestantildea Control Escriba CheckBoxLink en el cuadro de texto correspondiente y haga clic en Aceptar Haga clic con el botoacuten derecho nuevamente sobre la casilla de verificacioacuten seleccione Modificar texto y entonces introduzca el texto Mostrarme En la columna A de otra hoja introduzca los nuacutemeros del 25 al 2500 en incrementos de 25 Deacutele el nombre Nuacutemeros a este rango y luego oculte la hoja mediante la opcioacuten FormatogtHojagtOcultar

Para introducir raacutepidamente estos nuacutemeros introduzca el nuacutemero 25 en la celda Al y 50 en la celda A2 Haga clic en el marcador de

s - propagacioacuten (el pequentildeo cuadro negro que aparece en la esquina inferior derecha de la celda A2) y sin soltar el botoacuten del ratoacuten arraacutestrelo hasta la fila 100

Seleccione la celda Bl de la hoja Casillasdeverificacioacuten y deacutele el nombre PrimerNum Seleccione la celda DI y deacutele el nombre SegundoNum En la celda Cl escriba la palabra Y Ahora seleccione la celda Bl (PrimerNum) y mantenienshydo pulsada la tecla Control seleccione la celda DI (SegundoNum) Entonces vaya a DatosgtValidacioacutengtConfiguracioacuten y en el cuadro de lista desplegable Permitir seshyleccione la opcioacuten Lista y en el cuadro de texto Origen escriba =Nuacutemeros Aseshyguacuterese de que la casilla de verificacioacuten Celda con lista desplegable esteacute activada y entonces haga clic en Aceptar Esto crearaacute una lista desplegable de nuacutemeros del 25 al 2500 en ambas celdas

En la celda Al escriba el encabezado Cantidad Inmediatamente debajo reshyllene el rango A2A20 con cualesquiera nuacutemeros entre 25 y 2500 Seleccione las celdas A2A20 (asegurando se debe comenzar desde la celda A2 para que sea la seleccioacuten activa) y seleccione FormatogtFormato condicional En el cuadro de diaacuteshylogo que aparece mostrado en la figura 24 seleccione la opcioacuten Foacutermula y en el cuadro de texto de la derecha escriba la siguiente foacutermula

=Y($A2gt=PrimerNum$A2lt=SegundoNumCheckBoxLink)

Haga clic en el botoacuten Formato y configure el formato que desee o combinashycioacuten de formatos Luego haga clic en Aceptar y de nuevo en Aceptar para cerrar el siguiente cuadro de diaacutelogo Cambie tambieacuten el color de la fuente de la celda El a blanco para que no aparezcan los valores VERDADERO o FALSO Desde la celda Bl seleccione cualquier nuacutemero y luego cualquier otro que sea mayor que el primero desde la celda DI

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 75

IJ1WB Il l l i l l MI 1 1 1 1 Mi Condicioacuten I

MBEZm^

j Foacutermula bull | =Y(|A2 gt=PrimerNum $A2 lt=SegundoNum CheckBoxLink

Vista previa del formato que desea usar cuando la condicioacuten sea verdadera AaBbCcYyZz

Agrega rraquo J Eliminar | Aceptar

x|

) 3 1 tEff^^degJ

| Cancelar j gt

Figura 24 Cuadro de diaacutelogo de formato condicional

Active la casilla de verificacioacuten con lo que los formatos condicionales que acabamos de configurar se aplicaraacuten automaacuteticamente a los nuacutemeros que esteacuten dentro del rango que acabamos de especificar Desactive la casilla de verificacioacuten y el formato volveraacute a ser el predeterminado Como puede ver utilizando una casilla de verificacioacuten en combinacioacuten con el formato condicional puede hacer cosas que nadie imaginariacutea todo ello sin utilizar coacutedigo VBA

Identificar foacutermulas con el formato condicional Excel no dispone de una funcioacuten incorporada para identificar foacutermulas Una vez que una foacutermula es introducida en una celda soacutelo puede descubrir siacute una celda contiene un valor estaacutetico o un valor calculado a partir de una foacutermula haciendo clic sobre ella y mirando la barra de foacutermulas Este truco soluciona esta carencia

El coacutedigo VBA para esta funcioacuten personalizada (tambieacuten llamada funcioacuten deshyfinida por el usuario) le permite identificar las celdas que contienen foacutermulas sin necesidad de tener que hacer clic en 10000 celdas y examinarlas una a una Para crear un cazador inteligente de foacutermulas comience seleccionando la opcioacuten HerramientasgtMacrogtEditor de Visual Basic (Al t Opcioacuten-Fl l ) y luego seleccione lnsertargtMoacutedulo Entonces introduzca la siguiente funcioacuten

Function IsFormula(Check_Cell As Range) IsFormula = Check_CellHasFormula

End Function

Ahora cierre la ventana (pulse AltComando-Q) A partir de entonces la funshycioacuten estaraacute disponible para cualquier celda de cualquier hoja de este libro introshyduciendo por ejemplo la foacutermula = I sFo rmula ($A$1) Tambieacuten puede acceder a la funcioacuten a traveacutes de lnsertargtFuncioacuten seleccionando la opcioacuten Definidas por el usuario en la lista de categoriacuteas y luego seleccionando IsFormula

La foacutermula devuelve VERDADERO si la celda a la que se hace referencia conshytiene una foacutermula y FALSO en caso contrario Puede utilizar este resultado booleano en combinacioacuten con el formato condicional de forma que todas las foacutershymulas se resalten automaacuteticamente con el formato que elija Una de las mejores

76 Excel Los mejores trucos

cosas a la hora de utilizar este meacutetodo es que el sistema de identificacioacuten de foacutershymulas para la hoja de caacutelculo seraacute dinaacutemico Esto significa que si antildeade o quita una foacutermula el formato cambiaraacute de acuerdo con ello A continuacioacuten explicashyremos coacutemo hacer esto Seleccione un rango de celdas de la hoja de caacutelculo (por ejemplo A1J500) e incluya algunas celdas extra en caso de que vaya a antildeadir maacutes foacutermulas posteriormente

Evite la tentacioacuten de seleccionar toda la hoja ya que esto antildeadiraacute una sobrecarga de trabajo innecesaria

Teniendo seleccionadas estas celdas y siendo la celda Al la activa seleccione FormatogtFormato condicional Seleccione la opcioacuten Formato en el cuadro de lista desplegable e introduzca =IsFormula(Al) en el cuadro de texto situado a la dereshycha Haga clic el botoacuten Formato y elija cualquier formato que desee para idenshytificar las celdas con foacutermulas Luego haga clic en Aceptar dos veces para cerrar ambos cuadros de diaacutelogo

A veces cuando se introducen foacutermulas en el formato condicional Excel intentaraacute colocar comillas alrededor de las foacutermulas despueacutes de hacer clic en Aceptar Esto ocurre porque Excel reconoce que ha introducido un texto no una foacutermula Si ocurre esto vuelva al cuadro de diaacutelogo de formato condicional elimine las comillas y pulse Aceptar

Llegados a este punto la foacutermula especificada deberiacutea aplicarse a todas las celdas de la hoja que contengan una foacutermula Si elimina o sobrescribe una celda que contenga una foacutermula el formato condicional desapareceraacute Igualmente si introduce una nueva foacutermula en cualquiera de las celdas dentro del rango queshydaraacute resaltada Este sencillo truco que utiliza el formato condicional hace mucho maacutes sencillo manejar hojas de caacutelculo cuando es necesario mucho tiempo para poder mantenerla o modificarla

BM Contar o sumar celdas que se ajustan al criterio W del formato condicional ^H Despueacutes de ver los resultados del formato condicional quizaacute desee crear

foacutermulas que hagan referencia solamente a los datos que han sido formateados condicionalmente Este no entiende bien este tipo de caacutelculos pero puede aprender a hacerlo

Normalmente los usuarios de Excel se preguntan iquestCoacutemo puedo hacer caacutelcushylos solamente en las celdas que tienen un color de fondo en especial Esta cues-

N

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 77_

tioacuten surge a menudo porque Excel no dispone de una funcioacuten estaacutendar para lleshyvar a cabo esta tarea Sin embargo se puede hacer utilizando una funcioacuten persoshynalizada como ya veremos posteriormente en otro truco

El uacutenico problema que surge al utilizar una funcioacuten personalizada es que no utiliza cualquier formato que se haya aplicado mediante el formato condicional Sin embargo pensando un poco maacutes podraacute obtener los mismos resultados sin tener que utilizar una funcioacuten personalizada

Digamos que tiene u n a larga lista de nuacutemeros en el r ango de celdas $A$2$A$100 Ha aplicado un formato condicional a estas celdas de forma que cualquier nuacutemero que esteacute entre 10 y 20 esteacute marcado Entonces tiene que antildeashydir el valor de las celdas que se ajusten al criterio que acaba de establecer y luego realizar la suma de dichos valores utilizando el formato condicional No tiene que preocuparse por el formato condicional que ha aplicado a esas celdas pero necesita conocer el criterio que fue utilizado para marcarlas (en este caso aqueshyllas celdas cuyos valores estaacuten entre 10 y 20)

Puede utilizar la funcioacuten SUMAR SI para antildeadir un rango de celdas que se ajusten a un cierto criterio pero soacutelo a uno Si necesita utilizar maacutes de un factor en el criterio puede utilizar una foacutermula matricial

Puede utilizar una foacutermula matricial de esta forma

=SUMA(SI($A$2$A$10 0gt10SI($A$2$A$10 0lt20$A$2$A$10 0)))

Cuando introduzca foacutermulas matriciales no pulse la tecla Intro en vez de ello pulse Control-Mayuacutes-Intro De esta forma Excel colocaraacute llaves alrededor de la foacutermula de esta forma

=SUMA(SI($A$2$A$100gt10SI($A$2$A$100lt2 0$A$2$A$100)))

Si introduce las llaves manualmente no funcionaraacute Debe permitir que Excel lo haga automaacuteticamente Tambieacuten tenga en cuenta que utilizar foacutermulas matriciales puede ralentizar los caacutelculos de Excel si hay muchas referencias a rangos de gran tamantildeo

Una alternativa

Como alternativa puede utilizar una columna de maacutes (por ejemplo la coshylumna B) para hace referencia a las celdas de la columna A Las referencias devolshyveraacuten resultados en la columna B soacutelo si el valor cumple las condiciones que haya establecido por ejemplogt10 y lt20 Para hacer esto siga estos pasos

Seleccione la celda B l e introduzca la siguiente foacutermula

= S I ( Y ( A 2 gt 1 0 A 2 lt 2 0 ) A 2 )

78 Excel Los mejores trucos

Propague esta foacutermula a cada celda llegando a la B100 Despueacutes debe rellenar los valores deberiacutea tener los valores en la columna B que esteacuten entre 10 y 20

Para copiar raacutepidamente una foacutermula hacia abajo hasta la uacuteltima Ci fila utilizada de la columna adyacente introduzca la foacutermula en la

primera celda (B2) vuelva a seleccionar esa celda y haga doble clic en el pequentildeo recuadro negro de propagacioacuten situado en la esquina inferior derecha de la celda Tambieacuten puede hacer esto seleccionando la opcioacuten EdicioacutengtRellenargtHacia abajo

Ahora ya puede seleccionar cualquier celda en la que desea que aparezca el resultado de la suma utilizando la funcioacuten estaacutendar SUMA (si lo desea puede ocultar la columna B de forma que no vea una columna extra llena de los valoshyres devueltos por la foacutermula)

Ciertamente los meacutetodos anteriores hacen bien su trabajo pero Excel proporshyciona otra funcioacuten que le permite especificar dos o maacutes criterios Esta funcioacuten es parte de las funciones de base de datos de Excel y se llama BDSUMA Para probarshyla utilice el mismo conjunto de nuacutemeros situados en el rango A2A100 Selecshycione las celdas C1D2 y deacutele el nombre CriterioSuma a este rango Luego seleccione la celda Cl e introduzca =$A$1 una referencia a la primera celda de la hoja Copie esto a la celda DI con lo que tendriacutea un duplicado del encabezado de la columna A Estas copias las utilizaremos como encabezados para el criterio de BDSUMA (C1D2) que llamamos CriterioSuma

En la celda C2 introduzcagt 10 En la celda D2 introduzca lt20 En la celda de la que desea mostrar el resultado introduzca el siguiente coacutedigo

=BDSUMA($A$1$A$10 0$A$1CriterioSuma)

BDSUMA es el meacutetodo preferido y maacutes eficaz para trabajar con celdas que deshyben cumplir un cierto criterio A diferencia de las matrices las funciones de base de datos incorporadas estaacuten disentildeadas especiacuteficamente para este propoacutesito e inshycluso cuando hacen referencia a un rango m u y amplio y se utilizan con grandes nuacutemeros los efectos negativos que provocan en el rendimiento son mucho meshynores que los provocados por las foacutermulas matriciales

Resaltar Filas o columnas impares Seguramente habraacute visto hojas de caacutelculo de Excel que utilizan colores alternos para las filas Por ejemplo las filas impares podriacutean ser blancas y las pares grises El formato condicional hace que esto sea muy sencillo

Alternar colores o sombreados da un aspecto profesional y puede hacer maacutes faacutecil la lectura de los datos Puede aplicar este formato manualmente pero como

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 79

ya se imaginaraacute resulta una tarea m u y pesada si tiene que actualizar dicho formato cada vez que antildeade o quita datos de la tabla ademaacutes de una infinita paciencia Por fortuna el formato condicional puede reducir la paciencia necesashyria y mejorar en gran medida su imagen profesional

Supondremos que los datos abarcan el rango Al H 100 Seleccione este rango de celdas comenzando por la celda A l de forma que nos aseguramos que sea la celda activa Entonces vaya a FormatogtFormato condicional Seleccione la opcioacuten Foacutermula del primer cuadro de lista desplegable y en el cuadro de texto situado a su derecha introduzca la siguiente foacutermula tal y como se muestra en la figura 25

=RESIDUO(FILA()2)

mmmmmmwm^^mKm Condicioacuten i

| Foacutermula j r ] |=RESIDUO(FILA()j2)|

Vista previa del formato que desea usar cuando la condicioacuten sea verdadera

Agregar gtgt

amp$$bullgtbullampgtbull

AaBbCcYyZz

Eliminar 1 Aceptar

2lt1|

1 Aacute bull

Formato j

1 Cancelar ]

Figura 25 Cuadro de diaacutelogo del formato condicional con la foacutermula RESIDUO para especificar un formato a cada fila par

Haga clic en el botoacuten Formato y elija el formato que desee aplicar a cada fila par haga clic en Aceptar y luego haga clic otra vez en Aceptar Entonces el formato que haya especificado deberiacutea aplicarse a cada fila par situada en el rango Al H100 Con esto ya puede reservarse parte de su paciencia para el resto del diacutea

Si desea utilizar este meacutetodo con las columnas en vez de con las filas utilice esta foacutermula

=RESIDUO(COLUMNA()2)

Aunque este meacutetodo aplica el formato especificado a cada fila o columna par de forma raacutepida y sencilla no es dinaacutemico Las filas que no contengan datos seguiraacuten teniendo el formato especificado Esto puede no resultar ideal y hacer que la lectura de la hoja de caacutelculo sea algo maacutes difiacutecil Hacer que el resaltado de filas o columnas sea dinaacutemico requiere de un truco un poco maacutes sofisticado

Nuevamente seleccione el rango A1H100 aseguraacutendose de que la celda Al sea la activa Entonces vaya a FormatogtFormato condicional y seleccione la opshycioacuten Foacutermula en el cuadro de lista desplegable Luego en el cuadro de texto de la derecha introduzca la siguiente foacutermula

=Y(RESIDUO(FILA()2)CONTARA($A1$H1))

80 Excel Los mejores trucos

^ Observe que no se hace referencia absoluta a las filas (utilizamos el ^laquo signo del doacutelar) pero siacute a las columnas w

Haga clic en el botoacuten Formato y seleccione el formato que desee haciendo clic en el botoacuten Aceptar dos veces para cerrar ambos cuadros de diaacutelogo Con esto cualquier fila que esteacute en el rango A1H100 y que no contengan datos no cambiaraacute su formato Si elimina datos de una fila en particular de la tabla t amshypoco tendraacute el formato condicional Si antildeade nuevos datos en cualquier lugar del rango Al H100 entonces se le aplicaraacute el formato condicional automaacuteticamente

Esto funciona asiacute porque cuando introdujimos la foacutermula para el formato condicional la foacutermula en siacute debe devolver un valor VERDADERO o FALSO En el lenguaje de las foacutermulas de Excel el valor 0 corresponde con el valor FALSO mientras que cualquier nuacutemero mayor que 0 corresponde con el valor VERDAshyDERO Cuando utilizamos la foacutermula =RESIDU0 (FILA () 2 ) devuelve un valor 0 (FALSO) o bien un nuacutemero mayor que 0 (VERDADERO)

La funcioacuten =FILA () es una funcioacuten volaacutetil que siempre devuelve el nuacutemero de fila que corresponde con la celda en la que reside Utilizamos la funcioacuten REshySIDUO para devolver el resto de dividir un nuacutemero por otro En nuestro caso estamos dividiendo el nuacutemero de fila por 2 por lo que todas las filas pares devolshyveraacuten un valor de 0 mientras que las impares devolveraacuten un valor mayor que 0

Cuando incluye las funciones FILA () y CONTARA dentro de la funcioacuten Y sigshynifica que deben devolver VERDADERO (o cualquier nuacutemero mayor que 0) las funciones RESIDUO y CONTARA para que la funcioacuten Y devuelva VERDADERO La funcioacuten CONTARA sirve para contar todas aquellas celdas que no esteacuten vaciacuteas

Crear efectos en 3D en tablas o celdas Cuando ve un efecto 3D en un programa como pueda ser Excel lo que estaacute viendo en realidad es una ilusioacuten creada por un formato en particular Es sencillo crear esta ilusioacuten aplicando un cierto formato a una celda o rango de celdas

Para comenzar con un ejemplo sencillo daremos un efecto 3D a una celda para que aparezca en relieve como si fuera un botoacuten En una hoja en blanco seleccione la celda D5 (seleccionamos esta celda para que no esteacute en uno de los bordes y no apreciemos bien el efecto) Vaya a FormatogtCeldasgtBordes En la lista de estilos elija la segunda liacutenea maacutes gruesa Aseguacuterese de tener seleccionado el color negro (o bien el automaacutetico en caso de no haber cambiado el valor predeshyterminado) Haga clic entonces en el borde derecho y luego en el borde inferior que aparece en la muestra de la parte de izquierda Seleccione ahora el color blanco en el cuadro de lista desplegable de colores Todaviacutea deberiacutea estar seleccio-

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 82

nado el segundo borde maacutes grueso por lo que esta vez haga clic en los otros dos bordes que quedan por seleccionar en la celda es decir el izquierdo y el superior Vaya a la pestantildea Tramas y seleccione el sombreado gris para la celda Haga clic en Aceptar y quite la seleccioacuten de la celda D5 Ahora deberiacutea ver coacutemo la celda D5 tiene un efecto relieve que le da un aspecto de botoacuten Todo ello lo hemos conseguido utilizando los bordes y el sombreado

Si por diversioacuten o por dar variedad desea dar a una celda la apariencia de estar presionada seleccione por ejemplo la celda E5 (porque es la que estaacute jun to a la D5 y hace que funcione este ejemplo) Vaya a FormatogtCeldasgtBordes selecshycione el segundo borde maacutes grueso para los estilos de liacutenea y aseguacuterese de que el color elegido es el negro

Aplique el formato a los bordes superior e izquierdo de la celda Seleccione el color blanco y aplique la liacutenea blanca a los bordes derecho e inferior de la celda Haga clic entonces en la pestantildea Tramas y cambie el formato de la celda a gris Haga clic en Aceptar y podraacute ver coacutemo la celda aparece con el efecto de estar presionada Este efecto es maacutes impresionante si se contrasta con el efecto de la celda D5 que estaacute en relieve

Utilizar un efecto 3D en una tabla de datos

A continuacioacuten vamos a experimentar con esta herramienta para ver los efecshytos que podemos aplicar a las tablas o a las hojas de caacutelculo

Seleccione las celdas D5 y E5 y haga clic en el icono Copiar formato (con forma de brocha) situado en la barra de herramientas estaacutendar Haga clic en la celda F5 y sin soltar el botoacuten del ratoacuten arraacutestrelo hasta la celda J5 Ahora selecshycione las celdas D5 J5 y de nuevo haga clic en el icono Copiar formato de la barra de herramientas estaacutendar Haga clic en la celda D6 y sin soltar el botoacuten del ratoacuten arraacutestrelo hasta la celda J15 Esto deberiacutea provocar un efecto como el que apareshyce en la figura 26

Hemos utilizado un borde bastante grueso para asegurarnos de que el efecto puede verse claramente Sin embargo quizaacute desee matizarlo utilizando un estilo de liacutenea algo maacutes fino Tambieacuten podriacutea utilizar cualquiera de los otros estilos de liacutenea para producir un efecto auacuten mayor La mejor forma de encontrar una bueshyna combinacioacuten es utilizar el sistema de prueba y error en una hoja en blanco hasta dar con el efecto deseado La uacutenica limitacioacuten que tiene que es su imaginashycioacuten y quizaacute su gusto

Tenga siempre en mente que los efectos 3D puede mejorar la lectura de una hoja de caacutelculo y proporcionar un aspecto maacutes profesional pero cuando se utiliza en exceso puede tener el efecto contrario Recuerde utilice todo como delacioacuten

Excel Los mejores trucos

i C D

MM^IM

E F G H

SlllliMntildeSiacute lEacutel i l l l l^

Silii i i l iSiSII^

^SSimWMampMB

i J p-^7~^

Figura 26 Efecto 3D aplicado a un rango de celdas

Si desea dar un paso maacutes allaacute a la hora de aplicar efectos 3D de forma au to shymaacutetica y dinaacutemica puede combinar este truco con el uso del formato condicioshynal de forma que la aplicacioacuten de estilos sea automaacutetica

Activar y desactivar el formato condicional y la validacioacuten de datos con una casilla de verificacioacuten La validacioacuten de datos puede resultar uacutetil para evitar que un usuario introduzca accidentalmente datos incorrectos Sin embargo algunas veces desearaacute hacer maacutes sencilla la introduccioacuten de datos que de otra forma seriacutea imposible bien porque fuese marcada por el formato condicional o bien completamente bloqueada por una validacioacuten de datos

Normalmente permitiraacute que los usuarios introduzcan datos que de otra forshyma no podriacutean desactivando el formato condicional o la validacioacuten de datos para dichos celdas De todas formas existe una forma sencilla para hacer esto puede combinar una simple casilla de verificacioacuten con la validacioacuten de datos

Para este ejemplo aplicaremos un formato condicional a un rango de celdas de forma que cualquier dato que aparezca maacutes de una vez quedaraacute resaltado para su faacutecil identificacioacuten Supondremos que la tabla de datos se extiende por el rango $A$1 $H$100 Para aplicar un formato condicional a este rango de forma que se puedan identificar los duplicados hacen falta unos cuantos pasos

Primeramente seleccione la celda Kl y deacutele el nombre CheckBoxLink escrishybiendo dicho nombre en el cuadro de nombres de la parte superior izquierda de la pantalla Si la barra de herramientas Formularios no estaacute visible mueacutestrela Enshytonces haga clic en el icono correspondiente a la casilla de verificacioacuten Luego

TRUCO

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 83

haga clic en cualquier lugar de la hoja de caacutelculo que esteacute fuera del rango anteshyriormente citado para antildeadir la casilla de verificacioacuten

Haga clic con el botoacuten derecho en la casilla de verificacioacuten y seleccione la opshycioacuten Formato de control Luego vaya a la pestantildea Control y escriba en el cuadro de texto CheckBoxLink y haga clic en Aceptar Seleccione la celda A l y sin soltar el botoacuten del ratoacuten seleccione un rango hasta la celda H100 Es importante que la celda Al sea la activa en la seleccioacuten Vaya a FormatogtFormato condicioshynal seleccione la opcioacuten Foacutermula en el cuadro de lista desplegable e introduzca la siguiente foacutermula en el cuadro de texto situado a su derecha (tal y como se muestra en la figura 27)

=Y(CONTARSI($A$1$H$10 0 A1)gt1 CheckboxLink)

Condicioacuten i

| Foacutermula j | | = V(CONT AR 5I($ A$ 1 $H$ 100 A1) gt 1 CheckboxLink)

Vista previa del formato que desea usar cuando la condicioacuten sea verdadera

Agre

aacuteEacuteUumlkCampamp y

^gar raquo j Eliminar j Aceptar

2Siexcl

1iexcl |[Formato jj j

Cancelar

Figura 27 Cuadro de diaacutelogo de formato condicional con la foacutermula que da formato resaltando los valores duplicados

Haga clic en el botoacuten Formato y en la pestantildea Tramas seleccione el color que desea aplicar a los datos duplicados Haga clic en el botoacuten Aceptar de ambos cuadros de diaacutelogo para salir

Dado que la casilla de verificacioacuten que acabamos de antildeadir estaacute activada el viacutenculo de celda en Kl (CheckBoxLink) leeraacute el valor VERDADERO por lo que todos los valores duplicados dentro del rango $A$1$A$100 apareceraacuten resaltashydos En el momento en el que desactive la casilla de verificacioacuten el viacutenculo de su celda (CheckBoxLink) devolveraacute el valor FALSO por lo que los valores duplicados no se resaltaraacuten

Esta casilla de verificacioacuten le proporciona un interruptor con el cual poder activar o desactivar el formato condicional de una hoja sin tener que utilizar el cuadro de diaacutelogo Formato condicional Puede utilizar el mismo principio con la validacioacuten de datos utilizando la opcioacuten de foacutermula

Todo esto funciona porque hemos utilizado la funcioacuten Y Esta funcioacuten devolshyveraacute el valor VERDADERO si ocurren estas dos siguientes cosas

CONTAR SI ($ A$ 1$H$100A1)gt1 debe devolver VERDADERO y el viacutenculo de celda para la casilla de verificacioacuten (CheckBoxLink) tambieacuten debe devolver VERshyDADERO En otras palabras para que la funcioacuten Y devuelva VERDADERO amshybas condiciones tambieacuten deben ser verdaderas

84 Excel Los mejores trucos

TRUCO Admitir muacuteltiples listas en un cuadro de lista desplegable Cuando trabajamos con muacuteltiples listas podemos forzar que cambie una lista utilizando una combinacioacuten de botones de opcioacuten y un cuadro de lista desplegable

Externo ofrece numerosas alternativas a los usuarios para seleccionar eleshymentos de una lista como pueda ser nombres productos diacuteas de la semana o sea lo que sea que componga la lista Sin embargo para acceder a maacutes de una lista de elementos simultaacuteneamente generalmente es necesario utilizar tres controles separados como por ejemplo tres cuadros de lista desplegable de la barra de herramientas Formularios

En vez de esto podemos utilizar un cuadro de lista desplegable en combinashycioacuten con botones de opcioacuten (tambieacuten disponibles en la barra de herramientas Formularios) para hacer que una lista cambie automaacuteticamente de acuerdo al botoacuten de opcioacuten que se haya elegido Para ver coacutemo funciona esto introduzca los nuacutemeros del 1 al 7 en el rango de celdas Al A7 de una nueva hoja En las celdas Bl B7 introduzca los diacuteas de la semana empezando por el lunes y terminando el domingo En las celdas C1C7 introduzca los meses desde enero hasta julio

Las caracteriacutesticas de propagacioacuten automaacutetica de Excel pueden hacer S^ este trabajo de forma mucho maacutes raacutepida y sencilla Simplemente

w^ introduzca un 1 en la celda Al seleccioacutenela y mientras mantiene pulsada la tecla Control haga clic en el cuadro de propagacioacuten situado la esquina inferior derecha de la celda Manteniendo pulsado el botoacuten del ratoacuten y la tecla Control arraacutestrelo hasta la celda A7 Es el rellenaraacute automaacuteticamente las celdas con los nuacutemeros del 1 al 7 Igualmente puede introducir lunes en la celda Bl y haga doble clic en el cuadro de propagacioacuten de dicha celda Finalmente introduzca enero en la celda Cl y haga lo mismo que con los diacuteas de la semana Veraacute como Excel rellenaraacute los diacuteas los meses de forma automaacutetica

Seleccione la opcioacuten VergtBarras de herramientasgtFormularios y haga doble clic en el icono Botoacuten de opcioacuten de dicha barra de herramientas Luego haga clic en tres lugares cualesquiera de la hoja de caacutelculo para colocar tres botones de opshycioacuten

Igualmente haga clic en el icono de Cuadro combinado que haga clic en cualshyquier lugar de la hoja de caacutelculo para insertar un cuadro de lista desplegable en ella Utilice los marcadores del cuadro de lista desplegable para cambiar su tamashyntildeo y su posicioacuten asiacute como el de los botones de opcioacuten para que esteacuten situados justo debajo de eacutel

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 85

Haga clic con el botoacuten derecho en el primer botoacuten de opcioacuten seleccione la opcioacuten Modificar texto y entonces reemplace el texto predeterminado por el texto Nuacutemeros Haga lo mismo con el segundo botoacuten de opcioacuten cambiando el texto por Diacuteas de la semana y con el tercero cambiando el texto por Meses Puede ver el resultado de esto en la figura 28

1

2

3

4

5

6

7

3

9

10 l

11 12 13 14 15

16

17

13

19 20

H i bull bull

B

1 Lunes

2 Martes

3 Mieacutercoles

4 Jueves

5 Viernes

6 Saacutebado

7 Domingo

C

Enero

Febrero

Marzo

Abril

Mayo

Junio

Julio

Esta celda contendraacute los nuacutemeros 1 2 oacute 3 dependiendo del botoacuten

[de opcioacuten seleccionado

f-

$C$1$C$

Esta celda reflejaraacute el elemento elegido en el cuadro de lista I desplegable y se puede usar-corno el argumento necesario para la foacutermula de buacutesqueda

Mayo

O Nuacutemeros

O Diacuteas de la semana

$bull Meses

I Esta direccioacuten cambiaraacute con cada seleccioacuten realizada en los botones de opcioacuten provocando que la lista del cuadro desplegable cambie

Hojal Hoja2 Hoja3 iexclD Figura 28 Cuadro de lista desplegable con muacuteltiples listas controlado por

de opcioacuten botones

Ahora mientras mantiene pulsada la tecla Control haga clic en cada uno de los botones de opcioacuten de forma que todos queden seleccionados y entonces haga clic con el botoacuten derecho del ratoacuten sobre uno de ellos y seleccione la opcioacuten Forshymato de control En la pestantildea Control especifique $F$1 como celda vinculada (aseguacuterese de utilizar esta referencia absoluta con los siacutembolos del doacutelar)

En la celda E6 introduzca la siguiente foacutermula

=DIRECCION(l$F$l) amp amp DIRECCIOacuteN(7$F$1)

Seleccione la opcioacuten lnsertargtNombregtDefinir En el cuadro de texto de la parte superior escriba MiRango y en el cuadro de texto Se refiere a escriacutebalo siguiente

=INDIRECTO($E$6)

Haga clic en Agregar y luego en Aceptar Haga clic con el botoacuten derecho del ratoacuten en el cuadro de diaacutelogo que antildeadimos anteriormente y seleccione la opcioacuten Formato de control En la pestantildea Control escriba MiRango en el cuadro de texto Rango de entrada y la celda $G$1 como viacutenculo Pulse entonces el botoacuten Acepshyta r Ahora deberiacutea ser capaz de seleccionar uno de los botones de opcioacuten con lo que la lista contenida en el cuadro de lista desplegable deberiacutea reflejar

86 Excel Los mejores trucos

automaacuteticamente el botoacuten de opcioacuten elegido Cuando configure todo esto para su propia hoja de caacutelculo deberiacutea utilizar algunas celdas que estuviesen fuera de la pantalla como origen de las listas y viacutenculos del cuadro de lista desplegable Incluso desearaacute ocultar estas celdas a los usuarios de forma que los viacutenculos esteacuten donde deberiacutean Tambieacuten necesitaraacute modificar las dos funciones DIRECshyCIOacuteN para que reflejen el rango de celdas que esteacute utilizando En las funciones que hemos utilizado en este ejemplo el 1 representa la primera fila de la lista mientras que el 7 representa el nuacutemero de la uacuteltima fila

Crear listas de validacioacuten que cambien en base a la seleccioacuten realizada en otra lista Las necesidades en la validacioacuten pueden variar dependiendo del contexto en el que sean utilizadas De todas formas puede crear una hoja de caacutelculo en la que una lista de validacioacuten cambie dependiendo de lo que se seleccione en otra

Para hacer que funcione este truco lo primero que tiene que hacer es rellenar la hoja de caacutelculo con algunos datos En una hoja en blanco llamada Listas y con la celda Al seleccionada escriba el siguiente encabezado Objetos En la celda Bl escriba el encabezado Lista correspondiente En las celdas A2A5 repishyta la palabra Cubo

En las celdas A6A9 repita la palabra Sofaacute En las celdas A l 0 A l 3 repita la palabra Ducha En las celdas A1417 repita la palabra Coche Luego comenshyzando por la celda B2 y terminando por la celda B17 introduzca las siguientes palabras (que se corresponden con la lista de objetos) Plomo Acero Abrishydor Tapa Cama Asiento Saloacuten Colchoacuten Lluvia Caliente Friacuteo Temshyplado Viaje Vacaciones Sombrero y Bota

En la celda Cl introduzca el encabezado Lista de validacioacuten A continuacioacuten para crear una lista de entradas uacutenicas introduzca la palabra Cubo en la celda C2 la palabra Sofaacute en la celda C3 la palabra Ducha en la celda C4 y la palabra Coche en la celda C5

Tambieacuten puede utilizar el filtro avanzado para crear una lista de H^ elementos uacutenicos Seleccione las celdas Al A17 seleccione DatosgtFiltrogt

Filtro avanzado y entonces active la casilla de verificacioacuten Soacutelo registros uacutenicos y seleccione el botoacuten de opcioacuten Filtrar la listas y moverla a otro lugar Haga clic en Aceptar y entonces seleccione las celdas A2A14 (que incluiraacuten las celdas ocultas) Coacutepielas y peguacuteelas a la celda Al8 Seleccione entonces la opcioacuten DatosgtFiltrogtMostrar todos seleccione la lista de objetos uacutenicos y coacutepielas y peguacuteelas en la celda A2 Con esto ya tendraacute la lista

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 87

Seleccione la opcioacuten lnsertargtNombregtDefinir y en el cuadro de texto Nombres en el libro escriba la palabra Objetos

En el cuadro de texto Se refiere a escriacutebalo siguiente foacutermula y luego haga clic en Agregar

=DESREF($A$200CONTARA($A$1$A$2 0) 1)

Ahora escriba en el cuadro de texto Nombres en el libro el nombre ListaVal y en el cuadro de texto Se refiere a introduzca $C$2$C$5 Haga clic en Agregar Ahora inserte otra hoja llaacutemela Hojal y coloque todos estos datos en ella Teniendo activa auacuten la Hojal seleccione la opcioacuten de menuacute lnsertargtNombregt Definir

En el cuadro de tex to de la pa r t e super ior a i n t roduzca la pa l ab ra ListaCorrespondiente y en el cuadro de texto de la parte inferior introduzca esta foacutermula y haga clic en Agregar

= DESREF(INDIRECTO(DIRECCIOacuteN(COINCIDIR(CeldaVallObj ectos0)+12

Listas))00CONTARSI(ObjectosCeldaVall)1)

En el cuadro de texto Nombres en el libro escriba la palabra CeldaVall y en el cuadro de texto Se refiere a introduzca $D$6 y haga clic en Agregar De nuevo e introduzca en el primer cuadro de texto la palabra CeldaVal2 y $E$6 en el seshygundo y luego haga clic en Agregar

Ahora haga clic en Aceptar para volver a la Hojal y entonces seleccione la celda $D$6

Eacuteste es un proceso largo pero ya estamos cerca del finalVaya a Datosgt ValidacioacutengtConfiguracioacuten Seleccione la opcioacuten Lista del cuadro de lista desplega-ble y en el cuadro de texto Origen escriba = ListaVal Aseguacuterese de que estaacute activada la casilla de verificacioacuten Celda con lista desplegable y haga clic en Acepshytar

Seleccione ahora la celda E6 y de nuevo vaya a DatosgtValidacioacutengtConfiguracioacuten Seleccione la opcioacuten Lista en el cuadro de lista desplegable y en el cuadro de texto Origen escriba ListaCorrespondiente Aseguacuterese tambieacuten de que la casilla de veshyrificacioacuten Celda con lista desplegable estaacute activada y haga clic en Aceptar Selecshycione uno de los objetos de la lista de validacioacuten que aparece en la celda D6 y la celda de validacioacuten en la celda E6 cambiaraacute automaacuteticamente para reflejar el obshyjeto que acaba de seleccionar

Ahora ya tiene una lista de validacioacuten m u y uacutetil como la que se muestra en la figura 29 cuyos contenidos cambiaraacute automaacuteticamente basaacutendose en el eleshymento elegido en la otra lista

En cualquier celda o rango de celdas puede utilizar una lista que contenga hasta cinco listas separadas

88 Excel Los mejores trucos

iacute iacute 2 i

3 | 4 i 15 1 6

7

8 9 i 10]

H lt bull

Listo

_ A _

bull l Hoja

B

Seleccione un objeto

Sofaacute

XHoja2Hojas

[ bull v ^ ^ g ^ i-=---|

La tote eofecWM colaquo la Mi efe tiacutecfto objeto que se encuentra ei ta hoiexclja Listas

I H

~ bull uumlJ

D

LU

J NUM

F p=f

bull bull bull |

bullir

TRUCO

Figura 29 Dos listas de validacioacuten que se corresponden

Forzar la validacioacuten de datos para hacer referencia a una lista en otra hoja Una de las opciones disponibles en la funcioacuten de validacioacuten de datos es la opcioacuten Lista que proporciona un cuadro de lista desplegable con elementos especiacuteficos que el usuario puede elegir Un problema que surge con la validacioacuten de datos es que en el momento en el que intenta hacer referencia a una lista que reside en otra hoja veraacute que es imposible Por fortuna seraacute posible mediante este truco

Puede forzar a que la validacioacuten de datos haga referencia a una lista que estaacute situada en otra hoja existiendo para ello dos posibles aproximaciones rangos con nombre y la funcioacuten INDIRECTO

Meacutetodo 1 Rangos con nombre

Quizaacute la forma maacutes sencilla y raacutepida para realizar esta tarea es dar nombre al rango en el que reside la lista Para los propoacutesitos de este ejercicio supondremos que ha llamado ha dicho rango MiRango Seleccione la celda en la que desea que aparezca el cuadro de lista desplegable y luego vaya a DatosgtValidacioacuten Seshyleccione la opcioacuten Lista en el cuadro de lista desplegable y en el cuadro de texto Origen escriba =MiRango Haga clic en Aceptar Ahora la lista (que se encuenshytra en otra hoja) puede ser utilizada por la lista de validacioacuten

Meacutetodo 2 La funcioacuten INDIRECTO

La funcioacuten INDIRECTO le permite hacer una referencia a una celda que conshytiene un texto que a su vez representa la direccioacuten de otra celda Puede utilizar la celda que contiene la funcioacuten INDIRECTO como referencia a una celda y puede

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 89

utilizar esta caracteriacutestica para hacer referencia a la hoja en la que reside la lista Supongamos que la lista estaacute situada en la Hojal en el rango $A$1 $A$10 Haga clic en cualquier celda de otra hoja en la que desee tener esta lista de validacioacuten Entonces seleccione DatosgtValidacioacuten y seleccione la opcioacuten Lista del cuadro de lista desplegable

En el cuadro de texto Origen escriba la siguiente funcioacuten

= I N D I R E C T O ( H o j a l $ A $ 1 $ A $ 1 0 )

Aseguacuterese de que la casilla de verificacioacuten Celda con lista desplegable esteacute activada y entonces haga clic en Aceptar Ahora la lista que reside en Hojal deberiacutea estar en la lista desplegable de validacioacuten

Si el nombre de la hoja en la que reside la lista contiene espacios en blanco utilice la funcioacuten INDIRECTO de la siguiente forma

=INDIRECTO(Hoja 1$A$1$A$10)

Aquiacute hemos utilizado un apostrofe justo despueacutes de las dobles comillas y jus shyto antes del signo de exclamacioacuten Los apostrofes sirven para acotar los liacutemites del nombre de una hoja de Excel

Siempre es una buena idea utilizar el apostrofe independientemente de que la hoja tenga o no espacios en blanco en su nombre Siempre podraacute hacer referencia a hojas que no contengan espacios por lo que resulta muy uacutetil para evitar problemas

Ventajas y desventajas de cada meacutetodo

Existen ventajas y desventajas a la hora de utilizar nombres de rango y la funcioacuten INDIRECTO para forzar la validacioacuten de datos para que haga referencia a una lista situada en otra hoja

La ventaja de utilizar nombres de rango en este escenario es que cualquier cambio que realice en el nombre de la hoja no tendraacute efecto en la lista de validashycioacuten Esto siacute supone una desventaja en el caso de la funcioacuten INDIRECTO ya que cualquier cambio en el nombre de la hoja no se actualiza automaacuteticamente denshytro de dicha funcioacuten por lo que tendraacute que cambiarlo de forma manual

La ventaja de utilizar la funcioacuten INDIRECTO es que si la primera celda o fila o la uacuteltima celda o fila es eliminada del rango con nombre dicho rango devolveraacute un error iexclREF Esto supone una desventaja en caso de utilizar rangos con nomshybre si elimina cualquier celda o fila dentro del rango con nombre esos cambios no afectaraacuten a la lista de validacioacuten

Excel Los mejores trucos

Utilizar Reemplazar para eliminar caracteres no deseados Cuando importa datos externos o los copia desde otras ubicaciones dentro de Excel pueden aparecer caracteres no deseados en la hoja de caacutelculo Mediante este truco puede evitar el inconveniente de tener que eliminar a mano dichos caracteres

La funcioacuten Reemplazar de Excel puede ayudarle a eliminar caracteres no deshyseados de una hoja de caacutelculo pero requiere de unos cuantos pasos extra Por ejemplo puede reemplazar las celdas que contengan los caracteres no deseados con nada (es decir realmente eliminaacutendolos) Para hacer esto necesita saber los coacutedigos de los caracteres que desea eliminar Todos los caracteres tienen un coacutedishygo y Excel le informaraacute cuaacutel es si utiliza la funcioacuten COacuteDIGO sobre ellos Esta funcioacuten devuelve un coacutedigo numeacuterico para el primer caraacutecter de una cadena de texto Dicho coacutedigo corresponde con el conjunto de caracteres que esteacute utilizando el ordenador Para que esto funcione seleccione una de las celdas que contengan un caraacutecter no deseados En la barra de foacutermulas seleccione el caraacutecter en cuesshytioacuten y coacutepielo en el portapapeles Luego seleccione cualquier celda que no esteacute utilizando (por ejemplo la celda Al) y copie el caraacutecter en ella En otra celda introduzca la siguiente foacutermula

=C0DIG0($A$1)

Esto devolveraacute el coacutedigo del caraacutecter no deseado A continuacioacuten seleccione todos los datos y vaya a EditargtReemplazar Haga clic en el cuadro de texto Busshycar y mientras mantiene pulsada la tecla Alt o Comando introduzca utilizando el teclado numeacuterico un 0 seguido del coacutedigo que devolvioacute la funcioacuten COacuteDIGO Por ejemplo si el coacutedigo es 163 mantenga pulsada la tecla Alt o Comando mienshytras escribe en el teclado numeacuterico el nuacutemero 0163 Deje vaciacuteo el cuadro de texto Reemplazar con y luego haga clic en el botoacuten Reemplazar todos Esto eliminaraacute raacutepidamente todos los caracteres no deseados que coincidan con dicho coacutedigo Ahora repita el mismo proceso para el resto de caracteres no deseados

Convertir nuacutemeros de texto en nuacutemeros reales Los contenidos de una celda pueden parecer nuacutemeros especialmente si han sido importados pero probablemente sea imposible utilizar dichos nuacutemeros en los caacutelculos A continuacioacuten mostramos algunos meacutetodos para convertir faacutecilmente esos nuacutemeros de texto en verdaderos nuacutemeros

Recuerde que los nuacutemeros en Excel estaacuten alineados a la derecha de forma preshydeterminada mientras que los textos se alinean a la izquierda Una forma senci-

90

uuml

TRUCO

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 91

lia de identificar estos nuacutemeros de texto problemaacuteticos en una columna que se supone deberiacutea contener nuacutemeros verdaderos dicha columna luego ir a FormatogtCeldasgtAlineacioacuten asegurarse de que la alineacioacuten horizontal estaacute esshytablecida a la opcioacuten estaacutendar General y luego hacer clic en Aceptar Ampliacutee el ancho de la columna y veraacute como los nuacutemeros verdaderos quedaraacuten alineados a la derecha mientras que aquellos nuacutemeros de texto quedaraacuten a la izquierda Las fechas tambieacuten quedan alineadas a la derecha ya que en realidad son nuacutemeros

Ahora que ya sabe que tiene nuacutemeros que son tratados como texto veamos un meacutetodo raacutepido y sencillo para convertirlos a verdaderos nuacutemeros de forma que Excel pueda utilizarlos para sus caacutelculos Copie cualquier celda en blanco y entonces seleccione aquellas celdas con los nuacutemeros Vaya a EdicioacutengtPegado esshypecial y seleccione la opcioacuten Valores Tambieacuten seleccione la opcioacuten Sumar en el apartado de operaciones y haga clic en Aceptar

Esto haraacute que cualquier nuacutemero que estuviese como texto se convierta a un verdadero nuacutemero Esto es asiacute porque una celda vaciacutea tiene un valor de 0 y cuanshydo antildeade cualquier nuacutemero a un nuacutemero que Excel estaacute tratando como un texto forzaraacute a que dicho nuacutemero se convierta a un nuacutemero verdadero

Puede aplicar esta misma loacutegica a algunas funciones estaacutendar de Excel en particular a las funciones TEXTO Normalmente cuando utiliza las funciones TEXTO de Excel y el resultado obtenido es un nuacutemero Excel seguiraacute devolviendo ese nuacutemero como si fuera un texto en vez de un valor numeacuterico Supongamos que tiene un rango de celdas comenzando por la $A$1 Cada celda contiene una cantidad de dinero con el signo del doacutelar al principio seguida de un espacio y el nombre de una persona Utilizando la siguiente foacutermula que combina las funshyciones IZQUIERDA y ENCONTRAR puede extraer dicho siacutembolo del doacutelar

=IZQUIERDA(AlENCONTRAR( A1)-1)

Si por ejemplo la celda Al contuviese el valor $2270 Federico el resultado de la foacutermula seriacutea $2270 Sin embargo dicho resultado seriacutea devuelto como un texto no como un valor numeacuterico Por tanto de forma predeterminada quedaraacute alineado a la izquierda Puede modificar esta foacutermula de forma que el resultado no sea de tipo texto sino un valor numeacuterico de verdad Para ello antildeada un 0 al final de la siguiente forma

=IZQUIERDA(Al ENCONTRAR( A 1 ) - 1 ) + 0

Esto obligaraacute a que el valor devuelto sea un verdadero nuacutemero por lo que quedaraacute alineado a la derecha de forma predeterminada Todo lo que queda por hacer ahora es dar formato a la celda de forma adecuada Otro de los problemas que pueden surgir en relacioacuten con los textos y nuacutemeros es cuando mezcla texto y nuacutemeros en una misma celda pero sin haber una forma de extraer la parte nu-

92 Excel Los mejores trucos

meacuterica (como ocurriacutea en el caso anterior) En este caso tendremos que utilizar una funcioacuten personalizada que extraiga la parte numeacuterica de la cadena de texto Para crear dicha funcioacuten personalizada pulse A l t Opc ioacuten-F l l seleccione lnsertargtMoacutedulo e introduzca el siguiente coacutedigo

Function ExtraerNumero(rCell As Range) Dim ICount As Long L As Long Dim sText As String Dim lNum As String

sText = rCell

For ICount = Len(sText) To 1 Step -1 If IsNumeric(Mid(sText ICount 1)) Then

L = L + 1 lNum = Mid(sText ICount 1) amp lNum

End If

If L = 1 Then lNum = CInt(Mid(lNum 1 1)) Next ICount

ExtraerNumero = CLng(lNum)

End Function

Salga del editor y vuelva a la ventana principal de Excel La funcioacuten que acashybamos de crear apareceraacute en la categoriacutea de funciones definidas por el usuario Utiliacutecela tal y como se muestra en la figura 210

A B C 1 dfgd878sdd77dd 87877 =ExtraerNumero(A1) 2 jtjt330dfll33 33033 =ExtraerNumero(A2) 3 iexclfdkfjk332kki9Uuml2 332902 =ExtraerNurnero(Aacute2i

Figura 210 Extraer la parte numeacuterica de un texto

En la figura 210 la columna A contiene una mezcla de texto y nuacutemeros la columna B contiene el resultado de utilizar esta funcioacuten y la columna C muestra la apariencia de la foacutermula en la columna B

Personalizar los comentarios de las celdas Los comentarios de celda le permiten colocar el equivalente a una nota en una celda especiacutefica de una hoja Aunque muchas personas utilizar estos comentarios la mayoriacutea no saben que pueden ser personalizados

Cuando inserta un comentario de celda a traveacutes de la opcioacuten lnsertargtComen-tario Excel de forma predeterminada inserta tambieacuten el nombre del usuario del

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 93

ordenador que estaacute utilizando el programa Puede cambiar este comportamiento a traveacutes de HerramientasgtOpcionesgtGeneral Observe que en la parte inferior del cuadro de diaacutelogo puede cambiar el nombre de usuario que desea que aparezca de forma predeterminada

Aunque los comentarios de celda tienen el propoacutesito de mostrar un mensaje escrito por usted o cualquier otro usuario puede personalizar dichos comentashyrios de forma que reflejen mejor las intenciones del que lo crea Aseguacuterese de que la barra de herramientas de dibujo esteacute visible seleccionando la opcioacuten VergtBarras herramientasgtDibujo Introduzca un comentario de celda seleccionaacutendola y luego yendo a la opcioacuten lnsertargtComentario Esto haraacute que entre en modo de edicioacuten automaacuteticamente listo para introducir el texto en el cuadro de comentario

Haga clic justo en el borde del comentario para salir del modo de edicioacuten pero mantenieacutendolo seleccionado Entonces seleccione Dibujo y elija la opcioacuten Cambiar autoforma del menuacute que aparece Obtendraacute una lista con opciones en la que se incluyen formas baacutesicas flechas de bloque graacuteficos de flujo etc Elija una opshycioacuten y veraacute como el comentario de la celda cambiaraacute su aspecto en funcioacuten de ello tal y como se muestra la figura 2 11

1 2 3 4 5

6 7 8 9 10 11 12

I 13

A B C

--ltbull ~gtv

y bull

D E 1

Figura 211 Un comentario de celda con un formato totalmente diferente

Puede ir maacutes lejos si aplica un estilo sombreado al comentario daacutendole maacutes vida y un aspecto en tres dimensiones Aseguacuterese de que todaviacutea tiene seleccioshynado el comentario pero que no estaacute en modo de edicioacuten En la barra de herrashymientas de dibujo haga clic en el icono Estilo de sombra que se muestra la figura 212 y elija una configuracioacuten de sombra para el comentario de la celda

Otra cosa interesante que puede hacer con los comentarios de celda es utilishyzarlos para mostrar imaacutegenes sin que impidan ver los datos Por ejemplo podriacutea insertar la imagen de un graacutefico en el comentario de la celda para ilustrar los datos del graacutefico sin tener que mostrarlo todo el tiempo

Para antildeadir una imagen aseguacuterese de tener seleccionada el comentario pero sin estar en modo de edicioacuten Seleccione FormatogtComentario o bien haga doble clic en el borde del comentario Vaya a la pestantildea Colores y liacuteneas y en el cuadro

94 Excel Los mejores trucos

de lista desplegable Color seleccione la opcioacuten Efectos de relleno Vaya entonces a la pestantildea Imagen Ahora busque la imagen que desee insertar en el comentario de la celda

EacuteP

Configuracioacuten de sombra

Dibujo | Autoformas bull bullbdquogt zJ -Jjiacute (iquest bull yiquest amp ~ zplusmn Wi ltpound J J -

Figura 212 Opciones de estilo de sombra

Una uacuteltima cosa que puede hacer con los comentarios de celdas es extraer el texto que contienen y hacer que aparezca dentro de una celda Para ello tendreshymos que crear una sencilla funcioacuten personalizada en un moacutedulo estaacutendar Vaya al Editor de Visual Basic ( A l t O p c i oacute n - F l l ) e inserte un nuevo moacutedulo (lnsertargtMoacutedulo) A continuacioacuten escriba el siguiente coacutedigo

Function ObtenerTextoComentario(rCommentCell As Range) Dim strGotlt As String

On Error Resume Next strGotlt = WorksheetFunctionClean (rCommentCellCommentText) ObtenerTextoComentario = strGotlt On Error GoTo 0

End Function

Vuelva a la ventana principal de Excel bien cerrando esta ventana o pulsando AltComando-Q Ahora en cualquier celda introduzca la siguiente foacutermula

=ObtenerTextoComentario(Al)

donde Al es la celda que contiene un comentario Entonces deberiacutea aparecer el texto del comentario en la celda en la que haya introducido esta foacutermula

Ordenar maacutes de tres columnas La funcioacuten de ordenacioacuten de Excel estaacute limitada en cuanto a que soacutelo permite elegir tres campos de datos por los que ordenar En muchos casos puede ser suficiente pero a veces es necesario poder ordenar por maacutes de tres columnas de datos A continuacioacuten mostraremos coacutemo superar esta limitacioacuten

Para este ejemplo supondremos que tiene datos relacionados en las columnas A B C D y E y que desea ordenar estos datos por ese mismo orden Para poder

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 95

hacer esto debe poder ordenar de atraacutes a adelante es decir ordenar por el uacuteltimo campo primero y luego ir hacia atraacutes hasta el primer campo

Seleccione desde la co lumna A has ta la columna E y entonces vaya a DatosgtOrdenar Seleccione el criterio de ordenacioacuten para que primero se ordene la columna C luego D y luego E Haga clic en Ordenar Ahora seleccione desde la columna A a la columna E y vaya a DatosgtOrdenar Esta vez ordene primero por la columna A y luego por la B Haga clic en Ordenar Con esto hemos conseguido que Excel ordene las columnas por cinco campos en vez de por tres

Si desea automatizar esta tarea puede utilizar una macro que ordene la selecshycioacuten y que reconozca si los datos poseen encabezados de columna en base al formato de la primera fila de la seleccioacuten Si los encabezados estaacuten en negritas Excel sabraacute que son encabezados de columna y no los ordenaraacute Por otro lado ordenaraacute primero por la columna que esteacute maacutes a la izquierda y asiacute sucesivamenshyte para el resto de columnas hasta llegar a un maacuteximo de 256

El coacutedigo de la macro que necesitamos debe ser colocado en un moacutedulo estaacutendar Para ello vaya a la opcioacuten HerramientasgtMacrogtEditor de Visual Basic luego vaya a lnsertargtMoacutedulo e introduzca el siguiente coacutedigo

Sub OrdenarPorX( ) Dim L As Long

For L = SelectionColumnsCount To 1 Step -1 SelectionSort Keyl=SelectionCells(2 1) _ Orderl=xlAscending Header=xlGuess Orientation=xlTopToBottom

Next L

End Sub

Para volver a Excel cierre de esta ventana o bien pulse AltComando-(X Ahora ya podraacute realizar ordenaciones mucho maacutes complicadas que las que ofrece Excel

En Ordenacioacuten aleatoria ^H Puede hacer que Excel escoja los tres primeros ganadores elegidos ^H aleatoriamente de una lista de una hoja de caacutelculo El meacutetodo maacutes sencillo ^trade y raacutepido para hacer esto es utilizar la funcioacuten ALEATORIO de Excel en

combinacioacuten con las funciones de ordenacioacuten

Supongamos que tiene una tabla con tres columnas en la hoja de caacutelculo comenzando por la columna B y que contienen en este orden Nombre edad y Ndeg de Id Coloque la funcioacuten ALEATORIO en la celda A2 y propaguacuteela hacia abajo tantas filas como necesite

Cuando haga esto cada una de las celdas de la columna A devolveraacute un nuacuteshymero aleatorio por el cual puede ordenar la tabla En otras palabras si ordena las

96 Excel Los mejores trucos

columnas A B C y D utilizando como criterio el valor de la columna A ya sea ascendentemente o descendentemente tendraacute a los tres ganadores en la parte superior de la tabla

La funcioacuten ALEATORIO es una funcioacuten volaacutetil que se calcula automaacuteticamente cada vez que se realiza una accioacuten en Excel (como por ejemplo introducir datos en alguacuten lugar o bien forzando a que se recalculen todas las foacutermulas pulsando la tecla F9) Por tanto ya puede escribir en una hoja de papel quieacutenes eran los ganadores antes de que vuelva a calcularse de nuevo todo ya que el orden camshybiaraacute

Sin embargo puede utilizar esta volatilidad en su beneficio y grabar una macro que ordene los datos inmediatamente despueacutes de recalcular y forzar a que la funcioacuten ALEATORIO devuelva a otro conjunto de nuacutemeros aleatorio Entonces puede asociar esta macro a un botoacuten de forma que cada vez que desee calcular los tres ganadores todo lo que debe hacer es hacer clic en eacutel y utilizar las tres filas de la parte superior

Por ejemplo supongamos que tiene los datos en las columnas B C y D y que la fila 1 se utiliza para los encabezados Primeramente introduzca el encabezado Aleatorio en la celda A l En la celda A2 introduzca ^ALEATORIO () y propashyguacuteela hacia abajo Luego seleccione cualquier celda y vaya a HerramientasgtMacrogt Grabar nueva macro

Seleccione las columnas A B C y D y pulse F9 (para forzar de sede recalculen las foacutermulas) Vaya a DatosgtOrdenar y ordene los datos por la columna A Deshytenga entonces la grabacioacuten de la macro

A continuacioacuten seleccione VergtBarras de herramientasgtFormularios Seleccioshyne el icono Botoacuten en el cuadro de herramientas y coloacutequelo en cualquier lugar de la hoja

Asignen la macro que acaba de grabar a este botoacuten y luego haga clic en Acepshyt a r (tambieacuten cambie el texto del botoacuten por algo maacutes representativo) Puede oculshytar la columna A completamente ya que los usuarios no tienen por queacute ver los nuacutemeros aleatorios Cada vez que haga clic en el botoacuten los datos se ordenaraacuten aleatoriamente y simplemente bastaraacute con leer los tres nombres que aparezcan en la parte superior de la tabla para ver quieacutenes son los ganadores Observe la figura que le mostramos a continuacioacuten

La funcioacuten ALEATORIO de Excel 2003 tiene un fallo muy importante Aunque la ayuda asegura claramente que el nuacutemero aleatorio devuelto estaacute entre 0 y 1 esto no siempre es cierto si la funcioacuten se utiliza en muchas celdas A veces ocurriraacute que la funcioacuten devuelva un nuacutemero menor que 0 Para saber porqueacute Microsoft ha cambiado el algoritmo visite la paacutegina httpsupportmicrosoftcomdefaultaspxkbid= 828795httpsupportmicrosoftcomdefaultaspxkbid=828795

V

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 97

_ 1 _ A 1 Nombre 2 David 3 lAlex 4 Ana 5 Marta 6 Juan 7 Santos 8 Laida 9 Mar 10 Luis 11 12

I sect Edad Ndeg

32 30 23 36 25 30 31 30 28

Id C

11343 11543 11345 11234 11321 11545 11656 11451 11331

P Posicioacuten

E I F Escoger Ganadores

1

2 3

Figura 213 Resultado final de la ordenacioacuten aleatoria de la columna oculta A

Manipular datos con el filtro avanzado Si estaacute familiarizado con la herramienta de auto filtrado de Excel tambieacuten estaraacute familiarizado con sus limitaciones Si necesita hacer una manipulacioacuten exhaustiva de los datos la solucioacuten es utilizar la herramienta de filtrado avanzado de Excel

A pesar de su limitacioacuten el filtrado automaacutetico es uacutetil para mostrar solamenshyte aquellos datos que cumplan un criterio en particular Sin embargo en algunas ocasiones no podraacute extraer la informacioacuten que necesita utilizando las opciones estaacutendar disponibles en el filtrado automaacutetico Por ello existe una herramienta maacutes versaacutetil el filtro avanzado que le permite manipular los datos maacutes allaacute de dichas limitaciones Cuando utilice esta herramienta la tabla debe estar configushyrada en un formato claacutesico tal y como describimos al comienzo del capiacutetulo 1

Cuando utilice la herramienta de filtrado avanzado de Excel necesitaraacute una copia de los encabezados de las columnas en alguacuten lugar por encima de los datos Siempre deberiacutea dejar al menos tres filas en blanco por encima de la tabla con los datos Para asegurarse de que los encabezados son siempre los mismos y se manshytengan asiacute independientemente de que cambie los encabezados de las columnas haga siempre las referencias a los encabezados de las columnas con una foacutermula de referencia simple como pueda ser =A4 donde la celda A4 contiene el encabeshyzado de la columna Copie esto a lo largo de los encabezados de las columnas que tenga en la tabla Esto aseguraraacute que los encabezados de los criterios para el filtrado avanzado sean dinaacutemicos Directamente debajo de los encabezados coshypiados coloque el criterio que desea utilizar para el filtro avanzado Para maacutes detalles sobre este proceso consuacuteltela ayuda de Excel acerca de los criterios de los filtros avanzados Hay que tener en cuenta que cuando se utiliza el filtro avanshyzado si hay dos o maacutes criterios colocados directamente por debajo del encabezashydo utilizaraacuten un operador de comparacioacuten O Si desea utilizar el operador de comparacioacuten Y entonces los encabezados de columna y sus criterios deben apashyrecer dos veces del lado a lado En la figura 214 se muestra coacutemo utilizar el operador O para filtrar los datos y en la figura 215 coacutemo utilizar el operador Y

uuml

98 Excel Los mejores trucos

bullaacutejjj Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana

-Inl 1

A

1 Nombres

2

3

4 |

5 Nombres

6 David

7 Alex

8 Ana

9 Marta

10 Juan

11 Santos

12 Laida

13 Mar

14 Luis

15

16

17

18

M 4 bull H Hojal

B

iexclTasa

iexclgt1600

iexcllt 15J30

Tasa

$ 1700

$ 1225

$ 2120

$ 1800

1650

$ 2100

$ 1080

$ 1550

$ 1320

C

Edad

X Hoja2 HojaS X Hoja4

32

30

23

36

25

30

31

30

28

X HojaS

D E |

11 ipiiacutewraffiM^v bull -Accioacuten

F

f Filtrar la lista sin moverla a otro lugar

lt Copiar a otro lugar

Rango de la lista j$A$5$C$14

Rango de criterios j^B$l$B$3

1 f~ Soacutelo registros uacutenicos

1 Aceptar j

XHoja6 |lt

G

Jltl

3 31 3

Cancelar

H

|

1 T mdash

mdash w

bull i r

Figura 2 14 Usar el filtro avanzado con el operador O para mostrar solamente aquellas personas que tengan una paga mayor que $1600 o menor que $1500

-4] Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana

A5

1

2

3

4

5

_ 15

16

17

18

19 70

21

22

23

24

25

H 4

A

Nombres

D

Nombres

David

Laida

bull bull Hojal

B Nombres

L

Tasa

1700

1080

Ed

X Hoja2 X Hoja3 X

C

ad

Hoja4

32

31 iexcl

X H deg iacute a 5

D E | F

lilHPJliexcliquesti^1 Accioacuten

(bull Filtrar la iista sin moverla a otro lugar r Copiar a otro lugar-

Rango de la lista |$A$5$C$14

Rango de criterios j$A$l$B$2

1 f Soacutelo registros uacutenicos

1 Aceptar j Cancel

XHoja6Hoja7 j laquo |

G

2ltj

3d 3 31

ar

H

1

1 mdash

~~~

mdash w

bull i r

Figura 2 15 Usar el filtro avanzado con el operador Y para mostrar solamente aquellas personas cuyo nombre comienza por B y termina por L

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 99

Los dos ejemplos anteriores muestran algunos de los usos simples que se pueshyden hacer de la herramienta de filtrado avanzado y que tambieacuten se podriacutean reashylizar ut i l izando la funcioacuten de filtrado au tomaacutet ico si fuera necesario A continuacioacuten presentaremos algunos ejemplos de la utilizacioacuten del filtro avanzashydo en los que no seriacutea posible utilizar el Autofiltro

Es importante destacar que cuando utilice una foacutermula para el criterio S no debe utilizar por encima del criterio un encabezado que sea ideacutentico

w a uno que haya en la tabla Por ejemplo si tiene un listado con datos numeacutericos en la columna A y la lista comienza en la celda A5 (siendo A4 el encabezado) si necesita extraer todos los nuacutemeros de dicha lista que sean mayor que la media deberiacutea utilizar un criterio como este

=A5gtPR0MEDI0($A$5$A$500)

Si el criterio fuese colocado en la celda A2 el rango del criterio seriacutea $A$1 $A2 pero $A$ 1 no podriacutea contener el mismo encabezado que el usado en la lista Debe ser o bien vaciacuteo o bien un encabezado diferente Tambieacuten es importante resentildear que cualquier foacutermula que utilice deberiacutea devolver o bien VERDADERO o FALSO El rango para la funcioacuten promedio se hace absoluto al utilizar el signo del doacutelar mientras que la referencia a la celda A5 es relativa Esto es necesario porque cuando aplique el filtro avanzado Excel veraacute que la celda A5 es una referencia relativa y se moveraacute por la lista hacia abajo por cada entrada devolviendo VERDADERO o FALSO Si devuelve VERDADERO entonces habraacute que necesita ser extraiacutedo Si devuelve FALSO entonces es que no coincide con el criterio y por lo tanto no seraacute mostrado

Supongamos que muchos de los nombres estaacuten repetidos en el rango $A$5$A$500 siendo la celda A4 el encabezado Tambieacuten que muchos de los encabezados se repiten numerosas veces Se le ha asignado la tarea de extraer de la lista todos los nombres que aparecen maacutes de una vez Para hacer esto necesita utilizar el filtro avanzado asiacute como la siguiente foacutermula como criterio

= C O N T A R S I ( $ A $ 5 $ A $ 5 0 0 A 5 ) gt 1

Una vez que aplique el filtro avanzado a esto y utilice la opcioacuten Copiar en otra ubicacioacuten la recieacuten creada lista contendraacute todos los nombres que aparecen maacutes de una vez en la lista original (veacutease figura 216) Muchos de estos nombres estaraacuten repetidos numerosas veces pero puede filtrar faacutecilmente esta nueva lista de nuevo utilizando el filtro avanzado aunque esta vez seleccionando la opcioacuten Soacutelo los registros uacutenicos (veacutease figura 217)

Esto le proporcionaraacute un listado de nombres que aparecen en la lista maacutes de una vez

100 Excel Los mejores trucos

iquestaacutej Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana

Ojx] figt x

A2 f =CQNTARSI($At5$A$2QAB)gt1

4) bullbullbull - ^ g

H 1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

Criterio

IVERDADEROl

Nombres

David

Alex

Ana

Marta

Juan

Santos

Laida

Mar

Luis

Marta

David

Juan

Antonio

Mar

Alex

Nombres David Alex Marta Juan Mar Marta David Juan Mar Alex

Accioacuten

f Filtrar la lista sin moverla a otro lugar

(bull iexclCopiar a otrolugar]

JpoundIacute

Rango de la lista j$A$4$A$500 3 Rango de criterios ]$A$1$A$2

Copiar a |$C$4

Soacutelo registros uacutenicos

Aceptar

H 4 bull H Hoja2 Hoja3 Hoja4 Hoja5 Hojaoacute Hoja X H o J a 8 ir

Figura 216 Usar el filtro avanzado para extraer los nombres de una lista en la que aparecen maacutes de una vez

A B C D

1 Criterio

2 FALSO

3

4 Nombres Nombres Nombres

5 David David David

6 Alex Alex Alex

7 [Ana Marta Marta

8 Marta Juan Juan

9 Juan Mar Mar

10 Santos Marta

11 Laida David

12 Mar Juan

13 Luis Mar

14 Marta Alex

15 David

16 Juan

17 Antonio

18 Mar

19 Alex iexclH 4 bull M Hoja2 Hoja3 Hoja4 HojaS Hojaoacute Hoja

E F | G

l l i W i i i l i S I E ^ ^ Accioacuten

iacute Filtrar la lista sin moverla a otro lugar

ltbull Copiar a otro lugar

Rango de la lista j $c$4 $C$ 14

Rango de criterios j

Copiar a |$D^4

P Soacutelo registros uacutenicos

j Aceptar J Cancel

HojaS H o j a 9 | lt f

X j

3 3 3

raquo 1

H 1 d

laquo-

i nr Figura 217 Usar el filtro avanzado en la lista extraiacuteda de nombres para mostrar cada

uno de ellos solamente una vez

Los usuarios que utilicen el filtro avanzado a menudo se preguntan ^ coacutemo pueden forzar a Excel para que filtre sus datos por el criterio

exacto que han especificado Si el criterio que ha elegido es Juan por

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 101

ejemplo y realiza un filtro avanzado en una larga lista de nombres Excel no soacutelo mostraraacute el nombre de Juan sino tambieacuten nombres como Juana Juan Carlos etc en otras palabras cualquier nombre que comience con las letras Juan en ese orden seraacuten considerados como que cumplen el criterio Para obligar a Excel a que encuentre solamente aquellos que coincidan totalmente introduzca el criterio asiacute ==Juan

m g 3 j Crear formatos de nuacutemero personalizados II ^ E C j H E x c e incorpora una serie de formatos para nuacutemeros pero a veces

^ ^ ^ pound ^ B necesitaraacute utilizar un formato de nuacutemero que no esteacute entre los predefinidos Mediante los trucos de este apartado podraacute crear formatos de nuacutemero que puede personalizar de acuerdo a sus necesidades

Antes de probar estos trucos es importante que entienda coacutemo Excel mira los formatos de una celda Lo hace tomando las siguientes secciones (de izquierda a derecha) Nuacutemeros positivos nuacutemeros negativos valores cero y valores de tipo texto Cada una de estas secciones estaacute separada por un punto y coma ()

Cuando cree un formato de nuacutemero personalizados no necesitaraacute especificar las cuatro secciones Es decir si soacutelo incluye dos secciones la primera seraacute utilishyzada tanto para los nuacutemeros positivos como para los valores cero mientras que la segunda se utilizaraacute para los nuacutemeros negativos Si soacutelo incluye una seccioacuten todos los tipos de nuacutemero utilizaraacuten ese formato Los textos se veraacuten afectados por el formato personalizado soacutelo cuando se incluyen las cuatro secciones (utilishyzando la uacuteltima de ellos)

Cuando nos referimos a nuacutemeros no significa que el formato personalizado soacutelo se aplique a datos de tipo numeacuterico Dicho formato tambieacuten se aplicaraacute a los nuacutemeros que esteacuten en formato texto

El formato personalizado de nuacutemero mostrado en la figura 218 es el formato estaacutendar de moneda de Excel que muestra los valores negativos en rojo Lo heshymos modificado antildeadiendo un formato aparte para los valores cero y otro para los textos

Si introduce un nuacutemero positivo como un valor de moneda Excel le daraacute formato automaacuteticamente de forma que incluya un punto como separador de millares seguido de dos lugares decimales Haraacute lo mismo con los valores negatishyvos excepto que los mostraraacute en color rojo Cualquier valor cero no tendraacute el siacutembolo de moneda y soacutelo mostraraacute dos lugares decimales En caso de que introshyduzca un texto en la celda Excel mostraraacute el texto No introduzca texto en vez de el texto que haya introducido el usuario

102 Excel Los mejores trucos

Formato para Formato para Formato para Formatos para nuacutemeros positivos nuacutemeros negativos valores cero texto

$000 [Rojo]$000 000 No escribir texto Figura 218 Secciones del formato de nuacutemero personalizado

Es importante recordar que dar formato al valor de una celda no afecta al verdadero valor que eacutesta contiene Por ejemplo escriba cualquier nuacutemero en la celda A l Luego vaya a FormatogtCeldasgtNuacutemerogtPersonalizado y escriba en el cuadro de texto Tipo la palabra Hola (incluyendo las dobles comillas) Haga clic en Aceptar para cerrar el cuadro de diaacutelogo

Aunque la celda muestre el texto Hola puede ver el verdadero valor contenishydo de la celda seleccionaacutendola y mirando la barra de foacutermulas de la parte supeshyrior de la ventana (o bien pulsando F2) Si fuese a hacer una referencia a esta celda en una foacutermula (por ejemplo =Al + 2 0) la celda resultante tomariacutea el forshymato personalizado Si hiciese referencia a la celda Al jun to a otras muchas celshydas que tuviesen un formato estaacutendar por ejemplo =SUM (Al A10) la celda resultante seguiriacutea tomando el formato personalizado de la celda A l Esto es asiacute porque Excel tiene la delicadeza de dar al resultado el mismo formato que tengan aquellas celdas referenciadas En caso de que eacutestas tuviesen maacutes de un formato si existe alguno personalizado tendraacute preferencia sobre los demaacutes

Esto significa que siempre deberaacute recordar que Excel utiliza el valor real de una celda para hacer sus caacutelculos y no el valor que muestra resultado de un formato en particular Esto puede provocar una sorpresa cuando Excel hace caacutelshyculos basaacutendose en celdas que estaacuten formateadas para no mostrar lugares decishymales o para mostrar solamente unos cuantos por ejemplo Para ver esto por siacute mismo introduzca 14 en la celda Al y 14 en la celda A2 Cambie el formato de ambas celdas para que no muestren lugares decimales y luego introduzca la foacutershymula =A1+A2 en otra celda cualquiera Veraacute que el resultado es 3 ya que Excel ha redondeado el caacutelculo Excel tiene una opcioacuten llamada Precisioacuten de pantalla que encontraraacute en HerramientasgtOpcionesgtCalcular pero debe tener en cuenta que esta opcioacuten cambiaraacute definitivamente los valores almacenados en las celdas a la precisioacuten maacutexima (15 diacutegitos) independientemente del formato incluyendo los lugares decimales en caso de que se muestren Dicho de otra forma una vez que se activa esta opcioacuten no hay posibilidad de volver atraacutes (puede intentarlo pero la informacioacuten extra sobre la precisioacuten se perderaacute)

El formato predeterminado para cualquier celda es General Si introduce un nuacutemero en una celda Excel le asignaraacute el formato numeacuterico que considere maacutes apropiado Por ejemplo si introduce 10 en una celda Excel le daraacute el formato de porcentaje La mayoriacutea de las veces Excel acierta correctamente con el formashyto aunque a veces seraacute necesario cambiarlo

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 103

Cuando utilice la opcioacuten FormatogtCeldas resista la tentacioacuten de forzar la alineacioacuten a la izquierda derecha o al centro para el formato horizontal De forma predeterminada los nuacutemeros se alinean a la derecha y el texto a la izquierda Si deja esto asiacute puede decir en cualquier momento si una celda contiene texto o nuacutemeros como ya vimos en el ejemplo anterior en el que en la celda Al pareciacutea haber un texto pero en realidad conteniacutea un nuacutemero

Cada una de las secciones de un formato dado utiliza su propio conjunto de coacutedigos de formato Estos coacutedigos obligan a Excel a hacer que los datos aparezshycan de una cierta forma Asiacute por ejemplo supongamos que quiere que los nuacuteshymeros negativos aparezcan entre pareacutentesis y por lo demaacutes que cualquier nuacutemero ya sea positivo negativo o cero muestre dos lugares decimales Para hacer esto utilice este formato personalizado

0 0 0_ ( - 0 0 0 )

Si desea que los nuacutemeros negativos aparezcan en rojo utilice este formato

0 0 0 _ [ R o j o ] ( - 0 0 0 )

Observe que hemos utilizado corchetes en el coacutedigo anterior El coacutedigo de forshymato indica a Excel que haga que los nuacutemeros aparezcan en color rojo

Puede utilizar muchos coacutedigos de formato diferentes dentro de las secciones de un formato personalizado Las tablas 2 1a 25 realizadas a partir de la docushymentacioacuten de Microsoft explican estos coacutedigos

Tabla 2 1 Coacutedigos de formato

Coacutedigo de nuacutemero Descripcioacuten

General Formato de nuacutemero general

0 (cero) Muestra los ceros sin valor si un nuacutemero tiene menos diacutegitos que ceros en el formato

Muestra uacutenicamente los diacutegitos significativos y no muestra los ceros sin valor

Antildeade los espacios de los ceros sin valor a cada lado del separador decimal Tambieacuten se puede utilizar para las fracciones que tengan un nuacutemero de diacutegitos variable

Un porcentaje Excel multiplicaraacute el valor por 100 y mostraraacute el caraacutecter despueacutes del nuacutemero

104 Excel Los mejores trucos

Coacutedigo de nuacutemero

(punto)

E+ E- e+ e-

Descripcioacuten

Separador de millares Un punto seguido de un coacutedigo ampliaraacute el nuacutemero por 1000

Notacioacuten cientiacutefica

Tabla 22 Coacutedigos de texto

Coacutedigo de texto

$- + ( ) y espacio en blanco

caraacutecter

texto

_ (subrayado)

Descripcioacuten

Estos caracteres se mos t ra raacuten en el nuacutemero Para mostrar cualquier otro caraacutecter encieacuterrelo entre doshybles comillas o bien precedido de una barra invertida

()

Este coacutedigo muestra el caraacutecter especificado Observe que si escribe ^ amp ~ = lt ogtse colocaraacute automaacuteticamente una barra invertida delante del cashyraacutecter

Este coacutedigo muestra el texto que hay encerrado entre las dobles comillas

Este coacutedigo repite el siguiente caraacutecter en el formato para rellenar el ancho de la columna Soacutelo se admite un asterisco por cada seccioacuten del formato

Este coacutedigo omite el ancho del siguiente caraacutecter Norshymalmente se utiliza asiacute _) para dejar un espacio para un pareacutentesis de cierre en el formato de un nuacutemero positivo cuando el formato para nuacutemeros negativos incluye pareacutentesis Esto permite que tanto valores poshysitivos como negativos se alineen en el punto decimal

Lugar para un texto

Tabla 23 Coacutedigos de fecha

Coacutedigo de fecha Descripcioacuten

m Un mes representado como un nuacutemero sin ceros de reshylleno (1-12)

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 105

Coacutedigo de fecha

mm

m m m

m m m m

d

dd

ddd

dddd

aa

aaaa

Descripcioacuten

Un mes representado como un nuacutemero con ceros de relleno (01-12)

Un mes dado como su abreviatura (ene-dic)

Un mes dado tal cual sin abreviar (enero-diciembre)

Un diacutea representado como un nuacutemero sin ceros de reshylleno (1-31)

Un diacutea representado como un nuacutemero con ceros de reshylleno (01-31)

Un diacutea dado como su abreviatura (lun-dom)

Un diacutea dado tal cual sin abreviar (lunes-domingo)

Un antildeo dado como un nuacutemero de dos diacutegitos (por ejemshyplo 96)

Un antildeo dado como un nuacutemero de cuatro diacutegitos (por ejemplo 1996)

Tabla 24 Coacutedigos de hora

Coacutedigo de hora

h

hh

m

m m

m

m m

AMPM a m p m

Descripcioacuten

Una hora representada como un nuacutemero sin ceros de relleno (0-23)

Una hora representada como un nuacutemero con ceros de relleno (00-23)

Un minuto representado como un nuacutemero sin ceros de relleno (0-59)

Un minuto representado como un nuacutemero con ceros de relleno (00-59)

Un segundo representado como un nuacutemero sin ceros de relleno (0-59)

Un segundo representado como un nuacutemero con ceros de relleno (00-59)

Hora en formato del reloj de 12 horas

106 Excel Los mejores trucos

Tabla 25 Coacutedigos miscelaacuteneos

Coacutedigo miscelaacuteneo Descripcioacuten

[Negro] [Azul] Estos coacutedigos muestran los caracteres en el color espe-[Aguamarina] cificado Observe que n puede ser un valor entre 1 y [Verde] [Magenta] 56 y se refiere al eneacutesimo color de la paleta [Rojo] [Blanco] [Amarillo] [Color n]

[Condicioacutenvalor] Las condiciones pueden ser lt gt = gt = lt= oacute o mientras que el valor puede ser cualquier nuacutemero Un formato de nuacutemero puede contener hasta dos condishyciones

Observe en particular el uacuteltimo tipo de coacutedigos de formato de la tabla 25 es decir los operadores de comparacioacuten Supongamos que desea un formato de nuacuteshymero personalizado del tipo de 000_ [Rojo](-000) para mostrar los nuacutemeros negativos en color rojo y entre corchetes pero solamente si el nuacutemero es menor que -100 Para conseguir esto tendriacutea que escribir el formato de esta forma

0 0 0 _ [ R o j o ] [ lt - 1 0 0 ] ( - 0 0 0 ) 0 0 0

Los coacutedigos de formato [Rojo][lt-l00](-000) colocados en la seccioacuten para nuacuteshymeros negativos hacen que esto sea posible Utilizando este meacutetodo jun to con el formato condicional puede doblar el nuacutemero de formatos condicionales disponishybles de tres a seis

A menudo los usuarios desean mostrar el siacutembolo del euro como una palashybra Para conseguir eso utilice el siguiente formato personalizado

0 e u r o s con 00 c eacute n t i m o s

Este formato obliga a que un nuacutemero introducido como 5525 se muestre como 55 euros con 25 ceacutentimos Tambieacuten podriacutea utilizar un formato condicional para mostrar las palabras Bajo En la media o Alto dependiendo del nuacutemero introducido Para ello utilice este simple formato

[ lt l l ] M B a j o M 0 [ gt 2 0 ] A l t o 0 E n l a m e d i a 0

Observe el uso del Esto hace que se repita el siguiente caraacutecter en el formato para rellenar el ancho de la columna de forma que los textos Bajo En la meshydia o Alto se alinearaacuten forzosamente a la derecha mientras que el nuacutemero quedaraacute a la izquierda

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 107

Antildeadir maacutes niveles de Deshacer a Excel Todos estamos familiarizados con la maravillosa caracteriacutestica de Deshacer de Excel que permite a los usuarios deshacer aquellas acciones que desee en caso de equivocacioacuten Por desgracia el nivel predeterminado de cambios que se pueden deshacer es tan soacutelo de 16 Con este truco podemos cambiar el registro de forma que podamos deshacer hasta 100 equivocaciones

Cuando utiliza la caracteriacutestica Deshacer de Excel y alcanza el nuacutemero de 16 acciones el primer deshacer es reemplazado por el nuacutemero 17 y asiacute sucesivashymente Ademaacutes en cuanto guarde el libro toda la lista de acciones a deshacer se elimina coloque se pierde el historial de acciones Esto es asiacute porque se supone que a pulsar Guardar estaacute indicaacutendole a Excel que estaacute de acuerdo con los camshybios realizados y que por lo tanto no tiene sentido deshacer nada

Probablemente haya descubierto que en ocasiones poder deshacer tan soacutelo en vez de tener que aguantar esto puede cambiar este comportamiento modifishycando el registro algo que soacutelo funciona en Windows Para ello lo primero que hay que hacer es cerrar Excel Luego vaya a lniciogtEjecutar y en el cuadro de texto escriba Regeditexe Luego haga clic en Aceptar Cuando se abra el Editor del registro despliegue la carpeta HKEY_CURRENT_USER Luego despliegue la carpeta Software luego Microsoft Office y por uacuteltimo la carpeta 100 (esta uacuteltishyma carpeta depende de la versioacuten de Office que tenga En este caso la carpeta 110 es la correspondiente a Excel 2002) A continuacioacuten despliegue la carpeta Excel y finalmente abra la carpeta Options

Ahora v a y a a EdicioacutengtNuevogtValor DWORD i n t r o d u z c a la p a l a b r a UndoHistory y pulse Intro Luego haga doble clic sobre el elemento que acaba de crear seleccione el botoacuten de opcioacuten Decimal y a continuacioacuten escriba en el cuadro de texto un valor mayor que 16 y menor que 100

En general disponer de 100 acciones para deshacer seraacute suficiente para la mayoriacutea de los usuarios aunque el problema de que la opcioacuten Deshacer se pierda una vez guardada la hoja seguiraacute ocurriendo

H Crear listas personalizadas Siacute antildeade una lista personalizada a Excel podraacute escribir el primer elemento de la lista arrastrarlo utilizando el recuadro de propagacioacuten y ver coacutemo la lista se rellena automaacuteticamente

Una de las funciones maacutes populares que tiene Excel para ahorrar trabajo es la posibilidad de incrementar no solamente nuacutemeros sino tambieacuten algunos textos automaacuteticamente Normalmente cuando utiliza el recuadro de propagacioacuten esshycribe el primer elemento y luego lo utiliza para rellenar las celdas con los si-

uuml

108 Excel Los mejores trucos

guientes elementos de la lista De esta forma puede crear faacutecilmente su propia lista personalizada con aquellos elementos utilizados maacutes a menudo

La forma maacutes flexible de crear una lista personalizada es introducir sus conshytenidos en un rango de celdas Por ejemplo digamos que tiene una lista de 100 nombres de empleados Introduzca cada nombre comenzando por la celda Al y terminando en la celda Al 00 y luego ordenaacutendola si es necesario A continuashycioacuten seleccione HerramientasgtOpciones y en la pestantildea Listas personalizadas haga clic en el cuadro de texto Importar lista desde las celdas Utilizando el cursor del ratoacuten haga clic en la celda Al y arraacutestrelo hasta la celda Al 00 y luego haga clic en el botoacuten Importar Llegados a este punto la lista personalizada estaraacute disposhynible para todos los libros con los que se trabaje en este mismo ordenador

S Si la lista estaacute ordenada y desea que esteacute colocada de arriba a abajo encontraraacute maacutes sencillo ordenarla de Z a A en caso de que la lista original estuviese ordenada al reveacutes

TRUCO Subtotales en negritas de Excel iquestNo seriacutea muy interesante si pudiese identificar los subtotales en sus hojas de caacutelculo de forma que los pudiera encontrar faacutecilmente Con los trucos de este apartado podraacute hacerlo

Cuando estaacute trabajando con una hoja de caacutelculo que contiene subtotales creashydos a partir de la opcioacuten DatosgtSubtotales eacutestos pueden ser muy difiacuteciles de idenshytificar haciendo que la hoja de caacutelculo no pueda leerse con facilidad Esto es especialmente cierto cuando utiliza esos Subtotales en una tabla de datos que tiene muchas columnas

Normalmente los subtotales resultantes aparecen en la parte derecha mienshytras que sus encabezados asociados se situacutean en la primera columna Dado que los valores de esos subtotales no aparecen en negritas puede ser difiacutecil de alinearshylos visualmente con sus encabezados de fila Puede hacer que sea mucho maacutes sencillo leerlos siacute aplica un formato negritas a esos valores

Para probar este problema introduzca algunos datos de forma similar a los que se muestran en la figura 219

Ahora antildeada los subtotales seleccionando la opcioacuten DatosgtSubtotales aceptando los valores predeterminados del cuadro de diaacutelogo y haciendo clic en Aceptar

En la figura 220 los encabezados de los subtotales estaacuten en negritas pero sus resultados asociados no Dado que esta tabla soacutelo tiene dos columnas no resulta tan difiacutecil leer y encontrar las cantidades correspondientes a dicho subtoshytales

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 109

A 1 Trimestre 2 Primero 3 Primero 4 Segundo 5 Segundo 6 Segundo 7 Tercero 8 Tercero 9 Tercero

iacute 10 11

B Coste $1000 $2000 $1000 $1000 $1000 $1500 $1000 $2500

C

Figura 219 Datos de una hoja de caacutelculo antes de antildeadir los subtotales

r 2 3 - A

I bull 1 Trimestre 1 [ bull bull 2 Primero I J bull 3 Primero 1 - 4 Total trimestrel

5 Segundo 6 Segundo 7 Segundo

1 - 8 Total trimestre2 9 iexclTercero

bull 10 Tercero bull 11 Tercero

1 - 12 Total trimestre3 13 Total finil 14 15

a Coste $1000 $2000 $3000 $1000 $1000 $1000 $3000

11500 | $1000 $2500 $5000 $11000

C

Figura 220 Datos de la hoja de caacutelculo despueacutes de que se hayan aplicado los subtotales

Sin embargo cuantas maacutes columnas tenga la tabla maacutes difiacutecil seraacute encontrar visualmente esos subtotales Puede solucionar este problema utilizando el forshymato condicional de Excel Usando la tabla de la figura 219 como ejemplo prueshybe esto antes de antildeadir los subtotales Seleccione las celdas Al B9 aseguraacutendose de que la celda Al sea la activa Entonces seleccione FormatogtFormato condicioshynal luego elija la opcioacuten Foacutermula del cuadro de lista desplegable y antildeada la sishyguiente foacutermula

= DERECHA ( $ A 1 5 ) = T o t a l

Ahora haga clic en el botoacuten Formato vaya a la pestantildea Fuente y seleccione como estilo de fuente la opcioacuten negrita Haga clic en Aceptar dos veces hasta cerrar los dos cuadros de diaacutelogo

La parte maacutes importante de la foacutermula es la utilizacioacuten de una referencia absoluta de la columna ($A) y de una referencia relativa de la fila (1) Como empezoacute la seleccioacuten desde la celda A l Excel cambiaraacute automaacuteticamente la foacutershymula para cada celda Por ejemplo las celdas A2 y B2 contendraacuten la foacutermula de formato condicional = DERECHA ($A2 5) = T o t a l y las celdas A3 y B3 tenshydraacuten = DERECHA ( $ A 3 5 ) = T o t a l

110 Excel Los mejores trucos

Ahora antildeada los subtotales y veraacute coacutemo se parecen a los que se muestran en la figura 2 21

I 1 2 3 bull A B 1 C | 1 Trimestre 2 Primero 3 Primero 4 Total tiimestiel 5 Segundo 6 Segundo 7 Segundo 8 Total trimestre2 9 Tercero 10 Tercero 11 Tercero 12 Total triexclmestre3 13 Total final

Coste $1000 $2000 $3000 $1000 $1000 $1000 $3000 $1500 $1000 $2500 $5000 $11000

| 15 |

Figura 221 Datos de la hoja de caacutelculo despueacutes de haber dado formato a los subtotales

Una uacuteltima cosa que debe recordar es que si elimina los subtotales no se volveraacute a aplicar la fuente en negrita

El truco sobre el truco

El uacutenico inconveniente que puede surgir con este meacutetodo es que el Total final aparezca con el mismo estilo que los subtotales Seriacutea interesante que el Total final tuviese un formato diferente de forma que resaltase de los subtotales y pudiera ser identificado maacutes faacutecilmente Utilizando el mismo ejemplo podemos hacer esto faacutecilmente

Con los mismos datos seleccione las celdas A1B9 aseguraacutendose de que la celda Al sea la activa Entonces seleccione FormatogtFormato condicional elija la opcioacuten Foacutermula del cuadro de lista desplegable e introduzca la siguiente foacutershymula

=$A1= Total f i n a l

Haga clic en el botoacuten Formato y luego vaya a la pestantildea Fuente y seleccioshyne como estilo la fuente en negrita Seleccione tambieacuten la opcioacuten Simple del cuashydro de lista desplegable Subrayado haga clic en Aceptar y de nuevo otra vez en Aceptar para cerrar todos los cuadros de diaacutelogo

A continuacioacuten seleccione la opcioacuten DatosgtSubtotales acepte las opciones predeterminadas y haga clic en Aceptar Ahora la hoja de caacutelculo deberiacutea tener el aspecto de la que se muestra en la figura 222

Puede utilizar cualquier formato que desee para conseguir que los subtotales sean maacutes sencillos de identificar

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 111

_ _ A B l C 1 [ bull 1 Trimestre Coste

[ bull 2 Primero $1000 IM bull 3 Primero $2000

- 4 Total trimestrel $3000 I bull 5 Segundo $1000

|| | bull 6 Segundo $1000 NI bull 7 Segundo $1000

- 8 Totaiacute trimestrel $3000 [ bull 9 Tercero $1500

bull 10 Tercero $1000 NI bull 11 Tercero $2500 j - 12 Total trimestre $5000

13 Total final $11000 14

l 15 I Figura 222 Datos de la hoja de caacutelculo con un total final maacutes resaltado

BSE1 Convertir las foacutermulas y funciones de Excel a valores ^ H La mayoriacutea de las hojas de caacutelculo de Excel contienen foacutermulas Pero a ^H veces desearaacute que solamente el resultado de una foacutermula quede

almacenado en una celda en vez de dejar la foacutermula que haraacute que los resultados se modifiquen cada vez que las celdas a las que haga referencia lo hagan

Puede hacer esto manualmente de dos maneras o tambieacuten puede utilizar una macro que haga el trabajo de forma automaacutetica Veamos primeramente los meacuteshytodos manuales

Utilizar Pegado especial

Puede copiar los resultados de una foacutermula y dejarla tal cual en su ubicacioacuten original utilizando la herramienta Pegado especial de Excel Supongamos que sus foacutermulas estaacuten en las celdas A1A100 Seleccione este rango luego seleccione EdicioacutengtCopiar y entonces seleccione la celda inicial en la que quiere duplicar los resultados Ahora vaya a EdicioacutengtPegado especial y seleccione la opcioacuten Valores Haga clic en Aceptar

Utilizar Copiar aquiacute soacutelo valores

Tambieacuten puede copiar los resultados de una foacutermula y dejar las foacutermulas orishyginales en su lugar utilizando el menuacute contextual que muchos usuarios ni sishyquiera saben que existe

Seleccione el rango de foacutermulas y haga clic con el botoacuten derecho sobre el borde derecho o izquierdo de la seleccioacuten (excepto en el pequentildeo recuadro de la esquina inferior derecha que sirve para la propagacioacuten) Manteniendo pulsado el botoacuten

112 Excel Los mejores trucos

derecho del ratoacuten (o haciendo clic mientras mantiene pulsada la tecla Control en Macintosh) arrastre la seleccioacuten a su destino suelte el botoacuten del ratoacuten y selecshycione en el menuacute contextual que aparece la opcioacuten Copiar aquiacute soacutelo valores Tambieacuten puede sobrescribir las foacutermulas originales con sus propios valores Para ello seleccione el rango de foacutermulas y haga clic con el botoacuten derecho del ratoacuten sobre el borde derecho o izquierdo de la seleccioacuten (de nuevo en cualquier lugar excepto en el recuadro de propagacioacuten) Mientras mantiene pulsado el botoacuten del ratoacuten arrastre la seleccioacuten una columna hacia la derecha o hacia la izquierda y luego vuelva al rango original soltando el botoacuten del ratoacuten y seleccionando la opcioacuten Copiar aquiacute soacutelo valores tal y como se muestra en la figura 223

I B Micros oftE

bull-iquesta] Archivo

J J Arial

A1

I 1 bull 2 i 3

4 5 8 7 8 9 10 11 12 13 14 15 16 17 18

d

A

laquoce - Librolxls fuumlT Edicioacuten Ver Insertar Formato

3

2 4 8 8

10 10

I

19

Arrastre ias celdaspra

j -eacute JL $ uuml - 10 - U M

f =B1C1 B C

1 2 3 4 5

L-

Mover aquiacute

Copiar aquiacute

w HHHHHHBHBS^^^ Herramientas Datos Ventana

aacute - J

i

2 2 2 2 2

i

Copiar aquiacute soacutelo como valores

Copiar aquiacute soacutelo como formatos

Crear viacutenculo aquiacute

Crear hiperviacutenculo aquiacute

Cancelar

^ -gt - B aacute E

M m ~j$ -| ooo euro osect

D E i F

f

H o j a l l | lt |

icrtradebdquomtradetradeJ Suma=42

~ lnixi raquo _ amp X i

$1 iacute l M ^ i 100 ^ j |

bull- - - gtT A ^ i G H - 1

mdash 1

i bull i r NUM

Figura 223 Menuacute contextual de acceso raacutepido

Utilizar una macro

Si con frecuencia convierte celdas que contienen foacutermulas y funciones a sus valores resultantes puede utilizar esta simple macro

Sub SoloValores( ) Dim rRange As Range

On Error Resume Next

Set rRange = ApplicationInputBox(Prompt=Seleccione las foacutermulas Title=SOacuteLO VALORES Type=8)

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 1 t3

If rRange Is Nothing Then Exit Sub rRange = rRangeValueacute

End Sub

Para utilizar esta macro vaya a HerramientasgtMacrogtEditor de Visual Basic (AltOpcioacuten-Fll) y seleccione lnsertargtMoacutedulo para insertar un moacutedulo estaacutendar Entonces escriba el coacutedigo anterior directamente dentro de la ventana del moacutedushylo Cierra esta ventana para volver a Excel y guardar los cambios Ahora seleccioshyne HerramientasgtMacrogtMacros (Alt Opcioacuten-F8) seleccione la macro que acabamos de crear SoloValores y haga clic en el botoacuten Opciones negr i t a s para asignarle una tecla de acceso raacutepido Cuando utilice la macro apareceraacute un cuashydro de diaacutelogo que le pediraacute que seleccione el rango que contiene las foacutermulas El rango que seleccione apareceraacute automaacuteticamente como una direccioacuten dentro del cuadro de diaacutelogo y en ese momento todo lo que debe hacer es realizar la conversioacuten haciendo clic en Aceptar

Antildeadir datos automaacuteticamente a una lista de validacioacuten La funcioacuten de validacioacuten de Excel es estupenda pero hay algo clave que no es capaz de hacer (al menos sin el siguiente truco) antildeadir automaacuteticamente una nueva entrada a la lista que estaacute siendo utilizada como origen de una lista de validacioacuten

Si ha utilizado la validacioacuten ya sabraacute que es una caracteriacutestica m u y intereshysante Quizaacute es maacutes impresionante su capacidad de antildeadir una lista a cualquier celda desde la cual el usuario podraacute seleccionar un elemento iquestNo seriacutea estupenshydo si cuando introdujese un nuevo nombre en una celda con validacioacuten Excel automaacuteticamente antildeadiese dicho valor a la lista Esto es posible gracias al sishyguiente truco Supongamos que tiene un listado de nombres en el rango de celshydas Al A10 como en la figura 224

[ A 1 Carlos Martiacutenez

2 Antonio Garciacutea 3 Mana Solans 4 Sergio Velase o 5 Silvia Rodriacuteguez 6 Aacutengel Blanco 7 Esther Carrasco 8 Javier Peacuterez 9 Ana Rebollo 10 Guillermo Ortega 11 12

I 13

B I

Figura 224 Configuracioacuten del libro de Excel para la lista de validacioacuten

114 Excel Los mejores trucos

Estos nombres representan los empleados de una empresa No es de extrantildear que deban antildeadirse los nuevos empleados a dicha lista pero por ahora la uacutenica forma de hacer esto es antildeadiendo los nuevos nombres al final de la lista y luego seleccionaacutendolos en la celda con validacioacuten

Para superar esta limitacioacuten siga estos pasos En la celda Al 1 introduzca la siguiente foacutermula y coacutepiela hacia abajo hasta la fila 20 tal y como se muestra en la figura 225 (observe la referencia relativa a A10)

=SI (0 ($D$l=raquo CONTARSI ($A$1A10$D$1) ) x $D$1)

A 1 Carlos Martiacutenez 2 Antonio Garciacutea 3 Mariacutea Solaris 4 Sergio Velasco 5 Silvia Rodriacuteguez 6 Aacutengel Blanco 7 Esther Carrasco

i 8 Javier Peacuterez 9 Ana Rehollo 10 Guillermo Ortega 11 X 12 x 13 x 14 x 15 x 16 x 17 x 18 x 19 x 20 x 21

B

Figura 225 Lista junto con la foacutermula antildeadida a las filas Al 1 A20

Ahora seleccione lnsertargtNombregtDefinir y en el cuadro de texto Nombres en el libro escriba MisNombres

En el cuadro de texto Se refiere a introduzca la siguiente foacutermula tal y como se muestra en la figura 226 Luego haga clic en Agregar y posteriormente en Aceptar

=DESREF(Hoj al$A$100CONTARSI (Hoj al$A$Altgtx) 1)

Seleccione la celda DI y luego vaya a DatosgtValidacioacuten Elija la opcioacuten Lista en el cuadro de lista desplegable y en el cuadro de texto Origen escriba ^MisNombres aseguraacutendose de que la casilla de verificacioacuten Celda con lista desplegable esteacute activada

Luego vaya a la pestantildea Mensaje de error y desactive la casilla de verificacioacuten Mostrar mensaje de error si se introducen datos no vaacutelidos Entonces haga clic en Aceptar y veraacute los resultados como se muestran en la figura 227

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 115

Nombres en el libro

~J

J

Agregar

Se refiere a

| =DESREF(Ho ja 1 $A$ 1 0 0 CONTAR SI(Ho ja 1 $A $A lt raquo) 1) ~3 Figura 226 Hacer que la lista sea dinaacutemica

A 1 |Carlos Martiacutenez

iexcl 2 Antonio Garciacutea 3 Mariacutea Solans 4 Sergio Velasco 5 Silvia Rodriacuteguez 6 Aacutengel Blanco 7 Esther Carrasco 8 Javier Peacuterez 9 Ana Rebollo 10 Guillermo Ortega 11 x 12 x 13 x

1 14

B C D | ||Columna1 bull ]

1 1

E

Figura 227 La lista con la validacioacuten antildeadida a la celda DI

Haga clic con el botoacuten derecho en la pestantildea con el nombre de la hoja y selecshycione la opcioacuten Ver coacutedigo

Entonces introduzca el siguiente coacutedigo

Priacutevate Sub Worksheet_Calculate( ) On Error Resume Next

ApplicationEnableEvents = False Range(MisNombres) = Range(MisNombres)Valueacute ApplicationEnableEvents = True

On Error GoTo 0

End Sub

Cierre esta ventana para volver a Excel y guardar los cambios Ahora seleccioshyne la celda DI escriba cualquier nombre que no exista en la lista y pulse Intro Seleccione de nuevo la celda DI y observe la lista veraacute como el nombre ha sido antildeadido automaacuteticamente como puede verse en la figura 228

Si desea antildeadir maacutes de diez nombres a la lista simplemente copie la foacutermula hacia abajo a partir de la fila 20

116 Excel Los mejores trucos

I ~A B c D I uanos Martiacutenez Isitvia Rodriacuteguez ^ iquest lAntonio Garciacutea l | ^ J

I 3 Mariacutea Solans 4 Sergio Velasco 5 Silvia Rodriacuteguez

I 6 Aacutengel Blanco I 7 Esther Carrasco

8 Javier Peacuterez 9 Ana Rebollo 10 Guillermo Ortega 1 1 X

12 x 13 x 14 x

E

Figura 228 La lista despueacutes de antildeadir una nueva entrada en la celda DI

Trucar las caracteriacutesticas de fecha y hora de Excel Las caracteriacutesticas de fecha y hora de Excel son estupendas si crea hojas de caacutelculo sencillas pero pueden causar problemas para proyectos maacutes avanzados Por suerte existen formas de evitar estos problemas

Excel de forma predeterminada utiliza el sistema de fecha 1900 Esto signifishyca que la fecha 1 de enero de 1900 tiene un valor numeacuterico de 1 la fecha 2 de enero de 1900 un valor numeacuterico de 2 y asiacute sucesivamente A estos valores se les llama valores en serie en Excel y permiten utilizar fechas en los caacutelculos

Con las horas ocurre praacutecticamente lo mismo aunque Excel las t rata como fracciones decimales siendo 1 la representacioacuten de 2400 oacute 0000 y por ejemplo 0 75 la representacioacuten de las 1800 ya que esta hora representa los tres cuartos de las 24 horas del diacutea

Para ver el valor numeacuterico de una fecha y o una hora asigne el formato Geshyneral a la celda que contenga dicho valor Por ejemplo la hora y fecha 3 de julio de 2002 150000 tiene un valor numeacuterico de 37440625 siendo el nuacutemero 625 la representacioacuten de la hora y el 3 7440 el nuacutemero de serie para la fecha

Sumar maacutes allaacute de las 24 horas

Puede sumar horas utilizando la funcioacuten SUMA (o simplemente el signo +) De esta forma la funcioacuten =SUMA(A1 A5) seriacutea el resultado total de horas en caso de que dichas celdas tuviesen valores vaacutelidos Sin embargo aquiacute nos enconshytramos un gran problema a menos que se diga lo contrario Excel no sumaraacute maacutes allaacute de las 24 horas Esto es debido a que cuando una hora excede el valor de 24 horas (un valor verdadero de 1) entonces se convierte en un nuevo diacutea y comienza de nuevo Para obligar a Excel a que no pase a un nuevo diacutea despueacutes de las 24 horas puede utilizar un formato de celda de 373055 o bien un formato personalizado de [h]mmss

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 117

Puede utilizar un formato similar para obtener el total de minutos o segunshydos de una hora en particular Para obtener el nuacutemero total de minutos de la hora 2400 por ejemplo asigne el formato [m] a la celda y obtendraacute un resultashydo de 1440 Para obtener el nuacutemero total de segundos utilice un formato persoshynalizado [s] con lo que obtendraacute 86400

Caacutelculos de fecha y hora

Si desea utilizar estos valores reales de hora en otros caacutelculos tenga siempre en mente estos nuacutemeros maacutegicos

60 60

3600 60

24 24

1440 60

86400 24

minutos o 60 segundos

segundos 6 0 minutos

horas

minutos 24 horas

horas 60 minutos 60 segundos

Sabiendo esto encontraraacute mucho maacutes sencillo manipular las horas y las feshychas Eche un vistazo a los siguientes ejemplos para ver a queacute nos referimos (suponiendo que la hora este en la celda Al ) Si tiene el nuacutemero 550 y lo que realmente quiere es 530 o 530 am utilice esto

=Al24

y aplique el formato que sea necesario Si tuvieron que ser las 1730 o las 530 am utilice esto

= ( A l 2 4 ) + 0 5

Para conseguir lo contrario es decir una hora decimal a partir de una hora real utilice esto

Al24

Si una celda contiene la fecha y hora real (por ejemplo 22 de enero de 2003 1536) y soacutelo desea obtener la fecha utilice esto

=ENTERO(Al)

Para obtener solamente la hora utilice esto

=A1-ENTERO(Al)

118 Excel Los mejores trucos

o bien

= R E S I D U 0 ( A 1 1 )

y aplique el formato que sea necesario Para averiguar la diferencia entre amshybas fechas utilice esto

A1-A2

Siendo Al la fecha posterior y A2 la fecha anterior El resultado que obtendreshymos seraacute el nuacutemero de diacuteas transcurridos entre ambas fechas Para que funcione correctamente la celda que contenga este caacutelculo debe tener formato numeacuterico ya que de lo contrario obtendremos un error Si no sabe cuaacutel de las dos fechas es la maacutes antigua puede utilizar las funciones MIN y MAX Por ejemplo para aseshygurarse de que el resultado es el correcto utilice esto

= M A X ( A 1 A 2 ) - M I N ( A l A 2 )

Igualmente cuando trabaje con horas quizaacute desee contar desde una hora inicial a una hora final por ejemplo conteniendo la celda Al el valor 850 pm y la celda A2 el valor 950 am Si calcula la resta de la hora final y la hora inicial (=A2-A1) obtendraacute ya que Excel de forma predeterminada no puede trabajar con horas negativas Para solucionar este problema puede usar uno de estos dos meacutetodos

=MAX(A1A2) -MIN ( A l A2 )

o bien

A1-A 2 + IF ( A 1 gt A 2 1 )

Tambieacuten le puede decir a Excel que antildeada cualquier nuacutemero de diacuteas meses o antildeos a una fecha en particular

=FECHA(ANtilde0(A1)+valorlMES(Al)+valor2DIacuteA(Al)+valor3)

Para antildeadir un mes a una fecha almacenada en la celda A l escriba

= FECHA(ANtilde0(A1) MES (Al ) + 1 DIacuteA ( A l ) )

Excel tambieacuten ofrece algunas funciones adicionales que forman parte del pashyquete de anaacutelisis Para acceder a ellas seleccione la opcioacuten Complementos del menuacute Herramientas Luego haga clic en la casilla de verificacioacuten Herramientas para anaacutelisis para activarla y cuando se le pregunte responda que siacute para instashylarlas A partir de entonces dispondraacute de funciones adicionales tales como DIALAB FINMES NUMDESEMANA etc

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 119

Encontraraacute todas estas funciones dentro de la categoriacutea Fecha y hora del asisshytente para funciones En realidad estas funciones son faacuteciles de utilizar Lo que es difiacutecil es saber que estaacuten disponibles y coacutemo activarlas

Horas y fechas reales

Aveces las hojas de caacutelculo con datos importados (datos que se han introdushycido incorrectamente) acaba mostrando las fechas y las horas como texto y no como nuacutemeros reales Puede solventar esto faacutecilmente en Excel aumentando el ancho de las columnas un poco Para ello seleccione una columna vaya a FormatogtCeldasgtAlineacioacuten y luego cambie la alineacioacuten horizontal a General (que es el formato predeterminado para las celdas) Haga clic en Aceptar y obshyserve cuidadosamente las fechas y las horas Si no estaacuten correctamente alineashydas entonces es porque Excel no sabe que son fechas

Para arreglar esto primero copie una celda vaciacutea y luego seleccione la columshyna daacutendole formato de fecha y o hora Teniendo la columna seleccionada vaya a EdicioacutengtPegado especial seleccione las opciones Valores y Sumar Esto obliga a Excel a convertir cualquier fecha u hora en formato texto a fecha y hora real Puede que necesite cambiar el formato nuevamente Otro meacutetodo tambieacuten sencishyllo es hacer referencia a las celdas de esta forma

=Al + 0

o bien

=A11

iquestUn fallo de fechas

Excel asume de forma incorrecta que 1900 no fue un antildeo bisiesto Esto sigshynifica que el sistema interno de fechas de Excel cree que existioacute el 29 de febrero de 1900 cuando en realidad no fue asiacute Lo maacutes sorprendente es que Microsoft hizo esto de forma intencionada o al menos eso dicen Puede encontrar maacutes informashycioacuten en la direccioacuten httpsupportmicrosoftcomdefault aspxscid=kbEN-USql81370 A continuacioacuten le presentamos algunos viacutenculos interesantes con informacioacuten referente a fechas y horas

bull Coacutemo utilizar fechas y horas en Excel 2000

httpsupportmicrosoftcomdefaultaspxscid=kben-usQ2140946

bull Texto o nuacutemero convertido al formato numeacuterico no deliberado

httpsupportmicrosoftcomdefaultaspxscid=kben-usQ214233

120 Excel Los mejores trucos

bull Horas maacuteximas en Microsoft Excel

httpsupportmicrosoftcomdefault aspxscid=kben-usQ214386

bull Fechas y horas mostradas como nuacutemeros de serie cuando se visualishyzan foacutermulas

httpsupportmicrosoftcomdefault aspxscid=kben-usQ241072

bull Manipular y comprender las configuraciones del cuadro de diaacutelogo Formato de celdas

httpsupportmicrosoftcomdefaultaspxscid=kben-usa264372

bull Coacutemo utilizar fechas y horas en Microsoft Excel

httpsupportmicrosoftcomdefaultaspxscid=kben-us214094

Probablemente el t ratamiento de fechas y horas es uno de los aspectos maacutes confusos de Excel De todas formas con toda esta informacioacuten podraacute entender mejor todos los entresijos en relacioacuten a este tema

CAPIacuteTULO 3

Trucos sobre nombres Trucos 39 a 44

Probablemente la mayor ventaja de utilizar rangos con nombre es que las foacutermulas son mucho maacutes faacuteciles de leer y comprender no soacutelo para usted sino para todos aquellos que tengan que trabajar con sus hojas de caacutelculo Al utilizar rangos con nombres (una de las caracteriacutesticas maacutes faacuteciles y uacutetiles de Excel) puede seleccionar un rango de celdas y darle un hombre especiacutefico Llegados a ese punto puede hacer una referencia a ese rango utilizando el nombre en vez de su direccioacuten A pesar de que los rangos con nombre son una caracteriacutestica m u y potente podemos ir maacutes allaacute de su uso estaacutendar mediante algunos meacutetodos

Usar direcciones de datos por el nombre Aunque los nuacutemeros de celda son el fundamento de todo lo que hace Excel resulta mucho maacutes sencillo recordar nombres como por ejemplo Nuacutemero y cantidad de elementos que recordar los nuacutemeros de celdas como por ejemplo A1A100 Excel nos permite hacer esto de forma muy sencilla

Excel utiliza la misma teacutecnica para definir nombres de celdas y de rangos mediante el Cuadro de nombres que estaacute situado en la parte superior izquierda de la ventana jun to a la barra de foacutermulas Para dar nombre a una celda selecshycioacutenela escriba el nombre que desee darle en el Cuadro de nombres (veacutease figura 31) y pulse Intro Para dar nombre a un rango de celdas seleccione primero el rango escriba el nombre que desee darle en el Cuadro de nombres y luego pulse la tecla Intro

La lista desplegable que aparece a la derecha del Cuadro de nombres le permite buscar nombres de rangos y celdas que ya esteacuten almacenados Si selecciona ma-

m

124 Excel Los mejores trucos

nualmente un rango que ya tuviese un nombre apareceraacute dicho nombre en lushygar de la referencia al rango de celdas

IffM^^c^i^N^^w^MHMBPiMiMii i i lili iiiiPiiiwn

laquo^j Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana - amp X j

J J d Jraquo _J J J yen iquestgt - J - gg 2 - i i kg ktgt | j Anal - io ^ N ^ $ = = = ^ c IF _ - -^ - AT pound

MiCeldaFavorita bull pound 1000000 1 r mdash A B T ~C D | mdash =

1 [Celda muy interesantemdash -gt 1 1000000 euro1 mdash | 2

3 4 5 6 7 8 9 _J 10 11 12 13

14 |llt 4 bull w Ho ja l Ho ja2 Ho ja3 | ltraquo | j bull | f| Listo NUM 1

Figura 31 Dar el nombre MiCeldaFavorita a una celda

En las foacutermulas puede utilizar estos nombres en vez de los identificadores de celdas o rangos Si por ejemplo le dio el nombre fecha a la celda E4 podriacutea escribir la foacutermula =f echa en vez de =E4 De forma similar si creoacute el nombre cantidad para el rango de celdas A3A10 y quisiera obtener el total de los valoshyres almacenados en ellas la foacutermula podriacutea ser =SUMA ( c a n t i d a d ) en vez de = SUMA(A3A10)

Dado que las hojas de caacutelculo se van haciendo maacutes y maacutes grandes e intrincashydas resulta vital utilizar nombres de celdas y rangos para hacerlas manejables

Utilizar el mismo nombre para rangos en diferentes hojas de caacutelculo A veces resulta conveniente utilizar el mismo nombre para los datos que se encuentran en el mismo lugar pero en diferentes hojas dentro de un mismo libro Ello requiere de unos cuantos pasos adicionales para que pueda funcionar

Normalmente cuando da nombre a un rango eacuteste se asigna a nivel del libro lo que significa que un nombre se refiere a un rango especiacutefico de una hoja en particular que esteacute situada dentro de un libro Una vez asignado el nombre no

3 Trucos sobre nombres 125

puede ser utilizado otra vez para representar un rango que esteacute en otra hoja Sin embargo existe una forma de solucionar esto

Supongamos que tiene un libro que contiene tres hojas cuyos nombres son Hojal Hoja2 y Hoja3 Desea tener un rango con el nombre MiRango (podriacutea ser cualquier otro nombre) que haga referencia al rango A1A10 de la Hojal en caso de estar situados en ella al rango Al A10 de la Hoja2 en caso de estar situashydos en ella etc

Para conseguir esto active la Hojal seleccione el rango Al A10 y luego haga clic en el Cuadro de nombres como hicimos en el t ruco anterior Escriba Hojal IMiRango y luego pulse la tecla Intro Haga lo mismo para la Hoja2 y Hoja3 escribiendo Hoja2 IMiRango y Hoja3IMiRango respectivamente Ahora active cualquier hoja y haga clic en la lista desplegable del Cuadro de nombres Deberiacutea ver tan soacutelo un elemento con el nombre MiRango Seleccioacutenelo y veraacute como se selecciona directamente el rango A1A10 Ahora active cualquier otra hoja y haga lo mismo

Observaraacute como se selecciona automaacuteticamente el rango A1A10 de la hoja que tenga activa Esto es posible porque hemos introducido el nombre de la hoja seguido del s igno de admi rac ioacuten an tes del n o m b r e del r a n g o Si va a lnsertargtNombregtDefinir soacutelo veraacute un nombre aquel que se refiere a la hoja que se encuentra activa en este momento

En caso de que el nombre de la hoja incluya espacios no podraacute hacer la refeshyrencia simplemente escribiendo Hoja 1 IMiRango Tendraacute que escribir Hoja 1IMiRango es decir escribiendo comillas simples antes y despueacutes del nombre de la hoja De hecho podriacutea utilizar esas comillas simples aunque el nombre de la hoja no contuviese espacios lo cual siempre es una buena idea para usar siempre la misma nomenclatura

Tambieacuten puede utilizar un nombre de rango con referencias relativas De forshyma predeterminada los nombres de rango son absolutos pero no tiene porqueacute ser asiacute Intente lo siguiente

Seleccione la celda A l l de cualquier hoja y luego vaya a lnsertargtNombregt Definir En el cuadro de texto Nombres en el libro escriba MisNuacutemeros En el cuadro de texto Se refiere a escriba =A$1 A$10 y luego haga clic en Agregar y en Aceptar Ahora introduzca el nuacutemero 1 en la celda A l Seleccioacutenela y coloque el cursor del ratoacuten sobre el pequentildeo recuadro situado en la esquina inferior dereshycha que se utiliza para propagar Haga clic en eacutel y mientras mantiene pulsada la tecla Control arrastre el cursor hasta la celda A10

Al mantener pulsada la tecla Control mientras que se propaga una celda con un uacutenico nuacutemero Excel incrementa dicho nuacutemero de 1 en 1

Ahora introduzca un 1 en la celda Bl y propaguacuteela hasta la celda B10 pero esta vez sin mantener pulsada la tecla Control

126 Excel Los mejores trucos

Estando en la celda Al 1 introduzca la siguiente foacutermula

=SUMA(MisNuacutemeros)

En la celda Bl 1 introduzca esta foacutermula

= SUMA(Mi sNuacuteme r o s )

Deberiacutea obtener los resultados 55 y 10 respectivamente Esto es debido a que la celda A l l estaba activa cuando seleccionoacute lnsertargtNombregtDefinir y asignoacute al nombre de rango la referencia A$l A$10 que es una columna relativa y una fila absoluta

gt El signo del doacutelar ($) obliga a que cualquier rango sea absoluto

Cuando utilizamos el nombre MisNuacutemeros en una foacutermula siempre haraacute referencia a las 10 celdas que se encuentran inmediatamente por encima de la foacutermula Si escribimos la foacutermula =SUMA (MisNuacutemeros) en la celda Al 1 de cualshyquier otra hoja seguiraacute haciendo referencia a las celdas A1A10 de la hoja que estaba activa cuando creoacute el nombre del rango

Supongamos que desea simplificar la suma de las 10 celdas que hemos menshycionado anter iormente Seleccione la celda A l l de cualquier hoja Vaya a lnsertargtNombregtDefinir y escriba en el cuadro de texto de la parte superior MiSuma Luego en el cuadro de texto Se refiere a escriba lo siguiente

=SUMA(A$1A$10)

Haga clic en Agregar y luego en Aceptar Ahora introduzca el nuacutemero 1 en la celda A l seleccioacutenela de nuevo coloque el cursor del ratoacuten sobre el cuadro de propagacioacuten y mientras mantiene pulsada la tecla Control arraacutestrelo hasta la celda A10 Una vez hecho esto introduzca un 1 en la celda Bl y propaguacuteelo hasta la celda B10 pero esta vez sin mantener pulsada la tecla Control

En la celda Al 1 introduzca la siguiente foacutermula

=MiSuma

En la celda Bl 1 introduzca la foacutermula

=MiSuma

Obtendraacute los mismos resultados que la vez anterior pero esta vez sin que sea necesario utilizar la funcioacuten SUMA Mezclar las referencias absolutas que relatishyvas y juntando algunas funciones puede ser m u y uacutetil para ahorrarse gran cantishydad de trabajo

3 Trucos sobre nombres 127

QnKjQI Crear funciones personalizadas utilizando nombres M ^ V ^ w ^ l Aunque hacer referencia a datos por su nombre es muy uacutetil a veces lo seriacutea

K l f l maacutes si pudieacutesemos almacenar un valor constante o incluso una foacutermula especialmente si ha estado creando funciones personalizadas en VBA

Supongamos que tiene un impuesto del 10 que se necesita utilizar a lo larshygo de todo el libro para algunos caacutelculos En vez de tener que introducir el valor 10 (01) en cada una de las foacutermulas que aplican este impuesto podriacutea introshyducir la palabra Impuesto y que Excel supiese automaacuteticamente que debe sustishytuirlo por el valor 0 1 Veamos coacutemo puede hacerse esto

Seleccione lnsertargtNombregtDefinir En el cuadro de texto Nombres en el libro escriba Impuesto y en el cuadro de texto Se refiere a introduzca = 0 1 Luego haga clic en Aceptar

Ahora puede introducir cualquier foacutermula en una celda y en vez de antildeadir 10 como parte del caacutelculo puede sustituirlo por la palabra Impuesto Probableshymente una de las grandes ventajas de utilizar este meacutetodo es que si tiene que incrementar o de incrementar el impuesto y las foacutermulas deben reflejar dicho cambio simplemente basta con ir a lnsertargtNombregtDefinir seleccionar el nomshybre Impuesto y luego modificarlo convenientemente

Para dar un paso maacutes allaacute en este concepto puede utilizar las foacutermulas con los rangos definidos en Se refiere a en vez de utilizar direcciones de celdas o valores constantes Supongamos que desea crear un nombre que cuando se inshytroduzca en una celda devuelva automaacuteticamente la SUMA de las 10 celdas que se encuentran por encima Seleccione la celda Al 1 de cualquier hoja y luego vaya a lnsertargtNombregtDefinir En el cuadro de texto Nombres en el libro escriba Toshytal y en el cuadro de texto Se refiere a escriba lo siguiente

=SUMA(A1A10)

Luego haga clic en Agregar y en Aceptar Introduzca cualesquiera 10 nuacutemeros en cualquier columna empezando en la

fila 1 Ahora vaya a la fila 11 de la misma columna y escriba lo siguiente

=Total

El nombre Total automaacuteticamente devolveraacute la SUMA de los 10 valores que haya introducido en el rango A1A10 Si desea crear una foacutermula similar a la anterior pero que no esteacute restringida a solamente 10 celdas sino que haga refeshyrencia a todas las celdas que se encuentren por encima de la fila en cuestioacuten siga estos pasos

Seleccione la celda BU y luego vaya a lnsertargtNombregtDefinir Seleccione el nombre Total

128 Excel Los mejores trucos

Vaya al cuadro de texto Se refiere a que deberiacutea contener el tex to =SUMA (Bl B l 0 ) Esto le permite crear foacutermulas con nombre En otras palabras como no hizo referencias absolutas para columna en el nombre original Total siempre haraacute referencia a la columna en la que se utilice el nombre

Ahora haga clic en el cuadro de texto Se refiere a y cambie la foacutermula por la siguiente

=SUMA(B$1B10)

Haga clic en Agregar y luego en Aceptar

Seleccione cualquier fila de cualquier columna que no sea la fila 1 e introduzshyca = T o t a l con lo que obtendraacute automaacuteticamente la SUMA de todas las celdas que se encuentran por encima independientemente de cuantas filas haya Esto se debe a que ha vinculado la fila nuacutemero 1 utilizando una referencia absoluta dejando la referencia a la celda B10 como relativa lo que significa que siempre terminaraacute en la celda inmediatamente superior a donde se introduzca la foacutermula = T o t a l

Combinando este truco con una de las caracteriacutesticas estaacutendar (aunque poco conocida) de Excel el meacutetodo de la interseccioacuten es posible crear funciones de buacutesqueda sofisticadas Si no conoce coacutemo funciona el meacutetodo de la interseccioacuten a continuacioacuten mostramos un pequentildeo ejemplo sobre su uso

En la celda A l introduzca el encabezado Nombre en la celda Bl Pagar y en la celda Cl Tiacutetulo Introduzca Juan en la celda A2 y Antonio en la celda A3 Introduzca 10 en la celda B2 y 20 en la celda B3 Introduzca Sr en la celda C2 y Dr en la celda C3 Ahora seleccione el rango A1C3 y luego vaya a lnsertargtNombregtCrear Aseguacuterese de que estaacuten activadas las casillas de verificashycioacuten Fila superior y Columna izquierda y luego haga clic en Aceptar

Seleccione cualquier celda que esteacute fuera de ese rango e introduzca = A n t o shyn i o T iacute t u l o Deberiacutea obtener el tiacutetulo correspondiente a la persona que ha inshytroducido

El espacio entre las palabras Antonio y Tiacutetulo es importante ya que r es la forma por la que Excel entiende que se trata de un operador de ^ interseccioacuten

Basaacutendonos en este concepto podemos combinar esta caracteriacutestica con las de foacutermulas con nombre de Excel para conseguir no soacutelo que las hojas de caacutelculo sean maacutes sencillas utilizar sino tambieacuten mucho maacutes sencillas de leer y comprenshyder Supongamos que tiene una tabla configurada en una hoja de caacutelculo de forshyma m u y similar a la que se muestra en la figura 32 y que estaacute utilizando esa tabla para crear los nombres en Excel

3 Trucos sobre nombres 129

mmmmmmmmmmmmmm sj Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana l - S x

j JS y 3 J J A ^ a aacute -iquest iquestgt - laquoo - -- a pound - uuml ti M 1 Arial raquo 10 ^ [ Ntilde ] ^ S E M M -g S| 000 euro o8 1^ _iquest 3raquo A sect1

A1 bull ^ Nombre empleado B

Nombre empleado Carlos Martiacutenez Antonio Garciacutea Mariacutea Solans Sergio Velasco Silvia Rodriacuteguez Aacutengel Blanco Esther Carrasco Javier Peacuterez Ana Rebollo iexclGuillermo Ortega

Tarifa Hora Puesto 1725 Jefe de proyecto 124 Consultor Juacutenior

12 Analista seacutenior 1325 Comercial

98 Administrativo 1185 Programador seacutenior 1545 Representante 181 Jefe de proyecto

14 Coordinador 143 Consultor seacutenior

F-_T

BSCEiSSl- Crear nombres en

Iiexcl7 Ma superior]

W Columna igquierda

f Riacutea inferior

V Columna iquesterecha

j Aceptar sect Cancelar

J

J

bull M H o j a l ^ H o j a 2 H p j a 3 J JltJ 5uma=i384

lf

Figura 32 La tabla y el cuadro de diaacutelogo de Crear nombres

Una vez que cree los nombres para la tabla observaraacute que Excel coloca automaacuteticamente un siacutembolo de subrayado en los espacios situados entre dos o maacutes palabras Esto es debido a que los nombres de los rangos no pueden contener espacios Seleccione lnsertargtNombregtDefinir introduzca TarifaHoraAntonio en el cuadro de texto Nombres en el libro y =Antonio_Garciacutea Tarifa_Hora Luego haga clic en Agregar tal y como se muestra en la figura 33

Ahora en cualquier celda fuera de la tabla introduzca lo siguiente

=TarifaHoraAntonio

La tarifa por hora para Antonio se devolveraacute automaacuteticamente Quizaacute desee experimentar ahora con las intersecciones para ver coacutemo funcioshy

nan de forma oacuteptima en sus proyectos

Crear rangos que se expandan y contraigan Si constantemente necesita actualizar y antildeadir informacioacuten a los datos o si trabaja con graacuteficos y tablas dinaacutemicas desearaacute poder crear rangos dinaacutemicos con nombre que se expandan y contraigan en funcioacuten de los datos

Para entender coacutemo funcionan los rangos con nombre deberiacutea en primer lugar familiarizarse con la funcioacuten DESREF (si es que no lo ha hecho todaviacutea) una de las funciones de buacutesqueda de referencia de Excel

130 Excel Los mejores trucos

^sect] Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana

J J d Jgt _JI J JL iquest iquest - J ^ - J -i - 81

bull bull bull 2iacuteJ ^ 1 000 euro B12 - f

gtli iacute i M bull

B D Nombre empleado Tarifa iquestpound

Carlos Martiacutenez

Antonio Garciacutea

Mariacutea Solans

Sergio Velasco

Silvia Rodriacuteguez

Aacutengel Blanco

Esther Carrasco

Javier Peacuterez

Ana Rebollo

Guillermo Ortega

iSi Nombres en el libro

TarifaHoraAntonio

Guillermo_Ortega Javier_Peacuterez Mariacutea_Solans Nombre_empleado Puesto 5ergio_Velasco 5ilvia_Rodriguez Tarifa Hora

Agregar

|=Antonio_Garciacutea Tarifa_Hora

M i bull bull l H o j a l H o j a 2 H o j a 3 llaquol ir

Figura 33 Buacutesqueda de nombre creada

Comenzaremos con el rango dinaacutemico con nombre maacutes simple aquel que se expandiraacute hacia abajo una uacutenica columna pero solamente tanto como entradas contenga la columna Por ejemplo se la columna A contiene 10 filas continuas de datos el rango dinaacutemico con nombre incorporaraacute el rango Al A10 Siga estos pasos para crear dicho rango

Vaya a lnsertargtNombregtDefinir introduzca MiRango en el cuadro de texto Nombres en el libro y en el cuadro de texto Se refiere a introduzca lo siguiente

=DESREF($A$100CONTARA($A$1$A$10 0)1)

Ahora haga clic en Agregar y luego en Aceptar

Cuando defina el rango para CONTARA evite la tentacioacuten de incluir toda la columna de datos para asiacute no obligar a dicha funcioacuten a contar

^ miles de celdas innecesarias

Teniendo ahora los datos en la columna A este rango con nombre incorporashyraacute todos los datos que se encuentren en filas contiguas comenzando por la celda A l Si desea comprobar el rango dinaacutemico con nombre puede hacerlo de diferenshytes formas

Por desgracia los rangos dinaacutemicos con nombre no estaacuten accesibles a traveacutes del Cuadro de nombres estaacutendar de la parte superior izquierda de la ventana de

3 Trucos sobre nombres 131

Excel Pero siacute puede hacer clic en dicho cuadro escribir el nombre MiRango y pulsar Intro Excel seleccionaraacute automaacuteticamente el rango Por supuesto t amshybieacuten puede utilizar el cuadro de diaacutelogo Ir a yendo a Edicioacutengtlr a (ControlCo-mando-I) escribiendo MiRango en el cuadro de texto y haciendo clic en Aceptar

El rango dinaacutemico con nombre que acaba de crear en el ejemplo anterior conshytiene la funcioacuten CONTARA como paraacutemetro de la funcioacuten DESREF

Recuerde que la funcioacuten CONTARA contaraacute todas las celdas que no esteacuten vaciacuteas Tenga en cuenta que esto tambieacuten incluye las foacutermulas que dichas celdas contenga que puedan estar devolviendo un texto vaciacuteo ()

Si tiene una lista que soacutelo contiene datos numeacutericos y al final de ella desea almacenar un texto pero no quiere que dicho texto quede incluido como parte del rango dinaacutemico con nombre puede reemplazar la funcioacuten CONTARA con la funcioacuten estaacutendar de Excel CONTAR funcioacuten que soacutelo cuenta las celdas que conshytienen datos numeacutericos

El siguiente ejemplo utilizaremos el rango dinaacutemico con nombre para definir una tabla de datos que deseamos sea dinaacutemica Para ello escriba la siguiente funcioacuten en el cuadro de texto Se refiere a

=DESREF($A$100CONTARA($A$1$A$10 0)CONTARA($1$1))

Aquiacute el rango dinaacutemico con nombre se expandiraacute hacia abajo tantas entradas como datos haya que la columna A y a lo largo de tantas filas como encabezados haya en la fila 1 Si estaacute seguro de que el nuacutemero de columnas para la tabla se va a mantener estable puede reemplazar la segunda funcioacuten CONTARA por un nuacuteshymero fijo como pueda ser 10

El uacutenico problema al utilizar rangos dinaacutemicos con nombre para una tabla de datos es que presupone que la columna A estableceraacute la longitud maacutexima para la tabla En la mayoriacutea de los casos esto seraacute cierto pero a veces puede que la columna maacutes larga sea otra diferente Para evitar este problema puede utilizar la funcioacuten MAX de Excel que devuelve el nuacutemero maacutes alto en un rango de celshydas Como ejemplo configure una tabla de forma similar a la que se muestra en la figura 34

Utilice la fila 1 para almacenar un nuacutemero de las funciones CONTARA que estaacuten haciendo referencia a la columna y por tanto devolviendo el nuacutemero de entradas en cada columna Utilice la funcioacuten MAX para el argumento alto de la funcioacuten DESREF Esto asegura que el rango dinaacutemico con nombre para la tabla siempre se expandiraacute tanto como la columna maacutes larga Por supuesto puede ocultar la fila 1 ya que el usuario no necesita verla

132 Excel Los mejores trucos

Figura 34 Tabla dinaacutemica de datos y el cuadro de diaacutelogo Definir nombre

En todos estos ejemplos hemos supuesto que los datos siempre estaraacuten en filas contiguas sin celdas en blanco entre medias Aunque este es el meacutetodo coshyrrecto para configurar una lista a una tabla de datos a veces no se tiene control sobre esto En el siguiente ejemplo el listado de nuacutemeros de la columna A tamshybieacuten contiene celdas en blanco Esto significa que si intenta utilizar las funciones CONTAR o CONTARA el rango dinaacutemico con nombre no funcionaraacute correctashymente como puede verse en la figura 35

En este caso aunque el uacuteltimo nuacutemero en el rango estaacute en la fila 10 el rango dinaacutemico se estaacute expandiendo solamente hasta la fila 6 Esto es debido a que hemos utilizado la funcioacuten CONTAR para contara desde la celda Al a la celda Al 00 Sin embargo soacutelo hay 6 datos numeacutericos en la lista por lo que el rango se expande solamente 6 filas

Para evitar este problema utilizaremos la funcioacuten de Excel COINCIDIR Esta funcioacuten se utiliza para devolver la posicioacuten relativa de un elemento en una mashytriz de aquel que coincida con un valor especiacutefico en un orden especiacutefico Por ejemplo se utiliza esta funcioacuten COINCIDIR

=COINCIDIR(6$A$1$A$1000)

en el mismo conjunto de nuacutemeros que mostraacutebamos de la figura 35 la funshycioacuten COINCIDIR devolveraacute el nuacutemero 10 que representa la fila 10 de la columna

3 Trucos sobre nombres 133

A Ha devuelto 10 porque le hemos dicho a la funcioacuten que encuentre el nuacutemero 6 en el rango Al A100

Agregar |

Qiminar

Se refiere a

=DE5REF(Hoja2$A$l00CONTAR(Hoja2$A$l $A$100) 1)| 31

llt i bull bull l lVHoa l Ho ia2 HQja3Z LiacuteL JID Figura 35 Un rango de nuacutemeros y cuadro de diaacutelogo Definir nombre

Obviamente cuando utilicemos esta funcioacuten como parte de un rango dinaacutemishyco con nombre lo maacutes probable es que no conozcamos el uacuteltimo nuacutemero del rango Por tanto necesitamos decirle a la funcioacuten COINCIDIR que intente buscar un nuacutemero exageradamente alto en el rango que nunca podriacutea existir y camshybiar el uacuteltimo argumento de la funcioacuten por 1

El ejemplo anterior le dijimos a la funcioacuten COINCIDIR que encontrarse el nuacuteshymero exacto 6 ni maacutes ni menos Ahora si reemplazamos el 0 por 1 en el uacuteltimo argumento de la funcioacuten estamos indicaacutendole que busque el valor maacutes alto que sea menor o igual que el valor indicado

Para ello utilice esta foacutermula

=COINCIDIR(1E+306$A$1$A$1001)

Para crear un rango dinaacutemico con nombre que se expanda hasta la uacuteltima fila que contenga un nuacutemero (independientemente de que haya celdas entre medias) escriba esta foacutermula en el cuadro de texto Se refiere a del cuadro de diaacutelogo Definir nombre tal y como se muestra en la figura 36

=DESREF(Hoja2$A$l00COINCIDIR(lE+3 0 6 H o j a 2 $ A $ l $ A $ 1 0 0 l ) 1 )

El siguiente tipo loacutegico de rango dinaacutemico con nombre que podriacutean surgir de esto es aquel que se expanda hasta la uacuteltima entrada de texto independienteshymente de que haya celdas en blanco en la lista o en la tabla

134 Excel Los mejores trucos

uumlj

Aceptar j

O Agregar

9 10 11 12 13 14 15 16 17 18 19 20 4 4 bull H Hojal H o j a 2 H o j a 3

J

Se refiere a

j =DESREF(Hoja2 $A$ 1 0 0 COINCIDIRAacute E+306 Ho ja2$A$1 $A$ 100 1) 1 )| 5

X iexclD Figura 36 Un rango dinaacutemico que se extiende hasta la uacuteltima entrada numeacuterica

Para hacer esto reemplace la funcioacuten COINCIDIR con la siguiente

C O I N C I D I R ( $ A $ 1 $ A $ 1 0 0 - 1 )

Esto siempre devolveraacute el nuacutemero de fila de la uacuteltima entrada de texto situada en el rango $A$1$A$100

Ahora que ya sabe coacutemo hacer esto para entradas numeacutericas y de texto es loacutegico que necesite definir de alguna forma un rango dinaacutemico con nombre que sea capaz de buscar maacutes allaacute de las celdas en blanco en una lista que contenga tanto texto como nuacutemeros

Para poder hacer esto primeramente insertados celdas en blanco por encima de la lista seleccionando las filas 1 y 2 y luego seleccionando la opcioacuten lnsertargtFila En la primera fila antildeada esta funcioacuten

=MAX(COINCIDIR($A$3$A$100-1)COINCIDIR(1E+306$A$3$A$1001))

En la celda inmediatamente por debajo introduzca el nuacutemero 1 La celda por debajo de ella debe contener un encabezado de texto para la lista Hemos antildeadido el nuacutemero 1 de forma que la segunda funcioacuten COINCIDIR no devuelva N A cuando no haya nuacutemeros en el rango A3A100 Esta segunda funcioacuten siempre encontraraacute el texto porque disponemos de un encabezado

Deacutele el nombre FilaMax a la celda Al y luego seleccione lnsertargtNombregt Definir De un nombre al rango dinaacutemico como por ejemplo MiLista y en el cuadro de texto Se refiere a introduzca los siguiente tal y como se muestra en la figura 37

= DESREF(Hoj a2$A$ 300Fi1aMax1)

3 Trucos sobre nombres 135

- ^ j Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana

bullJal -1 _ fi x

A3

plusmnpound 12

pound =MAX(CQINCIDIR( $A$3$A$100-1) COINCIDIR(1 E+3QG$A$3$A$100 1))

1

Mi Listn

Daniel

Carlos

100iexcl

iexclJavier

Fernando

500

antos

iexclJorge

300

Definir nombre

Nombres en el libro 3 4 5 6 7 8 9 10 11 12 13 14 15 _ _ _ _ _ 16 17 18 19 20

llt lt bull bulliXHojal gtHoja2( Hoja3

Sentildealar

Aceptar i

Z3 Agregar

J

=DE5REF(Ho ja2 $ A $3 0 0 FilaMax 1) 3

H T

Figura 37 Lista dinaacutemica con entradas numeacutericas y de texto conteniendo celdas en blanco

La siguiente lista muestra otros tipos de rangos dinaacutemicos con nombre que puede encontrar uacutetiles Para todos estos ejemplos necesitaraacute rellenar la columna A con una mezcla de entradas de texto y numeacutericas Para ello seleccione la opshycioacuten lnsertargtNombregtDefinir introduzca en el cuadro de texto Nombres en el libro cualquier palabra (por ejemplo MiRango) La uacutenica parte que va a cambiar es la foacutermula que introduciremos en el cuadro de texto Se refiere a

Expandir tantas filas como entradas numeacutericas haya

En el cuadro de texto Se refiere a introduzca los siguiente

= D E S R E F ( $ A $ 1 0 0 C O N T A R ( $ A $ A ) 1 )

Expandir tantas filas como entradas de texto y numeacutericas haya

En el cuadro de texto Se refiere a introduzca los siguiente

=DESREF($A$100CONTARA($A$A)1)

Expandir hasta la uacuteltima entrada numeacuterica

En el cuadro de texto Se refiere a introduzca los siguiente = DESREF($A$100COINCIDIR(1E + 3 06$A$A) )

136 Excel Los mejores trucos

Si espera un nuacutemero mayor que 1E+306 (un 1 con 306 ceros) caacutembielo por un nuacutemero mayor auacuten

Expandir hasta la uacuteltima entrada de texto

En el cuadro de texto Se refiere a introduzca los siguiente

=DESREF($A$100COINCIDIR($A$A-1))

Expandir basaacutendose en el valor de otra celda

Introduzca el nuacutemero 10 en la celda Bl y luego en el cuadro de texto Se refiere a introduzca los siguiente

=DESREF($A$100$B$11)

Hora cambie el nuacutemero en la celda Bl y el rango cambiaraacute de acuerdo a ello

Expandir una fila por cada mes

En el cuadro de texto Se refiere a introduzca los siguiente

=DESREF($A$100MES(HOY())1)

Expandir una fila por cada semana

En el cuadro de texto Se refiere a introduzca los siguiente

=DESREF($A$100NUMDESEMANA(HOY())1)

Esta uacuteltima requiere que el paquete de anaacutelisis esteacute instalado Para ello debe seleccionarlo en la opcioacuten HerramientasgtComplementos

Anidar rangos dinaacutemicos para obtener una flexibilidad maacutexima Un rango dinaacutemico con nombre que reside dentro de otro rango dinaacutemico con nombre puede ser muy uacutetil cuando tengamos que trabajan con grandes listas de nombres por ejemplo

Por ejemplo es posible crear un rango con nombre llamado NombresJ que se refiere a todos los nombres de una lista ordenada que comienzan con la letra J Comenzamos con la lista de nombres de la columna A como la que se muestra en la figura 38 en donde la celda Al es un encabezado y la lista estaacute ordenada Seleccione lnsertargtNombregtDefinir En el cuadro de texto Nombres en el libro introduzca Nombres y en el cuadro de texto Se refiere a introduzca la siguiente foacutermula

=DESREF($A$200CONTARA($A$2$A$1000)1)

3 Trucos sobre nombres 137

Haga clic en Agregar Nuevamente haga clic en el cuadro de texto Nombres en el libro e introduzca NombresJ (o podriacutea ser cualquier otra letra que desee) y luego haga clic en Se refiere a e introduzca lo siguiente

=DESREF(INDIRECTO(DIRECCIOacuteN(COINCIDIR(raquoJ CONTARSI(NombresraquoJn)1)

Nombres0)+11))00

donde J es el criterio de coincidencia que deseamos en este caso es decir aquellos nombres que comienzan por J Ahora haga clic en Agregar Cuando haga clic en el cuadro de texto Se refiere a en el que se encuentra la funcioacuten todos los nombres que comienzan por la letra J tienen una marca a su alrededor tal y como se muestra en la figura 38

Nombres en el libro

NombresJ

A

Nombres

Al ex

Ana

David

Guadalupe

paime laquoJavier

8 laquoJuan

9 Caiacuteda

10 Luis

11 Mar

12 Marta

13 Sandra

14 Santos

1 5 S o n i a - mdash bull bull bull bull - - bull bull - - bull bullbullbull -

16 Tama

17

llt 4 bull H H o j a l Hoja2 Hoja3

JSi

-3 Agregar

EJMnar

J

| S=DE5REF(INDIRECTO(DIRECCION(COINCIDIRf J Nombres 0)+1 1)) 0 0 ^J

J_ Figura 38 Un rango dinaacutemico con nombre con otro rango dinaacutemico dentro de eacutel

Si lo desea puede crear un rango con nombre para cada letra del alfabeto pero quizaacute una opcioacuten mejor seriacutea que el rango con nombre cambiase en funcioacuten de la letra que escribieacutesemos en una celda de la hoja Para poder hacer esto simshyplemente introduzca cualquier letra en una celda que no esteacute utilizando y luego deacutele el nombre Letra a dicha celda Ahora seleccione DatosgtValidacioacuten y en el cuadro de lista desplegable seleccione la opcioacuten Lista En el cuadro de texto Origen introduzca ABC es decir cada una de las 26 letras del abecedario como puede verse la figura 39 Al terminar haga clic en Aceptar

Seleccione lnsertargtNombregtDefinir e introduzca Nombres en el cuadro de texto Nombres en el libro Luego introduzca la siguiente foacutermula en el cuadro de texto Se refiere a y haga clic en Agregar

= DESREF($A$ 200CONTARA($A$ 2$A$10 0 0) 1)

Haga clic de nuevo en el cuadro de texto Nombres en el libro y escriba NombresDeLetra Luego en el cuadro de texto Se refiere a introduzca la si-

138 Excel Los mejores trucos

guiente foacutermula y cuando haya terminado haga clic en Agregar y luego en Aceptar

=DESREF(INDIRECTO(DIRECCIOacuteN(COINCIDIR(LetraNombres0)+11))00 CONTARSI(NombresLetra)1)

El resultado deberiacutea ser como el de la figura 310

fflfffflfflWTWff i Configuracioacuten i J Mensaje entrante ] Mensaje de error ]

Criterio de validacioacuten

Permitir

iexclLista

Datos

1 Origen

JAjBjCjDEjFG

bull j Jv Omitir blancos

P Celda con lista desplegable

13 HIJjKLM^J

r Aplicar estos cambios a otras celdas con la misma configuracioacuten

Aceptar j Cancelar

Figura 39 Una lista de validacioacuten de letras seguidas de los caracteres comodines

^|] Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana l d J

- f l X

4) w ~

A9 pound L

Definir nombreacute

Nombres en el libro

NombresDeLetra

Letra Nombres

A

1 [Nombres

2 Al ex

3 Ana

4 David

5 Guadalupe

6 Jaime

7 Javier

8 Juan

9 la ida

10 l u i s

11 Maiacute

12 Marta

13 Sandra

14 Santos

15 Sonia

16 Tania

17 ~~

H i bull wHoial Hoja2Hoja3

Sentildealar

Aceptar

U Agregar

Eliminar

J Se refiere a

| hDESREF(INDIRECTO(DIRECCION(COINCIDIR(Letra Nombres 0)+1 1))0C iexclj

bull i r

Figura 310 Un rango dinaacutemico con nombre controlado por el contenido de otra celda

3 Trucos sobre nombres 139

No tiene que reescribir las foacutermulas desde cero para los rangos S^ dinaacutemicos con nombre En vez de ello mientras esteacute trabajando con el

cuadro de diaacutelogo Definir nombre puede hacer clic en cualquier rango dinaacutemico de nombre sobrescribir el nombre que aparece en el cuadro de texto Nombres en el libro ir al cuadro de texto Se refiere a modificarlo de forma adecuada y luego hacer clic en Agregar Esto no reemplazaraacute el rango dinaacutemico de nombres original sino que antildeadiraacute uno totalmente nuevo que tendraacute el nuevo nombre que le haya dado

Identificar rangos con nombre en una hoja de caacutelculo Excel permite a los usuarios asociar nombres representativos a rangos especiacuteficos dentro de las hojas de caacutelculo A medida que el nuacutemero de diferentes rangos con nombre crezca en la hoja de caacutelculo necesitaraacute algunas herramientas para poder identificar las aacutereas que son referenciados por dichos rangos con nombre

A continuacioacuten veamos un par de meacutetodos raacutepidos que puede utilizar para identificar las aacutereas que son referenciadas por cada rango con nombre

Meacutetodo 1

Un meacutetodo muy raacutepido para identificar rangos referenciados es seleccionando la opcioacuten lnsertargtNombregtPegar o pulsar la tecla F3 En el cuadro de diaacutelogo Pegar nombre haga clic en Aceptar como se muestra en la figura 311 y Excel mostraraacute una lista de todos los nombres en filas comenzando por la celda activa y mostrando los nombres que corresponden a cada referencia en la otra columshyna Esto le proporcionaraacute un listado de todos los nombres del libro de Excel actishyvo Aunque esto pueda ser m u y uacutetil para identificar rangos especiacuteficos todaviacutea requiere que tenga que seleccionar manualmente un rango con nombre especiacutefishyco o quizaacute utilizar el cuadro de diaacutelogo Ira Sin embargo una vez que tenga la lista de rangos con nombre puede eliminar todas las direcciones de celdas referenciadas que se corresponden con los nombres y reemplazarlas con una funcioacuten de viacutenculo m u y simple

Todo esto le permitiraacute crear una lista de todos los rangos con nombre Hacienshydo clic en cualquier elemento de dicha lista le llevaraacute automaacuteticamente al rango especificado Por ejemplo suponiendo que la lista de nombres se encuentre la columna A comenzando por la celda A l Situacuteese en la celda B l e introduzca esta foacutermula

=HIPERVINCULO([Librolxls]ampA1A1)

140 Excel Los mejores trucos

^ I I H H I H I IacuteSjiexcl ArcNvo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana ff x

bull J U Iacute J Iacute J J a ^ a amp - y -gt B ^ Z ^ I Uuml I Uuml bull- |

A r i a l - 10 - N iquestT S raquo S 3 ^ iquestsect 000 euro gsect pE L_ - ^ amp I

A1 ltr fx Diacuteas

B

JL 2 I i AJ JJ 7 V _ j

Si J2J

11-15 i Si RA N lt

[Diacuteas |=Hoja1$DJ2$D$24

Meses =Hoja1$F$6$K$9

Miembros =Hoja1$C$4$C$27

Mis totales =Hoja1$G$12$G31

__D __ E _ J F

Pegar nombre [Piacuteas Meses Miembros Misjtotales

Pegar lista I

-m

zl J Cancelar

bull w H o j a l H o iexcl t oacute H o 3 3 l iacuteJ l NUM

_G__Tiacute

gtir

Figura 311 El cuadro de diaacutelogo Pegar nombre

Copie esta foacutermula hacia abajo tantas filas como sean necesarias y reemplace Libro 1 por el nombre real del libro

aacute] Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana

J J J Iacute J J Iacute ^ Uuml j i ^ - i ^ iacute - iacute i k39

Arial - 10 - N X S ^ M ^ ^ ~sect 000 euro Ip _ ~ iquestraquo N20 ^ pound

- f l X

VZl

M

s $ (gt CD

()

MI

O Q) m

iquestMiembros

M i bull M j V H o j a l H o j a 2 Hoja3

Listo til bull i r

Figura 312 Zoom de la hoja que proporciona los nombres de rangos para su faacutecil identificacioacuten

3 Trucos sobre nombres 141

Meacutetodo 2

Este meacutetodo es m u y sencillo pero raramente conocido Todo lo que tiene que hacer es establecer el zoom de la hoja Excel a un nuacutemero inferior a 40 (es decir 39 o menos) Observaraacute como se muestran todos los nombres de rangos en la hoja para su faacutecil identificacioacuten tal y como se muestra en la figura 312

CAPIacuteTULO 4

Trucos sobre tablas dinaacutemicas Trucos 45 a 49

Las tablas dinaacutemicas son uno de los atractivos maacutes potentes de Excel a pesar de que mucha gente no sabe queacute es lo que pueden hacer Las tablas dinaacutemicas muestran y extraen gran variedad de informacioacuten a partir de una tabla de datos que se encuentra en Microsoft Excel o bien en otro tipo de base de datos compashytible Las tablas dinaacutemicas se utilizan con frecuencia para extraer informacioacuten estadiacutestica a partir de datos almacenados en serie Luego podraacute desplazarse por los diferentes campos de la tabla dinaacutemica para ver sus datos desde perspectivas diferentes

Los datos en serie para una tabla dinaacutemica deben estar organizados en vv un formato claacutesico de tabla La fila uno debe contener los encabezados

w y los datos relacionados debajo de ellos Los datos no deberiacutean contener filas o columnas en blanco Incluso aunque no tenga planeado utilizar tablas dinaacutemicas mantener los datos en este formato haraacute posible que otras personas puedan analizarlo utilizando dicha caracteriacutestica

Tablas dinaacutemicas un truco en siacute mismas Las tablas dinaacutemicas son una de las caracteriacutesticas maacutes potentes e impresionantes de Excel un truco muy ingenioso en siacute mismo y que requiere cierta experimentacioacuten para poder comprender

Utilizaremos con frecuencia las tablas dinaacutemicas cuando desarrollemos hojas de caacutelculo para nuestros clientes Una vez que un cliente vea una tabla dinaacutemica a partir de entonces siempre nos pediraacute que si le podemos crear una para ellos

144 Excel Los mejores trucos

mismos Aunque cualquiera puede crear una tabla dinaacutemica por desgracia m u shychas personas tienen miedo de hacerlo porque ven que puede ser m u y complejo De hecho cuando utilice una tabla dinaacutemica por primera vez el proceso puede parecer algo engorroso Por ello estaacute claro que es necesaria cierta persistencia Descubriraacute que esa persistencia mereceraacute la pena una vez que experimente la mejor caracteriacutestica de las tablas dinaacutemicas su capacidad de ser manipulada mediante prueba y error e inmediatamente mostrar los resultados de dicha mashynipulacioacuten Si el resultado que obtiene no es el esperado puede utilizar la funshycioacuten Deshacer de Excel e intentar otra cosa nueva Haga lo que haga nunca estaraacute cambiando la estructura de la tabla original por lo que no tendraacute que preocuparse

iquestPor queacute se les llama tablas dinaacutemicas

Las tablas dinaacutemicas le permiten organizar los datos utilizando teacutecnicas de arrastrar y colocar y luego obtener los resultados de forma inmediata Las tablas dinaacutemicas son interactivas una vez que la tabla esteacute completa podraacute ver faacutecilshymente coacutemo la informacioacuten se ve afectada cuando mueve los datos dinaacutemicamente Esto resultaraacute m u y claro una vez que pruebe las tablas dinaacutemicas

Incluso para los desabolladores experimentados de tablas dinaacutemicas un eleshymento de prueba y error siempre es necesario a la hora de producir los resultados deseados i Al final se encontraraacute a siacute mismo manejando dinaacutemicamente su tabla con frecuencia

iquestPara queacute cosas resultan buenas las tablas dinaacutemicas

Las tablas dinaacutemicas pueden producir informacioacuten de resumen para una tashybla con datos Imagine que tiene una tabla con informacioacuten que contiene nomshybres direcciones edades puestos nuacutemeros de teleacutefono y coacutedigos postales Con una tabla dinaacutemica podraacute encontrar faacutecil y raacutepidamente cosas como las que le mostramos a continuacioacuten

bull Cuaacutentas personas tienen el mismo nombre

bull Cuaacutentas personas comparten el mismo coacutedigo postal

bull Cuaacutentas personas ostentan el mismo puesto

Tambieacuten podriacutea obtener informacioacuten como esta

bull Un listado con las personas que tienen el mismo puesto

bull Un listado de aquellas direcciones con el mismo coacutedigo postal

4 Trucos sobre tablas dinaacutemicas 145

Si necesita separar segmentar y hacer informes de los datos las tablas dinaacuteshymicas se convertiraacuten en una herramienta critica para su trabajo

iquestPor queacute utilizar tablas dinaacutemicas cuando las hojas de caacutelculo ya ofrecen muchas funciones de anaacutelisis

Quizaacute la ventaja mayor de utilizar tablas dinaacutemicas es el hecho de que puede generar y extraer informacioacuten m u y uacutetil a partir de una tabla m u y grande de datos en cuestioacuten de minutos y sin tener que utilizar gran cantidad de memoria del ordenador En muchos casos podriacutea obtener los mismos resultados de una tabla utilizando las funciones incorporadas de Excel pero le llevariacutea maacutes tiempo y utilizar maacutes memoria

Otra de las ventajas de utilizar tablas dinaacutemicas es que si desea tener alguna informacioacuten nueva simplemente basta con arrastrar y colocar Ademaacutes puede optar por tener la informacioacuten actualizada cada vez que abre el libro o hace clic en Actualizar

Los graacuteficos dinaacutemicos como extensioacuten de las tablas dinaacutemicas

Microsoft ya introdujo los graacuteficos dinaacutemicos en Excel 2000 La tabla que genera a traveacutes del Asistente para tablas dinaacutemicas tambieacuten produce un graacutefico dinaacutemico (o maacutes bien una tabla dinaacutemica y un informe de graacutefico dinaacutemico) Cuando crea una tabla dinaacutemica tambieacuten puede crear un graacutefico dinaacutemico al mismo tiempo sin ninguacuten esfuerzo extraordinario Los graacuteficos dinaacutemicos le permiten crear graacuteficos interactivos que antes eran imposibles a menos que se utilizara VBA o los controles de Excel

Veremos maacutes detalle el Asistente para graacuteficos dinaacutemicos maacutes adelante en este mismo capiacutetulo

Camp Los graacuteficos dinaacutemicos no estaacuten disponibles en la versioacuten de Excel para ^^ Macintosh

Crear tablas y listas para ser utilizadas en tablas dinaacutemicas

Cuando crea una tabla dinaacutemica debe organizar el conjunto de datos que estaacute utilizando en una tabla y o en una lista Dado que las tablas dinaacutemicas basan todos sus datos en esta tabla o lista es de vital importancia que configure dichas tablas y listas de forma uniforme En este contexto una tabla no es maacutes que una lista que tiene un tiacutetulo que tiene maacutes de una columna con datos y que tiene

146 Excel Los mejores trucos

diferentes encabezados para cada una de esas columnas A menudo se hace refeshyrencia a un listado en el mismo contexto en el que crea una tabla Las mejores praacutecticas que se deberiacutean aplicar a la hora de configurar un listado le ayudaraacuten enormemente cuando necesite generar una tabla dinaacutemica para los datos

Cuando se extraen datos a traveacutes del uso de funciones de buacutesqueda o de base de datos se puede ser algo menos exigente a la hora de configurar la tabla o la lista Esto es debido a que siempre puede compensar esa carencia con la ayuda de una funcioacuten obteniendo al final los resultados deseados De todas formas siemshypre seraacute maacutes sencillo si configura las tablas o las listas de la forma maacutes clara posible Las caracteriacutesticas incorporadas de Excel presuponen mucho acerca de la configuracioacuten y la distribucioacuten de los datos Aunque ofrecen cierto grado de fleshyxibilidad m u y a menudo encontraraacute que es maacutes sencillo todo si se ajusta a la siguiente guiacutea a la hora de configurar dichas tablas o listas

bull Es necesario la utilizacioacuten de encabezados ya que las tablas dinaacutemicas los utilizaraacuten para dar nombre a los campos Dichos encabezados deberiacutean aparecer siempre en la fila inmediatamente superior a la que se encuentra los datos Ademaacutes nunca dejeacute una fila en blanco entre los datos y los encabezados Maacutes auacuten haga que los encabezados sean diferentes de algushyna manera por ejemplo ponieacutendolos en letra negrita

bull Al menos deje tres filas en blanco por encima de los encabezados Podraacute utilizarlos para foacutermulas datos criacuteticos etc En cualquier caso siempre podraacute ocultar dichas filas si asiacute lo desea

bull Si tiene maacutes de una listado tabla en la misma hoja de caacutelculo deje al meshynos una columna en blanco entre cada lista o tabla Esto ayudaraacute a Excel a reorganizarlas como entidades diferentes Sin embargo si esas listas y tashyblas estaacuten relacionadas unas con otras entonces es mejor que las combine en una uacutenica tabla maacutes grande

bull Evite tener celdas en blanco dentro de los datos En vez de dejar celdas en blanco para indicar datos repetidos en una misma columna repita el dato tantas veces como sea necesario

bull Ordene la lista o los datos preferiblemente por la columna situada maacutes a la izquierda Esto haraacute que los datos sean maacutes sencillos de leer y de intershypretar

Si sigue estas directrices de la forma maacutes estricta posible veraacute que utilizar las tablas dinaacutemicas seraacute una tarea relativamente sencilla En la figura 41 puede ver una tabla con datos que estaacute bien organizada jun to a una tabla dinaacutemica que se estaacute generando Observe que la mayoriacutea de las fechas que son iguales estaacuten repetidas en la columna Fecha Por delante de estos datos estaacute el paso en el

4 Trucos sobre tablas dinaacutemicas 147

que se configura la distribucioacuten de los datos en el asistente en el que se muesshyt ran los campos opcionales Paacutegina Fila y Columna asiacute como el campo obligatoshyrio Datos

c Cantidad Comisioacuten Venta

UZ2 Construya el informe de tabla dinaacutemica arrastrando los botones de campo de la derecha sobre el diagrama a la izquierda

I Producto I

| Fecha l

iexclCantidad j

ComisioacutenI

Ayuda Aceptar

Mieacute 3 Mioacute 2004 X] Uo 2004

julio 2004 julio 2004 julio 2004 julio 2004 julio 2004 blio 2004 julio 2004 kgosto 2004 hgosto 2004 kgosto 2004 kgosto 2004 kgosto 2004 hgosto 2004 kgosto 2004 jigosto 2004 fegosto 2004 kgosto 2004 kgosto 2004 agosto 2004 kgosto 2004 fegosto 2004

j kgosto 2004 L_J kgosto 2004 wmrxagosto 2004

1850 1325 1225 900 850

7536 4500 1268 7400 4521 1340 2632 1200 563 990

1875 6530 1400 7536 4500 1268 7400 4521 1340 2632 1200

euro Comisioacuten euro Comisioacuten euro Comisioacuten ^ Comisioacuten euro Comisioacuten euro Comisioacuten euro Comisioacuten euro Comisioacuten euro Comisioacuten euro Comisioacuten euro Comisioacuten euro Comisioacuten euro Comisioacuten euro Venta euro Comisioacuten euro Comisioacuten euro Venta euro Comisioacuten euro Comisioacuten euro Comisioacuten euro Comisioacuten euro Comisioacuten euro Comisioacuten euro Comisioacuten euro Venta euro Comisioacuten

lt lt bull bull XHojal Hoja2 Hoja3 J i L bull i n Figura 41 Tabla dinaacutemica generada a partir de una tabla de datos bien distribuida

El Asistente para tablas dinaacutemicas y graacuteficos dinaacutemicos

Como ya mencionamos anteriormente para ayudar a los usuarios a crear tablas dinaacutemicas Excel ofrece un asistente para tablas dinaacutemicas y graacuteficos dishynaacutemicos Este asistente le guiaraacute a traveacutes de los pasos para crear la tabla dinaacutemishyca utilizando un proceso consistente en cuatro pasos en los que le diraacute a Excel las siguientes cosas

bull Coacutemo estaacuten configurados los datos y si desea crear un graacutefico dinaacutemico asociado (en caso de que esteacuten disponibles en la versioacuten que esteacute utilizanshydo de Excel)

bull Doacutende estaacuten almacenados los datos por ejemplo un rango de celdas en el mismo libro una base de datos otro libro etc

bull Queacute columnas de datos van en cada campo los campos opcionales Paacutegishyna Fila y Columna asiacute como el campo obligatorio Datos

bull Doacutende colocar la tabla dinaacutemica (por ejemplo en una nueva hoja o en la ya existente)

148 Excel Los mejores trucos

Existen otros pasos que se pueden seguir para manipular la tabla dinaacutemica pero la mayoriacutea de los usuarios encuentran maacutes sencillo hacer esto despueacutes de decir a Excel doacutende colocarla

Excel 2000 y las versiones posteriores tienen una gran ventaja sobre Excel 97 le permiten elegir coacutemo configurar los datos despueacutes de que el asistente haya finalizado

Ahora que ya sabe algo maacutes sobre las tablas dinaacutemicas y sus funciones ha llegado el momento de conocer algunos trucos uacutetiles que pueden hacer que esta caracteriacutestica sea todaviacutea maacutes potente

Q M 9 Compartir tablas dinaacutemicas pero no sus datos M ^ P f f T ^ I Crearemos una imagen de la tabla dinaacutemica que no necesita de la

^ H M ^ H estructura de datos subyacente

Es posible que necesite enviar tablas dinaacutemicas a otras personas para que las visualicen pero por alguna razoacuten no desea enviar los datos subyacentes que estaacuten asociados a ella Quizaacute desee que los demaacutes soacutelo vean ciertos datos por motivos de confidencialidad por ejemplo Si este fuese el caso puede crear una copia estaacutetica de una tabla dinaacutemica y permitir que los destinatarios soacutelo vean lo que necesitan ver

Y lo mejor de todo es que el tamantildeo del archivo con la copia estaacutetica seraacute mucho menor que el del archivo original

Suponiendo que tenga una tabla dinaacutemica en un libro de Excel todo lo que necesita hacer es seleccionar la tabla dinaacutemica por completo copiarla y en una hoja en blanco ir a EdicioacutengtPegado especial y luego seleccionar la opcioacuten Valoshyres Entonces ya podraacute mover esta hoja a otro libro o quizaacute utilizarla tal cual

El uacutenico inconveniente de este meacutetodo es que Excel no pega los formatos de la tabla dinaacutemica jun to con los valores Esto puede hacer que la copia estaacutetica sea maacutes difiacutecil de leer y quizaacute sea menos impresionante Si tambieacuten desea incluir el formato puede tomar una imagen estaacutetica (en vez de una copia estaacutetica) de la tabla dinaacutemica y luego pegarla en una hoja en blanco lo que le proporcionaraacute una copia a todo color y con formato de la tabla dinaacutemica original a la que podraacute aplicar cualquier tipo de formato que desee sin tener que preocuparse de que el formato se perderaacute cuando la actualice Todo esto ocurre gracias a que la imagen no estaacute vinculada de ninguna forma con la tabla dinaacutemica original

Para crear una imagen estaacutetica aplique el formato que desee a la tabla dinaacuteshymica y luego seleccione cualquier celda que se encuentre dentro de ella Desde la

4 Trucos sobre tablas dinaacutemicas 149

barra de herramientas Tabla dinaacutemica despliegue el menuacute Tabla dinaacutemica y lueshygo vaya a la opcioacuten SeleccionargtToda la tabla Una vez hecho esto mantenga pulsada la tecla Mayuacutes y entonces vaya a EdicioacutengtCopiar imagen En el cuadro de diaacutelogo que apareceraacute elija las opciones tal y como se muestran en la figura 42 y luego haga clic en Aceptar

1 2

Ti Ti

5 6 | 7 8 9 10 11 12

113 14

PT FT iexcl17 M8~ FT H 4

A | B Nombre H Ndeg de nombres

Ana HiHlM^raquo David ^ J ^ ^ p ^ S Guadalupe ^ H H | j | iexcl g j | |

Javier p y l ^ i g ^ p i p i Juan I B i Uuml uuml i g i ^ K Laida j H ^ B I B B B LUIacuteS Pff^yy^PJ Mar ^ ^ ^ ^ ^ H Marta R S S B ^ ^ Sandra t Iacute 8 Iacute ^ ^ 8 i M I Santos B i S ^ ^ ^ ^ S Sonia i o | S S g ^ ^ K Tantildeiacutea g E H f f l B Vanesa J iB i ^ ^ ^puumly WiHiam JSiiBS

bull M Hoja i XHoja2 Hoja3

C j D I E

Apariencia

bull iComo en pantalla]

lt Como en impresora

Formato

( Imagen

C Mapa de bits

I Aceptar | Cancelar I

H

i F i G t iacute

Figura 42 Cuadro de diaacutelogo Copiar imagen

Finalmente haga clic en cualquier lugar fuera de la tabla dinaacutemica y seleccioshyne EdicioacutengtPegar Acabaraacute teniendo una imagen a todo color y con formato de la tabla dinaacutemica tal y como se muestra en la figura 43 Esto puede ser m u y uacutetil especialmente si tiene que mandar la tabla dinaacutemica por e-mail a otras personas para que puedan verla Tendraacuten la informacioacuten que necesitan incluyendo todos los formatos que sean relevantes y todo ello con un tamantildeo del archivo que seraacute menor Sin embargo no podraacuten manipular los datos De igual forma soacutelo poshydraacuten ver aquello que desee que vean

Tambieacuten puede utilizar este meacutetodo de tomar una imagen para un rango de celdas Puede seguir los pasos que hemos indicado anteriormente o puede utilishyzar la herramienta que proporciona el pequentildeo icono en forma de caacutemara situashydo en la barra de herramientas

Para utilizar este uacuteltimo meacutetodo vaya a VergtBarras de herramientasgtPersona-lizar En el cuadro de diaacutelogo haga clic en la pestantildea Comandos luego seleccione la opcioacuten Herramientas en la lista de categoriacuteas y en el cuadro de lista de la parte derecha desplaacutecese hasta que encuentre la opcioacuten Caacutemara Haga clic en ella y arraacutestrela hasta aquella barra de herramientas en la que desee mostrarla Ahora seleccione un rango de celdas haga clic en el icono de la caacutemara y luego haga clic en cualquier lugar de la hoja con lo que obtendraacute una imagen vinculada de

150 Excel Los mejores trucos

dicho rango Cualquiera que fuera el formato o los datos que tuviese el rango original queda reflejado automaacuteticamente en la imagen

A 6 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

H lt

Tabla dinaacutemica original Horahrfe Ns de nombres 1 Al ex Ana David Guadalupe Jaime Javier Juan Laida Luis Mar-Marta Sandra Santos Sonia Tan i a Vanesa William Total general

bull raquo i Hojal H

1 -

_ 3ja2 )Hoja3

c TD E F

Imagen ele la tabla dinaacutemica Nombre H Ndeg de nombres I ^ ^ ^ ^ H Al ex Ana David Guadalupe Jaime Javier Juan Laida Luis Mar Marta Sandra Santos Sonia Tania Vanesa William Total general

1o

if M

G mdash

mdash

_J plusmniexclntilde Figura 43 Tabla dinaacutemica original contrastada con su imagen

Automatizar la creacioacuten de tablas dinaacutemicas Los pasos que debe seguir para crear una tabla dinaacutemica requieren de un cierto esfuerzo y a menudo dicho esfuerzo resulta redundante Con un poco de coacutedigo VBA podraacute crear tablas dinaacutemicas de forma automaacutetica

Las tablas dinaacutemicas son una caracteriacutestica m u y potente e inteligente para ser utilizadas con datos que estaacuten almacenados en una lista una tabla Por desshygracia el esfuerzo para crear una tabla dinaacutemica es suficiente como para disuashydir a algunas personas a que experimenten con ello Aunque la configuracioacuten de algunas tablas dinaacutemicas puede ser m u y complicada la mayoriacutea de ellas pueden ser creadas de forma raacutepida y sencilla Dos de las preguntas maacutes frecuentes en Excel tienen que ver con coacutemo obtener la cuenta de todos los elementos de una lista y coacutemo crear una lista de elementos uacutenicos a partir de una lista que contieshyne muchos datos duplicados En este apartado le mostraremos coacutemo crear una tabla dinaacutemica raacutepida y faacutecilmente que resuelva estas tareas

Supongamos que tiene una larga lista de nombres en la columna A siendo la celda Al el encabezado Desea conocer cuaacutentos elementos hay en la lista asiacute como generar un listado con los elementos uacutenicos Para ello seleccione la celda Al (el encabezado) y luego vaya a DatosgtInforme de tablas y graacuteficos dinaacutemicos (en las versiones para Macintosh Datosgtlnforme de tablas dinaacutemicas) para abrir el asistente

4 Trucos sobre tablas dinaacutemicas 151

Aseguacuterese de que o bien tiene seleccionada la opcioacuten Lista o base de datos de Microsoft Excel o bien ha seleccionado una uacutenica celda dentro de los datos Esto permitiraacute a Excel detectar automaacuteticamente los datos subyacentes que se van a utilizar posteriormente Si estaacute utilizando la versioacuten de Windows seleccione la opcioacuten Tabla dinaacutemica en la parte inferior del cuadro de diaacutelogo Haga clic en el botoacuten Siguiente y el asistente deberiacutea haber tomado automaacuteticamente el rango correcto para los datos situados en la columna A (de hecho los marcaraacute en la hoja) Si es asiacute haga clic en el botoacuten Siguiente En caso contrario utilice el ratoacuten para seleccionar el rango correcto Ahora haga clic en el botoacuten Disentildeo y arrastre al aacuterea DATOS los que seraacuten soacutelo campos (deberiacutea ver el tiacutetulo que aparece en la celda Al ) Arrastre el campo nuevamente pero esta vez al aacuterea FILA Con ello la pantalla deberiacutea quedar como la que se muestra la figura 44 A continuacioacuten haga clic en Aceptar

A B

1 Nombres

2 Alex t -T 1 Ana

4 David

5 Guadalupe

6 Jaime 7 iexclJavier

8 Juan

9 Laida

10 Luis

11 Mar

14

15

16 bull

_ampo ae origen Nombres

hombre j dlfjiUAtJJMiilJfcU

1tiacute bull

19

20

21

22

H 4

Suma +

Promedio Max Miacuten Producto Contar nuacutemeros Juuml

C

I

-1 | PAGINA |

bull

D E I F

1 Nombres

ltJ

1 Aceptar ]

Cancelar

Ocultar j

Nuacutemero

FILA

G H

2ltiexcl

Construya el informe de tabla dinaacutemica arrastrando los botones de campo de la derecha sobre el diagrama a la izquierda

COLUMNA

Luenta de Nombres

DATOS

1 Nombres |-

Ayuda j | Aceptar | Cancelar j

l laquo l bull i r

Figura 44 Cuadros de diaacutelogo Campo de la tabla dinaacutemica y Asistente para tablas y graacuteficos dinaacutemicos

Llegados a este punto si lo desea puede hacer doble clic en el botoacuten de CL campo situado en el aacuterea DATOS (que tendraacute la etiqueta Cuenta de

v^^ nombres como puede verse la figura 43) y cambiar en el cuadro de lista Resumir por la opcioacuten seleccionada por cualquier otra (por ejemplo Suma Promedio etc) De forma predeterminada Excel utiliza la funcioacuten CONTAR si estaacute trabajando con texto y la funcioacuten SUMA si estaacute trabajando con nuacutemeros

Para terminar seleccione la opcioacuten Hoja de caacutelculo nueva como destino del informe de tabla dinaacutemica y haga clic en el botoacuten Finalizar Al hacer esto deberiacutea

152 Excel Los mejores trucos

ver la tabla dinaacutemica en una nueva hoja con teniendo los elementos uacutenicos de la lista jun to con el caacutelculo de cuaacutentas veces aparece cada elemento (nombre) en la lista

iquestQueacute ocurre si desea tener una macro que realizase todos estos pasos creando la tabla dinaacutemica a partir de una columna que especifique Si simplemente grashyba una macro se encontraraacute que a menudo soacutelo funciona si los datos tienen el mismo encabezado Para evitar este inconveniente puede crear una simple macro almacenada en el libro o en el libro personal de macros (lo veremos en el capiacutetulo 7) y que puede utilizar para crear una tabla dinaacutemica sobre cualquier lista de elementos Esto requeriraacute que escriba algo de coacutedigo geneacuterico en VBA e introdushycirlo en un moacutedulo estaacutendar dentro del libro de macros personal o en cualquier otro libro de trabajo

Para empezar vaya a HerramientasgtMacrogtEditor de Visual Basic (Alt Op-cioacuten-Fl 1) y luego vaya a lnsertargtMoacutedulo A continuacioacuten introduzca el siguiente coacutedigo

Sub ObtenerCuenta( ) Dim Pt As PivotTable Dim strField As String

strField = SelectionCells(11)Text Range(Selection SelectionEnd(xlDown))Ntildeame = Elementos

ActiveWorkbookPivotCachesAdd(SourceType=xlDatabase _ SourceData==Elementos)CreatePivotTable TableDestination= _ TableName=ListaElementos

Set Pt = ActiveSheetPivotTables(ListaElementos) ActiveSheetPivotTableWizard TableDestination=Cells(3 1) PtAddFields RowFields=strField PtPivotFields(strField)Orientation = xlDataField

End Sub

Para volver a la ventana principal de Excel cierre esta ventana o pulse Alt Comando-CLy grabe el libro de trabajo Antes de ejecutar este coacutedigo seleccione el encabezado de la lista y aseguacuterese de que eacutesta no contiene celdas en blanco

^ Si ordena lista se eliminaraacuten raacutepidamente las celdas en blanco

Este coacutedigo crearaacute automaacuteticamente un rango con nombre para la lista llashymado Elementos para a continuacioacuten crear una tabla dinaacutemica en una nueva hoja basaacutendose en este rango La proacutexima vez que tenga una larga lista con datos le bastaraacute con seleccionar su encabezado y ejecutar esta macro Todo el

4 Trucos sobre tablas dinaacutemicas 153

trabajo de configuracioacuten de la tabla dinaacutemica se realizaraacute en un abrir y cerrar de ojos

Q ^ Q Mover los totales finales de una tabla dinaacutemica n P^^fl U n a ^ e ^as c o s a s m a s gt r r t a n t e s de las tablas dinaacutemicas es que los totales ^ ^ ^ U ^ H finales que resumen los datos siempre terminan en la parte inferior de la

tabla lo que significa que tiene que desplazarse hasta ellos para poder verlos Moveremos estos totales a la parte superior donde es maacutes sencillo encontrarlos

Aunque las tablas dinaacutemicas son un gran meacutetodo para resumir datos y exshytraer informacioacuten uacutetil no hay una opcioacuten incorporada para hacer que el Total general aparezcan la parte superior de forma que sea localizable raacutepidamente

Antes de que pasemos a describir un meacutetodo m u y geneacuterico para mover dicho total a la parte superior explicaremos coacutemo puede atacar este problema utilizanshydo la funcioacuten IMPORTARDATOSDINAMICOS que ha sido disentildeada especiacuteficamente para extraer datos a partir de una tabla dinaacutemica

Puede utilizar esta funcioacuten de la siguiente forma

=IMPORTARDATOSDINAMICOS(Suma de la cantidad$B$5)

o asiacute

IMPORTARDATOSDINAMICOS ( C a n t i d a d $ B $ 5 )

Cada una de estas funciones extraeraacute los datos y haraacute un seguimiento del Total general a medida que eacuteste se mueva arriba abajo a izquierda o a derecha Hemos utilizado la direccioacuten $B$5 pero con tal de que utilice cualquier celda que esteacute dentro de la tabla dinaacutemica siempre obtendraacute el total

La primera funcioacuten utiliza el campo Suma de la cantidad mientras que la segunda utiliza el campo Cantidad Si la tabla dinaacutemica tiene el campo Cantishydad en el aacuterea de datos debe darle nombre a dicho campo Si por el contrario el campo estaacute siendo utilizado dos o maacutes veces en el aacuterea de datos deberaacute especifishycar el nombre que le dio o bien el nombre que aceptoacute de forma predeterminada (veacutease figura 45)

Puede hacer doble clic en estos campos para cambiarlos Este hecho puede parecer confuso si no estaacute m u y familiarizado con las tablas dinaacutemicas Por suershyte en Excel 2002 y posteriores el proceso es mucho maacutes sencillo ya que puede rellenar en una celda los argumentos y dar la sintaxis correcta utilizando el cursor del ratoacuten En cualquier celda escriba = (el signo de igual) y luego utilice el cursor del ratoacuten para hacer clic en la celda que actualmente contiene el Total general Excel rellenaraacute automaacuteticamente los argumentos

154 Excel Los mejores trucos

Aacuteltente para tmampmmmMmm i

oacute Construya el informe de tabla dinaacutemica arrastrando los botones de campo de la derecha sobre el diagrama a la izquierda

| PAGINA |

Producto

FILA

COLUMNA

Suma de Cantidad

ldeg de veces vendido

DATOS

[Producto j

| Cantidad I

[Comisioacuten iacute

I Meses |

1 A ntilde o s

Ayuda Aceptar |iexcl

Figura 45 El campo Cantidad utilizado dos veces con el nombre Suma de Cantidad en un caso y Ndeg de veces vendido en otro

Por desgracia si utiliza el asistente para funciones o escribe directashymente = IMPORTARDATOSDINAMICOS( ) y luego hace clic en la celda que contiene el Total general Excel se hace un liacuteo intentando anidar otra funcioacuten IMPORTARDATOSDINAacuteMICOS dentro de la celda

Probablemente el meacutetodo maacutes sencillo aunque menos sofisticado para exshytraer el Total general es utilizar la siguiente funcioacuten

=MAX(ColTFTab)

donde la columna que ac tua lmente contiene el Total general se l lama ColTFTab

Utilizar de forma efectiva datos de otro libro dinaacutemicamente Utilizaremos los datos que se encuentran en otro libro como origen para nuestra tabla dinaacutemica

Cuando se crea una tabla dinaacutemica en Excel disponemos de numerosas opshyciones a la hora de elegir el origen de los datos La aproximacioacuten maacutes sencilla y potente es utilizar los datos que residen dentro del mismo libro Sin embargo por alguna otra razoacuten esto no siempre es posible o factible Puede que los datos residan en otro libro en el que se introducen a diario por ejemplo y por otro lado no desea que esos usuarios puedan ver la tabla dinaacutemica

4 Trucos sobre tablas dinaacutemicas 155

Si utilizamos un rango dinaacutemico con nombre se produciraacute enormemente el tiempo para actualizar la tabla dinaacutemica Dado que no se puede hacer referencia a un rango dinaacutemico con nombre desde otro libro significa que no puede hacer que una tabla dinaacutemica haga referencia a quizaacute cientos de filas en blanco lo que causariacutea que el tamantildeo del archivo se incrementase sustancialmente De esta manera lo mejor es traspasar los datos desde otro libro y luego basar la tabla dinaacutemica en ellos en vez de tener que hacer una referencia externa

Estando en el libro que contendraacute la tabla dinaacutemica inserte una nueva hoja y llaacutemela Datos Abra el libro que contiene los datos a ser referenciados y aseguacuteshyrese de que la hoja que los contenga sea la activa A continuacioacuten en cualquiera de las celdas que sobre introduzca la siguiente foacutermula

= S I ( A 1 = M A 1 )

donde Al es el primero de todos los encabezados de la tabla con los datos Ahora seleccione la celda A l coacutertela active el libro original y peguacuteela en la

celda Al de la hoja Datos Esto le proporcionaraacute la referencia al otro libro Copie esta celda tantas columnas como encabezados haya en el origen de datos y luego seleccione la opcioacuten lnsertargtNombregtDefinir En el cuadro de texto Nombres en el libro escriba DatosDinamicos y en el cuadro de texto Se refiere a escriba lo siguiente

=DESREF($A$100CONTARA($A$A)CONTARA($1$1))

Haga clic en Agregar y luego en Aceptar A continuacioacuten inserte un coacutedigo que se ejecutaraacute cada vez que se abra el libro haciendo clic con el botoacuten derecho del ratoacuten en el icono de Excel (situado en la esquina superior izquierda la ventashyna)

Priacutevate Sub Workbook_Open( ) With Worksheets(Datos)

Range(21000)Clear

Range(11)AutoFill Range(11000)

Range(21000) = Range(21000)Valueacute End With End Sub

Este acceso directo no estaacute disponible para Macintosh Tendraacute que abrir el editor de Visual Basic pulsando Opcioacuten-Fll o bien yendo a HerramientasgtMacrogtEditor de Visual Basic Luego haga clic mientras pulsa la tecla Control en ThisBook situado en la ventana de proyectos

Para volver a la ventana principal de Excel cierre esta ventana o bien pulse Alt Comando-a

Excel Los mejores trucos

El coacutedigo anterior soacutelo incluye 1000 filas con datos Dicho nuacutemero siempre deberiacutea ser superior al nuacutemero de filas que cree que necesitaraacute En otras palabras si la tabla en el otro libro contiene 500 filas antildeada unos cientos maacutes para asiacute dejar espacio por si la tabla original crece

Evite utilizar un nuacutemero muy alto de filas (como por ejemplo 10000 a menos que tenga esa cantidad de datos) ya que esto afectaraacute a la velocidad con la que se ejecute el coacutedigo y se actualicen los datos

Guarde el libro cieacuterrelo y luego vuelva a abrirlo aseguraacutendose primero de activar las macros El coacutedigo que acabamos de antildeadir se lanzaraacute automaacuteticamente y copiaraacute las foacutermulas en la fila 1 de la hoja Datos y luego convertiraacute todas las filas excepto la primera en valores Esto no dejaraacute una copia del origen que se actualizaraacute cada vez que abra el libro

Ahora ya puede ocultar esta hoja si no desea seleccionando la opcioacuten FormatogtHojagtOcultar

A continuacioacuten para hacer que una tabla dinaacutemica se base en este rango dinaacutemico con nombre seleccione cualquier celda dentro de la tabla dinaacutemica y luego seleccione la opcioacuten del asistente situado en la barra de herramientas de tablas dinaacutemicas Haga clic en el botoacuten Anterior del asistente hasta que llegue al paso 1 Ahora seleccione la primera opcioacuten Lista o base de datos de Microsoft Excel haga clic en Siguiente y en el paso 2 escriba =DatosDinamicos (que es el nombre del rango dinaacutemico) Luego haga clic en Finalizar

No experimentaraacute el lapso de tiempo que a menudo ocurre cuando una tabla dinaacutemica hace referencia a un origen de datos externo porque ahora los datos se encuentran situados dentro del propio libro Ademaacutes de ello como puede utilizar el rango dinaacutemico con nombre la tabla dinaacutemica seraacute dinaacutemica sin tener que hacer referencia a filas en blanco mientras que el tamantildeo del archivo se mantieshyne razonablemente

CAPIacuteTULO 5

Trucos sobre graacuteficos Trucos 50 a 59

Los graacuteficos son una de las caracteriacutesticas maacutes populares de externo ya que proporcionan a las hojas de caacutelculo una potencia visual maacutes allaacute de unos caacutelculos

Aunque las capacidades graacuteficas de Excel son impresionantes muchas veces desearaacute ir maacutes allaacute de la funcionalidad baacutesica proporcionada por el asistente para graacuteficos incorporado para poder crear graacuteficos que sean maacutes activos en cuanto cambie los datos o simplemente para ir maacutes allaacute del rango de opciones que Excel ofrece Los trucos que presentaremos en este capiacutetulo le permitiraacuten hacer todo esto y mucho maacutes

Separar una porcioacuten de un graacutefico circular Aunque los graacuteficos circulares son una excelente ayuda visual a veces desearaacute separar una porcioacuten en particular del graacutefico Si la separa del resto del graacutefico le daraacute maacutes importancia

La opcioacuten predeterminada en un graacutefico circular seccionado que se separan todas las porciones y a la misma distancia Sin embargo con un par de clics de ratoacuten podremos separar una de ellas

Para comenzar configure un graacutefico circular baacutesico como el que se muestra en la figura 51

A continuacioacuten ha de hacer clic en el graacutefico circular y luego haga doble clic lentamente (dejando un pequentildeo espacio entre ambos clics) sobre la porcioacuten que desea separar Arrastre la porcioacuten seleccionada hacia fuera del centro del graacutefico y veraacute coacutemo queda separada tal y como puede verse en la figura 52

160 Excel Los mejores trucos

i A B C D i E bull F G 1 j Circular 2 A 1 3 B 1 4 C 1 5 -D 1 6 7 8 9 10 11 12 13 14

J5J 16 17 18 19

Circular

-^

1

^ m

s~ H F v^__g^

n H 4 bull bull Hojal MI

- j _ _ ^

BB

DC

D D |

ltr|

i raquoin Figura 51 Graacutefico circular simple configurado a partir de los datos de una hoja

A FJ C D 1 Eacute F G ] H iexcl J -H 1 Circular j 2 A 3 B 4 C 5 D 6 7 8 9 10 11 12 13 14 15 16 17 18 19

|M Iacute bull bull i Ho ja i | j j i raquo i n

Figura 52 Graacutefico circular simple con una porcioacuten separada

Al arrastrar una uacutenica porcioacuten dejaraacute el resto como estaban Puede repetir este proceso para el resto de las porciones si asiacute lo desea Esta teacutecnica tambieacuten funciona con los graacuteficos circulares en 3D Para hacer un graacutefico de este estilo haga clic en eacutel haga clic con el botoacuten derecho del ratoacuten y luego seleccione la opcioacuten Tipo de graacutefico y entonces seleccione el icono de graacutefico circular en 3D

Si desea separar todas las porciones al mismo tiempo simplemente haga clic en el graacutefico para seleccionarlo luego arraacutestrelo hacia fuera del centro del mismo y todas las porciones quedaraacuten separadas tal y como se muestra en la figura 53 Recuerde que cuanto maacutes separe las porciones maacutes pequentildeas quedaraacuten

5 Trucos sobre graacuteficos 161

A B C 1 Circular 2 A 1 3 B 1 4 C 1 5 D 1 6 7 8 9 10

JU 12 13 14 15 16 17 18 19

H i bull bulliXHojal

D E F G H I

Circular

Ilaquo

J z

_

bull i r Figura 53 Graacutefico circular en 3D con porciones separadas

Tambieacuten puede utilizar el proceso inverso si desea volver a jun ta r las porcioshynes de un graacutefico Para ello simplemente haga clic en una de las porciones y arraacutestrela hacia el centro del mismo para colocarlas juntas otra vez

TRUCO Crear dos conjuntos de porciones en un uacutenico graacutefico circular Muchas personas creen que un graacutefico circular estaacute limitado a solamente un conjunto de valores pero existe una forma de crearlo basaacutendose en dos columnas con valores

Resulta un poco complicado hacer que se puedan ver dos series de valores representados en ejes separados dentro de un uacutenico graacutefico pero el esfuerzo meshyrece la pena para ver el efecto resultante Para ver coacutemo funciona esto primero cree un graacutefico circular baacutesico Coloque algunos datos en el rango de celdas Bl C5 seleccione dicho rango y haga clic en el botoacuten Asistente para graacuteficos de la barra de herramientas En el paso 1 bajo el apartado Tipo de graacutefico seleccione el prishymer graacutefico circular Ahora haga las modificaciones pertinentes en el resto de pasos del asistente hasta llegar al paso 4 Al llegar ahiacute aseguacuterese de colocar el graacutefico como un objeto en la hoja actual

A continuacioacuten seleccione el graacutefico haga clic con el botoacuten derecho del ratoacuten sobre eacutel y vaya a Origen de datosgtSerie Haga clic en Agregar para antildeadir otra serie Seleccione la celda DI para el nombre y las celdas D2D5 para los valores y luego haga clic en Aceptar Obtendraacute un graacutefico como el que se muestra en la figura 54

162 Excel Los mejores trucos

A I B C 1 l 1 Graacutefico 1 Graacutefico 2 2 A 0049619 076617

D E

7

3 B 0416347 0835703 4 C 0157347 0650905 5 D 6 j

7 8 9 10 11 12 13 14 15 16 17 18 1 9

H 4 bull

0514901 0744752

Graacutefico 1

^^r^^

^

(

aW AfaV 1

v W bull ^ ^

bullI Hoja 1 ~~ trade~ | 4

F G H mdash

l A

BB

D C

D D

1 i gtir Figura 54 Un graacutefico circular configurado a partir de los datos de una hoja

Haga doble clic de nuevo en el graacutefico vaya a la pestantildea Eje y coloque la series en el segundo eje Haga clic en Aceptar El graacutefico circular todaviacutea parece ser el mismo en la superficie pero por debajo no lo es

Seleccione el graacutefico y mientras mantiene pulsado el botoacuten del ratoacuten arraacutesshytrelo fuera del centro y entonces suelte el botoacuten del ratoacuten con todo esto crearaacute un efecto de separacioacuten que era el que estaacutebamos buscando (veacutease figura 55)

A

1 I 2 A 3 B 4 C 5 D 6

7 8 9 bull 10 11 12 i

13 14 15 16 17 18 19 20

21 bull H 4 bull H ^

I B C D E F G H I i T i IGiifico 1 Graacutefico 2 I

0049619 0766177 0416347 0835703 0157347 0650905 0514901 0744752

^ ^ mdash I

^ r

[ ABBW W l^m D Graacutefico 2

D Graacutefico 11

V ^ ^ ^JLJ^

vHolal M I bull l l

Figura 55 Graacutefico circular con el eje secundario separado

Al separar el graacutefico circular no solamente estaacute separando los dos ejes (con lo que se ve el segundo graacutefico circular) sino que tambieacuten estaacute comprimiendo el

5 Trucos sobre graacuteficos 163

graacutefico circular situado en el eje secundario con lo que puede ver ya ambos graacuteshyficos

Ahora seleccione cada una de las porciones del graacutefico y arraacutestrelas de nuevo hacia el centro del mismo con lo que obtendraacute un graacutefico como el que se muesshytra en la figura 56 Recuerde que si hace dos clics lentamente se marcaraacute una porcioacuten individual del graacutefico

2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 4 4 bull HlXHojal

IGi oacutefico 1 Gi oacutetico 2 0049619 0766177

0416347 0157347 0514901

0835703 0650905 0744752

11 Graacutefico 2

B Graacutefico 1 I

id Figura 56 Graacutefico circular completo compuesto de dos graacuteficos

Si jun ta de nuevo todas las porciones de graacutefico circular tendraacute un graacutefico circular totalmente funcional en el que estaacuten dibujadas dos series de datos en ejes separados Ahora ya puede aplicar el color y el formato que desee

Crear graacuteficos que se ajusten a los datos Los graacuteficos pueden incluir y dibujar nuevos datos automaacuteticamente en el momento en el que los antildeada a la hoja de caacutelculo

Si utiliza rangos dinaacutemicos con nombre en vez de referencias a rangos el graacutefico dibujaraacute cualquier dato nuevo en el momento en el que lo antildeada a la hoja de caacutelculo Para ver coacutemo funciona esto comenzaremos con una hoja en blanco y la rellenaremos con algunos datos de forma parecida a como se muestra en la figura 57

Para crear el graacutefico y hacerlo dinaacutemico necesitaremos antildeadir dos rangos con nombre Uno de esos rangos seraacute para las etiquetas de la categoriacutea (Fechas) y otro para los puntos representados por los datos (Temperatura)

164 Excel Los mejores trucos

1 2 3 4 5 6 7 8 9 10 11 12 13 14

H 4

A B Fechas Temper 1102003 2102003 3102003 4102003 5102003 6102003 7102003 8102003 9102003

10102003 11102003

C aturas

10 12 13 13 12 14 15 13 12 11 10

bull H Hojal Hoja2 Hoja3 j lt

I D

l

E mdash

mdash

^ bull i r

Figura 57 Datos a partir de los cuales crearemos un graacutefico

Cree un rango dinaacutemico con el nombre FECHAS_TEMP para las fechas sishytuadas en la columna A Para ello vaya a lnsertargtNombregtDefinir y escriba la siguiente foacutermula

=DESREF($A$110CONTARA($A$A)-11)

Observe que hemos incluido un -1 inmediatamente despueacutes del primer argushymento de la funcioacuten CONTARA Esto asegura que el encabezado no se incluya en el rango con nombre para esa serie en particular

En este ejemplo hemos hecho referencia a toda la columna A en el S^ argumento ($A$A) de la funcioacuten CONTARA En versiones anteriores

~-V de Excel resulta una buena praacutectica restringir este rango al menor grupo de celdas posible para no antildeadir una sobrecarga innecesaria a los caacutelculos Esto es porque estaacute forzando a externo a buscar en miles de celdas innecesariamente De todas formas algunas funciones de Excel son lo suficientemente inteligentes para saber queacute celdas contienen datos aunque no todas ellas lo hacen A pesar de todo esto ya no es tan necesario en las versiones maacutes recientes de Excel ya que eacuteste ha mejorado el manejo de rangos de gran tamantildeo

A continuacioacuten para las lecturas de temperaturas de la columna B configure otro rango dinaacutemico que se llame LECTURAS_TEMP y utilizando la siguiente foacutermula

=DESREF($B$200CONTARA($B$B)-11)

Ahora ya puede crear el graacutefico utilizando los rangos dinaacutemicos con nombre que hemos creado en vez de utilizar referencias a celdas Seleccione el aacuterea de datos (el rango $A$1$B$11) y luego haga clic en el icono Asistente para graacuteficos

5 Trucos sobre graacuteficos 165

situado en la barra herramientas estaacutendar En el paso 1 seleccione el tipo de graacutefico que desee utilizar (para este ejemplo utilizaremos una columna) y haga clic en el botoacuten Siguiente En el segundo paso se le presentaraacuten dos pestantildeas Rango de datos y Serie Elija la segunda y entonces elimine la foacutermula que apashyrece en el cuadro de texto Valores introduciendo lo siguiente

=Hoj alLECTURAS_TEMP

Es muy importante que incluya el nombre de la hoja a la que hacen referencia las foacutermulas Si no lo hace no podraacute introducir el rango con nombre dentro de la foacutermula

Para terminar elimine la foacutermula que actualmente se encuentra en el cuadro de texto Roacutetulos del eje de categoriacuteas (X) e introduzca lo siguiente

=Hoj alFECHAS_TEMP

Complete los datos que se solicitan en el resto de pantallas del asistente realishyzando los cambios que sean necesarios El resultado deberiacutea parecerse al que se muestra en la figura 58

- t Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana l - 0 X

JUumlit

A1 fx Fechas

A T B Fechas Temperaturas

1102003 101

2102003 12

3102003 13

4102003 13

5102003 12

6102003 14

7102003 15

8102003 13

9102003 12|

10102003 11

11102003 101

bull M H o j a l Hoja2 Hoja3

Rango de datos Serie

u

mdash laTcmpcraturaJ

Agregar

Roacutetulos del eje de

M M B raquo bdquo j Nombre

_J Valores

Quitar |

categoriacuteas (X)

Cancelar

j=Hojal$B$l

|=HojalLECTURAS_TEMP

|=HojaliFECHAS_TEMP

lt Atraacutes 1 [SJSyregniquestegt|j

3

uuml

Uuml

Finalizar

MT

__

r Figura 58 Rangos dinaacutemicos con nombre en vez de referencias estaacuteticas a rangos

166 Excel Los mejores trucos

Una vez configurado este graacutefico cada vez que antildeada una nueva entrada ya sea en la columna A (Fechas) o en la columna B (Temperatura) se incluiraacute automaacuteticamente graacutefico

Dibujar los uacuteltimos x valores correspondientes a las lecturas

Otro tipo de rango con nombre que puede utilizar en los graacuteficos es aquel que solamente recoge las uacuteltimas 10 lecturas (o cualquier otro nuacutemero que desee) de una serie de datos Probaremos esto con los mismos datos que hemos utilizado en la primera parte del truco

Para las fechas que hay en la columna A configure un rango dinaacutemico con nombre llamado FECHAS_TEMP_1 ODIAS que hace referencia de la siguiente forshyma

= D E S R E F ( $ A $ 1 C O N T A R A ( $ A $ A ) - 1 0 0 1 0 1 )

Para las lecturas de la columna B configure otro rango dinaacutemico con nombre llamado LECTURAS_TEMP_1 ODIAS e introduzca lo siguiente

= DESREF(Hoj al$A$1CONTARA(Hoj al51$A$A) -101101)

Si desea cambiar el nuacutemero de lecturas (por ejemplo a 20) simplemente camshybie la uacuteltima parte de la foacutermula de forma que quede asiacute

= DESREF(Hoj al$A$1CONTARA(Hoj al5$A$A) - 2 0 12 01)

Al utilizar rangos dinaacutemicos con nombre en los graacuteficos dispone de una gran flexibilidad y ahorraraacute gran cantidad de tiempo al no tener que manipular los graacuteficos cada vez que antildeade nuevos datos

TRUCO Interactuar con los graacuteficos utilizando controles personalizados Para hacer que los graacuteficos sean realmente interactivos puede utilizar uno o maacutes rangos dinaacutemicos en los graacuteficos y luego utilizar una barra de desplazamiento o un cuadro de lista desplegable personalizado para mostrar las figuras que los usuarios de la hoja de caacutelculo desean ver

Como vimos en el truco anterior puede utilizar rangos dinaacutemicos con nomshybre para antildeadir flexibilidad a los graacuteficos Pero tambieacuten puede utilizar rangos dinaacutemicos con nombre para crear interfaces que controlen queacute datos deben ser dibujados por los graacuteficos Si vinculamos los rangos dinaacutemicos con nombre con controles personalizados permitiremos a los usuarios cambiar los datos de los

5 Trucos sobre graacuteficos 167

graacuteficos mediante dichos controles que se encargaraacuten de actualizar automaacuteticashymente los datos en la hoja o viceversa

Utilizar un rango dinaacutemico con nombre vinculado a una barra de desplazamiento

En este ejemplo utilizaremos una barra de desplazamiento para mostrar las figuras mensuales de un periacuteodo de 12 meses La barra de desplazamiento se utilizaraacute para modificar el nuacutemero de meses que se presentan El valor de dicha barra tambieacuten se utilizaraacute en el rango dinaacutemico que serviraacute como origen de los datos para graacutefico Para comenzar configure algunos datos de forma similar a los que se muestra en la figura 59

1 2 3

Mes

4 5 JAN 6 FEB 7 MAR 8 APR 9 MAY 10 JUN

[11 JUL 12 AUG 13 SEP 14 UumlCT 15 NOV 16 DEC 17 1 18

Producto XYZ

Ventas 2003

505 943 500 624 894 612 526 629 665 954 893 954

1 H 4 bull bull l H o j a l Hoja2 Hoja3 _ili

Figura 59 Datos de la hoja para un graacutefico dinaacutemico vinculado a una barra de desplazamiento

Cree un rango dinaacutemico con nombre seleccionando la opcioacuten lnsertargtNombregt Definir y llaacutemelo PERIODO_VENTAS En el cuadro de texto Se refiere a escriba lo siguiente

=DESREF($B$500$C$51)

Al utilizar la funcioacuten DESREF podemos usar la celda $C$5 para forzar al ranshygo referenciado en PERIODO_VENTAS a expandirse tanto arriba como abajo en funcioacuten del nuacutemero que aparezca en la celda $C$5 Es decir si por ejemplo camshybiamos el nuacutemero que hay en $C$5 por 5 estaremos obligando a que el rango incorpore las celdas B5B10

168 Excel Los mejores trucos

Si no desea que el usuario pueda ver la celda C5 puede ir maacutes allaacute y H^ ocultar el contenido de $C$5 haciendo clic con el botoacuten derecho del

^ ratoacuten sobre ella y seleccionando la opcioacuten Formato de celdas Luego seleccione la categoriacutea Personalizado e introduzca el formato Haga clic en Aceptar y el contenido de la celda C5 quedara oculto tal y como puede verse en la figura 59

Ahora cree un graacutefico (un graacutefico de liacuteneas o de columnas seriacutean los ideales) Cuando llegue al paso 2 del asistente vaya a la pestantildea Serie y cambie la foacutermushyla que aparece en el cuadro de texto Valores de forma que quede asiacute lt Nombre del libroxlsgtPERIODO_VENTAS Con esto el graacutefico seraacute dinaacutemico

Una vez haya creado graacutefico deberaacute insertar una barra de desplazamiento a traveacutes del cuadro de herramientas Formularios

La forma maacutes sencilla para hacer esto es hacer clic con el botoacuten derecho del ratoacuten en el aacuterea gris de la parte superior de la pantalla (donde estaacuten situadas las barras de herramientas pero en una parte que esteacute vaciacutea) y luego seleccionar la opcioacuten Formularios Con ello apareceraacute el cuadro de herramientas Formularios en la pantalla

Ahora haga doble clic en el icono Barra de desplazamiento Una vez insertada seleccioacutenela y mueacutevala hasta el graacutefico Luego haga clic con el botoacuten derecho sobre ella y seleccione la opcioacuten Formato de control

Cambie el valor miacutenimo a 1 y el valor maacuteximo a 12 y luego establezca el viacutenculo con celda a $C$5 El graacutefico resultante deberiacutea quedar como el que se muestra en la figura 510

L T 11 2

3

Mes 4 5 JAN

6 FEB 7 MAR 8 APR 9 MAY 10 JUN 11 JUL 12 AUG 13 SEP 14 OCT 15 NOV 16 DEC 17 18

Producto XYZ Ventas 2003

|n 4 bull n H o j a l

505 943 500 624 894 612 526 629 665 954 893 954

Hoja2

1000 -i

750 -

500 bull

250 -

0 -

iquest

JAN

A

A -y

FEB

Producto XYZ Ventas 2003

X V ^A X_

MAR APR MAY JUN JUL

_ 1 plusmnJ

UumlJJ

Figura 510 Graacutefico dinaacutemico vinculado a una barra de desplazamiento

5 Trucos sobre graacuteficos 169

Utilizar un rango dinaacutemico con nombre vinculado a un cuadro de lista desplegable

Otra variante posible es vincular el graacutefico con un cuadro de lista desplegable Comenzamos con algunos datos configurados como en la figura 59 Antildeada un rango dinaacutemico que utilizaremos como origen de los datos para graacutefico y que estaraacute vinculado a un cuadro de lista desplegable que podemos utilizar para ver los resultados de los exaacutemenes de un estudiante Utilizaremos por tanto el cuashydro desplegable para seleccionar el nombre del estudiante cuyos resultados deshyseamos ver Para ello introduzca la foacutermula =PROMEDIO (B6 B11) en la celda B12 y propaguacuteela hasta la celda F12 tal y como se muestra en la figura 511

A

1 l 2 3 4 5 6 Andreacutes 7 Carlos 8 Carolina 9 David 10 Esther 11 Frank 12 Promedio 13 14 15 16 17

4 sect 1

Ex ti ni A

C

Exam B 54 48 44 81 37 46 52

H lt bull H Hojal Hoja2Hoja3

89 72 39 93 58 69 70

D

Exam C 90 67 43 42 62 55 60

LLI

Exam D

H

74 85 68 47 67 41 64

F

Exam E 56 47 45 64 72 57 57

G

_J

plusmn

-

T bull i r

Figura 511 Graacutefico dinaacutemico vinculado a un cuadro de lista desplegable

Cree un rango dinaacutemico seleccionando la opcioacuten lnsertargtNombregtDefinir y llaacutemelo ESTUDIANTES En el cuadro de texto Se refiere a escriba lo siguiente

=DESREF($A$5$G$6115)

Cree otro rango dinaacutemico llamado NOMBRE_ESTUDIANTE y en el cuadro de texto Se refiere a escriba lo siguiente

= DESREF($A$5$G$60 1 1)

El uso de la referencia $G$6 en la foacutermula DESREF obliga a que los rangos referenciados para ESTUDIANTES y NOMBRE_ESTUDIANTE se expandan en funshycioacuten del nuacutemero introducido en la celda G6 Ahora cree un graacutefico de columnas agrupadas utilizando el rango A11F12 Cuando llegue al paso 2 del asistente vaya a la pestantildea Serie y cambie la referencia que aparece en el cuadro de texto Valores para la primera serie de forma que quede =ltNombre d e l l i b r o

170 Excel Los mejores trucos

x l s gt ESTUDIANTES En el cuadro de texto Nombre escriba =ltNombre d e l l i b r o x l s gt NOMBRE_ESTUDIANTE Llegados a este punto inserte un cuadro de lista desplegable desde el cuadro de herramien-tas Formularios Luego haga clic con el botoacuten derecho en dicho control y seleccio-ne la opcioacuten Formato de control e introduzca $A$6$A$11 para el rango de entrada y $G$6 como viacutenculo de celda Para terminar introduzca la funcioacuten CONCATENAR en una celda vaciacutea como por ejemplo la B4 de la siguiente forma

=CONCATENAR(MResultados para IacuteNDICE(A6A11G6))

Ahora si abre el cuadro de lista desplegable y selecciona un estudiante (veacutease figura 512) se mostraraacuten los resultados de sus exaacutemenes

B C D E Resultoacutelos |raquolttia Esthei Exam A Exam B Exam C Exam D

Andreacutes iexclCarlos (Carolina iexclDavid iexclEsther iexclFrank iexclPromedio

54 48 44 81 37 46 52

89 72 39 93 58 69 70

90 67 43 42 62 55 60

74 85 68 47 67 41 64

56 47 45 64

57 57

100

90

I I s f 1 1 1 p l iexcl J M M | f l f e l ^ M i f laquo ^ ^ I bull Esther I

Exam A bull Hiexcl HojalHoja2

Exam D

Figura 512 Un graacutefico dinaacutemico completo vinculado a un cuadro de lista desplegable

Tres formas raacutepidas para actualizar los graacuteficos Aunque es maravilloso crear nuevos graacuteficos actualizarlos para que reflejen los cambios producidos en la hoja puede llevar su tiempo Podemos reducir la cantidad de trabajo necesario para cambiar los datos utilizados por un graacutefico de diferentes formas

Utilizar arrastrar y colocar

Podemos antildeadir datos a una serie ya existente o crear una completamente nueva simplemente arrastrando y colocando los datos en un graacutefico Excel inten

5 Trucos sobre graacuteficos 171

tara decidir coacutemo debe t ratar los datos lo que significa que puede que antildeada la informacioacuten a una serie ya existente cuando en realidad lo que queriacuteamos era crear una nueva Sin embargo podemos hacer que Excel muestre un cuadro de diaacutelogo que nos permita elegir queacute accioacuten queremos realizar Introduzca algunos datos como los que se muestran en la figura 513

A 1 2 Enero 3 Febrero 4 Marzo 5 Abril 6 Mayo 7 8 9

| 10

B 2001

743 1

213 116

10

C 2002

7 3 2 1 3

D | 2003

3 10 4 9 4

Figura 513 Datos para un graacutefico de columnas agrupadas

Mediante el asistente para graacuteficos cree un graacutefico de columnas agrupadas soacutelo para el rango $A$1 $D$5 con lo que se obtendraacuten los resultados de la figushyra 514

25 -

jHi -J M

n

ariun Enero Febrero Marzo Abril

Figura 514 Graacutefico de columnas agrupadas creado para el rango A1D5

Seleccione el rango A6D6 haga clic con el botoacuten derecho en el borde de la seleccioacuten y sin soltarlo arraacutestrela hasta el graacutefico Suelte entonces el botoacuten y apareceraacute el cuadro de diaacutelogo Pegado especial tal y como se muestra en la figura 515 Seleccione la opcioacuten Columnas y haga clic en el botoacuten Aceptar Con esto se antildeadiraacute al graacutefico la serie de datos correspondiente a mayo tal y como se muestra en la figura 516 El cuadro de diaacutelogo Pegado especial nos ofrece la mayoriacutea de las acciones que necesitaremos para poder utilizar este truco

Utilizar la barra de foacutermulas

Tambieacuten podemos actualizar el graacutefico utilizando la barra de foacutermulas Cuando seleccionamos un graacutefico y hacemos clic en u n a serie de datos del mismo

172 Excel Los mejores trucos

observaraacute que en la barra de foacutermulas aparece la funcioacuten que Excel utiliza para la serie

Enero

Febrero

Marzo

Abril

M a j o

B

2001 C

2002 D

2003

743 1

213 116

1 0

F G

B B S Agregar celdas como

( Nueva serie

f Nuevos puntos

Valores (Y) en

lt Blas

amp iiquestolumnasj

Aceptar J

Cancelar I

25 -

20

15

10

5 -H

0 1poundL

D 2CL

uuml 2002

D 2003

P Categoriacuteas (roacutetulos de X) en ta pirnera columna

r

Enero Febrero Marzo Abril

bull bull Drag and Drop Usmg Formula Bat Dragging Bounding Atea j j _L ID Figura 515 Graacutefico de columnas agrupadas junto con el cuadro de diaacutelogo espacio

Pegado especial

Figura 516 Graacutefico de columnas agrupadas con la serie de datos correspondiente a mayo antildeadida

Dicha funcioacuten se llama SERIES y normalmente utiliza cuatro argumentos aunque el graacutefico de burbujas requiere un quinto elemento adicional (para el tamantildeo) La sintaxis de la funcioacuten SERIES es la siguiente

=SERIES( [Nombre][Valores X][Valores Y][Orden de dibujo])

Asiacute una funcioacuten SERIES vaacutelida podriacutea ser de la siguiente forma (veacutease figura 517)

= SERIES(Hoj al$B$1Hoj al$A$2$A$5Hoj al$B$2$B$51)

5 Trucos sobre graacuteficos 173

M raquo M I f H ^ iexcl j Archivo Edicioacuten Ver Insertar Formato Herramientas Graacutefico Ventana

J J A _J _ j j J J l C -j^ gU M

- ID) x |

- f f x

Sem lt 2004 bull ft =SERIES(Hoja2$B$1Hoja2$A$2$A$5Hoja2$B$2$B$51) A B C D E F G H

1 i 2 Enero T 3 IacuteFebrero 4 iMarzo 5 yAbnl 1 6

7 iexcl -Q-j

_

11 12 13 14

151 16 17 ]

18 19 20 21

23 H 4

2004 iexcl 743

1 213 116

2004

25 -i

20 -

15 -

5 -lis

fara

bull

laquo

IQ 20041 1

Enero Febrero Marzo Abril

bull n H oja 1gtH aja lHoja3 H |

J T

i gtir

Figura 517 Un graacutefico de columnas agrupadas con la barra de foacutermulas resaltada

Como puede verse en la figura anterior la primera parte de la referencia (Hojal$B$l) se refiere al nombre o al tiacutetulo del graacutefico que en este caso es 2004 La segunda parte (Hojal $A$2$A$5) se refiere a los valores X que en este caso son los meses La tercera parte (Hojal $B$2$B$5) se refiere a los valores Y que son 743 15 213 y 116 Finalmente la uacuteltima parte de la foacutermula (el 1) se refiere al orden de dibujo o al orden de la series En este caso como soacutelo hay una serie soacutelo podemos elegir el valor 1 Si hubiese maacutes de una serie la primera tenshydriacutea el nuacutemero 1 la segunda el nuacutemero 2 y asiacute sucesivamente Para realizar cambios al graacutefico simplemente modifique las referencias a celdas en la barra de foacutermulas

Ademaacutes de utilizar referencias a celdas puede introducir en los graacuteficos valoshyres expliacutecitos conocidos tambieacuten como constantes matriciales Para ello deberaacute antildeadir unas llaves por delante y por detraacutes de los valores X e Y como puede verse en la siguiente foacutermula

=SERIES(Mi b a r r a 11C D 1 2 3 4 1)

En esta foacutermula A B C y D seriacutean los valores X mientras que 1 2 3 y 4 seriacutean los valores Y correspondientes

174 Excel Los mejores trucos

Utilizando este meacutetodo puede crear o actualizar un graacutefico sin tener que alshymacenar los datos en celdas

Arrastrar el aacuterea del borde

Si los datos del graacutefico contienen referencias a celdas continuas puede extenshyder o reducir faacutecilmente el rango de datos de la serie arrastrando el borde hasta el punto deseado Haga clic en la serie que desea extender o reducir Despueacutes de hacer dos clics lentamente apareceraacuten unos pequentildeos recuadros negros alredeshydor del aacuterea de la serie (o en medio en caso de estar utilizando un graacutefico de liacuteneas) Soacutelo tiene que hacer clic en uno de esos recuadros y arrastrar el borde en la direccioacuten deseada tal y como se muestra en la figura 518

WBiexcl Microsoft EKCCI - Graficosxls

~ j j Archivo Edicioacuten Ver Insertar Formato Herramientas Graacutefico Ventana

J j J i j J J i t iquestx ^ 5uuml kg

Serie A Pun pound =SERIES(Hoja3$B$1Hoja3IacuteAIacute2$A$5Hoja3JB$2$B$51)

x

I I

a b c d

A B

^ 11

42

9J

c D B C

7 3

3 10

2 4

1 9

H I

tJr^i HWl D A

H B

D C

bull w_Hojal Ho ja2 Ho ja3 bull j r

Figura 518 Borde de una serie seleccionado

Si extiende o reduce los datos de una serie al igual que en la figura 519 el origen de datos original asiacute como las etiquetas del eje (en caso de estar configushyradas en automaacutetico) tambieacuten se modificaraacuten para reflejar los cambios que acashyba de realizar Esta teacutecnica es ideal para probar diferentes escenarios sobre todo en aquellas ocasiones en las que desee probar cuaacuteles seriacutean los diferentes resultashydos en funcioacuten de los conjuntos de datos que se utilicen

5 Trucos sobre graacuteficos 175

N raquo i M i f l t laquo B l Eacutel Archivo Edicioacuten

J J A 3 _jl

Serie A Pun bull

Ver Insertar Formato Herramientas GraacuteFico - S x

_ gt - iquest ^ -

A =5ERIES(HQja3$B$1HQJa3$A$2$A$5HQJa3$B$2$B$51)

A B

h ^

12

10

8

6

4

2

0

D H 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 13 19 20 ^1 H i bull wHojal Hoja2Hoja3

3 10 4 9

^

mdash DA HB DC

i r

Figura 519 Borde de una serie seleccionado despueacutes de ser expandido

TRUCO Crear un simple graacutefico de tipo termoacutemetro Excel no proporciona un tipo del graacutefico termoacutemetro Si desea uno tendraacute que construirlo

Es posible crear un graacutefico de tipo termoacutemetro sin mucho esfuerzo utilizanshydo el asistente para graacuteficos para crear un graacutefico de columnas agrupadas que compare valores a lo largo de las categoriacuteas y luego manipulando los diferentes elementos graacuteficos

Introduzca algunos datos de la misma forma que aparecen en la figura 520 y utilice el asistente para graacuteficos para crear un graacutefico baacutesico de columnas agrushypadas dibujando los datos en filas Para el ejemplo utilizaremos el rango B3C4

Elimine la leyenda y la cuadriacutecula (para ello simplemente seleccioacutenelas y pulshyse Supr) Deacute formato a la serie de datos Temperatura para el eje Y2 Para ello seleccione la serie haga clic con el botoacuten derecho del ratoacuten seleccione Formato de serie de datos vaya a la solapa Eje y luego seleccione la opcioacuten Eje secundario lo que haraacute que quede un graacutefico como el de la figura 521

De formato a los ejes Yl (a la izquierda) e Y2 (a la derecha) seleccionaacutendolos haciendo clic en el botoacuten derecho del ratoacuten sobre ellos seleccionando la opcioacuten

176 Excel Los mejores trucos

Formato de ejes y luego haciendo a la pestantildea Escala Establezca el valor miacutenimo a 0 y el maacuteximo a 100 la unidad mayor a 10 y la menor a 5 Con esto podraacute ver el graacutefico que se muestra en la figura 522

Caso [Temperatura

1 2 3 4 5 6 7 8 9 10 11 12 13 14 1C

H 4 bull wTermoacutemetro

100 40

D bull

120 n

100 -

80 -

60 -

40 -

20 bull

bull

E F G m

H bull

o Caso

bull Temperatura |

bull bull bull

JJLL JID Figura 520 Datos de la serie y creacioacuten de un graacutefico baacutesico de columnas agrupadas

1 2 3 4 5 b 7 8 9 10 11 12 13 14 15 16 17 18

14 4

A B

| Caso [Temperatura^

bull w Termoacutemetro

C

i oo 40J

D E F G H bull bull i

120 -j T 4 5

100 -

80 -

60 -bull

40 -

20 -

0

bull bull Bw H Hi HWHIIacuteIIIBIIacute8II

-40

-35

-30

-25

- 20 bull

- 15

- 10

- 5

I- 0 1

bull bull bull

I laquo I

mdash

i raquoir Figura 521 Dos series dibujadas en el eje Y2

Establezca el color para la serie con los casos en blanco la serie para las temshyperaturas en rojo y el aacuterea de dibujo en blanco Llegados a este punto el termoacuteshymetro deberiacutea empezar a tomar forma

Reduzca el valor de la propiedad Ancho del rango que encontraraacute en la pestantildea Opciones del cuadro de diaacutelogo que aparece al hacer clic con el botoacuten derecho del ratoacuten sobre las serie y elegir la opcioacuten Formato de serie de datos Por uacuteltimo elimine el eje X (seleccionaacutendolo y pulsando Supr) y luego cambie el tamantildeo y la

5 Trucos sobre graacuteficos 177

posicioacuten a su gusto Como se demuestra en la figura 523 retocando algunas de las caracteriacutesticas existentes en los graacuteficos de Excel puede conseguir construir un termoacutemetro totalmente funcional y con una apariencia impresionante

1 2 3 4 5 6 7 8

i 9

10 11 12 13 14 15 16 17 18 19 911

4 4

A B

CasoT iquestTemperatura^

bull M Termoacutemetro

C

loo 40

D E F G H i bull

90 -

80 -

70 -

60 -

50 -bull

40 -

30 -

20 -

10 -

_ U -

iexcliexclbullSill l liexcliexcli l l | ||

- 1111111 [iiiiiiiiiiilaailBiij -

bull

- 9 0

bull 80

-70

-60

-50

- 40

- 30

-20

- 10

bull bull

M

bull

bull

bull

I J T i _ j

1

__i uumld Figura 522 Serie con los casos en el eje Yl y serie con las temperaturas en el eje Y2

ambos con formato ideacutentico

1

2 3 4 5

6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

|H 4

A B

Caso ^Temperatura^

bull M Termoacutemetro

C

icio 40

D E F G 1 bull bull

90 -

80 -

70 -

60 -

bull 50 -

40 -

30 -

20 -

10 -

0 -

i i iwi^^Ma -- ^ ^ H H | -

iMH^^SI -EHBB

- |sect||1| - PiPiacuteiSilil

- 90

- 80

bull 70

bull 60

- 50 bull

- 40

- 30

- 20

- 10

L M a H S plusmn 0

M

H 1 ~Z

H

1 gtir Figura 523 Graacutefico estilo termoacutemetro completada

178 Excel Los mejores trucos

Crear un graacutefico de columnas con anchos y altos variables iquestNo seriacutea estupendo poder crear un graacutefico de columnas las cuales pudiesen variar en ancho y alto Luego a medida que se dibujan los datos en dichas columnas su ancho y su alto se ajustariacutean inteligentemente y de forma simultaacutenea

Excel no proporciona esta caracteriacutestica directamente pero trucando un graacuteshyfico XY de dispersioacuten podemos crear un graacutefico de columnas de ancho variable m u y efectivo Los graacuteficos de dispersioacuten se utilizan para comparar valores por lo que proporcionan una base perfecta sobre la que comenzar a crear un graacutefico de columnas de ancho variable

La figura 524 muestra un graacutefico de columnas de ancho variable que dibuja el porcentaje compartido comparado con el coste de los siguientes gastos gas electricidad agua comida viajes y otros El eje X (el eje a lo largo de la parte inferior del graacutefico) muestra los porcentajes mientras que el eje Y (el eje que se encuentra en la parte izquierda) muestra el coste en dinero

1 2

A B C Columnas de ancho variable

3 Gas 4 Electricidad 5 Agua 6 Comida 7 Viajes 8 iexcl Otros

r 0 1

2 Iacute3

14 15 Iacute6 17 18 19 201 21 22 23 24 25 jiquestl I 4

Comp Coste (euro) 02 150 015 1125 012 90 03 225 007 525 016 120

250 -

200 -

amp 150 bull

1

u 100 -

50 -

n -c

bull M Hojal

bull

bull

02 04

L

D E X Y 0 =C3 =B3+D2 =C3 =B4+D3 =C4 =B5+D4 =C5 =B6+D5 =C6 =B7+D6 =C7 =B8+D7 =C8

bull

06 08

F Supr

=D3-D2 =D4-D3 =D5-D4 =D6-D5 =D7-D6 =D8-D7

bull

1

G I nfe r =E2 =E3 =E4 =E5 =E6 =E7 =E8

12

H Arriba =C3-E2 =C4-E3 =C5-E4 =C6-E5 =C7-E6 =C8-E7

l

bull Serie

1 J EtiqEscala X EtiqEscala Y

=f(D3-D2)2)+D2 0 =((D4-D3)2)+D3 0 =((D5-D4)2)+D4 0 =(YD6-D5)2)+D5 0 =((D7-D6)2)+D6 0 =((D8-D7)2)+D7 0

j laquo l 1

K Texto EtiqEscala

=B3 =B4 =B5 =B6 =B7 =B8

bull in Figura 524 Graacutefico XY de dispersioacuten configurado para el rango D2E8

Para crear este graacutefico introduzca algunos datos como los que se muestran en la figura 524 y utilizando el asistente para graacuteficos seleccione el rango D2E8 En el paso 1 seleccione el tipo de graacutefico XY de dispersioacuten Acepte los valores

5 Trucos sobre graacuteficos 179

predeterminados para este graacutefico que muestran solamente los puntos y haga clic en Siguiente En el paso 2 aseguacuterese de que la opcioacuten Columnas estaacute selecshycionada Haga clic en Siguiente y en el paso 3 del asistente en el cuadro de texto Valor (Y) escriba Coste ($) Haga clic en el botoacuten Siguiente y aseguacuterese de que el graacutefico seraacute generado como un objeto no en una nueva hoja Para terminar haga clic en el botoacuten Finalizar para ver el graacutefico resultante

Para ver las foacutermulas correctas en su sitio en las celdas seleccione la K^ opcioacuten HerramientasgtOpciones y luego vaya a la pestantildea Ver y actiacutevela

-V casilla de verificacioacuten Foacutermulas

Ha llegado el momento de manipular el graacutefico para crear las columnas Prishymeramente elimine la leyenda y la cuadriacutecula (basta con seleccionarlas y luego pulsar Supr) Cambie el formato del aacuterea de dibujo para que no se rellene haga clic en el color de fondo gris luego haga clic con el botoacuten derecho sobre eacutel y seleccione Formato del aacuterea de trazado Seleccione la opcioacuten Ninguna en el apartashydo Aacuterea

Seleccione el eje X y luego haga doble clic sobre eacutel para acceder al cuadro de diaacutelogo Formato de ejes Vaya a la pestantildea Escala e introduzca un miacutenimo de 0 y un maacuteximo de 1 Vaya a la pestantildea Tramas y seleccione la opcioacuten Ninguna en Marca de graduacioacuten principal y en Roacutetulos de marca de graduacioacuten seleccione Ninguno Luego haga clic en Aceptar con lo que el graacutefico se pareceraacute al que se muestra en la figura 525

El siguiente paso seraacute crear las liacuteneas para las columnas asiacute que haga doble clic sobre los puntos de los datos para abrir el cuadro de diaacutelogo Formato de serie de datos Vaya a la pestantildea Barras de error X En la seccioacuten Presentar seleccione la opcioacuten Por defecto y luego seleccione la opcioacuten Personalizada y establezca el rango G2G8 Al hacer clic en Aceptar obtendraacute los lados verticales de las coshylumnas

Ahora que ya hemos hecho el trabajo duro es el momento de retocar un poco el graacutefico y antildeadir algunas etiquetas Primeramente en el cuadro de diaacutelogo Forshymato de serie de datos vaya a la pestantildea Tramas y seleccione la opcioacuten Ninguno en el apartado Marcador Los resultados se muestran en la figura 526

Si desea utilizar etiquetas deberaacute descargar las herramientas para graacuteficos de John Walkenbach disponibles en httpj-walkcomssexcelfilescharttoolshtm Una parte de este componente estaacute disentildeado especiacuteficamente para etiquetas de datos

Le permite especificar un rango de la hoja para las etiquetas de datos que se utilizaraacuten en la serie de un graacutefico (por desgracia parece que este componente no funciona en la versioacuten de Macintosh de Excel)

180 Excel Los mejores trucos

A B C Columnas laquole ancho variable

D

Gas Electricidad Agua Comida Viajes [Otros

JoComp Coste (euro) 02 015 012 03 007 016

150 1125 90 225 525 120

0 =C3 =B3+D2 =C3 =B4+D3 =C4 =B5+D4 =C5 =B6+D5 =C6 =B7+D6 =C7 =B8+D7 =C8

F Supr

H

=D3-D2 =D4-D3 =D5-D4 =D6-D5 =D7-D6 =08-07

Infer Arriba =E2 =E3 =E4

=C3-E2 =C4-E3 =C5-E4

=E5 =C6-E5 =E6 =C7-E6 =E7 =C8-E7 =E8 iexclI

i EtiqEscala X

250

200 -I

$ 1 50 4 o

w 100

50

0

4 bull n Ho ja l

J K EtiqEacutescala Y Texto EtiqEscala

=((D3-D2)2)+D2 0 =((D4-D3)2)+D3 0 =((D5-D4)2)+D4 0 =((D6-D5)2)+D5 0 =(D7-D6)2)+D6 0 =((D8-D7V2)+D7 0

=B3 =B4 =B5 =B6 =B7

LIacuteO Figura 525 Graacutefico de dispersioacuten modificado

A Columnas lt

B C le ancho variable Comp Coste (euro)

Gas Electricidad Agua Comida Viajes Otros

02 015 012 03 007 016

150 1125 90 225 525 120

0 =B3+D2

=B4+D3 =B5+D4 = =B6+D5 B7+D6 =

=B8+D7 =C8

Supr

=03-02 =04-03 =D5-D4 =06-05 =07-06 =D8-D7

G Infer

H Arriba

=E2 =E3 =E4 =E5 =E6 =E7 =E8

=C3-E2 =C4-E3 =C5-E4 =C6-E5 =C7-E6 =C8-E7

^ bull nHojal

EtiqEscala X EtiqEscala Y Texto EtiqEscala

=((D3-D2)2)+D2 =((D4-D3)2)+D3 =((D5-D4)2)+D4 =((D6-D5)2)+D5 =((D7-D6)2)+D6 =((D8-D7)2)+D7

=B3 =B4 =B5 =B6 =B7

X Figura 526 Graacutefico de dispersioacuten manipulado para producir un graacutefico con columnas

de ancho variable

Antes de utilizar estas herramientas deberaacute antildeadir una nueva serie de datos para proporcionar las etiquetas al eje X del graacutefico Para ello seleccione el graacutefi-

5 Trucos sobre graacuteficos 181

co haga clic con el botoacuten derecho sobre eacutel y seleccione la opcioacuten Datos de origen y luego vaya a la pestantildea Serie Haga clic en Agregar para antildeadir una nueva serie En el cuadro de texto Valores X seleccione el rango 1318 y en el cuadro de texto Valores Y seleccione el rango J3J8 De formato a la nueva serie de forma que no tenga marcador para ello abra el cuadro de diaacutelogo Formato de serie de datos vaya a la pestantildea Tramas y luego en el apartado Marcador seleccione la opcioacuten Ninguno Ahora llega el momento de utilizar el componente Aseguacuterese de que tiene seleccionada la serie 2 y vaya a GraacuteficogtJWalk Chart Tools Cuando se abra el cuadro de diaacutelogo haga que el rango de la etiqueta de datos sea K3K8

Para antildeadir una nueva serie de datos para proporcionar las etiquetas de la columna seleccione el graacutefico haga clic con el botoacuten derecho sobre eacutel seleccione Datos de origen y luego vaya a Serie Haga clic en Agregar para antildeadir una nueva serie En Valores X seleccione el rango 1318 y en Valores Y seleccione el rango C3C8 De nuevo de formato a la nueva serie de forma que no tenga marshycador de la misma forma que indicamos anteriormente

Nuevamente usaremos el complemento pero esta vez seleccionaremos la serie 3 y vincularemos las etiquetas de datos a A3A8 El resultado deberiacutea ser como el que se muestra en la figura 527

1 2

A Columnas

3 Gas [ 4 Electricidad 5 Agua 6 Comida 7 Viajes | 8 |Otros | 9 10 11 12 13 14 15 16 17

18 19 20 21 22 23 24 25

|H 4

250 -

200 -

- 150 -

- 100 -

50 -

0 -

bull bull H o j a l

B C de ancho variable Cornp Coste(euroj

20 15000 euro 15 11250 euro 12 9000 euro 30 22500 euro 7 5250 euro

16 12000 euro

D E X Y

0 150 2000 150 3500 1125 4700 90 7700 225 8400 525

10000 120

F Supr

r2000 r1500 r1200 r3000 t 700 1600

Gas

Electricidad

Agua

20 15 12

G Inferior

150 150

1125 90

225 525 120Iacute

Comida

30

H Vriba

0 -375 -225

135 -1725

675

I J EtiqEscala X EtiqEscala Y

1000 0 2750 0 4100 0 6200 0 8050 0 9200 0

Viajes

Otros

7 16

M

K _ _ j

Texto EtiqEscala ~

20 15 12 30 7

16

- J

ir Figura 527 Graacutefico con columnas de ancho variable completado

Lo mejor de este tipo de graacuteficos es que las barras se expandiraacuten o contraeraacuten a lo largo de los ejes X e Y cuando los valores introducidos en las columnas Compartido y Coste cambien

182 Excel Los mejores trucos

Crear un graacutefico de tipo velociacutemetro Es posible crear un velociacutemetro realmente impresionante y funcional con su aguja movible todo ello gracias a la combinacioacuten de graacuteficos circulares y graacuteficos de anillo El truco estaacute en controlar el velociacutemetro a traveacutes de una barra de desplazamiento

El asistente para graacuteficos de Excel ofrece diferentes tipos de graacuteficos aunque no uno como el que queremos hacer Un graacutefico de tipo velociacutemetro proporciona una forma ingeniosa de representar los datos Con este truco podemos crear un velociacutemetro y una barra de desplazamiento a partir del cuadro de herramientas que serviraacute para modificar el graacutefico y cambiar los valores de la hoja simultaacuteneashymente

Lo primero que debemos hacer es introducir algunos datos al igual que se muestra en la figura 528 y luego crear un graacutefico de tipo anillo Eacutestos funcioshynan de forma similar a los graacuteficos circulares aunque permiten contener muacuteltishyples series cosa que los graacuteficos circulares no pueden

1 2 3 4 5 6 7 8 9 10 11

12 13 14 15 16 17 18 19 20

H lt

A Bandas

25 75_

bull bull l H o j

180

B Marcas

=(180100)A2 =(180100)(A3-A2) =360-

JJ_

SUMA(B2B4)

C D Etiquetas Marcas Etiquet

180 =$F$3amp50 9 0 18 10 18 20 18 30 18 40 18 50 18 60 18 70 18 80 18 90 9 100

Bajo Normal Alto

i l L

as comp

E F Aguja

200 Comp =((180100)F3)-1 |50 2 =360-SUMA(E2E4)

_ J

=

H-

MTJ Figura 528 Datos configurados para ser usados por el velociacutemetro

Aseguacuterese de mostrar las foacutermulas en la hoja Para ello vaya a Herramientasgt OpcionesgtVer y active la casilla de verificacioacuten Foacutermulas aunque esto seraacute un proceso largo

Ahora seleccione el rango B2B5 y seleccione el asistente para graacuteficos En el paso 1 en la pestantildea Tipos estaacutendar seleccione el primer tipo de graacutefico de anillo Haga clic en Siguiente y en el paso 2 aseguacuterese de que los datos se dibujaraacuten por filas Haga clic de nuevo en Siguiente y realice cualquier cambio que considere necesario en el paso 3 (aunque no lo son para este truco) Vaya al paso 4 hacien-

5 Trucos sobre graacuteficos 183

do clic en Siguiente y aseguacuterese de que el graacutefico se generaraacute como un objeto (es la opcioacuten predeterminada) Al general graacutefico como un objeto resultaraacute maacutes senshycillo trabajar con eacutel y asiacute poder configurar el velociacutemetro (veacutease figura 529)

Velociacutemetro

Figura 529 Graacutefico de anillo baacutesico

Seleccione el graacutefico de anillo y seleccione la porcioacuten maacutes grande haciendo doble clic lentamente para luego seleccionar la opcioacuten Formato de punto de datos e ir a la pestantildea Opciones Establezca el aacutengulo para esta porcioacuten en 90 grados Vaya a la pestantildea Tramas y configure el aacuterea y el borde de esta porcioacuten a Ningushyno Haga clic en Aceptar y haga doble clic lentamente para seleccionar cada uno de las porciones restantes Haga doble clic entonces para volver al cuadro de diaacuteshylogo anterior y establecer el color como sea necesario Al final el graacutefico de tipo anillo deberiacutea parecerse al que se muestra en la figura 530

V

Figura 530 Graacutefico de tipo anillo con aacutengulo de 90deg sin color ni borde en la primera porcioacuten

Ahora necesitamos antildeadir otra serie (Serie 2) de valores para formar los segshymentos para las etiquetas del semiciacuterculo Para ello seleccione el graacutefico haga clic en el botoacuten derecho sobre eacutel seleccione la opcioacuten Datos de origen y luego

184 Excel Los mejores trucos

vaya a la pestantildea Serie Haga clic en el botoacuten Agregar con el que crearaacute una nueva serie y luego en Valores seleccione el rango C2C13 Haga clic de nuevo en el botoacuten Agregar para antildeadir una tercera serie (Serie 3) con la que crearemos la aguja del velociacutemetro En Valores seleccione el rango E2E5 Al final el resulshytado deberiacutea ser como el de la figura 531

Figura 531 Graacutefico de tipo anillo con muacuteltiples series

Llegados a este punto el velociacutemetro estaacute empezando a tomar forma Si desea antildeadir etiquetas a este graacutefico necesitaraacute descargar una herramienta para poder antildeadirlas libremente Vaya a httpj-walkcomssexcelfilescharttoolshtm donde podraacute descargar Chart Tools de Jonh Walkenbach

Parte de este complemento que por desgracia soacutelo funciona con Windows estaacute disentildeado especiacuteficamente para crear etiquetas de datos Nos permite especishyficar un rango de una hoja para las etiquetas de datos que se utilizaraacuten en la serie de un graacutefico el complemento tambieacuten contiene otras caracteriacutesticas que pasamos a detallar a continuacioacuten

bull Tamantildeo del graacutefico Permite especificar un tamantildeo exacto para un graacuteshyfico y tambieacuten permite hacer que todos los graacuteficos tengan el mismo tashymantildeo

bull Exportar Le permite guardar los graacuteficos como archivos gif jpg tif o png

bull Imagen Convierte un graacutefico en una imagen (a color por escala de grises)

bull Tamantildeo del texto Congela el tamantildeo de todos los elementos de texto en un graacutefico de forma que si eacuteste cambia de tamantildeo los elementos de texto no lo haraacuten

bull Informe del graacutefico Genera un informe de resumen para todos los graacuteshyficos o bien un informe detallado para uno en particular

5 Trucos sobre graacuteficos 185

Utilice este complemento para dar formato a la serie 2 para que se muestren las etiquetas de datos utilizando el rango D2D13 Manteniendo seleccionada la serie 2 haga doble clic sobre ella para abrir el cuadro de diaacutelogo de formato Vaya a la pestantildea Tramas y seleccione Ninguno tanto para el borde como para el aacuterea Con ello el graacutefico deberiacutea parecerse al que se muestra en la figura 532

Figura 532 Graacutefico de tipo velociacutemetro mejorado junto con las etiquetas

Seleccione la serie 3 haga clic con el botoacuten derecho sobre ella y seleccione Tipo de graacutefico Cambie esta serie para que sea del tipo graacutefico circular predeterminashydo Siacute parece extrantildeo (veacutease figura 533) pero podemos asegurar que si el graacutefishyco circular se superpone con el graacutefico de anillo es que lo ha hecho todo correctamente

Figura 533 Graacutefico de tipo velociacutemetro superpuesto con el graacutefico circular

A continuacioacuten es necesario reducir el tamantildeo de graacutefico circular que acabashymos de colocar sobre el graacutefico de anillo Para ello sepaacuterelo en diferentes porcioshynes y luego vuelva a ensamblar las maacutes pequentildeas Seleccione una porcioacuten de graacutefico circular (haciendo dos clics lentamente en la porcioacuten que desea modifi-

186 Excel Los mejores trucos

car) y arrastraacutendola hacia afuera Esto haraacute que el graacutefico circular se separe y se haga maacutes pequentildeo tal y como se muestra en la figura 534

Velociacutemetro

5G Cotnp

Figura 534 Graacutefico circular separado y cambiado de tamantildeo

Ahora seleccione todo el ciacuterculo haga doble clic sobre eacutel y en el cuadro de diaacutelogo Formato de serie de datos vaya a la pestantildea Opciones Cambie el aacutengulo de la primera porcioacuten a 90 grados Seleccione una a una el resto de las porciones y haciendo clic con el botoacuten derecho del ratoacuten vuelva a este cuadro de diaacutelogo y luego vaya a la pestantildea Tramas Ahiacute seleccione Ninguno tanto para el borde como para el aacuterea de todas las porciones excepto para la tercera que deberaacute estar relleshynada con un color negro Esto produciraacute un graacutefico como el que se muestra en la figura 535

Velociacutemetro

Figura 535 Graacutefico de tipo velociacutemetro en el que solamente la tercera serie del graacutefico circular muestra un color

Si desea antildeadir una leyenda seleccione el graacutefico haga clic con el botoacuten dereshycho del ratoacuten y seleccione la opcioacuten Opciones del graacutefico Luego vaya a la pestantildea Roacutetulos de datos y seleccione la opcioacuten Clave de leyenda Esto produciraacute un velo-

5 Trucos sobre graacuteficos 187

ciacutemetro como el de la figura 536 Ahora mueva cambie el tamantildeo y modifique el graacutefico si asiacute lo desea

Velociacutemetro

D Normal

bull Alto

Figura 536 Graacutefico de tipo velociacutemetro con una leyenda

Ahora que el graacutefico de tipo velociacutemetro estaacute construido necesitamos crear una barra de desplazamiento a partir del cuadro de herramientas y hacer que este control y el graacutefico puedan comunicarse entre ellos

Para ello deberaacute mostrar el cuadro de herramientas Formularios haga clic con el botoacuten derecho ratoacuten en un aacuterea vaciacutea de la barra de herramientas (a la derecha de donde se encuentran las barras de herramientas estaacutendar y de formashyto) y seleccione en el menuacute la opcioacuten Formularios Ahora seleccione el icono Barra de desplazamiento y dibuje dicha barra en cualquier lugar de la hoja

Seleccione la barra de desplazamiento que acaba de dibujar haga clic con el botoacuten derecho sobre ella y seleccione la opcioacuten Formato de control Elija como celda vinculada la celda F3 establezca un valor maacuteximo de 100 y un valor miacutenishymo de 0 Cuando cierre este cuadro de diaacutelogo y mueva la barra de desplazashymiento sobre el graacutefico veraacute algo parecido a lo que se muestra en la figura 537

Figura 537 Graacutefico de tipo velociacutemetro ya terminado

188 Excel Los mejores trucos

Al hacer clic en las flechas o al arrastrar el selector de la barra de desplazashymiento haraacute que el velociacutemetro se modifique Pero recuerde esto tambieacuten camshybiaraacute los datos de la hoja de caacutelculo que estaacuten vinculados con el graacutefico

Vincular los elementos de texto de un graacutefico a una celda Cuando se crean y se utilizan graacuteficos repetidamente puede ser uacutetil conocer coacutemo vincular algunos de los textos de los graacuteficos como por ejemplo tiacutetulos y etiquetas directamente a una celda Esto quiere decir que si los datos subyacentes al graacutefico cambian los datos del graacutefico y sus elementos de tipo texto siempre estaraacuten en armoniacutea

Los elementos de tipo texto de un graacutefico que puede vincular a una celda son el tiacutetulo principal del graacutefico los tiacutetulos primario y secundario de los ejes X e Y asiacute como las etiquetas de datos de las series

Para ver coacutemo se hace esto vincularemos el tiacutetulo del graacutefico con una celda Para ello comenzaremos introduciendo algunos otros como los que se muestran en la figura 538 y mediante el asistente para graacuteficos crearemos un graacutefico de columnas agrupadas baacutesico Ahora haga clic en la celda Al 7 y escriba Edad de los empleados

A Fecha

1 122003 ] 2122003 3122003 4122003 5122003 6122003 iexcl 7122003 8122003

9122003 10122003 11122003 12122003 13122003 14122003

B Edad 1

2 3 4 5 6 7 8

trade9

10

TIacute 13 Iacute4 15

3S 17 bull Edad de los empleados 18

Iacute 9 mi H laquo bull bullIJXHoial

20 25 26 23 24 21 20 19 25 26 24 23 21 22

30

25

20

15 10

5

0

4

Edad

h DEdad

iquestF

_plusmnid Figura 538 Graacutefico de columnas agrupadas con su tiacutetulo creado a traveacutes del asistente

El siguiente paso seraacute crear un viacutenculo entre el tiacutetulo del graacutefico y la celda Para ello seleccione el tiacutetulo del graacutefico (Edad en este caso) luego vaya a la barra de foacutermulas escriba un = haga clic en la celda Al 7 y pulse Intro (tenga en

5 Trucos sobre graacuteficos 189

cuenta que si hace referencia a una celda que se encuentra otra hoja tendraacute que escribir primero el nombre de la hoja seguido del signo de admiracioacuten y del nomshybre de dicha celda)

Este mismo proceso funciona para las etiquetas de datos aunque necesitaraacute seleccionar una etiqueta de datos individual antes de vincularla con una celshyda Los resultados obtenidos deberiacutean parecerse a los que le mostramos en la figura 539

A Fecha

1122003 2122003 3122003 4122003 5122003 6122003 7122003 8122003 9122003

10122003 11122003 12122003 13122003 14122003

B Edad

20 25 26 23 24 21 20 19 25 26 24 23 21 22

Edad de los empleados

fEdad de los empleados I B laquo 1

30 -

25

20

15 -H D Edad

iquest y y y y y

H lt bull n H o j a l l i lL id Figura 539 Graacutefico de columnas agrupadas con el tiacutetulo vinculado a la celda Al 7

Este sencillo truco le permitiraacute conseguir que los elementos de texto del graacutefishyco y los datos del graacutefico esteacuten en armoniacutea Ademaacutes le ahorraraacute gran cantidad de tiempo a la hora de crear graacuteficos

Trucar los datos de un graacutefico de forma que no se dibujen las celdas en blanco Excel trata las celdas en blanco como si tuvieran un valor de 0 lo que puede provocar que se generen graacuteficos un tanto feos Esto provoca que la representacioacuten de valores de un graacutefico caiga de repente con lo que queda un graacutefico que no dibuja con precisioacuten la imagen que estaacute intentando mostrar Con el siguiente truco nos aseguraremos de que las celdas en blanco no sean dibujadas

Es posible impedir que se dibujen las celdas en blanco de dos formas m u y sencillas bien ocultando las filas con las columnas o bien haciendo que dichas celdas devuelvan el valor NA

Excel Los mejores trucos

Ocultar filas y columnas

Configure algunos datos de forma que queden como en la figura 540 Cree un graacutefico de liacuteneas y vea coacutemo queda si tiene valores 0 dibujados Seleccione el rango A1B12 abra el asistente para graacuteficos y configure el graacutefico de liacuteneas como un objeto para la hoja de caacutelculo actual

A 1 Enero 2 Febrero 3 Marzo 4 Abril 5 Mayo 6 Junio 7 Julio 8 Agosto 9 Septiembn 10 Octubre 11 Noviembre 12 Diciembre 13 14 15 16 17 18 19 20 21 22 i

B 300 350 325 275

0 0 0 0 0 0 0 0

|n 4 bull H Ocultar filas Devolver NA lt j bull ) f]

Figura 540 Datos y un graacutefico de liacuteneas que estaacute dibujando los valores 0

A 6 C D EacuteT F G H iexcl J 1 Enero 300 2 Febrero 350 3 Marzo 325 4 Abril 275 13 14 15 16 17 18 19 20 21 22 23 24 25

I H 4 bull H Ocultar filas Devolver NA ltiexcl j bull | f j

Figura 541 Datos con las filas 5 a 12 ocultas con el graacutefico dibujando solamente los valores de enero a abril

El graacutefico de la figura 540 estaacute dibujando los resultados de ventas por meses Esto significa que si el mes actual es abril el graacutefico estaraacute dibujando ocho meses

190

400

350

300

250

200

150

100

50

mdash eacute mdash | mdash mdash | mdash mdash | mdash mdash | mdash mdash | mdash mdash | mdash eacute mdash

iquestdeg^deggtdegaacutegtgt0 ltgtdeg w ^gtgtvy gt cr ^ iquestp

400 -i

350 bull

300 bull

250 bull

200 -

150 bull

100 bull

50 bull

0 bull

Enero

| mdash laquo mdash Ser ie l

Febrero M a r i o

^ mdash bull bull

i

Abri l

5 Trucos sobre graacuteficos 191

de celdas vaciacuteas dado que todaviacutea no disponemos de los datos desde mayo a diciembre

Para evitar este inconveniente bastariacutea con ocultar las filas 5 a 12 (mayo a diciembre) Al hacer esto Excel no dibuja los datos que haya en filas ocultas con lo que obtendremos un resultado como el de la figura 541 Para ocultar estas filas seleccioacutenelas y luego vaya a FormatogtFilagtOcultar

CAPIacuteTULO 6

Trucos sobre foacutermulas y funciones

Trucos 60 a 80

Las foacutermulas y funciones proporcionan la loacutegica que da potencia a las hojas de caacutelculo Saber manipular la loacutegica de programacioacuten siempre resulta un reto pero mantener un seguimiento de la loacutegica de programacioacuten a lo largo de muacutelt ishyples celdas hojas y libros puede ser particularmente difiacutecil especialmente cuanshydo estas hojas de caacutelculo crecen y son reutil izadas Y lo que es maacutes las caracteriacutesticas incorporadas en Excel en relacioacuten a las foacutermulas y funciones pueshyde que no siempre sean las que desea Por suerte existen numerosas formas de mantener en buen estado esas foacutermulas y funciones

Antildeadir un texto descriptivo a las foacutermulas Los rangos con nombre de Excel y los comentarios de celdas pueden ayudar a clarificar las foacutermulas pero a veces desearaacute poder antildeadir maacutes documentacioacuten dentro de los propios foacutermulas Con los trucos de este apartado podraacute antildeadir un texto descriptivo a las foacutermulas de forma raacutepida y sencilla

Incluso cuando haya escrito varias foacutermulas y funciones por usted mismo cuando tenga que volver a ellas maacutes adelante normalmente tendraacute que seguir las referencias a celdas para averiguar queacute era lo que haciacutea la funcioacuten Seriacutea una gran idea asiacute se pudiese antildeadir al final de la foacutermula alguacuten texto (que no interfishyriese con el resultado) que proporcionase maacutes informacioacuten sobre el mecanismo de la foacutermula para asiacute poder consultarlo maacutes adelante

El problema por supuesto es que en el momento en el que antildeada texto como parte de la foacutermula el resultado de la misma no seraacute numeacuterico y no podraacute ser

uuml

194 Excel Los mejores trucos

utilizado en caacutelculos posteriores Excel sin embargo proporciona una funcioacuten a menudo olvidada que puede utilizar para antildeadir texto descriptivo a las foacutermulas o a las funciones

Digamos que tiene la siguiente foacutermula en la celda Al 1

=SUMA($A$1$A$10)$B$1

Suponiendo que $A$1$A$10 contienen varios resultados numeacutericos que reshypresentan los totales para un mes en particular y que $B$1 contiene el porcenshytaje que representa un impuesto podemos antildeadir alguacuten texto descriptivo a la foacutermula utilizando la funcioacuten N de Excel

=SUMA($A$1$A$10N(Valores para abril))$B$1+N(Impuesto para abril)

Ahora puede determinar para queacute se estaacute utilizando la foacutermula simplemente seleccionando esta celda y mirando la barra de foacutermulas La funcioacuten N siempre devuelven un valor de 0 sea cual sea el texto por lo que no interfiere con el resultado total de la foacutermula

0 ^ 3 Mover foacutermulas relativas sin cambiar las referencias ) ^ V ^ ^ H En Excel una referencia de una foacutermula puede ser relativa o absoluta Sin

^ ^ ^ ^ ^ ^ | embargo algunas veces desearaacute reproducir las mismas foacutermulas en alguacuten otro lugar de la hoja o el libro o incluso en otra hoja diferente

Cuando una foacutermula necesita hacerse absoluta escriba el signo del doacutelar ($) delante de la letra de la columna y o del nuacutemero de la fila que hace referencia una celda como por ejemplo en $A$1 Una vez hecho esto no importa doacutende copie la foacutermula que la referencia se mantendraacute a la misma celda

Aveces de todas formas desearaacute configurar numerosas foacutermulas que no conshytengan referencias absolutas pero siacute relativas Normalmente hariacutea esto de forma que cuando copie la celda con la foacutermula original en otro rango las referencias a columnas y filas cambien en funcioacuten de la nueva ubicacioacuten

Por uacuteltimo otras veces desearaacute configurar las foacutermulas utilizando una mezshycla de referencias relativas y absolutas y desearaacute reproducirla en otro rango de la misma hoja en otra hoja del mismo libro o incluso en una hoja de otro libro Puede hacer todas estas cosas sin tener que cambiar ninguna referencia a rangos que haya dentro de las foacutermulas

Seleccione el rango de celdas que desea copiar Vaya a EditargtReemplazar y en el cuadro de texto Buscar escriba = (un signo de igual) En el cuadro de texto Reemplazar con escriba (el signo de la arroba) o cualquier otro siacutembolo que sepa que no esteacute siendo utilizado por ninguna de las foacutermulas A continuacioacuten haga clic en el botoacuten Reemplazar todos

6 Trucos sobre foacutermulas y funciones 195

Todas las foacutermulas apareceraacuten en la hoja con el signo en lugar del signo = Ahora simplemente puede copiar este rango pegarlo en el destino que desee seleccionar dicho rango de destino e ir a EdicioacutengtReemplazar donde esta vez reemplazaremos el signo por el signo = Con ello conseguiremos que las foacutershymulas hagan referencia a las mismas celdas que lo haciacutean las originales

Comparar dos rangos de Excel Buscar las diferencias entre dos grandes tablas con datos puede ser una tarea muy costosa Afortunadamente al menos hay dos meacutetodos con los que podemos automatizar lo que de otra manera seriacutea un proceso manual muy tedioso

Estos dos meacutetodos ya los hemos utilizado anteriormente cuando recibimos una copia actualizada de una hoja de caacutelculo y necesitaacutebamos identificar queacute celdas en la copia actualizada eran diferentes de las celdas que habiacutea en la copia original Ambos meacutetodos nos ahorraraacuten el tedioso trabajo de hacer una comproshybacioacuten manual y lo que es maacutes importante evitaraacuten la posibilidad de cometer errores Para los siguientes ejemplos hemos copiado los datos maacutes nuevos en la misma hoja en la que estaban los antiguos En la figura 61 se muestra coacutemo se presentan los datos en dos rangos Tenga en cuenta que para facilitar la lectura hemos puesto en negritas las celdas de la tabla 2 que no son iguales que las correspondientes de la tabla 1

1 A B C 1 Nombre Edad Aacuterea 2 Juan 22 1a 3 Antonio 33 la 4 Marta 55 2c 5 Cristina 48 3d 6 Mariacutea 29 3d 7 Carlos 45 4a

3 9 Nombre Edad Aacuterea 10 Juan 22 2c 11 Antonio 33 1a 12 Marta 55 2d 13 Cristina 43 3d 14 David 29 3d 15 Carlos 45 4a 16

H 4 bull raquo l _Hoia l Hoia2 jHpja3

D E F G 7

mdash-

mdash I laquol l bull i f l Figura 61 Dos rangos a ser comparados

Meacutetodo 1 Utilizar Verdadero o Falso

El primer meacutetodo implica introducir una simple foacutermula en otro rango con el mismo tamantildeo y composicioacuten La parte mejor de este meacutetodo es que puede antildea-

196 Excel Los mejores trucos

dir la foacutermula en un solo paso sin tener que copiar y pegar Para comparar los rangos que se muestran en la figura 61 seleccione el rango E1G7 comenzando por la celda El Esto aseguraraacute que dicha celda sea la activa en la seleccioacuten

Una vez seleccionado el rango haga clic en la barra de foacutermulas y escriba lo siguiente

=A1=A9

Introduzca esta foacutermula pulsando Control-Intro al mismo tiempo De esta forma estaraacute introduciendo la foacutermula con referencia relativa en cada una de las celdas de la seleccioacuten Eacuteste es un meacutetodo estaacutendar para introducir una foacutermula en una matriz de celdas y hacer que esa referencia cambie de forma apropiada seguacuten cada celda

El rango El G7 deberiacutea rellenarse con el valor Verdadero (son iguales) o Falso (no son iguales)

Si los dos conjuntos de datos residen en diferentes hojas de caacutelculo puede utilizar una tercera hoja para almacenar los valores VerdaderoFalso simpleshymente introduciendo la foacutermula en la matriz correspondiente Por ejemplo sushyponiendo que la segunda tabla estaacute en la Hoja2 y comienza en la celda A9 y la tabla original estaacute en la Hojal y comienza en la celda A l deberaacute introducir en la tercera hoja la siguiente foacutermula utilizando el meacutetodo de la matriz

=Hoja l Al=Hoja2A9

Puede que encuentre uacutetil a ajusfar el zoom cuando trabaje con gran cantidad de datos

Para eliminar una foacutermula introducida en una matriz debe seleccionar x y eliminar todo el rango No podraacute por consiguiente eliminar w solamente una parte de eacutel

Meacutetodo 2 Utilizar el formato condicional

El segundo meacutetodo es normalmente el preferido ya que es maacutes sencillo hacer los cambios necesarios una vez que se realiza la comparacioacuten Sin embargo con este meacutetodo ambos conjuntos de datos deben estar en la misma hoja lo que significa utilizar la funcioacuten de copiar y pegar simple

De nuevo supondremos que estamos comparando los dos rangos que dijimos antes Seleccione el rango Al C7 comenzando por la celda A l de forma que nos aseguremos que sea la celda activa

Eacutey

^A

6 Trucos sobre foacutermulas y funciones 197

Una vez hecho esto vaya a FormatogtFormato condicional Elija la opcioacuten Foacutershymula en el cuadro de lista desplegable y al cuadro de texto situado su derecha escriba la siguiente foacutermula

=N0(A1=A9)

Haga clic en el botoacuten Formato (veacutease figura 62) y elija el formato con el que desea remarcar aquellas celdas que sean diferentes

31

A g r e g a r raquo j Eliminar | j Aceptar | Cancelar I

Figura 62 Cuadro de diaacutelogo de formato condicional

Haga clic en Aceptar y todas las celdas que sean diferentes tendraacuten el formato que definioacute en el paso anterior

Si real iza cambios en los da tos el f o r m a t o de las celdas cambia raacute automaacuteticamente dependiendo de si la comparacioacuten con las celdas de la otra tashybla es verdadera o falsa

B| Rellenar todas las celdas en blanco en una lista H bullbullKfl A m e n u d o m u c n a gente deja celdas en blanco si el dato que deben

I ^ H Iacute I contener es el mismo que el de la celda inmediatamente superior Visualmente esto hace que las listas sean maacutes sencillas de leer pero desde el punto de vista estructural no es una buena idea Con los trucos de este apartado podraacute rellenar las celdas en blanco de una lista de forma raacutepida y sencilla

Muchas de las funciones de Excel estaacuten disentildeadas para ser utilizadas en listas Para que la mayoriacutea de estas funciones hagan su trabajo correctamente las lisshytas no deben contener ninguna celda en blanco y los encabezados de las columshynas deben estar configurados con un formato diferente al de los datos

Cuando rellenar datos en Excel resulta una buena praacutectica asegurarse de que todas las celdas que estaacuten dentro de una lista tienen alguacuten valor dentro de ellas Sin embargo muchas listas estaacuten configuradas de forma similar a como se muesshytra en la figura 63

Mientras que los precios se repiten en la columna Coste los tipos de frutas en la columna Frutas no Como ya sentildealamos al principio del capiacutetulo 1 esto puede

_j p _ _ _ Vista previa del formato que desea usar cuando a condicioacuten sea verdadera AaBbCcYyZz

198 Excel Los mejores trucos

crear muchos problemas cuando se utilicen caracteriacutesticas tales como subtotales y tablas dinaacutemicas En la mayoriacutea de los casos Excel espera que los datos relacioshynados esteacuten configurados en una lista o tabla continua en la que no haya celdas en blanco

I ^ B C D E 1 F GTJ 1 Frutas Coste 2 Manzana 125 euro 3 125 euro 4 Plaacutetano 255 euro 5 255 euro 6 255 euro 7 Naranja 155 euro 8 155 euro 9 155 euro 10 Pera 455 euro 11 12 13 14 15 16 J 17 18

|H lt bull M Hojal Hoja2 Hoja3 |_ltj l HU

Figura 63 Lista de una hoja configurada con celdas en blanco

Existen dos meacutetodos para rellenar las celdas en blanco de una lista con una foacutermula y con una macro

Meacutetodo 1 Rellenar las celdas en blanco mediante una foacutermula

Digamos que tiene una lista con entradas en la columna A similar a la del ejemplo anterior y con una lista que contiene numerosas celdas en blanco A continuacioacuten mostramos un meacutetodo faacutecil y raacutepido para rellenar esas celdas en blanco con los valores de las celdas inmediatamente superiores

Seleccione todos los datos de la columna A vaya a Edicioacutengtlr a (Control-I) y luego haga clic en Especial Seleccione el botoacuten de opcioacuten Celdas en blanco y haga clic en Aceptar Llegados este punto hemos seleccionado solamente las celshydas vaciacuteas que se encuentran dentro de la lista Pulse la tecla = (signo de igual) y luego la tecla cursor arriba Ahora mientras mantiene pulsada la tecla Control pulse la tecla Intro Puede convertir raacutepidamente las foacutermulas a valores simpleshymente seleccionando la columna A por completo Vaya a EdicioacutengtCopiar (Con-trol-C) luego vaya a EdicioacutengtPegar especial active la casilla de verificacioacuten Valores y haga clic en el botoacuten Aceptar

6 Trucos sobre foacutermulas y funciones

Meacutetodo 2 Rellenar las celdas en blanco a traveacutes de una macro

Si va a tener que rellenar celdas en blanco con frecuencia deberiacutea considerar resolver este problema utilizando una macro La siguiente macro realiza todo este trabajo

Para crearla vaya a HerramientasgtMacrogtEditor de Visual Basic (AltOpcioacuten-Fl 1) luego seleccione la opcioacuten de menuacute lnsertargtMoacutedulo e introduzca el siguiente coacutedigo

Sub RellenarBIancos( ) Dim rRangel As Range rRange2 As Range Dim IReply As Integer

If SelectionCellsCount = 1 Then MsgBox Debe seleccionar la lista e incluir las celdas en blanco_ vblnformation Aviso ~~ Exit Sub

Elself SelectionColumnsCountgtl Then MsgBox Debe seleccionar soacutelo una columna _ vblnformation Aviso Exit Sub

End If

Set rRangel = Selection

On Error Resume Next

Set rRange2 = rRangelSpecialCells(xlCellTypeBlanks) On Error GoTo 0

If rRange2 Is Nothing Then MsgBox No se encontraron celdas en blanco _

vblnformation Informacioacuten Exit Sub

End If

rRange2FormulaRICl = =R[-1]C

IReply = MsgBox(iquestConvertir a valores vbYesNo + vbQuestion Atencioacuten)

If IReply = vbYes Then rRangel = rRangelValueacute End Sub

Despueacutes de introducir este coacutedigo cierre la ventana para volver a la ventana

principal de Excel y guardar el trabajo Ahora vaya a HerramientasgtMacrogtMacros

(AltOpcioacuten-F8) seleccione la macro RellenarBIancos y haga clic en el botoacuten

Ejecutar aunque tambieacuten puede utilizar el botoacuten Opciones y asignar esta macro

a una tecla de acceso raacutepido

200 Excel Los mejores trucos

Q H Q Hacer que las foacutermulas se incrementen por filas | V ^ f l cuando las copie a lo largo de las columnas

^ M B B M La funcioacuten de Excel que incrementa automaacuteticamente las referencias a celdas funciona bastante bien en la mayoriacutea de los casos pero a veces desearaacute cambiar la forma en la que lo hace

Por ejemplo puede que desee hacer referencia a una uacutenica celda como puede ser A l y luego copiar esta referencia a lo largo de las columnas que hay a la derecha Normalmente Excel cambiaraacute la referencia de la siguiente forma = B1 = C1 =D1 etc lo cual no es el resultado que deseamos En este caso queremos que las foacutermulas se incrementen por filas en vez de por columnas es decir =A1 =A2 =A3 etc Por desgracia no hay una opcioacuten en Excel que le permita hacer esto Pero podemos conseguir realizar todo esto mediante la funcioacuten INDIRECTO y la funcioacuten DIRECCIOacuteN situada dentro del anterior

Quizaacute la mejor forma de explicar coacutemo crear la funcioacuten requerida es utilizar un ejemplo en el que los resultados sean predecibles En las celdas Al A10 introshyduzca los nuacutemeros del 1 al 10 en este orden Seleccione la celda DI e introduzca la siguiente foacutermula en ella

= INDIRECTO(DIRECCIOacuteN(COLUMNA() - 31) )

Tan pronto como introduzca esto el nuacutemero 1 deberiacutea aparecer en la celda d i Esto es debido a que la foacutermula hace referencia a la celda A l

Si copia esta foacutermula a lo largo de las columnas situadas a la derecha la celda El contendraacute el nuacutemero 2 Es decir a pesar de que estamos copiando a lo largo de las columnas la referencia de la foacutermula se estaacute incrementando por filas tal y como se muestra en la figura 64

Este meacutetodo es especialmente uacutetil cuando una hoja de caacutelculo tiene encabezados que van de arriba a abajo en una columna y desea crear una referencia dinaacutemica a esos encabezados de fila a lo largo del resto de columnas

Si sigue copiando esto hacia la derecha la celda Fl contendraacute el nuacutemero 3 la celda Gl contendraacute el nuacutemero 4 etc Eacuteste es un proceso muy faacutecil de seguir si solamente se hace referencia a una uacutenica celda Pero muchas veces necesitaraacute hacer referencia a un rango de celdas que estaacute siendo utilizado como argumento de una funcioacuten Utilizaremos la popular funcioacuten SUMA para demostrar a queacute nos referimos Suponga que recibe una larga lista de nuacutemeros y su trabajo es sumar la columna de nuacutemeros para obtener un total algo parecido a esto

=SUMA($A$1$A$2) =SUMA($A$1$A$3) y =SUMA($A$1$A$4)

6 Trucos sobre foacutermulas y funciones 201

IB Microsoft Excel -Libro bull-bull 1- WMSSU^^^^^M

41 J Aria

LU 1 2

3 4 5 6 7 8 9 10 11 12 13 14 15

16 17 18 19

illaquo 4

Listo

Archivo

J d

D1

A

Edicioacuten

J _J

1

2

3 4 5 6 7 8 9

10

Ver Insertar Formato Herramientas Datos Ventana

j Jk U -J ^ - 9 Iacuteiquest s - iquest1 M ioo iacute o N J s i i i ^ j ooo euro oE bdquodeg8 m O - gt

pound =INDIRECTO(DIRECCION(COLUMNA0-31))

B C ~~ D I

1 1

E F G

2

bull H Hojal Hoja2 X H o j a 3 j lt j |

MAYUacuteS NUM

~ _ _

mdash

^ bull i r

Figura 64 El resultado de copiar la celda DI a la celda El

El problema surge porque los resultados necesitan ser dinaacutemicos y expandirse a lo largo de las 100 columnas solamente para la fila 1 no 100 filas hacia abajo en otra columna (como suele ser lo habitual)

Naturalmente podriacutea escribir manualmente esas funciones en cada celda individual pero eso seriacutea un trabajo m u y largo En vez de eso puede utilizar el mismo principio el que hemos utilizado antes al referenciar a una uacutenica celda

Rellene el rango A l A l 0 0 con los nuacutemeros 1 al 100 en este orden Para ello introduzca un 1 en la celda A l seleccioacutenela y mientras mantiene pulsada la tecla Control haga clic en el pequentildeo recuadro de la esquina inferior derecha y arrasshytre el cursor del ratoacuten hasta la fila 100 Ahora seleccione la celda DI e introduzca la siguiente foacutermula

=SUMA(INDIRECTO(DIRECCIOacuteN(11) amp amp DIRECCIOacuteN (COLUMNA () -21) ) )

Esto le daraacute un resultado de 3 que se corresponde con la suma de las celdas A1A2 Copie esta foacutermula en la celda El y obtendraacute un resultado de 6 que se corresponde con la suma de las celdas AlA3 De igual manera al copiar la foacutershymula en la celda Fl obtendraacute un resultado de 10 que es la suma de las celdas A1A4 (veacutease figura 65)

202 Excel Los mejores trucos

B Microsoft Excel - Libro 1 ^muuml

iquestsectj Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana T f l x

J J J J J J i ^ a iquest -J ^ - ^ 9 amp pound - H Uuml JjJJ 4gt 1007o v |

Arial - 10 - N iT S ^ W M ^j ^J 000 euro t bdquodeg8 pound^ D T ^ T A T |

DI ^ ^ =SUMA(INDIRECTQ(DIRECCION(11)ampampD1RECCIQM(CQLUMNAO-21)))

2 3 4 5 6 7 8 9 10 11 12 13 14

1Fiexcl H i bull Listo

H

1 2 3 4 5 6 7 8 9

10 11 12 13 14 15

Hojal Hoja2 XHoja3

B C D I E F G H 6 10

i r

Figura 65 Resultado de copiar la celda DI en la celda Fl

La funcioacuten volaacutetil COLUMNA hace que la uacutel t ima referencia a celdas se incremente en un 1 cada vez que la copia en una nueva columna Esto es debido a que la funcioacuten COLUMNA siempre devuelve el nuacutemero de la columna (no la letra) de la celda que la contiene a menos que haga referencia a una celda difeshyrente

Otra alternativa es utilizar la funcioacuten Pegado especialgtTrasponer de Excel Antildeada la foacutermula =SUMA ($A$1 $A2) a la celda Bl (observe que hemos utilizado una referencia relativa a fila y absoluta a columna en $A2) y luego copie esta foacutermula hacia abajo hasta la celda B100 Teniendo seleccionadas las celdas B2B100 coacutepielas seleccione la celda DI (o cualquier celda que tenga 100 o maacutes columnas a la derecha) y luego vaya a EdicioacutengtPegado especialgtTrasponer Si lo desea puede eliminar las foacutermulas que hay en B2B100

Convertir fechas en fechas con formato de Excel Las fechas que se importan desde otros programas suelen causar problemas en Excel Mucha gente reescribe manualmente esas fechas pero existen meacutetodos maacutes sencillos para solucionar este problema

Como puede verse en la figura 66 las foacutermulas en la columna B convierten los datos situados en la columna A en tres resultados en la columna C todos ellos siguiendo el formato de fecha americano de mmdd aa

La figura 67 muestra el mismo meacutetodo excepto que las celdas de la columna C tienen el formato de fechas europeo (ddmmaa)

6 Trucos sobre foacutermulas y funciones 203

B Fecha antigua Foacutermula utilizada Resultado 112303 =IZQUIERDA(A2iexcl2)ampTampEXTRAE(A232)amp7ampDERECHA(A22) 112303 031123 =EXTRAE(A332)amp7ampDERECHA(A32)amp7ampIZQUIERDAfA3iexcl2) 11 23D3 231103 = EXTRAE (A4 3 2) amp ampIZQ UIE R D A(A42) amp7 ampD E R E C H A(A4 2) 11 23D3

Figura 66 Formatos de fecha convertidos en fechas vaacutelidas (formato americano)

A B C Fecha antigua Foacutermula utilizada Resultado 112303 =EXTRAEIacuteA232)amp7ampIZQUIERDAIacuteA2iexcl2)amp7ampDERECHA(A22) 2311 03 031123 =DERECHAfA3iexcl2)amp7ampEXTRAEiacuteA3iexcl32)amp7ampIZQUIERDAfA3iexcl2J 2311 flB 231103 = IZQ UIE R D A(A4 2) amp7 ampEXTR AE (A4 3 2) amp7 ampD E R E C H A(A4 2) 2311 03

Figura 67 Formatos de fecha convertidos en fechas vaacutelidas (formato europeo)

Por suerte estas interesantes foacutermulas nos quitaraacuten algo de estreacutes a la hora de trabajar con fechas importadas

Sumar o contar celdas evitando valores de error Los valores de error son advertencias muy uacutetiles pero a veces desearaacute hacer los caacutelculos sin tener en cuenta esos errores Para poder hacer esto tendremos que utilizar funciones que sean tolerantes a dichos errores

Teniendo un rango de celdas que contienen uno o maacutes valores de error la mayoriacutea de las foacutermulas que hagan referencia a ese rango tambieacuten devolveraacuten un valor de error Podemos evitar esta frustracioacuten si utilizamos la funcioacuten BDSUMA

Supongamos que tiene una larga lista de nuacutemeros de los que desea obtener la suma total Sin embargo una de las celdas por cualquier razoacuten estaacute devolvienshydo un valor de error NA

Rellene algunos datos de la misma forma que aparecen en la figura 68

Para generar el error NA introduzca la foacutermula =NA () en las celdas A2 y B2 La celda Al 2 utilizar la funcioacuten estaacutendar SUMA que suma los valores de las celdas A2A11 y dado que la celda A2 contiene el error NA la funcioacuten SUMA tambieacuten devolveraacuten dicho error Al rango DI D2 se le ha dado el nombre Criterio y se utiliza como uacuteltimo argumento para la funcioacuten BDSUMA que se encuentra en la celda B12

La sintaxis para la funcioacuten BDSUMA (y para todas las funciones de base de datos) es la siguiente

=BDSUMA(base de datoscampocriterio)

204 Excel Los mejores trucos

1 2 3 4 5 6 7 8 9 10 11 12

A Nuacutemeros

NA

B Nuacutemeros2

1 2 3 4 5 6 7 8 9

NA 1 2 3 4 5 6 7 8 9

C

Figura 68 Datos rellenados de forma que generan un error NA

El argumento base de datos identifica al rango de celdas que componen la lista o la base de datos Dentro del rango de base de datos las filas con informashycioacuten son tratadas como registros mientras que las columnas son tratadas como campos

La primera fila contiene etiquetas para todas las columnas que sirven a modo de encabezados

El argumento campo indica queacute columna es utilizada en la funcioacuten La coshylumna puede ser identificada por el nombre utilizando las etiquetas que se enshycuentran en la parte superior de la columna o bien puede ser identificada por su posicioacuten La primera columna es la 1 la cuarta es la 4 etc

El argumento criterio identifica un rango de celdas que contienen condicioshynes El rango que se utiliza para el criterio debe incluir al menos una etiqueta de columna ademaacutes de al menos una celda por debajo de ella que especifique una condicioacuten para la columna

Si los datos que desea sumar contienen diferentes tipos de errores deberaacute conshysiderar utilizar la funcioacuten BDSUMA junto con un amplio rango de criterios que se acomoden a todos los posibles errores Sin embargo lo mejor siempre es enshyfrentarse a los errores en su origen y eliminarlos siempre que sea posible en vez de evitarlos

Si de todas formas desea evitar esos errores utilizaremos la funcioacuten BDSUMA pero esta vez necesitaremos configurar un criterio que se extienda por cuatro columnas expandiendo el rango con nombre que contiene el criterio para que incluya las celdas D1G2

Para ello utilizaremos la opcioacuten lnsertargtNombregtDefinir tal y como se muesshytra en la figura 69

Excel dispone de un rico conjunto de funciones de base de datos y puede ut ishylizar cualquiera de ellas de la misma forma Por tanto considere utilizar este meacutetodo pa ra las funciones BDCONTAR BDCONTARA BDMAX BDMIN BDPRODUCTO etc

6 Trucos sobre foacutermulas y funciones 205

m Microsoft Excel - LibroZ

bullM]iexcl Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana - ff X

Times New Romaacuten 1 0 - N K S s = s ^| fsect 000 euro oo o i^ W O

B12 ^ pound ^SUMA(SI(RE5IDUQ(F1LA($A$1$A$500)2)=0iexclA$ 1A$5000))

Nuacutemerosl Nuacutemeros2

NA r NA

1

2

3

4

5

6

7

8

9

-

9 10 11

iexcl 121 NA ^ 13 14 15 16 17 18 19 20 t i

lt lt bull bull l H o j a l H o j a 2 H o j a 3 _

Esta celda ha usado | la Funcioacuten estaacutendar SUMA lo que produce un error porque A2 no tiene valor

D

Nuacutemeros2 X A estas celdas se las ha llamado Criterio

Esta celda contiene una foacutermula BDSUMA que usa el rango Criterio para ignorar cualquier error de tipo NA

bull i r

Figura 69 La funcioacuten BDSUMA utilizada para ignorar diferentes errores

Reducir el impacto de las funciones volaacutetiles a la hora de recalcular Las funciones volaacutetiles que deben ser recalculadas cada vez que el usuario realiza una accioacuten en Excel pueden consumir una gran cantidad de tiempo Aunque estas funciones son muy uacutetiles para descartarlas por completo existen algunos meacutetodos para reducir los tiempos de espera que generan

Una funcioacuten volaacutetil es simplemente una funcioacuten que debe recalcularse cada vez que se realiza una accioacuten en Excel como puede ser introducir datos cambiar el ancho de las columnas etc (una de las pocas acciones que no provocaraacuten un recaacutelculo de las funciones volaacutetiles es la de cambiar el formato de las celdas a menos que lo haga a traveacutes de la opcioacuten Pegado especialgtFormatos)

Probablemente dos de las funciones volaacutetiles maacutes conocidas son HOY y AHORA Dado que la primera devuelve la fecha actual y la segunda la fecha y la hora actual es importante que ambas tengan que recalcularse a menudo Si tiene una hoja de caacutelculo que contienen muchas funciones volaacutetiles probablemente estaraacute obligando a Excel a realizar muchos caacutelculos innecesarios de forma continua Este problema puede ser peor cuando tiene funciones volaacutetiles que estaacuten anida-

206 Excel Los mejores trucos

das dentro de funciones no volaacutetiles ya que en esos casos la foacutermula entera se convertiraacute en volaacutetil

Para entender lo que estamos hablando supongamos que tiene una hoja de caacutelculo que estaacute utilizando la funcioacuten HOY dentro de una tabla compuesta por 20 columnas y 500 filas Esto significa que tiene 10000 funciones volaacutetiles en el libro cuando en realidad una sola podriacutea realizar el mismo trabajo En vez de anidar 10000 funciones HOY dentro de cada una de las celdas de la tabla en muchos casos podraacute introducir simplemente la funcioacuten HOY en una celda que esteacute aparte darla el nombre FechaHoy (o bien utilizar el identificador de la celshyda) y luego hacer referencia a FechaHoy en todas las funciones de la tabla

(i Una forma raacutepida y sencilla para hacer esto es seleccionar toda la N tabla y luego ir a EdicioacutengtReemplazar para reemplazar el texto HOYO

x por FechaHoy en todas las foacutermulas

Ahora ya tenemos una sola funcioacuten HOY en vez de las 10000 que tendriacutea de la otra forma Para poner otro ejemplo digamos que las 500 primeras filas de la columna B estaacuten rellenadas con foacutermulas relativas como =H0Y () -Al y las prishymeras 500 filas de la columna A tienen diferentes fechas que son menores que la fecha de hoy Estamos obligando a Excel a recalcular la funcioacuten volaacutetil HOY 499 veces maacutes de lo necesario cada vez que realiza cualquier accioacuten en Excel Si coloshyca la funcioacuten HOY en cualquier celda a la que le da el nombre FechaHoy (o cualquier otro nombre similar) puede utilizar la foacutermula = FechaHoy-Al en vez de lo anterior Con esto Excel soacutelo necesitaraacute recalcular una vez la aparicioacuten de la funcioacuten HOY lo cual mejoraraacute considerablemente el rendimiento de la aplicacioacuten

^^^Q Contar solamente una aparicioacuten de cada entrada sect K j 5 J de una lista

M B Cuando tiene una larga lista de elementos puede que desea realizar la cuenta de los elementos pero sin tener incluir aquellas entradas que aparezcan en varias ocasiones Con este truco podraacute contar cada entrada uacutenica solamente una vez

Observe la lista que aparece en la siguiente figura que ha sido ordenada de forma que pueda ver las entradas repetidas faacutecilmente Un conteo normal de esta lista (utilizando la funcioacuten CONTARA) resultariacutea en que los nombres Marta Dashyvid Laida y Ana fueran contados maacutes de una vez La funcioacuten BDCONTARA ofreshyce una alternativa que resulta m u y eficiente y faacutecil de modificar La sintaxis de esta funciones la siguiente

=BDCONTARA(base de datoscampocriterio)

6 Trucos sobre foacutermulas y funciones 207

A 1 Nombres 2 David 3 Al ex 4 Ana 5 Marta 6 Ana 7 Santos 8 Laida 9 Mar 10 Luis 11 David 12 Laida 13 Aacutengel 14 Marta 15 Carolina 16 Marta 17 18

B

Figura 610 Rango con nombres ordenados

^v Los argumentos para esta funcioacuten son los mismos que para la funcioacuten w^ BDSUMA que ya vimos anteriormente

A partir de la lista anterior introduzca en la celda DI la palabra Criterio (o cualquier encabezado que no sea igual que el de una columna un campo) Debajo de eacuteste en la celda D2 introduzca la siguiente foacutermula

=CONTARSI($A$2A2A2)=1

Observe la combinacioacuten de referencias relativas (A2) y absolutas ($A$2) Esto resulta vital para que el criterio pueda funcionar

Ahora en la celda de la que desea mostrar el resultado introduzca la siguienshyte funcioacuten

=BDCONTARA($A$1$A$10 01$D$1$D$2)

Utilizaraacute el criterio para excluir los duplicados y proporcionar el resultado que necesitamos que en este caso es 10 ya que solamente hay ese nuacutemero de nombres uacutenicos

Sumar cada dos tres o cuatro filas o celdas Es probable que desee sumar cada segunda tercera cuarta etc celda de una hoja de caacutelculo Ahora es posible si utiliza el siguiente truco

Excel no dispone de una funcioacuten estaacutendar que sume cada cierto nuacutemero de celdas o filas Sin embargo podemos llevar a cabo esta tarea de diferentes for-

208 Excel Los mejores trucos

mas Todas ellas utilizan la funcioacuten FILA y la funcioacuten RESIDUO La primera la funcioacuten FILA devuelve el nuacutemero de fila de la referencia a una uacutenica celda Lo vemos

FILA(referencia)

La funcioacuten RESIDUO devuelve el resto de dividir un nuacutemero por otro

RESIDUO(nuacutemerodivisor)

Se anida la funcioacuten FILA dentro de la funcioacuten RESIDUO (en el lugar del argushymento nuacutemero) se divide por 2 (para sumar cada dos celdas) y se comprueba que el resultado es 0 (cero) Si lo es entonces la celda es sumada

Puede utilizar estas funciones de diferentes formas (consiguiendo mejores reshysultados utilizando unas en vez de otras) Por ejemplo una foacutermula matricial que sume cada dos celdas en el rango $A$1$A$100 tendriacutea esta forma

=SUMA(SI(RESIDUO(FILA($A$1$A$500)2)=0$A$1$A$5000))

Dado que esto es una foacutermula matricial debe introducirla usando Control-Mayuacutes-Intro Al hacer esto Excel introduciraacute unas llaves quedando la foacutermula de esta forma

=SUMA(SI(RESIDUO(FILA($A$1$A$50 0)2)=0$A$1$A$5000))

Debe permitir que Excel introduzca estas llaves ya que si lo hace por su cuenta haraacute que la foacutermula falle

Aunque este meacutetodo funciona no resulta un disentildeo de hoja de caacutelculo ideal ya que estamos utilizando sin necesidad una foacutermula matricial Para complicar maacutes las cosas estamos utilizando la funcioacuten volaacutetil FILA anidada dentro de ella haciendo que toda la foacutermula matricial sea volaacutetil Esto significa que la foacutermula tiene que ser recalcular constantemente mientras estaacute trabajando en el libro Por ello no resulta el mejor camino a seguir

A continuacioacuten mostramos otra foacutermula que podriacutea utilizar siendo eacutesta una mejor eleccioacuten

=SUMAPRODUCTO((RESIDUO(FILA($A$1$A$500)2)=0)($A$1$A$500))

Deberiacutea tener en cuenta de todas formas que esta foacutermula devolveraacute iexclVAshyLOR si alguna de las celdas del rango contiene texto en vez de nuacutemeros Esta foacutermula aunque no es una verdadera foacutermula matricial tambieacuten ralentizaraacute Excel si se utilizan muchas instancias de ella o si esas instancias hacen referencia a grandes rangos

S

6 Trucos sobre foacutermulas y funciones 209

Por suerte existe un meacutetodo mucho mejor que no soacutelo es maacutes eficiente sino que ademaacutes es maacutes flexible Este meacutetodo requiere del uso de la funcioacuten BDSUMA Para este ejemplo utilizamos el rango A1A500 como el rango que usaremos para sumar cada cierto nuacutemero de celdas

Introduzca el texto Criterio en la celda El y en la celda E2 introduzca la siguiente foacutermula

= R E S I D U O ( F I L A ( A 2 ) - $ C $ 2 - 1 $ C $ 2 ) = 0

Seleccione la celda C2 y luego vaya a DatosgtValidacioacuten Seleccione la opcioacuten Lista en el cuadro de lista desplegable y en el cuadro de texto Origen escriba 12345678910 Aseguacuterese de que estaacute activada la casilla de verificacioacuten Celda con lista desplegable y entonces haga clic en Aceptar En la celda Cl introduzca SUMAR cada y en cualquier otra celda a partir de la fila 1 introduzca esta forma

= B D S U M A ( $ A $ A 1 $ E $ 1 $ E $ 2 )

En la celda inmediatamente superior a la que introdujo la funcioacuten BDSUMA introduzca esto

=Sumando cada amp $C$2 amp celdas

Ahora todo lo que tiene que hacer es elegir el nuacutemero deseado en la celda C2 y la funcioacuten BDSUMA haraacute el resto

Como puede ver en la figura 611 puede utilizar una funcioacuten BDSUMA para sumar cada celda con el intervalo que haya especificado Esta funcioacuten es mucho maacutes eficiente que una foacutermula matricial o que la funcioacuten SUMAPRODUCTO Aunque su configuracioacuten puede ser algo maacutes compleja merece la pena el esfuershyzo para obtener los resultados

Encontrar la eneacutesima aparicioacuten de un valor Las funciones de buacutesqueda incorporadas en Excel pueden hacer un trabajo estupendo pero desgraciadamente Excel no dispone de una uacutenica funcioacuten que devuelva la eneacutesima aparicioacuten de un dato especificado Por suerte existen algunos meacutetodos para que Excel pueda hacer esto

Puede utilizar las funciones de buacutesqueda y de referencia de Excel sobre una tabla de datos para extraer los detalles correspondientes a un valor especiacutefico Quizaacute la maacutes popular de todas esas funciones sea BUSCARV Aunque es estupenda para encontrar un valor especiacutefico en la columna maacutes a la izquierda de una tashybla no puede utilizarla para encontrar la eneacutesima aparicioacuten de dicho valor en la columna maacutes a la izquierda

m

210 Excel Los mejores trucos

1 2 3 4 5 6 7 3 9

A Nuacutemeros

500 euro 750 euro

2345 euro 1000 euro 996 euro 600 euro

B C |

I

I Sumando cada 3 celdas 3546 euro

D E Criterio

FALSO ^-

Esta celda no puede tener el mismo encabezado que la de nuacutemeros

Figura 611 Posible resultado final con formato

Sin embargo podemos utilizar un meacutetodo m u y simple para encontrar cualshyquier aparicioacuten de un valor especiacutefico utilizando la funcioacuten BUSCARV o una de las otras funciones de buacutesqueda

Para este ejemplo supondremos que tiene una tabla con dos columnas de datos siendo la columna A la que contiene los nombres y la columna B las edashydes correspondientes a cada uno de ellos tal y como se muestra en la figura 612

1 A 1 Nombre

2 Antonio 3 Alex 4 Ana 5 Marta 6 Juan 7 Santos 8 Laida 9 Mar 10 Luis 11 David 12 Laida 13 Aacutengel 14 Sol 15 Carolina 16 Concha 17 Aitana 18 Rodrigo 19 Agustiacuten 20

B Edad

32 30 23 36 25 30 31 30 28 23 33 45 28 29 30 38 29 19

C

Figura 612 Datos configurados para ser usados por la funcioacuten BUSCARV

Puede utilizar la funcioacuten BUSCARV para extraer la edad de una persona bashysaacutendose en su nombre Por desgracia algunos nombres puede que aparezca maacutes de una vez Lo que deseamos es poder buscar el nombre de David y hacer que la funcioacuten BUSCARV no soacutelo encuentra la primera aparicioacuten sino tambieacuten todas las demaacutes que pudiera haber A continuacioacuten veremos coacutemo podemos hacer esto (recuerde que en este ejemplo los datos estaacuten en las columnas A y B)

Primeramente seleccione la columna A por completo haciendo clic en la letra A que aparece en su encabezado y luego seleccione la opcioacuten lnsertargtColumnas para insertar una nueva columna en blanco (que se convertiraacute en la nueva co-

6 Trucos sobre foacutermulas y funciones 211

lumna A) Luego haga clic en la celda A2 (no saltamos Al porque Bl es un encashybezado) e introduzca la siguiente foacutermula

=B2ampC0NTARSI($B$2B2B2)

Propague esta foacutermula hacia abajo tantas filas como datos tenga en la columshyna B (para ello haga clic en la celda A2 y luego haga doble clic sobre el pequentildeo recuadro negro de la esquina inferior derecha) Acabaraacute teniendo en la columna A nombres tales como Davidl David2 David3 etc como puede verse en la fishygura 613 Observe la referencia absoluta para $B$2 en la funcioacuten CONTARSI y el uso de una referencia relativa para todas las referencias Esto es fundamental para que la funcioacuten haga su trabajo correctamente

A 1

bull 2 Arito ni oiacute iexcl 3 Alex | 4 Davidl 1 5 Marta [ 6 David2 I 7 Santosl

8 Laida 9 Mariacuteal 10 Luisl 11 David3 12 Carlos 13 Angeliacute 14 Alex2 15 Carolina 16 Angel2 17 Aitanal 18 Marta2 19 Agustiacutenl

[ 20

B Nombre Antonio Alex David Marta David Santos Laida Mar-Luis David Laida Aacutengel Alex Carolina Aacutengel Altana Marta Agustiacuten

C Edad

32 30 23 36 25 30 31 30 28 23 33 45 28 29 30 38 29 19

D

Figura 613 Datos obtenidos con la foacutermula BUSCARV recieacuten antildeadida a la columna A

Si no se ha dado cuenta todaviacutea observe que puede utilizar la columna A para encontrar las ocurrencias de un cierto nombre

Haga clic en la celda D2 e introduzca la siguiente foacutermula

= BUSCARV(David3$A$1$ C$10 03FALSE)

La foacutermula le devolveraacute la edad de la tercera aparicioacuten del nombre David tal y como puede verse en la figura 614

Por supuesto puede ocultar la columna A ya que no es necesario verla Tambieacuten puede utilizar los nombres de la columna A como rango de origen

para una lista situada en otra celda seleccionando la opcioacuten DatosgtValidacioacuten y luego eligiendo la opcioacuten Lista Luego haga una referencia a la celda que contenshyga esta lista en la funcioacuten BUSCARV

212 Excel Los mejores trucos

i pound

M 2 Antoniol

1 3 Alex 4 David1

| 5 Marta I 6 David2

7 Santosl I 8 Laida 9 Mariacutea 1

l O L u i s I i 11 J0avid3 12 IacuteCarlos 13 Angefl Iacute4_Alex2

15 _ Cardinal 16 Angel2 17 Aitanal 18 Marta2 19 Aqustiacutenl 20

B C Nombre Edad Antonio Alex David Marta David Santos Laida Mar Luis-David Laida Aacutengel Alex Carolina Aacutengel Aitana Marta Agustiacuten

32 30 23 36 25

30 31 30 28 23 33 45 28 29 30 38 29 19

D

23

E

Figura 614 Datos obtenidos con la segunda foacutermula BUSCARV antildeadida a la columna D

TRUCO Hacer que la funcioacuten subtotal de Excel sea dinaacutemica Aunque la funcioacuten SUBTOTALES es una de las funciones de Excel maacutes recomendables a veces desearaacute poder elegir queacute operacioacuten realiza o aplica a aquellos datos que pueden expandirse y contraerse

La funcioacuten SUBTOTALES de Excel se utiliza para realizar una funcioacuten especiacuteshyfica sobre un rango de celdas que tienen configurado un Autofiltro En estos casos la funcioacuten SUBTOTALES soacutelo utilizaraacute las celdas visibles (las celdas ocultas son ignoradas) La operacioacuten que realiza esta funcioacuten depende solamente del nuacuteshymero (entre 1 y 11) que proporcione como primer argumento (nuacutem_funcioacuten) Por ejemplo

= SUBTOTALES(1AlAl0 0)

Calcula el promedio de todas las celdas visibles en el rango Al A100 despueacutes de que se haya aplicado un Autofiltro Si todas las filas son visibles esta funcioacuten simplemente obtendraacute el promedio de todas ellas al igual que lo hariacutea la funcioacuten

=PROMEDIO(Al A100)

El nuacutemero que ha de proporcionarse como primer argumento de la funcioacuten SUBTOTALES es nuacutem_funcioacuten y que se corresponde con las funciones que se muestran en la siguiente tabla

6 Trucos sobre foacutermulas y funciones 213

Tabla 61 Nuacutemeros de funcioacuten para SUBTOTALES y su correspondiente funcioacuten

Nuacutenijimcioacuten

1

2

3

4

5

6

7

8

9

10

11

Funcioacuten

PROMEDIO

CONTAR

CONTARA

MAX

MIN

PRODUCTO

DESVEST

DESVESTP

SUMA

VAR

VARP

Dado que tiene que utilizar un nuacutemero entre 1 y 11 puede tener una funcioacuten SUBTOTALES que realice cualquier funcioacuten que elija Incluso puede elegir a parshytir de una lista desplegable que se encuentre en cualquier celda Veamos coacutemo podemos hacer esto

Introduzca todos los nombres de funcioacuten en el mismo orden en el que apareshycen en la tabla 61 en un rango de celdas Para este ejemplo utilizaremos el rango D l i D l l Teniendo seleccionado dicho rango haga clic en el Cuadro de nombres situado en la parte superior izquierda de la ventana (a la izquierda de la barra de foacutermulas) y escriba el nombre Subs Luego pulse In t ro

Seleccione la columna D completamente y luego seleccione la opcioacuten For-matogtColumnagtOcultar Ahora seleccione la opcioacuten VergtBarras de herramientasgt Formularios haga clic sobre el icono Cuadro combinado y haga clic en la celda C2 Cambie el tamantildeo del cuadro de lista desplegable utilizando los pequentildeos cuadros negros que aparecen alrededor del control de forma que quepa el nomshybre maacutes largo de funcioacuten (en nuestro caso PRODUCTO)

Para hacer que el cuadro de lista desplegable se ajuste automaacuteticamente ^ al tamantildeo de la columna y la fila en la que reside mantenga pulsada

^ la tecla Alt mientras cambia el tamantildeo del control

214 Excel Los mejores trucos

Haga clic con el botoacuten derecho en el cuadro de lista desplegable y elija la opshycioacuten Formato de control y luego vaya a la pestantildea Control En el rango de entrashyda escriba Subs y en la celda vinculada escriba $C$2 Cambie tambieacuten el nuacutemero de liacuteneas a mostrar en la lista desplegable a 11 Cierre el cuadro de diaacutelogo y en la celda C3 escriba la siguiente foacutermula

=SI($C$2=Resultado de amp IacuteNDICE(Subs$C$2))

En la celda C4 introduzca la siguiente foacutermula

=SI($C$2=raquoraquoSUBTOTALES($C$2$A$4$A$10 0))

donde $A$4$A$100 es el rango sobre el que debe actuar la funcioacuten SUBTOshyTALES

Ahora todo lo que necesita hacer es seleccionar la funcioacuten SUBTOTALES en el cuadro de lista desplegable con lo que se mostraraacute el resultado correspondiente tal y como se muestra en la figura 615

1

2 3 4 7 9 10 11

A

Valoi 55421 euro 50032 euro

]

j d

B c i Elija una funcioacuten SUBTOTALES

[PROMEDIO bull |

iexclResultado de PROMEDIO I 52727 euro

E

Figura 615 Una funcioacuten SUBTOTALES ajustable

TRUCO Antildeadir extensiones de fecha Los formatos de fechas de Excel consisten en diferentes formas que pueden ser utilizadas para mostrar una fecha Sin embargo un formato que siempre se ha echado de menos en Excel (por los angloparlantes) es aquel capaz de mostrar una fecha al estilo 15th October 2003 Podemos conseguir que Excel haga esto en caso de que lo necesitemos

Este truco estaacute orientado a aquellas personas que utilicen la versioacuten Sy en ingleacutes de Excel que tengan establecida la configuracioacuten regional de

w su sistema operativo en ese mismo idioma y deseen utilizar este formato de fechas cuando creen hojas de caacutelculo que esteacuten orientadas al puacuteblico angloparlante

La posibilidad de mostrar el sufijo th despueacutes del nuacutemero 15 por ejemplo es algo que Excel no contempla en sus formatos de fecha Peor auacuten no es posible

6 Trucos sobre foacutermulas y funciones 215

configurar un formato personalizado para mostrar las fechas de esta manera Aunque muchas personas simplemente aceptan que esto no es posible mostrashyremos un meacutetodo para poder llevarlo a cabo

En una hoja en blanco comenzando por la celda A l introduzca los siguientes datos en las siguientes celdas A l = s t A2=nd A3=rd A4A20=th A21=st A22=nd A23=rd A24A30=th A31=st

Asigne el nombre Extensiones a este rango luego vaya a lnsertgtNamegtDefine y en el cuadro de texto Ntildeames in Workbook escriba HoyPersonalizado

En el cuadro de texto Refers To introduzca la siguiente foacutermula

=TEXT(TODAY()dddd dn) amp INDEX(ExtensionesDAY(TODAY())1) amp TEXT(TODAY() mmmm yyyy)

Luego haga clic en Add y en OK Ahora en cualquier celda introduzca = H o y P e r s o n a l i z a d o y la fecha actual

se mostraraacute con el formato ThursDay l oacute t h October 2003 Si prefiere utilizar celdas en la hoja para almacenar las extensiones de fecha

(es decir th st rd y nd) puede utilizar la funcioacuten CHOOSE para almacenarlas Para ello vaya a lnsertgtNamegtDefine y en el cuadro de texto Ntildeames in Workbook introduzca la palabra Dia En el cuadro de texto Refers to introduzca la sishyguiente foacutermula

=DAY(TODAY( ))

Haga clic en Add Vuelva al cuadro de texto Ntildeames in Workbook e introduzca el texto HoyPersonalizado

En el cuadro de texto Refers to introduzca la siguiente foacutermula y luego haga clic en el botoacuten Add

=TEXT(TODAY()dddd d)ampIF(Day=31stIF(Day=3 0th CHOOSE(Diastndrdthth thththththththththththththth th st nd rd th thth th thth) ) )amp TEXT(TODAY( ) mmmm yyyy)

Despueacutes de hacer clic en OK puede introducir la foacutermula =HoyPersonal izado en cualquier celda en la que desee mostrar este formato de fecha

La fecha devuelta por cualquiera de estas funciones no seraacute una fecha numeacuterica verdadera tal y como suele hacer Excel sino que simplemente seraacute una entrada de tipo texto Esto significa que no podraacute hacer referencia a esta celda en una foacutermula que esteacute esperando un dato numeacuterico

216 Excel Los mejores trucos

TRUCO Convertir nuacutemeros con signo negativo a la derecha a nuacutemeros de Excel iquestHa tenido que trabajar alguna vez con nuacutemeros negativos importados que tienen el signo negativo a la derecha SAP es uno de esos programas que hacen este tipo de cosas con los nuacutemeros (200-en vez de -200) Tener que cambiar esto a mano de forma que Excel pueda entenderlos es tedioso pero no tiene por queacute ser necesariamente asiacute

Supongamos que tiene una larga lista de nuacutemeros que acaba de importar y que algunos de ellos estaacuten en el formato que acabamos de describir Nuestro trabajo consistiraacute en convertir esos nuacutemeros en valores negativos que Excel pueshyda reconocer Para los propoacutesitos de este ejercicio utilizaremos el rango Al A100 Coloquacuteese en la celda B l e introduzca la siguiente foacutermula

=SUSTITUIR(SI(DERECHA(ESPACIOS(Al))= AlAl)-raquoraquo2)+0

-DERECHA(ESPACIOS(Al)) amp

Introduzca esta foacutermula en tantas celdas de la columna como sea necesario y luego coacutepiela Seleccione la celda Al y vaya a EdicioacutengtPegado especial y selecshycione la opcioacuten Valores para eliminar las foacutermulas y dejar solamente los valores En la figura 616 puede ver un ejemplo de la situacioacuten antes y despueacutes de llevar a cabo esta tarea (A1A7 representa el antes)

1 200-

2 3 35Eiexcl-4 5 6 301-7 8 9

A

150

200 526

258

B -200

150 -356 200 526 -301 258

C

Figura 616 Antes y despueacutes de mover el signo negativo

Para darnos una idea de coacutemo funciona la foacutermula introduzca la siguiente foacutermula en cualquier celda siempre que la celda Al contenga el valor 200-

= D E R E C H A ( E S P A C I O S ( A l ) 1 ) amp A 1

Acabaraacute teniendo -200-

La funcioacuten ESPACIOS simplemente se asegura de que no haya espacios por delante y por detraacutes del texto de una celda Dado que nuestro valor terminar con un - necesitamos quitar esa segunda aparicioacuten Aquiacute es donde entra enjuego la funcioacuten SUSTITUIR Le diremos que sustituya la segunda aparicioacuten de - por (texto vaciacuteo) El resultado de esta operacioacuten seraacute de tipo texto (ya que la funcioacuten

6 Trucos sobre foacutermulas y funciones 217

SUSTITUIR devuelve un valor de tipo texto) por lo que simplemente antildeadiremos + 0 con lo que Excel lo convertiraacute en un nuacutemero

Si va a tener que utilizar este meacutetodo con frecuencia deberiacutea considerar utilishyzar una macro que haga el trabajo por usted A continuacioacuten le presentamos dicha macro

Sub ConvertirNegativos( ) Dim rCell As Range Dim rRange As Range Dim ICount As Long Dim lLoop As Long

1 Nos aseguramos de tener seleccionados los datos y en caso contrario_ se muestra un mensaje y la macro termina If SelectionCellsCount = 1 Then MsgBox Debe seleccionar el rango a convertir vblnformation Exit Sub

End If

Establece una variable soacutelo para las celdas de tipo texto por ejemplo

200-On Error Resume Next Set rRange = SelectionSpecialCells(xlCellTypeConstants xlTextValues)

Si esta variable devuelve Nothing es que no hay nuacutemeros negativos incorrectos con lo que se muestra un mensaje y termina la macro If rRange Is Nothing Then

MsgBox No se encontraron nuacutemeros negativos incorrectos vblnformation

On Error GoTo 0 Exit Sub

End If

Cuenta el nuacutemero de celdas del tipo 200- y pasa el resultado a una variable que controlaraacute el nuacutemero de ciclos necesarios para el bucle ICount = WorksheetFunctionCountlf(Selection -) Establece una variable a la primera celda de la seleccioacuten Set rCell = SelectionCells(1 1)

Bucle que se repite tantas veces como nuacutemeros negativos incorrectos haya

For lLoop = 1 To ICount

En cada ciclo se establece una variable a la celda que contiene -

El asterisco es un siacutembolo comodiacuten Set rCell = rRangeFind(What=- After=rCell _

Lookln=xlValues LookAt=xlPart _ SearchOrder=xlByRows SearchDirection= _ xlNext MatchCase=False)

Utilizamos la funcioacuten estaacutendar Reemplazar para reemplazar el

218 Excel Los mejores trucos

signo negativo por el texto vacio es decir eliminamos dicho signo rCellReplace What=- Replacement= Multiplicamos la celda por -1 para convertirla a un nuacutemero

negativo rCell = rCell -1

Next lLoop

On Error GoTo 0 End Sub

Para escribir esta macro vaya a HerramientasgtMacrogtEditor de Visual Basic (Al t Opcioacuten-Fl l ) Ahora seleccione lnsertargtMoacutedulo y copie el coacutedigo anterior Cierre la ventana para volver a Excel y vaya a HerramiexclentasgtMacrogtMacros y seleccione la macro que acabamos de crear Haga clic en Opciones para asignar una tecla de acceso raacutepido A partir de ahora si necesita convertir esos nuacutemeros negativos importados a verdaderos nuacutemeros negativos que Excel pueda reconoshycer simplemente seleccione el rango de nuacutemeros y utilice la tecla de acceso raacutepishydo que asignoacute

Mostrar valores de hora negativos A veces desearaacute mostrar valores de hora negativos pero Excel soacutelo mostraraacute Existen numerosos meacutetodos para solucionar este problema

Si introduce la hora 120000 (mediodiacutea) en una celda y luego le asigna el formato General observaraacute que tiene un valor numeacuterico de 05 De forma simishylar introduzca la hora 240000 en cualquier celda observe la barra de foacutermulas y veraacute coacutemo Excel muestra 111900 240000

Excel trata las fechas y las horas simplemente como nuacutemeros En el caso de las fechas Excel de forma predeterminada considera que el 1 de enero de 1900 se corresponde con el valor numeacuterico 1 el dos de enero de 1900 se corresponde con el valor numeacuterico 2 y asiacute sucesivamente Las horas son consideradas como nuacutemeros decimales a excepcioacuten del mediodiacutea que tiene un valor numeacuterico de 1 Debido a esto Excel tiene un verdadero problema a la hora de t ratar horas negashytivas

A continuacioacuten mostramos tres meacutetodos para conseguir que Excel muestre valores de hora negativos

Meacutetodo 1 Cambiar el sistema de fecha predeterminado de Excel

Un meacutetodo raacutepido y sencillo para mostrar valores negativos es seleccionar HerramientasgtOpciones ir a la pestantildea Calcular y activar la casilla de verifica-

6 Trucos sobre foacutermulas y funciones 219

cioacuten Sistema de fechas 1904 (a este sistema tambieacuten se llama Fechas y horas de Macintosh)

Tenga en cuenta que al hacer esto conseguiraacute que Excel modifique las fechas de inicio (desde el 1 de enero de 1900 al 2 de enero de 1904) a partir de las cuales son calculadas todas las celdas Esta opcioacuten soacutelo afectaraacute al libro de Excel con el que esteacute trabajando

Ahora ya podraacute restar horas entre siacute y tener resultados que aparezcan como valores negativos

Pruebe esto vaya a HerramientasgtOpcionesgtCalcular y active la casilla de veshyrificacioacuten Sistema de fechas 1904 Introduzca 50000 en la celda A2 60000 en la celda A3 y en la celda A4 escriba =A2-A3 Obtendraacute un resultado de -100 pero solamente si ha activado la opcioacuten mencionada anteriormente

Si el hecho de cambiar el sistema de fechas puede causar problemas en el libro a efectos de otros caacutelculos con horas necesitar utilizar otro meacutetodo que permita cambiar la apariencia de la celda que contenga un valor negativo

Meacutetodo 2 Utilizar la funcioacuten TEXTO

El segundo meacutetodo requiere del uso de la funcioacuten TEXTO Para empezar inshytroduzca 50000 en la celda A2 60000 en la celda A3 y en la celda A4 escriba lo siguiente

= T E X T O ( M A X ( $ A $ 2 $ A $ 3 ) - M I N ( $ A $ 2 $ A $ 3 ) - H M M )

Con esta foacutermula anidada estaacute restando las celdas A2 y A3 para conseguir un valor de hora positivo Luego estaacute aplicando un formato a la celda mediante la funcioacuten TEXTO de forma que muestre una hora negativa Mediante el uso de la combinacioacuten de funciones MAX y MIN sea seguro de que siempre resta la hora mayor menos la hora menor

gt Debe saber que el resultado devuelto es de tipo texto no numeacuterico gt Esto es importante en caso de que necesitase un valor numeacuterico para

^ otra foacutermula

Meacutetodo 3 Utilizar un formato personalizado

Uacuteltimo meacutetodo para mostrar horas negativas sin tener cambiar al sistema de fechas de 1904 pero que devuelva valores numeacutericos reales es ir a FormatogtCeldas

220 Excel Los mejores trucos

seleccionar la categoriacutea Personalizado y utilizar un formato personalizado -hmm Este meacutetodo funciona solamente en caso de que siempre desee mostrar los valoshyres de hora negativos Tambieacuten requiere que siempre reste la hora que sea infeshyrior de la hora que sea superior lo que significa que todas las veces la hora seraacute realmente positiva pero se mostraraacute como negativa

Por tanto utilizando cualquiera de estos tres meacutetodos seraacute capaz de mostrar horas en negativo Simplemente recuerde que cada meacutetodo tiene sus inconveshynientes por lo que utiliacutecelos teniendo estos inconvenientes en mente

^ g g Utilizar la funcioacuten BUSCARV a lo largo de muacuteltiples WJm tabas

bull bull ^ B Aunque de por siacute la funcioacuten BUSCARV es muy uacutetil estaacute restringida a la buacutesqueda de valores en una tabla especiacutefica para devolver un resultado lo que a veces no seraacute suficiente Podemos superar esta limitacioacuten si utilizamos la funcioacuten INDIRECTO

A veces desearaacute utilizar una uacutenica foacutermula BUSCARV que busque en diferenshytes tablas con datos que esteacuten en una hoja de caacutelculo Una de las formas para poder hacer esto es anidar muchas funciones BUSCARV juntas indicaacutendoles que busquen en una tabla especiacutefica dependiendo de un nuacutemero que introduzca en otra celda Por ejemplo

=SI(Al=lBUSCARV(BlTablal2FALSO)IF(Al=2BUSCARV(BlTabla22 FALSO)))

En esta foacutermula estamos dicieacutendole a la funcioacuten BUSCARV que busque en el rango con nombre Tabla 1 en caso de que la celda Al contenga el nuacutemero 1 (SI(Al = lBUSCARV(BlTablal2FALSO)) y que busque en un rango llamado Tabla2 en caso de que la celda Al contenga el nuacutemero 2 (IF(A1= 2 BUSCARV (BlTabla22FALSO)MM))

Como puede imaginarse la foacutermula seriacutea mucho maacutes larga y enrevesada si tiene que utilizar maacutes de dos funciones SI anidadas La siguiente foacutermula por ejemplo utiliza solamente cinco funciones anidadas pero ya es complicadiacutesima

=SI(Al=lBUSCARV(BlTablal2FALSO)SI(Al=2BUSCARV(BlTabla22 FALSO)SI(Al=3BUSCARV(BlTabla33FALSO)SI(Al=4BUSCARV(BlTabla4 2FALSO)SI (Al=5BUSCARV(BlTable52FALSO))))))

Aunque esta foacutermula devuelve los resultados deseados podemos conseguir que la foacutermula sea mucho maacutes corta antildeadir maacutes de cinco condiciones y acabar teniendo una foacutermula que sea m u y sencilla de manejar Supongamos que tiene 12 tablas diferentes configuradas en una hoja de caacutelculo cada una de las cuales

6 Trucos sobre foacutermulas y funciones 221

representa un mes diferente del antildeo Cada tabla consta de dos columnas y conshytiene los nombres de cinco empleados y cinco cantidades correspondientes A cada tabla se le ha dado un nombre en funcioacuten del mes que representa (por ejemplo la tabla con los datos de enero se llama Enero etc) tal y como se muestra en la figura 617

B C D E F G H J 1

Enero Nombre Cantidad Francisco 20 Ana 21 Juan 22 Paco 23 Mariacutea 20

Mayo 1 Nombre Cantidad Alex 45 Carlos 32 Carolina 24 Torn 11 Ceacutesar 12

Septiembre iNombre Cantidad Alex 20 Carlos 23 Carolina 34 Toni 23

I Ceacutesar 18

Febrero Nombre Cantidad Francisco 23 Ana 21 Juan 14 Paco 34 Mariacutea 12

Junio Nombre Cantidad Alex 21 Carlos 45 Carolina 23 Torn 12 Ceacutesar 32

Octubre Nombre Cantidad Alex 21 Carlos 25 Carolina 18 Toni 42 Ceacutesar 34

Marzo Nombre Cantidad Francisco 25 Ana 11 Juan 21 Paco 23 Mariacutea 34

Julio Nombre Cantidad Alex 25 Carlos 23 Carolina 34 Torn 11 Ceacutesar 15

Noviembre Nombre Cantidad Alex 11 Carlos 21 Carolina 29 iexclToni 25 Ceacutesar 1_7

Abril 1 Nombre Cantidad 1 Francisco 43 Ana 34 Juan 22 Paco 13 Mariacutea 25

Agosto 1 Nombre Cantidad 1 Alex 34 Carlos 23 Carolina 11 Torn 32 Ceacutesar 35

Diciembre Nombre Cantidad I Alex 27 Carlos 16 Carolina 22 Toni 27 Ceacutesar 12

|n 4 bull H Hojal HojaZ Hoja3 Hoja4 HojaS Hoja6 Hoja HojaS j lt _ i raquoH 1

Figura 617 Doce tablas cada una representando un mes del antildeo

Seleccione la celda A l Entonces vaya a DatosgtValidacioacuten y en la pestantildea Conshyfiguracioacuten seleccione la opcioacuten Lista en el cuadro de lista desplegable El cuadro de texto Origen escriba cada uno de los meses del antildeo separaacutendolos por comas Es m u y importante que los nombres de rangos para cada tabla sean los mismos que los nombres de los meses que ha utilizado en la lista de validacioacuten Haga clic en Aceptar Ahora seleccione la celda Bl y configure para ella una lista de valishydacioacuten de la misma forma que acabamos de explicar esta vez utilizando los nomshybres de cada uno de los empleados Si los nombres de eacutestos son m u y largos para escribirlos simplemente haga una referencia al rango de celdas que los contieshynen para que sea el origen y luego haga clic en Aceptar

En la celda A2 introduzca esta foacutermula

= B U S C A R V ( $ B $ 1 I N D I R E C T O ( $ A $ 1 ) 2 F A L S O )

Seleccione el mes que desee en la lista situada en la celda Al y el nombre del empleado en la lista situada en la celda B2 y la foacutermula que se encuentra en A2 devolveraacute la cantidad correspondiente para la persona y el mes seleccionados

222 Excel Los mejores trucos

Existen algunas ventajas de utilizar esta aproximacioacuten Si no estaacute H^ familiarizado con la funcioacuten INDIRECTO la hemos utilizado para leer

v - ^ los contenidos de una celda como si fuera la direccioacuten de un rango en vez de un texto Como hemos dado nombre a 12 rangos diferentes cada uno de los cuales representando un mes del antildeo la foacutermula que utilizar la funcioacuten INDIRECTO leeraacute la palabra Enero como referencia un rango en vez de como una cadena de texto Otra ventaja de utilizar una foacutermula que incluye la funcioacuten INDIRECTO es que puede librarse de la restriccioacuten de Excel que impide tener maacutes de siete niveles de anidamiento en las funciones

Mostrar el tiempo total como diacuteas horas y minutos Cuando antildeade horas en Excel puede hacer que el resultado devuelto aparezca como el total de horas y minutos pero por desgracia no como diacuteas horas y minutos Para poder mostrar esto necesitaremos hacer alguacuten trabajo extra

Por ejemplo si el tiempo total es igual a 75 horas 45 minutos y 0 segundos el total normalmente se mostrariacutea como 754500 proporcionaacutendolos este reshysultado en una celda cuyo formato personalizado fuese [h]mmss lo que permishyte mostrar horas superiores a 24 Aunque ciertamente es un resultado correcto tambieacuten significa que tendriacuteamos que calcular manualmente cuaacutentos diacuteas hoshyras y minutos representa esta cantidad Esto puede llevar cierto tiempo y ademaacutes es susceptible de calcular sea erroacuteneamente

Supongamos que tiene una lista de horas vaacutelidas en las celdas A1A10 y que en la celda Al 1 tiene una funcioacuten SUMA normal que estaacute sumando el total de horas es decir contiene la foacutermula =SUMA ($A$1 $A$10) Si el total de esta suma excede de las 24 horas el resultado de la celda que contiene a esta funcioacuten debeshyriacutea tener el formato [h]mm Supongamos que el resultado de esta suma total es de 3062600 que por supuesto son 306 horas y 26 minutos Sin embargo con esta informacioacuten no sabemos cuaacutentos diacuteas horas y minutos representa

Para mostrar el resultado de esa forma utilizaremos la siguiente foacutermula

=ENTER0(A11) ampraquo Dias amp ENTERO(RESIDUO(AllENTERO(All))24) amp horas y amp MINUTO(All) amp raquo minutos a

Teniendo en cuenta que la celda Al 1 contiene el valor 3062600 el resultado correspondiente deberiacutea ser de 12 diacuteas 18 horas y 26 minutos Veamos coacutemo funciona esto Si no estaacute familiarizado con la forma en la que Excel almacena y utiliza las fechas y horas primero deberiacutea consultar el truco 38

Seleccione la celda con la foacutermula que calcular el resultado y haga clic en el botoacuten fx que parece justo a la izquierda de la barra de foacutermulas (en versiones anteriores de Excel y en la versioacuten para Macintosh el botoacuten contiene el signo =)

m

6 Trucos sobre foacutermulas y funciones 223

Haga clic en la primera aparicioacuten de la funcioacuten ENTERO que aparece en la barra de foacutermulas Esta funcioacuten devolveraacute el valor entero 12 a part i r del valor 1276805556 Este nuacutemero representa cuaacutentos diacuteas hay

A continuacioacuten debemos calcular cuaacutentas horas quedan despueacutes de quitar esos 12 diacuteas Haga clic en la segunda funcioacuten ENTERO que aparece en la barra de foacutermulas Aquiacute estamos utilizando la funcioacuten RESIDUO ( A l l ENTERO (All) para devolver el resto de dividir 1276805556 por 12 que es 076805556 (el nuacutemero de minutos representado como un nuacutemero decimal) Ahora debemos multiplishycarlo por 24 (lo cual nos da 18433333) para devolver un nuacutemero que represenshytaraacute la cantidad de minutos Dado que soacutelo queremos el nuacutemero entero incluimos la foacutermula RESIDUO (Al l ENTERO (Al l ) ) 24 dentro de una funcioacuten ENTERO que se encarga de quitar la parte decimal

Haga clic en la funcioacuten MINUTOS dentro de la barra de foacutermulas Esta funshycioacuten devolveraacute el valor 26 a partir del nuacutemero de serie 127680556

Dado que el valor devuelto por la funcioacuten MINUTOS nunca seraacute un valor numeacuterico seriacutea sensato mantener al menos la funcioacuten original SUMA que deshyvuelve el total de horas en una celda de forma que pueda ser referenciada y utilizada para caacutelculos posteriores en caso de que sea necesario Por supuesto la fila que contiene el total de horas puede ser ocultada

TRUCO Determinar el nuacutemero de diacuteas especificados que aparecen en cualquier mes Cuando esteacute creando aplicaciones relacionadas con calendarios en especial aplicaciones de noacutemina a veces necesitaraacute conocer cuaacutentas veces aparece un cierto diacutea de la semana en un mes en particular

A pesar de que Excel dispone de muchas funciones para fechas y horas al diacutea de hoy no existe una funcioacuten que por ejemplo nos indique cuaacutentos lunes hay en el mes de enero para el antildeo 2005 Podemos utilizar varias funciones m u y anidashydas de fecha y hora de Excel para conseguir esto pero por desgracia como ya podraacute imaginarse es m u y complicado y enrevesado

Eacuteste es uno de los casos en los que VBA puede simplificar enormemente una tarea complicada En vez de combinar complejas funciones podemos escribir una funcioacuten personalizada que haga lo mismo y que luego podamos pasarle el diacutea y la fecha que queremos calcular Podemos utilizar la siguiente funcioacuten para detershyminar cuaacutentos diacuteas hay en un mes especificado Por ejemplo

=CuantosDiasEnUnMes(11203mieacute)

la cual nos devolveriacutea 5 ya que hubo cinco mieacutercoles en el mes de diciembre de 2003

224 Excel Los mejores trucos

De forma similar la siguiente funcioacuten

=CuantosDiasEnUnMes(11203jue)

nos devolveriacutea 4 ya que solamente hubo cuatro jueves en el mes de diciembre de 2003 Para utilizar esta funcioacuten personalizada en un libro primero debe escrishybir el siguiente coacutedigo en un moacutedulo estaacutendar Para ello abra el libro en el que desea colocar esta macro y vaya a HerramientasgtMacrogtEditor de Visual Basic (Al t Opcioacuten-Fl l ) Luego seleccione lnsertargtMoacutedulo y escriba el siguiente coacutedigo

Function CuantosDiasEnUnMes(FechaCompleta As String sDia As String) As Integer Dim i As Integer Dim iDia As Integer iDiaCoincidente As Integer Dim iDiasEnMes As Integer Dim FechaCompletaNueva As Date

iDiaCoincidente = Weekday(FechaCompleta) Select Case UCase(sDia)

Case DOM iDia = 1

Case LUN iDia = 2

Case MAR iDia = 3

Case MIEacute iDia = 4

Case JUE iDia = 5

Case VIE iDia = 6

Case SAB iDia = 7

End Select iDiasEnMes = Day(DateAdd(d -1 DateSerial _

(Year(FechaCompleta) Month(FechaCompleta) + 1 1))) FechaCompletaNueva = DateSerial(Year(FechaCompleta)

Month(FechaCompleta) iDiasEnMes) For i = iDiasEnMes - 1 To 0 Step -1

If Weekday(FechaCompletaNueva - i) = iDia Then CuantosDiasEnUnMes = CuantosDiasEnUnMes + 1

End If Next i

End Function

Cierre de esta ventana para volver a Excel

Ahora simplemente ha de introducir la funcioacuten en cualquier celda como vishymos antes y Excel devolveraacute un nuacutemero que representa cuaacutentas veces aparecioacute el diacutea especificado en el mes que hayamos elegido

6 Trucos sobre foacutermulas y funciones 225

K|^^3 Construir mega foacutermulas jt ^ E T ^ H Las mega foacutermulas (foacutermulas que contienen foacutermulas y a su vez otras

^ B A ^ H foacutermulas) son lo suficientemente complicadas para que incluso los expertos en Excel salgan corriendo Con un poquito de esfuerzo y trabajando paso a paso hasta conseguir la foacutermula que deseamos podemos afrontar esas complejas mega foacutermulas sin miedo

iquestLe llena de terror el simple hecho de tener que pensar en funciones anidadas dejando aparte su construccioacuten Algunas de esas celdas con caacutelculos complicashydos y enrevesados tambieacuten nos hacen sentirnos un poco asustados a nosotros Pero con un poco de esfuerzo y trabajando paso a paso podemos crear mega foacutermulas sin tener miedo Y quizaacute soacutelo quizaacute incluso podraacute ser capaz de leer y entender estas foacutermulas maacutes adelante

El truco estaacute en construir las foacutermulas poco a poco utilizando las funciones estaacutendar de Excel Utilice una funcioacuten por celda obteniendo un resultado indivishydual que sea manejable y luego aniacutedelas juntas para obtener el resultado final que desea A continuacioacuten veamos un ejemplo de este proceso en accioacuten

Digamos que le han dado una larga lista de nombres de personas compuesta por el nombre primer apellido y segundo apellido (todos ellos en una uacutenica celda de cada fila) El trabajo consiste en escribir una foacutermula en la columna adyacente que extraiga solamente el segundo apellido de la persona

Lo que tendremos despueacutes seraacute el comienzo del segundo apellido (la tercera palabra) de la celda Por el momento lo que tendremos que buscar es la posicioacuten del segundo caraacutecter espacio dentro de la celda Excel no dispone de una funcioacuten que busque automaacuteticamente el segundo caraacutecter espacio dentro de una celda pero no proporciona la funcioacuten ENCONTRAR que permite hacer buacutesquedas lo cual es lo que necesitamos

Introduzca el nombre David Peacuterez Cardenal (o cualquier otro nombre) en la celda A l Luego en la celda Cl introduzca esta funcioacuten

=ENCONTRAR( A 1 )

La funcioacuten ENCONTRAR busca una cadena de texto (el primer paraacutemetro) dentro de otra cadena de texto (el segundo paraacutemetro) y devuelve un nuacutemero que es la posicioacuten en la que se encuentra dicha cadena dentro de la otra

Eacutesta es la sintaxis de esta funcioacuten

ENCONTRAR(texto_buscadodentro_del_textonuacutem_inicial)

Con esto encontraremos la posicioacuten inicial del primer caraacutecter espacio en la celda A l ya que dijimos que buscase la cadena (un espacio) En el caso de David Peacuterez Cardenal deberiacutea devolver el valor 6 Pero nosotros estamos buscan-

226 Excel Los mejores trucos

do el segundo espacio no el primero Lo que haremos seraacute utilizar el nuacutemero devuelto por la primera foacutermula (en Cl) y lo utilizaremos como punto de partida para otra funcioacuten ENCONTRAR que buscaraacute el segundo espacio Por tanto en la celda C2 introduzca lo siguiente

=ENCONTRAR( A 1 C 1 + 1 )

Observe que esta vez hemos pasado un tercer argumento a la funcioacuten ENshyCONTRAR que indica la posicioacuten inicial que se encuentra en la celda Cl (6 en este ejemplo) maacutes 1 Esto no serviraacute como punto de partida para que la segunda funcioacuten ENCONTRAR busque el segundo espacio Por tanto lo que esta uacuteltima funcioacuten nos devuelva seraacute la posicioacuten del segundo espacio

Teniendo esto realmente la siguiente funcioacuten que tenemos que construir es aquella que escriba todos los caracteres a partir del segundo espacio hasta el final de la cadena Para ello utilizaremos la funcioacuten EXTRAE que como su nombre indica extrae un rango de caracteres a partir de una cadena de texto En la celda C3 introduzca lo siguiente

= EXTRAE(Al C2 + 1 2 5 6)

Esta funcioacuten devuelve un nuacutemero de caracteres especificado a partir de la cashydena de texto comenzando por la posicioacuten que hayamos especificado y tomando tantos caracteres como indiquemos Aquiacute podemos ver su sintaxis

EXTRAE(textoposicioacuten_inicialnuacutem_de_caracteres)

En nuestro caso hemos pedido a la funcioacuten EXTRAE que extraiga 256 caracshyteres a partir de texto de la celda A l comenzando por el primer caraacutecter que se encuentra despueacutes del segundo espacio Hemos utilizado el nuacutemero 256 para asegurarnos de que obtenemos todos los caracteres hasta el final de la cadena independientemente de su longitud (no importa si en la cadena quedan menos caracteres de los que indiquemos la funcioacuten devolveraacute tantos como pueda)

Con todas las piezas a mano ha llegado el momento de construir la foacutermula completa una foacutermula anidada que le daba paacutenico hace unos minutos Baacutesicashymente todo lo que tenemos que hacer es reemplazar todas las referencias a celshydas (excepto Al) de las funciones con las foacutermulas que habiacutea en esas celdas Podemos hacer esto usando cortar y pegar en la barra de foacutermulas

Haga clic en la celda C2 y en la barra de foacutermulas seleccione la funcioacuten y copiacuteela por completo exceptuando el signo de = de esta forma

ENCONTRAR( A 1 C 1 + 1 )

Pulse Intro para abandonar la celda con lo que estaremos en la celda C3 Una vez seleccionada en la barra de foacutermulas sombree la referencia a la celda C2 y

6 Trucos sobre foacutermulas y funciones 227

pegue la funcioacuten ENCONTRAR (Control-V) que acabamos de copiar en el portapapeles Pulse Intro Al hacer esto la celda C3 deberiacutea quedar de la siguienshyte forma

=EXTRAE(AlENCONTRAR( AlCl+1)+12 56)

Ahora necesitamos reemplazar la referencia a la celda Cl con la funcioacuten que hay dentro de dicha celda Seleccione la celda Cl sombree toda la foacutermula excepshyto el signo de = en la barra de foacutermulas copiacuteela en el portapapeles (Control-C) y luego seleccione la celda C3 Sombree Cl en la barra de foacutermulas y pegue el contenido del portapapeles Luego pulse Intro

Ahora todo lo que hay que hacer es cortar la celda C3 y pegarla en la celda Bl luego eliminar las celdas Cl y C2 Al final deberiacuteamos tener una foacutermula como esta

= EXTRAE(AlENCONTRAR( AlENCONTRAR( Al)+1)+12 5 6)

Si sigue las directrices de este concepto observaraacute que puede construir mega foacutermulas utilizando gran variedad de funciones de Excel Lo que tiene que hacer es primeramente planificar la forma en la que puede conseguir su objetivo y luego utilizar celdas individuales para obtener los resultados parciales que neceshysita Por uacuteltimo reemplace todas las referencias a celdas con las funciones que estaacuten almacenadas en dichas celdas

R ^ ^ S Trucar mega foacutermulas que hagan referencia sect Braquo9 a o t ros libros

^ M M ^ H I Las foacutermulas de Excel se complican cuando una mega foacutermula hace referencia a otro libro No soacutelo necesita incluir las referencias a celdas sino tambieacuten los nombres de libros hojas de caacutelculo e incluso la ruta completa al libro en caso de que esteacute cerrado Existen numerosos meacutetodos para simplificar lo que podriacutea ser un proceso muy complejo

Escribir tales foacutermulas desde cero puede convertirse en pesado raacutepidamente Con este truco le mostraremos un meacutetodo raacutepido y sencillo que le permite consshytruir estas foacutermulas sin la necesidad de utilizar nombres de libros y rutas de archivos El meacutetodo es tan simple que a veces lo pasamos por alto

En primer lugar hemos de aseguraremos de que estamos utilizando los conshyvenios correctos a la hora de referencia a celdas y hojas de caacutelculo Cuando se escribe una foacutermula siempre es una buena idea no introducir nunca referencias a celdas nombres de hojas o nombres de libros porque ello podriacutea incluir tipos y sintaxis incorrectas La mayoriacutea de las personas que estaacuten en un nivel intermeshydio normalmente utilizan el cursor del ratoacuten para introducir las referencias a

228 Excel Los mejores trucos

celdas hojas y libros Realmente esto impide que se produzcan errores de sintaxis y de tipos pero si se utiliza con funciones anidadas sabraacute que la foacutermula se convertiraacute raacutepidamente en algo enorme y m u y difiacutecil de seguir

Por ejemplo eche un vistazo a la siguiente foacutermula

=ENTERO(SUMA(CMis documentosExcelFinanzasProgramas de ventas[Ventasxls]Ventas de productosC2C2924))

Se trata de una simple funcioacuten SUMA anidada dentro de una funcioacuten ENTEshyRO Como hace referencia a celdas situadas en un libro cerrado debe incluir la ruta completa jun to con las referencias a celdas el nombre de la hoja y el libro Sin embargo si tuviese que anidar alguna otra funcioacuten dentro de esta ya se convertiriacutea en algo praacutecticamente imposible de escribir

A continuacioacuten veamos un raacutepido meacutetodo para escribir mega funciones que hagan referencia a libros externos El truco consiste simplemente en escribir la funcioacuten en el libro al que haremos referencia en una celda aparte Si solamente va a hacer una referencia a una hoja en este libro es mejor utilizar una celda en esta hoja

En primer lugar al igual que hicimos en el truco para mostrar el nuacutemero de veces que apareciacutea un diacutea en un mes desarrollaremos la foacutermula en una celda aparte en el libro en el que acabaraacute la referencia Una vez tengamos el resultado deseado cortaremos la foacutermula de dicha celda activaremos el libro en el que deberiacutea aparecer el resultado seleccionaremos la celda apropiada y te daremos la foacutermula

Excel hace todo el trabajo duro al incluir los nombres de libro y cualquier nombre de hoja En caso de que necesite modificar o antildeadir algo la foacutermula simplemente abra el libro que estaacute siendo referenciado corte la foacutermula desde el libro original y peguacuteela en el libro referenciado Luego haga los cambios necesashyrios corte y pegue de nuevo la foacutermula en el lugar de donde procediacutea

Trucar una de las funciones de base de datos de Excel para que haga el trabajo de muchas funciones Las funciones de base de datos de Excel (BDSUMA BDCONTAR etc) pueden hacer el trabajo de cientos de funciones reduciendo tanto el tiempo de caacutelculo como el espacio ocupado en el libro

Cuando utilice funciones de base de datos de Excel puede especificar hasta 256 criterios diferentes Por ejemplo puede que desee sumar cantidades que hay en la columna A pero soacutelo aquellas en cuya celda correspondiente en la columna

6 Trucos sobre foacutermulas y funciones 229

B haya un nuacutemero mayor que 100 y en la de la celda C haya un nuacutemero menor que 40 Si por el contrario desea sumar las cantidades cuyos valores corresponshydientes en la columna B son menores que 50 necesita utilizar otra funcioacuten y un rango diferente como criterio Seriacutea mucho maacutes sencillo si tuvieacutesemos una uacutenica funcioacuten y pudieacutesemos cambiar faacutecil y raacutepidamente el criterio Si nunca ha utilishyzado las funciones de base de datos de Excel con anterioridad le recomendamos encarecidamente que se familiarice con ellas ya que son m u y buenas para exshytraer informacioacuten estadiacutestica a partir de una base de datos o una tabla de Excel

Para ver coacutemo funciona rellene algunos datos tal y como se muestra en la figura 618 Mantenga los encabezados de columnas de la misma forma pero puede introducir los datos que desee debajo de ellos Mientras que ahora le pone a esta tabla el nombre de TodosLosDatos incluyendo todos los encabezados a la hoja le daraacute el nombre de Datos

A 1 Nombre 2 Antonio 3 Al ex 4 David 5 Marta 6 David 7 Santos 8 Laida 9 Mar-IacuteO Luis 11 David 12 Laida 13 Anqel 14 Al ex 15 Carolina

16 Aacutengel Iacute7 18

B Fechas

1522004 1622004 1722004 1822004 1922004 2022004 2122004 2222004 2322004 2422004 2522004 2622004 2722004 2822004 2922004

C Coste total

3200 euro 3000 euro 2300 euro 3600euro 2500 euro 3000 euro 3100 euro 3000 euro 2800euro 2300euro 3300euro 4500 euro 2800 euro 2900 euro 3000euro

D E Cantidad pagada Porcentaje

2200 euro 1200 euro 1600 euro 3600euro 2100 euro 1500 euro 1800 euro 1900 euro 1200 euro 2300 euro 1200 euro 2300 euro 900 euro

1800 euro 2300 euro

pagado 69 40 70

100 84 50 58 63 43

100 36 51 32 62 77

F Coste restante

1000 euro 1800 euro 700 euro - euro

400 euro 1500 euro 1300 euro 1100 euro 1600 euro

- euro 2100 euro 2200 euro 1900 euro 1100 euro 700 euro

G

Figura 618 Datos propuestos

Inserte otra hoja y llaacutemela Resultados En la celda A2 introduzca la siguienshyte foacutermula

=Datos Al

Propague esta foacutermula hasta la celda F2 de forma que tenga una copia sincronizada de los encabezados de la tabla En la celda A3 introduzca cualquier nombre de los que exista en la tabla de la primera hoja como por ejemplo John D luego en la celda D3 introduzca la siguiente foacutermula

=BDEXTRAER(TodosLosDatosB2$A$2$A$3)

Propague esta foacutermula hasta la celda F3 y de formato a las celdas C3F3 como sea requerido

230 Excel Los mejores trucos

Para copiar raacutepidamente las celdas como eacutesta sin formato seleccione la celda haga clic con el botoacuten derecho del ratoacuten en el pequentildeo recuadro de propagacioacuten y manteniendo pulsado el botoacuten derecho del ratoacuten arrastre el cursor hasta donde sea necesario Luego seleccione la opcioacuten Rellena sin formato

Los datos correspondientes deberiacutean extraerse de la tabla cuyo nombre ha introducido en la celda A3 Eacuteste es soacutelo un ejemplo simple de coacutemo puede utilizar la funcioacuten BDEXTRAER para extraer informacioacuten relevante

Si obtiene el error NUM significa que tiene dos o maacutes nombres ideacutenticos en la columna Nombre

Llegados a este punto la mayoriacutea de las personas seguiriacutean el mismo concepshyto para todos los nombres para los que quisieran extraer informacioacuten de la tabla Sin embargo este esfuerzo no es necesario

Dado que siempre estamos haciendo referencia a la celda A3 para el nombre tendriacutea mucho maacutes sentido en la mayoriacutea de los casos si simplemente pudieacuterashymos utilizar una lista desplegable en la celda A3 que contuviese todos los nomshybres que hay en la tabla Podemos utilizar la funcioacuten estaacutendar de validacioacuten de Excel para crear dicha lista Sin embargo como la lista original de nombres estaacute ubicada en otra hoja no podemos hacer referencia para lista de la misma forma que lo hariacuteamos a una lista que estuviese en la misma hoja (es decir una referenshycia a un rango estaacutendar) Podemos resolver este problema faacutecilmente daacutendole nombre a la columna Nombre de la tabla original y luego utilizando ese nombre como origen de la lista para la validacioacuten

Dado que muchas tablas no son estaacuteticas (es decir sus datos estaacuten continuamente modificaacutendose ya sea antildeadiendo o eliminando registros) deberiacutea considerar la posibilidad de utilizar rangos dinaacutemicos con nombre para la columna Nombre

Haga clic de nuevo en la hoja Datos y teniendo seleccionada cualquier celda vaya a lnsertargtNombregtDefinir En el cuadro de texto Nombres en el libro introshyduzca Nombres y en el cuadro de texto Se refiere a introduzca la siguiente foacutermula y luego haga clic en Agregar

= D E S R E F ( $ A $ 2 0 0 C O N T A R A ( $ A $ 2 $ A $ 1 0 0 0 ) 1 )

Haga clic en la hoja Resultados seleccione la celda A3 y luego vaya a DatosgtValidacioacuten

N

6 Trucos sobre foacutermulas y funciones 231

Seleccione la opcioacuten Lista del cuadro de lista desplegable y en el cuadro de texto Origen introduzca lo siguiente

=Nombre

Aseguacuterese de que la casilla de verificacioacuten Celda con lista desplegable esteacute activada y luego haga clic en Aceptar Ahora ya puede seleccionar cualquier nombre de la lista de la celda A3 y los datos que hay a la derecha mostraraacuten la informacioacuten correspondiente de forma automaacutetica Podemos llevar esto a un nishyvel superior y utilizar la funcioacuten BDCONTAR para extraer la cantidad de persoshynas cuyo coste total es mayor que un cierto nuacutemero que especifiquemos y un porcentaje pagado menor que otro nuacutemero que tambieacuten especificaremos

Para ello primeramente necesitaraacute crear un rango dinaacutemico con nombre para la columna Coste total y para la columna Pagado En el cuadro de texto Nombres en el libro introduzca Coste_totalM y en el cuadro de texto Se refiere a introduzca la siguiente foacutermula tras lo cual debe pulsar Agregar

=DESREF($C$200CONTARA($C$2$C$1000)1)

Esta vez en el cuadro de texto Nombres en el libro introduzca PorcentajePagado y en el cuadro de texto Se refiere a introduzca la siguiente foacutermula tras lo cual debe pulsar Agregar

=DESREF($E$200CONTARA($E$2$E$1000)1)

Active la hoja Resultados seleccione la celda Al 1 y luego seleccione DatosgtValidacioacuten Seleccione la opcioacuten Lista y luego introduzca en el cuadro de texto Origen el texto M = Coste_total Haga clic en Aceptar Seleccione la celda B l l y luego vaya a DatosgtValidacioacuten Seleccione la opcioacuten Lista y luego introshyduzca en el cuadro de texto Origen el texto = Porcentaje_pagadoM Haga clic en Aceptar

En la celda A l 2 introduzca lo siguiente

= D a t o s C l

Seleccione la celda B12 e introduzca lo siguiente

= D a t o s E l

Seleccione la celda Al 3 e introduzca lo siguiente

= gt amp A l l

Seleccione la celda B13 e introduzca lo siguiente

= lt S e T E X T O ( B l l 0 )

232 Excel Los mejores trucos

En la celda Al 5 introduzca lo siguiente

=DCONTAR(TodosLosDatOS$A$12$A$12$B$13)

Seleccione cualquier cantidad de coste total desde la celda Al 1 y cualquier porcentaje pagado desde la celda B l l y la funcioacuten BDCONTAR le devolveraacute el nuacutemero de personas que coinciden con ese criterio Por ejemplo si ha seleccionashydo 65 y 100 estaraacute extrayendo la cantidad de personas que tienen un coste total mayor que 65 y un porcentaje pagado menor que el 100

Como puede ver puede utilizar esta funcioacuten BDCONTAR para extraer cualshyquier combinacioacuten de criterios para las columnas Coste total y Porcentaje pagashydo Con un poco maacutes de trabajo puede llevar esto todaviacutea a un nivel superior y hacer que los operadores de comparacioacuten utilizados en criterio sean intercambiashybles

Lo primero que tiene que hacer es crear una lista de operadores de comparashycioacuten que puedan ser utilizados en la lista de validacioacuten Vaya a una columna que no esteacute siendo utilizada en la hoja Resultados y en cualquiera de las filas de dicha columna introduzca el encabezado Operadores Debajo de eacuteste en cada una de las celdas siguientes introduzca = gt = gt lt y lt = tal y como se muestra en la figura 619

Opeiuumltloies

Figura 619 Operadores de comparacioacuten

Para dar nombre a este rango seleccione el encabezado y todos los operadores por debajo de eacutel seleccionando luego la opcioacuten Insertar mayor que NombregtCrear Aseguacuterese de que estaacute activada la opcioacuten Soacutelo fila superior y haga clic en Aceptar Excel daraacute nombre automaacuteticamente al rango basaacutendose en el encabezado (en este caso Operadores)

Seleccione la celda G7 e introduzca el encabezado Seleccione un criterios Teniendo seleccionadas las celdas G7 y H7 ceacutentrelas yendo a FormatogtCeldasgt Alineacioacuten y luego eligiendo en el cuadro de lista desplegable Horizontal la opcioacuten Centrar en la seleccioacuten Seleccione las celdas G8 y H8 vaya a DatosgtValidacioacuten y seleccione la opcioacuten Lista en el cuadro de lista desplegable En el cuadro de texto Origen introduzca = Operadores Aseguacuterese de que estaacute activada la casilla de verificacioacuten Celda con lista desplegable y luego haga clic en Aceptar

Vuelva a la hoja Datos y cree un rango dinaacutemico con nombre para la columna Fechas Vaya a lnsertargtNombregtDefinir en el cuadro de texto Nombres en el libro

6 Trucos sobre foacutermulas y funciones 233

escriba Fechas y en el cuadro de texto Se refiere a escriba la siguiente foacutermula y luego haga clic en Agregar

= DESREF($B$200CONTARA($B$2$B$10 00) 1)

Seleccione la celda G7 coacutepiela y peguacuteela en la celda G9 Cambie la palabra Criterio por Fecha Seleccione las celdas G10H10 vaya a DatosgtValidacioacuten y luego seleccione la opcioacuten Lista en el cuadro de lista desplegable En el cuadro de texto Origen introduzca = Dates

Aseguacuterese de que la opcioacuten Celda con lista desplegable esteacute activada y haga clic en Aceptar Seleccione la celda G i l e introduzca lo siguiente

=Datos$B$1

Propaguacuteela hasta la celda Hl 1 Seleccione la celda G12 introduzca la siguienshyte foacutermula (deberiacutea utilizar el formato de fecha) y coacutepiela hasta la celda H12

=G8 amp T E X T O ( G 1 0 d d m m a a )

En la celda F13 introduzca la palabra Resultado y ceacutentrelo en la seleccioacuten teniendo seleccionadas las celdas F 1 3 y G 1 3 En la celda H13 introduzca la sishyguiente foacutermula

=BDSUMAR(TodosLosDatosDatos$C$1$G$11$H$12)

El resultado final deberiacutea parecerse al que se muestra en la figura 620 que como demostracioacuten muestra todas las foacutermulas

G

Fech =G88JEXTO(G10 Resultado

Seleccione

Seleccione 190201

as ddmmaa) =

H

un criterio

un a fecha 200201

Fechas =H8ampTEXT0(H10 ddmmaa) =B D S U MAR (To d o s Lo s D at o s b at o s

I

UumliexclC$1HiexclG$11$HUumliexcl1

J

2)

Figura 620 Hoja mostrando las foacutermulas correctas y los encabezados

Oculte las filas 11 y 12 ya que no necesitamos verlas Terminaraacute teniendo una tabla lista para ser utilizada como la que se muestra en la figura 621 a la que se ha aplicado un formato en particular para facilitar su lectura

234 Excel Los mejores trucos

Seleccione un

gt= lt= criterio

Seleccione una fecha 190201

Resultado 200201

90 euro|

Figura 621 Hoja con la iacutenter faz final

Utilizando este principio puede tener faacutecilmente una o varias funciones de base de datos haciendo el trabajo que de otra manera hariacutean cientos de funcioshynes

CAPIacuteTULO 7

Trucos sobre macros Trucos 81 a 94

Las macros hacen que sea muy faacutecil automatizar tareas repetitivas en Excel pero la forma en la que son creadas y las facilidades para utilizarlas a veces son problemaacuteticas Por suerte Excel es flexible lo suficientemente como para que pueda solucionar esos problemas y crear nuevas caracteriacutesticas con un miacutenimo esfuerzo

Acelerar el coacutedigo y eliminar los parpadeos de la pantalla Cuando graba macros dentro de Excel el coacutedigo que es generado a veces produce parpadeo se la pantalla que no solamente ralentizar la macro sino que hacen que la actividad de la misma parezca muy desorganizada Por suerte podemos eliminar esos parpadeos de la pantalla a la vez que celebramos el coacutedigo

Uno de los inconvenientes de las macros grabadas en Excel es que el coacutedigo producido es a menudo m u y ineficiente Esto puede significar que las macros que deberiacutean tardar solamente unos segundos para completarse a veces requieshyren de mucho maacutes tiempo y parecen muy ineficaces Ademaacutes cuando crea macros utilizando la grabadora de macros todas las pulsaciones de teclas se graban independientemente de que tengan o no sentido Esto quiere decir que sigue coshymetiendo un error y que a continuacioacuten lo corrige las pulsaciones requeridas para completar esas acciones tambieacuten son grabadas en el coacutedigo de la macro

Si ya ha jugado algo con macros y coacutedigo en VBA probablemente habraacute oiacutedo hablar de la propiedad A p p l i c a t i o n S c r e e n U p d a t i n g Si establece esta proshypiedad a F a l s e al inicio de una macro no solamente estaraacute deteniendo los par-

uuml

238 Excel Los mejores trucos

padeos de la pantalla asociados a la macro grabada sino que tambieacuten estaraacute incrementando la velocidad de ejecucioacuten de la misma La razoacuten por la que este meacutetodo acelerar el coacutedigo es porque Excel ya no necesita volver a dibujar la panshytalla cada vez que encuentra un comando como pueda ser S e l e c t A c t iacute v a t e L a r g e S c r o l l S m a l l S c r o l l y muchos otros Para incluir la sentencia A p p l i c a t i o n S c r e e n U p d a t i n g = F a l s e al inicio de una macro existente vaya a HerramientasgtMacrogtMacros seleccione la macro en cuestioacuten haga clic en Modificar e introduzca el siguiente coacutedigo

1 una Macro Macro grabada el 1122003 por Susana

ApplicationScreenUpdating = False

bullSU COacuteDIGO

ApplicationScreenUpdating = True End Sub

Observe que hemos vuelto a establecer esta propiedad a True despueacutes de comshypletar la macro Aunque Excel siempre volveraacute a activar esta propiedad tan pronshyto como el foco vuelva a eacutel (es decir cuando la macro termine y el usuario vuelva a interactuar con la aplicacioacuten) en muchos casos es mejor asegurarse e incluir el coacutedigo al final

En algunos casos se encontraraacute con que la propiedad A p p l i c a t i o n S c r e e n U p d a t i n g ha vuelto a activarse antes de que la macro grabada se haya completado Esto puede ocurrir con macros grabadas que utilicen el comando S e l e c t con frecuencia Y en caso de que esto suceda puede que tenga que repeshytir la sentencia A p p l i c a t i o n S c r e e n U p d a t i n g = F a l s e en otras partes de la macro

^ Q Q 3 Ejecutar una macro a una determinada hora (I ^Fv^l En m u c ^ a s ocasiones seriacutea una gran idea poder ejecutar una macro a una

H H I ^ I hora predeterminada o a intervalos de tiempo especiacuteficos Por suerte Excel proporciona un meacutetodo VBA que hace que esto sea posible

El meacutetodo A p p l i c a t i o n O n T i m e puede hacer que las macros se ejecutan automaacuteticamente una vez realizadas ciertas configuraciones Supongamos que tiene una macro que desea ejecutar cada diacutea a las 1500 En primer lugar debereshymos determinar coacutemo lanzar el meacutetodo OnTime Podemos hacerlo utilizando el evento Workbook_Open en el moacutedulo privado del objeto Workbook

7 Trucos sobre macros 239

En Windows la manera maacutes raacutepida para llegar al moacutedulo privado del objeto Workbook (ThisWorkbook) es haciendo clic con el botoacuten derecho del ratoacuten en el icono de Excel situado a la izquierda del menuacute Archivo y luego seleccionar la opcioacuten Ver coacutedigo (en Macintosh debe abrir el editor de Visual Basic y luego abrir el moacutedulo para el objeto Workbook desde la ventana de proyecto) Una vez en este sitio introduzca el siguiente coacutedigo

Priacutevate Sub Workbook_Open( ) ApplicationOnTime TimeValue(150000) MiMacro

End Sub

MiMacro deberiacutea ser el nombre de la macro que desea ejecutar Deberiacutea residir en un moacutedulo estaacutendar y contener el meacutetodo OnTime de la siguiente forma

Sub MiMacro( )

ApplicationOnTime TimeValue(150000) MiMacro

SU COacuteDIGO

End Sub

Esto ejecutaraacute el procedimiento MiMacro todos los diacuteas a las 1500 tan pronshyto como se abra Excel Ahora suponga que desea ejecutar MiMacro a intervalos de 15 minutos despueacutes de abrir el libro De nuevo desearemos configurar esta programacioacuten tan pronto como se abra el libro De nuevo haga clic con el botoacuten derecho del ratoacuten sobre el icono de Excel situado a la izquierda del menuacute Archivo seleccione la opcioacuten Ver coacutedigo e introduzca el siguiente coacutedigo

Private Sub Workbook_BeforeClose(Cancel As Boolean) ApplicationOnTime dTime MiMacro False

End Sub

Private Sub Workbook_Open( ) ApplicationOnTime Now + TimeValue(001500) MiMacro

End Sub

En cualquier moacutedulo estaacutendar (accediendo a traveacutes de la opcioacuten lnsertargt Moacutedulo) introduzca el siguiente coacutedigo

Sub MiMacro( ) dTime = Now + TimeValue(0 0150 0) ApplicationOnTime dTime MiMacro

SU COacuteDIGO End Sub

Observe coacutemo pasamos el valor 15 minutos a la variable puacuteblica dTime Esto es de forma que pueda cancelar el meacutetodo OnTime cuando ocurra el evento

240 Excel Los mejores trucos

WorkbookBef o reClose estableciendo el argumento opcional Schedule a Falso De forma predeterminada el argumento S c h e d u l e estaacute establecido como True de forma que al establecerlo en False estamos indicando a Excel que cancele el meacutetoshydo OnTime que estaba establecido para que se ejecutase a una hora en particular

Si no pasoacute la hora a una variable Excel no sabraacute queacute meacutetodo OnTime desea cancelar ya que la expresioacuten Now + Time Valueacute ( 0 0 1 5 0 0 ) no es estaacutetica pero siacute lo es cuando se pasa a una variable Si no establece el argumento opcional Schedule a False el libro se abririacutea automaacuteticamente cada 15 minutos despueacutes de que lo cerrarse y ejecutase MiMacro

Q ^ Q Utilizar CodeName para hacer referencias | B 9 9 a hojas en los libros de Excel

^ ^ ^ ^ ^ B A veces necesitaraacute crear una macro que funcione incluso si los nombres de hojas a los que hace referencia cambien

Si ha grabado una macro en Excel que hace referencia a una hoja en particushylar dentro de libro debe saber que el coacutedigo seguiraacute funcionando soacutelo si los nomshybres de las hojas se mantienen iguales Por ejemplo si la hoja se llama Presupuesto el coacutedigo de la macro tiene la sentencia S h e e t s ( P r e s u p u e s t o ) S e l e c t y ahora cambia el nombre de dicha hoja la macro dejaraacute de funcionar Esto es debido a que la grabadora de macros genera el coacutedigo basaacutendose en el nombre de la pestantildea de la hoja en cuestioacuten o en el nombre que se ve cuando se trabaja en Excel Para superar esta limitacioacuten tenemos dos opciones siendo la primera de ellas la que utiliza nuacutemeros de iacutendice en vez de nombres El iacutendice de una hoja se determina por su posicioacuten dentro de libro La hoja que estaacute maacutes la izquierda siempre tendraacute el iacutendice 1 la siguiente tendraacute el iacutendice 2 y asiacute sucesivamente VBA permite especificar cualquier hoja utilizando su iacutendice en vez de su nombre aunque por desgracia el generador de coacutedigo de Excel nunca utiliza estos iacutendices

De todas formas aunque utilizar un iacutendice como por ejemplo Sheets(3)Select es una opcioacuten mejor que utilizar el nombre de la hoja resulta que la posicioacuten de la hoja podriacutea cambiar en el libro en caso de que antildeada elimine o mueva hojas

En vez de utilizar iacutendices los programadores expertos utilizan CodeName Cada hoja de un libro tiene un uacutenico CodeName que no cambia aunque la hoja se mueshyva o cambie de nombre incluso aunque se antildeadan otras hojas Puede ver el CodeName de las hojas simplemente yendo al Editor de Visual Basic (seleccione HerramientasgtMacrogtEditor de Visual Basic o pulse Alt Opcioacuten-Fll ) y luego mostrando la ventana de proyectos en caso de que sea necesario (seleccione VergtVentana Proyectos)

En la figura 71 el CodeName para la hoja cuyo nombre de pestantildea es Presushypuesto es Hoja3 El CodeName siempre es el nombre que aparece fuera de los

7 Trucos sobre macros 241

pareacutentesis cuando mira en la ventana de proyectos Puede hacer referencia a esta hoja con coacutedigo VBA en el libro utilizando la sentencia H o j a 3 S e l e c t e n vez de utilizar S h e e t s ( P r e s u p u e s t o ) S e l e c t o S h e e t s (3 ) S e l e c t

Archivo Edicioacuten Ver Insertar Formato Depuracioacuten Ejecutar Herramientas Complementos Ventana Ayuda

4$[ EuroTool (EUROTOOLXLA) lt5sect VBAProject (Librol)

Microsoft Excel Objetos EacutesectIacute Hojal (Datos antiguos) H Hoja2 (Datos nuevos)

13IZZZZI Q ThisWorkbook

iexclHoja3 Worksheet

Alfabeacutetica | por categoriacuteas j

I Hoja3 JDisplayFageBreaks False DisplayRightToLeft False EnableAutoFilter False EnableCalculation True EnableOutlining False EnablePivotTable False EnableSelection 0 - xlNoRestriction iexclNtildeame Presupuesto ScrollArea

Figura 71 Los CodeNames y los nombres de hojas en la ventana de proyectos de VBE

Si el libro ya estaacute lleno de coacutedigo VBE ya sea escrito a mano o grabado y que no utilice CodeNames para hacer referencia a las hojas puede cambiarlo al nivel del proyecto (es decir todo el coacutedigo que esteacute en todos los moacutedulos de libro) simplemente yendo a EdicioacutengtReemplazar mientras que esteacute en la ventana del editor

El uacutenico caso de que no puede utilizar el CodeName de una hoja es cuando hace referencia a una hoja que se encuentra en un libro diferente del que contiene el coacutedigo

Conectar de forma faacutecil botones a macros En lugar de asignar una macro a cada botoacuten a veces resultaraacute maacutes conveniente crear una uacutenica macro que gestione todos los botones

Normalmente los usuarios prefieren ejecutar las macros a traveacutes de una tecla de acceso raacutepido o a traveacutes de un botoacuten que pueda pulsarse faacutecilmente en vez de

242 Excel Los mejores trucos

tener que encontrarlas a traveacutes de menuacutes y cuadros de diaacutelogo La forma maacutes habitual de acceder a un botoacuten es a traveacutes del cuadro de herramientas Formulashyrios que estaacute disponible si selecciona la opcioacuten VergtBarras herramientasgtFormu-larios Estos botones en nuestra opinioacuten son la mejor eleccioacuten para ejecutar las macros especialmente aquellas que hayan sido grabadas ya que eacutestas normalshymente requieren que el usuario se encuentre en una hoja en particular cuando se ejecuten Esto es debido a que las macros grabadas siempre utilizan la hoja activa si graboacute la macro sin cambiar de hoja Esto significa que si el usuario no se enshycuentra en la hoja adecuada (es decir en una hoja que no es en la que se graboacute la macro) eacutesta puede que falle o haga cambios en una hoja incorrecta Por el conshytrario si utiliza botones en las hojas puede forzar al usuario a que vaya a la hoja adecuada y pulse el botoacuten para ejecutar la macro de forma que se ejecute en las condiciones adecuadas

iquestPor queacute utilizar un botoacuten del cuadro de herramientas Formularios en S^ vez de un botoacuten del cuadro de herramientas Cuadro de controles

w^ Porque los botones normalmente se utilizan para detectar un clic del ratoacuten y ejecutar una macro especiacutefica Soacutelo deberiacutea utilizar un botoacuten de comando del cuadro de herramientas Cuadro de controles cuando necesite atrapar eventos tales como doble clic clic con el botoacuten derecho etc Los controles del cuadro de herramientas Cuadro de controles se conocen como objetos ActiveX y utilizarlos simplemente para ejecutar una macro resulta una sobrecarga innecesaria para Excel sobre todo si utiliza nuacutemeros botones

Cuando tiene muchos botones en un libro y cada botoacuten se utiliza para ejecushytar una macro en especial puede asociar las macros a los botones haciendo clic con el botoacuten derecho del ratoacuten en su borde y elegir la opcioacuten Asignar macro Luego debe encontrar la macro adecuada en el cuadro de diaacutelogo y seleccionarla tal y como se muestra en la figura 72

Como cada botoacuten es normalmente utilizado para ejecutar una macro diferenshyte deberaacute desplazarse por la lista de macros para encontrar la que estaacute buscando Sin embargo existe una manera m u y sencilla para asignar a todos los botones una misma macro y auacuten asiacute hacer que cada uno de ellos ejecute una macro diferente Coloque el siguiente coacutedigo en cualquier moacutedulo estaacutendar Seleccione HerramientasgtMacrogtEditor de Visual Basic (Al t Opcioacuten-Fl l ) y cree un nuevo moacutedulo seleccionando la opcioacuten lnsertargtMoacutedulo y luego introduciendo el siguiente coacutedigo

Sub QueBoton( ) Run ApplicationCaller

End Sub

7 Trucos sobre macros 243

jsl- bull iquestpound) Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana

euro

1 A

1 Antildeadir fila Pegar

[ Solicitar

1 2

3

4 Horas

1 5 0 6 48

7 72

8 45

9 87

10 26

11 12

12 35 |H 4 bull bull H o j a l

Listo

Eliminar fila

Borrar C

Llamada bull

C

Imprimir

U - bull bull bull bull bull bull bull bull - bull bull bull bull bull bull bull bull bull

D E

I

Nombres

Juan Garciacutea

Mariacutea Serrano

Marta Salvador

Santos Palacios

Gonzalo Domiacutenguez

Carlos Buitrago

Susana Mulero

Lanolina Estrada Hoja2 Hoja3

Jombre de la macro

Libro2 ThisWorkbook Imprimir

Libro2 ThisWorkbook AnadirFila Libro2 ThisWorkbook Borrar bullydeg^IhJsWQr|^QQSEMlD^M

Libro2 ThisWorkbook Ir ASemana 1 y 2 Libro2 ThisWorkbook Ir ASemanaSy 4 Libro2 ThisWorkbook Llamada Libro2 ThisWorkbook PegarValores Libro2 ThisWorkbook Solicitar Libro2 ThisWorkbook Solicitar

Raeros en iexclEste libro

Descripcioacuten

1

i 4 1

bull-V

ffl-

F

3 [ J

3

Jnlxll - - S x

G

Aceptar 1

Cancelar

Nuevo j

Grabar

NUM

I-mdash

Figura 72 Botoacuten Imprimir activo teniendo

seleccionado y con el cuadro de diaacutelogo Asignar macro seleccionada tambieacuten la macro en cuestioacuten

Ahora simplemente necesita asignar a cada botoacuten el mismo nombre que tieshyne la macro que deberiacutea ejecutar Para cambiar el nombre de un botoacuten simpleshymente haga clic en eacutel y reemplace el nombre que aparece en el Cuadro de nombres (que estaacute a la izquierda de la barra de foacutermulas) con el nombre de la macro que deberiacutea ejecutar Haga esto mismo para todos los botones De esta forma si a un botoacuten le ha llamado Macrol y le ha asignado la macro QueBoton cuando haga clic sobre eacutel ejecutaraacute la macro Macrol

Crear una ventana de presentacioacuten para un libro Las ventanas de presentacioacuten proporcionan un toque de distincioacuten a una aplicacioacuten sin mencionar el hecho de que le entretienen mientras que la aplicacioacuten se carga iquestPor queacute no hacer que las hojas de caacutelculo hagan lo mismo

Es posible utilizar las caracteriacutesticas proporcionadas por VBA para crear una pantalla de presentacioacuten para cualquier libro Encontraraacute que el proceso es mushycho maacutes sencillo de lo que se habriacutea imaginado Para crear una pantalla de preshysentacioacuten que se muestre entre cinco y diez segundos en el momento en el que se abra un libro y que luego se cierre automaacuteticamente comenzaremos abriendo el

244 Excel Los mejores trucos

editor de Visual Basic seleccionando HerramientasgtMacrogtEditor de Visual Basic Luego seleccione I n se rtargt UserForm Si no aparece el cuadro de controles simshyplemente seleccione VergtCuadro de herramientas

En el cuadro de herramientas haga clic en el icono Etiqueta (para encontrarshylo simplemente pase por encima de cada icono y veraacute un pequentildeo cuadro de ayuda que le mostraraacute el nombre de cada uno) Haga clic en cualquier parte del formulario para insertar la etiqueta Luego utilice los cuadros que aparecen a su alrededor para cambiar el tamantildeo de forma que pueda escribir texto dentro del etiqueta Teniendo seleccionada la etiqueta vuelva a hacer clic en ella Con ello entraraacute en el modo de edicioacuten de texto y podraacute marcar el texto predefinido que aparece dentro de ella

Dentro de la etiqueta escriba el texto Mi pantalla de presentacioacuten Para camshybiar otras propiedades de la etiqueta (el tamantildeo de la fuente el color etc) aseshyguacuterese de tener la seleccionada y luego pulse F4 o bien seleccione la opcioacuten VergtVentana Propiedades Ahiacute puede cambiar todas aquellas propiedades que desee Ahora haga doble clic en el formulario (no en la etiqueta) y seleccione el evento I n i t i a l i z e que aparece en el cuadro de lista desplegable de la parte superior derecha de la ventana como se muestra en la figura 73

^Mmiwmmmmmmmamp^- bull ampsect Archivo Edicioacuten Ver Insertar Formato Depuracioacuten

bullbull bull XI

J - iexcl ~ g - E u r o T o o l (EUROTOOLXLA)

i - ltjg VBAProject (Libro2xls) 11 - Microsoft Excel Objetos S] Hojal (Hojal)

| Q ThisWorkbook j - v Formularios

El UserForm 1

] j UserForm 1 UserForm ~^]

Alfabeacutetica | por categoriacuteas |

fflsectamp9flflflHH UserForm 1 - 1 I iexclBackColor bull ampH8000000Famp i J BorderColor bull ampH80000012amp _J jBorderStyle 0 - fmBorderStyler Caption UserForm 1

Cycle 0 - fmCycleAllFonr DrawBuffer 32000 i

Enabled True j

Font Tahoma |

IForeColor bull ampH800000128tZJ |

JJ -J lt

1 UserForm

F

P r i v a t p Siuuml

End Sub

i l iLJ

JnJuumlJ Ejecutar Herramientas Complementos Ventana Ayuda

v i _ J v Liacuten 2 Col 1

3 Click

Click Dbiciick

Error

KevDown KeyPress KeyUp Layout MouseDown MouseMove

- S x

raquo - _ _ _ _ _ _ j

R i

JJ^I Figura 73 Cuadro de lista desplegable con los diferentes eventos para el objeto UserForm

Dentro de ese procedimiento introduzca el siguiente coacutedigo

ApplicationOnTime Now + TimeValue(000005) CerrarFormulario

7 Trucos sobre macros 245

Con lo que el coacutedigo deberiacutea quedar de la siguiente forma

Priacutevate Sub UserForm_Initialize( ) ApplicationOnTime Now + TimeValue(000005) CerrarFormulario

End Sub

A continuacioacuten vaya a InsertargtMoacutedulo e introduzca el siguiente coacutedigo exacshytamente como se muestra

Sub CerrarFormulario( ) Unload UserForml End Sub

Ahora todo lo que necesita es escribir algo de coacutedigo en el moacutedulo privado del objeto Workbook (ThisWorkbook) En el explorador de proyectos deberiacutea ver el nombre del libro Expanda las carpetas que se encuentran debajo de libro hasta que encuentre ThisWorkbook dentro de la carpeta Microsoft Excel Objetos Haga doble clic en ThisWorkbook para mostrar su moacutedulo privado En dicho moacutedulo privado introduzca el siguiente coacutedigo

Private Sub Workbook_Open( ) UserFormlShow

End Sub

Cierre la ventana para volver a Excel Guarde y cierre el libro y vuelva a abrirshylo para ver la ventana de presentacioacuten en accioacuten Puede ver un ejemplo de esto en la figura 74

Figura 74 Pantalla de presentacioacuten de ejemplo en accioacuten

246 Excel Los mejores trucos

Simplemente recuerde que la pantalla de presentacioacuten deberiacutea mostrarse tan soacutelo por un periacuteodo corto de tiempo y soacutelo deberiacutea contener texto resumido y relevante Si muestra esta pantalla durante maacutes de diez segundos puede resultar molesto para el usuario

Mostrar un mensaje de Por favor espere iquestHa tenido alguna vez una de esas macros que parece tardar una eternidad para completarse Si esto resulta un problema puede hacer que Excel muestre un mensaje de Por favor espere al usuario

Muchos usuarios esperan que el coacutedigo se ejecute y se complete praacutecticamenshyte de forma instantaacutenea Sin embargo esto no siempre ocurre asiacute Las macros grabadas en particular normalmente necesitan de mucho maacutes tiempo para comshypletarse que aquellos coacutedigos bien escritos en VBA Para complicar maacutes la cosa el lenguaje VBA de Excel es normalmente maacutes lento que la mayoriacutea de los lenguashyjes de programacioacuten

Por suerte podemos usar un poco de coacutedigo extra para crear un mensaje Por favor espere de forma que los usuarios sepan que el coacutedigo se estaacute ejecutando y que Excel no se ha bloqueado Por desgracia uno de los meacutetodos maacutes conocidos para hacer que los usuarios sean conscientes de que el coacutedigo se estaacute ejecutando es utilizando una barra de progreso de Excel

Existen dos problemas con este meacutetodo Uno la barra de progreso puede hacer que el coacutedigo sea todaviacutea maacutes lento complicando el problema Y dos el coacutedigo lento probablemente esteacute causado por un bucle y no puede utilizar la grabadora de macros para crear bucles

Nosotros preferimos utilizar coacutedigo VBA como el del siguiente ejemplo que utiliza un rectaacutengulo de la barra de herramientas Dibujo

Sub Hazlo( ) ApplicationScreenUpdating = True With HojalShapes(Rectangulol)

Visible = msoTrue = (Not HojalShapes(Rectangulol)Visible) End With

Cambiando las hojas forzamos a que Rectangulol se muestre mientras se ejecuta el coacutedigo

Hoja2Select HojalSelect

End Sub

Para utilizar este coacutedigo antildeada un rectaacutengulo desde la barra de herramientas Dibujo en cualquier hoja del libro Teniendo seleccionado el rectaacutengulo haga clic en el Cuadro de nombres y llame a esta figura Rectangulol

7 Trucos sobre macros 247

Introduzca el texto que desea mostrar mientras se estaacute ejecutando el coacutedigo cambie el formato la posicioacuten y el tamantildeo del rectaacutengulo si asiacute lo desea Escriba la macro anterior en un moacutedulo estaacutendar del libro Si es necesario cambie el texto Hojal por el CodeName de la hoja correspondiente en la que haya dibujado el rectaacutengulo (vimos coacutemo usar CodeName en un truco anterior) Luego vaya a HerramientasgtMacrogtMacros y ejecute la macro que acabamos de crear Esto haraacute que el rectaacutengulo se oculte

Al comienzo de este coacutedigo que es un coacutedigo lento coloque lo siguiente

Run Hazlo ApplicationScreenUpdating = False

El uso de la sentencia A p p l i c a t i o n S c r e e n U p d a t i n g = F a l s e hace que la pantalla no parpadee y que el coacutedigo sea maacutes raacutepido Para terminar al final del coacutedigo incluya la sentencia Run Haz lo Luego ejecute la macro lenta de forshyma habitual

H Hacer que una celda quede marcada o desmarcada al seleccionarla A veces resulta difiacutecil elegir opciones utilizando las casillas de verificacioacuten Por suerte podemos simplificar este proceso utilizando un poco de coacutedigo muy sencillo

Podemos utilizar los libros de Excel para recolectar datos para encuestas Norshymalmente hacemos esto ofreciendo los usuarios una serie de respuestas entre las que elegir y colocando casillas de verificacioacuten junto a ellas Entonces los usuarios activaraacuten las casillas que consideren oportunas El problema de usar este meacutetodo es que probablemente el libro acabaraacute teniendo cientos de casillas de verificacioacuten

En vez de ello podemos utilizar un coacutedigo VBA m u y sencillo para marcar cualquier celda dentro de un rango especificado en el momento en el que sea seleccionada En caso de que la celda vuelva a ser seleccionada el coacutedigo eliminashyraacute la marca El truco para este coacutedigo seraacute utilizar la letra a en dichas celdas utilizando la fuente Marlett Cuando llegue el momento de recolectar los resultashydos simplemente utilizaremos la funcioacuten CONTARSI para contar las apariciones de la letra a como se muestra a continuacioacuten

= C O N T A R S I ( $ A $ 1 $ A 1 0 0 a )

Los siguientes coacutedigos de ejemplo soacutelo funcionan para el rango Al A100 pero puede modificarlos faacutecilmente para que se ajusten a cualquier rango Para utilishyzar el coacutedigo active la hoja en la que deberiacutea mostrarse las marcas haga clic con el botoacuten derecho del ratoacuten sobre el nombre de la hoja (en la pestantildea de la parte

248 Excel Los mejores trucos

inferior de la ventana) y luego seleccione la opcioacuten Ver coacutedigo Escriba el primer coacutedigo (si desea que las celdas se activen con un solo clic) o el segundo coacutedigo (si desea que se activen con un doble clic)

COacuteDIGO 1 - Marcar casillas con un uacutenico clic

Private Sub Worksheet_SelectionChange(ByVal Target As Range) If TargetCellsCountgtl Then Exit Sub

If Not Intersect(Target Range(AlA100)) Is Nothing Then TargetFontNtildeame = Marlett If Target = vbNullString Then

Target = a Else

Target = vbNullString End If

End If End Sub

COacuteDIGO 2 - Marcar casillas con un doble clic

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range Cancel As Boolean)

If Not Intersect(Target Range(AlA100)) Is Nothing Then Cancel = True Evita que se entre en modo de edicioacuten

TargetFontNtildeame = Marlett If Target = vbNullString Then

Target = a Else

Target = vbNullString End If

End If End Sub

Una vez que haya colocado el coacutedigo deseado en su lugar simplemente cierre la ventana para volver a Excel y luego guarde el libro Si desea averiguar si una celda estaacute o no activada simplemente examine sus contenidos

Contar o sumar celdas que tengan un color de relleno especiacutefico Tarde o temprano necesitaraacute utilizar SUMA o CONTAR para sumar o contar celdas que tengan un cierto color de relleno y que un usuario haya cambiado manualmente ya que normalmente los usuarios ven maacutes sencillo utilizar colores que utilizar nombres de rangos

Para poder hacer esto primeramente abra el libro en el que desee contar o sumar celdas dependiendo del color de relleno Vaya a HerramientasgtMacrogtEditor

7 Trucos sobre macros 249

de Visual Basic (AltOpcioacuten-Fll) y luego seleccione lnsertargtMoacutedulo para insershytar un moacutedulo estaacutendar Dentro de este moacutedulo escriba el siguiente coacutedigo

Function FuncionColor(rColor As Range rRange As Range Optional SUM As Boolean) Dim rCell As Range Dim ICol As Long Dim vResult

ICol = rColorInteriorColorlndex

If SUM = True Then For Each rCell In rRange If rCellInteriorColorlndex = ICol Then

vResult = WorksheetFunctionSUM(rCell) + vResult End If

Next rCell Else

For Each rCell In rRange If rCellInteriorColorlndex = ICol Then

vResult = 1 + vResult End If

Next rCell End If

FuncionColor = vResult End Function

Ahora ya puede utilizar la funcioacuten personalizada FuncionColor en las foacutermushylas de la siguiente forma

=FuncionColor($C$1$A$1$A$12TRUE)

que suma los valores dentro del rango $A$1$A$12 que tengan el mismo color que la celda $C$1 En este caso la funcioacuten para una suma porque hemos utilizado TRUE como uacuteltimo argumento para la funcioacuten Si desea contar las celshydas en vez de sumarlas pero solamente aquellas cuyo color sea como el de la celda $C$1 utilice la siguiente expresioacuten

=FuncionColor($C$1$A$1$A$12FALSE)

o

=FuncionColor($C$1$A$1$A$12)

Si omitimos el uacuteltimo argumento la funcioacuten utiliza automaacuteticamente el vashylor predeterminado de FALSE (falso) Ahora ya puede sumar o contar celdas que tengan un color de relleno especiacutefico faacutecilmente tal y como se muestra en la figura 75

250 Excel Los mejores trucos

1 2 3 4

5 6 7 8

9 10 11 12 13 14 15 16 17 18

A B C D E 20 22 23 25 26 27 29 30 31 32 54 21 78 =FiincionColor($C$1$A$1$A$12VERDADERO)

3 =FuncionColor($C$1$A$1$A$12)

F

Figura 75 Utilizar la funcioacuten personalizada FuncionColor para contar dependiendo del color de relleno

Q Q Q Antildeadir el control Calendario de Microsoft Excel sect B3fM a cualquier libro

^ ^ ^ ^ ^ trade Si desea asegurarse de que los usuarios introducen fechas correctamente el control Calendario de Excel puede facilitar las cosas tanto para usted como para los usuarios de la hoja de caacutelculo Con este truco podraacute antildeadir un control Calendario a cualquier libro de Excel

A menos que una fecha sea introducida correctamente Excel no la reconoceraacute como vaacutelida Esto significa que a veces no puede realizar ciertos caacutelculos con aquellos datos que parezcan fechas pero que en realidad no lo son Tambieacuten sigshynifica que cualquier graacutefico o tabla dinaacutemica que se base en dichas fechas no seraacute vaacutelida Aunque puede ayudarnos la funcioacuten de validacioacuten de Excel (descrita en el capiacutetulo 2) estaacute lejos de ser la maacutes correcta

Con este truco podremos antildeadir un control Calendario a cualquier libro de Excel Para comenzar abra el libro en el que desee utilizar el calendario Resulta una buena idea utilizar el archivo Personalxls para esto en cuyo caso primerashymente deberiacutea mostrarlo seleccionando la opcioacuten VentanagtMostrar Si esta opcioacuten esta desactivada significa que no tiene auacuten un archivo Personalxls Puede crear uno faacutecilmente grabando una macro muy sencilla Seleccione HerramientasgtMacrogt Grabar nueva macro y luego elija a la opcioacuten Libro de macros personal en el cuadro de lista desplegable Guardar macro en Haga clic en Aceptar seleccione cualquier celda y luego detenga la grabacioacuten Con ello Excel crearaacute el archivo Personalxls automaacuteticamente

A continuacioacuten seleccione HerramientasgtIVIacrogtEditor de Visual Basic (Alt Opcioacuten-F l l ) y entonces seleccione lnsertargtUserForm Esto deberiacutea mostrar el

7 Trucos sobre macros 251

cuadro de herramientas de controles (si no es asiacute seleccione VergtCuadro de heshyrramientas) Haga clic con el botoacuten derecho del ratoacuten en el cuadro de controles y seleccione la opcioacuten Controles adicionales Desplaacutecese por la lista hasta que enshycuentre el elemento Control Calendario 100 (el nuacutemero de versioacuten puede depenshyder de el producto Excel que tenga instalado) Active la casilla de verificacioacuten para dicho control y haga clic en Aceptar Apareceraacute entonces el icono del conshytrol calendario Haga clic en eacutel y luego haga clic en el formulario que acabamos de crear

Utilice los pequentildeos recuadros del control y del formulario para cambiar sus tamantildeos de forma que queden como en la figura 76

F yen

i iaiai^a^^gw ^sect Archivo Edicioacuten Ver Insertar Formato Depuracioacuten Ejecutar Herramientas Complementos Ventana Ayuda

sectiexcl JI - d u -J - JJ J lt -i _J J [ 7 ] laquo ^

f l x

n

fc ltiacute

A abl m i iexcld n ^ - i I I El ra --i

F

JJ

Calendar 1 (alendar

Alfabeacutetica I p0r categoriacuteas iexcl

(Acerca de) Calendar 1

bull ampH8000000Famp

21 (Fuente)

bull ampH0UumlUuml00000amp Sistema (media) lun En relieve (Fuente)

bull ampHUuml0A00Uuml00amp n ftHntildennnnnmftiacute JUumlJ

may 2004 [2004^] f

lun

3

10

17

24

31

mar

4

11

18

25

mieacute

5

12

19

26

jue

6

13

20

27

vie

7

14

21

28

saacuteb

1

8

15

J-

29

dom I 2

9

16

23

30

Figura 76 Insertar un control calendario

Aseguacuterese de que el formulario esteacute seleccionado (como aparece en la figura 76) y luego vaya a la opcioacuten VergtVentana Propiedades En ella seleccione la propiedad Caption y cambie el texto que aparece por la palabra Calendario Ahora vaya a VergtCoacutedigo y en el moacutedulo privado antildeada el siguiente coacutedigo

Priacutevate Sub Calendarl_Click( ) ActiveCell = CalendarlValueacute

252 Excel Los mejores trucos

End Sub

Priacutevate Sub UserForm_Activate( ) Me Calendan Valueacute = Date

End Sub

Seleccione ahora la opcioacuten lnsertargtMoacutedulo y en el moacutedulo privado escriba el siguiente coacutedigo

Sub Mostrar( ) UserFormlShow

End Sub

Cierre esta ventana para volver a Excel Vaya a HerramientasgtMacrogtMacros y seleccione la macro Mostrar Haga clic en el botoacuten Opciones asigne una tecla de acceso raacutepido y todo estaraacute listo Simplemente pulse esa tecla y apareceraacute el cashylendario con la fecha de hoy Puede hacer clic en cualquier fecha y veraacute coacutemo se inserta en la celda activa

Proteger por contrasentildea y desproteger todas las hojas de caacutelculo raacutepidamente Por desgracia no existe la posibilidad en Excel de proteger y desproteger todas las hojas de caacutelculo de golpe Sin embargo con un simple coacutedigo podemos hacerlo

Excel proporciona un mecanismo de proteccioacuten que puede antildeadirse a las hojas de caacutelculo mediante la opcioacuten HerramientasgtProteccioacutengtProteger hoja Es posible tambieacuten indicar una contrasentildea de forma que otros usuarios no puedan acceder a la hoja a menos que conozcan dicha contrasentildea A veces sin embargo desearaacute proteger con contrasentildea y desproteger todas las hojas de un libro de forma raacutepishyda ya que protegerlas y desprotegerlas una a una resulta m u y tedioso A contishynuacioacuten veamos coacutemo podemos simplificar esta tarea

Abra el libro en el que desea aplicar el coacutedigo Tambieacuten puede seleccionar la opcioacuten VentanagtMostrar para mostrar el archivo Personalxls de forma que dicho coacutedigo esteacute disponible para todos los libros En caso de que esta opcioacuten esta desactivada significa que todaviacutea no tiene un archivo Personalxls Puede crear u n o faacutecilmente g rabando u n a macro m u y sencilla Para ello seleccione HerramientasgtMacrogtGrabar nueva macro y elegir el libro de macros personales como destino Luego haga clic en Aceptar haga clic en cualquier celda y detenga la grabacioacuten A Excel crearaacute el archivo Personalxls automaacuteticamente

A continuacioacuten seleccione HerramientasgtMacrogtEditor de Visual Basic (Alt Opc ioacuten-F l l ) y luego seleccione lnsertargtL)serForm Esto deberiacutea mostrar un for-

7 Trucos sobre macros 253

mulario y el cuadro de herramientas Si no fuese asiacute puede abrirlo a traveacutes del menuacute Ver

En el Cuadro de herramientas seleccione el cuadro de texto (cuyo icono es ab |) Luego haga clic en el formulario para antildeadir ese control en eacutel Coloacutequelo en la esquina superior izquierda del formulario y cambie el tamantildeo seguacuten sus prefeshyrencias

Teniendo seleccionado el cuadro de texto seleccione VergtVentana Propiedades (F4) En la ventana de propiedades desplaacutecese hacia abajo hasta encontrar la propiedad PasswordChar y en el cuadro de texto situado su derecha introduzca un asterisco () Vuelva al cuadro de herramientas seleccione el icono Botoacuten de comando y haga clic en el formulario colocaacutendolo en la esquina superior dereshycha del mismo

Teniendo seleccionado el botoacuten de comando vaya a la ventana de propiedades y en ella desplaacutecese hacia abajo hasta encontrar la propiedad Caption En el cuashydro de texto situado su derecha introduzca el texto Aceptar En caso de estar utilizando Excel 97 tambieacuten debe encontrar la propiedad TakeFocusOnClick y establecer su valor en F a l s e Ahora seleccione el formulario nuevamente y en la ventana de propiedades encuentre la propiedad Caption Cambie su valor por el texto Protegerdesproteger todas las hojas Al final del formulario deberiacutea pareshycerse al que se muestra en la figura 77

tnuumlmmmwMmmmmmmm njid Archivo Edicioacuten Ver Insertar Formato Depuracioacuten Ejecutar Herramientas Complementos Ventana Ayuda

-0 l

r i u r o T o o l (EUROTOOLXLA) V i

L VBAProject (Libro3) i

Microsoft E gt cel Obietos j

H j H o i a l (Hoial) j

a]Hoia (Hoia) J

B]Hoia3(Hoia3) Q ThisWotlbool iexcl

nsmanaraia UserForml UserForm

Alfabeacutetica I por categoriacuteas

j(Name)

IacuteBackColor

IBorderColor BorderStyle

RU^MiHjBH IacuteCycle

iDrawBuffer

lEnabled

iFont

iForeColor

UserForml

bull ampH8000000Famp bull ampJH80000012amp

0 - fmBorderStyler

SUffi Pr oteger despr oti

0 - fmCvcleAllForrr

32000

True

Tahoma

bull ampH80000012amp

[bull[bull

pUfflWjK

~ t bull bull bull bull bull

f

bull Iacute Iacute

uumluuml-niacute bull iHIacuteiiacute]iacuteM

Diii

j Aceptar

iraquo

_2H||

l - f i ^W-

zMsmnna

Figura 77 Formulario insertado en VBE

254 Excel Los mejores trucos

Seleccione la opcioacuten VergtCoacutedigo (F7) e introduzca el siguiente coacutedigo exactashymente igual que como aparece

Priacutevate Sub CommandButtonl_Click( ) Dim wSheet As Worksheet

For Each wSheet In Worksheets If wSheetProtectContents = True Then

wSheetUnprotect Password=TextBoxlText Else

wSheetProtect Password=TextBoxlText End If

Next wSheet Unload me

End Sub

Este coacutedigo se recorre todas las hojas que hay en el libro activo En caso de que haya alguna protegida la desprotege utilizando la contrasentildea introducida en el cuadro de texto Si la hoja ya estaba desprotegida entonces la protege utilizando la contrasentildea Ahora vaya a lnsertargtMoacutedulo introduzca el siguiente coacutedigo

Sub MostrarContrasentildea( ) UserFormlShow

End Sub

Este coacutedigo sirve para mostrar el formulario Ahora cierre esta ventana para volver a la ventana principal de Excel

Vaya a HerramientasgtMacrogtMacros (AltOpcioacuten-F8) Seleccione la macro MostrarContrasentildea y haga clic en el botoacuten Opciones para asignar una tecla de acceso raacutepido Cuando pulse dicha tecla todas las hojas desprotegidas se proteshygeraacuten y las que estuviesen protegidas quedaraacuten desprotegidas

Como esta macro no le pide que confirme la contrasentildea deberaacute estar muy seguro de lo que escriba De lo contrario puede encontrarse con que una contrasentildea mal escrita le bloquee todas las hojas de caacutelculo

Si solamente estaacute protegiendo los contenidos de usted mismo la siguiente macro realiza las mismas tareas pero utilizando una contrasentildea en blanco

Option Explicit

Sub Proteger_desproteger( ) Dim wSheet As Worksheet

For Each wSheet In Worksheets With wSheet

If ProtectContents = True Then

7 Trucos sobre macros 255

Unprotect Password= Else

Protect Password= End If

End With Next wSheet

End Sub

Aunque esto no sea demasiado seguro realmente puede resultar m u y conveshyniente

Recuperar el nombre y la ruta de un libro de Excel Tarde o temprano desearaacute devolver en una celda el nombre de un libro o incluso el nombre del archivo y la ruta del mismo Con este truco le resultaraacute sencillo recuperar dicho nombre y ruta

Las tres funciones definidas por el usuario que explicamos en este apartado colocan el nombre de un libro dentro de una celda o el nombre de archivo y la r u t a del l ibro en u n a celda Los dos p r imeros ejemplos MiNombre y MiNombreCompleto no tienen argumentos El uacuteltimo NombreHoja se utiliza en lugar de anidar la funcioacuten EXTRAER y las otras dos funciones dentro de la funcioacuten CELDA para obtener el nombre de la hoja un proceso que normalmente requeririacutea la siguiente foacutermula espantosa

=EXTRAER(CELDA(nombrearchivo$A$l)ENCONTRAR(] CELDA(nombrearchivo$A$1))+12 5 5)

Como puede ver esto requiere ciertamente escribir bastante para un resultashydo tan simple Es por ello que hemos desarrollado nuestra propia funcioacuten NombreHoja

Para utilizar esta funcioacuten definida por el usuario pulse Alt Opcioacuten-Fl l seshyleccione InsertargtMoacutedulo y copie el siguiente coacutedigo

Function MiNombre( ) As String MiNombre = ThisWorkbookNtildeame

End Function

Function MiNombreCompleto( ) As String MiNombreCompleto = ThisWorkbookFulIName

End Function

Function NombreHoja(rAnyCell) ApplicationVolatile NombreHoja = rAnyCellParentNtildeame

End Function

uuml

256 Excel Los mejores trucos

Guarde estas funciones y cierre la ventana Ahora la funcioacuten apareceraacute en la categoriacutea de funciones definidas por el usuario en el asistente para funciones

Puede utilizar estas funciones tal y como se muestra en la figura 78 No necesitan argumentos Las foacutermulas que hay en la columna A se muestran como demostracioacuten y no tienen ninguacuten efecto en el resultado

Foacutermula

=MiNombreQ

=MiNornb re Completo

=C E LD A( n o m b re a re h ivo)

=NombreHoja(A1)

B

Resultado

Presupuestosxls

CMis docurnentosExcelPresupuestos xIs

C M i s d o c u rn e nt o sE x c e l[ P re s u p u e st o s x I s ] H o j a 1

Hojal

Figura 78 Las funciones y sus resultados

En la celda A4 de la figura 78 tambieacuten hemos colocado la funcioacuten H estaacutendar CELDA que devuelve el nombre de un libro la ruta del archivo

w V y el nombre de la hoja activa En otras palabras esta funcioacuten estaacutendar devuelve informacioacuten acerca del sistema operativo actual informacioacuten sobre formatos ubicacioacuten y contenidos de un libro

Ir maacutes allaacute del liacutemite de tres criterios del formato condicional Podemos utilizar VBA para trucar el formato condicional de forma que utilice maacutes de tres criterios sobre los datos De hecho podemos utilizar el coacutedigo para aplicar virtualmente un nuacutemero ilimitado de criterios

Excel dispone de una caracteriacutestica muy interesante llamada Formato condishycional (que ya vimos en el capiacutetulo 2) Puede encontrarla a traveacutes de la opcioacuten de menuacute FormatogtFormato condicional El formato condicional le permite dar forshymato a las celdas en base a su contenido Por ejemplo puede poner en color rojo el fondo de aquellas celdas cuyos valores seraacuten superiores a 5 pero menores que 10 Aunque esto es muy uacutetil el problema estaacute en que soacutelo podemos utilizar hasshyta tres condiciones lo cual a veces puede no ser suficiente Si desea utilizar maacutes de tres condiciones podemos utilizar coacutedigo VBA de Excel que sea ejecutado automaacuteticamente cada vez que un usuario cambie un rango especiacutefico Para ver coacutemo funciona esto digamos que tiene seis condiciones separadas en el rango de celdas Al A10 en una hoja en particular Rellene algunos datos de la misma forshyma que aparecen en la figura 79 Guarde el libro luego active la hoja de caacutelculo haga clic con el botoacuten derecho del ratoacuten sobre su nombre (en la pestantildea de la parte inferior) seleccione Ver coacutedigo y luego introduzca el siguiente coacutedigo

7 Trucos sobre macros 257

Priacutevate Sub Worksheet_Change(ByVal Target As Range)

Dim icolor As Integer If Not Intersect(Target Range(AlA10)) is Nothing Then Select Case Target Case 1 To 5

icolor = 6 Case 6 To 10

icolor = 12 Case 11 To 15

icolor = 7 Case 16 To 20

icolor = 53 Case 21 To 25

icolor = 15 Case 26 To 30

icolor = 42 Case Else Cualquier cosa

End Select TargetInteriorColorlndex = icolor

End If

End Sub

Ahora cierre esta ventana para volver a la hoja de caacutelculo Los resultados deshyberiacutean parecerse a los que se muestran en la figura 710

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 13

A Nuacutemeros

3

3

13

18 23 28 3 7 12 17 23 28

B

Figura 79 Datos rellenados para el experimento del formato condicional

El color de fondo de cada celda deberiacutea haber cambiado basaacutendose en el nuacutemeshyro pasado a la variable i c o l o r que de hecho pasa este nuacutemero a T a r g e t I n t e r i o r C o l o r l n d e x El nuacutemero pasado estaacute determinado por la liacutenea de coacuteshydigo Case x To x Por ejemplo si introduce el nuacutemero 22 en cualquier celda

258 Excel Los mejores trucos

dentro del rango A1A10 el nuacutemero 15 es asignado a la variable i c o l o r que a su vez pasa ese valor a T a r g e t I n t e r i o r C o l o r l n d e x haciendo que la celda quede en gris T a r g e t siempre hace referencia a la celda que ha cambiado y por lo tanto lanzoacute la ejecucioacuten del coacutedigo

A 1 Nuacutemeros 2 3 3 4 j - 8 5

I 6 13 7

I 8 SEacuteSiPISUumlIil 9 23

10 mmm 11 3 12 7 13 12 14 17 15 23 16 28 17

| 18

B

Figura 710 Como deberiacutean aparecer los datos una vez que se haya introducido el coacutedigo

Q Q S | Ejecutar procedimientos en hojas protegidas ^KIacuteK^I

L a s m a c r o s de Excel son una gran forma de ahorrar tiempo y eliminar K f i f l errores Sin embargo tarde temprano querraacute probar a ejecutar sus macros

favoritas en hojas que han sido protegidas ya sea con o sin contrasentildea lo que provocaraacute un error de ejecucioacuten Podemos evitar este problema con el siguiente truco

Si alguna vez ha intentado ejecutar una macro de Excel en una hoja de caacutelcushylo que ha sido protegida sabe que tan pronto como se encuentra la hoja en cuesshytioacuten la macro probablemente no funciona y mostraraacute un error de ejecucioacuten

Una forma de evitar que esto suceda es utilizar cierto coacutedigo como el que se muestra a continuacioacuten para desproteger y luego volver a proteger la hoja

Sub MiMacro( )

HojalUnprotect Password=Secreta

bullSU COacuteDIGO

HojalProtect Password=Secreta

End Sub

7 Trucos sobre macros 259

Como puede ver el coacutedigo desprotege la Hojal con la contrasentildea Secreta ejecuta el coacutedigo y luego vuelve a protegerla con la misma contrasentildea Esto funshycionaraacute aunque tiene algunas desventajas Una de ellas es que el coacutedigo podriacutea tener alguacuten fallo y detenerse antes de llegar al final donde se encuentra la senshytencia S h e e t l P r o t e c t Pas sword = S e c r e t a Esto hariacutea que por supuesshyto la hoja quedase desprotegida Otro problema es que necesitaraacute un coacutedigo similar para todas las macros y todas las hojas de caacutelculo

Otro camino para evitar este problema es utilizar U s e r l n t e r f aceOnly que es un argumento opcional del meacutetodo P r o t e c t y que puede establecer en True (de forma predeterminada este argumento vale F a l s e ) Al establecer este argushymento a True Excel permitiraacute que todas las macros VBA se ejecuten en aquellas hojas que esteacuten protegidas ya sea con o sin contrasentildea Sin embargo si utiliza el meacutetodo P r o t e c t con argumento U s e r l n t e r f aceOnly establecido en True en una hoja de caacutelculo y luego graba el libro toda la hoja (no solamente la interfaz) quedaraacute completamente protegida cuando vuelva a abrir el libro Para volver a establecer el argumento U s e r l n t e r f aceOnly a True despueacutes de que el libro sea abier to debe volver a u t i l i za r el meacute todo P r o t e c t con el a r g u m e n t o U s e r l n t e r f a c e O n l y a True

Para evitar esta molestia puede utilizar el evento WorkbookOpen el cual es ejecutado tan pronto como se abra el libro Dado que eacuteste es un evento del objeto ThisWorkbook debe colocar el siguiente coacutedigo en un moacutedulo privado de ThisWorkbook Para ello en las versiones de Windows de Excel haga clic con el botoacuten derecho del ratoacuten en el icono de Excel situado en la esquina superior izshyquierda y luego seleccione la opcioacuten Ver coacutedigo En Macintosh abra el objeto Workbook desde la ventana de proyectos del Editor de Visual Basic A continuashycioacuten introduzca el siguiente coacutedigo

Priacutevate Sub Workbook_Open( ) Si tiene diferentes contrasentildeas para cada hoja

Sheets(l)Protect Password=Secreta UserlnterFaceOnly=True Sheets(2)Protect Password=Codorniz UserlnterFaceOnly=True

Repetir tantas veces como sea necesario

End Sub

Este coacutedigo resulta bueno si cada hoja en la que desea que funcionen las macros tiene una contrasentildea diferente o si no desea proteger todas las hojas Puede estashyblecer el argumento U s e r l n t e r f aceOnly a True sin tener que desproteger prishymero Si desea establecer el argumento U s e r l n t e r f aceOnly a True en todas las hojas y eacutestas tienen la misma contrasentildea puede utilizar el siguiente coacutedigo que deberaacute ser colocado en el mismo lugar en el que fue colocado el anterior

260 Excel Los mejores trucos

Priacutevate Sub Workbook_Open( ) Dim wSheet As Worksheet

For Each wSheet In Worksheets wSheetProtect Password=Secreta _

UserlnterFaceOnly=True Next wSheet

End Sub

Ahora cada vez que abra el libro el coacutedigo se ejecutaraacute y estableceraacute la proshypiedad U s e r l n t e r f aceOnly a True permitiendo a las macros operar sin que por ello queden desprotegidas las hojas de cara a los usuarios

^ ^ ^ Q Distribuir macros 11 ^ V f f f ^ l Aunque puede distribuir una macro a lo largo de un libro si solamente desea

^ K ^ ^ H distribuir su funcionalidad la solucioacuten es utilizar los complementos de Excel

Un complemento de Excel no es maacutes que un libro que ha sido guardado como un complemento yendo a la opcioacuten ArchivogtGuardar como y luego seleccionando la opcioacuten Complemento de Microsoft Excel (xla) Una vez que sea guardado y vuelto a abrir el libro quedaraacute oculto y soacutelo podraacute ser visto a traveacutes del explorashydor de proyectos en el Editor de Visual Basic No estaacute oculto de la misma forma que lo estaacute el archivo Personalxls ya que eacuteste siacute se puede ver a traveacutes de la opcioacuten VentanagtMostrar Una vez haya completado el libro que desea utilizar como un complemento debe guardar una copia de eacutel Puede guardarlo en cualshyquier ubicacioacuten que desee pero aseguacuterese de apuntarse doacutende lo colocoacute

Abra cualquier libro y en el menuacute Herramientas seleccione la opcioacuten Compleshymentos y luego haga clic en Examinar Encuentre el complemento en el lugar en el que lo haya grabado seleccioacutenelo y luego haga clic en el botoacuten Aceptar

Aseguacuterese de que el complemento aparece en la lista de complementos disposhynibles y de que la casilla de verificacioacuten esteacute activada Luego haga clic en Aceptar para instalar el complemento Puede guardar la mayoriacutea del coacutedigo en un comshyplemento de Excel sin tener que hacer demasiados cambios De todas formas existen algunas consideraciones que deberaacute tener en cuenta

bull El objeto ThisWorkbook siempre haraacute referencia al complemento no al libro del usuario En vez de ello debe utilizar el objeto Act iveWorkbook

bull No puede hacer referencia a hojas en A c t i v e W o r b o o k ut i l izando CodeNames

bull Siempre debe devolver las barras herramientas etc al lugar en el que el usuario las teniacutea originalmente No hay nada peor que un complemento que cambie todas las configuraciones del usuario sin su consentimiento

7 Trucos sobre macros 261

bull Siempre debe incluir alguacuten tipo de gestioacuten de errores (siacute la mayoriacutea de los complementos causaron errores en algunas ocasiones)

bull Tenga en cuenta que el usuario puede tener muchos sistemas de protecshycioacuten aplicados Nunca utilice coacutedigo para desproteger cualquier parte de libro del usuario Simplemente muestre un mensaje preguntando al usuario si le permite desproteger el libro

bull Haga buen uso de la hoja de que dispone en el complemento Utilizaremos las hojas para almacenar configuraciones como puedan ser barras herrashymientas

bull Si se mantiene pulsada la tecla Mayuacutes no se evitaraacute que se ejecuten los eventos del complemento (a diferencia de coacutemo ocurre con los archivos normales xls)

bull Si desea explorar o trabajar nuevamente el complemento ya sea para inshycorporar actualizaciones o para hacer modificaciones vaya al Editor de Visual Basic estando el complemento instalado y desde la ventana de proshypiedades seleccione la propiedad I sAdd in y establezca su valor a F a l s e Si desea guardar el libro como un complemento esta propiedad volveraacute a estar en True

bull Aplique alguna proteccioacuten a los moacutedulos de su complemento seleccionanshydo la opcioacuten HerramientasgtPropiedades de VBProject y yendo a la pestantildea Proteccioacuten

Una vez que haya creado el complemento necesitaraacute hacer que las macros contenidas en eacutel sean sencillas de ejecutar por el usuario Todo lo esto lo conseshyguiraacute ut i l izando los eventos W o r k b o o k _ A d d i n I n s t a l l y W o r k b o o k _ A d d i n U n l n s t a l l que se encuen t ran en el moacutedu lo pr ivado del objeto ThisWorkbook Simplemente ha de hacer doble clic en ThisWorkbook del arshychivo xla y Excel le llevaraacute directamente al moacutedulo privado en donde se enshycuentra el coacutedigo tal y como se muestra en la figura 711

A continuacioacuten tenemos un ejemplo sencillo del coacutedigo

Option Explicit Dim cControl As CommandBarButton Priacutevate Sub Workbook_AddinInstall( )

On Error Resume Next Soacutelo por si acaso 1 Elimina cualquier elemento de menuacute existente que pudiese quedar ApplicationCommandBars(Worksheet Menuacute Bar)Controls(Super

Coacutedigo)Delete

Antildeade un nuevo elemento de menuacute y establece una variable CommandBarButton a eacutel

Set cControl =ApplicationCommandBars(Worksheet Menuacute Bar) ControlsAdd

262 Excel Los mejores trucos

Trabajamos con la variable With cControl

Caption = Super Coacutedigo

Style = msoButtonCaption

OnAction = MiGranMacro estaacutendar

End With On Error GoTo 0

Macro almacenada en un moacutedulo

End Sub

Private Sub Workbook_AddinUninstall( )

On Error Resume Next En caso de que ya esteacute eliminada ApplicationCommandBars(Worksheet Menuacute Bar)Controls(Super

Coacutedigo)Delete On Error GoTo 0

End Sub

Archivo Edicioacuten Ver Insertar Formato Depuracioacuten Eiecutar Herramientas Complementos Ventana Ayuda

S j H o i a l (Henal) H] Hoia2 (HoiaJ) H] Hoiai (Hoiauuml) B] Hoia4 (Ho)a4)

9 I 1 H S Iacute Formularios

EUuml UserForml

ThisWorkbook Workbook

Alfabeacutetica | por categoriacuteas ]

(Ntildeame) ThisWorkbook

f3EBBBBfei91iiaiacuteTni False AutoUpdateFrequer 0

ChangeHistoryDura 0

ConflictResolution 1 - xlUserResolutk

Date 1904 False |DisplayDrawingObie -4104 -DisplaylnkCornment True lEnableAutoRecover True

iexclEnvelopeVisible False

xlDisplay5l

Figura 711 Explorador de proyectos con el objeto ThisWorkbook seleccionado para un complemento llamado Administrador de nuacutemerosxla

Eacuteste es todo el coacutedigo que necesita para antildeadir un uacutenico elemento de menuacute

(llamado Super Coacutedigo) al final de la barra de menuacutes de la hoja actual tan pronshy

to como el usuar io instale el componente a traveacutes de la opcioacuten de menuacute

HerramientasgtComplementos Cuando se haga clic en ese elemento de menuacute una

7 Trucos sobre macros

macro (que se encuentra dentro del moacutedulo estaacutendar del complemento) se ejecushytaraacute Recuerde que el coacutedigo anterior debe ser colocado en un moacutedulo privado del objeto ThisWorkbook del complemento

Si por ejemplo desea antildeadir el elemento de menuacute antes del elemento Formashyto puede utilizar el siguiente coacutedigo

Option Explicit

Dim cControl As CommandBarButton

Priacutevate Sub Workbook_AddinInstall( )

Dim iContlndex As Integer

On Error Resume Next Just in case Elimina cualquier elemento de menuacute que nos hayamos dejado ApplicationCommandBars(Worksheet Menuacute Bar)Controls(Super

Coacutedigo)Delete Pasa el iacutendice del menuacute Formato a una variable Utilizamos el meacutetodo FindControl para encontrar su nuacutemero de

iacutendice ID number es utilizado en caso de hacer una personalizacioacuten iContlndex = ApplicationCommandBarsFindControl(ID=30006)Index

Antildeade el nuevo elemento de menuacute y establece la variable CommandBarButton a eacutel

Usamos el nuacutemero pasado a nuestra variable entera para posicionarlo

Set cControl = ApplicationCommandBars(Worksheet Menuacute Bar) ControlsAdd(Before=iContIndex)

Trabajamos con la variable With cControl

Caption = Super Code

Style = msoButtonCaption

OnAction = MiGranMacro Macro almacenada en un moacutedulo estaacutendar End With

On Error GoTo 0 End Sub

En este caso no deberiacutea tener que cambiar el coacutedigo de W o r k b o o k _ A d d i n U n i n s t a l l ( )

En estos ejemplos todo el coacutedigo para el elemento de menuacute se encuentra en W o r k b o o k _ A d d i n I n s t a l l y Workbook_Add inUnIns t a l l Esto no resulta un problema cuando el coacutedigo soacutelo antildeade un elemento de menuacute Sin embargo si quiere antildeadir maacutes de un elemento y quizaacute elementos de submenuacute deberiacutea coloshycar el coacutedigo en un procedimiento (o dos) dentro de un moacutedulo estaacutendar Luego tendriacutea que utilizar un coacutedigo parecido al que le mostramos a continuacioacuten

Priacutevate Sub Workbook_AddinInstall( ) Run AnadirMenus

End Sub

Priacutevate Sub Workbook AddinUninstall( )

264 Excel Los mejores trucos

Run EliminarMenu End Sub

En el moacutedulo estaacutendar escriba un coacutedigo parecido al siguiente

Sub AnadirMenus( ) Dim cMenul As CommandBarControl Dim cbMainMenuBar As CommandBar Dim iHelpMenu As Integer Dim cbcCutomMenu As CommandBarControl

1(1)Elimina cualquiera que exista Debemos usarOn Error Resume next por si no existiera

On Error Resume Next

ApplicationCommandBars(Worksheet Menuacute Bar)Controls(ampNuevo

menuacute)Delete

(2)Establecemos la variable CommandBar a la barra de menuacutes de la hoja Set cbMainMenuBar =

ApplicationCommandBars(Worksheet Menuacute Bar)

1(3)Devolvemos el iacutendice del menuacute Ayuda Podemos usar esto para colocar un elemento de _

menuacute delante de eacutel iHelpMenu = _

cbMainMenuBarControls(Help)Index

1(4)Antildeadimos un control a Worksheet Menuacute Bar antes del menuacute Ayuda Establecemos una variable CommandBarControl a eacutel

Set cbcCutomMenu = _ cbMainMenuBarControlsAdd(Type=msoControlPopup _

Before=iHelpMenu)

(5)Damos un tiacutetulo al control cbcCutomMenuCaption = ampNuevo menuacute

1(6)Con el nuevo control antildeadimos un subcontrol y le damos un tiacutetulo para indicar _

queacute macro va a ejecutar (OnAction) With cbcCutomMenuControlsAdd(Type=msoControlButton)

Caption = Menuacute 1

OnAction = MiMacrol End With

1(6a)Antildeadimos otro subcontrol le damos un tiacutetulo y decimos queacute macro ejecutaraacute

With cbcCutomMenuControlsAdd(Type=msoControlButton) Caption = Menuacute 2 OnAction = MiMacro2

End With Repita el paso 6a para cada elemento de menuacute que desee antildeadir

7 Trucos sobre macros 265

Antildeadimos otro menuacute que formaraacute uno nuevo Establecemos la variable CommandBarControl a eacutel Set cbcCutomMenu = cbcCutomMenuControlsAdd(Type=msoControlPopup) Damos un tiacutetulo al control cbcCutomMenuCaption = ampSiguiente menuacute

Antildeadimos un control al submenuacute que acabamos de crear With cbcCutomMenuControlsAdd(Type=msoControlButton)

Caption = ampGraacuteficos

Faceld = 420

OnAction = MiMacro2 End With

On Error GoTo 0 End Sub

Sub EliminarMenu( ) On Error Resume Next

ApplicationCommandBars(Worksheet Menuacute Bar)Controls(ampNuevo menuacute)Delete

On Error GoTo 0 End Sub

Cuando utilicemos la propiedad OnAction es posible que encuentre probleshymas si hay una macro en el libro del usuario que tenga el mismo nombre que la macro que reside en el complemento Para asegurarnos de que no ocurre esto siempre es una buena idea utilizar un meacutetodo como el siguiente

With cbcCutomMenuControlsAdd(Type=msoControlButton) Caption = ampGraacuteficos Faceld = 420 OnAction = ThisWorkbookNtildeame amp MiMacro2

End With

Al hacer esto nos estamos asegurando de que Excel sepa queacute macro tiene que ejecutar cuando el usuario haga clic en el botoacuten Con estos coacutedigos encontraraacute que es m u y sencillo distribuir y utilizar macros con todo su potencial

CAPIacuteTULO 8

Conectando Excel con el mundo

Trucos 95 a 100

Excel ha tenido desde hace mucho tiempo conexioacuten con otros miembros de la familia Microsoft Office asiacute como con bases de datos Con el crecimiento de Internet Excel ha incorporado funciones de exportacioacuten a HTML haciendo que sea faacutecil publicar informacioacuten creada en esta aplicacioacuten Sin embargo durante los uacuteltimos antildeos Microsoft ha desarrollado algunas funciones que le permiten utilizar Excel como una interfaz para ver informacioacuten publicada en cualquier lugar asiacute como hacer que su informacioacuten pueda ser llevada fuera de Excel y ser vista en cualquier tipo de formulario que desee proporcionando solamente aqueshyllos datos que considere oportunos Al mismo tiempo numerosos programado-res han creado meacutetodos para obtener informacioacuten en Excel y para publicarla fuera de eacuteste permitiendo utilizar hojas de caacutelculo sin necesidad de tener Excel

Cargar un documento XML en Excel Si una persona le enviacutea un archivo XML que contiene datos que se pueden ajustar a tablas no es necesario que tenga que leer todo el texto y las marcas que contiene Puede cargar ese documento directamente en Excel y especificar coacutemo desea presentarlos asiacute como trabajar con ellos utilizando mapas

Extensible Markup Language (XML) se ha convertido en un formato estaacutendar de interconexioacuten durante los uacuteltimos antildeos y resulta algo habitual que las persoshynas y las empresas se enviacuteen entre siacute archivos en este formato Las estructuras sencillas del nuacutecleo de un documento XML hacen que compartir informacioacuten independientemente del software que utilicen las diferentes partes sea m u y sen-

uuml

268 Excel Los mejores trucos

cilio Sin embargo hasta hace poco resultaba difiacutecil superar el t ramo que habiacutea entre los documentos XML y la interfaz a pesar de que existiacutean herramientas geneacutericas ya disponibles Con Excel 2003 todo esto es mucho maacutes sencillo al menos para aquellos datos que puedan ajustarse a una tabla

Este truco utiliza caracteriacutesticas que solamente estaacuten disponibles en la versioacuten Excel 2003 de Windows Las versiones anteriores no soportan

^ todo esto asiacute como las versiones existentes para Macintosh

Comenzaremos con un documento XML de ejemplo como el que se muestra continuacioacuten en el que nos encontraremos un cataacutelogo de libros en ingleacutes

Ejemplo 81 Un sencillo documento XML para hacer un anaacutelisis en Excel

ltxml vers ion=10 encoding=UTF-8gt ltventasgt

ltventagt ltfechagt2 003-10-05ltfechagt ltISBNgt0596 0 053 8 5ltISBNgt ltTitulogt0ffice 2003 XML EssentialsltTitulogt ltPreciogt3495ltPreciogt ltcantidadgt2 0 0ltcantidadgt ltCliente ID=1025gtZorks Booksltclientegt ltventagt

ltventagt ltfechagt2 0 03-10-05ltfechagt ltISBNgt05 96 0 02 92 0ltISBNgt ltTitulogtXML in a Nutshell ltPreciogt3 9 95ltPrecio ltcantidadgt9 0ltcantidadgt ltCliente ID=1025gtZorks ltventagt

ltventagt ltfechagt2 003-10-05ltfechagt ltISBNgt05 96 0 02 3 78ltISBNgt ltTitulogtSAX2ltTitulo ltPreciogt2 9 95ltPrecio ltcantidadgt3 0 0ltcantidadgt ltCliente ID=1025gtZorks Booksltclientegt ltventagt

ltventagt ltfechagt2 0 03-10-05ltfechagt ltISBNgt0596 0 053 85ltISBNgt ltTituloOffice 2003 XML EssentialsltTitulo

2nd EditionltTitulo

Booksltclientegt

8 Conectando Excel con el mundo 269

ltPreciogt3495ltPreciogt ltcantidadgt10ltcantidadgt ltCliente ID=1029gtBooks of Gloryltclientegt ltventagt

ltventagt ltfechagt2003-10-05ltfechagt ltISBNgt0 596 0 02 92 0ltISBNgt ltTitulogtXML in a Nutshell 2nd EditionltTitulogt ltPreciogt3 9 95ltPrecio ltcantidadgt2 5ltcantidadgt ltCliente ID=1029gtBooks of Gloryltclientegt ltventagt

ltventagt ltfechagt2 0 03-10-07ltfechagt ltISBNgt0 5 96 0 02 3 7 8ltISBNgt ltTitulogtSAX2lt Titulo ltPreciogt2 9 95ltPrecio ltcantidadgt5ltcantidadgt ltCliente ID=M1029gtBooks of Gloryltclientegt ltventagt

ltventagt ltfechagt2 0 03-10-18ltfechagt ltISBNgt0596 0 023 78ltISBNgt ltTituloSAX2ltTitulo ltPreciogt2 9 95ltPrecio ltcantidadgt15ltcantidadgt ltCliente ID=2561gtTitulo Waveltclientegt ltventagt

ltventagt ltfechagt2 0 03-10-21ltfechagt ltISBNgt0596 002 92 0ltISBNgt ltTituloXML in a Nutshell ltPrecio39 95ltPreciogt ltcantidadgt15ltcantidadgt ltCliente ID=9021gtBooks ltventagt

ltventasgt

Puede abrir este archivo directamente desde Excel 2003 seleccionando la opshycioacuten ArchivogtAbrir Ello abriraacute el cuadro de diaacutelogo que aparece en la figura 81

Si selecciona la opcioacuten Como una lista XML Excel le advertiraacute de que va a crear su propio esquema para este documento tal y como se muestra en la figura 82 Despueacutes de hacer clic en Aceptar se le presentaraacute el mejor consejo sobre coacutemo presentar la informacioacuten del documento en una hoja de caacutelculo como puede verse en la figura 83

2nd EditionltTitulo

for Youltclientegt

270 Excel Los mejores trucos

uumlj Seleccione coacutemo desea abrir este archivo

Como libro de soacutelo lectura

r Utilizar el panel de tareas Origen XML

Ayuda Aceptar J Cancelar

Figura 81 Abrir un archivo XML en Excel 2003

BHglinfflBSWlMBB^SiSampiK

V El origen XML especificado no se refiere esquema en funcioacuten de los datos del oric

P No volver a mostrar este mensaje

a un esquema 5en XML

Aceptar J j

Excel crearaacute un

Ayuda

Figura 82 Aviso de Excel 2003 acerca de la carencia de referencias a un esquema

| fifliffPifflWBWMc^^ ~Eacute2 echivo Edicioacuten Ver Insertar Formato Herramientas

J J d bdquo j _J J _i T ^ U ~J

Arial - 10 ^ f Ntilde ] S m W M Al bull pound date

1 2

3

4

5

6

I 7 8

9

10

11

A | B C

date -rJISBN ^(Tit le - |

5102003 596005385 Office 2003 XML Essentials

5102003 596002920 XML m a Nutshell 2nd Edition

5102003 596002378 SAX2

5102003 596005385 Office 2003 XML Essentials

5102003 596002920 XML m a Nutshell 2nd Edition

7102003 596002378 SAX2

18102003 596002378 SAX2

21102003 596002920 XML in a Nutshell 2nd Edition

12

13

14

15

16

17

18

19

20

21

9 iexclH 4 bull bull H o j a l ( Hoja2 Hoja3

Listo

Datos Ventarle

s - f l ooo

D 3riceUS _^Jqi

3495

39 Q5

2995

3495

3995

2995

2995

3995

l

A z H l k 100deg euro -og deg8 iexcl s iexcl s _ - lt

E F G

antity -rjcustomer jrJlD bull

200 Zorks Books 1025

90 Zorks Books 1025

300 Zorks Books 1025

10 Books ofGlory 1029

25 Books ofGlory 1029

5 Books ofGlory 1029

15 Ti t leWave 2561

15 Books fo rYou 9021

M

gt tiacute ~

- j f -

H

1 NUM

Jnj2ltiacuteiexcl - _ ff x |

I mdash j

bull m

Figura 83 Datos XML presentados como una lista XML en Excel 2003

Observe que Excel espera que el elemento fecha sea una fecha por lo que las muestra utilizando el formato adecuado es decir que 2003-10-05 queda como 10 5 2003

Una vez que tenga cargado del documento en Excel puede tratar los datos de forma m u y similar a como lo hariacutea con cualquier hoja de caacutelculo de Excel (inser-

8 Conectando Excel con el mundo 271

tando foacutermulas creando rangos con nombre graacuteficos basados en los contenidos etc) Para ayudarle Excel proporciona cierta funcionalidad incorporada para analizar los datos Los cuadros de lista desplegables situados en los encabezados de columna le permiten elegir coacutemo ordenar los datos (de forma predeterminada el orden es el que teniacutea originalmente el documento) Tambieacuten puede activar una fila de totalizacioacuten ya sea desde la barra de herramientas Lista o haciendo clic en cualquier parte de la lista y luego seleccionando la opcioacuten DatosgtListagtFila total Una vez que aparezca en dicha fila podraacute elegir queacute tipo de total prefiere mosshytrar del menuacute desplegable que mostramos en la figura 84

CJUacute poundrchivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana

J J d iquest _ j J plusmn 1 iiquest A -J ^ Uuml

Arial T 10 T H^ - m m ^ ^ Wj euro D11 - f =SUBTOTALES(101D2D9)

1

2

3

4

5

6

7

8

9

10

11 j

A B C D 1 E ^ _

U uuml iexcld -Jgt 100 i bdquodeg8 m _- gt lt

F G

date VJ ISBNtilde T f f iacute t iacute e j rJPriceUS j r jquai i t i ly ^ c u s t o m e r _ ^ J I D ^

5102003 596005385 Office 2003 XML Essentials 3495

5102003 596002920 XML in a Nutshell 2nd Edition 3995

5102003 596002378 SAX2 2995

5102003 596005385 Office 2003 XML Essentials 3495

5102003 596002920 XML in a Nutshell 2nd Edition 3995

7102003 596002378 SAX2 2995

18102003 596002378 SAX2 2995

21102003 596002920 XML in a Nutshell 2nd Edition 3995

+ Total

M iexcl13

14 15

16

^ 18 19

3495 IT Ninguno

Cuenta Contar nuacutemeros Max Miacuten Suma Desvest Var

20 21

1 2 |H 4 bull w H q j a l H o j a 2 Hoja3 |lt Listo

200 Zorks Books 1025

90 Zorks Books 1025

300 Zorks Books 1025

10 Books ofGlory 1029

25 Books ofGlory 1029

5 Books of Glory 1029

15 TitleVVave 2561

15 Books for You 9021

660

I

J P t x t l

5 bull bull I iquestraquo T -iquest

~~~H 1-7

_ j iexcl

i bull i r i NUM iquest

Figura 84 Eleccioacuten de los totales para una lista XML en Excel 2003

Tambieacuten puede actualizar los datos recuperando la informacioacuten a partir de un documento XML que tenga la misma estructura Si dispone de otro docushymento que tenga esa misma estructura puede hacer clic con el botoacuten derecho sobre la lista seleccionar la opcioacuten XMLgtlmportar del menuacute desplegable y elegir un documento diferente Teniendo maacutes datos deberiacutea quedar todo como en la figura 85

Ademaacutes tambieacuten puede exportar datos de nuevo a un archivo XML despueacutes de modificarlos haciendo clic con el botoacuten derecho del ratoacuten sobre la lista y selecshycionando la opcioacuten XMLgtExportar en el menuacute contextual Esto hace de Excel una

272 Excel Los mejores trucos

herramienta de edicioacuten m u y uacutetil para documentos simples en XML y que tengan estructuras tabulares

U J iquest I I J m J i J j y i l K f f f l l ^ ^

bulld Archivo Edicioacuten Ver Insertar Formato Herramientas

J ~J jd _Js _J -Jf _ v iexclK h ~A Jf

Arial 10 - N iacute S S X S

C7 fx SAX2

1 2 3 4 5 6 7

j c T 9 10 11 12 13 14

A B C date j - j lSBN ^JTit le

5102003 596005385 Office 2003 XML Essent i ais 5102003 596002920 XML in a Nutshell 2nd Edition 5102003 596002378 SAX2 5102003 596005385 Office 2003 XML Essentials 5102003 596002920 XML in a Nutshell 2nd Edition 7102003 596002378IacuteSAX2

18102003 596002378 SAX2 21102003 596002920 XML in a Nutshell 2nd Edition

1112003 596002378 SAX2 1152003 596002920 XML in a Nutshell 2nd Edition

Total

15 16 17 18 19 20 21

7 iexclH 4 bull wHojalHoja2 Hoja3 Listo

Datos Ventana

9 amp l Uuml k -4 iaw

- iacute j OOUuml euro -08 deg8 poundF iexclF _ - gt -

D E F ~ 7 G P rice US bullIquantity bullJcustomer y] ID bull

3495 200 Zorks Books 1025 3995 90 Zorks Books 1025 2995 300 Zorks Books 1025 3495 10 Books ofGlory 1029 3995 25 BooksofGlory 1029

I 2995 5 Books ofGlory 1029 2995 15 TitleWave 2561 3995 15 Books for You 9021 2995 65 Amazon 1543 3995 15 Amazon 1783

3495 740

Iltl

gt T bull i

A T ^

H _

gtr NUM

Figura 85 La misma lista XML con los datos actualizados

Para datos sencillos puede confiar normalmente en los consejos de Excel en relacioacuten a los contenidos del archivo y utilizar la vista predeterminada que se recomienda A medida que los datos se compliquen especialmente si contienen fechas o textos que aparezca nuacutemeros (observe que los anteriores ejemplos falshytan los ceros iniciales del campo ISBN) puede que tenga que utilizar esquemas XML para especificar coacutemo deberaacute leer Excel los datos y coacutemo se ajustaraacuten a un mapa dado Para este documento un esquema XML podriacutea ser como el que se muestra en el siguiente ejemplo

Ejemplo 82 Un esquema para los datos de ventas de libros

ltxml version=l0 encoding=UTF-8gt ltxsschema xmlnsxs=httpwwww3org2001XMLSchema elementFormDefault=qualifiedgt

ltxselement name=ventasgt ltxscomplexTypegt

ltxssequencegt

8 Conectando Excel con el mundo 273

ltxselement maxOccurs=unbounded ref=ventagt ltxssequencegt

ltxscomplexTypegt ltxselementgt ltxselement name=ventagt

ltxscomplexTypegt ltxssequencegt

ltxselement ref=fechagt ltxselement ref=ISBNgt ltxselement ref=Tiacutetulogt ltxselement ref=Preciogt ltxselement ref=cantidadgt ltxselement ref=clientegt

ltxssequencegt ltxscomplexTypegt

ltxselementgt ltxselement name=fecha type=xsfechagt ltxselement name=ISBN type=xsstringgt ltxselement name=Titulo type=xsstringgt ltxselement name=Precio type=xsdecimalgt ltxselement name=cantidad type=xsintegergt ltxselement name=clientegt

ltxscomplexType mixed=truegt ltxsattribute name=ID use=required type=xsintegergt

ltxscomplexTypegt ltxselementgt

ltxsschemagt

Observe que el elemento fecha estaacute definido como una fecha y que el eleshymento ISBN estaacute definido como una cadena no como un nuacutemero entero Si empieza abriendo este esquema en vez del documento puede hacer que Excel cara que el documento y preserve los ceros iniciales en el campo ISBN Esta vez crearemos una lista antes de cargar el documento XML comenzando a partir de una hoja de caacutelculo blanco

Para ello debemos abrir el panel de tareas Origen XML Si no estaacute abierto auacuten aacutebralo seleccionando la opcioacuten VergtPanel de tareas o pulsando Control-Fl Lueshygo seleccione la opcioacuten Origen XML del menuacute desplegable que aparece y veraacute algo parecido a lo que se muestra en la figura 86

Para cargar el esquema haga clic en el botoacuten Asignaciones XML Esto abriraacute un cuadro de diaacutelogo como el que se muestra en la figura 87

Haga clic en el botoacuten Agregar para abrir el esquema y luego seleccione uno de la misma forma que se muestra en la figura 88

Si su esquema no restringe que los documentos tengan un uacutenico elemento posible de comienzo Excel le preguntaraacute queacute elemento desea utilizar como raiacutez como puede verse en la figura 89

Como los documentos de este ejemplo comienzan con el elemento ventas elija dicho elemento

274 Excel Los mejores trucos

02 41 J

iexclJJg fmmwmmmmm Archivo

J Arial

Al

1 F 2 3 4 5 6 7 8 9

10 11 12 13 14 15 16 17 18 19 20

r 1

JH 4

Listo

bull bull

A

A

Edicioacuten

-i _J

^

I I

Ver Insertar

J 1 tZ - 10 ^ M

B

H o j a l H o j a 2 H o j a 3

Formato

iquest Iacute T

c

A -

s

Herramientas

_5

^ ^

D

m - j

llaquol

gtatos Ventana

-I

E

Si iquest 000 euro

-gt

Z ) 0 00 00 ^ 0

F

l iacute IW

gt

id iW

bullT

ir

^MJ2ltj| - _ S x |

4Jraquo 100 - laquo r ff |

Origen XML bull x 1

-J uuml Asignaciones XML de este libro

El libro no contiene asignaciones XML ara agregar una asignacioacuten XML al ibro utilice el botoacuten Asignaciones XML

Opciones bull

Asignaciones XML

NUM

Figura 86 Panel de tareas Origen XML

2Sl Asignaciones XML de este (ibro

Nombre

J

I R

_ J

| Espacio de nombre

Agregar i Aceptar i|

1 _M Cancelar

Figura 87 El cuadro de diaacutelogo Asignaciones XML

Despueacutes de hacer clic en Aceptar Excel le avisa de posibles dificultades que pueda tener a la hora de interpretar los esquemas como se muestran el cuadro de diaacutelogo de la figura 810 Un esquema XML es una especificacioacuten enorme que admite numerosas estructuras que no encajan bien con la perspectiva de Excel sobre la informacioacuten por lo que nos encontramos con que tendremos algunas limitaciones

Conectando Excel con el mundo 275

u-mJMmuiiJ Buscar en

-V Mis documentos

recientes

Escritorio

_bdquo

Mis documentos

J MIacute PC

SHSf^^^^^^

08

^chuumlSO lxml

i i H B bull4M dinosaurios xml

^1 S Nombre de archivo

Mis sitios de red I iexcl p o de a r c h j v o

mammmim^^ ^ bull ZJ poundgt bull

zl Todos los oriacutegenes de datos XML 0 J M

4 X -J -J

Nuevo origen

jplusmnJ| Herramientas raquo

| [ Abrir |

Cancelar

Figura 88 Seleccioacuten de un esquema XML

BISE iU El esquema XML seleccionado contiene maacutes de un nodo rafe Microsoft Office Excel soacutelo puede basarse en uno de ellos para crear una asignacioacuten XML

Seleccionar raiacutez

customer date ISBN PriceUS quantity saje

Title

J

J

Figura 89 Seleccioacuten del elemento raiacutez para el esquema

SampSTampVY _xj

Los siguientes elementos de esquema y estructuras no se pueden asignar a una hoja de caacutelculo No se podraacuten ver desde el panel de tareas Origen XML

- any bull - anyAttribute 1 i - Substitution groups

N J gt - Abstract elements - Recursive structures - Mixed content

iquestDesea continuar agregando este esquema al libro

No I Ayuda 1 Figura 810 Aviso sobre el procesamiento del esquema

Excel mostraraacute que el esquema ha sido antildeadido a la hoja de caacutelculo en el cuashydro de diaacutelogo Asignaciones XML que mostramos en la figura 811

276 Excel Los mejores trucos

BB ] Asignaciones XML de este libro

| Espacio de nombre

sales_Map sales ltNo hay espacio de nombre gt

Larnbiar nombre i Agregar Eliminar Aceptar Cancelar

Figura 811 Un esquema cargado como una asignacioacuten XML

Si hace clic en Aceptar volveraacute a la pantalla principal de Excel y el panel de tareas Origen XML mostraraacute un diagrama de la estructura del esquema descrito tal y como se puede ver a la derecha de la figura 812 Ahora que ya tiene la estructura puede distribuir la lista y la manera maacutes sencilla de hacerlo (espeshycialmente con documentos pequentildeos como eacuteste) es arrastrar el icono ventas a la celda A l lo que produciraacute los mismos resultados que vemos en la siguiente figura

bullMicrosoft Ei^Si^^l

Archivo Edicioacuten Ver Insertar Formato Her r amientas Datos Ventana r _ amp X

J _bull A Arial

Al f date

1 A

date yenpound _

mdash I B JISBN mdash1 r ^JTHle

I D | E | F | ^JPricellS Jquantity _-JID Vi

bull U -i 100 ~

_bullbull_ Origen XML

Asignaciones XML de este libro

sales_Map

9 i 10 11 12 13

14 i 15 16 l7 Iacute8

20

77 H 4 bull

Listo

Para asignar elementos de repeticioacuten arrastre los elementos desde el aacuterbol a la hoja de caacutelculo en la que desea que aparezcan los encabezados de datos

Para importar los datos utilice el botoacuten Importar datos XML de la barra de herramientas Lista

bullI H o j a l Hoia2 Hoja3 llt bull i r

Figura 812 Una lista XML creada a partir de la informacioacuten de esquema situada en el panel de tareas Origen XML

8 Conectando Excel con el mundo 277

Tambieacuten puede arrastrar los elementos individualmente si desea v- cambiar el orden o desea colocar las diferentes piezas en diferentes

^ - lugares de la hoja de caacutelculo

Ahora que ya tiene un lugar para los datos es momento de representarlos Puede hacer clic en el botoacuten Importar datos XML de la barra Lista o bien hacer clic con el botoacuten derecho del ratoacuten en la lista y luego seleccionar la opcioacuten XMLgtlmportar Si elige el archivo que utilizamos anteriormente (ej 81) obtenshydraacute los resultados que se muestran en la figura 813 Observe que se han antildeadido los ceros de la parte izquierda del ISBN que ahora ya son texto como deberiacutea ser

| jiexcl fwwWi|Jwii i ipi^^

iquest] Archivo Edicioacuten Ver Insertar Formato Herramientas Datos

J -bull Aacute J _J j J t u -J Aria ^ 10 - |~Ntilde~| jT S W W m r

Al ^ f date

1

iexcll~2~ I 3 I 4

5

I 6

I 7

I 8

9

I 10 I 11

12

A | B | C |

Ventana

m 000 euro

F^Ttrade^

=inj_xj| T _ j i x

i l u 100 - ltbull -

uo o =F =F _ T laquoi

T T F date J J J I S B N zJTitle j r jP r iceUS j r j quaiitiacutety _^J1D ^

51Uuml2G03 IacuteJ596005385 Office 2003 XML Essentials 3495 200 1025

I 5102003 0596002920 XML in a Nutshell 2nd Edition

5102003 r0596002378 SAX2

5102003 t i596005385 Office 2003 XML Es sentiacute ais

5102003T1596002920 XML in a Nutshell 2nd Edition

7102003 0596002378 SAX2

18102003T)596002378 SAX2

2110200313596002920 XML in a Nutshell 2nd Edition

k

13

14

15

16

1 17 I 18

19

20

21

IH 4 bull M H o j a l Hoja2 Hoja3 lt

Listo

3995

2995

3495

3995

2995

2995

3995

90 1025

300 1025

10 1029

25 1029

5 1029

15 2561

15 9021

mdash Orinen XML bull X

Asignaciones XML de este libro

sales Map bull |

y raquo

1 bull

1 bull j bull i

- _ BHB

E3 II

Para asignar elementos de repeticioacuten arrastre los elementos desde el aacuterbol a la hoja de caacutelculo en la que desea que aparezcan los encabezados de datos

Para importar los datos utilice el botoacuten Importar datos XML de la barra de herramientas Lista

i gtiexclr Suma=39158J95 NUM

Figura 813 La lista XML representada con datos

La compatibilidad de Excel con asignaciones XML y listas significa que puede crear hojas de caacutelculo que trabajen con datos que provienen de diferentes archishyvos todo ello con mayor flexibilidad que con formatos anteriores como CSV o archivos delimitados por tabulaciones En lugar de tener que estar conectado a una base de datos para modificar los datos de forma interactiva un usuario pueshyde modificar los archivos XML mientras que esteacute volando en un avioacuten y luego proporcionar dicho archivo a su cliente cuando aterrice Quizaacute el aspecto maacutes interesante de las nuevas funciones de XML de Excel es la flexibilidad mientras

278 Excel Los mejores trucos

que los datos esteacuten en una estructura que se podraacute ajustar a una tabla Excel no pondraacute muchas limitaciones a la hora de aceptar diferentes tipos de documentos Con unos cuantos clics de ratoacuten y sin necesidad de programar puede integrar datos XML dentro de las hojas de caacutelculo

m Q | Guardar en SpreadsheetML y extraer datos C 0 ^ E T f ^ l D e s iacute e E x c e X P s e h a incluido una opcioacuten de exportacioacuten XML

K ^ b ^ l SpreadsheetML proporciona una representacioacuten en XML de sus hojas de caacutelculo incluyendo formatos e informacioacuten de foacutermulas

Aunque existen muchas formas de leer hojas de caacutelculo de Excel sin tener Excel (consulte el truco 100 para obtener maacutes informacioacuten) una de las opciones m aacute s sencillas es expor ta r a a rchivos XML que ut i l icen el vocabu la r io SpreadsheetML de Microsoft SpreadsheetML no es completo (siendo maacutes notable que no existen graacuteficos y coacutedigo VBA) pero representa los componentes baacutesicos de una hoja de caacutelculo incluyendo foacutermulas rangos con nombre y formatos

Este truco utiliza caracteriacutesticas que soacutelo estaacuten disponibles en Excel XP y Excel 2003 para Windows Las anteriores versiones no lo admiten incluyendo las vershysiones actuales de Macintosh

La mejor forma de comenzar con SpreadsheetML es guardar una hoja de caacutelshyculo como XML La hoja de caacutelculo que mostramos que la figura 814 incluye datos foacutermulas nombres de rangos y celdas y algunos formatos simples

Si graba esta hoja de caacutelculo utilizando el formato Hoja de caacutelculo XML (xml) al que puede acceder a traveacutes de ArchivogtGuardar como obtendraacute un gran docushymento XML que contiene las marcas que se muestran en el ejemplo 83

Ejemplo 83 Un documento SpreadsheetML

ltxml version=l0gt ltmso-application progid=ExcelSheetgt ltWorkbook xmlns=urnschemas-microsoft-comofficespreadsheet xmlnso=urnschemas-microsoft-comofficeoffice xmlnsx=urnschemas-microsoft-comofficeexcel xmlnsss=urnschemas-microsoft-comofficespreadsheet xmlnshtml=httpwwww3orgTRREC-html4 0gt ltDocumentProperties xmlns=urnschemas-microsoft-comofficeofficegt

ltAuthorgtSimon StLaurentltAuthorgt ltLastAuthorgtADSMltLastAuthorgt ltCreatedgt2 0 03-12-03T15483 8ZltCreatedgt ltLastSavedgt2 0 04-05-2 3T161117ZltLastSavedgt ltCompanygtAnaya multimedialtCompanygt ltVersiongtll5703ltVersiongt

ltDocumentPropertiesgt ltOfficeDocumentSettings xmlns=urnschemas-microsoft-comofficeofficegt

8 Conectando Excel con el mundo 279

IBM crosoft E

^J Archivo

J J A Arial

1

2

3

4

5

6

7

8

9

10

11

UumlU M 3

14

15

16

17

18

19

20

21

JH i

Listo

Total

Kcel - dinosaur iosKml

Edicioacuten Ver Insertar

uumlm l|f Formato

-3 i ~J - 1 V -al

10 - N K

h -

S f =SUMA(E4E11

A B

Ventas de

Nuacutemero de id Bicho

4627 Diplodocus

3912 Brontosaurus

9845 Triceratops

9625 Vulcanodon

5903 Stegosaurus

1824 Monoclonius

9728 Megalosaurus

8649 Barosaurus

bull M H o j a l Hoja2 Hoja3

ene 04

HBHHWHBI^^S^^^^^-- - bull Herramientas Datos Ventana Z

-J 93 amp z - E S 9 ^J - | ooo euro o8 sect

) ~ D Eacute~1 ~

Precio Cantidad Total

22 50euro 127 285750 euro

1750 euro 74 129500 euro

1200 euro 91 109200 euro

1900 euro 108 205200 euro

1850 euro 63 116550 euro

1650 euro 133 219450 euro

2300 euro 128 294400 euro

1700 euro 91 154700 euro

Total |1514750 euro1

jltl

i i iexclsaacute jy tw if _ -

^

100

S

H

T laquo bull $

A - f e

T~

NUM

T - s x

mdash

_ 1

bull i r

Figura 814 Una hoja de caacutelculo de prueba para SpreadsheetML

ltDownloadComponentsgt ltLocationOfComponents HRef=fileGgt

ltOfficeDocumentSettingsgt ltExcelWorkbook xmlns=urnschemas-microsoft-comofficeexcelgt

ltWindowHeightgt615 0ltWindowHeightgt ltWindowWidthgt84 7 5ltWindowWidthgt ltWindowTopXgt12 0ltWindowTopXgt ltWindowTopYgt3 0ltWindowTopYgt ltProtectStructuregtFalseltProtectStructuregt ltProtectWindowsgtFalseltProtectWindowsgt

ltExcelWorkbookgt ltStylesgt

ltStyle ssID=Default ssName=Normalgt ltAlignment ssVertical=Bottomgt ltBordersgt ltFontgt ltInteriorgt ltNumberFormatgt ltProtectiongt ltStylegt ltStyle ssID=s21gt ltNumberFormat ssFormat=mmm-yygt ltStylegt

280 Excel Los mejores trucos

ltStyle ssID=s23gt ltFont xFamily=Swiss ssBold=1gt

ltStylegt ltStyle ssID=s24gt ltNumberFormat ssFormat=000 ampquot euroampquotgt

ltStylegt ltStylesgt ltNamesgt

ltNamedRange ssName=Bichos ssRefersTo==HojalR4C2R11C2gt ltNamedRange ssName=Cantidad ssRefersTo==HojalR4C4R11C4gt ltNamedRange ssNtildeame=Fecha ssRefersTo==HojalR1C2gt ltNamedRange ssName=ID ssRefersTo==HojalR4C1RllClgt ltNamedRange ssName=Precio ssRefersTo==HojalIR4C3RllC3gt ltNamedRange ssName=Total ssRefersTo==HojalR12C5gt

ltNtildeamesgt ltWorksheet ssName=Hojalgt

ltTable ssExpandedColumnCount=5 ssExpandedRowCount=12 xFullColumns=1

xFullRows=1 ssDefaultColumnWidth=60gt ltColumn ssAutoFitWidtn=0 ssWidth=735gt ltColumn ssAutoFitWidth=0 ssWidth=9675gt ltColumn ssAutoFitWidth=0 ssWidth=48 ssSpan=lgt ltColumn ssIndex=5 ssAutoFitWidth=0 ssWidth=5625gt ltColumn ssAutoFitWidth=0 ssWidth=48 ssSpan=250gt ltRowgt ltCell ssStyleID=s23xData ssType=StringgtVentas deltDataxCellgt ltCell ssStyleID=s21gtltData ssType=DateTimegt2 004-01-

01T00 0000 000ltDataxNamedCell ssName=FechagtltCellgt

ltRowgt ltRow ssIndex=3 ssStyleID=s23gt ltCellxData ss Type= String gtNuacutemero de Id ltDataxCellgt ltCellxData ss Type= String gtBicholtDataxCellgt ltCellxData ss Type= String gtPreciolt DatagtltCellgt ltCellxData ss Type=String gtCantidadltDataxCellgt ltCellxData ss Type= String gtTotalltDataxCellgt ltRowgt ltRowgt ltCellxData ss Type=IINumberIgt4627ltDataxNamedCell ss Name=IDgtlt

Cellgt ltCellgtltData ssType=StringgtDiplodocusltDataxNamedCell

ssName=BichosgtltCellgt ltCell ss StyleID=s24xData ssType=Numbergt22 5ltDataxNamedCell

ss Name=Precio xCellgt ltCellxData ss Type= Number gt127ltDataxNamedCell

ss Name=CantidadxCellgt ltCell ssStyleID=s24 ssFormula==RC[-2]RC[-1]xData

ss Type=Number gt2 857 5ltDataxCellgt ltRowgt ltRowgt ltCellxData ss Type=Number gt3912ltDataxNamedCell ss Name=IDx

Cellgt

8 Conectando Excel con el mundo 281

ltCellgtltData ssType=StringgtBrontosaurusltDatagtltNamedCell ssName=BichosgtltCellgt

ltCell ss StyleID=s24xData ss Type=Number gt17 5ltDataxNamedCell ss Name= Precio xCellgt

ltCellxData ss Type=Number gt74ltDataxNamedCell ss Name=Cantidad xCellgt

ltCell ssStyleID=s24 ssFormula==RC[-2]RC[-1]xData ss Type= Number gt 12 95ltDataxCellgt

ltRowgt ltRowgt ltCellxData ss Type=Number gt9845ltDataxNamedCell ss Name= IDgtlt

Cellgt ltCellxData ss Type=String gtTriceratopsltDataxNamedCell

ssName=BichosgtltCellgt ltCell ss StyleID=s24xData ss Type=Number gt12ltDataxNamedCell

ssName=PreciogtltCellgt ltCellxData ss Type= Number gt91ltDataxNamedCell ss Name=Cantidad

xCellgt ltCell ssStyleID=s24 ssFormula==RC[-2] RC[-1] xData

ss Type= Number gt1092ltDataxCellgt ltRowgt ltRowgt ltCellxData ss Type=Number gt9625ltDataxNamedCell ss Name= IDgtlt

Cellgt ltCellxData ss Type= String gtVulcanodonltDataxNamedCell

ssName=BichosgtltCellgt ltCell ss StyleID=s2 4 xData ss Type= Number gt19ltDataxNamedCe 11

ssName=PreciogtltCellgt ltCellxData ss Type=Number gt108ltDataxNamedCell

ss Name=CantidadxCellgt ltCell ssStyleID=s24 ss Formula==RC [-2] RC [-1] xData

ssType= Number gt2 0 52 ltDataxCellgt ltRowgt ltRowgt ltCellxData ss Type=Number gt5903ltDataxNamedCell ss Name= IDgtlt

Cellgt ltCellxData ss Type= String gtStegosaurusltDataxNamedCell

ss Name= BichosxCellgt ltCell ss StyleID-s24xData ss Type= Number gt18 5ltDataxNamedCell

ssName=PreciogtltCellgt ltCellxData ss Type=Number gt63ltDataxNamedCell ss Name=Cantidad

gtltCellgt ltCell ssStyleID=s24 ss Formula==RC [-2] RC [-1] xData

ss Type=Numbergt1165 5ltDataxCellgt ltRowgt ltRowgt ltCellxData ss Type= Number gt1824ltDataxNamedCell ss Name= IDgtlt

Cellgt ltCellxData ss Type= String gtMonocloniusltDataxNamedCell

ssName=BichosgtltCellgt ltCell ss StyleID=s24xData ss Type=Number gt16 5ltDataxNamedCell

ss Name= PrecioxCellgt

282 Excel Los mejores trucos

ltCellxData ss Type=Number gt133ltDataxNamedCell ss Name=CantidadxCellgt

ltCell ssStyleID=s24 ss Formula==RC [-2] RC [-1] xData ss Type=Numbergt2194 5ltDataxCellgt

ltRowgt ltRowgt

ltCellxData ss Type=Number gt9728ltDataxNamedCell ss Name=IDx Cellgt

ltCellxData ss Type=String gtMegalosaurusltDataxNamedCell ss Name= BichosxCellgt

ltCell ss StyleID=s24xData ss Type=Number gt23ltDataxNamedCell ssName=PreciogtltCellgt

ltCellxData ss Type=Number gt128ltDataxNamedCell ss Name=CantidadxCellgt

ltCell ssStyleID=s24 ss Formula==RC [-2] RC [-1] xData ss Type=Numbergt2 944ltDataxCellgt

ltRowgt ltRowgt

ltCellxData ss Type=Number gt8649ltDataxNamedCell ss Name= IDgtlt Cellgt

ltCellxData ss Type= String gtBarosaurusltDataxNamedCell ssName=BichosgtltCellgt

ltCell ss StyleID=s24xData ss Type=Number gt17ltDataxNamedCell ss Name=PrecioxCellgt

ltCellxData ss Type=Number gt91ltDataxNamedCell ss Name=Cantidad gtltCellgt

ltCell ssStyleID=s24 ssFormula==RC[-2] RC[-1] xData ssType=Numbergt154 7ltDataxCellgt

ltRowgt ltRowgt ltCell ssIndex=4 ssStyleID=s23xData ssType=StringgtTotallt

DataxCellgt

ltCell ssStyleID=s24 ss Formula==SUM(R [-8] CR [-1] C) xData ssType=Numbergt151475ltDataxNamedCell

ssName=TotalxCellgt ltRowgt

ltTablegt

ltWorksheetOptions xmlns=urnschemas-microsoft-comofficeexcelgt ltPageSetupgt ltPageMargins xBottom=0984251969 xLeft=078740157499999996 XRight=078 74 015 74 99999996 XTop=0984 251969gt

ltPageSetupgt ltPrintgt ltValidPrinterInfogt ltHorizontalResolutiongt6 0 0ltHorizontalResolutiongt ltVerticalResolutiongt6 00ltVerticalResolutiongt

ltPrintgt ltSelectedgt ltPanesgt ltPanegt ltNumbergt3ltNumbergt ltActiveRowgtllltActiveRowgt

8 Conectando Excel con el mundo 283

ltActiveColgt4ltActiveColgt ltPanegt

ltPanesgt ltProtectObjectsgtFalseltProtectObjectsgt ltProtectScenariosgtFalseltProtectScenariosgt

ltWorksheetOptionsgt ltWorksheetgt ltWorksheet ssName=Hoja2gt

ltTable ssExpandedColumnCount=256 ssExpandedRowCount=1 xFullColumns=1

xFullRows=l ssDefaultColumnWidth=60gt ltColumn ssAutoFitWidth=0 ssWidth=48 ssSpan=255gt

ltTablegt ltWorksheetOptions xmlns=urnschemas-microsoft-comofficeexcelgt ltPageSetupgt ltPageMargins xBottom=0984251969 xLeft=078740157499999996 xRight=078740157499999996 xTop=0984251969gt

ltPageSetupgt ltProtectObjectsgtFalseltProtectObjectsgt ltProtectScenariosgtFalseltProtectScenariosgt

ltWorksheetOptionsgt ltWorksheetgt ltWorksheet ssName=Hoja3gt

ltTable ssExpandedColumnCount=256 ssExpandedRowCount=1 xFullColumns=l

xFullRows=l ssDefaultColumnWidth=60gt ltColumn ssAutoFitWidth=0 ssWidth=48M ssSpan=255gt

ltTablegt ltWorksheetOptions xmlns=urnschemas-microsoft-comofficeexcelgt ltPageSetupgt ltPageMargins xBottom=0984251969 xLeft=078740157499999996 xRight=078740157499999996 xTop=0984251969gt

ltPageSetupgt ltProtectObjectsgtFalseltProtectObjectsgt ltProtectScenariosgtFalseltProtectScenariosgt ltWorksheetOptionsgt

ltWorksheetgt ltWorkbookgt

La primera liacutenea importante de este documento lt m s o - a p p l i c a t i o n p r o g i d = E x c e l S h e e t gt es una destruccioacuten de procesamiento XML que inshyforma a Windows (en realidad un componente ha antildeadido de Office 2003 para Windows) de que este documento XML se trata de hecho de una hoja de caacutelculo de Excel Cuando Windows muestre el archivo observaraacute que tiene el logotipo de Excel y haciendo doble clic sobre eacutel se abriraacute Excel

El elemento raiacutez del documento Workbook aparece inmediatamente desshypueacutes de la instruccioacuten de procesamiento Sus atributos definen los nombres de espacio utilizados para las diferentes partes de SpreadsheetML Las siguientes liacuteneas componen sobre todo metadatos presentacioacuten en ventana e informacioacuten

284 Excel Los mejores trucos

de formatos y realmente no hay nada interesante que examinar hasta que lleshygue a los elementos Ntildeames y Worksheet El elemento Ntildeames identifica los rangos y celdas con nombre que hay en el documento Los dos elementos NamedRange definen el rango con nombre Cantidad (que se extiende desde la fila 4 columna 4 hasta la fila 11 columna 4) y el rango llamado Total que es justamente la celda que se encuentra en la fila 12 y columna 5

ltNamedRange ssName=Cantidad ssRefersTo==HojalR4C4RllC4gt ltNamedRange ssName=Total ss Ref ersTo= =Hoj al R12C5 gt

El meollo de la hoja de caacutelculo estaacute en el elemento Worksheet Comienza definiendo coacutemo de larga es la tabla de datos actual

ltWorksheet ssName=Hojalgt ltTable ssExpandedColumnCount=5 ssExpandedRowCount=12

xFullColumns=1 xFullRows=lgt

Esta hoja llamada Hojal estaacute compuesta por 5 columnas y 12 filas (los atributos xFullColumns y xFullRows se encuentran en otro espacio de nombres que Excel no utilizaraacute para la distribucioacuten) Luego la informacioacuten actual de la tabla se almacena dentro de los elementos Row y Cell

ltRowgt ltCell ssStyleID=s23xData ssType=StringgtVentas deltDatagtlt

Cellgt ltCell ssStyleID=s21xData ssType =DateTimegt2004-01-

01T00 00 00 000ltDataxNamedCell ssName=FechagtltCellgt

ltRowgt ltRow ssIndex=3 ssStyleID=s23gt ltCellxData ssType=StringgtNuacutemero de Id ltDataxCellgt

Esta fila la primera del hoja de caacutelculo contiene los elementos de tipo celda La primera con el formato s23 (en negrita) y con el tipo de dato String (cadena de texto) contiene el texto Ventas de La segunda celda tiene formato s21 (norshymal) y utiliza el tipo de dato DateTime (fechahora) Sus contenidos vienen dashydos en formato ISO 8601 Esta celda tambieacuten forma parte de un rango con nombre en este caso Fecha La mayoriacutea de los demaacutes elementos Row siguen patrones similares pero existen algunos elementos que merece la pena ver con maacutes atenshycioacuten El segundo elemento Row tiene un atributo extra ssIndex

ltRow s s I n d e x = 3 s s S t y l e I D = s 2 3 gt

Excel no representa filas o columnas vaciacuteas con elementos Row o Cell vashyciacuteos Simplemente antildeade un atributo ss Index a la siguiente fila o celda jun to con su contenido para indicar la ubicacioacuten en la que se encuentra Esto requiere que

8 Conectando Excel con el mundo 285

los programas que procesen este tipo de archivos presten atencioacuten a este detalle cuando formen las tablas La otra cosa importante que hay que mirar son las foacutermulas

ltCell ssStyleID=s22 ss Formula= =SUM (R [ -8] CR[-1]C) xData ss Type=Number gt15147 5ltDataxNamedCell

ssName=TotalgtltCellgt

En la figura 815 esta celda tiene el nombre Total un valor de 1514750 euro y la foacutermula =SUM (E4 E l i ) Todas las partes estaacuten aquiacute Pero deberaacute ensamshyblarlas todas a partir del estilo s22 (definido anteriormente en el documento con un formato de tipo moneda) el valor 151475 y una foacutermula que utilizar refeshyrencias relativas que digan la suma de los valores en la misma columna que esta comenzando ocho filas por encima y terminando una fila por encima

Esto parece no ser m u y divertido a la hora de procesarlo pero actualmente no es tan complicado si tiene una herramienta XML Puede utilizar C Java Perl Python VB o su lenguaje de programacioacuten XML favorito para extraer la inforshymacioacuten aunque nosotros utilizaremos XSLT para la demostracioacuten

Existen numerosos procesadores XSLT en el mercado que van desde simples herramientas de liacutenea de comandos a aplicaciones de ventanas para Windows Quizaacute desee probar Architags XRay disponible en http architagcomxray o SAXON de Michael Kay en httpsaxon sourceforgenet Microsoft ofrece numerosas herramientas XSLT incluyendo una herramienta de liacutenea de comandos que puede obtener en httpmsdnmicrosoftcomlibrary defaultaspurl=downloads listxmlgeneral asp

La hoja de estilo del ejemplo 84 puede ejecutarse contra el documento XML del ejemplo 83 lo que produciraacute un documento mucho maacutes simple como el del ejemplo 85

Ejemplo 84 Una hoja de estilo XSLT para extraer los contenidos del ejemplo 83

ltxslstylesheet version=10 xmlnsxsl=httpwwww3org1999XSLTransform xmlns=httpsimonstlcomnsdinosaurs xmlnsss=urnschemas-microsoft-comofficespreadsheet

gt

ltxsloutput method=xml omit-xml-declaration=yes indent=yes encoding=US-ASCIIgt

ltxslteacutemplate match=gt

286 Excel Los mejores trucos

ltxslapply-templates select=ssWorkbookgt ltxsltemplategt

ltxslteacutemplate match=ssWorkbookgt ltdinosauriosgt

ltxslapply-templates select=ssWorksheet[ssName = Hojal]gt ltdinosauriosgt

ltxsltemplategt

ltxslteacutemplate match=ssWorksheetgt ltfechaxxslvalueacute-of selectassTablessRowssCell[ssStyleID =

s21] gtltfechagt ltxslapply-templates select=ssTable gt

ltxsltemplategt

ltxslteacutemplate match=ssTablegt ltxslrapply-templates select=ssRow[position( ) ampgt 2] gt

lt--Observe que como Excel se salta la fila en blanco la tercera fila estaacute en la posicioacuten 2--gt ltxsltemplategt

ltxslteacutemplate match=ssRow[ssCell[4]]gt ltventagt

ltnumIDxxsl rapply-templates se lect=ss Cell [1] gtltnumIDgt ltbichoxxsl apply-templates se lec t=ssCel l [2] gtltbichogt ltprec ioxxs l apply- templates s e l e c t = ss Cel l [3] gtltpreciogt ltcantidadxxslapply-templa tes se lect=ss Cell [4] x c a n t i d a d gt lt t o t a l x x s l rapply-templates se lect=ss r Cell [5] x t o t a l gt

ltventagt ltxslr templategt

ltxslteacutemplate match=ssRowgt lttotalxxslapply-templates select=ssCell [2] gtlttotalgt ltxsltemplategt

ltxslstylesheetgt

El corazoacuten de la hoja de estilo es la plantilla que hace coincidir todas las filas

con cuatro o maacutes elementos hijos de tipo celda Extrae la informacioacuten a partir de

las celdas y la coloca en elementos XML que reflejan los datos produciendo los

resultados del ejemplo 85

Ejemplo 85 Informacioacuten extraiacuteda de SpreadsheetML a un vocabulario XML personalizado

ltdinosaurios xmlns=h t tp s imons t l comns d inosau r s xmlnsss=urnschemas-microsof t -comoff ice spreadsheetgt ltfechagt2004-01-01T0000000 0 0ltfechagt ltventagt ltNumIDgt4 62 7ltNumIDgt ltbichogtDiplodocusltbichogt

8 Conectando Excel con el mundo 287

ltpreciogt225ltpreciogt ltcantidadgt12 7ltcantidadgt lttotalgt2 8 5 75lttotalgt ltventagt ltventagt ltNumIDgt3 912ltNumIDgt ltbichogtBrontosaurusltbichogt ltpreciogt175ltpreciogt ltcantidadgt74ltcantidadgt lttotalgt1295lttotalgt ltventagt ltventagt ltNumIDgt9 84 5ltNumIDgt ltbichogtTriceratopsltbicho ltpreciogt12lt precio ltcantidadgt91ltcantidadgt lttotalgt1092lttotalgt ltventagt ltventagt ltNumIDgt962 5ltNumIDgt ltbichogtVulcanodonltbicho ltpreciogt19ltprecio ltcantidadgt108ltcantidadgt lttotalgt2 052lttotalgt ltventagt ltventagt ltNumIDgt5 9 03ltNumIDgt ltbichogtStegosaurusltbicho ltpreciogt185ltpreciogt ltcantidadgt63ltcantidadgt lttotalgt11655lttotalgt ltventagt ltventagt ltNumIDgt1824ltNumIDgt ltbichogtMonocloniusltbicho ltpreciogt16 5ltprecio ltcantidadgt13 3ltcantidadgt lttotalgt21945lttotalgt ltventagt ltventagt ltNumIDgt972 8ltNumIDgt ltbichogtMegalosaurusltbicho ltpreciogt2 3 ltprecio ltcantidadgt12 8ltcantidadgt lttotalgt2944lttotalgt ltventagt ltventagt ltNumIDgt8 64 9ltNumIDgt ltbichogtBarosaurusltbicho ltpreciogt17ltprecio ltcantidadgt91ltcantidadgt lttotalgt154 7lttotalgt

288 Excel Los mejores trucos

ltventagt lttotalgt151475lttotalgt ltdinosauriosgt

Son los mismos datos pero de una forma totalmente diferente La informashycioacuten de foacutermulas ha sido descartada en este caso pero dado que Excel proporcioshyna los valores al igual que las foacutermulas esta aplicacioacuten en particular no necesita entender dichas foacutermulas

|^Qiexcl2 Crear hojas de caacutelculo utilizando SpreadsheetML ^ K V ^ H Aunque exportar hojas de caacutelculo como XML es uacutetil Excel tambieacuten permite

K aacute f l importar informacioacuten de la misma forma permitieacutendole crear hojas de caacutelculo utilizando SpreadsheetML

Excel soporta SpreadsheetML tanto para la exportacioacuten como para la imporshytacioacuten proporcionando un camino en ambos sentidos completo para la informashycioacuten Puede abrir un documento SpreadsheetML hacer unos cuantos cambios y volver a abrirlo en Excel si asiacute lo desea (de hecho eacutesta es la uacutenica forma de modishyficar los esquemas para las asignaciones XML) De todas formas quizaacute lo maacutes importante es que puede generar documentos SpreadsheetML a partir de cualesshyquiera datos que tenga lo que proporciona un camino relativamente faacutecil y aushytomatizado para transformar informacioacuten secuencial en hojas de caacutelculo de Excel

Como demostracioacuten el coacutedigo del ejemplo 86 t ransformaraacute el documento XML del ejemplo 85 del truco anterior de nuevo en una hoja de caacutelculo de Excel utilizando XSLT La hoja de estilo del ejemplo 86 utiliza la hoja de caacutelculo origishynal como plantilla produciendo un documento XML m u y similar al del SpreadsheetML que guardamos originalmente desde Excel

El ejemplo omite algunos formatos por lo que encontraraacute algunas diferencias visibles

Este truco utiliza algunas caracteriacutesticas que soacutelo estaacuten disponibles en Excel XP y Excel 2003 para Windows Las versiones anteriores no son compatibles con esto ni siquiera las versiones conocidas para Macintosh

Ejemplo 86 XSLT para convertir el vocabulario personalizado XML de nuevo a SpreadsheetML

ltxslstylesheet version=10 xmlnsxsl=httpwwww3org1999XSLTransform xmlnsd=httpsimonstlcomnsdinosaurs

8 Conectando Excel con el mundo 289

xmlnsss=urnschemas-microsoft-comofficespreadsheet xmlns=urnschemas-microsoft-comofficespreadsheet

gt

ltxsloutput method=xml omit-xml-declaration=no indent=yes encoding=US-ASCIIgt

ltxslteacutemplate match=gt ltxslapply-templates select=ddinosaurios gt

ltxsltemplategt

ltxslteacutemplate match=ddinosauriosgt

ltxslrprocessing-instruction name=mso-applicationgtprogid=ExcelSheetltxslprocessing-instructiongt ltWorkbook xmlns=urnschemas-microsoft-comofficespreadsheet xmlnso=urnschemas-microsoft-comofficeoffice xmlnsx=urnschemas-microsoft-comofficeexcel xmlns ss=urn schemas-microsof t-com-of fice spreadsheet xmlnshtml=httpwwww3orgTRREC-html40gt ltDocumentProperties xmlns=urnschemas-microsoft-comofficeofficegt

ltAuthorgtSimon StLaurentltAuthorgt ltLastAuthorgtSimon StLaurentltLastAuthorgt ltCreatedgt2 003-12-03T15483 8ZltCreatedgt ltLastSavedgt2 0 03-12-03T15574 6ZltLastSavedgt ltCompanygtAnaya MultimedialtCompanygt ltVersiongtll5606ltVersiongt

ltDocumentPropertiesgt ltExcelWorkbook xmlns=urnschemas-microsoft-comofficeexcelgt

ltWindowHe ight gt615 0 ltWindowHe ight gt ltWindowWidthgt8475ltWindowWidthgt ltWindowTopXgt12 0ltWindowTopXgt ltWindowTopYgt3 0ltWindowTopYgt ltProtectStructuregtFalseltProtectStructuregt ltProtectWindowsgtFalseltProtectWindowsgt

ltExcelWorkbookgt ltStylesgt

ltStyle ssID=Default ssNtildeame=Normalgt ltAlignment ssVertical=Bottomgt ltBordersgt ltFontgt ltInteriorgt ltNumberFormatgt ltProtectiongt ltStylegt ltStyle ssID=s21gt ltNumberFormat ssFormat=mmm-yygt ltStylegt ltStyle ssID=s22gt ltNumberFormat ssFormat=ampquot$ampquot000gt ltStylegt

ltStylesgt

290 Excel Los mejores trucos

ltWorksheet ssName=Hojalgt ltTable ssExpandedColumnCount=5

ssExpandedRowCount=count(dventa)+4 xFullColumns=n1 xFullRows=lgt ltColumn ssAutoFitWidth=0M ssWidth=735gt ltColumn ssAutoFitWidth=0 ssWidth=9675gt ltColumn ssIndex=5 ssAutoFitWidth=0 ssWidth=5625gt ltRowgt ltCellxData ssType=StringgtVentas de ltDataxCellgt ltCell ssStyleID=s21gtltData ssType=DateTimexxslvalueacute-of

select=d fechaxDataxCellgt ltRowgt ltRow ssIndex=3gt ltCellxData ss Type=String gtNuacutemero IdltDataxCellgt ltCellxData ss Type=String gtBicholtDataxCellgt ltCellxData ss Type=String gtPrecioltDataxCellgt ltCellxData ss Type=String gtCantidadltDataxCellgt ltCellxData ss Type=String gtTotalltDataxCellgt

ltRowgt

ltxslapply-templates select=dventa gt

ltRowgt ltCell ss Index=4xData ss Type=StringgtTotal ltDataxCellgt ltCell ssStyleID=s22 ssFormula==SUM(R[-count(drventa)]CR[-

1] C) xData ssType=NumberxDataxCellgt ltRowgt

ltTablegt

ltWorksheetOptions xmlns=urnschemas-microscft-comofficeexcelgt ltPrintgt ltValidPrinterInfogt ltHorizontalResolutiongt6 0 0ltHorizontalResolutiongt ltVerticalResolutiongt6 0 0ltVerticalResolutiongt

ltPrintgt ltSelectedgt ltPanesgt ltPanegt ltNumbergt3ltNumbergt ltActiveRowgt12ltActiveRowgt ltActiveColgtlltActiveColgt

ltPanegt ltPanesgt

ltProtectObjectsgtFalseltProtectObjectsgt ltProtectScenariosgtFalseltProtectScenariosgt

ltWorksheetOptionsgt ltWorksheetgt ltWorksheet ssName=Hoja2gt

ltWorksheetOptions xmlns=urnschemas-microsoft-comofficeexcelgt ltProtectObjectsgtFalseltProtectObjectsgt ltProtectScenariosgtFalseltProtectScenariosgt

ltWorksheetOptionsgt ltWorksheetgt

8 Conectando Excel con el mundo 291

ltWorksheet ssName=Hoja3gt ltWorksheetOptions xmlns=urnschemas-microsoft-comofficeexcelgt ltProtectObjectsgtFalseltProtectObjectsgt ltProtectScenariosgtFalseltProtectScenariosgt ltWorksheetOptionsgt

ltWorksheetgt ltWorkbookgt ltxsltemplategt

ltxslteacutemplate match=dventagt ltRowgt ltCellxData ssType=Numberxxslvalue-of select=IdNumID gtlt

DataxNamedCell ss Name=IDgtltCellgt ltCellgtltData ssType=Stringxxslvalue-of select=dBicho gtlt

DataxNamedCell ss Name= Bichos xCellgt ltCell ssStyleID=s22gtltData ssType=Numberxxslvalue-of

select=dPrecio gtltDatagtltNamedCell ssName=PreciogtltCellgt

ltCellxData ss Type=Number xxsl value-of select=d Cantidad gtlt DataxNamedCell ss Name=Cantidad gtltCellgt

ltCell ssStyleID=s22 ssFormula==RC[-2]RC[-1]xData ss Type=Number xxsl value-of select=d total gtltDataxCellgt

ltRowgt ltxsltemplategt

ltxslteacutemplate match=dfecha gt ltxslteacutemplate match=dtotal gt

ltxslstylesheetgt

Merece la pena prestar atencioacuten a algunas partes de este ejemplo En primer lugar observe que el SpreadsheetML estaacute incrustado en el XSLT es decir forma parte de la hoja de estilo No hay ninguna parte de SpreadsheetML que no pueda volver a crear utilizando este meacutetodo la instruccioacuten de procesamiento que ya mencionamos anteriormente y que indica a Windows de que se trata de una hoja de caacutelculo de Excel Para ello debe utilizar lo siguiente

ltxslprocessing-instruction name=mso-applicationgtprogid=ExcelSheetltxslprocessing-instructiongt

Dado que XLST no permitiraacute utilizar el espacio de nombres predeterminado (sin prefijo) para hacer referencia al contenido que tiene un espacio de nombres todas las referencias al contenido en el documento de edicioacuten tienen ahora el prefijo d como en dventa dfecha etc

Ademaacutes dado que los rangos con nombre pueden variar dependiendo del nuacuteshymero de elementos a la venta en el original esta hoja de estilo no generaraacute el elemento Ntildeames y sus contenidos Excel volveraacute a crear los rangos con nombre a partir de los elementos NamedCell en cualquier caso De nuevo el corazoacuten de

292 Excel Los mejores trucos

esta hoja de estilo es la parte que genera los elementos Row y Cell como puede verse a continuacioacuten

ltxslteacutemplate match=dventagt ltRowgt ltCellxData ss Type= Number xxsl value-of select=ldnumID gtlt

DataxNamedCell ss Name=IDgtltCellgt

El elemento xshtemplate extraeraacute cada elemento de venta en el original y proshyduciraacute un elemento Row que contenga los elementos Cell que concuerden con sus contenidos Si abre en Excel el SpreadsheetML que produce esta hoja de estilo (muy parecido al del ejemplo 83 aunque quitando los rangos con nombre y algunos formatos) obtendraacute el resultado que se muestra en la figura 815

I S M

u J

crosoft E

Archivo

_ A Arial

1 1 I 2

I 3 4 5 6 7 8 9 10 11 12

uumlil iexcl14 15

16 17 18 19 20 21

Listo

B13 A

veritas d

^^S^^^BS Edicioacuten Ver Insertar

- j _J j ~i t a

- 10 - N

fx

B e

Nuacutemero de Id Bicho 4627 D iexclpiacuteo do cus 3912 Brontosaurus 9845 Triceratops 9625 Vulcanodon 5903 Stegosaurus 1824 Mono clon ius 9728 Megalosaurus 8649 Barosaurus

1

bull H H o j a l Hoja2 Hoja3

w iexcliexcliexclsect Formato

K

ene-

iquest -

sect

zr 114

F

deg trade |

BW^-T^-- bullbull- Herramientas Datos Ventana

J - - reg - i - m m m d - iacute ooo euro -08 i

_ _ _ __

recio Cantidad Total 2250 euro 127 285750 euro 1750 euro 74 129500 euro 1200 euro 91 109200 euro 1900 euro 108 205200 euro 1850 euro 63 116550 euro 1650 euro 133 219450 euro 2300 euro 128 294400 euro 1700 euro 91 154700 euro

Total 1514750 euro

lltl

i iexcl iexcld-iw iw

G

Iacute 100

_ gt

__

- lt -^ r

__

i NUM

- - fi X

_

_l

bull i r

Figura 815 La hoja de caacutelculo de prueba despueacutes de que sus datos hayan ido desde SpreadsheetML a otro vocabulario y de nuevo de vuelta

SpreadsheetML puede que no sea m u y bonito pero existen numerosas razoshynes por las que desearaacute utilizarlo Para empezar grabar como SpreadsheetML le proporciona un mejor acceso a la informacioacuten de asignaciones XML que ya desshycribimos en el t ruco anterior Y a largo plazo lo maacutes impor tante es que SpreadsheetML es portable por lo que puede procesarlo y generarlo en cualquier ordenador que disponga de herramientas para XML

8 Conectando Excel con el mundo 293

Importar datos directamente en Excel Utilizando los servicios Web de Amazon como origen de los datos podemos integrar faacutecilmente informacioacuten en vivo acerca de por ejemplo libros de texto en hojas de caacutelculo de Excel Este ejemplo importaraacute datos referentes a la clasificacioacuten de ventas para un libro en particular y calcularaacute la media de eacutesta

Este truco se basaraacute en la caracteriacutestica de Excel para hacer consultas Web por lo que necesitaraacute Excel 97 o una versioacuten superior La herramienta de consulshytas para Web de Excel transforma tablas sencillas en HTML en hojas de caacutelculo

Para que esto funcione necesitaraacute darse de alta en Amazon y obtener una identificacioacuten de asociado Para ello vaya a la paacutegina http wwwamazoncomassociates Luego tendraacute que ir a la paacutegina http amazoncomwebservices y hacer clic en el viacutenculo Apply for a free developers token Ambos pasos son necesarios para poder utilizar los servicios Web de Amazon

El siguiente coacutedigo utiliza numerosas caracteriacutesticas tanto de los servicios Web de Amazon como de Excel Una vez que vea coacutemo funcionan juntos podraacute crear raacutepidamente sus propias consultas

Este truco comenzaraacute utilizando una consulta estaacutendar de tipo XMLHTTP Lo que queremos es analizar la clasificacioacuten de ventas de la serie de libros de trucos de OReilly por lo que construimos una consulta estaacutendar para recuperar dichos resultados

httpxmlamazoncomoncaxml3t=insert associate tag ampdev-t=insert developer tokenampPowerSearch=publisherOReilly20and20keywords Hackamptype=heavyampmode=booksampf=xml

Esto requiere del uso del sistema de buacutesqueda avanzada de Amazon para esshypecificar una editorial (OReilly) y una palabra clave (Hack) La siguiente tarea es obtener los datos de respuesta de Amazon de una forma en la que Excel pueda trabajar con ellos Dado que las consultas Web de Excel funcionan utilizando HTML sencillo la respuesta que obtenemos deberaacute ser transformada Como ya hicimos en los dos uacuteltimos trucos las hojas de estilo XSL seraacuten el meacutetodo maacutes raacutepido para conseguir esto Coloque el siguiente coacutedigo en un archivo llamado excel_SalesRankxls Este archivo limitaraacute la respuesta de Amazon a aquellos camshypos que sean necesarios convirtiendo todo en HTML

ltxml version=10 gt ltxslstylesheet version=lO xmlnsxsl=httpwwww3org1999XSL Transformgt

uuml

294 Excel Los mejores trucos

ltxsl output method=htmlgt ltxs l t eacutempla te match=gt lthtml xmlnso=urnschemas-microsof t -comoff ice off ice xmlnsx=urnschemas-microsof t -comoff iceexcel xmlns=httpwwww3orgTRREC-html40gt ltbodygt lttable id=basicgt lttrgt

ltth bgcolor=cccccc colspan=3gtSales Dataltthgt lt t rgt lttrgt

ltth bgcolor=99 9 99 9gtASINltthgt ltth bgcolor=9 99 999gtTit leltthgt ltth bgcolor=999999gtSales Rankltthgt

lt t rgt ltxs l fo r -each se lec t=Produc t In fo De ta i l s gt lttrgt

lt t d x x s l value-of se lect=Asin gtlttdgt lt t d x x s l v a l u e - o f select=ProductName gtlttdgt lt t d x x s l v a l u e - o f select=SalesRank gtlttdgt

lt t rgt ltxslfor-eachgt lt t r x t d c o l s p a n = 3 x t d gt lt t r gt lttrgt

lttd bgcolor=ffccOO colspan=2 a l ign=r igh t gt ltbgtAverage Sales Rankltbgt

lttdgt lttd bgcolor=ffccOOgt=ROUND(AVERAGE(C3Cltxslvalue-of

select=count(ProductlnfoDetails) + 2 gt)0)lttdgt lttrgt

lttablegt ltbodygt lthtmlgt ltxsltemplategt ltxslstylesheetgt

Este archivo recibe la respuesta AWS y la convierte en una tabla sencilla HTML La seccioacuten x s l f o r - e a c h hace un bucle que recorre el nodo Details y antildeade una fila la tabla para cada resultado Una vez que transfiera este archivo a un servidor accesible deberiacutea ser capaz de ver los resultados de la transformacioacuten en un explorador de Internet simplemente especificando la URL del archivo XSL en el campo Direccioacuten Simplemente modifique la URL del uacuteltimo paso reemplazanshydo f =xml por f = h t t p e x a m p l e c o m e x c e l _ S a l e s R a n k x s l

httpxmlamazoncomoncaxml3t = insert associate tagampdev-t = insert developer tokenampPowerSearch=publisher0Reilly20and20keywords Hackamptype=heavyampmode=booksampf=httpexamplecomexcel_SalesRankxsl

Deberiacutea poder ver una tabla como la que se muestra en la figura 816 con los datos recuperados de la consulta anterior Observe que la uacuteltima celda de la tabla

8 Conectando Excel con el mundo 295

contiene una funcioacuten de Excel Puede resultar algo extrantildeo en este momento pero tiene un propoacutesito m u y importante una vez que esteacute dentro de Excel

Archivo Edicioacuten Ver

_ Atraacutes

Direccioacuten | httpxml-na

1 A M^Jtiacutegfc | 0 5 9 6 0 0 4 4 7 8

0 5 9 6 0 0 4 6 0 5

0 5 9 6 0 0 4 6 1 3

SsJ uuml s t o

avoritos

amznxsft

Herramientas Ayuda

Buacutesqueda Favoritos | J f Multimedia ^

omoncaxml3t=insert20associate20tag208(dev-t

Sales data

Google Hacks

M a c O S X H a c k s

Linux Server Hacks

- - =insert20developer20tokenj J ^Jj Ir

^aacuteSife

Average Sales Raiik= =ROUND(AVERAGE(C3C5)0)

14

278

7 6 3

mmmm

pound Mi PC

M Viacutenculos

1

raquo

J

J

Figura 816 Tabla en HTML con los datos de ventas

Para adjuntar ambas aplicaciones utilice un archivo de consultas de Excel (IQY) Este archivo contendraacute toda la informacioacuten referente a la consulta inclushyyendo la URL que a p u n t a a los da tos Cree un nuevo archivo l lamado amzn_avg_salesiqy y antildeada el siguiente coacutedigo

WEB 1 httpxmlamazoncomoncaxml3t=insert associate tagampdev-t=insert developer tokenampPowerSearch=publisherOReilly20and20keywords Hackamptype=heavyampmode=booksampf=httpexamplecomexcel_SalesRankxsl

La primera liacutenea le indica a Excel que se trata de una consulta Web El 1 de la segunda liacutenea indica a el nuacutemero de versioacuten de la consulta Web (siempre debe estar en 1) Luego aparece la URL de la consulta AWS que incluye el archivo XSL Guarde el archivo y acueacuterdese de su ubicacioacuten

Ejecutar el truco

Para ejecutarlo haga doble clic en el archivo amzn_avg_salesiqy Eso haraacute que Excel lo abra contacte con la URL y genere una hoja de caacutelculo como la de la figura 817

296 Excel Los mejores trucos

yiexcl^mmmm^^^^^^^m^M^m-- bull 41 J Aria

1 2

3 4

5 6 7 8 9 10 11 12 13 14 15

16

MU 4

Listo

Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana l

- ^ j j J j 1 d u - J O 53 bullbullgtbull E

- 10 - M T 5 m 3 3 ^ j -ff 000 euro -oo dego

H21 - pound

A B C D

Sales data $iacute t^V^

596004478 Google Hacks 14

596004605 M a c 0 S X H a c k s 278

596004613 Linux S e rver Hac k s 763

Average Sales Rank 352

bull W amzn_avg_sales | i j

l IF

LEacute 100

T bull

_

| NUM

^|nL)| 5 x

w v f

laquoiquest ~

__ __

mdash

w

gtr

Figura 817 Hoja de caacutelculo de Excel con los datos de clasificacioacuten de ventas

Ahora ya tiene algunos datos uacutetiles la clasificacioacuten media de ventas de los libros en una aplicacioacuten ideal para manipular y analizar los datos Puede actuashylizar los datos en cualquier momento haciendo clic con el botoacuten derecho del rashytoacuten en cualquier celda de la hoja de caacutelculo y eligiendo la opcioacuten Actualizar datos

El truco del truco

La parte importante de este truco es conocer coacutemo obtener los datos directashymente de AWS en Excel Una vez dentro de Excel los datos estaacuten al alcance de todas las funciones que puede ofrecernos Excel caacutelculos graacuteficos etc A contishynuacioacuten veremos algunos meacutetodos raacutepidos para extender este ejemplo

Hacer que la consulta sea dinaacutemica

En vez de limitar los datos a informacioacuten estaacutetica construida dentro de una consulta de un archivo IQY podemos antildeadir un poco de interactividad Suponshygamos que tenemos una lista de coacutedigos de libros y deseamos conocer la media de la clasificacioacuten de ventas pero no disponemos de la lista en el momento en que construimos el archivo IQY Excel ofrece la posibilidad de preguntar al usuario por cierta informacioacuten antes de realizar la consulta Web

El uacutenico cambio que necesita hacer es colocar la informacioacuten preguntada denshytro de la URL de la consulta Web en el lugar en el que desee que aparezca la

8 Conectando Excel con el mundo 297

entrada del usuario Para ello cambie la URL que se encuentra dentro del archivo amzn_avg_salesiqy a lo siguiente

http xml amazon comoncaxml3t = insert associate tagampdev-t = insert developer tokenampPowerSearch=isbn[ISBNIntroduzca una lista de ISBN separados por el signo de barra vertical (|)]amptype=heavyampmode=booksampf=httpexamplecomexcel_SalesRankxsl

Ahora se le pediraacute que introduzca una lista de ISBN al abrir el archivo como puede verse en la figura 818

3] Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana Z

Ai aacute ~J A- S

f

MM

4j[

JM raquo A T |

i pound 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ~1

H 4 bull H amzn_avg_sales

Introducir

DBBDKEESI^ Introduzca una lista de ISBN separados por el signo de barra vertical (|)

3J f Usar este valor o referencia para futuras actualizaciones

llaquol nr

Figura 818 Cuadro de diaacutelogo para preguntar los ISBN

Si no se acuerda de ninguno puede probar con los siguientes

1565927141|0596003595|0596002246 | 0596002505

Con ello deberiacutea obtener la media de la clasificacioacuten de ventas para los ISBN que haya introducido iexclY ademaacutes seraacute diferente cada vez

Utilizar datos diferentes

Como el ejemplo anterior cambiar los datos con los que estaacute trabajando es simplemente otra manera de cambiar la URL para la consulta AWS Pero si desea

298 Excel Los mejores trucos

trabajar con un conjunto diferente de datos (como el coste de cada elemento en vez de la clasificacioacuten de ventas) necesita modificar un poco la hoja de estilo XSL

Para ver hasta queacute punto la hoja de estilo puede marcar la diferencia cree un nuevo archivo llamado excel_PriceDiffxls y antildeada el siguiente coacutedigo

ltxml version=10 gt ltxslstylesheet version=10 xmlnsxsl=httpwwww3org1999XSL Transforma ltxsloutput method=htmlgt ltxslteacutemplate match=gt lthtml xmlnso=urnschemas-microsoft-comofficeoffice xmlnsx=urnschemas-microsoft-comofficeexcel xmlns=httpwwww3orgTRREC-html40gt ltbodygt lttable id=basicgt lttrgt

ltth bgcolor=cccccc colspan=4gtDatos de ventasltthgt lttrgt lttrgt

ltth bgcolor=9 9999 9gtISBNltthgt ltth bgcolor=M9 99 9 99gtTituloltthgt ltth bgcolor=999999gtPrecio originalltthgt ltth bgcolor=999999gtPrecio de Amazonltthgt

lttrgt ltxslfor-each select=ProductlnfoDetailsgt lttrgt lttdgt

ltxslvalue-of select=Asin gt lttdgt lttdgt

ltxslvalue-of select=ProductName gt lttdgt lttdgt

ltxslvalue-of select=ListPrice gt lttdgt lttdgt

ltxslvalue-of select=OurPrice gt lttdgt lttrgt ltxslfor-eachgt lt t r x t d colspan=M3 gt lt t d x t r gt lttrgt

lttd bgcolor=ffccOO colspan=3 a l ign=r igh t gt ltbgtMedia del precio originalltbgt

lttdgt lttd bgcolor=ffccOOgt=ROUND(AVERAGE(C3Cltxslvalue-of

select=count(ProductlnfoDetails) + 2 gt)2) lttdgt

lttrgt lttrgt

8 Conectando Excel con el mundo 299

lttd bgcolor=ffccOO colspan=3 align=rightgt ltbgtMedia del precio de Amazonltbgt

lttdgt lttd bgcolor=ffccOOgt=ROUND(AVERAGE(D3Dltxslvalue-of

select=count(ProductlnfoDetails) + 2 gt)2) lttdgt

lttrgt lttablegt ltbodygt lthtmlgt ltxsltemplategt ltxslstylesheetgt

Transfiera este archivo XSL a un servidor puacuteblico y anote la URL Luego cree un nuevo archivo de consulta llamado amzn_price_diffiqy y utilice el mismo coacutedigo de ejemplos anteriores pero cambiando la variable f = por la URL de la nueva hoja de estilo Abra el archivo y deberiacutea haber una nueva hoja de caacutelculo con la lista de precios y la lista de precios de Amazon tal y como se muestra en la figura 819

bulllaquobull -aacutei j

crosoft Exce - - | J ^ i 4 i | | | | | g l l i lSIIISIl Archivo Edicioacuten Ver Insertar Formato

_ ei _iquest _J - i JL v

Arial raquo 10 -

iexcl 1

2 3 4 5 6

7 8 9

10 11 12 13 14 15 16 17 18 19 20 21

MU 4

[Listo

H35 - f

A

ISBN Tiacutetulo 596002246 Web Services

4iquest S bull

U K S

Herramientas

- -1 ~Jh T

m m

B

= iquesti

Datos de ventas

Essentials (OReilly XML) 596003595 Writing Excel Marcos with VBA 2nd Edit 596002505 Proqramminq

1565927141 Excel 2000 iexcln

bull w H o j a l

NETWeb Services a Nutshell A Power User s

Datos Ventana

53 ^ s - il i i U - | 000 euro oo ~dego i p W

~ c

Iacute J gt 100

T ^ T

~~~^

T bull

iquesti -

Precio original Preda de Amazon $2995

on $3495 $3995

Quick Reference $2995

Media del precio original Media del precio de Amazon

M NUM

$2097 $2447 $2797 $2097

$3370 $2360

1

mdash

_ bull

bull i n

Figura 819 Hoja de caacutelculo Excel con los datos sobre los precios

300 Excel Los mejores trucos

Resultados con graacuteficos

Una vez que los datos estaacuten en Excel es m u y faacutecil crear graacuteficos para hacerse una idea de queacute significan los datos de un vistazo Veamos coacutemo antildeadir un graacuteshyfico la hoja de caacutelculo

1 Basaacutendonos en el ejemplo uacuteltimo ejecute el archivo amzn_price_diffiqy Deberiacutea ver los datos que incluyen una lista de libros jun to con la lista de precios originales y de precios de Amazon

2 A continuacioacuten seleccione las celdas del tiacutetulo precio original y precio de Amazon

3 Vaya a lnsertargtGraacutefico con lo que apareceraacute el asistente para graacuteficos

4 Haga clic en Finalizar

Ahora deberiacutea haber conseguido una representacioacuten graacutefica m u y uacutetil de los graacuteficos (figura 820)

bullMicrosoft EacuteKCel - Iacute M Iacute Eacute Iacute Eacute I

Archivo Edicioacuten Ver Insertar Formato Herramientas Graacutefico Ventana

Arial

Atea del graacutefico -

- 12 gt - A - j

1 i 2 i 3 j 4 1

~5i 6 i 7 1 8~] 9 1

iacuteol Til

12]

iT] 15

111 i7] 18 1 19 i 20T

21 1

23j

U 4

Listo

bull I I lB i i i l 596002246Ueb Senices Esseiiais (0ReiHy XML) 596003595

596002505

Datos de ventas

bull bull bull bull bull bull bull bull bullam Writing Excel Marcos with VBA 2nd Edition Pro g ra m m i n g N ET Web Se rviexclc e s

1565927141 [Excel 2000 in a Nutshell A Power Users Quick Reference

Media del precio original Media del precio de Amazon

$5000 $4000 $3000 $2000 $1000

$000

D Precio original

aprecio de Amazon

Web Services Writing Excel Programming Excel 2000 in Essentials Marcos with NET Web a Nutshell A

(OReilly XML) VBA2nd Services Power Users Edition Quick

Reference

bull bull l K _ H p j a l Iacutelt1 Aacuterea del graacutefico |

p r e c i o original Precio de Amazon T $2995 $2097) $2995

$3495

$3995

$2995

$2097

$2447 $2797

$2097

$3370 $2360

plusmniexclr

Figura 820 Un graacutefico con los precios

8 Conectando Excel con el mundo 301

Acceder a servicios Web SOAP desde Excel Si sus hojas de caacutelculo necesitan acceder constantemente a datos actualizados necesitan acceder a servicios que estaacuten alojados en otros ordenadores el soporte para servicios Web de Excel le permitiraacute estar conectado

Los servicios Web basados en SOAP han sido una pieza clave de Microsoft en sus planes para la plataforma NET asiacute como kits de herramientas comunes de otros fabricantes SOAP es un protocolo que utiliza XML para trasmitir informashycioacuten entre sistemas En el caso que veremos aquiacute es utilizado para llamar a proshycedimientos y devolver valores La especificacioacuten WSDL (Web Service Definition Language) describe los servicios Web de forma que las aplicaciones puedan coshynectarse entre ellas faacutecilmente La herramienta Web Service References de Microsoft puede coger un archivo WSDL y generar coacutedigo VBA que su aplicacioacuten puede utilizar para acceder a servicios Web basados en SOAP

Este truco utiliza funciones de Excel que soacutelo estaacuten disponibles en sus versiones XP y 2003 para Windows Las versiones anteriores no son compatibles con esto ni siquiera las versiones conocidas para Macintosh

Para poder utilizar este truco es necesario descargar el Office Web Services Toolkit Dado que la ubicacioacuten cambia continuamente Microsoft lo mejor es ir a httpwwwmicrosoftes y luego utilizar la paacutegina de buacutesqueda o la paacutegina de descargas y buscar por Office Web Services Toolkit Existen diferentes versiones para Office XP y 2003 Necesita instalar este programa siguiendo las directrices que vienen con eacutel para luego poder trabajar con este truco

Una vez que lo haya instalado puede comenzar a conectar sus hojas de caacutelcushylo con servicios Web Para acceder a la herramienta Web Service References (asiacute es como se llama dentro de Excel) debe abrir Visual Basic yendo a la opcioacuten HerramientasgtMacrogtEditor de Visual Basic y luego en el menuacute Herramientas encontraraacute la opcioacuten Web Service References Si selecciona esta opcioacuten se abriraacute el cuadro de diaacutelogo que se muestra en la figura 821

Puede utilizar las funciones de buacutesqueda de la parte superior izquierda de este cuadro de diaacutelogo para encontrar servicios a traveacutes del sistema de descubrimienshyto universal de Microsoft a traveacutes del servicio Description and Integration (UDDI) o puede introducir una URL para el archivo WSDL en la parte inferior izquierda Puede encontrar un l istado de servicios puacuteblicos en la direccioacuten h t t p xmethodsnet aunque deberiacutea asegurarse de que los servicios todaviacutea funcionan antes de integrarse con ellos desde las hojas de caacutelculo Tambieacuten son muchos los servicios que requieren de una licencia e incluso del pago de la misma pero para

302 Excel Los mejores trucos

este ejemplo utilizaremos una que estaacute disponible de forma gratuita Dicho sershyvicio nos devuelve la direccioacuten IP de un nombre de dominio que proporcionemos

bullB Web S e r v i c e s T eacute e l ^

iacute Buscar servicios Web

Busque servicios Web utilizando palabras clave o un nombre de empresa

Palabras clave

Nombre de empresa

Haga dic en los servicios o meacutetodos Web para ver las descripciones Seleccione uno para agregarlo al proyecto

Resultados de la buacutesqueda

[Especifique los criterios de buacutesqueda para comenzar

Direccioacuten URL del servicio Web Descripcioacuten

Ayuda

Figura 821 La herramienta Microsoft Office Web Services en accioacuten

Comenzaremos dicieacutendole a Excel cuaacutel servicio deseamos utilizar en este caso httpTvwwcosmenuservicesdnsphp7wsdl Introduzca ese valor en el cuashydro de texto URL situado en la esquina inferior izquierda y luego haga clic en el botoacuten Buscar Apareceraacuten el resultado dns en la parte superior derecha tal y como se muestra en la figura 822 Active la casilla de verificacioacuten situada justo a su izquierda Si hace clic en el botoacuten Agregar haraacute que Excel genere coacutedigo VBA para el servicio tal y como puede verse en la figura 823

A continuacioacuten cierre VBE y rellene un hoja de caacutelculo m u y simple como la que se muestra en la figura 824

Para antildeadir un botoacuten que llame al servicio abra el cuadro de controles hashyciendo clic con el botoacuten derecho del ratoacuten sobre una barra de herramientas y eligiendo la opcioacuten Cuadro de controles Haga clic en el icono Botoacuten de comando y luego haga clic dentro de la hoja de caacutelculo en el lugar en el que desee colocar el botoacuten Haga clic con el botoacuten derecho sobre el botoacuten y elija la opcioacuten Propiedashydes en el m e n uacute contextua l que aparece En la propiedad Ntildeame escriba ObtenerDatos en Caption escriba Obtener direccioacuten IP Cierre este cuadro de diaacutelogo y la hoja de caacutelculo deberiacutea verse como en la figura 825

Conectando Excel con el mundo 303

11 KUuml r IUB Baf |-fj| i wi af f uuml^iff i^n^^ r Buscar servicios Web

r _ ~ bull

1 |

bullbull Direccioacuten URL del servicio Web

Facilite una direccioacuten URL para el archivo WSDL o ASMX para ver el servicio Web

Direccioacuten URL

| http wwwcosme nuser vicesdnsphpwsdl

Buscar

Haga clic en los servicios o meacutetodos Web para ver las descripciones Seleccione uno para agregarlo al proyecto

Resultados de la buacutesqueda 1

- 0EB dns

Descripcioacuten

Descripcioacuten no disponible I

Agregar Cancelar Ayuda I

Figura 822 Indicar al Web Services Toolkit que genere coacutedigo a partir de un servicio Web

tU Archivo Edicioacuten Ver Insertar Formato Depuracioacuten Eiecutar Herramientas Complementos Ventana Ayuda

mssmmsmsM

_ amp x

uuml s Microsoft E bull cel Obietos JM

BJ Henal (Hoial) H] Hoia2 (Hoia2) H]Hoia3(Hoia3) Q ThisWorlbool

Moacutedulos de clase

_ bull ]

|clsws_dns ClassModule

Alfabeacutetica | por categoriacuteas 1

Instancing 1 - Priacutevate

bull- (Declaraciones)

P r i va t e 3c_dri3 As So apCl i en t 3 0

Figura 823 Coacutedigo VBA generado por Web Services Toolkit para acceder al servicio dns

304 Excel Los mejores trucos

l l f M i c r o s o f t f x i i ^

^j Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana

J ^ d _Iacute _ j Jf -1 ^ Jraquo uacute -^ -iacuteaacute T T SI bull

Arial ^ 10 N S ^ W =1 i f j - f j 000 euro

A3 - pound IP

iexcl1 A | B C D E

1 1 I 2 Nombre

3 |IacuteP Iacute

4

5

6

7

8

9

10 11 12

13

I 14 15

16 17

| H 4 bull M H o j a l Hoja2 Hoia3 lt

Listo

iacute pound T

oo o

F

1 iexcld 1 0 0

iexcl= _

G

1 NUM

_ 1 X

T y

T laquok

H T

^ bull m

Figura 824 Una hoja de caacutelculo para antildeadir servicios Web

rqsoft|toacuteIacutetSIEacutettIacuteI

fj Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana

J _iquest A _j _J i _1 t bdquo h - J -i T sectpound --

ComtnandBut bull f = IN C R U STAR (Fot m s i o m m a n d B utt o n 1)

_ figt x

lg 100 - yengt ^

Nombre

IP

B

o Obtener direccioacuten IP c r _ _ _ _ ( y

bullI H o j a l Hoja2 Hoja3 Ilt1

H T

i r

Figura 825 Hoja de caacutelculo con un botoacuten para llamar a los servicios Web

8 Conectando Excel con el mundo 305

Para antildeadir la uacuteltima pieza haga clic con el botoacuten derecho del ratoacuten sobre el botoacuten y elija la opcioacuten Ver coacutedigo En la ventana que aparece introduzca esta subrutina

Priacutevate Sub ObtenerDatos_Click( ) Dim info As New clsws_dns Dim ntildeame As String Dim IP As String

ntildeame = Range(B2)Text

IP = infowsm_dns(ntildeame)

Set IPRange = Range(B3)

IPRangeValue = IP

End Sub

Este coacutedigo es m u y sencillo Hace referencia al objeto que ha creado la herrashymienta para el servicio Web y luego crea variables para el nombre y la direccioacuten IP Obtiene el nombre de la celda B2 llama a servicio Web con el nombre como argumento y luego coloca el valor devuelto en la celda B3 Una vez que haya introducido este coacutedigo y haya cerrado VBA puede dejar el modo de disentildeo aseshyguraacutendose de que el icono con aspecto de cartaboacuten y un laacutepiz (situado en la esquina superior izquierda del cuadro de controles) esteacute desactivado Ahora la hoja de caacutelculo le permitiraacute introducir un nombre de dominio en la celda B2 Haciendo clic en el botoacuten Obtener direccioacuten IP se colocaraacute la direccioacuten IP coshyrrespondiente al nombre de dominio en la celda B3 Las figuras 826 y 827 muesshytran esta hoja de caacutelculo en accioacuten utilizando diferentes nombres de dominio

La resolucioacuten de direcciones IP es uno de los servicios maacutes simples que existen pero muchas veces servicios asiacute de simples pueden resultar m u y uacutetiles en una hoja de caacutelculo (por ejemplo converso desde moneda recuperacioacuten de precios procesamiento de coacutedigos postales etc) Ni siquiera necesita aprender SOAP o WSDL para utilizar estos servicios ya que Web Services Toolkit se encarga de todo esto por usted

Sin embargo es importante resentildear algunas desventajas En primer lugar el ordenador debe estar conectado a Internet para que un servicio Web funcione Probablemente no desearaacute a crear hojas de caacutelculo que dependan fuertemente de servicios Web si sus usuarios van a estar trabajando m u y lejos de aquiacute y normalshymente van a estar desconectados (normalmente es aceptable una hoja de caacutelculo como esta que utiliza un servicio Web para rellenar campos pero que no necesishyta estar conectada constantemente) El otro tema importante con los servicios Web es que en general este campo estaacute en un estado de cambio significativo

306 Excel Los mejores trucos

i raquo Microsoft Excel - Libro bull bullw amp fSMMf ^ l f ^

iquestsect] Archivo

J j A Arial

B3

1 A 1 2 Nombre 3 lIR 4

i 5 I 6

7 8 9 10 11 12

13 I 14

I 15

I 16 i 17

Edicioacuten Ver Insertar Formato Herramientas Datos Ventana

J _j aacute A H -J pound - ^ - SI aacute- z bull iquestl M 100

- 10 bdquo N iT S 1 I I iacute j ^f j 000 euro cl o iexclF _ - bullgt

amp 20820123936

bull B | C D E F G

oreillycom 120820123936 1

1 Obtener direccioacuten IP

Un 4 bull H H o j a l Hoja2 HojaS lt j

Listo NUM

- f l X

T V IacuteJ ^ T |

1

bull i r l

Figura 826 Direccioacuten IP obtenida para oreillycom

H Microsoft EKCCI - Libroiacute iexcl8IWlt -^jj Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana

J - A J _j J J ^ iquest iquest -J raquo - bull - 51 x pound - )A M 100

Arial - 10 - N K S ^ S ^ ^j -f 000 euro oo 5j W _ T -

B3 - pound 1296162223

-inlxi - ntilde x

A ^ S

9 10 11 12 13 14 15 16 17 IR

H 4 bull

Listo

B

Nombre ozqridcom iexclIP FIacuteZ96162223 iexcl

bullI H o j a l Hoja2 Hoja3

Obtener direccioacuten IP

IlaquoI ir

Figura 827 Direccioacuten IP obtenida para ozgridcom

8 Conectando Excel con el mundo 307

Cuando se escribioacute este libro SOAP estaba pasando de la versioacuten 11 a la versioacuten 12 y tambieacuten estaba en desarrollo una nueva versioacuten de WSDL Y lo que es maacutes mucha gente cree que UDDI puede ser reemplazado con otras tecnoloshygiacuteas Por ahora aseguacuterese de comprobar los servicios que utilice y esteacute atento a posibles versiones nuevas del Office Web Services Toolkit

TRUCO

100 Crear hojas de caacutelculo Excel utilizando otros entornos Aunque Excel y otros programas de hojas de caacutelculo proporcionan la iexclnterfaz tradicional para crear y leer hojas de caacutelculo a veces necesitaraacute poder crear archivos xls directamente a partir de otros programas

Independientemente de que esteacute creando archivos Excel a partir de bases de datos en un servidor Apache o si simplemente desea presentarla informacioacuten almacenada en un programa Java a los usuarios de Excel existen numerosos paquetes en el mercado que le permiten crear y acceder a archivos xls sin tener que utilizar Excel Aunque esos paquetes son normalmente maacutes difiacuteciles de utilishyzar que SpreadsheetML normalmente producen archivos que pueden ser leiacutedos por cualquier Excel a partir de la versioacuten 97 (incluyendo las versiones para Macintosh) y a menudo son compatibles con maacutes funciones de Excel Algunos de los paquetes maacutes populares (y gratuitos) para trabajar con datos de Excel son

SpreadsheetWriteExcel

Es un paquete Perl para crear documentos Excel disponible en h t t p searchcpanorgdistSpreadsheet-WriteExcel

SpreadsheetParseExcel

Una herramienta que permite a los programas Perl leer archivos Excel disposhynible en http searchcpanorg-kwitknrSpreadsheet-ParseExcel-02602

Jakarta POI

Un producto de Apache Project que proporciona tanto acceso de lectura como de escritura a las hojas de caacutelculo de Excel a traveacutes de una API de Java disponible en ht tp j akarta apache orgpoiindex html

J Excel Api

Una API de Java para leer y escribir hojas de caacutelculo Excel incluyendo convershytidores Excel-CSV y Excel-XML Lo encontraraacute disponible en h t t p w w w andykhancomjexcelapi

308 Excel Los mejores trucos

Tambieacuten puede automatizar Excel de muchas formas a menudo utilizando el NET Framework de Microsoft Para ver un ejemplo de coacutemo hacer esto usando el lenguaje C v a y a a la paacuteg ina h t t p w w w e g g h e a d c a f e c o m a r t i c l e s 20021012 asp

Como ejemplo de coacutemo funciona este proceso el coacutedigo Java del ejemplo 87 generaraacute una hoja de caacutelculo utilizando la API POI (incluso aunque no sea un programador Java podraacute hacerse una idea) Puede pasar por alto la lectura de la licencia pero seraacute necesario incluirla en el coacutedigo

Ejemplo 87 Coacutedigo Java para generar una hoja de caacutelculo Excel usando POL

This code is der ived from the org apache poi hssf dev HSSF c l a s s henee the long l i c e n s e = = = = = = = = = = = = = = = = = = = = = = = =z = = = = = = m = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = The Apache Software License Versioacuten 11 Copyright (c) 2003 The Apache Software Foundation All rights reserved bull

Redistribution and use in source and binary forms with or without modification are permitted provided that the following conditions are met 1 Redistributions of source code must retain the above copyright notice this list of conditions and the following disclaimer bull

2 Redistributions in binary form must reproduce the above copyright notice this list of conditions and the following disclaimer in the documentation andor other materials provided with the distribution 3 The end-user documentation included with the redistribution if any must include the following acknowledgment This product includes software developed by the Apache Software Foundation (httpwwwapacheorg) Alternately this acknowledgment may appear in the software itself if and wherever such third-party acknowledgments normally appear 4 The ntildeames Apache and Apache Software Foundation and Apache POI must not be used to endorse or promote produets derived from this software without prior written permission For written permission please contact apacheapacheorg 5 Products derived from this software may not be called Apache Apache POI ntildeor may Apache appear in their ntildeame without prior written permission of the Apache Software Foundation THIS SOFTWARE IS PROVIDED ^AS IS AND ANY EXPRESSED OR IMPLIED WARRANTIES INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES

8 Conectando Excel con el mundo 309

OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT INDIRECT INCIDENTAL SPECIAL EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING BUT NOT LIMITED TO PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES LOSS OF USE DATA OR PROFITS OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY WHETHER IN CONTRACT STRICT LIABILITY OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE

This software consists of voluntary contributions made by many individuaacuteis on behalf of the Apache Software Foundation For more information on the Apache Software Foundation please see lthttpwwwapacheorggt

import javaio

import javautilRandom

import orgapachepoipoifsfilesystemPOIFSFileSystem import orgapachepoihssfrecord import orgapachepoihssfmodel import orgapachepoihssfusermodel import orgapachepoihssfuacutetil

public class PoiDemo

public static void main (String[] args) throws Exception short rownum

crea un archivo de destino

FileOutputStream out = new FileOutputStream(zingotxls)

crea un nuevo objeto workbook Observe que el libro y el archivo son dos cosas diferentes casi hasta el final cuando el libro es escrito en el archivo

HSSFWorkbook wb = new HSSFWorkbook( )

crea una nueva hoja HSSFSheet ws = wbcreateSheet( )

crea una referencia a un objeto fila para su uso posterior HSSFRow r = nuil

crea una referencia al objeto celda HSSFCell c = nuil

crea dos estilos - formatos de celda necesita ser definido antes de poder usarse

HSSFCellStyle csl = wbcreateCellStyle( )

310 Excel Los mejores trucos

HSSFCellStyle cs2 = wbcreateCellStyle( ) HSSFDataFormat df = wbcreateDataFormat( )

crea dos objetos fuente para el formato HSSFFont fl = wbcreateFont( ) HSSFFont f2 = wbcreateFont( )

establece la fuente 1 a tamantildeo 10 y negrita f1setFontHeightlnPoints((short) 10) f1setBoldweight(HSSFFontBOLDWEIGHT_BOLD)

establece la fuente 2 a tamantildeo 10 y en color rojo f2setFontHeightlnPoints((short) 10) f2setColor( (short)HSSFFontCOLOR_RED )

para el estilo 1 de celda usar fuente 1 y establecer el formato de datos

cslsetFont(f1) cslsetDataFormat(dfgetFormat(00) )

para el estilo 2 de celda usar fuente 2 establecer borde fino y formato de texto

cs2setBorderBottom(cs2BORDER_THIN) cs2setDataFormat(HSSFDataFormatgetBuiltinFormat(text)) cs2setFont(f2)

establece el nombre de la hoja en Unicode wbsetSheetName(0 Hoja de prueba

HSSFWorkbookENCODING_UTF_16 )

crea una hoja con 10 filas (0-9) for (rownum = (short) 0 rownum lt 10 rownum++)

crea una fila r = wscreateRow(rownum)

rsetRowNum(( short ) rownum) crea seis celdas(0-5) (el + = 2 se entenderaacute luego) for (short cellnum = (short) 0 cellnum lt 6 cellnum += 2)

crea una celda numeacuterica c = rcreateCell(cellnum) rellena con nuacutemeros basaacutendose en la posicioacuten csetCellValue(rownum 10 + cellnum

+ (((double) rownum 10) + ((double) cellnum 100)))

crea una celda de texto c = rcreateCell((short) (cellnum + 1))

cada dos filas (por eso lo de +=2) if ((rownum 2) ==0)

8 Conectando Excel con el mundo 311

ajusta esta celda con el primer estilo que definimos csetCellStyle(csl) establece el valor de la celda a Prueba csetEncoding( HSSFCellENC0DING_UTF_16 ) csetCellValue( Prueba )

else

CsetCellStyle(cs2) establece el valor de la celda a 1 2 3 csetEncoding( HSSFCellENC0DING_UTF_16 ) csetCellValue( 1 2 3 )

usar algunas foacutermulas avanza una fila

rownum++ r = wscreateRow(rownum)

crear foacutermulas

for (short cellnum = (short) 0 cellnum lt 6 cellnum += 2)

produce SUMAS para las columnas apropiadas int column= 65+cellnum char columnLabel=(char)column String formula=SUM(M+columnLabel+1+columnLabel+10) c = rcreateCell(cellnum) csetCellStyle(csl) csetCellFormula(formula)

escribe el libro a la salida y cerramos el archivo

wbwrite(out) outcioacutese ( )

Para ejecutar este coacutedigo primero debe descargar la uacuteltima versioacuten del archishyvo binario POI y colocar el archivo principal jar del POI (poi-20-final-20040126jar en este caso) en la ruta de clases dependiendo de la plataforma en la que lo esteacute ejecutando Una vez que lo ejecute no necesitaraacute argumentos y crearaacute un uacutenico archivo llamado zingotxls Si abre este archivo veraacute una hoja de caacutelculo como la que se muestra en la figura 828 (figura 829 si estaacute usando un Macintosh)

La loacutegica del ejemplo 87 es difiacutecilmente un modelo ejemplar de coacutemo crear una hoja de caacutelculo pero muestra la funcionalidad baacutesica necesaria para crear nuevas hojas celdas y formulas

312 Excel Los mejores trucos

l IJM

42 J

crosoft Excel - zingotKls IacuteSommamm^m

Archivo Edicioacuten Ver Insertar Formato

J d ^ _J J JL

Arial - 10

1 2 3 4 5 6 7 bull

8 9 10 11 12

13 I 14 15 16

17

18 19 20 H 4

Listo

C13 - i

A B 0 Prueba

101 i 202 Prueba 303 1 bdquo j 404 Prueba 505 1 3 606 Prueba 7 0 7 i bull

808 Prueba 909 -

4545 d

bull H Hoja de prueba

- [ N | ^ S iexcl

=SUMA(C1C10)

C | D 202 Prueba

1212 bull J

2222 Prueba 3232 1 2 i 4242 Prueba 5252 1 -6262 Prueba 7272 1 8282 Prueba 9292 1 I

MAl

B i l l H f t H H H H I Herramientas Datos

-3 Iacute W

| ^ ^ ^ | o

E F 4 04 Prueba

1414 1 2 1 2424 Prueba 3434 1 2

4444 Prueba 5454 1 2 6464 Prueba 7474 i J 8484 Prueba 9494 i j

4949

W ^ sect r ^ -jgix]|

Ventana l - - firaquo X

ffi 4 S - i l iacutel iexcld ltiacutegt 1 0 0 V 1

ooo euro l bdquodeg8 iexcls iexcl^ - ^ ^ i ^ y

G H 1 J T

bull 1

NUM

Figura 828 Hoja de caacutelculo creada a partir de un programa Java para Windows de Excel

la versioacuten

o 1

1 4

h

8 9

10

11 1

13 14

15

16

A B 0 Test

101 202 Test 303

404 Test

IacuteJUD

606 Test

707

808 Test

309

4545

Testsheet

C

202

12

32

42

62

82

32

12

32

42

62 7 1

82

32

4747

l0V5

Test

Test

T e i t

Test

Test

E F

404 Test

1414 2424 Test 3434

4444 Test 5454

6464 Test

7474

8484 Test 3494

4949

6

Figura 829 Hoja de caacutelculo creada a partir de un programa Java para la versioacuten Macintosh de Excel

8 Conectando Excel con el mundo 313

Si utiliza esto para construir hojas de caacutelculo para sus propias aplicaciones seguramente reemplazaraacute los bucles con referencias a las estructuras de datos que esteacute presentando con lo que los archivos de destinos eran maacutes loacutegicos y probablemente variaraacuten dependiendo de los datos y desearaacute sacar ventaja de las funciones de las que se muestran en este ejemplo

Otra caracteriacutestica de POI que es importante destacar si va a generar hojas de caacutelculo que van a formar parte de un sitio web dinaacutemico Puede combinar POI con Cocoon un marco de trabajo para Java tambieacuten de Apache que utiliza doshycumentos XML y otras fuentes para generar contenidos accesibles a traveacutes de un explorador de Internet Puede ver un artiacuteculo que proporciona una demostracioacuten y todos los detalles para hacer esto en la direccioacuten h t tp wwwxml eompuba 20030122cocoon-excelhtml

Glosario

Aplicacioacuten

Es otro teacutermino para denominar a un programa Excel es una aplicacioacuten aunshyque algunas personas lo llaman aplicacioacuten de hojas de caacutelculo

Argumentos

Es la informacioacuten que una foacutermula o funcioacuten puede requerir para devolver un valor La mayoriacutea de funciones de Excel requieren de argumentos para poder ser ejecutadas Los argumentos se encierran entre pareacutentesis y estaacuten separados por comas

Asistente

Conjunto de pantallas utilizadas para asistir al usuario a lo largo de una serie de pasos

Barra de comandos

Es uno de los muchos objetos de Excel utilizados para albergar elementos de menuacute La barra de menuacutes de una hoja de caacutelculo es una barra de comandos que contiene los elementos de menuacute Archivo Edicioacuten Ver Insertar etc

Barra de herramientas Formularios

Barra de herramientas utilizada para almacenar los controles que estaacuten inshycluidos dentro de Excel (no los controles ActiveX)

316 Excel Los mejores trucos

Boolean

Es el significado matemaacutetico de expresar sentencias loacutegicas Un valor de este tipo siempre seraacute Verdadero o Falso

Bucle

Ejecucioacuten continua de una o maacutes liacuteneas de coacutedigo VBA hasta que una condicioacuten se cumpla o el bucle termine

Bug

Es un error en el coacutedigo Por desgracia algunos de estos errores pueden ser indetectables por las pruebas maacutes exhaustivas y por tanto son difiacuteciles de evitar

Cadena

Secuencia lineal de caracteres (por ejemplo la palabra Coche es una cadena de caracteres alfanumeacutericos)

Complemento

Es un libro guardado con la extensioacuten XLA Se abre como un libro oculto cuanshydo es instalado a traveacutes de la opcioacuten HerramientasgtComplementos Los compleshymentos ofrecen funcionalidad antildeadida a Excel

Constante

Es un elemento que representa un valor que no cambia

Contiguo

Es un rango de celdas en el que los liacutemites de todas las celdas estaacuten conectados sin espacios entre ellos Por ejemplo Al C20 es un rango contiguo

Controles ActiveX

Objetos totalmente programables que pueden ser utilizados para ayudar a pershysonalizar las aplicaciones En Excel se incluyen algunos tan comunes como el botoacuten de comando el botoacuten de opcioacuten etc

Cuadro de controles

Es una barra de herramientas que contiene controles ActiveX (veacutease Controles ActiveX)

Glosario 317

Cuadro de diaacutelogo Es una ventana que solicita informacioacuten al usuario como por ejemplo el cuashy

dro de diaacutelogo Abrir

Depuracioacuten

Es el proceso de eliminar todos los posibles errores en el coacutedigo

Editor de Visual Basic (VBE)

Tambieacuten conocido como entorno de Visual Basic Es un interfaz dentro de Excel que permite a los usuarios acceden a todos los elementos pertenecientes a VBA

Error de ejecucioacuten

Error que se produce dentro del coacutedigo VBA y que ocurre mientras que eacuteste se ejecuta La mayoriacutea de este tipo de errores vienen acompantildeados por un nuacutemero que sirve para ayudar en la depuracioacuten

Evento

Es una llamada desde Excel a un cierto coacutedigo para indicar que ha ocurrido algo Por ejemplo un clic de ratoacuten o cerrarabrir un libro son eventos reportados por Excel

Explorador de proyectos

Ventana dentro del Editor de Visual Basic en la que se pueden ver todos los objetos que pertenecen a un libro especiacutefico

Foacutermula

Una secuencia de valores referencias a celdas nombres funciones u operadoshyres situados dentro de una celda y que producen un nuevo valor Todas las foacutermushylas de Excel comienzan con el signo =

Formulario de usuario

Objeto de Excel que puede ser utilizado para albergar controles ActiveX Los formularios de usuario se pueden insertar y modificar solamente dentro de VBE

Funcioacuten

Un tipo de procedimiento (veacutease Procedimiento) que devuelve un valor Excel dispone de funciones incorporadas como por ejemplo la funcioacuten SUMA De todas

318 Excel Los mejores trucos

formas el usuario puede crear sus propias funciones (veacutease Funcioacuten definida por el usuario)

Funcioacuten definida por el usuario

Funcioacuten (veacutease Funcioacuten) escrita en coacutedigo VBA especiacuteficamente para devolver un valor basaacutendose en diferentes meacutetodos de caacutelculo

Hoja

Teacutermino geneacuterico utilizado para representar un hoja de caacutelculo hoja de graacutefico hoja de macro

Hoja de caacutelculo

Uno de los objetos fundamentales de Excel en el que se encuentran las celdas Todos los libros de Excel deben tener al menos una hoja de caacutelculo y al menos una de ellas debe estar visible La uacutenica limitacioacuten al nuacutemero de hojas de caacutelculo que se pueden tener abiertas es la memoria del ordenador

Hojas de caacutelculo

Aplicacioacuten de software o programa que permiten introducir texto nuacutemeros y funciones en una matriz de celdas individuales

Libro

Contenedor para una o maacutes hojas de caacutelculo Cada archivo xls representa un libro de Excel

Macro

Una accioacuten o conjunto de acciones utilizadas para automatizar tareas Excel permite grabar acciones y utilizarlas posteriormente como macros

Meacutetodo

Un procedimiento que actuacutea sobre un objeto

Moacutedulo

Una unidad auto-contenida en la que el coacutedigo VBA se escribe y se almacena

Moacutedulo privado Moacutedulo utilizado especiacuteficamente para un objeto como pueda ser un libro una

hoja o un formulario del usuario

Glosario 319

No contiguo

Rango de celdas en el que los liacutemites de alguna o todas las celdas no estaacuten conectados Por ejemplo el rango Al C20 E10F100 representa un rango no conshytiguo

Nombre

Teacutermino que puede ser aplicado a constantes rango de celdas o variables

Objeto

Componente de una aplicacioacuten (veacutease Aplicacioacuten) como una hoja de caacutelculo una celda o un graacutefico Existen maacutes de 100 objetos disponibles dentro de Excel y resultan fundamentales a la hora de programar con VBA

Operadores

Siacutembolo matemaacutetico que instruye a una foacutermula o funcioacuten para que realice una cierta tarea Por ejemplo el operador + indica la foacutermula o la funcioacuten que debe sumar

Pareacutentesis

Los pareacutentesis se utilizan para indicar agrupaciones en matemaacuteticas En Excel siempre debe haber un pareacutentesis de cierre por cada pareacutentesis de apertura

Plantilla

Esquema predefinido utilizado como base estaacutendar para luego hacer modificashyciones y crear un hoja de caacutelculo

Procedimiento

Secuencia de instrucciones ejecutadas como un conjunto y que tienen un nomshybre Por ejemplo f u n e t i o n y sub son tipos de procedimientos (veacutease Funcioacuten y Sub)

Propiedad

Atributo con nombre perteneciente a un objeto (veacutease Objeto) Por ejemplo la direccioacuten de una celda especiacutefica es una propiedad de la celda o del objeto rango

Rango

Aacuterea de una o maacutes celdas ya sean contiguas o no

320 Excel Los mejores trucos

Sub

Tipo de procedimiento que no devuelve ninguacuten valor (veacutease Procedimiento) Este tipo de procedimientos se utilizan normalmente para gestionar eventos

Variables

Elemento con nombre que almacena un valor y que puede ser cambiado duranshyte su uso

Visual Basic for Applications (VBA)

El lenguaje estaacutendar de macros utilizado en la mayoriacutea de los productos de Office La palabra Applications representa a cualquiera de las aplicaciones de Office en las que es utilizado el coacutedigo como por ejemplo Excel Este lenguaje es un derivado de Visual Basic que a su vez es un derivado del lenguaje Basic La diferencia fundamental entre estos dos lenguajes es que VBA soacutelo puede ser utilishyzado dentro de la aplicacioacuten que lo contiene normalmente una perteneciente a la familia Office

Page 4: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas

Contenido 11

21 Crear efectos en 3D en tablas o celdas 80 Utilizar un efecto 3D en una tabla de datos 81

22 Activar y desactivar el formato condicional y la validacioacuten de datos con una casilla de verificacioacuten 82

2 3 Admitir muacuteltiples listas en un cuadro de lista desplegable 84

24 Crear listas de validacioacuten que cambien en base a la seleccioacuten realizada

en otra lista 86

25 Forzar la validacioacuten de datos para hacer referencia a una lista

en otra hoja 88 Meacutetodo 1 Rangos con nombre 88 Meacutetodo 2 La funcioacuten INDIRECTO 88 Ventajas y desventajas de cada meacutetodo 89

2 6 Utilizar Reemplazar para eliminar caracteres no deseados 90 27 Convertir nuacutemeros de texto en nuacutemeros reales 90

28 Personalizar los comentarios de las celdas 92

29 Ordenar maacutes de tres columnas 94

30 Ordenacioacuten aleatoria 95

31 Manipular datos con el filtro avanzado 97 32 Crear formatos de nuacutemero personalizados 101

33 Antildeadir maacutes niveles de Deshacer a Excel 107

34 Crear listas personalizadas 107 35 Subtotales en negritas de Excel 108

El truco sobre el truco 110 36 Convertir las foacutermulas y funciones de Excel a valores 111

Utilizar Pegado especial 111 Utilizar Copiar aquiacute soacutelo valores 111 Utilizar una macro 112

3 7 Antildeadir datos automaacuteticamente a una lista de validacioacuten 113 38 Trucar las caracteriacutesticas de fecha y hora de Excel 116

Sumar maacutes allaacute de las 24 horas 116 Caacutelculos de fecha y hora 117 Horas y fechas reales 119 iquestUn fallo de fechas 119

Capiacutetulo 3 Trucos sobre nombres 123

39 Usar direcciones de datos por el nombre 123 40 Utilizar el mismo nombre para rangos en diferentes hojas de caacutelculo 124

12 Contenido

4 1 Crear funciones personal izadas ut i l izando nombres 127

4 2 Crear rangos que se expandan y cont ra igan 129

4 3 Anidar r angos dinaacutemicos pa ra obtener u n a f l ex ib i l idad m aacute x i m a 136

44 Identificar r angos con n o m b r e en u n a hoja de caacutelculo 139

Meacutetodo 1 139

Meacutetodo 2 141

Capiacutetulo 4 Trucos sobre tablas dinaacutemicas 143

4 5 Tablas dinaacutemicas un t r u c o en s iacute m i s m a s 143

iquestPor queacute se les llama tablas dinaacutemicas 144

iquestPara queacute cosas resultan buenas las tablas dinaacutemicas 144

iquestPor queacute utilizar tablas dinaacutemicas cuando las hojas de caacutelculo ya ofrecen

muchas funciones de anaacutelisis 145

Los graacuteficos dinaacutemicos como extensioacuten de las tablas dinaacutemicas 145

Crear tablas y listas para ser utilizadas en tablas dinaacutemicas 145

El Asistente para tablas dinaacutemicas y graacuteficos dinaacutemicos 147

46 Compar t i r tablas dinaacutemicas pero no sus datos 148

4 7 A u t o m a t i z a r la creacioacuten de tablas dinaacutemicas 150

4 8 Mover los totales finales de u n a tabla dinaacutemica 153

49 Utilizar de fo rma efectiva datos de otro libro d inaacutemicamente 154

Capiacutetulo 5 Trucos sobre graacuteficos 159

50 Separar u n a porcioacuten de un graacutefico circular 159

5 1 Crear dos conjuntos de porciones en un uacutenico graacutefico circular 161

52 Crear graacuteficos que se ajusten a los datos 163

Dibujar los uacuteltimos x valores correspondientes a las lecturas 166

5 3 In terac tuar con los graacuteficos ut i l izando controles personal izados 166

Utilizar un rango dinaacutemico con nombre vinculado a una barra

de desplazamiento 167 Utilizar un rango dinaacutemico con nombre vinculado a un cuadro de lista

desplegable 169

54 Tres fo rmas raacutepidas para actual izar los graacuteficos 170

Utilizar arrastrar y colocar 170

Utilizar la barra de foacutermulas 171

Arrastrar el aacuterea del borde 174

55 Crear un simple graacutefico de t ipo t e r m oacute m e t r o 175

56 Crear un graacutefico de c o l u m n a s con anchos y altos variables 178

Contenido 13

5 7 Crear un graacutefico de tipo velociacutemetro 182 58 Vincular los elementos de texto de un graacutefico a una celda 188 59 Trucar los datos de un graacutefico de forma que no se dibujen las celdas

en blanco 189 Ocultar filas y columnas 190

Capiacutetulo 6 Trucos sobre foacutermulas y funciones 193

60 Antildeadir un texto descriptivo a las foacutermulas 193

61 Mover foacutermulas relativas sin cambiar las referencias 194

62 Comparar dos rangos de Excel 195 Meacutetodo 1 Utilizar Verdadero o Falso 195 Meacutetodo 2 Utilizar el formato condicional 196

63 Rellenar todas las celdas en blanco en una lista 197 Meacutetodo 1 Rellenar las celdas en blanco mediante una foacutermula 198 Meacutetodo 2 Rellenar las celdas en blanco a traveacutes de una macro 199

64 Hacer que las foacutermulas se incrementen por filas cuando las copie a lo largo de las columnas 200

65 Convertir fechas en fechas con formato de Excel 202 66 Sumar o contar celdas evitando valores de error 203 67 Reducir el impacto de las funciones volaacutetiles a la hora de recalcular 205 68 Contar solamente una aparicioacuten de cada entrada de una lista 206 69 Sumar cada dos tres o cuatro filas o celdas 207 70 Encontrar la eneacutesima aparicioacuten de un valor 209 71 Hacer que la funcioacuten subtotal de Excel sea dinaacutemica 212

72 Antildeadir extensiones de fecha 214

73 Convertir nuacutemeros con signo negativo a la derecha a nuacutemeros

de Excel 216 74 Mostrar valores de hora negativos 218

Meacutetodo 1 Cambiar el sistema de fecha predeterminado de Excel 218 Meacutetodo 2 Utilizar la funcioacuten TEXTO 219 Meacutetodo 3 Utilizar un formato personalizado 219

75 Utilizar la funcioacuten BUSCARV a lo largo de muacuteltiples tablas 220 76 Mostrar el tiempo total como diacuteas horas y minutos 222 77 Determinar el nuacutemero de diacuteas especificados que aparecen

en cualquier mes 223 78 Construir mega foacutermulas 225

14 Contenido

79 Trucar mega foacutermulas que hagan referencia a otros libros 227 80 Trucar una de las funciones de base de datos de Excel para que haga

el trabajo de muchas funciones 228

Capiacutetulo 7 Trucos sobre macros 237

81 Acelerar el coacutedigo y eliminar los parpadeos de la pantalla 237

82 Ejecutar una macro a una determinada hora 238 83 Utilizar CodeName para hacer referencias a hojas en los libros

de Excel 240

84 Conectar de forma faacutecil botones a macros 241

85 Crear una ventana de presentacioacuten para un libro 243

86 Mostrar un mensaje de Por favor espere 246 87 Hacer que una celda quede marcada o desmarcada al seleccionarla 247

88 Contar o sumar celdas que tengan un color de relleno especiacutefico 248 89 Antildeadir el control Calendario de Microsoft Excel a cualquier libro 250 90 Proteger por contrasentildea y desproteger todas las hojas de caacutelculo

raacutepidamente 252

91 Recuperar el nombre y la ruta de un libro de Excel 255 92 Ir maacutes allaacute del liacutemite de tres criterios del formato condicional 256

93 Ejecutar procedimientos en hojas protegidas 258 94 Distribuir macros 260

Capiacutetulo 8 Conectando Excel con el mundo 267

95 Cargar un documento XML en Excel 267

96 Guardar en SpreadsheetML y extraer datos 278

97 Crear hojas de caacutelculo utilizando SpreadsheetML 288 98 Importar datos directamente en Excel 293

Ejecutar el truco 295 El truco del truco 296

Hacer que la consulta sea dinaacutemica 296 Utilizar datos diferentes 297 Resultados con graacuteficos 300

99 Acceder a servicios Web SOAP desde Excel 301

100Crear hojas de caacutelculo Excel utilizando otros entornos 307 SpreadsheetWriteExceI 307 Spreadsheet ParseExcel 307

Contenido 15

Jakarta POI 307

JExcelApi 307

Glosario 315

iacutendice alfabeacutetico 323

CAPIacuteTULO 1

Reducir la frustracioacuten en los libros y en las hojas

de caacutelculo Trucos 1 a 15

Los usuarios de Excel saben que los libros son un concepto m u y potente Pero igualmente muchos usuarios son conscientes que trabajar con estos libros pueshyde provocar un gran nuacutemero de inconvenientes Los trucos de este capiacutetulo le ayudaraacuten a evitar algunos de esos inconvenientes a la vez que sacaraacuten provecho de algunos meacutetodos maacutes efectivos pero en ocasiones desconocidos con los que puede controlar sus libros de trabajo

Antes de profundizar en dichos trucos merece la pena echar un vistazo raacutepishydo a algunos conceptos baacutesicos que haraacuten mucho maacutes sencillo crear trucos efecshytivos Excel es una aplicacioacuten m u y potente de hojas de caacutelculo con la que se pueden hacer cosas increiacutebles Por desgracia muchas personas disentildean sus hojas de caacutelculo de Excel con poca previsioacuten haciendo difiacutecil que puedan reutilizarlas o actualizarlas En este apartado proporcionaremos numerosos trucos que puede utilizar para asegurarse de que crea hojas de caacutelculo lo maacutes eficaces posibles

La regla 8020

Quizaacute la regla maacutes importante a seguir cuando se disentildea una hoja de caacutelculo es tener una visioacuten a largo plazo y nunca presuponer que no necesitaraacute antildeadir maacutes datos o foacutermulas a la hoja de caacutelculo ya que la probabilidad de que ocurra esto es alta Teniendo esto en mente deberaacute dedicar alrededor del 80 de su tiemshypo en planificar la hoja de caacutelculo y alrededor del 20 en implementarla Aunque esto pueda parecer extremadamente ineficiente a corto plazo podemos asegurar que a largo plazo seraacute una gran ventaja ademaacutes de que despueacutes de haber hecho varias planificaciones luego seraacute mucho maacutes sencillo Recuerde que las hojas de

24 Excel Los mejores trucos

caacutelculo estaacuten pensadas para hacer sencilla la obtencioacuten de la informacioacuten por parte de los usuarios no soacutelo para presentarla y que tenga buen aspecto

Trucos sobre la estructuracioacuten

Sin duda el fallo nuacutemero uno que cometen muchos usuarios de Excel cuando crean sus hojas de caacutelculo es que no configuran y organizan la distribucioacuten de la informacioacuten en la manera en la que Excel y sus caracteriacutesticas esperan A contishynuacioacuten y sin ninguna orden en particular mostramos algunos de los fallos maacutes comunes que cometen los usuarios cuando organizan una hoja de caacutelculo

bull Dispersioacuten innecesaria de los datos a lo largo de diferentes libros

bull Dispersioacuten innecesaria de los datos a lo largo de diferentes hojas de caacutelculo

bull Dispersioacuten innecesaria de los datos a lo largo de diferentes tablas

bull Tener filas y columnas en blanco en tablas con datos

bull Dejar celdas vaciacuteas para datos repetidos

Los tres primeros puntos de la lista tienen que ver con una cosa siempre debe intentar mantener los datos relacionados en una tabla continua Una y otra vez hemos podido ver hojas de caacutelculo que no siguen esta simple regla y por tanto estaacuten limitadas en su capacidad para aprovechar por completo algunas de las funciones maacutes potentes de Excel incluyendo las tablas dinaacutemicas los subtotales y las foacutermulas En dichos escenarios soacutelo podraacute utilizar estas funciones aproveshychaacutendolas por completo cuando organice sus datos en una tabla m u y sencilla

No es una mera coincidencia que las hojas de caacutelculo de Excel puedan albergar 65536 filas pero solamente 256 columnas Teniendo esto en mente deberiacutea conshyfigurar las tablas con encabezados de columnas que vayan a lo largo de la primeshyra fila y los datos relacionados distribuidos de forma continua directamente debajo de los encabezados apropiados Si observa que estaacute repitiendo el mismo dato a lo largo de dos o maacutes filas en una de esas columnas evite la tentacioacuten de omitir los datos repetidos utilizando celdas en blanco para indicar dicha repeticioacuten

Aseguacuterese de que los datos estaacuten ordenados siempre que sea posible Excel dispone de un excelente conjunto de foacutermulas de referencia algunas de las cuales requieren que los datos esteacuten ordenados de manera loacutegica Ademaacutes la ordenashycioacuten aceleraraacute tambieacuten el proceso de caacutelculo de muchas de las funciones

Trucos sobre el formato

Maacutes allaacute de la estructura los formatos tambieacuten pueden causar problemas Aunque una hoja de caacutelculo deberiacutea ser faacutecil de leer y seguir esto suele ser a costa

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 25

de la eficiencia Somos grandes creyentes de mantenerlo todo sencillo aunque muchas personas dedican grandes cantidades de tiempo a formatear sus hojas de caacutelculo Aunque no se den cuenta este tiempo frecuentemente suele ser a costa de la eficiencia La sobrecarga de formatos hacen que aumente el tamantildeo del libro y aunque eacuteste parezca una verdadera obra de arte puede parecerle horrible a otra persona Debe considerar la posibilidad de utilizar algunos colores univershysales para sus hojas de caacutelculo como puedan ser el negro el blanco y el gris

Siempre es una buena idea dejar al menos tres filas en blanco por encima de la tabla (al menos tres aunque es preferible dejar maacutes) Se pueden utilizar estas filas para insertar funciones de base de datos y de filtrado avanzado Muchas personas tambieacuten se preocupan por cambiar la alineacioacuten de las celdas De forma predeterminada los nuacutemeros en Excel se alinean a la derecha y los textos a la izquierda y realmente existen buenas razones para dejarlo asiacute Si empieza a camshybiar estos formatos resultaraacute que no podraacute saberse si el contenido de una celda es un texto o un nuacutemero Es m u y habitual encontrar gente que hace referencia a celdas que parecen nuacutemeros pero en realidad son texto Si cambia la alineacioacuten predeterminada conseguiraacute hacerse un liacuteo La uacutenica excepcioacuten a esta regla poshydriacutean ser los encabezados de las columnas

De formato texto a las celdas soacutelo cuando sea completamente necesario ya que todos los datos que se introduzcan en dichos celdas se convertiraacuten en texto incluso si lo que deseaba era introducir un nuacutemero una fecha Peor auacuten cualshyquier celda que albergue una foacutermula que haga referencia a una celda con forshymato texto tambieacuten quedaraacute formatearla como texto Y normalmente no desearaacute que las celdas con foacutermulas esteacuten formateadas asiacute

Tambieacuten pueden crear problemas las celdas combinadas La base de datos de conocimientos de Microsoft estaacute repleta de problemas frecuentes que se encuenshyt ran en relacioacuten a las celdas combinadas Una buena alternativa es utilizar la opcioacuten Centrar en la seleccioacuten que se encuentra en el cuadro de lista desplegable Horizontal de la pestantildea Alineacioacuten del cuadro de diaacutelogo Formato de celdas

Trucos sobre foacutermulas

Otro de los grandes errores que a menudo cometen los usuarios con las foacutershymulas de Excel es hacer referencia a columnas enteras Esto hace que Excel tenga que examinar en potencia miles sino millones de celdas que de otra manera poshydriacutea ignorar

Tomemos por ejemplo un caso en el que tiene una tabla con datos que se distribuyen desde la celda Al a la celda H1000 Puede decidir que desea utilizar una o maacutes foacutermulas de referencia de Excel para extraer la informacioacuten requerida Dado que la tabla continuaraacute creciendo (a medida que antildeadan nuevos datos) es habitual hacer referencia a toda la tabla que incorpora todas las filas En otras

26 Excel Los mejores trucos

palabras la referencia seraacute algo parecido a AH o posiblemente Al H65536 Puede utilizar esta referencia de forma que cuando se antildeaden nuevos datos a la tabla seraacuten referenciados en las foacutermulas automaacuteticamente Esto resulta un haacutebito m u y malo y siempre deberiacutea evitarlo Todaviacutea puede eliminar la constante neceshysidad de actualizar las referencias de las foacutermulas al incorporar nuevos datos que se antildeaden a la tabla utilizando nombres de rangos dinaacutemicos que veremos en uno de los trucos que presentaremos maacutes adelante

Otro problema tiacutepico que surge en las hojas de caacutelculo malamente disentildeadas es el recaacutelculo tremendamente lento Mucha gente sugiere cambiar el modo de caacutelculo a manual a traveacutes de la opcioacuten que aparece en la pestantildea Calcular del cuadro de diaacutelogo Opciones

Sin embargo normalmente es un mal consejo que puede provocar numeroshysos problemas Una hoja de caacutelculo son todas las foacutermulas y caacutelculos asiacute como los resultados que producen Si utiliza una hoja de caacutelculo con el modo de caacutelculo manual tarde o temprano leeraacute alguna informacioacuten que no haya sido actualizashyda Puede que las foacutermulas esteacuten reflejando valores antiguos en vez de los actuashylizados porque cuando se utiliza el modo de caacutelculo manual debe forzar a Excel a que los realice pulsando la tecla F9

iexclPero es m u y sencillo olvidarse de hacer esto Pieacutenselo de esta forma si los frenos de su coche se estuviesen desgastando tanto que hiciesen que fuera maacutes lento iquestdesconectariacutea el pedal del freno y utilizariacutea el freno de mano en vez de intentar arreglar el problema Muchos de nosotros no hariacuteamos algo asiacute pero otras personas no tienen ninguacuten inconveniente en poner sus hojas de caacutelculo en modo de caacutelculo manual Si tiene la necesidad de utilizar la hoja de caacutelculo en modo manual entonces tiene un problema de disentildeo

Las foacutermulas matriciales son otra de las causas comunes de los problemas Estaacuten pensadas para hacer referencia a celdas simples pero si los utiliza para hacer referencia a grandes rangos haacutegalo lo menos posible Cuando un gran nuacutemero de colecciones hacen referencia a rangos extensos el rendimiento del libro se veraacute afectado a veces hasta el punto en el que ni siquiera se puede utilishyzar y tiene que cambiar a modo de caacutelculo manual

Las funciones de base de datos de Excel proporcionan muchas alternativas al uso de foacutermulas matriciales como veremos maacutes adelante en un truco Ademaacutes la ayuda de Excel ofrece algunos estupendos ejemplos de coacutemo utilizar estas foacutershymulas en grandes tablas de datos para devolver ciertos resultados en base a muacutelshytiples criterios

Otra alternativa que a menudo es pasada por alto es la utilizacioacuten de las tashyblas dinaacutemicas de Excel que veremos en el capiacutetulo 4 Aunque las tablas dinaacutemishycas puedan parecer sobrecogedoras la primera vez que se ven le recomendamos encarecidamente que se familiarice con esta potente funcioacuten de Excel ya que cuando sea un maestro se preguntaraacute coacutemo pudo sobrevivir sin ellas

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 27

Al final del diacutea sino recuerda nada maacutes acerca del disentildeo de la hoja de caacutelculo recuerde que Excel funciona mucho mejor cuando todos los datos relacionados estaacuten distribuidos en una tabla continua Eso haraacute que la utilizacioacuten de los t rushycos sea mucho maacutes sencilla

Crear una vista personal de los libros de Excel Excel le permite mostrar varios libros abiertos simultaacuteneamente y por tanto presentarlos en una vista personalizada organizada en diferentes ventanas Entonces puede guardar el espacio de trabajo como un archivo xlw y utilizarlo posteriormente cuando lo desee

A veces trabajando con Excel puede que necesite tener maacutes de un libro abiershyto en la pantalla lo que permite utilizar visualizar los datos de muacuteltiples libros de forma faacutecil y raacutepida

En los siguientes paacuterrafos describiremos coacutemo hacer esto de una forma orgashynizada y ordenada Abra todos los libros que desee utilizar

Para abrir maacutes de un libro a la vez seleccione la opcioacuten ArchivogtAbrir mantenga pulsada la tecla Control mientras selecciona los libros que

w desea abrir y finalmente baga clic en el botoacuten Abrir

Desde cualquiera de los libros de Excel (no importa cuaacutel) seleccione la opcioacuten de menuacute VentanagtOrganizar Si estaacute activada la casilla de verificacioacuten Ventanas del libro activo desactiacutevela y luego seleccione la organizacioacuten que prefiera Para terminar haga clic en el botoacuten Aceptar

Si eligioacute la opcioacuten Mosaico se le presentaraacuten los libros como un mosaico en la pantalla tal y como puede verse en la figura 11

Si selecciona la opcioacuten Horizontal se distribuiraacuten los libros de arriba a abajo ocupando todo el ancho de la pantalla tal y como se muestra en la figura 12

Si eligioacute la opcioacuten Vertical se distribuiraacuten los libros uno al lado del otro de izquierda a derecha como puede verse en la figura 13

Por uacuteltimo como muestra la figura 14 seleccionando la opcioacuten Cascada se mostraraacuten las ventanas unas encima de otras desde la parte superior izquierda a la parte inferior derecha Una vez que los libros se muestran de la forma que maacutes prefiera puede copiar pegar arrastrar etc informacioacuten entre ellos faacutecilmente

Si cree que maacutes adelante querriacutea volver a utilizar esta vista que acaba de crear puede guardar la configuracioacuten de la distribucioacuten de las ventanas como un espashycio de t r aba jo Para ello s i m p l e m e n t e seleccione la opc ioacuten de m e n uacute ArchivogtGuardar aacuterea de trabajo introduzca el nombre de archivo en el cuadro

28 Excel Los mejores trucos

de diaacutelogo correspondiente y haga clic en el botoacuten Guardar Cuando graba un aacuterea de trabajo la extensioacuten del archivo seraacute xlw en vez de xls Para recuperar un aacuterea de trabajo de Excel a una ventana completa de uno de los libros en partishycular simplemente haga doble clic en la barra de tiacutetulo de la ventana corresponshydiente Tambieacuten puede hacer clic en el botoacuten de maximizar de cualquiera de las ventanas del aacuterea de trabajo Una vez que haya acabado puede cerrar los libros de Excel de la forma habitual

Figura 11 Cuatro libros abiertos en vista mosaico

Cuando necesite volver a abrir los mismos libros bastaraacute con abrir el archivo xlw con lo que maacutegicamente se mostraraacuten con la misma distribucioacuten con la que fueron guardados Si solamente necesita abrir uno de los libros haacutegalo de la forma habitual Cualquier modificacioacuten que haga en alguno de los libros que forman parte del aacuterea de trabajo se guardaraacute automaacuteticamente cuando cierre el aacuterea de trabajo como conjunto aunque tambieacuten puede guardar cada libro de forma individual

Si dedica una pequentildea parte de tiempo a configurar algunas vistas personalishyzadas para realizar tareas repetitivas que requieren de muacuteltiples libros abiertos encontraraacute que esas tareas seraacuten maacutes faacuteciles de gestionar Quizaacute decida utilizar diferentes vistas para diferentes tareas repetitivas dependiendo de cuaacutel sea la tarea o coacutemo se sienta ese diacutea

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 29

Figura 12 Cuatro libros en vista horizontal

Figura 13 Cuatro libros en vista vertical

30 Excel Los mejores trucos

TRUCO

Figura 14 Cuatro libros en vista cascada

Introducir datos en varias hojas de caacutelculo simultaacuteneamente Es muy comuacuten tener los mismos datos en varias hojas de caacutelculo simultaacuteneamente Puede utilizar la herramienta de Excel para agrupar de forma que los datos introducidos en una hoja se introduzcan automaacuteticamente en el resto de hojas al mismo tiempo Tambieacuten disponemos de una aproximacioacuten maacutes raacutepida y maacutes flexible para hacer esta tarea que requiere de un par de liacuteneas de coacutedigo de Visual Basic for Applications (VBA)

El mecanismo que incorpora Excel para hacer que los datos se introduzcan en muacuteltiples lugares al mismo tiempo es una funcioacuten llamada Grupo la cual funshyciona agrupando las hojas de caacutelculo de forma que todas esteacuten vinculadas con el libro de Excel

Agrupar hojas de caacutelculo manualmente

Para utilizar la funcioacuten Grupo manualmente simplemente haga clic en la hoja en la que va a introducir los datos y pulse la tecla Control (tecla Mayuacutes en

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 31

Macintosh) mientras hace clic en las pestantildeas de las hojas de caacutelculo en las que desea insertar simultaacuteneamente los datos Cuando introduzca datos en cualquieshyra de las celdas de la hoja de caacutelculo se introduciraacuten automaacuteticamente en el resto de hojas de caacutelculo agrupadas Misioacuten completada

Para desagrupar las hojas de caacutelculo bien seleccione una hoja de caacutelculo que no sea parte del grupo o bien haga clic con el botoacuten derecho del ratoacuten en cualshyquiera de las pestantildeas de las hojas de caacutelculo agrupadas y seleccione la opcioacuten Desagrupar hojas

Cuando las hojas de caacutelculo estaacuten agrupadas si echa un vistazo a la barra de tiacutetulo de Excel veraacute que aparece la palabra Grupo encerrada entre corchetes Esto le hace saber que todaviacutea tiene agrupadas las hojas de caacutelculo A menos que tenga vista de aacuteguila y una memoria de elefante es maacutes que probable que no se deacute cuenta o se olvide de que tiene agrupadas las hojas de caacutelculo Por tanto le sugerimos que las desagrupe tan pronto como haya terminado con lo que estuviese haciendo

Aunque este meacutetodo es faacutecil necesita que recuerde agrupar y desagrupar las hojas cuando necesite corriendo el riesgo de sobrescribir datos en cualquier otra hoja de caacutelculo si se olvida de desagruparlas Tambieacuten significa que se produciraacuten entradas de datos simultaacuteneas independientemente de la celda en la que esteacute sishytuado Por ejemplo quizaacute solamente desee introducir datos simultaacuteneamente cuando se encuentre en un cierto rango de celdas en particular

Agrupar hojas de caacutelculo automaacuteticamente

Puede evitar estos inconvenientes faacutecilmente utilizando un coacutedigo VBA m u y sencillo Para que pueda funcionar debe residir dentro del moacutedulo privado del objeto Sheet (Hoja) Para acceder raacutepidamente al moacutedulo privado haga clic con el botoacuten derecho del ratoacuten en la pestantildea con el nombre de la hoja y seleccione la opcioacuten Ver coacutedigo Entonces podraacute utilizar uno de los eventos de Excel para las hojas de caacutelculo los cuales ocurren dentro de la propia hoja de caacutelculo como puede ser cambiar una celda seleccionar un rango activar desactivar etc meshydiante dichos eventos podraacute mover el coacutedigo dentro del moacutedulo privado del objeshyto Sheet Lo primero que hay que hacer para que funcione el agrupamiento es dar nombre al rango de celdas que desea tener agrupadas de forma que los datos se introduzcan automaacuteticamente en el resto de hojas de caacutelculo Escriba este coacuteshydigo en el moacutedulo privado

Priacutevate Sub Worksheet_SelectionChange(ByVal Target As Range) If Not Intersect(Range(MiRango) Target) Is Nothing Then

32 Excel Los mejores trucos

Hoja5 se ha colocado primero a propoacutesito ya que seraacute bullla hoja activa desde la que trabajaremos

Sheets(Array(Hoja5 MHoja3 Hojal))Select Else

MeSelect End If

End Sub

En este coacutedigo hemos utilizado el rango cuyo nombre es MiRango pero puede cambiar este nombre por el que esteacute utilizando en su hoja de caacutelculo Tamshybieacuten deberaacute cambiar los tres nombres de hoja en el coacutedigo tal y como se muestra la figura 15 con aquellos nombres de hoja que desea agrupar Cuando haya terminado cierre la ventana de moacutedulo o bien pulse AltComando-Capara volshyver a la ventana principal de Excel

Figura 15 Coacutedigo para agrupar automaacuteticamente hojas de caacutelculo

Es importante resentildear que el primer nombre de hoja utilizado en el array debe ser el de la hoja que contiene el coacutedigo y por tanto la hoja de caacutelculo en la que se introduciraacuten los datos

Una vez que haya escrito el coacutedigo en el lugar adecuado cada vez que selecshycione cualquier celda de la hoja de caacutelculo el coacutedigo comprobaraacute si la celda que ha seleccionado (el objetivo) estaacute dentro del rango llamado MiRango Si es asiacute el coacutedigo agruparaacute automaacuteticamente las hojas de caacutelculo que desea agrupar Si por el contrario esto no es asiacute desagruparaacute las hojas simplemente activando la hoja en la que se encuentra La maravilla de este truco es que no hay necesidad de agrupar manualmente las hojas y por tanto correr el riesgo de olvidarse de

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 33

desagruparlas por lo que esta aproximacioacuten le ahorraraacute gran cantidad de tiemshypo y frustracioacuten Si desea que aparezcan los mismos datos en las otras hojas pero no en las mismas direcciones de celdas escriba el siguiente coacutedigo

Priacutevate Sub worksheet_Change(ByVal Target As Range) If Not Intersect(Range(MiRango) Target) Is Nothing Then

With Range(MiRango) Copy Destination=Sheets(Hoja3)Range(Al)

Copy Destination=Sheets(Hojal)Range(DIO) End With

End If End Sub

Este coacutedigo tambieacuten necesita estar incluido dentro del moacutedulo privado del obshyjeto Sheet Siga los pasos que describimos anteriormente en este mismo truco para poder llegar a dicho moacutedulo

Impedir que los usuarios realizan ciertas acciones Aunque Excel proporciona proteccioacuten general para los libros y hojas de caacutelculo esta caracteriacutestica no proporciona privilegios limitados a los usuarios a menos que utilice un truco

Se pueden gestionar las interacciones de los usuarios con las hojas de caacutelculo monitorizando y respondiendo a los eventos Los eventos como su nombre indishyca son acciones que ocurren a medida que se trabaja con los libros y las hojas de caacutelculo Algunos de los eventos maacutes comunes incluyen abrir un libro guardarlo y cerrarlo cuando el usuario desee Se le puede indicar a Excel que ejecute cierto coacutedigo Visual Basic cuando cualquiera de estos eventos se produzca

Los usuarios pueden saltarse todas estas protecciones si desactivan las macros por completo Si la seguridad estaacute establecida a nivel medio seraacuten notificados de que existen macros en el libro abierto dando la posibilidad de desactivarlas Un nivel de seguridad alto simplemente desactivaraacute las macros automaacuteticamente Por otro lado si las hojas de caacutelculo requieren del uso de macros es maacutes que probable que los usuarios desean tener las macros activadas Estos trucos son praacutecticos y no proporcionan una seguridad de datos que requiera de gran carga de trabajo

Impedir el comando Guardar como en un libro de Excel

Se puede especificar que cualquier libro de Excel sea guardado como soacutelo lecshytura activando la casilla de verificacioacuten Se recomienda soacutelo lectura que se en-

34 Excel Los mejores trucos

cuentra accediendo a la opcioacuten Opciones generales del cuadro de diaacutelogo Guarshydar Con esto se evita que un usuario pueda guardar cualquier cambio que haya realizado al archivo a menos que lo grabe con un nombre diferente o en una ubicacioacuten distinta

A veces sin embargo desearaacute impedir que los usuarios puedan guardar una copia del libro en otra carpeta con el mismo nombre de archivo o con cualquier otro En otras palabras lo que desea es que los usuarios soacutelo puedan guardar sobre el archivo existente y no crear otra copia del mismo Esto es particularshymente interesante cuando hay maacutes de una persona guardando los cambios en un libro de Excel porque no desea que haya diferentes copias de un mismo libro guardadas con el mismo nombre pero en carpetas diferentes

El evento Bef o r e S a v e que vamos a utilizar existe desde Excel 97 Como su propio nombre indica este evento se produce justamente antes de que un libro sea guardado permitieacutendole interactuar con el usuario mostrando una advershytencia e impidiendo que Excel continuar grabando

Antes de probar esto en su casa aseguacuterese de guardar su libro de Excel antes Si coloca este coacutedigo sin haber guardado los cambios antes ya no podraacute hacerlo

Para insertar el coacutedigo abra el libro de Excel haga clic con el botoacuten derecho del ratoacuten en el icono de Excel situado justo a la izquierda del menuacute Archivo y seleccione la opcioacuten Ver coacutedigo como puede verse en la figura 16

Figura 16 Menuacute de acceso raacutepido al moacutedulo privado del objeto Workbook

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 35

Figura 17 Coacutedigo una vez introducido en el moacutedulo privado (ThisWorkbook)

Pr iacuteva t e Sub workbook_BeforeSave(ByVal SaveAsUI As Boolean Cancel As Boolean) Dim lReply As Long

If SaveAsUI = True Then lReply = MsgBox(No tiene permiso para guardar este amp _

libro con otro nombre iquestDesea guardarlo con el mismo nombre vbQuestion + vbOKCancel)

Cancel = (lReply = vbCancel) If Cancel = False Then MeSave Cancel = True

End If End Sub

Vamos a probarlo Seleccione la opcioacuten ArchivogtGuardar y el libro se guardaraacute de forma normal Ahora intente seleccionar la opcioacuten ArchivogtGuardar como y

Este acceso raacutepido no estaacute disponible en Macintosh Tendraacute que abrir el Editor de Visual Basic pulsando Opcioacuten-Fll o bien seleccionando la opcioacuten de menuacute HerramientasgtMacrogtEditor Visual Basic Una vez en eacutel haga clic con el botoacuten derecho en ThisWorkbook que estaacute situado en la ventana de proyectos de la parte izquierda

Escriba el siguiente coacutedigo en VBE tal y como se muestra en la figura 17 y luego pulse AltComando-CLpara volver a la ventana principal de Excel

36 Excel Los mejores trucos

entonces veraacute un mensaje que le indica que no tiene permiso para guardar este libro con otro nombre diferente

Impedir que los usuarios impriman un libro de Excel

Quizaacute desee impedir que los usuarios puedan imprimir un libro para que lueshygo seguramente acabe en una papelera o tirado en un escritorio a la vista de todos Utilizando el evento Bef o r e P r i n t podemos impedir esto Introduzca el siguiente coacutedigo como hicimos anteriormente en el Editor de Visual Basic

Priacutevate Sub workbook_BeforePrint(Cancel As Boolean) Cancel = True MsgBox No puede imprimir este libro vblnformation

End Sub

Pulse AltComando-Q_cuando haya terminado de introducir el coacutedigo para guardarlo y volver a la ventana principal de Excel Ahora cada vez que los usuashyrios intenten imprimir este libro no podraacuten hacerlo La liacutenea de coacutedigo con la instruccioacuten MsgBox es opcional pero siempre es buena idea incluirla para que informe al usuario de que no moleste al departamento de Tecnologiacutea Interna diciendo que su programa no funciona

Si desea impedir que los usuarios impriman solamente algunas hojas del lishybro utilice este coacutedigo en vez del anterior

Private Sub workbook_BeforePrint(Cancel As Boolean) Select Case ActiveSheetNtildeame

Case Hojal Hoja2 Cancel = True MsgBox No puede imprimir esta hoja de este libro_

vblnformation End Select

End Sub

Observe que hemos especificado las hojas Hojal y Hoja2 como las que tienen prohibido ser impresas Por supuesto puede cambiar esos nombres por el de cualshyquier otra hoja que desee bloquear Tambieacuten puede antildeadir maacutes hojas a la lista simplemente escribiendo una seguida del nombre de la hoja entre dobles comishyllas Si soacutelo desea impedir la impresioacuten de una sola hoja incluya su nombre entre dobles comillas detraacutes de la sentencia Case y elimine la coma sobrante

Impedir que los usuarios inserten maacutes hojas de caacutelculo

Excel le permite proteger la estructura de un libro de forma que los usuarios no puedan eliminar hojas de caacutelculo reordenarlas cambiar sus nombres etc A

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 37

veces sin embargo desearaacute impedir simplemente que se puedan antildeadir nuevas hojas de caacutelculo permitiendo que se realicen el resto de acciones

El siguiente coacutedigo le permitiraacute hacer esto

Priacutevate Sub Workbook_NewSheet(ByVal Sh As Object) ApplicationDisplayAlerts = False

MsgBox No puede antildeadir nuevas hojas de caacutelculo a este libro_ vbInformation

ShDelete ApplicationDisplayAlerts = True End Sub

Este coacutedigo primeramente muestra el cuadro de diaacutelogo con el mensaje y lueshygo inmediatamente elimina la nueva hoja que se acaba de antildeadir una vez que el usuario acepta el mensaje La instruccioacuten Appl i c a t i oacute n Di s p l a y A l e r t s = F a l s e impide que Excel muestre la advertencia estaacutendar que pregunta al usuashyrio si realmente desea eliminar la hoja Con este coacutedigo los usuarios seraacuten incashypaces de antildeadir maacutes hojas de caacutelculo al libro

Otra forma de impedir que los usuarios antildeadan nuevas hojas de caacutelculo es seleccionar la opcioacuten HerramientasgtProtegergtProteger libro y luego activar la cashysilla de verificacioacuten Estructura Sin embargo como ya dijimos al principio de este truco el mecanismo de proteccioacuten de Excel es menos flexible y ademaacutes de impeshydir antildeadir nuevas hojas tambieacuten impediraacute otras muchas cosas

Impedir confirmaciones innecesarias A veces las interacciones de Excel puedan resultar pesadas siempre preguntando para pedir confirmacioacuten sobre acciones Quitemos estos mensajes y dejemos que Excel realice las acciones

El tipo de mensajes a los que nos referimos son aquellos que preguntan si se desean activar las macros (incluso cuando no hay ninguna) o los que nos preshyguntan si estamos seguros de que queremos eliminar un hoja de caacutelculo A conshytinuacioacuten mostramos coacutemo evitar estos tipos de mensajes

Activar las macros cuando no se tenga ninguna

La memoria de Excel es de acero cuando se t rata de recordar que ha grabado una macro en un libro Por desgracia Excel sigue recordando que se ha grabado una macro incluso si la ha eliminado utilizando la opcioacuten HerramientasgtMacrogt Macros (AltOpcioacuten-F8) Despueacutes de hacer esto si abre el libro de nuevo seguiraacute recibiendo un mensaje que le pregunta si desea activar las macros incluso aunshyque no haya ninguna que activar

38 Excel Los mejores trucos

Se le pedir confirmacioacuten para activar las macros solamente si el nivel de seguridad estaacute establecido en medio Si estaacute establecido en bajo las macros se activan directamente pero si estaacute establecido en alto estaacuten desactivadas automaacuteticamente

Cuando graba una macro Excel inserta un moacutedulo de Visual Basic que conshytendraacute los comandos y las funciones Por ello cuando se abre un libro Excel comprueba si existe alguacuten moacutedulo este vaciacuteo o no Cuando se eliminan las macros de un libro soacutelo se elimina el coacutedigo pero no el moacutedulo en siacute (es algo asiacute como beberse toda la leche pero dejarse el bote vaciacuteo dentro de la nevera) Para impedir que se muestren este tipo de mensajes innecesarios deberaacute eliminar tambieacuten el moacutedulo Asiacute es como puede hacerse esto Abra VBE seleccionando la opcioacuten HerramientasgtMacrogtEditor de Visual Basic (o pulsando A l t C o m a n d o - F l l ) y luego seleccionando la opcioacuten VergtExplorador de proyectos (en Macintosh la venshytana de proyectos siempre estaacute abierta por lo que no necesitaraacute abrir el explorashydor de proyectos) A continuacioacuten podraacute ver una ventana como la que se muestra en la figura 18

Figura 18 Moacutedulos del Explorador de proyectos con la carpeta Moacutedulos abierta

Busque el libro en el Explorador de proyectos y haga clic en el icono + situado a su izquierda para visualizar los componentes del libro en particular los moacutedushylos Haga clic en el icono + de la carpeta Moacutedulos para obtener una lista de todos los moacutedulos Haga clic con el botoacuten derecho del ratoacuten en cada moacutedulo y elija la opcioacuten Quitar moacutedulo Cuando se le pregunte rechace la opcioacuten de exportar los moacutedulos Antes de quitar los moacutedulos que pudieran tener coacutedigo uacutetil haga doble clic en cada uno de ellos para asegurarse de que no los necesite Al terminar pulse Al t Comando-Ctpara volver de nuevo a la ventana principal de Excel

Mensajes de confirmacioacuten para guardar cambios que no se han realizado

Probablemente habraacute observado que a veces al abrir un libro y echar un vistashyzo a su informacioacuten es suficiente para que Excel le pregunte si desea guardar los

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 39

cambios en el libro de macro personal (aunque de hecho no ha realizado ningushyno) Lo maacutes probable es que tenga una funcioacuten imprevisible dentro del libro de macro personal

Un libro de macro personal es un libro oculto que se crea la primera vez que graba una macro y que se abre cada vez que se utiliza Excel Una funcioacuten (o foacutermula) imprevisible es aquella que se recalcula automaacuteticamente cada vez que realiza praacutecticamente cualquier cosa en Excel incluyendo abrir y cerrar un libro o la aplicacioacuten entera Dos de las funciones imprevisibles maacutes comunes son Hoy () y Ahora ( )

Por tanto aunque crea que no ha realizado cambios en el libro puede que esas funciones que se ejecutan en segundo plano siacute los hayan hecho Esto cuenta como un cambio y hace que Excel le pregunte si desea guardar dichos cambios

Si desea que Excel deje de preguntar por aquellos cambios que no ha realizashydo dispone de un par de opciones La maacutes obvia es no almacenar funciones imshyprevisibles al principio dentro del libro de macro personal y luego eliminar cualquier funcioacuten imprevisible que ya exista La otra opcioacuten en caso de que neshycesite utilizar funciones imprevisibles puede ser utilizar este sencillo coacutedigo para hacer que Excel crea que el libro de macro personal ha sido guardado en el m o shymento en el que se abre

Priacutevate Sub workbook_Open( ) MeSaved = True

End Sub

Este coacutedigo debe residir en el moacutedulo privado del libro del libro de macro pershysonal Para llegar ahiacute desde cualquier libro seleccione la opcioacuten VentanagtMostrar seleccione Personalxls y luego haga clic en Aceptar Luego abra VBE e introduzshyca el coacutedigo anterior Finalmente pulse AltComando-Capara volver a la ventashyna principal de Excel cuando haya terminado Por supuesto si dispone de una funcioacuten imprevisible que quiere que sea recalculada y por tanto guardar los camshybios que haya realizado entonces introduzca el siguiente coacutedigo

Priacutevate Sub workbook_Open( ) MeSave

End Sub

Esta macro guardaraacute el libro de macro personal automaacuteticamente cada vez que sea abierto

Impedir los avisos de Excel para macros grabadas

Uno de los muchos inconvenientes de las macros grabadas es que aunque son m u y uacutetiles para reproducir cualquier comando tienden a olvidar las res-

40 Excel Los mejores trucos

puestas a los avisos que se muestran en pantalla Elimine una hoja de caacutelculo y se le pediraacute confirmacioacuten ejecute una macro que realice esto mismo y todaviacutea se le pediraacute confirmacioacuten Veamos coacutemo desactivar esos avisos

Seleccione la opcioacuten HerramientasgtMacrogtMacros (AltOpcioacuten-F8) para mosshytrar un listado de todas las macros

Aseguacuterese de que estaacute seleccionada la opcioacuten Todos los libros abiertos en el cuadro de lista desplegable de la parte inferior Seleccione la macro en la que esteacute interesado y haga clic en el botoacuten Modificar Coloque el cursor antes de la prishymera liacutenea de coacutedigo (la primera liacutenea que no tiene un apostrofe delante de ella) y escriba lo siguiente

ApplicationDisplayAlerts = False

Y al final del todo del coacutedigo antildeada esto

ApplicationDisplayAlerts = True

Con lo que la macro entera quedariacutea asiacute

Sub MyMacro( ) i

1 MiMacro Macro 1 Elimina la hoja de caacutelculo actual i

ApplicationDisplayAlerts = False ActiveSheetDelete ApplicationDisplayAlerts = True

End Sub

Observe que al final del coacutedigo volvemos a activar los mensajes de confirmashycioacuten para que Excel los muestre cuando estemos trabajando normalmente Si se olvida de activarlos Excel no mostraraacute ninguna alerta lo cual puede ser pelishygroso

Si por cualquier razoacuten la macro no se completa (un error de ejecucioacuten por ejemplo) Excel puede que no llegue a ejecutar la liacutenea de coacutedigo en la que se vuelven a activar los mensajes de confirmacioacuten Si ocurriese esto probablemente seraacute mejor salir de Excel y volver a abrirlo para dejar todo en su estado normal

Ahora ya sabe coacutemo utilizar Excel sin mensajes de confirmacioacuten Tenga en cuenta de todas formas que esos mensajes estaacuten ahiacute por una razoacuten Aseguacuterese de que comprende completamente el propoacutesito de estos mensajes antes de desactivarlos

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 41

Ocultar hojas para que no puedan ser mostradas A veces deseariacutea tener un lugar donde colocar informacioacuten que no pueda ser leiacuteda o modificada por los usuarios Puede construir un lugar secreto dentro del libro un lugar donde almacenar informacioacuten foacutermulas y otros recursos que se utilizan en las hojas pero que no desea que se vean

Una praacutectica m u y uacutetil cuando se configura un nuevo libro de Excel es resershyvar una hoja para almacenar informacioacuten que los usuarios no necesitan ver caacutelculos de foacutermulas validacioacuten de datos listas variables de intereacutes y valores especiales datos privados etc Aunque se puede ocultar una hoja seleccionando la opcioacuten FormatogtHojagtOcultar es importante asegurarse de que los usuarios no puedan volver a mostrarla seleccionando la opcioacuten FormatogtHojagtMostrar

Por supuesto simplemente puede proteger la hoja pero esto todaviacutea deja al descubierto los datos privados las foacutermulas etc Ademaacutes no se puede proteger las celdas que estaacuten vinculadas a cualquiera de los controles disponibles en la barra de herramientas Formularios

En vez de esto jugaremos con la propiedad V i s i b l e de la hoja establecieacutenshydola en x lVeryHidden Desde VBE (HerramientasgtMacrogtEditor de Visual Basic o Alt Opcioacuten-Fl 1) aseguacuterese de que la ventana de exploracioacuten de proyectos esteacute visible seleccionando la opcioacuten VergtExplorador de proyectos Encuentre el nomshybre del libro y expanda su jerarquiacutea haciendo clic en el icono + que aparece a la izquierda de su nombre Expanda la carpeta Microsoft Excel Objetos para mosshytrar todas las hojas del libro

Seleccione la hoja que desea ocultar en el explorador de proyectos y muestre sus propiedades seleccionando la opcioacuten VergtVentana Propiedades (o pulsando la tecla F4) Aseguacuterese de que estaacute seleccionada la pestantildea Alfabeacutetica y busque la propiedad Visible en la lista que estaraacute situada al final Haga clic en el cuadro de texto que hay a su derecha y seleccione la uacuteltima opcioacuten 2 - xISheetVeryHidden tal y como se muestra en la figura 19 Pulse AltComando-CLpara guardar los cambios y volver a la ventana principal de Excel A partir de ahora la hoja ya no estaraacute visible desde la interfaz de Excel e incluso tampoco podraacute mostrarse a traveacutes de la opcioacuten FormatogtHojagtMostrar

Una vez que haya seleccionado la opcioacuten 2 - xISheetVeryHidden en la s$P ventana de propiedades puede parecer que dicha eleccioacuten no ha tenido

iquestiexclr efecto Este fallo visual ocurre a veces y no deberiacutea importarle Siempre $r que la hoja no aparezca entre las opciones de FormatogtHojagtMostrar

puede estar seguro de que todo ha ido bien

Para revertir el proceso simplemente siga los pasos anteriores pero esta vez seleccionando la opcioacuten 1 - xISheetVisible

42 Excel Los mejores trucos

iiffiffffmftfii

0 H EuroTool (EUROTOOLXLA) sectiacute VBAProject (Libro 1)

- bull v Microsoft Excel Objetos Uuml3 Hojal (Hojal) iQ Hoja2 (Hoja2) Q ThisWorkbook

Moacutedulos laquoiacutepound Moacutedulo 1 ltspound Moacutedulo2

iacuteHojal Worksheet

Alfabeacutetica | po r categoriacuteas 1 3

(Ntildeame) Hojal DisplayPageBreaks False DisplayRightToLeft False EnableAutoFilter False EnableCalculation True EnableOutlining False EnablePivotTable False

EnableSelection 0 - xlNoRestrictions Ntildeame Hojal ScrollArea Standard Width 1071

Figura 19 Ventana de propiedades de una hoja con la propiedad Visible establecida en 2 - xlSheetVeryHidden

Personalizar el cuadro de diaacutelogo Plantillas y el libro predeterminado Si suele realizar las mismas tareas o utilizar las mismas distribuciones para hojas de caacutelculo con frecuencia puede construir su propia pestantildea de plantillas en el cuadro de diaacutelogo estaacutendar Plantillas para proporcionar un acceso raacutepido al inicio

Imagiacutenese que tiene una hoja de caacutelculo que contiene los diacuteas del antildeo y foacutershymulas que resumen diversas informaciones para esos diacuteas Ha formateado esta hoja de caacutelculo cuidadosamente con los colores de su empresa el logotipo y con las foacutermulas necesarias todo ello para utilizarla con frecuencia En vez de tener que reinventar la rueda (o copiar y eliminar las cosas que no necesita) cada diacutea puede ahorrar un montoacuten de tiempo y de problemas creando una plantilla

Las plantillas para libros y hojas de caacutelculo le proporcionan un punto de parshytida para los siguientes proyectos permitieacutendole saltarse la configuracioacuten inishycial el proceso de dar formato la construccioacuten de foacutermulas etc Guardar una plantilla de una hoja de caacutelculo simplemente significa abrir un libro nuevo boshyrrar todas las hojas excepto una y luego crear una plantilla baacutesica que seraacute la

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 43

que utilice Una vez terminada seleccionaraacute la opcioacuten ArchivogtGuardar como y elegiraacute la opcioacuten Plantilla del cuadro de lista desplegable con los tipos de archivos posibles Si la plantilla es de un libro (es decir que contendraacute maacutes de una hoja) entonces cree un nuevo libro haga todos los cambios necesarios y luego seleccioshyne la opcioacuten ArchivogtGuardar como y guaacuterdelo como una plantilla

Con la plantilla terminada puede crear una copia exacta de la misma en cualshyquier momento seleccionando la opcioacuten ArchivogtNuevo y luego seleccionando una plantilla de libro o bien haciendo clic con el botoacuten derecho en una pestantildea de hoja y seleccionando la opcioacuten Insertar desde el menuacute contextual para insertar una nueva hoja a partir de una plantilla iquestNo seriacutea interesante poder tener todas esas plantillas disponibles desde el cuadro de diaacutelogo estaacutendar Plantillas o confishygurar su libro preferido como predeterminado Puede hacer todo esto creando su propia pestantildea de plantillas

Este truco presupone que tiene una uacutenica instalacioacuten de Excel en su ordenador Si dispone de muacuteltiples copias o versiones de Excel puede que no funcione

Crear su propia pestantildea de plantillas

Si dispone de una serie de plantillas (tanto de libros como de hojas de caacutelculo) que desea utilizar con regularidad puede agruparlas todas juntas en el cuadro de diaacutelogo Insertar o Plantillas

Desde cualquier libro seleccione la opcioacuten ArchivogtGuardar como y desde el cuadro de lista desplegable de tipos de archivo seleccione la opcioacuten Plantilla (xlt) De forma predeterminada Excel seleccionaraacute la carpeta estaacutendar Plantillas del disco duro en donde se almacenan todas las plantillas del usuario Si no existe una carpeta llamada Mis plantillas cree una utilizando el botoacuten Nueva carpeshyta Luego seleccione la opcioacuten ArchivogtNuevo en la barra de menuacutes (en Excel 2000 y posteriores seleccione Plantillas generales en el cuadro de diaacutelogo Nuevo libro En Excel 2003 debe seleccionar la opcioacuten En mi PC del panel de tareas) Entonces deberiacutea haber una pestantildea que representa la carpeta Mis plantillas que acaba de crear (veacutease figura 110) Tambieacuten deberiacutea ver las plantillas de libros y hojas de caacutelculo que guarde en dicha carpeta

Utilizar un libro personalizado de forma predeterminada

Al iniciar Excel se abre de forma predeterminada un libro en blanco llamado Librol que contiene tres hojas en blanco Esto estaacute bien si desea comenzar de nuevo cada vez que inicia Excel Sin embargo es probable que trabaje normal-

44 Excel Los mejores trucos

mente con un libro Por tanto resulta pesado tener que abrir Excel y luego busshycar el libro que se desea abrir Si desea configurar Excel para que automaacuteticamente se inicie con un cierto libro abierto siga leyendo

General ] Soluciones de hoja de caacutelculo Mis plantillas j

iaacute iexcl J 1 Libro lxlt Libro2XLT

Seleccione un icono para ver una vista previa

Plantillas de Office Online

Figura 110 El cuadro de diaacutelogo Plantillas

Para ello guarde su libro predeterminado (plantilla) en la carpeta XLSTART (que normalmente se encuentra en la carpeta CDocuments and SettingsNombre de usuarioApplication DataMicrosoftExcelXLSTART en Windows y en la carshypeta ApplicationsMicrosoft Office XOfficeStartupExcel en Macintosh) Una vez que haya hecho esto Excel utilizaraacute cualquiera de los libros que haya incluishydo en esta carpeta como predeterminados

La carpeta XLSTART es donde se crea y guarda automaacuteticamente el libro de macros personales cuando graba una macro El libro de macros personales es un libro oculto Tambieacuten puede tener sus propios libros ocultos abiertos en segundo plano si lo desea abriendo dicho libro seleccionando la opcioacuten VentanagtOcultar cerrando Excel y luego haciendo clic en Siacute para guardar los cambios en eacutel Luego coloque ese libro en la carpeta XLSTART Todos los libros que oculte y coloque dentro de la carpeta XLSTART se abriraacuten como libros ocultos cada vez que inicie Excel

Evite la tentacioacuten de colocar muchos libros en esta carpeta especialmente si son grandes dado que todos ellos se abriraacuten cuando inicie Excel Si se tiene mushychos libros abiertos se puede reducir considerablemente el rendimiento de Excel Naturalmente si cambia de opinioacuten y desea que al iniciar Excel aparezca un libro en blanco simplemente elimine los libros o plantillas de la carpeta XLSTART

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 45

Crear un iacutendice de hojas en el libro Si ha dedicado mucho tiempo en un libro que contiene muchas hojas sabe perfectamente lo complicado que puede ser encontrar una hoja en particular En estos casos es imprescindible tener una hoja iacutendice para poder navegar por el resto de hojas de libro

Utilizar una hoja de iacutendice le permitiraacute explorar de forma raacutepida y sencilla el libro de forma que con un solo clic de ratoacuten pueda ir directamente al lugar que desee Se puede crear un iacutendice de dos formas Podriacutea tener la tentacioacuten de crear el iacutendice a mano Cree una nueva hoja llaacutemela iacutendice o algo parecido introshyduzca en ella una lista de todos los nombres de las hojas e incluya viacutenculos a cada una de ellas mediante la opcioacuten de menuacute lnsertargtViacutenculo o pulsando Con-trolComando-K aunque este meacutetodo pueda ser suficiente en casos de los que no hay demasiadas hojas y no hay muchos cambios puede ser m u y tedioso teshyner que mantener el iacutendice manualmente

El siguiente coacutedigo crearaacute automaacuteticamente un iacutendice con viacutenculos a todas las hojas que esteacuten incluidas en el libro Este iacutendice se vuelve a generar cada vez que la hoja que contiene el coacutedigo es activada Este coacutedigo deberiacutea residir en el moacutedushylo privado del objeto Sheet Inserte una nueva hoja en el libro de Excel y llaacutemela con alguacuten nombre apropiado como pueda ser iacutendice Luego haga clic con el botoacuten derecho del ratoacuten soacutebrela pestantildea de dicha hoja y seleccione la opcioacuten Ver coacutedigo En la ventana de coacutedigo de Visual Basic escriba lo siguiente

Priacutevate Sub Worksheet_Activate( ) Dim wSheet As Worksheet Dim L As Long L = 1

With Me Columns(1)ClearContents Cells(l 1) = IacuteNDICE Cells(l 1)Ntildeame = iacutendice

End With

For Each wSheet In Worksheets If wSheetNtildeame oMeName Then L = L + 1 With wSheet

Range(Al)Ntildeame = Inicio amp wSheetIndex

HyperlinksAdd Anchor=Range(Al) Address=_ SubAddress=iacutendice TextToDisplay=Volver al iacutendice

End With MeHyperlinksAdd Anchor=MeCells(1 1) Address=_ SubAddress=Inicio amp wSheetIndex TextToDisplay=wSheetNtildeame

End If Next wSheet

End Sub

46 Excel Los mejores trucos

Pulse AltComando-CLpara volver al libro y guardar los cambios Observe que el coacutedigo da el nombre Inicio (al igual que cuando da nombre a una celda o un rango de celdas en Excel) a la celda Al de cada hoja ademaacutes de un uacutenico nuacutemero que representa el nuacutemero de iacutendice para dicha hoja Esto asegura que la celda Al de cada hoja tiene un nombre diferente Si la celda Al de la hoja ya tiene un nombre deberiacutea considerar cambiar cualquier mencioacuten a Al en el coacutedigo por algo maacutes adecuado (por ejemplo alguna celda no utilizada que esteacute situada en cualquier parte de la hoja)

Debe tener en cuenta que si selecciona la opcioacuten ArchivogtPropiedadesgt Resumen e introduce una direccioacuten URL como viacutenculo base el iacutendice que se crea por el coacutedigo anterior posiblemente no funcione Un viacutenculo base es una ruta o URL que desea utilizar para todos los viacutenculos con la misma direccioacuten base y que esteacuten incluidos en el documento actual

Otra forma de construir un iacutendice que es maacutes sencilla para el usuario es antildeadir un viacutenculo a la lista de hojas como un elemento de menuacute contextual al que se puede acceder haciendo clic con el botoacuten derecho del ratoacuten Haremos que dicho viacutenculo abra el menuacute estaacutendar de hojas Normalmente puede abrir este menuacute haciendo clic con el botoacuten derecho del ratoacuten en cualquiera de los botones de desplazamiento que se encuentran a la izquierda de donde se muestran las solapas de cada hoja tal y como se muestra en la figura 111

Ruuml iquest j

1 I 2 3 4 5 6 7 8

in i 11 12 13 j 14iexcl 15l 16| 17 j 18Iacute

119 i ]H 4 Listo

W W W F S l f i l W W i l f raquo ^

Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana l

Al f

A | B C D E F

i

$M Tareas para hoy

Figuras de esta semana

Hojal j

Hoja2 i

Hoja3

Hoja4

HojaS

Hoja6 T trade f p ^ aacute j j i E ^ bdquo trade ^ r a _ j ^rmdashp^u r a s d e e s t a s e m a n a ^ H o j a l pound H o j a 2 j 4 j

G

1 NUM

- S X

H mdash

bulliexcl

mdash1 ltr i

bull i n

Figura 111 Menuacute con las hojas disponibles que se muestra al hacer clic con el botoacuten derecho sobre los botones de desplazamiento entre hojas

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 47

Para vincular ese menuacute con el hecho de hacer clic con el botoacuten derecho del ratoacuten en cualquier celda escriba el siguiente coacutedigo en VBE

Priacutevate Sub Workbook_SheetBeforeRightClick(ByVal Sh As Object ByVal Target As Range Cancel As Boolean) Dim cCont As CommandBarButton

On Error Resume Next ApplicationCommandBars(Cell)Controls(iacutendice de hojas)Delete On Error GoTo 0

Set cCont = ApplicationCommandBars(Cell)ControlsAdd _ (Type=msoControlButton Temporary=True)

With cCont Caption = iacutendice de hojas

OnAction = IndexCode End With

End Sub

A continuacioacuten deberaacute insertar un moacutedulo estaacutendar que almacene la macro IndexCode que es llamada por este coacutedigo que acabamos de introducir en el momento en el que el usuario hace clic con el botoacuten derecho del ratoacuten en una celda Es fundamental que utilice un moacutedulo estaacutendar a continuacioacuten ya que si coloca el coacutedigo en el mismo moacutedulo que el coacutedigo anterior Excel no sabraacute doacutende encontrar una macro llamada IndexCode Seleccione lnsertargtMoacutedulo y escriba el siguiente coacutedigo

Sub IndexCode( ) ApplicationCommandBars(workbook Tabs)ShowPopup End Sub

Pulse AltComando-CLpara volver a la ventana principal de Excel A contishynuacioacuten haga clic con el botoacuten derecho en cualquier celda y veraacute un nuevo eleshymento de menuacute llamado iacutendice de hojas que al seleccionarlo mostraraacute un listado de todas las hojas que contiene este libro

H Limitar el rango de desplazamiento de la hoja de caacutelculo Si se desplaza a menudo por la hoja de caacutelculo o si tiene datos que no desea que sean visualizados por los lectores puede ser uacutetil limitar el aacuterea visible de la hoja de caacutelculo soacutelo al rango que actualmente tiene datos

Todas las hojas de Excel creadas a partir de Excel 97 disponen de 256 columshynas (de la A a la IV) y de 65536 filas En la mayoriacutea de los casos las hojas soacutelo utilizaraacuten un pequentildeo porcentaje de todas las celdas disponibles Existe la posibishylidad de establecer el aacuterea por el que se puede desplazar el usuario de forma que soacutelo pueda ver los datos que desee Luego puede colocar datos que no deben ser

48 Excel Los mejores trucos

vistos fuera de esa aacuterea Esto tambieacuten puede hacer maacutes sencillo desplazarse por una hoja de caacutelculo y que los usuarios no se encuentran en la fila 50000 para tener que empezar a buscar los datos que desea

La manera maacutes sencilla para establecer los liacutemites es simplemente ocultar to shydas las columnas y filas que no se utilizan Estando en una hoja localice la uacuteltishyma fila que contiene datos y seleccione la fila entera que estaacute debajo de ella haciendo clic en el selector de fila Mantenga pulsadas las teclas Control y Mayuacutes mienshytras pulsa la tecla Flecha abajo para seleccionar todas las filas hacia abajo Seshyleccione entonces la opcioacuten FormatogtFilagtOcultar para ocultarlas todas Haga esto mismo para las filas no utilizadas busque la uacuteltima columna seleccione toda la columna siguiente y manteniendo pulsadas las teclas Control y Mayuacutes pulse la tecla Flecha derecha hasta seleccionar todas las columnas Luego selecshycione la opcioacuten FormatogtColumnagtOcultar Una vez hecho esto el rango de celshydas uacutetiles quedaraacute rodeado de una zona gris por la que no se puede desplazar

La segunda alternativa para establecer los liacutemites es especificar un rango vaacuteshylido en la ventana de propiedades de la hoja Haga clic con el botoacuten derecho en la pestantildea de la hoja que estaacute situada en la parte inferior izquierdo de la ventana y luego seleccione la opcioacuten Ver coacutedigo Entonces seleccione la opcioacuten VergtExplorador de proyectos (Control-R en Windows o Comando-R en Mac OS X) para mostrar la ventana de proyectos Si la ventana de propiedades no estaacute visible pulse la tecla F4 Seleccione la hoja adecuada y busque la propiedad ScrollArea en la venshytana de propiedades (veacutease figura 112)

Introduzca entonces en el cuadro de texto de dicha propiedad los liacutemites para la hoja (por ejemplo $A$1$G$50)

Una vez hecho esto no podraacute desplazarse fuera del aacuterea que haya especificashydo Por desgracia Excel no guarda esta configuracioacuten despueacutes de cerrarse Esto significa que necesitamos una simple macro que automaacuteticamente establezca el aacuterea de desplazamiento al rango deseado escribiendo el coacutedigo para el evento w o r k s h e e t _ A c t i v a t e

Para ello haga clic con el botoacuten derecho sobre la pestantildea de la hoja en la que desea limitar el desplazamiento y seleccione la opcioacuten Ver coacutedigo introduciendo a continuacioacuten

Priacutevate Sub Worksheet_Activate ( ) MeScrollArea = A1G50 End Sub

Como siempre pulse AltComando-Clpara volver a la ventana principal de Excel y guardar los cambios

Aunque en este caso no habraacute una indicacioacuten clara como pueda ser la zona gris que se mostraba con el primer meacutetodo seraacute incapaz de desplazarse o selecshycionar cualquier cosa fuera del aacuterea especificada

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 49

J J 0 Jg$ EuroTocJOEL^ iquest VBAProject (Libro7) j$ VBAProject (LibroS)

Microsoft E bull cel uumlbietos S ]Ho ia l (Hoial) H] Hoia2 (Hoia2) IT] Hoia3 (Ho]a3) Q ThisWorlbool

Hoja3 Worksheet

Alfabeacutetica j por categoriacuteas ]

(Ntildeame)

DisplayPageBreaks DisplayRightToLeft EnableAutoFilter EnableCalculation EnableOutlining EnablePivotTable EnableSelection Ntildeame

StandardWidth Visible

^X]|

Figura 112 Ventana de propiedades y del explorador de proyectos

Cualquier macro que intente seleccionar un rango fuera de esta aacuterea de desplazamiento (incluyendo la seleccioacuten de filas o columnas enteras) no podraacute hacerlo Esto es particularmente cierto para aquellas macros grabadas que a menudo hacen uso de las selecciones

Si las macros seleccionan un rango fuera del aacuterea de desplazamiento puede modificarlas de forma que no esteacuten limitadas a dicha hariacutea mientras realicen sus tareas Para ello simplemente seleccione la opcioacuten HerramientasgtMacrogtMacros (Alt-F8) busque el nombre de la macro seleccioacutenela y luego haga clic en el boshytoacuten Modificar Escriacutebala siguiente liacutenea de coacutedigo al principio del todo

ActiveSheetScrollArea =

Y al final del todo de la macro escriba

ActiveSheetScrollArea = $A$1$G$50

Con esto el coacutedigo de la macro quedariacutea maacutes o menos asiacute

S u b M y M a c r o ( )

50 Excel Los mejores trucos

MiMacro Macro Macro grabada el 1992003 by OzGridcom

ActiveSheetScrollArea = Range(Z100)Select SelectionFontBold = True

ActiveSheetScrollArea = $A$1$G$50 Sheets(Presupuesto diario)Select ActiveSheetScrollArea =

Range (T500)Select SelectionFontBold = False

ActiveSheetScrollArea = $A$1$H$25

End Sub

Nuestra macro selecciona la celda Z100 y le da formato negrita Luego selecshyciona la hoja llamada Presupuesto diario selecciona la celda T500 de dicha hoja y quita el formato negrita Hemos antildeadido A c t i v e S h e e t S c r o l l A r e a = de forma que pueda seleccionarse cualquier celda y maacutes adelante volvemos a establecer los liacutemites del aacuterea de desplazamiento al valor deseado Cuando selecshyciona amos otra hoja (Presupuesto diario) volvemos a permitir al coacutedigo selecshycionar cualquier celda y despueacutes de que la macro realice sus tareas volvemos a establecer el rango a los liacutemites deseados Un tercer meacutetodo el maacutes flexible limishyta automaacuteticamente el aacuterea de desplazamiento al rango que estaacute siendo usado en la hoja en la que escribe el coacutedigo Para utilizar este meacutetodo haga clic con el botoacuten derecho en la pestantildea de la hoja en la que desea limitar el aacuterea de desplazashymiento seleccione la opcioacuten Ver coacutedigo y escriba lo siguiente

Private Sub Worksheet_Activate( ) MeScrollArea = Range(MeUsedRange MeUsedRange(22))Address

End Sub

Luego pulse AltComando-CLo haga clic en el botoacuten para cerrar la ventana de Visual Basic para volver a la ventana principal y guardar los cambios

La macro anterior se ejecutaraacute automaacuteticamente cada vez que se active la hoja en la cual introdujo este coacutedigo Sin embargo puede encontrarse un probleshyma con esta macro cuando necesite introducir datos fuera del aacuterea utilizable Para evitar este problema simplemente utilice una macro estaacutendar que restashyblezca el aacuterea de desplazamiento de nuevo a toda la hoja Para ello seleccione la opcioacuten HerramientasgtMacrogtEditor de Visual Basic seleccione luego la opcioacuten lnsertargtMoacutedulo e introduzca el siguiente coacutedigo

Sub ResetScrollArea( ) ActiveSheetScrollArea =

End Sub

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 51

Entonces pulse A l t Comando- ( ipa ra volver a la ventana principal de Excel y guardar el trabajo

Si lo desea puede hacer que la macro sea faacutecilmente accesible asignaacutendole una tecla de acceso raacutepido Seleccione la opcioacuten HerramientasgtMacrogtMacros (Alt Opcioacuten-F8) seleccione ResetScrollArea (el nombre que le dimos a la macro anteshyrior) haga clic en Opciones y luego asigne una tecla de acceso raacutepido

Cada vez que necesite antildeadir datos fuera de los liacutemites establecidos de la hoja ejecute esta macro que quita dicha limitacioacuten Entonces haga aquellos cambios que no podiacutea hacer cuando el liacutemite estaba establecido y cuando haya terminashydo active cualquier otra hoja y luego vuelva a activar eacutesta para que se vuelva a limitar el aacuterea de desplazamiento La activacioacuten de la hoja haraacute que se ejecute el coacutedigo inicial que escribimos el cual limitaba el aacuterea de desplazamiento

^ ^ Q 9 Bloquear y proteger celdas que contienen foacutermulas II ^ ^ V f ^ H Quizaacute desee permitir a los usuarios cambiar celdas que contienen datos

^ ^ K ^ ^ H pero no permitirles cambiar las foacutermulas Puede mantener bloqueadas las celdas que contienen foacutermulas sin tener que proteger toda la hoja o el libro

Cuando creamos una hoja de caacutelculo muchos de nosotros necesitamos utilishyzar foacutermulas de alguacuten tipo Aveces sin embargo no desearaacute que otros usuarios puedan estropear eliminar o sobrescribir cualquiera de las foacutermulas incluidas en la hoja de caacutelculo La forma maacutes faacutecil y raacutepida de impedir que las personas jueshyguen con las foacutermulas es proteger la hoja de caacutelculo Sin embargo proteger la hoja de caacutelculo no soacutelo evita que los usuarios estropeen las foacutermulas sino que tambieacuten evitan que se pueda introducir cualquier informacioacuten Y a veces no queshyrraacute ir tan lejos en la seguridad

De forma predeterminada todas las celdas de una hoja de caacutelculo estaacuten bloshyqueadas aunque esto no tiene efecto hasta que se aplique la proteccioacuten de la misma A continuacioacuten mostramos un meacutetodo m u y sencillo para aplicar una proteccioacuten a la hoja de caacutelculo de forma que soacutelo las celdas con foacutermulas esteacuten bloqueadas y protegidas

Seleccione todas las celdas de la hoja bien pulsando Cont ro l Comando-E o bien pulsando el cuadrado gris situado en la interseccioacuten de la columna A y la fila 1 Entonces vaya a FormatogtCeldasgtProteger y desactive la casilla de verifishycacioacuten Bloqueada Haga clic en Aceptar

Ahora seleccione cualquier celda seleccione Edicioacutengtlr a (Control-I oacute F5) y haga clic en el botoacuten Especial Veraacute entonces un cuadro de diaacutelogo como el que se muestra en la figura 113

Seleccione el botoacuten de opcioacuten Celdas con foacutermulas del cuadro de diaacutelogo Ir a especial y si es necesario limite las foacutermulas a los tipos subyacentes Luego

Excel Los mejores trucos

haga clic en Aceptar Una vez esteacuten seleccionadas las celdas con las foacutermulas vaya a FormatogtCeldasgtProteger y active la casilla de verificacioacuten Bloqueada Haga clic en Aceptar Ahora seleccione la opcioacuten HerramientasgtProtegergtProteger hoja para proteger la hoja de caacutelculo y utilizar una contrasentildea si es requerida

iHgia iaf lmdashi Seleccionar

^ Comentarios

lt Constantes iCeldas con foacutermulas i

iacuteiexcl Nuacutemeros

f Texto

f Valores loacutegicos

f Errores

^ Celdas en blanco r Regioacuten actual f Matriz actual

Obietos

lt Diferencias entre filas j

f Diferencias entre columnas (1) j

lt~ Celdas precedentes j

( Celdas dependientes j

r c

Uacuteltima celda

f~ Soacutelo celdas visibles (2)

bull Celdas con formatos condicionales l Celdas con validacioacuten de datos

r r

1 Aceptar J Cancelar ] j

Figura 113 El cuadro de diaacutelogo Ir a especial

Este meacutetodo realmente ahorra gran cantidad de tiempo y elimina posibles errores al buscar las foacutermulas de forma que pueda protegerlas Por desgracia tambieacuten evita que los usuarios puedan utilizar otras funciones como puede ser ordenar cambiar el formato alinear el texto y otras muchas incluso cuando la celda no estaacute bloqueada Puede solucionar este problema de dos formas

La primera aproximacioacuten consiste en no utilizar la proteccioacuten de la hoja sino la validacioacuten de datos en lugar de ello

La validacioacuten de datos estaacute lejos de ser del todo segura a la hora de evitar que los usuarios introduzcan datos no vaacutelidos en celdas Los usuarios todaviacutea pueden pegar en una celda con validacioacuten cualquier tipo de dato quitando la validacioacuten de dicha celda a menos que la celda original que se estaacute copiando tambieacuten tuviese alguacuten tipo de validacioacuten en cuyo caso tambieacuten se estariacutea sobrescribiendo

Para ver a queacute nos referimos seleccione cualquier celda seleccione la opcioacuten Edicioacutengtlr a y luego haga clic en el botoacuten Especial Ahora seleccione la opcioacuten Celdas con foacutermulas en el cuadro de diaacutelogo y si es necesario especifique que tipos de foacutermulas desea buscar Haga clic en el botoacuten Aceptar

Ahora que soacutelo tenemos seleccionadas las celdas con foacutermulas seleccione la opcioacuten DatosgtValidacioacuten y en la pestantildea Configuracioacuten seleccione la opcioacuten Pershysonalizada en el cuadro de lista desplegable y en el cuadro de texto Foacutermula es-

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 53

criba = tal y como se muestra en la figura 114 Luego haga clic en el botoacuten Aceptar

MBHIMSS^^^^^^^- bull Configuracioacuten j Mensaje entrante j Mensaje de error j

Criterio de validacioacuten

Permitir

| Personalizada j r j P Omitir blancos

Datos

1 J Foacutermula

k i

r

Borrar todos j | Aceptar j

2SJ

Cancelar j

Figura 114 Foacutermulas de validacioacuten

Este meacutetodo evitaraacute que un usuario sobrescriba accidentalmente una celda que tenga una foacutermula (aunque como dijimos anteriormente no es un meacutetodo totalmente seguro y soacutelo deberiacutea ser utilizado para evitar sobrescribir accidentalshymente) De todas formas la gran ventaja de utilizar este meacutetodo es que todas las funciones de Excel todaviacutea se pueden utilizar en la hoja de caacutelculo

El uacuteltimo meacutetodo tambieacuten permite utilizar todas las funciones de Excel pero solamente cuando se encuentra una celda que no esteacute bloqueada Para empezar aseguacuterese de que solamente las celdas que desea proteger estaacuten bloqueadas y que el resto no lo estaacuten Haga clic con el botoacuten derecho del ratoacuten en la pestantildea de la hoja en cuestioacuten seleccione la opcioacuten Ver coacutedigo e introduzca el siguiente coacutedigo

Priacutevate Sub Worksheet_SelectionChange(ByVal Target As Range) If TargetLocked = True Then

MeProtect Password=Secreta Else

MeUnprotect Password=Secreta End If

End Sub

Si no desea utilizar una contrasentildea omita la parte Pas sword = S e c r e t a Si por el contrario quiere utilizar una entonces debe cambiar la palabra Secreta por aquella contrasentildea que desee Luego pulse AltComando-(Xo cierre la venshytana para volver a Excel y guardar los cambios Ahora cada vez que seleccione una celda que estaacute bloqueada la hoja se bloquearaacute a siacute misma automaacuteticamente En el momento en el que seleccione cualquier celda que no esteacute bloqueada la hoja se desbloquearaacute

Excel Los mejores trucos

Este truco no funciona perfectamente aunque normalmente funciona lo suficientemente bien La palabra clave utilizada en el coacutedigo Target soacutelo se refiere a la celda que estaacute activa el momento de la seleccioacuten Por esta razoacuten es importante destacar que si el usuario selecciona un rango de celdas (con la celda activa estando desbloqueada) puede eliminar la seleccione entera porque la celda objetivo estaba desbloqueada y por tanto la hoja se ha desprotegido automaacuteticamente a siacute misma

Encontrar datos duplicados utilizando el formato condicional El formato condicional de Excel se utiliza normalmente para identificar valores en rangos en particular pero podemos usar un truco con esta caracteriacutestica para identificar datos duplicados dentro de una lista o una tabla

Normalmente la gente tiene que identificar datos duplicados dentro de una lista o tabla Hacer esto manualmente puede llevar mucho tiempo y a veces se pueden cometer errores Le aconsejamos que para hacerlo mucho maacutes sencillo utilice un truco sobre una de las caracteriacutesticas estaacutendar de Excel el formato condicional

Tomemos por ejemplo una tabla con datos en el rango $A$ 1 $H$100 Selecshycione la celda superior izquierda (Al) y arrastre el cursor del ratoacuten hasta la celda H100 Es importante que Al sea la celda activa en la seleccioacuten por lo que no es lo mismo seleccionar primero la celda H100 y luego arrastrar hasta la celda A l Seshyleccione entonces la opcioacuten FormatogtFormato condicional y en el cuadro de diaacutelogo Formato condicional seleccione la opcioacuten Foacutermula en el primer cuadro de lista desplegable En el campo que hay a su derecha introduzca el siguiente coacutedigo

= C 0 N T A R S I ( $ A $ 1 $ H $ 1 0 0 A 1 ) gt 1

Haga clic en el botoacuten Formato y luego seleccione la pestantildea Tramas y selecshycione un color que desee aplicar para identificar visualmente los datos duplicashydos Haga clic en Aceptar para volver al cuadro de diaacutelogo anterior y vuelva a hacer clic en Aceptar para aceptar el formato

Todas aquellas celdas que contengan datos duplicados deberiacutean aparecer ahoshyra como un aacuterbol de Navidad con el color que eligioacute haciendo mucho maacutes sencishyllo el hecho de localizar datos duplicados para asiacute poder eliminarlos moverlos o alterarlos

Es m u y importante comentar que como la celda Al era la activa la direccioacuten de la celda es una referencia relativa y no absoluta como en la tabla de datos

uuml

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 55

$A$1$H$100 Utilizando el formato condicional de esta forma Excel sabe automaacuteticamente que debe utilizar la celda correcta como el criterio de la funshycioacuten CONTAR S I Con esto queremos decir que la foacutermula de formato condicioshynal en la celda Al se leeriacutea asiacute

= C O N T A R S I ( $ A $ 1 $ H $ 1 0 0 A 1 ) gt 1

Mientras que en la celda A2 se leeriacutea

= C O N T A R S I ( $ A $ 1 $ H $ 1 0 0 A 2 ) gt 1

En la celda A3 se leeriacutea

= C O N T A R S I ( $ A $ 1 $ H $ 1 0 0 A 3 ) gt 1

y asiacute sucesivamente Si necesita identificar datos que aparecen dos o maacutes veces puede utilizar el

formato condicional con tres condiciones diferentes y coacutedigos de color para cada una de las condiciones todo ello para conseguir una identificacioacuten visual Para hacer esto seleccione la celda Al (la celda que estaacute situada en la parte superior izquierda de la tabla) y arrastre el cursor del ratoacuten hasta la celda H100 De nueshyvo es importante que la celda Al sea la celda activa en la seleccioacuten

Ahora seleccione la opcioacuten FormatogtFormato condicional y seleccione la opshycioacuten Formato en el cuadro de lista desplegable En el cuadro de texto situado a su derecha introduzca el siguiente coacutedigo

= C 0 N T A R S I ( $ A $ 1 $ H $ 1 0 0 A 1 ) gt 3

Haga clic en el botoacuten Formato y luego vaya a la pestantildea Tramas para selecshycionar el color que desee aplicar para identificar los datos que aparecen maacutes de tres veces Haga clic en Aceptar luego haga clic en el botoacuten Agregar y en el cuadro de lista desplegable para la Condicioacuten 2 seleccione la opcioacuten Foacutermula y luego escriba el siguiente coacutedigo en el cuadro de texto situado a su derecha

= C O N T A R S I ( $ A $ 1 $ H $ 1 0 0 A 1 ) = 3

En vez de tener que reescribir la foacutermula maacuterquela en el cuadro de texto de la Condicioacuten 1 pulse la tecla ControlComando-C para copiarla en el portapapeles haga clic en el cuadro de texto de la Condicioacuten 2 pulse ControlComando-V para pegarla ahiacute y luego cambiegt3 por =3

Haga clic en el botoacuten Formato y luego seleccione la pestantildea Tramas para seleccionar el color que desee utilizar para identificar los datos que aparecen justa-

Excel Los mejores trucos

mente tres veces Haga clic en Aceptar y luego haga clic en Agregar En el cuashydro de lista desplegable de la Condicioacuten 3 seleccione la opcioacuten Foacutermula y escriba lo siguiente en el cuadro de texto situado a su derecha

= C O N T A R S I ( $ A $ 1 $ H $ 1 0 0 A 1 ) = 2

Para terminar haga clic en el botoacuten Formato elija la pestantildea Tramas y seleccione ahiacute el color que desea aplicar a los datos que aparecen exactamente dos veces Luego haga clic en el botoacuten Aceptar Ahora ya tenemos colores diferentes de celda dependiendo del nuacutemero de veces en el que aparecen los datos dentro de la tabla De nuevo es importante recordar que la celda Al debe ser la celda activa en la seleccioacuten puesto que la direccioacuten de celda es una referencia relativa y no absoluta como en la tabla de datos $A$1 $H$100 Utilizando el formato condishycional de esta forma Excel sabraacute utilizar la celda correcta como criterio de la funcioacuten CONTAR S I

Asociar barras de herramientas personalizadas a un libro en particular A pesar de que la mayoriacutea de barras de herramientas que cree sirven para praacutecticamente todos los libros con los que trabaje a veces la funcionalidad de una barra de herramientas personalizada solamente es aplicable a un libro en particular Con este truco podremos asociar barras de herramientas personalizadas a sus respectivos libros

Si nunca ha creado una barra de herramientas personalizada sin duda se habraacute dado cuenta que las barras herramientas se cargan y son visibles indepenshydientemente de que libro tenga abierto iquestQueacute ocurre si su barra de herramientas personalizada contiene macros grabadas que soacutelo tienen sentido con un libro en particular Probablemente es mejor poder asociar barras de herramientas persoshynalizadas cuyo propoacutesito sea especial con los libros apropiados para asiacute evitar cualquier tipo de confusioacuten y otros problemas Podemos hacer esto insertando un coacutedigo m u y sencillo en el moacutedulo privado del libro Para acceder al moacutedulo privado haga clic con el botoacuten derecho en el icono de Excel que encontraraacute en la esquina superior izquierda de la pantalla cerca del menuacute Archivo y luego selecshycione la opcioacuten Ver coacutedigo

Este acceso directo no estaacute disponible en Macintosh Tendraacute que abrir el Editor de Visual Basic pulsando Opcioacuten-Fll o bien seleccionando la opcioacuten de menuacute HerramientasgtMacrogtEditor de Visual Basic Una vez ahiacute haga clic con el botoacuten derecho del ratoacuten (o clic mientras mantiene pulsada la tecla Control) en ThisWorkbook que aparece en la ventana de proyectos

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 57

Entonces introduzca este coacutedigo

Priacutevate Sub Workbook_Activate( ) On Error Resume Next

With ApplicationCommandBars(MiBarraPersonalizada) Enabled = True Visible = True

End With On Error GoTo 0

End Sub

Private Sub Workbook_Deactivate( ) On Error Resume Next

ApplicationCommandBars(MiBarraPersonalizada)Enabled = False On Error GoTo 0

End Sub

Cambie el texto de MiBarraPersonalizada por el nombre que desee darle a la barra de herramientas personalizada Para volver a la ventana principal de Excel cierre la ventana de moacutedulo o pulse AltComando-CL En cuanto abra o active otro libro la barra de herramientas personalizada desapareceraacute y no podraacute ser utilizada Reactivando el libro adecuado la barra volveraacute a aparecer Todaviacutea poshydemos llegar maacutes lejos haciendo que una barra de herramientas personalizada esteacute disponible solamente para una hoja en particular del libro Haga clic con el botoacuten derecho del ratoacuten sobre el nombre de una hoja en la que desea activar la barra de herramientas seleccionando la opcioacuten Ver coacutedigo Entonces introduzca el siguiente coacutedigo

Private Sub Worksheet_Deactivate( ) On Error Resume Next

ApplicationCommandBars(MiBarraPersonalizada)Enabled = False On Error GoTo 0

End Sub

Private Sub Worksheet_Activate( ) On Error Resume Next

With ApplicationCommandBars(MiBarraPersonalizada) Enabled = True Visible = True

End With On Error GoTo 0

End Sub

Ahora pulse AltComando-ltXo cierre la ventana para volver a Excel El prishymer procedimiento ( W o r k s h e e t _ D e a c t i v a t e () ) se ejecutaraacute automaacuteticamente cada vez que deje hoja en particular y active otra Este coacutedigo cambia la propieshydad Enab l ed de la barra de herramientas personalizada a F a l s e de forma que no pueda ser vista o utilizada El segundo procedimiento se ejecuta cada vez que

58 Excel Los mejores trucos

se activa la hoja en cuestioacuten estableciendo la propiedad E n a b l e d a True con lo que la barra vuelve a ser visible La liacutenea de coacutedigo que dice A p p l i c a t i o n CommandBars (MyCustomToolbar) V i s i b l e = True simplemente muesshytra la barra de herramientas de nuevo de forma que el usuario pueda verla Cambie de una hoja a otra y veraacute como la barra de herramientas desaparece y vuelve a aparecer dependiendo de la hoja que tenga seleccionada

TRUCO Burlar el gestor de referencias relativas de Excel En Excel una referencia de foacutermula puede ser o bien relativa o bien absoluta pero a veces desearaacute mover celdas que utilicen referencias relativas sin tener que hacer las referencias absolutas Veamos coacutemo hacer esto

Cuando se necesita hacer una foacutermula absoluta se utiliza el signo del doacutelar ($) delante de la letra de la columna y o del nuacutemero de la fila en la referencia a la celda como por ejemplo en $A$1 Una vez haya hecho esto no importa doacutende copie la celda que la foacutermula seguida haciendo referencia a la misma celda o celdas A veces sin embargo ya ha creado numerosas foacutermulas que no contieshynen referencias absolutas sino relativas Normalmente hace esto cuando desea copiar la foacutermula original o propagarla por la hoja y que Excel cambie las refeshyrencias de forma adecuada Si ya ha creado las foacutermulas utilizando solamente referencias relativas o quizaacutes utilizando una mezcla entre referencias absolutas relativas puede reproducir las mismas foacutermulas en cualquier otro rango y en la misma hoja en otra hoja del mismo libro o incluso en otra hoja situada en otro libro Para hacer esto sin cambiar ninguna de las referencias que hay dentro de las foacutermulas seleccione el rango de celdas que desea copiar y luego seleccione la opcioacuten EdicioacutengtReemplazar En el cuadro de texto Buscar introduzca el signo = y en el cuadro de texto Reemplazar con el siacutembolo (por supuesto puede utilishyzar cualquier otro siacutembolo que esteacute seguro no se utiliza en cualquiera de las foacutermulas) Luego haga clic en el botoacuten Reemplazar todos El signo = de todas las foacutermulas de la hoja seraacute reemplazado con el siacutembolo Ahora puede copiar este rango y pegarlo en el destino que desee Luego seleccione el rango que acaba de pegar y vuelva a seleccionar la opcioacuten EdiciexcloacutengtReemplazar Esta vez reemplace el siacutembolo por el siacutembolo = Con esto las foacutermulas quedaraacuten con las mismas referencias que las originales

TRUCO Quitar viacutenculos fantasma en un libro iexclAh Viacutenculos fantasmas Al abrir un libro se le pregunta si desea actualizar los viacutenculos iexclpero no hay ninguacuten viacutenculo iquestCoacutemo puede actualizar los viacutenculos cuando no existen

Los viacutenculos externos son viacutenculos que hacen referencia a otros libros El heshycho de que se produzcan viacutenculos externos no esperados puede darse por diferen-

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 59

tes razones la mayoriacutea de las veces por mover o copiar graacuteficos hojas de graacuteficos u hojas a otros libros Auacuten asiacute saber doacutende estaacuten no siempre le ayudaraacute a enconshytrarlos A continuacioacuten le mostramos algunas alternativas para solucionar el problema de los viacutenculos fantasmas

Primeramente debe comprobar si realmente tiene viacutenculos externos (que no son fantasmas) de los cuales nos olvidaremos Si no estaacute seguro si tiene viacutencushylos externos reales comience buscando en el lugar maacutes obvio las foacutermulas Pueshyde hacer esto aseguraacutendose de que no hay otros libros abiertos y entonces buscando por [] dentro de las foacutermulas de cada hoja Cierre todos los demaacutes libros para asegurarse de que cualquier viacutenculo de foacutermula incluiraacute [] donde el asterisco representa el caraacutecter comodiacuten de buacutesqueda

Excel 9 7 no proporciona una opcioacuten para buscar en todo el libro pero puede buscar en todas las hojas de un libro si las agrupa Puede hacer esto haciendo clic con el botoacuten derecho en el nombre de cualquiera de las hojas y eligiendo la opcioacuten Seleccionar todas las hojas En versiones posteriores de Excel la funcioacuten de Buscar y reemplazar admite la posibilidad de buscar dentro de una hoja o de todo un libro

Una vez que haya encontrado los viacutenculos de foacutermula simplemente cambie la foacutermula de forma adecuada o bien elimiacutenela Cambiar o eliminar la foacutermula depende de la situacioacuten y debe ser usted el que decida queacute hacer Tambieacuten puede ir al centro de descargas de Microsoft Office ubicado en httpofficemicrosoftcom Downloadsdefaultaspx y desde la categoriacutea de complementos seleccionar el Asistente de eliminacioacuten de viacutenculos Este asistente estaacute disentildeado para encontrar y eliminar viacutenculos tales como viacutenculos de nombres definidos viacutenculos de nomshybres ocultos viacutenculos a graacuteficos viacutenculos a consultas de Microsoft y viacutenculos a objetos De todas formas por nuestra experiencia no es capaz de encontrar viacutenshyculos fantasmas Una vez que esteacute seguro de que no hay viacutenculos de foacutermula debe asegurarse de que no tiene ninguacuten otro viacutenculo que no sea fantasma Para ello solemos comenzar desde el libro de Excel que contiene los viacutenculos fantasshymas Seleccione la opcioacuten lnsertargtNombregtDefinir Desplaacutecese a lo largo de la lista de nombres seleccionando cada uno de ellos y mirando en el cuadro de texto Se refiere a situado en la parte inferior Aseguacuterese de que ninguno de estos nomshybres estaacute haciendo referencia a un libro diferente

En vez de tener que hacer clic en cada nombre puede insertar una nueva hoja y seleccionar la opcioacuten lnsertargtNombregtPegar Luego desde el cuadro de diaacutelogo haga clic en Pegar viacutenculo Esto crearaacute una lista de todos los nombres de libro con sus rangos referenciados en la columna correspondiente

60 Excel Los mejores trucos

Si alguno de los nombres se refiere a un elemento que estaacute fuera de libro ha encontrado el origen de al menos uno de los viacutenculos a los cuales hace referencia el mensaje de actualizar los viacutenculos Ahora es decisioacuten suya si desea cambiar este nombre de rango para que haga referencia solamente al propio libro o bien dejarlo como estaacute

Otra fuente potencial de viacutenculos son sus graacuteficos Es posible que los graacuteficos tengan el mismo problema que acabamos de explicar Deberiacutea comprobar que los rangos de datos y las etiquetas del eje X del traacutefico no estaacuten haciendo referencia a libros externos De nuevo debe tomar la decisioacuten de si los viacutenculos que ha enconshytrado son o no correctos

Los viacutenculos tambieacuten pueden acechar en los objetos como puedan ser dos cuadros de texto las autoformas etc Los objetos pueden intentar hacer referenshycia a un libro externo La forma maacutes sencilla de localizar los objetos es seleccioshynar cualquier celda de cada hoja y luego seleccionar la opcioacuten Edicioacutengtlr a (F5) Desde el cuadro de diaacutelogo haga clic en el botoacuten Especial y luego active la casilla de verificacioacuten Objetos y haga clic en Aceptar para comenzar la buacutesqueda Con esto seleccionaremos todos los objetos de la hoja En cualquier caso deberiacutea hashycer esto en una copia del libro Despueacutes una vez tengamos todos los objetos seleccionados puede eliminar guardar cerrar y volver a abrir la copia del libro para ver si con esto hemos solucionado el problema

Finalmente el lugar que no es tan obvio comprobar es en las hojas ocultas que puede haber creado y de las que se ha olvidado Vuelva a mostrar esas hojas seleccionando la opcioacuten FormatogtHojagtMostrar Si la opcioacuten Mostrar esta desactivada significa que no hay hojas ocultas

Ahora que ya ha eliminado la posibilidad de viacutenculos reales es hora de elimishynar los viacutenculos fantasmas Vaya al libro en cuestioacuten en el que haya viacutenculos fantasmas y seleccione la opcioacuten EdicioacutengtViacutenculos A veces simplemente puede seleccionar los viacutenculos no deseados hacer clic en Cambiar origen y luego hacer que el viacutenculo haga referencia a siacute mismo A menudo de todas formas se le informaraacute que alguna de las foacutermulas contiene un error y entonces no podraacute hacer esto

Si no puede tomar el camino sencillo apuacutentese a queacute libro de Excel cree que puede estar vinculado (llamaremos a ese libro el libro bueno) Cree un viacutenculo real entre ambos abriendo los dos Vaya al libro problemaacutetico y en cualquier celda de cualquier hoja escriba = Ahora haga clic en una celda del libro bueno y pulse Intro para tener un viacutenculo externo real con dicho libro Guarde ambos libros pero no los cierre todaviacutea Estando todaviacutea en el libro con viacutenculos fantasshymas seleccione la opcioacuten EdicioacutengtViacutenculos y utilice el botoacuten Cambiar origen para referenciar todos los viacutenculos con el nuevo libro con el que acabamos de crear el viacutenculo Guarde el libro de nuevo y elimine la celda en la que creoacute el viacutenculo real Para terminar guarde el archivo

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 61

A menudo esto elimina el problema de los viacutenculos fantasmas dado que ahoshyra Excel es consciente de que ha eliminado el viacutenculo externo con dicho libro Si esto no ha solucionado problema pruebe con los siguientes pasos pero aseguacutereshyse de guardar una copia primero

El siguiente proceso implica eliminar datos permanentemente Por tanto antes de comenzar tiene que crear una copia de seguridad del libro de Excel ya que si no lo hace puede crearle nuevos problemas

Con el libro problemaacutetico abierto elimine una hoja guarde el libro cieacuterrelo y vuelva a abrirlo Si al hacerlo no se le pregunta sobre actualizar los viacutenculos perdidos entonces es que la hoja que acaba de eliminar era la que teniacutea los viacutenshyculos fantasmas Esto deberiacutea arreglar el problema pero si no fuera asiacute repita el primer paso para cada una de las hojas del libro Necesitaraacute antildeadir una nueva hoja antes de eliminar la uacuteltima ya que cualquier libro debe tener al menos una hoja Supongamos que esta teacutecnica ha funcionado Entonces veamos queacute hay que hacer a continuacioacuten Abra la copia del libro (la que todaviacutea tiene los datos dentro de ella) y cree otra copia Deberaacute trabajar con la hoja problemaacutetica (u hojas) y utilizar el proceso de eliminacioacuten para descubrir doacutende estaacute el problema

Teniendo activada la hoja problemaacutetica seleccione un grupo de celdas (de alshyrededor de 10x10) y entonces seleccione la opcioacuten EdicioacutengtBorrargtTodo iquestEstaacute totalmente seguro de que ha guardado una copia Si es asiacute guarde cierre y vuelshyva a abrir la hoja Si no se le pregunta acerca de actualizar los viacutenculos entonces es que ha encontrado el problema y el objetivo seraacute volver a restablecer ese conshyjun to de celdas Si vuelve a recibir el mensaje de actualizar los viacutenculos continuacutee eliminando celdas hasta que ya no se le pregunte Luego tendraacute que restaurar las celdas problemaacuteticas

Esperamos que estas teacutecnicas le hayan solucionado algo la frustracioacuten de teshyner viacutenculos fantasmas en sus libros de Excel No es sencillo ni divertido pero puede ayudarle a solucionar el problema

IQ221 Reducir un libro que estaacute hinchado ^^wPgt^H iquestNunca ha observado que un libro estaacute aumentando de tamantildeo a un ritmo H k f l alarmante sin una razoacuten aparente Existen numerosas causas que pueden

provocarlo y algunas soluciones para ello

iquestNunca ha comido tanto que no puede funcionar correctamente Lo mismo ocurre con las hojas de Excel Un libro de Excel que engorda tanto es aquel en el que se han hecho tantas cosas que ha llegado a un tamantildeo tal en el que ya no puede funcionar correctamente

Excel Los mejores trucos

Comprobamos el tamantildeo de un libro tiacutepico que conteniacutea gran cantidad de datos y observamos que soacutelo con datos el tamantildeo del archivo era de 137 Mb Entonces antildeadimos una tabla dinaacutemica que haciacutea referencia a cuatro columnas enteras como origen de los datos y observamos que el tamantildeo del archivo se incrementoacute espectacularmente hasta los 24 Mb Antildeada algunos formatos y el tamantildeo del libro se incrementaraacute praacutecticamente al doble soacutelo haciendo algunas acciones

Una de las causas maacutes comunes por las que un archivo engorda particularshymente en las versiones anteriores de Excel es la aplicacioacuten de formatos a columshynas o filas completas en vez de a un rango de datos que se esteacute utilizando Otro error es referenciar columnas enteras como fuente de datos para graacuteficos y tashyblas dinaacutemicas en vez de referenciar solamente las celdas que actualmente conshytienen datos Para solucionar estos problemas tendremos que eliminar todos los formatos superfluos y restringir el origen de datos solamente a aquellos rangos de celdas uacutetiles

Antes de hacer estos arreglos haga siempre una copia del libro por seguridad

Eliminar Formatos superfluos

El primer paso para eliminar formatos superfluos es averiguar cuaacutel es la esshyquina inferior derecha en la que acabaraacuten los datos No se confiacutee en la opcioacuten Edicioacutengtlr agtEspecialgtUacuteltima celda ya que puede llevarle a la uacuteltima celda que contiene formato no datos Habiendo localizado manualmente la celda que sabe que es la uacuteltima que contiene datos reales marque la fila que estaacute inmediatashymente debajo de ella Mientras pulsa las teclas Control y Mayuacutes pulse la tecla Flecha abajo del teclado para marcar todas las filas que se encuentran por debashyjo Luego seleccione la opcioacuten EdicioacutengtBorrargtTodos para eliminarlas

Ahora utilice el mismo meacutetodo para eliminar todas las columnas sobrantes Localice la celda que se encuentre maacutes a la derecha y que auacuten contenga datos y seleccione la columna inmediatamente posterior Luego mientras mantiene pulshysadas las teclas Control y Mayuacutes pulse la tecla Flecha derecha del teclado para seleccionar todas las columnas hasta el final y finalmente seleccione la opcioacuten de menuacute EdicioacutengtBorrargtTodos

Evite la tentacioacuten de eliminar por completo todas esas filas que columnas en vez de borrarlas ya que al hacerlo se produce normalmente errores de tipo iexclREF en cualquiera de las celdas con foacutermulas que pudiesen estar haciendo referencia a ellas

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 63

Guarde el libro y tome buena nota del cambio producido en su tamantildeo a traveacutes de la opcioacuten ArchivogtPropiedades y mirando en la pestantildea General Si tiene macros ahora tendraacute que dirigir los moacutedulos en los que reside el coacutedigo de las macros Este seraacute un proceso raacutepido directo y sencillo que exporta todos los moacutedulos y formularios de usuario al disco duro que luego los elimina y vuelve a importarlos de nuevo Para hacer esto vaya al Editor de Visual Basic y desde el explorador de proyectos haga clic con el botoacuten derecho en cada moacutedulo y selecshycione la opcioacuten Quitar moacutedulol (o cualquier otro nombre que tuviese el moacutedulo) Cuando se le pregunte si desea exportar el moacutedulo antes de quitarlo diga Siacute teniendo en cuenta la ru ta que seleccione

Haga esto mismo para cada moacutedulo asiacute como para todos los formularios de usuario que pueda tener No se olvide de los moacutedulos privados del libro y hojas si eacutestos contienen coacutedigo Una vez que haya hecho todo guarde el libro Entonces seleccione la opcioacuten ArchivogtImportar archivo e importe cada moacutedulo y cada forshymulario de usuario de nuevo al libro Siguiendo este proceso se crearaacute un archivo de texto para cada moacutedulo lo cual eliminaraacute cualquier residuo que pudiesen contener Existen en Internet algunas utilidades gratis que pueden automatizar esta tarea en cierto grado pero hemos oiacutedo casos en los que estas herramientas han desorganizado el coacutedigo o incluso han aumentado maacutes el tamantildeo de los archivos En caso de que utilice una de estas herramientas siempre haga una copia de seguridad primero ya que los desarrolladores no se haraacuten responsables de cualquier peacuterdida de datos

Puesta a punto de los oriacutegenes de datos

Si despueacutes de llevar a cabo los pasos previos todaviacutea cree que el tamantildeo del archivo es m u y grande otra causa posible es que hay referencias a celdas no utilizadas dentro de tablas o graacuteficos dinaacutemicos Esto suele ocurrir normalmente con las tablas dinaacutemicas ya que muchas personas hacen referencia a las 65536 filas para evitar tener que actualizar manualmente los rangos cada vez que se antildeaden nuevos datos

Limpiar libros corruptos

Si todaviacutea cree que el tamantildeo del libro es demasiado grande es posible que el libro o sus hojas esteacuten corruptos Por desgracia encontrar el punto de corrupshycioacuten requiere de un proceso manual de eliminacioacuten

De nuevo le recomendamos encarecidamente que haga una copia de seguridad antes de proceder

64 Excel Los mejores trucos

Para asegurarse de que no se pierde nada muestre todas las hojas que puedan estar ocultas seleccionando la opcioacuten FormatogtHojagtMostrar En caso de que la opcioacuten esteacute desactivada es que no tiene hojas ocultas por las que preocuparse Teniendo todas las hojas visibles comience por la hoja que esteacute maacutes a la izquiershyda y vaya recorriendo una a una hacia la derecha Para cada una de ellas elimiacuteshynela guarde el libro y anote el tamantildeo del mismo a traveacutes de ArchivogtPropiedadesgt General Si el tamantildeo del archivo se reduce draacutesticamente considerando la cantishydad de datos que habiacutea en dicha hoja entonces es que probablemente haya enshycontrado el punto de corrupcioacuten

Para reemplazar una hoja corrupta de un libro cree una nueva hoja seleccioshyne manualmente los datos situados en la hoja corrupta corte (no utilice nunca copiar) y pegue dichos datos en la nueva hoja Entonces elimiacutenela hoja corrupta guarde y repita el proceso

iacuteiquest Al cortar en vez de copiar Excel traspasa los datos a la nueva hoja iX manteniendo las referencias intactas

TRUCO Extraer datos de un libro corrupto La corrupcioacuten de libros de Excel puede suponer la peacuterdida de datos vitales lo cual puede resultar un coste maacutes que monetario Este truco examina algunos meacutetodos que pueden ayudarle a recuperar los datos

Aveces los libro se corrompen sin ninguna razoacuten aparente Esto puede provoshycar todo tipo de problemas especialmente si el libro es vital y por cualquier rashyzoacuten no tiene una copia de seguridad Leccioacuten 1 siempre haga una copia de seguridad de los datos en alguacuten otro lugar Siendo realistas esto no siempre ocushyrre y puede que la corrupcioacuten se produzca justo antes de que se realizase una copia de seguridad regular Para antildeadir maacutes frustracioacuten aunque un libro este corrupto a veces es posible abrirlo e incluso realizar ciertas acciones en eacutel

Si no puede abrir un libro

Si no puede abrir el libro en cuestioacuten antes de hacer cualquier otra cosa aseshyguacuterese de hacer una copia de seguridad del mismo ya que de lo contrario podriacutea perderlo Teniendo una copia siempre puede buscar ayuda profesional

Ahora intente abrir el libro en una versioacuten posterior de Excel y pruebe a guarshydar Obviamente esto no seraacute posible si ya estaacute utilizando la uacuteltima versioacuten de Excel Si esto no funciona pruebe a abrir el libro y guardarlo en formato HTML o HTM Luego cierre el archivo y vuelva a abrirlo esta vez volviendo a guardarlo en el formato original es decir en formato xls

1 Reducir la frustracioacuten en los libros y en las hojas de caacutelculo 65

Cuando se guarda un libro en formato HTML las siguientes funciones N^ se perderaacuten

Vistas personalizadas

Formatos de nuacutemero no utilizados

Estilos no utilizados

Configuracioacuten de consolidacioacuten de datos

Escenarios

Foacutermulas el lenguaje natural (seraacuten convertidas a referencias estaacutendar de rango)

Categoriacuteas personalizadas de funciones

Elementos con fuente tachada superiacutendice o subiacutendice

Historial de cambios

Configuracioacuten de paacutegina personalizada para los graacuteficos que se hayan incrustado en una hoja

Configuraciones de lista para los objetos del cuadro de lista y cuashydro de lista desplegable de la barra de herramientas de Formulashyrios

Formato condicional almacenado en una hoja de macro XLM

Tambieacuten los libros compartidos dejaraacuten de estarlo La configuracioacuten Eje de valores (Y) cruza el nuacutemero de categoriacutea de la pestantildea Escala del cuadro de diaacutelogo Formato de ejes no se guardaraacuten si la casilla de verificacioacuten Eje de valores (Y) cruza la en maacutexima categoriacutea estaacute activada La configuracioacuten de variar los colores por cada punto del cuadro de diaacutelogo Formato de las series de datos no seraacute guardada si el traacutefico contiene maacutes de una serie de datos

Finalmente intente abrir el archivo y guardarlo en formato SYLK (slk que significa viacutenculo simboacutelico) Observe que cuando guarda un libro en este formashyto soacutelo se guarda la hoja activa Por tanto deberaacute hacer lo mismo para cada una de las hojas Vuelva a abrir el archivo y guaacuterdelo nuevamente en el formato deseado es decir en formato xls

Si no puede abrir el archivo

Si el libro estaacute corrupto hasta el punto en el que no puede ni siquiera abrirlo abra la hoja de caacutelculo en Microsoft Word o a traveacutes del visor de hojas de caacutelculo que se puede descargar desde el sitio Web de Microsoft luego copie los datos

66 Excel Los mejores trucos

desde el archivo abierto De todas formas muchas de las foacutermulas formatos etc se perderaacuten

A continuacioacuten abra el nuevo libro y cree un viacutenculo externo con el libro corrupto Por ejemplo =CDocuments and SettingsAlexMis Documentos[Hoja xls]HojalAl Copie este viacutenculo hacia abajo y hacia la derecha tantas filas y columnas como sea necesario Haga lo mismo para cada una de las hojas que contiene el libro Si no puede recordar los nombres de las hojas utilice cualquier nombre utilizando la ruta de archivo correcta y Excel le mostraraacute los nombres de las hojas cuando pulse la tecla Intro

Una uacuteltima cosa que puede hacer es visitar la paacutegina Web de OpenOfficeorg y descargar la versioacuten gratuita de OpenOfficeorg Aunque hay nombres diferentes para las herramientas y los comandos OpenOfficeorg es m u y similar a Excel Esta aplicacioacuten estaacute basada en la misma estructura baacutesica de hoja de caacutelculo que Excel lo que resulta m u y sencillo para los usuarios acostumbrados a la aplicashycioacuten de Microsoft De hecho alrededor del 96 de las foacutermulas que se utilizan en Excel se pueden crear y utilizar en las hojas de caacutelculo de OpenOfficeorg

Para descargar una versioacuten gra tu i ta de OpenOfficeorg vaya a h t t p downloadopenofficeorgindexhtml y descarguacuteela desde el sitio FTP que prefieshyra Luego instale el programa Hay que decir que tambieacuten hay una versioacuten disshyponible de OpenOfficeorg para Macintosh

En muchos casos los datos de Excel se pueden recuperar Sin embargo el coacuteshydigo VBA no podraacute recuperarse debido a incompatibilidades entre Excel y OpenOfficeorg

Si ninguno de estos meacutetodos funciona probablemente tendraacute que pagar dineshyro para intentar recuperar su libro de Excel utilizando alguacuten software especial Puede encontrar software a la venta (para Windows) en el sitio Web de los au toshyres de este libro en la direccioacuten httpwwwozgridcomServicescorrupt-file-recovery-indexhtm

Despueacutes de haber comprado e instalado ExcelFix ejecuacutetelo Seleccione File luego elija el archivo corrupto y haga clic en Diagnose para recuperarlo Entonshyces deberiacutea ver el archivo recuperado en el visor de libros Haga clic en Save Workbook para guardar el libro en un nuevo archivo que pueda ser abierto por Excel

Existe tambieacuten una versioacuten de demostracioacuten que no le permite guardar el archivo pero recuerde que todas las versiones le permiten recuperar tantos arshychivos como desee

CAPIacuteTULO 2

Trucos sobre las caracteriacutesticas

incorporadas en Excel Trucos 16 a 38

Aunque Excel incorpora una gran variedad de caracteriacutesticas estaacutendar para administrar y analizar datos los liacutemites de dichas caracteriacutesticas son a menudo frustrantes Los trucos de este capiacutetulo le proporcionaraacuten numerosos meacutetodos para escaparse de esos liacutemites y hacer de Excel una herramienta mucho maacutes poderosa

Validar datos en base a una lista situada en otra hoja La validacioacuten de datos permite de forma faacutecil especificar reglas que deben seguir los datos Por desgracia Excel obliga a que las listas utilizadas en la validacioacuten de datos deben aparecer en la misma hoja en la que se encuentran eacutestos Pero por fortuna existen formas para saltarse esta limitacioacuten

En este truco proporcionaremos dos meacutetodos que puede utilizar para validar datos basaacutendose en una lista que estaacute situada en otra hoja El primer meacutetodo hace uso de los rangos con nombre que ofrece Excel (que veremos con maacutes detashylle en el capiacutetulo 3) y el segundo utiliza una llamada a una funcioacuten

Meacutetodo 1 Rangos con nombre

Quizaacute el meacutetodo maacutes raacutepido y sencillo para superar la barrera en cuanto a la validacioacuten de datos en Excel es dar nombre al rango donde estaacute situada la lista Para crear un rango con nombre seleccione las celdas que contienen la lista e

uuml

70 Excel Los mejores trucos

introduzca un nombre en el cuadro de nombres que estaacute situado en la parte superior izquierda justo a la izquierda de la barra de foacutermulas Para los propoacutesishytos de este ejemplo supondremos que a dicho rango le llamaremos MiRango

Seleccione la celda en la que desea que aparezca una lista desplegable y entonshyces seleccione la opcioacuten DatosgtValidacioacuten Seleccione la opcioacuten Lista en el cuadro de lista desplegable Permitir y en el cuadro de texto Origen escriba =MiRango Luego haga clic en el botoacuten Aceptar

Dado que hemos utilizado un nombre de rango la lista (aunque resida en otra hoja) puede ser utilizada como lista de validacioacuten

Meacutetodo 2 La funcioacuten INDIRECTO

La funcioacuten INDIRECTO permite hacer referencia a una celda que contiene un texto que representa la direccioacuten de otra celda Entonces puede utilizar esa celda como una celda local de referencia incluso aunque tome sus datos a partir de otra hoja Puede utilizar esta caracteriacutestica para hacer referencia a la hoja en la que reside la lista

Supongamos que la lista esteacute situada en la Hojal en el rango $A$1$A$8 Haga clic en cualquier hoja de una hoja distinta en donde desee que aparezca esta l is ta de va l idac ioacuten (lista de b uacute s q u e d a ) Entonces seleccione la opcioacuten DatosgtValidacioacuten y elija la opcioacuten Lista del cuadro de lista desplegable y en el cuadro de texto Origen escriba el siguiente coacutedigo

= INDIRECTO(Hoj al$A$1$A$8)

Aseguacuterese de que estaacute activada la casilla de verificacioacuten Celda con lista despleshygable y entonces haga clic en el botoacuten Aceptar En ese momento deberiacutea aparecer la lista ubicada en la Hojal en la lista desplegable de validacioacuten

Si el nombre de la hoja en la que estaacute ubicada la lista contiene espacios en blanco necesita utilizar la funcioacuten INDIRECTO de la siguiente forma

=INDIRECTO(Hoja 1$A$1$A$8)

Aquiacute la diferencia es que debe utilizar un apostrofe simple inmediatamente despueacutes de las primeras dobles comillas y otro inmediatamente antes del signo de exclamacioacuten

Siempre es una buena idea utilizar el apostrofe simple independien-H teniente de que el nombre de la hoja contenga espacios o no En

iA cualquier caso siempre podraacute hacer referencia a una hoja que no tenga espacios en su nombre y permite hacer cambios faacutecilmente en un futuro

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 71

Ventajas y desventajas de ambos meacutetodos

Los rangos con nombre y la funcioacuten INDIRECTO tienen cada uno de ellos una ventaja y una desventaja

La ventaja de utilizar nombres de rangos es que los cambios que realice al nombre de la hoja no afectaraacuten a la lista de validacioacuten Esto es precisamente la desventaja de la funcioacuten INDIRECTO en tanto que cualquier cambio que realice al nombre de la hoja no se actualizaraacute automaacuteticamente dentro de la funcioacuten por lo que tendraacute que cambiarla manualmente para que refleje el nuevo nombre

La ventaja de utilizar la funcioacuten INDIRECTO es que si la primera celdafila o la uacuteltima celdafila es eliminada del rango con nombre eacuteste devolveraacute un error de tipo iexclREF Por contra esto es una desventaja de utilizar nombres de rangos si elimina celdas o filas del rango con nombre los cambios no afectaraacuten a la lista de validacioacuten

Controlar el formato condicional con casillas de verificacioacuten Aunque el formato condicional es una de las caracteriacutesticas maacutes potentes de Excel resulta bastante incoacutemodo activarla y desactivarla a traveacutes de los menuacutes y cuadros de diaacutelogo de la interfaz de Excel Si pudieacuteramos antildeadir casillas de verificacioacuten en la hoja de caacutelculo que activasen y desactivasen en el formato condicional podriacuteamos leer los datos de forma mucho maacutes sencillo de cualquier forma el momento que queramos

El formato condicional una caracteriacutestica disponible a partir de Excel 97 aplica formatos a las celdas seleccionadas que coincidan con un cierto criterio que se basa en los valores o foacutermulas que se especifiquen Aunque el formato condicioshynal se utiliza normalmente basaacutendose en valores de celdas si lo basamos en foacutershymulas conseguiremos una flexibilidad mayor para extender el formato condicional a cualquier parte de la hoja de caacutelculo

Configurar casillas de verificacioacuten para formato condicional

Las casillas de verificacioacuten disponibles en la barra de herramientas Formulashyrios devuelven un valor VERDADERO o FALSO (activadadesactivada) a la celda a la que estaacuten vinculadas Combinando una casilla de verificacioacuten de dicha barra de herramientas con el formato condicional utilizando la opcioacuten de foacutermulas (veacutease figura 21) puede activar o desactivar el formato condicional a traveacutes de la casilla de verificacioacuten

D

72 Excel Los mejores trucos

MWWIWfflffl j x j Condicioacuten i

Foacutermula

Valor de la celda

_ j | -Hque desea usar ^BSTv-erdadera

Agre

Sin formato establecido

gar gtgt Eliminar | Aceptar

Uuml

Formato

I Cancelar

Figura 21 Cuadro de diaacutelogo de formato condicional con la opcioacuten de foacutermulas

Cuando se utiliza en combinacioacuten con una foacutermula (como por ejemplo S con la opcioacuten de foacutermulas) el formato condicional da formato

w k automaacuteticamente a una celda siempre que la foacutermulas devuelva VERDADERO Por ello cualquier foacutermula que utilice para este truco debe devolver VERDADERO o FALSO

Para entender de lo que estamos hablando pruebe este sencillo ejemplo que oculta los datos utilizando el formato condicional y una casilla de verificacioacuten Utilizaremos el rango $A$1 $A$10 que estaacute rellenado consecutivamente con los nuacutemeros del 1 al 10 Para insertar una casilla de verificacioacuten desde la barra de he r r amien ta s Formular ios seleccione la opcioacuten de m e n uacute VergtBarras de herramientasgtFormularios y luego haga clic en el icono de casilla de verificacioacuten A continuacioacuten haga clic cerca de la celda Cl situada en la hoja para insertar la casilla de verificacioacuten Haga clic con el botoacuten derecho del ratoacuten en la casilla de verificacioacuten y seleccione la opcioacuten Formato de control Luego vaya a la pestantildea Control y escriba Cl en el cuadro de texto Vincular con la celda tal y como se muestra en la figura 22 y finalmente haga clic en Aceptar

Cuando seleccione la casilla de verificacioacuten que estaacute sobre la celda Cl devolshyveraacute VERDADERO o FALSO a dicha celda Como no tenemos intereacutes en ver dicho valor en la celda cambie el color de la fuente a blanco Ahora seleccione las celdas $A$1$A$10 comenzando por A l Seleccione FormatogtFormato condicional y luego elija la opcioacuten Foacutermula en el primer cuadro de lista desplegable En el cuashydro de texto de la derecha escriba =$C$1 A continuacioacuten haga clic en el botoacuten Formato luego seleccione la pestantildea Fuente y cambie el color de fuente a blanco Finalmente haga clic en Aceptar y de nuevo en Aceptar

Seleccione la casilla de verificacioacuten para activarla y entonces el color de la fuente de las celdas en el rango $A$1 $A$10 cambiaraacute automaacuteticamente al color blanco Si desactiva la casilla de verificacioacuten entonces volveraacute a su color normal

Activar o desactivar el resaltado de los nuacutemeros

La posibilidad de resaltar automaacuteticamente los nuacutemeros que cumplan cierto criterio puede resultar m u y uacutetil para encontrar los datos que necesite en una

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 73

hoja de caacutelculo Para hacer esto comenzaremos seleccionando la celda El (o cualshyquier otra celda que prefiera) y llaacutemela CheckBoxLink utilizando el cuadro de nombre situado en la parte superior a la izquierda de la barra de foacutermulas (veacutease figura 23)

II bullIllll

Colores y liacuteneas j Tamantildeo

Valor

(bull Sin activar ~~ Activado

pound Mixto

Vincular con la celda jCl

i Sombreado 3D

Proteger | Propiedades iexcl Web

M

Aceptar J

xjl

Control

Cancelar

Figura 22 Cuadro de diaacutelogo de formato del control

1 bull (iliacuteffililffflB^^ bull lU archivo Edicioacuten Ver Insertar Formato Herramientas Datos

J d i j U iacute JL -J j j - Anal T 10 - H K S I 1 I ^j -3

CheckBoxLink bull amp

| A B C D E

H I 1 2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

|n A bull H H o j a l Hoja2 Hoja3

Listo

Ventana

a iquest z -4 000 euro -ooacute

I F

i

M

- - fl x

l U U ~Jgt 100 - laquobull i

i =F sF bull - laquo1 T -^

G H 1 T j

mdash 1

^ | i bull m

NUM

Figura 23 Celda El con el nombre CheckBoxLink

74 Excel Los mejores trucos

Antildeada una casilla de verificacioacuten desde la barra de herramientas Formularios a una hoja en blanco llame a esta hoja Casillasdeverificacioacuten y coloquacuteese en la celda A l Vincule esta casilla de verificacioacuten a la celda CheckBoxLink haciendo clic con el botoacuten derecho en la casilla y seleccionando la opcioacuten Formato de conshytrol y luego yendo a la pestantildea Control Escriba CheckBoxLink en el cuadro de texto correspondiente y haga clic en Aceptar Haga clic con el botoacuten derecho nuevamente sobre la casilla de verificacioacuten seleccione Modificar texto y entonces introduzca el texto Mostrarme En la columna A de otra hoja introduzca los nuacutemeros del 25 al 2500 en incrementos de 25 Deacutele el nombre Nuacutemeros a este rango y luego oculte la hoja mediante la opcioacuten FormatogtHojagtOcultar

Para introducir raacutepidamente estos nuacutemeros introduzca el nuacutemero 25 en la celda Al y 50 en la celda A2 Haga clic en el marcador de

s - propagacioacuten (el pequentildeo cuadro negro que aparece en la esquina inferior derecha de la celda A2) y sin soltar el botoacuten del ratoacuten arraacutestrelo hasta la fila 100

Seleccione la celda Bl de la hoja Casillasdeverificacioacuten y deacutele el nombre PrimerNum Seleccione la celda DI y deacutele el nombre SegundoNum En la celda Cl escriba la palabra Y Ahora seleccione la celda Bl (PrimerNum) y mantenienshydo pulsada la tecla Control seleccione la celda DI (SegundoNum) Entonces vaya a DatosgtValidacioacutengtConfiguracioacuten y en el cuadro de lista desplegable Permitir seshyleccione la opcioacuten Lista y en el cuadro de texto Origen escriba =Nuacutemeros Aseshyguacuterese de que la casilla de verificacioacuten Celda con lista desplegable esteacute activada y entonces haga clic en Aceptar Esto crearaacute una lista desplegable de nuacutemeros del 25 al 2500 en ambas celdas

En la celda Al escriba el encabezado Cantidad Inmediatamente debajo reshyllene el rango A2A20 con cualesquiera nuacutemeros entre 25 y 2500 Seleccione las celdas A2A20 (asegurando se debe comenzar desde la celda A2 para que sea la seleccioacuten activa) y seleccione FormatogtFormato condicional En el cuadro de diaacuteshylogo que aparece mostrado en la figura 24 seleccione la opcioacuten Foacutermula y en el cuadro de texto de la derecha escriba la siguiente foacutermula

=Y($A2gt=PrimerNum$A2lt=SegundoNumCheckBoxLink)

Haga clic en el botoacuten Formato y configure el formato que desee o combinashycioacuten de formatos Luego haga clic en Aceptar y de nuevo en Aceptar para cerrar el siguiente cuadro de diaacutelogo Cambie tambieacuten el color de la fuente de la celda El a blanco para que no aparezcan los valores VERDADERO o FALSO Desde la celda Bl seleccione cualquier nuacutemero y luego cualquier otro que sea mayor que el primero desde la celda DI

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 75

IJ1WB Il l l i l l MI 1 1 1 1 Mi Condicioacuten I

MBEZm^

j Foacutermula bull | =Y(|A2 gt=PrimerNum $A2 lt=SegundoNum CheckBoxLink

Vista previa del formato que desea usar cuando la condicioacuten sea verdadera AaBbCcYyZz

Agrega rraquo J Eliminar | Aceptar

x|

) 3 1 tEff^^degJ

| Cancelar j gt

Figura 24 Cuadro de diaacutelogo de formato condicional

Active la casilla de verificacioacuten con lo que los formatos condicionales que acabamos de configurar se aplicaraacuten automaacuteticamente a los nuacutemeros que esteacuten dentro del rango que acabamos de especificar Desactive la casilla de verificacioacuten y el formato volveraacute a ser el predeterminado Como puede ver utilizando una casilla de verificacioacuten en combinacioacuten con el formato condicional puede hacer cosas que nadie imaginariacutea todo ello sin utilizar coacutedigo VBA

Identificar foacutermulas con el formato condicional Excel no dispone de una funcioacuten incorporada para identificar foacutermulas Una vez que una foacutermula es introducida en una celda soacutelo puede descubrir siacute una celda contiene un valor estaacutetico o un valor calculado a partir de una foacutermula haciendo clic sobre ella y mirando la barra de foacutermulas Este truco soluciona esta carencia

El coacutedigo VBA para esta funcioacuten personalizada (tambieacuten llamada funcioacuten deshyfinida por el usuario) le permite identificar las celdas que contienen foacutermulas sin necesidad de tener que hacer clic en 10000 celdas y examinarlas una a una Para crear un cazador inteligente de foacutermulas comience seleccionando la opcioacuten HerramientasgtMacrogtEditor de Visual Basic (Al t Opcioacuten-Fl l ) y luego seleccione lnsertargtMoacutedulo Entonces introduzca la siguiente funcioacuten

Function IsFormula(Check_Cell As Range) IsFormula = Check_CellHasFormula

End Function

Ahora cierre la ventana (pulse AltComando-Q) A partir de entonces la funshycioacuten estaraacute disponible para cualquier celda de cualquier hoja de este libro introshyduciendo por ejemplo la foacutermula = I sFo rmula ($A$1) Tambieacuten puede acceder a la funcioacuten a traveacutes de lnsertargtFuncioacuten seleccionando la opcioacuten Definidas por el usuario en la lista de categoriacuteas y luego seleccionando IsFormula

La foacutermula devuelve VERDADERO si la celda a la que se hace referencia conshytiene una foacutermula y FALSO en caso contrario Puede utilizar este resultado booleano en combinacioacuten con el formato condicional de forma que todas las foacutershymulas se resalten automaacuteticamente con el formato que elija Una de las mejores

76 Excel Los mejores trucos

cosas a la hora de utilizar este meacutetodo es que el sistema de identificacioacuten de foacutershymulas para la hoja de caacutelculo seraacute dinaacutemico Esto significa que si antildeade o quita una foacutermula el formato cambiaraacute de acuerdo con ello A continuacioacuten explicashyremos coacutemo hacer esto Seleccione un rango de celdas de la hoja de caacutelculo (por ejemplo A1J500) e incluya algunas celdas extra en caso de que vaya a antildeadir maacutes foacutermulas posteriormente

Evite la tentacioacuten de seleccionar toda la hoja ya que esto antildeadiraacute una sobrecarga de trabajo innecesaria

Teniendo seleccionadas estas celdas y siendo la celda Al la activa seleccione FormatogtFormato condicional Seleccione la opcioacuten Formato en el cuadro de lista desplegable e introduzca =IsFormula(Al) en el cuadro de texto situado a la dereshycha Haga clic el botoacuten Formato y elija cualquier formato que desee para idenshytificar las celdas con foacutermulas Luego haga clic en Aceptar dos veces para cerrar ambos cuadros de diaacutelogo

A veces cuando se introducen foacutermulas en el formato condicional Excel intentaraacute colocar comillas alrededor de las foacutermulas despueacutes de hacer clic en Aceptar Esto ocurre porque Excel reconoce que ha introducido un texto no una foacutermula Si ocurre esto vuelva al cuadro de diaacutelogo de formato condicional elimine las comillas y pulse Aceptar

Llegados a este punto la foacutermula especificada deberiacutea aplicarse a todas las celdas de la hoja que contengan una foacutermula Si elimina o sobrescribe una celda que contenga una foacutermula el formato condicional desapareceraacute Igualmente si introduce una nueva foacutermula en cualquiera de las celdas dentro del rango queshydaraacute resaltada Este sencillo truco que utiliza el formato condicional hace mucho maacutes sencillo manejar hojas de caacutelculo cuando es necesario mucho tiempo para poder mantenerla o modificarla

BM Contar o sumar celdas que se ajustan al criterio W del formato condicional ^H Despueacutes de ver los resultados del formato condicional quizaacute desee crear

foacutermulas que hagan referencia solamente a los datos que han sido formateados condicionalmente Este no entiende bien este tipo de caacutelculos pero puede aprender a hacerlo

Normalmente los usuarios de Excel se preguntan iquestCoacutemo puedo hacer caacutelcushylos solamente en las celdas que tienen un color de fondo en especial Esta cues-

N

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 77_

tioacuten surge a menudo porque Excel no dispone de una funcioacuten estaacutendar para lleshyvar a cabo esta tarea Sin embargo se puede hacer utilizando una funcioacuten persoshynalizada como ya veremos posteriormente en otro truco

El uacutenico problema que surge al utilizar una funcioacuten personalizada es que no utiliza cualquier formato que se haya aplicado mediante el formato condicional Sin embargo pensando un poco maacutes podraacute obtener los mismos resultados sin tener que utilizar una funcioacuten personalizada

Digamos que tiene u n a larga lista de nuacutemeros en el r ango de celdas $A$2$A$100 Ha aplicado un formato condicional a estas celdas de forma que cualquier nuacutemero que esteacute entre 10 y 20 esteacute marcado Entonces tiene que antildeashydir el valor de las celdas que se ajusten al criterio que acaba de establecer y luego realizar la suma de dichos valores utilizando el formato condicional No tiene que preocuparse por el formato condicional que ha aplicado a esas celdas pero necesita conocer el criterio que fue utilizado para marcarlas (en este caso aqueshyllas celdas cuyos valores estaacuten entre 10 y 20)

Puede utilizar la funcioacuten SUMAR SI para antildeadir un rango de celdas que se ajusten a un cierto criterio pero soacutelo a uno Si necesita utilizar maacutes de un factor en el criterio puede utilizar una foacutermula matricial

Puede utilizar una foacutermula matricial de esta forma

=SUMA(SI($A$2$A$10 0gt10SI($A$2$A$10 0lt20$A$2$A$10 0)))

Cuando introduzca foacutermulas matriciales no pulse la tecla Intro en vez de ello pulse Control-Mayuacutes-Intro De esta forma Excel colocaraacute llaves alrededor de la foacutermula de esta forma

=SUMA(SI($A$2$A$100gt10SI($A$2$A$100lt2 0$A$2$A$100)))

Si introduce las llaves manualmente no funcionaraacute Debe permitir que Excel lo haga automaacuteticamente Tambieacuten tenga en cuenta que utilizar foacutermulas matriciales puede ralentizar los caacutelculos de Excel si hay muchas referencias a rangos de gran tamantildeo

Una alternativa

Como alternativa puede utilizar una columna de maacutes (por ejemplo la coshylumna B) para hace referencia a las celdas de la columna A Las referencias devolshyveraacuten resultados en la columna B soacutelo si el valor cumple las condiciones que haya establecido por ejemplogt10 y lt20 Para hacer esto siga estos pasos

Seleccione la celda B l e introduzca la siguiente foacutermula

= S I ( Y ( A 2 gt 1 0 A 2 lt 2 0 ) A 2 )

78 Excel Los mejores trucos

Propague esta foacutermula a cada celda llegando a la B100 Despueacutes debe rellenar los valores deberiacutea tener los valores en la columna B que esteacuten entre 10 y 20

Para copiar raacutepidamente una foacutermula hacia abajo hasta la uacuteltima Ci fila utilizada de la columna adyacente introduzca la foacutermula en la

primera celda (B2) vuelva a seleccionar esa celda y haga doble clic en el pequentildeo recuadro negro de propagacioacuten situado en la esquina inferior derecha de la celda Tambieacuten puede hacer esto seleccionando la opcioacuten EdicioacutengtRellenargtHacia abajo

Ahora ya puede seleccionar cualquier celda en la que desea que aparezca el resultado de la suma utilizando la funcioacuten estaacutendar SUMA (si lo desea puede ocultar la columna B de forma que no vea una columna extra llena de los valoshyres devueltos por la foacutermula)

Ciertamente los meacutetodos anteriores hacen bien su trabajo pero Excel proporshyciona otra funcioacuten que le permite especificar dos o maacutes criterios Esta funcioacuten es parte de las funciones de base de datos de Excel y se llama BDSUMA Para probarshyla utilice el mismo conjunto de nuacutemeros situados en el rango A2A100 Selecshycione las celdas C1D2 y deacutele el nombre CriterioSuma a este rango Luego seleccione la celda Cl e introduzca =$A$1 una referencia a la primera celda de la hoja Copie esto a la celda DI con lo que tendriacutea un duplicado del encabezado de la columna A Estas copias las utilizaremos como encabezados para el criterio de BDSUMA (C1D2) que llamamos CriterioSuma

En la celda C2 introduzcagt 10 En la celda D2 introduzca lt20 En la celda de la que desea mostrar el resultado introduzca el siguiente coacutedigo

=BDSUMA($A$1$A$10 0$A$1CriterioSuma)

BDSUMA es el meacutetodo preferido y maacutes eficaz para trabajar con celdas que deshyben cumplir un cierto criterio A diferencia de las matrices las funciones de base de datos incorporadas estaacuten disentildeadas especiacuteficamente para este propoacutesito e inshycluso cuando hacen referencia a un rango m u y amplio y se utilizan con grandes nuacutemeros los efectos negativos que provocan en el rendimiento son mucho meshynores que los provocados por las foacutermulas matriciales

Resaltar Filas o columnas impares Seguramente habraacute visto hojas de caacutelculo de Excel que utilizan colores alternos para las filas Por ejemplo las filas impares podriacutean ser blancas y las pares grises El formato condicional hace que esto sea muy sencillo

Alternar colores o sombreados da un aspecto profesional y puede hacer maacutes faacutecil la lectura de los datos Puede aplicar este formato manualmente pero como

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 79

ya se imaginaraacute resulta una tarea m u y pesada si tiene que actualizar dicho formato cada vez que antildeade o quita datos de la tabla ademaacutes de una infinita paciencia Por fortuna el formato condicional puede reducir la paciencia necesashyria y mejorar en gran medida su imagen profesional

Supondremos que los datos abarcan el rango Al H 100 Seleccione este rango de celdas comenzando por la celda A l de forma que nos aseguramos que sea la celda activa Entonces vaya a FormatogtFormato condicional Seleccione la opcioacuten Foacutermula del primer cuadro de lista desplegable y en el cuadro de texto situado a su derecha introduzca la siguiente foacutermula tal y como se muestra en la figura 25

=RESIDUO(FILA()2)

mmmmmmwm^^mKm Condicioacuten i

| Foacutermula j r ] |=RESIDUO(FILA()j2)|

Vista previa del formato que desea usar cuando la condicioacuten sea verdadera

Agregar gtgt

amp$$bullgtbullampgtbull

AaBbCcYyZz

Eliminar 1 Aceptar

2lt1|

1 Aacute bull

Formato j

1 Cancelar ]

Figura 25 Cuadro de diaacutelogo del formato condicional con la foacutermula RESIDUO para especificar un formato a cada fila par

Haga clic en el botoacuten Formato y elija el formato que desee aplicar a cada fila par haga clic en Aceptar y luego haga clic otra vez en Aceptar Entonces el formato que haya especificado deberiacutea aplicarse a cada fila par situada en el rango Al H100 Con esto ya puede reservarse parte de su paciencia para el resto del diacutea

Si desea utilizar este meacutetodo con las columnas en vez de con las filas utilice esta foacutermula

=RESIDUO(COLUMNA()2)

Aunque este meacutetodo aplica el formato especificado a cada fila o columna par de forma raacutepida y sencilla no es dinaacutemico Las filas que no contengan datos seguiraacuten teniendo el formato especificado Esto puede no resultar ideal y hacer que la lectura de la hoja de caacutelculo sea algo maacutes difiacutecil Hacer que el resaltado de filas o columnas sea dinaacutemico requiere de un truco un poco maacutes sofisticado

Nuevamente seleccione el rango A1H100 aseguraacutendose de que la celda Al sea la activa Entonces vaya a FormatogtFormato condicional y seleccione la opshycioacuten Foacutermula en el cuadro de lista desplegable Luego en el cuadro de texto de la derecha introduzca la siguiente foacutermula

=Y(RESIDUO(FILA()2)CONTARA($A1$H1))

80 Excel Los mejores trucos

^ Observe que no se hace referencia absoluta a las filas (utilizamos el ^laquo signo del doacutelar) pero siacute a las columnas w

Haga clic en el botoacuten Formato y seleccione el formato que desee haciendo clic en el botoacuten Aceptar dos veces para cerrar ambos cuadros de diaacutelogo Con esto cualquier fila que esteacute en el rango A1H100 y que no contengan datos no cambiaraacute su formato Si elimina datos de una fila en particular de la tabla t amshypoco tendraacute el formato condicional Si antildeade nuevos datos en cualquier lugar del rango Al H100 entonces se le aplicaraacute el formato condicional automaacuteticamente

Esto funciona asiacute porque cuando introdujimos la foacutermula para el formato condicional la foacutermula en siacute debe devolver un valor VERDADERO o FALSO En el lenguaje de las foacutermulas de Excel el valor 0 corresponde con el valor FALSO mientras que cualquier nuacutemero mayor que 0 corresponde con el valor VERDAshyDERO Cuando utilizamos la foacutermula =RESIDU0 (FILA () 2 ) devuelve un valor 0 (FALSO) o bien un nuacutemero mayor que 0 (VERDADERO)

La funcioacuten =FILA () es una funcioacuten volaacutetil que siempre devuelve el nuacutemero de fila que corresponde con la celda en la que reside Utilizamos la funcioacuten REshySIDUO para devolver el resto de dividir un nuacutemero por otro En nuestro caso estamos dividiendo el nuacutemero de fila por 2 por lo que todas las filas pares devolshyveraacuten un valor de 0 mientras que las impares devolveraacuten un valor mayor que 0

Cuando incluye las funciones FILA () y CONTARA dentro de la funcioacuten Y sigshynifica que deben devolver VERDADERO (o cualquier nuacutemero mayor que 0) las funciones RESIDUO y CONTARA para que la funcioacuten Y devuelva VERDADERO La funcioacuten CONTARA sirve para contar todas aquellas celdas que no esteacuten vaciacuteas

Crear efectos en 3D en tablas o celdas Cuando ve un efecto 3D en un programa como pueda ser Excel lo que estaacute viendo en realidad es una ilusioacuten creada por un formato en particular Es sencillo crear esta ilusioacuten aplicando un cierto formato a una celda o rango de celdas

Para comenzar con un ejemplo sencillo daremos un efecto 3D a una celda para que aparezca en relieve como si fuera un botoacuten En una hoja en blanco seleccione la celda D5 (seleccionamos esta celda para que no esteacute en uno de los bordes y no apreciemos bien el efecto) Vaya a FormatogtCeldasgtBordes En la lista de estilos elija la segunda liacutenea maacutes gruesa Aseguacuterese de tener seleccionado el color negro (o bien el automaacutetico en caso de no haber cambiado el valor predeshyterminado) Haga clic entonces en el borde derecho y luego en el borde inferior que aparece en la muestra de la parte de izquierda Seleccione ahora el color blanco en el cuadro de lista desplegable de colores Todaviacutea deberiacutea estar seleccio-

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 82

nado el segundo borde maacutes grueso por lo que esta vez haga clic en los otros dos bordes que quedan por seleccionar en la celda es decir el izquierdo y el superior Vaya a la pestantildea Tramas y seleccione el sombreado gris para la celda Haga clic en Aceptar y quite la seleccioacuten de la celda D5 Ahora deberiacutea ver coacutemo la celda D5 tiene un efecto relieve que le da un aspecto de botoacuten Todo ello lo hemos conseguido utilizando los bordes y el sombreado

Si por diversioacuten o por dar variedad desea dar a una celda la apariencia de estar presionada seleccione por ejemplo la celda E5 (porque es la que estaacute jun to a la D5 y hace que funcione este ejemplo) Vaya a FormatogtCeldasgtBordes selecshycione el segundo borde maacutes grueso para los estilos de liacutenea y aseguacuterese de que el color elegido es el negro

Aplique el formato a los bordes superior e izquierdo de la celda Seleccione el color blanco y aplique la liacutenea blanca a los bordes derecho e inferior de la celda Haga clic entonces en la pestantildea Tramas y cambie el formato de la celda a gris Haga clic en Aceptar y podraacute ver coacutemo la celda aparece con el efecto de estar presionada Este efecto es maacutes impresionante si se contrasta con el efecto de la celda D5 que estaacute en relieve

Utilizar un efecto 3D en una tabla de datos

A continuacioacuten vamos a experimentar con esta herramienta para ver los efecshytos que podemos aplicar a las tablas o a las hojas de caacutelculo

Seleccione las celdas D5 y E5 y haga clic en el icono Copiar formato (con forma de brocha) situado en la barra de herramientas estaacutendar Haga clic en la celda F5 y sin soltar el botoacuten del ratoacuten arraacutestrelo hasta la celda J5 Ahora selecshycione las celdas D5 J5 y de nuevo haga clic en el icono Copiar formato de la barra de herramientas estaacutendar Haga clic en la celda D6 y sin soltar el botoacuten del ratoacuten arraacutestrelo hasta la celda J15 Esto deberiacutea provocar un efecto como el que apareshyce en la figura 26

Hemos utilizado un borde bastante grueso para asegurarnos de que el efecto puede verse claramente Sin embargo quizaacute desee matizarlo utilizando un estilo de liacutenea algo maacutes fino Tambieacuten podriacutea utilizar cualquiera de los otros estilos de liacutenea para producir un efecto auacuten mayor La mejor forma de encontrar una bueshyna combinacioacuten es utilizar el sistema de prueba y error en una hoja en blanco hasta dar con el efecto deseado La uacutenica limitacioacuten que tiene que es su imaginashycioacuten y quizaacute su gusto

Tenga siempre en mente que los efectos 3D puede mejorar la lectura de una hoja de caacutelculo y proporcionar un aspecto maacutes profesional pero cuando se utiliza en exceso puede tener el efecto contrario Recuerde utilice todo como delacioacuten

Excel Los mejores trucos

i C D

MM^IM

E F G H

SlllliMntildeSiacute lEacutel i l l l l^

Silii i i l iSiSII^

^SSimWMampMB

i J p-^7~^

Figura 26 Efecto 3D aplicado a un rango de celdas

Si desea dar un paso maacutes allaacute a la hora de aplicar efectos 3D de forma au to shymaacutetica y dinaacutemica puede combinar este truco con el uso del formato condicioshynal de forma que la aplicacioacuten de estilos sea automaacutetica

Activar y desactivar el formato condicional y la validacioacuten de datos con una casilla de verificacioacuten La validacioacuten de datos puede resultar uacutetil para evitar que un usuario introduzca accidentalmente datos incorrectos Sin embargo algunas veces desearaacute hacer maacutes sencilla la introduccioacuten de datos que de otra forma seriacutea imposible bien porque fuese marcada por el formato condicional o bien completamente bloqueada por una validacioacuten de datos

Normalmente permitiraacute que los usuarios introduzcan datos que de otra forshyma no podriacutean desactivando el formato condicional o la validacioacuten de datos para dichos celdas De todas formas existe una forma sencilla para hacer esto puede combinar una simple casilla de verificacioacuten con la validacioacuten de datos

Para este ejemplo aplicaremos un formato condicional a un rango de celdas de forma que cualquier dato que aparezca maacutes de una vez quedaraacute resaltado para su faacutecil identificacioacuten Supondremos que la tabla de datos se extiende por el rango $A$1 $H$100 Para aplicar un formato condicional a este rango de forma que se puedan identificar los duplicados hacen falta unos cuantos pasos

Primeramente seleccione la celda Kl y deacutele el nombre CheckBoxLink escrishybiendo dicho nombre en el cuadro de nombres de la parte superior izquierda de la pantalla Si la barra de herramientas Formularios no estaacute visible mueacutestrela Enshytonces haga clic en el icono correspondiente a la casilla de verificacioacuten Luego

TRUCO

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 83

haga clic en cualquier lugar de la hoja de caacutelculo que esteacute fuera del rango anteshyriormente citado para antildeadir la casilla de verificacioacuten

Haga clic con el botoacuten derecho en la casilla de verificacioacuten y seleccione la opshycioacuten Formato de control Luego vaya a la pestantildea Control y escriba en el cuadro de texto CheckBoxLink y haga clic en Aceptar Seleccione la celda A l y sin soltar el botoacuten del ratoacuten seleccione un rango hasta la celda H100 Es importante que la celda Al sea la activa en la seleccioacuten Vaya a FormatogtFormato condicioshynal seleccione la opcioacuten Foacutermula en el cuadro de lista desplegable e introduzca la siguiente foacutermula en el cuadro de texto situado a su derecha (tal y como se muestra en la figura 27)

=Y(CONTARSI($A$1$H$10 0 A1)gt1 CheckboxLink)

Condicioacuten i

| Foacutermula j | | = V(CONT AR 5I($ A$ 1 $H$ 100 A1) gt 1 CheckboxLink)

Vista previa del formato que desea usar cuando la condicioacuten sea verdadera

Agre

aacuteEacuteUumlkCampamp y

^gar raquo j Eliminar j Aceptar

2Siexcl

1iexcl |[Formato jj j

Cancelar

Figura 27 Cuadro de diaacutelogo de formato condicional con la foacutermula que da formato resaltando los valores duplicados

Haga clic en el botoacuten Formato y en la pestantildea Tramas seleccione el color que desea aplicar a los datos duplicados Haga clic en el botoacuten Aceptar de ambos cuadros de diaacutelogo para salir

Dado que la casilla de verificacioacuten que acabamos de antildeadir estaacute activada el viacutenculo de celda en Kl (CheckBoxLink) leeraacute el valor VERDADERO por lo que todos los valores duplicados dentro del rango $A$1$A$100 apareceraacuten resaltashydos En el momento en el que desactive la casilla de verificacioacuten el viacutenculo de su celda (CheckBoxLink) devolveraacute el valor FALSO por lo que los valores duplicados no se resaltaraacuten

Esta casilla de verificacioacuten le proporciona un interruptor con el cual poder activar o desactivar el formato condicional de una hoja sin tener que utilizar el cuadro de diaacutelogo Formato condicional Puede utilizar el mismo principio con la validacioacuten de datos utilizando la opcioacuten de foacutermula

Todo esto funciona porque hemos utilizado la funcioacuten Y Esta funcioacuten devolshyveraacute el valor VERDADERO si ocurren estas dos siguientes cosas

CONTAR SI ($ A$ 1$H$100A1)gt1 debe devolver VERDADERO y el viacutenculo de celda para la casilla de verificacioacuten (CheckBoxLink) tambieacuten debe devolver VERshyDADERO En otras palabras para que la funcioacuten Y devuelva VERDADERO amshybas condiciones tambieacuten deben ser verdaderas

84 Excel Los mejores trucos

TRUCO Admitir muacuteltiples listas en un cuadro de lista desplegable Cuando trabajamos con muacuteltiples listas podemos forzar que cambie una lista utilizando una combinacioacuten de botones de opcioacuten y un cuadro de lista desplegable

Externo ofrece numerosas alternativas a los usuarios para seleccionar eleshymentos de una lista como pueda ser nombres productos diacuteas de la semana o sea lo que sea que componga la lista Sin embargo para acceder a maacutes de una lista de elementos simultaacuteneamente generalmente es necesario utilizar tres controles separados como por ejemplo tres cuadros de lista desplegable de la barra de herramientas Formularios

En vez de esto podemos utilizar un cuadro de lista desplegable en combinashycioacuten con botones de opcioacuten (tambieacuten disponibles en la barra de herramientas Formularios) para hacer que una lista cambie automaacuteticamente de acuerdo al botoacuten de opcioacuten que se haya elegido Para ver coacutemo funciona esto introduzca los nuacutemeros del 1 al 7 en el rango de celdas Al A7 de una nueva hoja En las celdas Bl B7 introduzca los diacuteas de la semana empezando por el lunes y terminando el domingo En las celdas C1C7 introduzca los meses desde enero hasta julio

Las caracteriacutesticas de propagacioacuten automaacutetica de Excel pueden hacer S^ este trabajo de forma mucho maacutes raacutepida y sencilla Simplemente

w^ introduzca un 1 en la celda Al seleccioacutenela y mientras mantiene pulsada la tecla Control haga clic en el cuadro de propagacioacuten situado la esquina inferior derecha de la celda Manteniendo pulsado el botoacuten del ratoacuten y la tecla Control arraacutestrelo hasta la celda A7 Es el rellenaraacute automaacuteticamente las celdas con los nuacutemeros del 1 al 7 Igualmente puede introducir lunes en la celda Bl y haga doble clic en el cuadro de propagacioacuten de dicha celda Finalmente introduzca enero en la celda Cl y haga lo mismo que con los diacuteas de la semana Veraacute como Excel rellenaraacute los diacuteas los meses de forma automaacutetica

Seleccione la opcioacuten VergtBarras de herramientasgtFormularios y haga doble clic en el icono Botoacuten de opcioacuten de dicha barra de herramientas Luego haga clic en tres lugares cualesquiera de la hoja de caacutelculo para colocar tres botones de opshycioacuten

Igualmente haga clic en el icono de Cuadro combinado que haga clic en cualshyquier lugar de la hoja de caacutelculo para insertar un cuadro de lista desplegable en ella Utilice los marcadores del cuadro de lista desplegable para cambiar su tamashyntildeo y su posicioacuten asiacute como el de los botones de opcioacuten para que esteacuten situados justo debajo de eacutel

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 85

Haga clic con el botoacuten derecho en el primer botoacuten de opcioacuten seleccione la opcioacuten Modificar texto y entonces reemplace el texto predeterminado por el texto Nuacutemeros Haga lo mismo con el segundo botoacuten de opcioacuten cambiando el texto por Diacuteas de la semana y con el tercero cambiando el texto por Meses Puede ver el resultado de esto en la figura 28

1

2

3

4

5

6

7

3

9

10 l

11 12 13 14 15

16

17

13

19 20

H i bull bull

B

1 Lunes

2 Martes

3 Mieacutercoles

4 Jueves

5 Viernes

6 Saacutebado

7 Domingo

C

Enero

Febrero

Marzo

Abril

Mayo

Junio

Julio

Esta celda contendraacute los nuacutemeros 1 2 oacute 3 dependiendo del botoacuten

[de opcioacuten seleccionado

f-

$C$1$C$

Esta celda reflejaraacute el elemento elegido en el cuadro de lista I desplegable y se puede usar-corno el argumento necesario para la foacutermula de buacutesqueda

Mayo

O Nuacutemeros

O Diacuteas de la semana

$bull Meses

I Esta direccioacuten cambiaraacute con cada seleccioacuten realizada en los botones de opcioacuten provocando que la lista del cuadro desplegable cambie

Hojal Hoja2 Hoja3 iexclD Figura 28 Cuadro de lista desplegable con muacuteltiples listas controlado por

de opcioacuten botones

Ahora mientras mantiene pulsada la tecla Control haga clic en cada uno de los botones de opcioacuten de forma que todos queden seleccionados y entonces haga clic con el botoacuten derecho del ratoacuten sobre uno de ellos y seleccione la opcioacuten Forshymato de control En la pestantildea Control especifique $F$1 como celda vinculada (aseguacuterese de utilizar esta referencia absoluta con los siacutembolos del doacutelar)

En la celda E6 introduzca la siguiente foacutermula

=DIRECCION(l$F$l) amp amp DIRECCIOacuteN(7$F$1)

Seleccione la opcioacuten lnsertargtNombregtDefinir En el cuadro de texto de la parte superior escriba MiRango y en el cuadro de texto Se refiere a escriacutebalo siguiente

=INDIRECTO($E$6)

Haga clic en Agregar y luego en Aceptar Haga clic con el botoacuten derecho del ratoacuten en el cuadro de diaacutelogo que antildeadimos anteriormente y seleccione la opcioacuten Formato de control En la pestantildea Control escriba MiRango en el cuadro de texto Rango de entrada y la celda $G$1 como viacutenculo Pulse entonces el botoacuten Acepshyta r Ahora deberiacutea ser capaz de seleccionar uno de los botones de opcioacuten con lo que la lista contenida en el cuadro de lista desplegable deberiacutea reflejar

86 Excel Los mejores trucos

automaacuteticamente el botoacuten de opcioacuten elegido Cuando configure todo esto para su propia hoja de caacutelculo deberiacutea utilizar algunas celdas que estuviesen fuera de la pantalla como origen de las listas y viacutenculos del cuadro de lista desplegable Incluso desearaacute ocultar estas celdas a los usuarios de forma que los viacutenculos esteacuten donde deberiacutean Tambieacuten necesitaraacute modificar las dos funciones DIRECshyCIOacuteN para que reflejen el rango de celdas que esteacute utilizando En las funciones que hemos utilizado en este ejemplo el 1 representa la primera fila de la lista mientras que el 7 representa el nuacutemero de la uacuteltima fila

Crear listas de validacioacuten que cambien en base a la seleccioacuten realizada en otra lista Las necesidades en la validacioacuten pueden variar dependiendo del contexto en el que sean utilizadas De todas formas puede crear una hoja de caacutelculo en la que una lista de validacioacuten cambie dependiendo de lo que se seleccione en otra

Para hacer que funcione este truco lo primero que tiene que hacer es rellenar la hoja de caacutelculo con algunos datos En una hoja en blanco llamada Listas y con la celda Al seleccionada escriba el siguiente encabezado Objetos En la celda Bl escriba el encabezado Lista correspondiente En las celdas A2A5 repishyta la palabra Cubo

En las celdas A6A9 repita la palabra Sofaacute En las celdas A l 0 A l 3 repita la palabra Ducha En las celdas A1417 repita la palabra Coche Luego comenshyzando por la celda B2 y terminando por la celda B17 introduzca las siguientes palabras (que se corresponden con la lista de objetos) Plomo Acero Abrishydor Tapa Cama Asiento Saloacuten Colchoacuten Lluvia Caliente Friacuteo Temshyplado Viaje Vacaciones Sombrero y Bota

En la celda Cl introduzca el encabezado Lista de validacioacuten A continuacioacuten para crear una lista de entradas uacutenicas introduzca la palabra Cubo en la celda C2 la palabra Sofaacute en la celda C3 la palabra Ducha en la celda C4 y la palabra Coche en la celda C5

Tambieacuten puede utilizar el filtro avanzado para crear una lista de H^ elementos uacutenicos Seleccione las celdas Al A17 seleccione DatosgtFiltrogt

Filtro avanzado y entonces active la casilla de verificacioacuten Soacutelo registros uacutenicos y seleccione el botoacuten de opcioacuten Filtrar la listas y moverla a otro lugar Haga clic en Aceptar y entonces seleccione las celdas A2A14 (que incluiraacuten las celdas ocultas) Coacutepielas y peguacuteelas a la celda Al8 Seleccione entonces la opcioacuten DatosgtFiltrogtMostrar todos seleccione la lista de objetos uacutenicos y coacutepielas y peguacuteelas en la celda A2 Con esto ya tendraacute la lista

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 87

Seleccione la opcioacuten lnsertargtNombregtDefinir y en el cuadro de texto Nombres en el libro escriba la palabra Objetos

En el cuadro de texto Se refiere a escriacutebalo siguiente foacutermula y luego haga clic en Agregar

=DESREF($A$200CONTARA($A$1$A$2 0) 1)

Ahora escriba en el cuadro de texto Nombres en el libro el nombre ListaVal y en el cuadro de texto Se refiere a introduzca $C$2$C$5 Haga clic en Agregar Ahora inserte otra hoja llaacutemela Hojal y coloque todos estos datos en ella Teniendo activa auacuten la Hojal seleccione la opcioacuten de menuacute lnsertargtNombregt Definir

En el cuadro de tex to de la pa r t e super ior a i n t roduzca la pa l ab ra ListaCorrespondiente y en el cuadro de texto de la parte inferior introduzca esta foacutermula y haga clic en Agregar

= DESREF(INDIRECTO(DIRECCIOacuteN(COINCIDIR(CeldaVallObj ectos0)+12

Listas))00CONTARSI(ObjectosCeldaVall)1)

En el cuadro de texto Nombres en el libro escriba la palabra CeldaVall y en el cuadro de texto Se refiere a introduzca $D$6 y haga clic en Agregar De nuevo e introduzca en el primer cuadro de texto la palabra CeldaVal2 y $E$6 en el seshygundo y luego haga clic en Agregar

Ahora haga clic en Aceptar para volver a la Hojal y entonces seleccione la celda $D$6

Eacuteste es un proceso largo pero ya estamos cerca del finalVaya a Datosgt ValidacioacutengtConfiguracioacuten Seleccione la opcioacuten Lista del cuadro de lista desplega-ble y en el cuadro de texto Origen escriba = ListaVal Aseguacuterese de que estaacute activada la casilla de verificacioacuten Celda con lista desplegable y haga clic en Acepshytar

Seleccione ahora la celda E6 y de nuevo vaya a DatosgtValidacioacutengtConfiguracioacuten Seleccione la opcioacuten Lista en el cuadro de lista desplegable y en el cuadro de texto Origen escriba ListaCorrespondiente Aseguacuterese tambieacuten de que la casilla de veshyrificacioacuten Celda con lista desplegable estaacute activada y haga clic en Aceptar Selecshycione uno de los objetos de la lista de validacioacuten que aparece en la celda D6 y la celda de validacioacuten en la celda E6 cambiaraacute automaacuteticamente para reflejar el obshyjeto que acaba de seleccionar

Ahora ya tiene una lista de validacioacuten m u y uacutetil como la que se muestra en la figura 29 cuyos contenidos cambiaraacute automaacuteticamente basaacutendose en el eleshymento elegido en la otra lista

En cualquier celda o rango de celdas puede utilizar una lista que contenga hasta cinco listas separadas

88 Excel Los mejores trucos

iacute iacute 2 i

3 | 4 i 15 1 6

7

8 9 i 10]

H lt bull

Listo

_ A _

bull l Hoja

B

Seleccione un objeto

Sofaacute

XHoja2Hojas

[ bull v ^ ^ g ^ i-=---|

La tote eofecWM colaquo la Mi efe tiacutecfto objeto que se encuentra ei ta hoiexclja Listas

I H

~ bull uumlJ

D

LU

J NUM

F p=f

bull bull bull |

bullir

TRUCO

Figura 29 Dos listas de validacioacuten que se corresponden

Forzar la validacioacuten de datos para hacer referencia a una lista en otra hoja Una de las opciones disponibles en la funcioacuten de validacioacuten de datos es la opcioacuten Lista que proporciona un cuadro de lista desplegable con elementos especiacuteficos que el usuario puede elegir Un problema que surge con la validacioacuten de datos es que en el momento en el que intenta hacer referencia a una lista que reside en otra hoja veraacute que es imposible Por fortuna seraacute posible mediante este truco

Puede forzar a que la validacioacuten de datos haga referencia a una lista que estaacute situada en otra hoja existiendo para ello dos posibles aproximaciones rangos con nombre y la funcioacuten INDIRECTO

Meacutetodo 1 Rangos con nombre

Quizaacute la forma maacutes sencilla y raacutepida para realizar esta tarea es dar nombre al rango en el que reside la lista Para los propoacutesitos de este ejercicio supondremos que ha llamado ha dicho rango MiRango Seleccione la celda en la que desea que aparezca el cuadro de lista desplegable y luego vaya a DatosgtValidacioacuten Seshyleccione la opcioacuten Lista en el cuadro de lista desplegable y en el cuadro de texto Origen escriba =MiRango Haga clic en Aceptar Ahora la lista (que se encuenshytra en otra hoja) puede ser utilizada por la lista de validacioacuten

Meacutetodo 2 La funcioacuten INDIRECTO

La funcioacuten INDIRECTO le permite hacer una referencia a una celda que conshytiene un texto que a su vez representa la direccioacuten de otra celda Puede utilizar la celda que contiene la funcioacuten INDIRECTO como referencia a una celda y puede

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 89

utilizar esta caracteriacutestica para hacer referencia a la hoja en la que reside la lista Supongamos que la lista estaacute situada en la Hojal en el rango $A$1 $A$10 Haga clic en cualquier celda de otra hoja en la que desee tener esta lista de validacioacuten Entonces seleccione DatosgtValidacioacuten y seleccione la opcioacuten Lista del cuadro de lista desplegable

En el cuadro de texto Origen escriba la siguiente funcioacuten

= I N D I R E C T O ( H o j a l $ A $ 1 $ A $ 1 0 )

Aseguacuterese de que la casilla de verificacioacuten Celda con lista desplegable esteacute activada y entonces haga clic en Aceptar Ahora la lista que reside en Hojal deberiacutea estar en la lista desplegable de validacioacuten

Si el nombre de la hoja en la que reside la lista contiene espacios en blanco utilice la funcioacuten INDIRECTO de la siguiente forma

=INDIRECTO(Hoja 1$A$1$A$10)

Aquiacute hemos utilizado un apostrofe justo despueacutes de las dobles comillas y jus shyto antes del signo de exclamacioacuten Los apostrofes sirven para acotar los liacutemites del nombre de una hoja de Excel

Siempre es una buena idea utilizar el apostrofe independientemente de que la hoja tenga o no espacios en blanco en su nombre Siempre podraacute hacer referencia a hojas que no contengan espacios por lo que resulta muy uacutetil para evitar problemas

Ventajas y desventajas de cada meacutetodo

Existen ventajas y desventajas a la hora de utilizar nombres de rango y la funcioacuten INDIRECTO para forzar la validacioacuten de datos para que haga referencia a una lista situada en otra hoja

La ventaja de utilizar nombres de rango en este escenario es que cualquier cambio que realice en el nombre de la hoja no tendraacute efecto en la lista de validashycioacuten Esto siacute supone una desventaja en el caso de la funcioacuten INDIRECTO ya que cualquier cambio en el nombre de la hoja no se actualiza automaacuteticamente denshytro de dicha funcioacuten por lo que tendraacute que cambiarlo de forma manual

La ventaja de utilizar la funcioacuten INDIRECTO es que si la primera celda o fila o la uacuteltima celda o fila es eliminada del rango con nombre dicho rango devolveraacute un error iexclREF Esto supone una desventaja en caso de utilizar rangos con nomshybre si elimina cualquier celda o fila dentro del rango con nombre esos cambios no afectaraacuten a la lista de validacioacuten

Excel Los mejores trucos

Utilizar Reemplazar para eliminar caracteres no deseados Cuando importa datos externos o los copia desde otras ubicaciones dentro de Excel pueden aparecer caracteres no deseados en la hoja de caacutelculo Mediante este truco puede evitar el inconveniente de tener que eliminar a mano dichos caracteres

La funcioacuten Reemplazar de Excel puede ayudarle a eliminar caracteres no deshyseados de una hoja de caacutelculo pero requiere de unos cuantos pasos extra Por ejemplo puede reemplazar las celdas que contengan los caracteres no deseados con nada (es decir realmente eliminaacutendolos) Para hacer esto necesita saber los coacutedigos de los caracteres que desea eliminar Todos los caracteres tienen un coacutedishygo y Excel le informaraacute cuaacutel es si utiliza la funcioacuten COacuteDIGO sobre ellos Esta funcioacuten devuelve un coacutedigo numeacuterico para el primer caraacutecter de una cadena de texto Dicho coacutedigo corresponde con el conjunto de caracteres que esteacute utilizando el ordenador Para que esto funcione seleccione una de las celdas que contengan un caraacutecter no deseados En la barra de foacutermulas seleccione el caraacutecter en cuesshytioacuten y coacutepielo en el portapapeles Luego seleccione cualquier celda que no esteacute utilizando (por ejemplo la celda Al) y copie el caraacutecter en ella En otra celda introduzca la siguiente foacutermula

=C0DIG0($A$1)

Esto devolveraacute el coacutedigo del caraacutecter no deseado A continuacioacuten seleccione todos los datos y vaya a EditargtReemplazar Haga clic en el cuadro de texto Busshycar y mientras mantiene pulsada la tecla Alt o Comando introduzca utilizando el teclado numeacuterico un 0 seguido del coacutedigo que devolvioacute la funcioacuten COacuteDIGO Por ejemplo si el coacutedigo es 163 mantenga pulsada la tecla Alt o Comando mienshytras escribe en el teclado numeacuterico el nuacutemero 0163 Deje vaciacuteo el cuadro de texto Reemplazar con y luego haga clic en el botoacuten Reemplazar todos Esto eliminaraacute raacutepidamente todos los caracteres no deseados que coincidan con dicho coacutedigo Ahora repita el mismo proceso para el resto de caracteres no deseados

Convertir nuacutemeros de texto en nuacutemeros reales Los contenidos de una celda pueden parecer nuacutemeros especialmente si han sido importados pero probablemente sea imposible utilizar dichos nuacutemeros en los caacutelculos A continuacioacuten mostramos algunos meacutetodos para convertir faacutecilmente esos nuacutemeros de texto en verdaderos nuacutemeros

Recuerde que los nuacutemeros en Excel estaacuten alineados a la derecha de forma preshydeterminada mientras que los textos se alinean a la izquierda Una forma senci-

90

uuml

TRUCO

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 91

lia de identificar estos nuacutemeros de texto problemaacuteticos en una columna que se supone deberiacutea contener nuacutemeros verdaderos dicha columna luego ir a FormatogtCeldasgtAlineacioacuten asegurarse de que la alineacioacuten horizontal estaacute esshytablecida a la opcioacuten estaacutendar General y luego hacer clic en Aceptar Ampliacutee el ancho de la columna y veraacute como los nuacutemeros verdaderos quedaraacuten alineados a la derecha mientras que aquellos nuacutemeros de texto quedaraacuten a la izquierda Las fechas tambieacuten quedan alineadas a la derecha ya que en realidad son nuacutemeros

Ahora que ya sabe que tiene nuacutemeros que son tratados como texto veamos un meacutetodo raacutepido y sencillo para convertirlos a verdaderos nuacutemeros de forma que Excel pueda utilizarlos para sus caacutelculos Copie cualquier celda en blanco y entonces seleccione aquellas celdas con los nuacutemeros Vaya a EdicioacutengtPegado esshypecial y seleccione la opcioacuten Valores Tambieacuten seleccione la opcioacuten Sumar en el apartado de operaciones y haga clic en Aceptar

Esto haraacute que cualquier nuacutemero que estuviese como texto se convierta a un verdadero nuacutemero Esto es asiacute porque una celda vaciacutea tiene un valor de 0 y cuanshydo antildeade cualquier nuacutemero a un nuacutemero que Excel estaacute tratando como un texto forzaraacute a que dicho nuacutemero se convierta a un nuacutemero verdadero

Puede aplicar esta misma loacutegica a algunas funciones estaacutendar de Excel en particular a las funciones TEXTO Normalmente cuando utiliza las funciones TEXTO de Excel y el resultado obtenido es un nuacutemero Excel seguiraacute devolviendo ese nuacutemero como si fuera un texto en vez de un valor numeacuterico Supongamos que tiene un rango de celdas comenzando por la $A$1 Cada celda contiene una cantidad de dinero con el signo del doacutelar al principio seguida de un espacio y el nombre de una persona Utilizando la siguiente foacutermula que combina las funshyciones IZQUIERDA y ENCONTRAR puede extraer dicho siacutembolo del doacutelar

=IZQUIERDA(AlENCONTRAR( A1)-1)

Si por ejemplo la celda Al contuviese el valor $2270 Federico el resultado de la foacutermula seriacutea $2270 Sin embargo dicho resultado seriacutea devuelto como un texto no como un valor numeacuterico Por tanto de forma predeterminada quedaraacute alineado a la izquierda Puede modificar esta foacutermula de forma que el resultado no sea de tipo texto sino un valor numeacuterico de verdad Para ello antildeada un 0 al final de la siguiente forma

=IZQUIERDA(Al ENCONTRAR( A 1 ) - 1 ) + 0

Esto obligaraacute a que el valor devuelto sea un verdadero nuacutemero por lo que quedaraacute alineado a la derecha de forma predeterminada Todo lo que queda por hacer ahora es dar formato a la celda de forma adecuada Otro de los problemas que pueden surgir en relacioacuten con los textos y nuacutemeros es cuando mezcla texto y nuacutemeros en una misma celda pero sin haber una forma de extraer la parte nu-

92 Excel Los mejores trucos

meacuterica (como ocurriacutea en el caso anterior) En este caso tendremos que utilizar una funcioacuten personalizada que extraiga la parte numeacuterica de la cadena de texto Para crear dicha funcioacuten personalizada pulse A l t Opc ioacuten-F l l seleccione lnsertargtMoacutedulo e introduzca el siguiente coacutedigo

Function ExtraerNumero(rCell As Range) Dim ICount As Long L As Long Dim sText As String Dim lNum As String

sText = rCell

For ICount = Len(sText) To 1 Step -1 If IsNumeric(Mid(sText ICount 1)) Then

L = L + 1 lNum = Mid(sText ICount 1) amp lNum

End If

If L = 1 Then lNum = CInt(Mid(lNum 1 1)) Next ICount

ExtraerNumero = CLng(lNum)

End Function

Salga del editor y vuelva a la ventana principal de Excel La funcioacuten que acashybamos de crear apareceraacute en la categoriacutea de funciones definidas por el usuario Utiliacutecela tal y como se muestra en la figura 210

A B C 1 dfgd878sdd77dd 87877 =ExtraerNumero(A1) 2 jtjt330dfll33 33033 =ExtraerNumero(A2) 3 iexclfdkfjk332kki9Uuml2 332902 =ExtraerNurnero(Aacute2i

Figura 210 Extraer la parte numeacuterica de un texto

En la figura 210 la columna A contiene una mezcla de texto y nuacutemeros la columna B contiene el resultado de utilizar esta funcioacuten y la columna C muestra la apariencia de la foacutermula en la columna B

Personalizar los comentarios de las celdas Los comentarios de celda le permiten colocar el equivalente a una nota en una celda especiacutefica de una hoja Aunque muchas personas utilizar estos comentarios la mayoriacutea no saben que pueden ser personalizados

Cuando inserta un comentario de celda a traveacutes de la opcioacuten lnsertargtComen-tario Excel de forma predeterminada inserta tambieacuten el nombre del usuario del

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 93

ordenador que estaacute utilizando el programa Puede cambiar este comportamiento a traveacutes de HerramientasgtOpcionesgtGeneral Observe que en la parte inferior del cuadro de diaacutelogo puede cambiar el nombre de usuario que desea que aparezca de forma predeterminada

Aunque los comentarios de celda tienen el propoacutesito de mostrar un mensaje escrito por usted o cualquier otro usuario puede personalizar dichos comentashyrios de forma que reflejen mejor las intenciones del que lo crea Aseguacuterese de que la barra de herramientas de dibujo esteacute visible seleccionando la opcioacuten VergtBarras herramientasgtDibujo Introduzca un comentario de celda seleccionaacutendola y luego yendo a la opcioacuten lnsertargtComentario Esto haraacute que entre en modo de edicioacuten automaacuteticamente listo para introducir el texto en el cuadro de comentario

Haga clic justo en el borde del comentario para salir del modo de edicioacuten pero mantenieacutendolo seleccionado Entonces seleccione Dibujo y elija la opcioacuten Cambiar autoforma del menuacute que aparece Obtendraacute una lista con opciones en la que se incluyen formas baacutesicas flechas de bloque graacuteficos de flujo etc Elija una opshycioacuten y veraacute como el comentario de la celda cambiaraacute su aspecto en funcioacuten de ello tal y como se muestra la figura 2 11

1 2 3 4 5

6 7 8 9 10 11 12

I 13

A B C

--ltbull ~gtv

y bull

D E 1

Figura 211 Un comentario de celda con un formato totalmente diferente

Puede ir maacutes lejos si aplica un estilo sombreado al comentario daacutendole maacutes vida y un aspecto en tres dimensiones Aseguacuterese de que todaviacutea tiene seleccioshynado el comentario pero que no estaacute en modo de edicioacuten En la barra de herrashymientas de dibujo haga clic en el icono Estilo de sombra que se muestra la figura 212 y elija una configuracioacuten de sombra para el comentario de la celda

Otra cosa interesante que puede hacer con los comentarios de celda es utilishyzarlos para mostrar imaacutegenes sin que impidan ver los datos Por ejemplo podriacutea insertar la imagen de un graacutefico en el comentario de la celda para ilustrar los datos del graacutefico sin tener que mostrarlo todo el tiempo

Para antildeadir una imagen aseguacuterese de tener seleccionada el comentario pero sin estar en modo de edicioacuten Seleccione FormatogtComentario o bien haga doble clic en el borde del comentario Vaya a la pestantildea Colores y liacuteneas y en el cuadro

94 Excel Los mejores trucos

de lista desplegable Color seleccione la opcioacuten Efectos de relleno Vaya entonces a la pestantildea Imagen Ahora busque la imagen que desee insertar en el comentario de la celda

EacuteP

Configuracioacuten de sombra

Dibujo | Autoformas bull bullbdquogt zJ -Jjiacute (iquest bull yiquest amp ~ zplusmn Wi ltpound J J -

Figura 212 Opciones de estilo de sombra

Una uacuteltima cosa que puede hacer con los comentarios de celdas es extraer el texto que contienen y hacer que aparezca dentro de una celda Para ello tendreshymos que crear una sencilla funcioacuten personalizada en un moacutedulo estaacutendar Vaya al Editor de Visual Basic ( A l t O p c i oacute n - F l l ) e inserte un nuevo moacutedulo (lnsertargtMoacutedulo) A continuacioacuten escriba el siguiente coacutedigo

Function ObtenerTextoComentario(rCommentCell As Range) Dim strGotlt As String

On Error Resume Next strGotlt = WorksheetFunctionClean (rCommentCellCommentText) ObtenerTextoComentario = strGotlt On Error GoTo 0

End Function

Vuelva a la ventana principal de Excel bien cerrando esta ventana o pulsando AltComando-Q Ahora en cualquier celda introduzca la siguiente foacutermula

=ObtenerTextoComentario(Al)

donde Al es la celda que contiene un comentario Entonces deberiacutea aparecer el texto del comentario en la celda en la que haya introducido esta foacutermula

Ordenar maacutes de tres columnas La funcioacuten de ordenacioacuten de Excel estaacute limitada en cuanto a que soacutelo permite elegir tres campos de datos por los que ordenar En muchos casos puede ser suficiente pero a veces es necesario poder ordenar por maacutes de tres columnas de datos A continuacioacuten mostraremos coacutemo superar esta limitacioacuten

Para este ejemplo supondremos que tiene datos relacionados en las columnas A B C D y E y que desea ordenar estos datos por ese mismo orden Para poder

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 95

hacer esto debe poder ordenar de atraacutes a adelante es decir ordenar por el uacuteltimo campo primero y luego ir hacia atraacutes hasta el primer campo

Seleccione desde la co lumna A has ta la columna E y entonces vaya a DatosgtOrdenar Seleccione el criterio de ordenacioacuten para que primero se ordene la columna C luego D y luego E Haga clic en Ordenar Ahora seleccione desde la columna A a la columna E y vaya a DatosgtOrdenar Esta vez ordene primero por la columna A y luego por la B Haga clic en Ordenar Con esto hemos conseguido que Excel ordene las columnas por cinco campos en vez de por tres

Si desea automatizar esta tarea puede utilizar una macro que ordene la selecshycioacuten y que reconozca si los datos poseen encabezados de columna en base al formato de la primera fila de la seleccioacuten Si los encabezados estaacuten en negritas Excel sabraacute que son encabezados de columna y no los ordenaraacute Por otro lado ordenaraacute primero por la columna que esteacute maacutes a la izquierda y asiacute sucesivamenshyte para el resto de columnas hasta llegar a un maacuteximo de 256

El coacutedigo de la macro que necesitamos debe ser colocado en un moacutedulo estaacutendar Para ello vaya a la opcioacuten HerramientasgtMacrogtEditor de Visual Basic luego vaya a lnsertargtMoacutedulo e introduzca el siguiente coacutedigo

Sub OrdenarPorX( ) Dim L As Long

For L = SelectionColumnsCount To 1 Step -1 SelectionSort Keyl=SelectionCells(2 1) _ Orderl=xlAscending Header=xlGuess Orientation=xlTopToBottom

Next L

End Sub

Para volver a Excel cierre de esta ventana o bien pulse AltComando-(X Ahora ya podraacute realizar ordenaciones mucho maacutes complicadas que las que ofrece Excel

En Ordenacioacuten aleatoria ^H Puede hacer que Excel escoja los tres primeros ganadores elegidos ^H aleatoriamente de una lista de una hoja de caacutelculo El meacutetodo maacutes sencillo ^trade y raacutepido para hacer esto es utilizar la funcioacuten ALEATORIO de Excel en

combinacioacuten con las funciones de ordenacioacuten

Supongamos que tiene una tabla con tres columnas en la hoja de caacutelculo comenzando por la columna B y que contienen en este orden Nombre edad y Ndeg de Id Coloque la funcioacuten ALEATORIO en la celda A2 y propaguacuteela hacia abajo tantas filas como necesite

Cuando haga esto cada una de las celdas de la columna A devolveraacute un nuacuteshymero aleatorio por el cual puede ordenar la tabla En otras palabras si ordena las

96 Excel Los mejores trucos

columnas A B C y D utilizando como criterio el valor de la columna A ya sea ascendentemente o descendentemente tendraacute a los tres ganadores en la parte superior de la tabla

La funcioacuten ALEATORIO es una funcioacuten volaacutetil que se calcula automaacuteticamente cada vez que se realiza una accioacuten en Excel (como por ejemplo introducir datos en alguacuten lugar o bien forzando a que se recalculen todas las foacutermulas pulsando la tecla F9) Por tanto ya puede escribir en una hoja de papel quieacutenes eran los ganadores antes de que vuelva a calcularse de nuevo todo ya que el orden camshybiaraacute

Sin embargo puede utilizar esta volatilidad en su beneficio y grabar una macro que ordene los datos inmediatamente despueacutes de recalcular y forzar a que la funcioacuten ALEATORIO devuelva a otro conjunto de nuacutemeros aleatorio Entonces puede asociar esta macro a un botoacuten de forma que cada vez que desee calcular los tres ganadores todo lo que debe hacer es hacer clic en eacutel y utilizar las tres filas de la parte superior

Por ejemplo supongamos que tiene los datos en las columnas B C y D y que la fila 1 se utiliza para los encabezados Primeramente introduzca el encabezado Aleatorio en la celda A l En la celda A2 introduzca ^ALEATORIO () y propashyguacuteela hacia abajo Luego seleccione cualquier celda y vaya a HerramientasgtMacrogt Grabar nueva macro

Seleccione las columnas A B C y D y pulse F9 (para forzar de sede recalculen las foacutermulas) Vaya a DatosgtOrdenar y ordene los datos por la columna A Deshytenga entonces la grabacioacuten de la macro

A continuacioacuten seleccione VergtBarras de herramientasgtFormularios Seleccioshyne el icono Botoacuten en el cuadro de herramientas y coloacutequelo en cualquier lugar de la hoja

Asignen la macro que acaba de grabar a este botoacuten y luego haga clic en Acepshyt a r (tambieacuten cambie el texto del botoacuten por algo maacutes representativo) Puede oculshytar la columna A completamente ya que los usuarios no tienen por queacute ver los nuacutemeros aleatorios Cada vez que haga clic en el botoacuten los datos se ordenaraacuten aleatoriamente y simplemente bastaraacute con leer los tres nombres que aparezcan en la parte superior de la tabla para ver quieacutenes son los ganadores Observe la figura que le mostramos a continuacioacuten

La funcioacuten ALEATORIO de Excel 2003 tiene un fallo muy importante Aunque la ayuda asegura claramente que el nuacutemero aleatorio devuelto estaacute entre 0 y 1 esto no siempre es cierto si la funcioacuten se utiliza en muchas celdas A veces ocurriraacute que la funcioacuten devuelva un nuacutemero menor que 0 Para saber porqueacute Microsoft ha cambiado el algoritmo visite la paacutegina httpsupportmicrosoftcomdefaultaspxkbid= 828795httpsupportmicrosoftcomdefaultaspxkbid=828795

V

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 97

_ 1 _ A 1 Nombre 2 David 3 lAlex 4 Ana 5 Marta 6 Juan 7 Santos 8 Laida 9 Mar 10 Luis 11 12

I sect Edad Ndeg

32 30 23 36 25 30 31 30 28

Id C

11343 11543 11345 11234 11321 11545 11656 11451 11331

P Posicioacuten

E I F Escoger Ganadores

1

2 3

Figura 213 Resultado final de la ordenacioacuten aleatoria de la columna oculta A

Manipular datos con el filtro avanzado Si estaacute familiarizado con la herramienta de auto filtrado de Excel tambieacuten estaraacute familiarizado con sus limitaciones Si necesita hacer una manipulacioacuten exhaustiva de los datos la solucioacuten es utilizar la herramienta de filtrado avanzado de Excel

A pesar de su limitacioacuten el filtrado automaacutetico es uacutetil para mostrar solamenshyte aquellos datos que cumplan un criterio en particular Sin embargo en algunas ocasiones no podraacute extraer la informacioacuten que necesita utilizando las opciones estaacutendar disponibles en el filtrado automaacutetico Por ello existe una herramienta maacutes versaacutetil el filtro avanzado que le permite manipular los datos maacutes allaacute de dichas limitaciones Cuando utilice esta herramienta la tabla debe estar configushyrada en un formato claacutesico tal y como describimos al comienzo del capiacutetulo 1

Cuando utilice la herramienta de filtrado avanzado de Excel necesitaraacute una copia de los encabezados de las columnas en alguacuten lugar por encima de los datos Siempre deberiacutea dejar al menos tres filas en blanco por encima de la tabla con los datos Para asegurarse de que los encabezados son siempre los mismos y se manshytengan asiacute independientemente de que cambie los encabezados de las columnas haga siempre las referencias a los encabezados de las columnas con una foacutermula de referencia simple como pueda ser =A4 donde la celda A4 contiene el encabeshyzado de la columna Copie esto a lo largo de los encabezados de las columnas que tenga en la tabla Esto aseguraraacute que los encabezados de los criterios para el filtrado avanzado sean dinaacutemicos Directamente debajo de los encabezados coshypiados coloque el criterio que desea utilizar para el filtro avanzado Para maacutes detalles sobre este proceso consuacuteltela ayuda de Excel acerca de los criterios de los filtros avanzados Hay que tener en cuenta que cuando se utiliza el filtro avanshyzado si hay dos o maacutes criterios colocados directamente por debajo del encabezashydo utilizaraacuten un operador de comparacioacuten O Si desea utilizar el operador de comparacioacuten Y entonces los encabezados de columna y sus criterios deben apashyrecer dos veces del lado a lado En la figura 214 se muestra coacutemo utilizar el operador O para filtrar los datos y en la figura 215 coacutemo utilizar el operador Y

uuml

98 Excel Los mejores trucos

bullaacutejjj Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana

-Inl 1

A

1 Nombres

2

3

4 |

5 Nombres

6 David

7 Alex

8 Ana

9 Marta

10 Juan

11 Santos

12 Laida

13 Mar

14 Luis

15

16

17

18

M 4 bull H Hojal

B

iexclTasa

iexclgt1600

iexcllt 15J30

Tasa

$ 1700

$ 1225

$ 2120

$ 1800

1650

$ 2100

$ 1080

$ 1550

$ 1320

C

Edad

X Hoja2 HojaS X Hoja4

32

30

23

36

25

30

31

30

28

X HojaS

D E |

11 ipiiacutewraffiM^v bull -Accioacuten

F

f Filtrar la lista sin moverla a otro lugar

lt Copiar a otro lugar

Rango de la lista j$A$5$C$14

Rango de criterios j^B$l$B$3

1 f~ Soacutelo registros uacutenicos

1 Aceptar j

XHoja6 |lt

G

Jltl

3 31 3

Cancelar

H

|

1 T mdash

mdash w

bull i r

Figura 2 14 Usar el filtro avanzado con el operador O para mostrar solamente aquellas personas que tengan una paga mayor que $1600 o menor que $1500

-4] Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana

A5

1

2

3

4

5

_ 15

16

17

18

19 70

21

22

23

24

25

H 4

A

Nombres

D

Nombres

David

Laida

bull bull Hojal

B Nombres

L

Tasa

1700

1080

Ed

X Hoja2 X Hoja3 X

C

ad

Hoja4

32

31 iexcl

X H deg iacute a 5

D E | F

lilHPJliexcliquesti^1 Accioacuten

(bull Filtrar la iista sin moverla a otro lugar r Copiar a otro lugar-

Rango de la lista |$A$5$C$14

Rango de criterios j$A$l$B$2

1 f Soacutelo registros uacutenicos

1 Aceptar j Cancel

XHoja6Hoja7 j laquo |

G

2ltj

3d 3 31

ar

H

1

1 mdash

~~~

mdash w

bull i r

Figura 2 15 Usar el filtro avanzado con el operador Y para mostrar solamente aquellas personas cuyo nombre comienza por B y termina por L

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 99

Los dos ejemplos anteriores muestran algunos de los usos simples que se pueshyden hacer de la herramienta de filtrado avanzado y que tambieacuten se podriacutean reashylizar ut i l izando la funcioacuten de filtrado au tomaacutet ico si fuera necesario A continuacioacuten presentaremos algunos ejemplos de la utilizacioacuten del filtro avanzashydo en los que no seriacutea posible utilizar el Autofiltro

Es importante destacar que cuando utilice una foacutermula para el criterio S no debe utilizar por encima del criterio un encabezado que sea ideacutentico

w a uno que haya en la tabla Por ejemplo si tiene un listado con datos numeacutericos en la columna A y la lista comienza en la celda A5 (siendo A4 el encabezado) si necesita extraer todos los nuacutemeros de dicha lista que sean mayor que la media deberiacutea utilizar un criterio como este

=A5gtPR0MEDI0($A$5$A$500)

Si el criterio fuese colocado en la celda A2 el rango del criterio seriacutea $A$1 $A2 pero $A$ 1 no podriacutea contener el mismo encabezado que el usado en la lista Debe ser o bien vaciacuteo o bien un encabezado diferente Tambieacuten es importante resentildear que cualquier foacutermula que utilice deberiacutea devolver o bien VERDADERO o FALSO El rango para la funcioacuten promedio se hace absoluto al utilizar el signo del doacutelar mientras que la referencia a la celda A5 es relativa Esto es necesario porque cuando aplique el filtro avanzado Excel veraacute que la celda A5 es una referencia relativa y se moveraacute por la lista hacia abajo por cada entrada devolviendo VERDADERO o FALSO Si devuelve VERDADERO entonces habraacute que necesita ser extraiacutedo Si devuelve FALSO entonces es que no coincide con el criterio y por lo tanto no seraacute mostrado

Supongamos que muchos de los nombres estaacuten repetidos en el rango $A$5$A$500 siendo la celda A4 el encabezado Tambieacuten que muchos de los encabezados se repiten numerosas veces Se le ha asignado la tarea de extraer de la lista todos los nombres que aparecen maacutes de una vez Para hacer esto necesita utilizar el filtro avanzado asiacute como la siguiente foacutermula como criterio

= C O N T A R S I ( $ A $ 5 $ A $ 5 0 0 A 5 ) gt 1

Una vez que aplique el filtro avanzado a esto y utilice la opcioacuten Copiar en otra ubicacioacuten la recieacuten creada lista contendraacute todos los nombres que aparecen maacutes de una vez en la lista original (veacutease figura 216) Muchos de estos nombres estaraacuten repetidos numerosas veces pero puede filtrar faacutecilmente esta nueva lista de nuevo utilizando el filtro avanzado aunque esta vez seleccionando la opcioacuten Soacutelo los registros uacutenicos (veacutease figura 217)

Esto le proporcionaraacute un listado de nombres que aparecen en la lista maacutes de una vez

100 Excel Los mejores trucos

iquestaacutej Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana

Ojx] figt x

A2 f =CQNTARSI($At5$A$2QAB)gt1

4) bullbullbull - ^ g

H 1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

Criterio

IVERDADEROl

Nombres

David

Alex

Ana

Marta

Juan

Santos

Laida

Mar

Luis

Marta

David

Juan

Antonio

Mar

Alex

Nombres David Alex Marta Juan Mar Marta David Juan Mar Alex

Accioacuten

f Filtrar la lista sin moverla a otro lugar

(bull iexclCopiar a otrolugar]

JpoundIacute

Rango de la lista j$A$4$A$500 3 Rango de criterios ]$A$1$A$2

Copiar a |$C$4

Soacutelo registros uacutenicos

Aceptar

H 4 bull H Hoja2 Hoja3 Hoja4 Hoja5 Hojaoacute Hoja X H o J a 8 ir

Figura 216 Usar el filtro avanzado para extraer los nombres de una lista en la que aparecen maacutes de una vez

A B C D

1 Criterio

2 FALSO

3

4 Nombres Nombres Nombres

5 David David David

6 Alex Alex Alex

7 [Ana Marta Marta

8 Marta Juan Juan

9 Juan Mar Mar

10 Santos Marta

11 Laida David

12 Mar Juan

13 Luis Mar

14 Marta Alex

15 David

16 Juan

17 Antonio

18 Mar

19 Alex iexclH 4 bull M Hoja2 Hoja3 Hoja4 HojaS Hojaoacute Hoja

E F | G

l l i W i i i l i S I E ^ ^ Accioacuten

iacute Filtrar la lista sin moverla a otro lugar

ltbull Copiar a otro lugar

Rango de la lista j $c$4 $C$ 14

Rango de criterios j

Copiar a |$D^4

P Soacutelo registros uacutenicos

j Aceptar J Cancel

HojaS H o j a 9 | lt f

X j

3 3 3

raquo 1

H 1 d

laquo-

i nr Figura 217 Usar el filtro avanzado en la lista extraiacuteda de nombres para mostrar cada

uno de ellos solamente una vez

Los usuarios que utilicen el filtro avanzado a menudo se preguntan ^ coacutemo pueden forzar a Excel para que filtre sus datos por el criterio

exacto que han especificado Si el criterio que ha elegido es Juan por

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 101

ejemplo y realiza un filtro avanzado en una larga lista de nombres Excel no soacutelo mostraraacute el nombre de Juan sino tambieacuten nombres como Juana Juan Carlos etc en otras palabras cualquier nombre que comience con las letras Juan en ese orden seraacuten considerados como que cumplen el criterio Para obligar a Excel a que encuentre solamente aquellos que coincidan totalmente introduzca el criterio asiacute ==Juan

m g 3 j Crear formatos de nuacutemero personalizados II ^ E C j H E x c e incorpora una serie de formatos para nuacutemeros pero a veces

^ ^ ^ pound ^ B necesitaraacute utilizar un formato de nuacutemero que no esteacute entre los predefinidos Mediante los trucos de este apartado podraacute crear formatos de nuacutemero que puede personalizar de acuerdo a sus necesidades

Antes de probar estos trucos es importante que entienda coacutemo Excel mira los formatos de una celda Lo hace tomando las siguientes secciones (de izquierda a derecha) Nuacutemeros positivos nuacutemeros negativos valores cero y valores de tipo texto Cada una de estas secciones estaacute separada por un punto y coma ()

Cuando cree un formato de nuacutemero personalizados no necesitaraacute especificar las cuatro secciones Es decir si soacutelo incluye dos secciones la primera seraacute utilishyzada tanto para los nuacutemeros positivos como para los valores cero mientras que la segunda se utilizaraacute para los nuacutemeros negativos Si soacutelo incluye una seccioacuten todos los tipos de nuacutemero utilizaraacuten ese formato Los textos se veraacuten afectados por el formato personalizado soacutelo cuando se incluyen las cuatro secciones (utilishyzando la uacuteltima de ellos)

Cuando nos referimos a nuacutemeros no significa que el formato personalizado soacutelo se aplique a datos de tipo numeacuterico Dicho formato tambieacuten se aplicaraacute a los nuacutemeros que esteacuten en formato texto

El formato personalizado de nuacutemero mostrado en la figura 218 es el formato estaacutendar de moneda de Excel que muestra los valores negativos en rojo Lo heshymos modificado antildeadiendo un formato aparte para los valores cero y otro para los textos

Si introduce un nuacutemero positivo como un valor de moneda Excel le daraacute formato automaacuteticamente de forma que incluya un punto como separador de millares seguido de dos lugares decimales Haraacute lo mismo con los valores negatishyvos excepto que los mostraraacute en color rojo Cualquier valor cero no tendraacute el siacutembolo de moneda y soacutelo mostraraacute dos lugares decimales En caso de que introshyduzca un texto en la celda Excel mostraraacute el texto No introduzca texto en vez de el texto que haya introducido el usuario

102 Excel Los mejores trucos

Formato para Formato para Formato para Formatos para nuacutemeros positivos nuacutemeros negativos valores cero texto

$000 [Rojo]$000 000 No escribir texto Figura 218 Secciones del formato de nuacutemero personalizado

Es importante recordar que dar formato al valor de una celda no afecta al verdadero valor que eacutesta contiene Por ejemplo escriba cualquier nuacutemero en la celda A l Luego vaya a FormatogtCeldasgtNuacutemerogtPersonalizado y escriba en el cuadro de texto Tipo la palabra Hola (incluyendo las dobles comillas) Haga clic en Aceptar para cerrar el cuadro de diaacutelogo

Aunque la celda muestre el texto Hola puede ver el verdadero valor contenishydo de la celda seleccionaacutendola y mirando la barra de foacutermulas de la parte supeshyrior de la ventana (o bien pulsando F2) Si fuese a hacer una referencia a esta celda en una foacutermula (por ejemplo =Al + 2 0) la celda resultante tomariacutea el forshymato personalizado Si hiciese referencia a la celda Al jun to a otras muchas celshydas que tuviesen un formato estaacutendar por ejemplo =SUM (Al A10) la celda resultante seguiriacutea tomando el formato personalizado de la celda A l Esto es asiacute porque Excel tiene la delicadeza de dar al resultado el mismo formato que tengan aquellas celdas referenciadas En caso de que eacutestas tuviesen maacutes de un formato si existe alguno personalizado tendraacute preferencia sobre los demaacutes

Esto significa que siempre deberaacute recordar que Excel utiliza el valor real de una celda para hacer sus caacutelculos y no el valor que muestra resultado de un formato en particular Esto puede provocar una sorpresa cuando Excel hace caacutelshyculos basaacutendose en celdas que estaacuten formateadas para no mostrar lugares decishymales o para mostrar solamente unos cuantos por ejemplo Para ver esto por siacute mismo introduzca 14 en la celda Al y 14 en la celda A2 Cambie el formato de ambas celdas para que no muestren lugares decimales y luego introduzca la foacutershymula =A1+A2 en otra celda cualquiera Veraacute que el resultado es 3 ya que Excel ha redondeado el caacutelculo Excel tiene una opcioacuten llamada Precisioacuten de pantalla que encontraraacute en HerramientasgtOpcionesgtCalcular pero debe tener en cuenta que esta opcioacuten cambiaraacute definitivamente los valores almacenados en las celdas a la precisioacuten maacutexima (15 diacutegitos) independientemente del formato incluyendo los lugares decimales en caso de que se muestren Dicho de otra forma una vez que se activa esta opcioacuten no hay posibilidad de volver atraacutes (puede intentarlo pero la informacioacuten extra sobre la precisioacuten se perderaacute)

El formato predeterminado para cualquier celda es General Si introduce un nuacutemero en una celda Excel le asignaraacute el formato numeacuterico que considere maacutes apropiado Por ejemplo si introduce 10 en una celda Excel le daraacute el formato de porcentaje La mayoriacutea de las veces Excel acierta correctamente con el formashyto aunque a veces seraacute necesario cambiarlo

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 103

Cuando utilice la opcioacuten FormatogtCeldas resista la tentacioacuten de forzar la alineacioacuten a la izquierda derecha o al centro para el formato horizontal De forma predeterminada los nuacutemeros se alinean a la derecha y el texto a la izquierda Si deja esto asiacute puede decir en cualquier momento si una celda contiene texto o nuacutemeros como ya vimos en el ejemplo anterior en el que en la celda Al pareciacutea haber un texto pero en realidad conteniacutea un nuacutemero

Cada una de las secciones de un formato dado utiliza su propio conjunto de coacutedigos de formato Estos coacutedigos obligan a Excel a hacer que los datos aparezshycan de una cierta forma Asiacute por ejemplo supongamos que quiere que los nuacuteshymeros negativos aparezcan entre pareacutentesis y por lo demaacutes que cualquier nuacutemero ya sea positivo negativo o cero muestre dos lugares decimales Para hacer esto utilice este formato personalizado

0 0 0_ ( - 0 0 0 )

Si desea que los nuacutemeros negativos aparezcan en rojo utilice este formato

0 0 0 _ [ R o j o ] ( - 0 0 0 )

Observe que hemos utilizado corchetes en el coacutedigo anterior El coacutedigo de forshymato indica a Excel que haga que los nuacutemeros aparezcan en color rojo

Puede utilizar muchos coacutedigos de formato diferentes dentro de las secciones de un formato personalizado Las tablas 2 1a 25 realizadas a partir de la docushymentacioacuten de Microsoft explican estos coacutedigos

Tabla 2 1 Coacutedigos de formato

Coacutedigo de nuacutemero Descripcioacuten

General Formato de nuacutemero general

0 (cero) Muestra los ceros sin valor si un nuacutemero tiene menos diacutegitos que ceros en el formato

Muestra uacutenicamente los diacutegitos significativos y no muestra los ceros sin valor

Antildeade los espacios de los ceros sin valor a cada lado del separador decimal Tambieacuten se puede utilizar para las fracciones que tengan un nuacutemero de diacutegitos variable

Un porcentaje Excel multiplicaraacute el valor por 100 y mostraraacute el caraacutecter despueacutes del nuacutemero

104 Excel Los mejores trucos

Coacutedigo de nuacutemero

(punto)

E+ E- e+ e-

Descripcioacuten

Separador de millares Un punto seguido de un coacutedigo ampliaraacute el nuacutemero por 1000

Notacioacuten cientiacutefica

Tabla 22 Coacutedigos de texto

Coacutedigo de texto

$- + ( ) y espacio en blanco

caraacutecter

texto

_ (subrayado)

Descripcioacuten

Estos caracteres se mos t ra raacuten en el nuacutemero Para mostrar cualquier otro caraacutecter encieacuterrelo entre doshybles comillas o bien precedido de una barra invertida

()

Este coacutedigo muestra el caraacutecter especificado Observe que si escribe ^ amp ~ = lt ogtse colocaraacute automaacuteticamente una barra invertida delante del cashyraacutecter

Este coacutedigo muestra el texto que hay encerrado entre las dobles comillas

Este coacutedigo repite el siguiente caraacutecter en el formato para rellenar el ancho de la columna Soacutelo se admite un asterisco por cada seccioacuten del formato

Este coacutedigo omite el ancho del siguiente caraacutecter Norshymalmente se utiliza asiacute _) para dejar un espacio para un pareacutentesis de cierre en el formato de un nuacutemero positivo cuando el formato para nuacutemeros negativos incluye pareacutentesis Esto permite que tanto valores poshysitivos como negativos se alineen en el punto decimal

Lugar para un texto

Tabla 23 Coacutedigos de fecha

Coacutedigo de fecha Descripcioacuten

m Un mes representado como un nuacutemero sin ceros de reshylleno (1-12)

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 105

Coacutedigo de fecha

mm

m m m

m m m m

d

dd

ddd

dddd

aa

aaaa

Descripcioacuten

Un mes representado como un nuacutemero con ceros de relleno (01-12)

Un mes dado como su abreviatura (ene-dic)

Un mes dado tal cual sin abreviar (enero-diciembre)

Un diacutea representado como un nuacutemero sin ceros de reshylleno (1-31)

Un diacutea representado como un nuacutemero con ceros de reshylleno (01-31)

Un diacutea dado como su abreviatura (lun-dom)

Un diacutea dado tal cual sin abreviar (lunes-domingo)

Un antildeo dado como un nuacutemero de dos diacutegitos (por ejemshyplo 96)

Un antildeo dado como un nuacutemero de cuatro diacutegitos (por ejemplo 1996)

Tabla 24 Coacutedigos de hora

Coacutedigo de hora

h

hh

m

m m

m

m m

AMPM a m p m

Descripcioacuten

Una hora representada como un nuacutemero sin ceros de relleno (0-23)

Una hora representada como un nuacutemero con ceros de relleno (00-23)

Un minuto representado como un nuacutemero sin ceros de relleno (0-59)

Un minuto representado como un nuacutemero con ceros de relleno (00-59)

Un segundo representado como un nuacutemero sin ceros de relleno (0-59)

Un segundo representado como un nuacutemero con ceros de relleno (00-59)

Hora en formato del reloj de 12 horas

106 Excel Los mejores trucos

Tabla 25 Coacutedigos miscelaacuteneos

Coacutedigo miscelaacuteneo Descripcioacuten

[Negro] [Azul] Estos coacutedigos muestran los caracteres en el color espe-[Aguamarina] cificado Observe que n puede ser un valor entre 1 y [Verde] [Magenta] 56 y se refiere al eneacutesimo color de la paleta [Rojo] [Blanco] [Amarillo] [Color n]

[Condicioacutenvalor] Las condiciones pueden ser lt gt = gt = lt= oacute o mientras que el valor puede ser cualquier nuacutemero Un formato de nuacutemero puede contener hasta dos condishyciones

Observe en particular el uacuteltimo tipo de coacutedigos de formato de la tabla 25 es decir los operadores de comparacioacuten Supongamos que desea un formato de nuacuteshymero personalizado del tipo de 000_ [Rojo](-000) para mostrar los nuacutemeros negativos en color rojo y entre corchetes pero solamente si el nuacutemero es menor que -100 Para conseguir esto tendriacutea que escribir el formato de esta forma

0 0 0 _ [ R o j o ] [ lt - 1 0 0 ] ( - 0 0 0 ) 0 0 0

Los coacutedigos de formato [Rojo][lt-l00](-000) colocados en la seccioacuten para nuacuteshymeros negativos hacen que esto sea posible Utilizando este meacutetodo jun to con el formato condicional puede doblar el nuacutemero de formatos condicionales disponishybles de tres a seis

A menudo los usuarios desean mostrar el siacutembolo del euro como una palashybra Para conseguir eso utilice el siguiente formato personalizado

0 e u r o s con 00 c eacute n t i m o s

Este formato obliga a que un nuacutemero introducido como 5525 se muestre como 55 euros con 25 ceacutentimos Tambieacuten podriacutea utilizar un formato condicional para mostrar las palabras Bajo En la media o Alto dependiendo del nuacutemero introducido Para ello utilice este simple formato

[ lt l l ] M B a j o M 0 [ gt 2 0 ] A l t o 0 E n l a m e d i a 0

Observe el uso del Esto hace que se repita el siguiente caraacutecter en el formato para rellenar el ancho de la columna de forma que los textos Bajo En la meshydia o Alto se alinearaacuten forzosamente a la derecha mientras que el nuacutemero quedaraacute a la izquierda

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 107

Antildeadir maacutes niveles de Deshacer a Excel Todos estamos familiarizados con la maravillosa caracteriacutestica de Deshacer de Excel que permite a los usuarios deshacer aquellas acciones que desee en caso de equivocacioacuten Por desgracia el nivel predeterminado de cambios que se pueden deshacer es tan soacutelo de 16 Con este truco podemos cambiar el registro de forma que podamos deshacer hasta 100 equivocaciones

Cuando utiliza la caracteriacutestica Deshacer de Excel y alcanza el nuacutemero de 16 acciones el primer deshacer es reemplazado por el nuacutemero 17 y asiacute sucesivashymente Ademaacutes en cuanto guarde el libro toda la lista de acciones a deshacer se elimina coloque se pierde el historial de acciones Esto es asiacute porque se supone que a pulsar Guardar estaacute indicaacutendole a Excel que estaacute de acuerdo con los camshybios realizados y que por lo tanto no tiene sentido deshacer nada

Probablemente haya descubierto que en ocasiones poder deshacer tan soacutelo en vez de tener que aguantar esto puede cambiar este comportamiento modifishycando el registro algo que soacutelo funciona en Windows Para ello lo primero que hay que hacer es cerrar Excel Luego vaya a lniciogtEjecutar y en el cuadro de texto escriba Regeditexe Luego haga clic en Aceptar Cuando se abra el Editor del registro despliegue la carpeta HKEY_CURRENT_USER Luego despliegue la carpeta Software luego Microsoft Office y por uacuteltimo la carpeta 100 (esta uacuteltishyma carpeta depende de la versioacuten de Office que tenga En este caso la carpeta 110 es la correspondiente a Excel 2002) A continuacioacuten despliegue la carpeta Excel y finalmente abra la carpeta Options

Ahora v a y a a EdicioacutengtNuevogtValor DWORD i n t r o d u z c a la p a l a b r a UndoHistory y pulse Intro Luego haga doble clic sobre el elemento que acaba de crear seleccione el botoacuten de opcioacuten Decimal y a continuacioacuten escriba en el cuadro de texto un valor mayor que 16 y menor que 100

En general disponer de 100 acciones para deshacer seraacute suficiente para la mayoriacutea de los usuarios aunque el problema de que la opcioacuten Deshacer se pierda una vez guardada la hoja seguiraacute ocurriendo

H Crear listas personalizadas Siacute antildeade una lista personalizada a Excel podraacute escribir el primer elemento de la lista arrastrarlo utilizando el recuadro de propagacioacuten y ver coacutemo la lista se rellena automaacuteticamente

Una de las funciones maacutes populares que tiene Excel para ahorrar trabajo es la posibilidad de incrementar no solamente nuacutemeros sino tambieacuten algunos textos automaacuteticamente Normalmente cuando utiliza el recuadro de propagacioacuten esshycribe el primer elemento y luego lo utiliza para rellenar las celdas con los si-

uuml

108 Excel Los mejores trucos

guientes elementos de la lista De esta forma puede crear faacutecilmente su propia lista personalizada con aquellos elementos utilizados maacutes a menudo

La forma maacutes flexible de crear una lista personalizada es introducir sus conshytenidos en un rango de celdas Por ejemplo digamos que tiene una lista de 100 nombres de empleados Introduzca cada nombre comenzando por la celda Al y terminando en la celda Al 00 y luego ordenaacutendola si es necesario A continuashycioacuten seleccione HerramientasgtOpciones y en la pestantildea Listas personalizadas haga clic en el cuadro de texto Importar lista desde las celdas Utilizando el cursor del ratoacuten haga clic en la celda Al y arraacutestrelo hasta la celda Al 00 y luego haga clic en el botoacuten Importar Llegados a este punto la lista personalizada estaraacute disposhynible para todos los libros con los que se trabaje en este mismo ordenador

S Si la lista estaacute ordenada y desea que esteacute colocada de arriba a abajo encontraraacute maacutes sencillo ordenarla de Z a A en caso de que la lista original estuviese ordenada al reveacutes

TRUCO Subtotales en negritas de Excel iquestNo seriacutea muy interesante si pudiese identificar los subtotales en sus hojas de caacutelculo de forma que los pudiera encontrar faacutecilmente Con los trucos de este apartado podraacute hacerlo

Cuando estaacute trabajando con una hoja de caacutelculo que contiene subtotales creashydos a partir de la opcioacuten DatosgtSubtotales eacutestos pueden ser muy difiacuteciles de idenshytificar haciendo que la hoja de caacutelculo no pueda leerse con facilidad Esto es especialmente cierto cuando utiliza esos Subtotales en una tabla de datos que tiene muchas columnas

Normalmente los subtotales resultantes aparecen en la parte derecha mienshytras que sus encabezados asociados se situacutean en la primera columna Dado que los valores de esos subtotales no aparecen en negritas puede ser difiacutecil de alinearshylos visualmente con sus encabezados de fila Puede hacer que sea mucho maacutes sencillo leerlos siacute aplica un formato negritas a esos valores

Para probar este problema introduzca algunos datos de forma similar a los que se muestran en la figura 219

Ahora antildeada los subtotales seleccionando la opcioacuten DatosgtSubtotales aceptando los valores predeterminados del cuadro de diaacutelogo y haciendo clic en Aceptar

En la figura 220 los encabezados de los subtotales estaacuten en negritas pero sus resultados asociados no Dado que esta tabla soacutelo tiene dos columnas no resulta tan difiacutecil leer y encontrar las cantidades correspondientes a dicho subtoshytales

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 109

A 1 Trimestre 2 Primero 3 Primero 4 Segundo 5 Segundo 6 Segundo 7 Tercero 8 Tercero 9 Tercero

iacute 10 11

B Coste $1000 $2000 $1000 $1000 $1000 $1500 $1000 $2500

C

Figura 219 Datos de una hoja de caacutelculo antes de antildeadir los subtotales

r 2 3 - A

I bull 1 Trimestre 1 [ bull bull 2 Primero I J bull 3 Primero 1 - 4 Total trimestrel

5 Segundo 6 Segundo 7 Segundo

1 - 8 Total trimestre2 9 iexclTercero

bull 10 Tercero bull 11 Tercero

1 - 12 Total trimestre3 13 Total finil 14 15

a Coste $1000 $2000 $3000 $1000 $1000 $1000 $3000

11500 | $1000 $2500 $5000 $11000

C

Figura 220 Datos de la hoja de caacutelculo despueacutes de que se hayan aplicado los subtotales

Sin embargo cuantas maacutes columnas tenga la tabla maacutes difiacutecil seraacute encontrar visualmente esos subtotales Puede solucionar este problema utilizando el forshymato condicional de Excel Usando la tabla de la figura 219 como ejemplo prueshybe esto antes de antildeadir los subtotales Seleccione las celdas Al B9 aseguraacutendose de que la celda Al sea la activa Entonces seleccione FormatogtFormato condicioshynal luego elija la opcioacuten Foacutermula del cuadro de lista desplegable y antildeada la sishyguiente foacutermula

= DERECHA ( $ A 1 5 ) = T o t a l

Ahora haga clic en el botoacuten Formato vaya a la pestantildea Fuente y seleccione como estilo de fuente la opcioacuten negrita Haga clic en Aceptar dos veces hasta cerrar los dos cuadros de diaacutelogo

La parte maacutes importante de la foacutermula es la utilizacioacuten de una referencia absoluta de la columna ($A) y de una referencia relativa de la fila (1) Como empezoacute la seleccioacuten desde la celda A l Excel cambiaraacute automaacuteticamente la foacutershymula para cada celda Por ejemplo las celdas A2 y B2 contendraacuten la foacutermula de formato condicional = DERECHA ($A2 5) = T o t a l y las celdas A3 y B3 tenshydraacuten = DERECHA ( $ A 3 5 ) = T o t a l

110 Excel Los mejores trucos

Ahora antildeada los subtotales y veraacute coacutemo se parecen a los que se muestran en la figura 2 21

I 1 2 3 bull A B 1 C | 1 Trimestre 2 Primero 3 Primero 4 Total tiimestiel 5 Segundo 6 Segundo 7 Segundo 8 Total trimestre2 9 Tercero 10 Tercero 11 Tercero 12 Total triexclmestre3 13 Total final

Coste $1000 $2000 $3000 $1000 $1000 $1000 $3000 $1500 $1000 $2500 $5000 $11000

| 15 |

Figura 221 Datos de la hoja de caacutelculo despueacutes de haber dado formato a los subtotales

Una uacuteltima cosa que debe recordar es que si elimina los subtotales no se volveraacute a aplicar la fuente en negrita

El truco sobre el truco

El uacutenico inconveniente que puede surgir con este meacutetodo es que el Total final aparezca con el mismo estilo que los subtotales Seriacutea interesante que el Total final tuviese un formato diferente de forma que resaltase de los subtotales y pudiera ser identificado maacutes faacutecilmente Utilizando el mismo ejemplo podemos hacer esto faacutecilmente

Con los mismos datos seleccione las celdas A1B9 aseguraacutendose de que la celda Al sea la activa Entonces seleccione FormatogtFormato condicional elija la opcioacuten Foacutermula del cuadro de lista desplegable e introduzca la siguiente foacutershymula

=$A1= Total f i n a l

Haga clic en el botoacuten Formato y luego vaya a la pestantildea Fuente y seleccioshyne como estilo la fuente en negrita Seleccione tambieacuten la opcioacuten Simple del cuashydro de lista desplegable Subrayado haga clic en Aceptar y de nuevo otra vez en Aceptar para cerrar todos los cuadros de diaacutelogo

A continuacioacuten seleccione la opcioacuten DatosgtSubtotales acepte las opciones predeterminadas y haga clic en Aceptar Ahora la hoja de caacutelculo deberiacutea tener el aspecto de la que se muestra en la figura 222

Puede utilizar cualquier formato que desee para conseguir que los subtotales sean maacutes sencillos de identificar

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 111

_ _ A B l C 1 [ bull 1 Trimestre Coste

[ bull 2 Primero $1000 IM bull 3 Primero $2000

- 4 Total trimestrel $3000 I bull 5 Segundo $1000

|| | bull 6 Segundo $1000 NI bull 7 Segundo $1000

- 8 Totaiacute trimestrel $3000 [ bull 9 Tercero $1500

bull 10 Tercero $1000 NI bull 11 Tercero $2500 j - 12 Total trimestre $5000

13 Total final $11000 14

l 15 I Figura 222 Datos de la hoja de caacutelculo con un total final maacutes resaltado

BSE1 Convertir las foacutermulas y funciones de Excel a valores ^ H La mayoriacutea de las hojas de caacutelculo de Excel contienen foacutermulas Pero a ^H veces desearaacute que solamente el resultado de una foacutermula quede

almacenado en una celda en vez de dejar la foacutermula que haraacute que los resultados se modifiquen cada vez que las celdas a las que haga referencia lo hagan

Puede hacer esto manualmente de dos maneras o tambieacuten puede utilizar una macro que haga el trabajo de forma automaacutetica Veamos primeramente los meacuteshytodos manuales

Utilizar Pegado especial

Puede copiar los resultados de una foacutermula y dejarla tal cual en su ubicacioacuten original utilizando la herramienta Pegado especial de Excel Supongamos que sus foacutermulas estaacuten en las celdas A1A100 Seleccione este rango luego seleccione EdicioacutengtCopiar y entonces seleccione la celda inicial en la que quiere duplicar los resultados Ahora vaya a EdicioacutengtPegado especial y seleccione la opcioacuten Valores Haga clic en Aceptar

Utilizar Copiar aquiacute soacutelo valores

Tambieacuten puede copiar los resultados de una foacutermula y dejar las foacutermulas orishyginales en su lugar utilizando el menuacute contextual que muchos usuarios ni sishyquiera saben que existe

Seleccione el rango de foacutermulas y haga clic con el botoacuten derecho sobre el borde derecho o izquierdo de la seleccioacuten (excepto en el pequentildeo recuadro de la esquina inferior derecha que sirve para la propagacioacuten) Manteniendo pulsado el botoacuten

112 Excel Los mejores trucos

derecho del ratoacuten (o haciendo clic mientras mantiene pulsada la tecla Control en Macintosh) arrastre la seleccioacuten a su destino suelte el botoacuten del ratoacuten y selecshycione en el menuacute contextual que aparece la opcioacuten Copiar aquiacute soacutelo valores Tambieacuten puede sobrescribir las foacutermulas originales con sus propios valores Para ello seleccione el rango de foacutermulas y haga clic con el botoacuten derecho del ratoacuten sobre el borde derecho o izquierdo de la seleccioacuten (de nuevo en cualquier lugar excepto en el recuadro de propagacioacuten) Mientras mantiene pulsado el botoacuten del ratoacuten arrastre la seleccioacuten una columna hacia la derecha o hacia la izquierda y luego vuelva al rango original soltando el botoacuten del ratoacuten y seleccionando la opcioacuten Copiar aquiacute soacutelo valores tal y como se muestra en la figura 223

I B Micros oftE

bull-iquesta] Archivo

J J Arial

A1

I 1 bull 2 i 3

4 5 8 7 8 9 10 11 12 13 14 15 16 17 18

d

A

laquoce - Librolxls fuumlT Edicioacuten Ver Insertar Formato

3

2 4 8 8

10 10

I

19

Arrastre ias celdaspra

j -eacute JL $ uuml - 10 - U M

f =B1C1 B C

1 2 3 4 5

L-

Mover aquiacute

Copiar aquiacute

w HHHHHHBHBS^^^ Herramientas Datos Ventana

aacute - J

i

2 2 2 2 2

i

Copiar aquiacute soacutelo como valores

Copiar aquiacute soacutelo como formatos

Crear viacutenculo aquiacute

Crear hiperviacutenculo aquiacute

Cancelar

^ -gt - B aacute E

M m ~j$ -| ooo euro osect

D E i F

f

H o j a l l | lt |

icrtradebdquomtradetradeJ Suma=42

~ lnixi raquo _ amp X i

$1 iacute l M ^ i 100 ^ j |

bull- - - gtT A ^ i G H - 1

mdash 1

i bull i r NUM

Figura 223 Menuacute contextual de acceso raacutepido

Utilizar una macro

Si con frecuencia convierte celdas que contienen foacutermulas y funciones a sus valores resultantes puede utilizar esta simple macro

Sub SoloValores( ) Dim rRange As Range

On Error Resume Next

Set rRange = ApplicationInputBox(Prompt=Seleccione las foacutermulas Title=SOacuteLO VALORES Type=8)

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 1 t3

If rRange Is Nothing Then Exit Sub rRange = rRangeValueacute

End Sub

Para utilizar esta macro vaya a HerramientasgtMacrogtEditor de Visual Basic (AltOpcioacuten-Fll) y seleccione lnsertargtMoacutedulo para insertar un moacutedulo estaacutendar Entonces escriba el coacutedigo anterior directamente dentro de la ventana del moacutedushylo Cierra esta ventana para volver a Excel y guardar los cambios Ahora seleccioshyne HerramientasgtMacrogtMacros (Alt Opcioacuten-F8) seleccione la macro que acabamos de crear SoloValores y haga clic en el botoacuten Opciones negr i t a s para asignarle una tecla de acceso raacutepido Cuando utilice la macro apareceraacute un cuashydro de diaacutelogo que le pediraacute que seleccione el rango que contiene las foacutermulas El rango que seleccione apareceraacute automaacuteticamente como una direccioacuten dentro del cuadro de diaacutelogo y en ese momento todo lo que debe hacer es realizar la conversioacuten haciendo clic en Aceptar

Antildeadir datos automaacuteticamente a una lista de validacioacuten La funcioacuten de validacioacuten de Excel es estupenda pero hay algo clave que no es capaz de hacer (al menos sin el siguiente truco) antildeadir automaacuteticamente una nueva entrada a la lista que estaacute siendo utilizada como origen de una lista de validacioacuten

Si ha utilizado la validacioacuten ya sabraacute que es una caracteriacutestica m u y intereshysante Quizaacute es maacutes impresionante su capacidad de antildeadir una lista a cualquier celda desde la cual el usuario podraacute seleccionar un elemento iquestNo seriacutea estupenshydo si cuando introdujese un nuevo nombre en una celda con validacioacuten Excel automaacuteticamente antildeadiese dicho valor a la lista Esto es posible gracias al sishyguiente truco Supongamos que tiene un listado de nombres en el rango de celshydas Al A10 como en la figura 224

[ A 1 Carlos Martiacutenez

2 Antonio Garciacutea 3 Mana Solans 4 Sergio Velase o 5 Silvia Rodriacuteguez 6 Aacutengel Blanco 7 Esther Carrasco 8 Javier Peacuterez 9 Ana Rebollo 10 Guillermo Ortega 11 12

I 13

B I

Figura 224 Configuracioacuten del libro de Excel para la lista de validacioacuten

114 Excel Los mejores trucos

Estos nombres representan los empleados de una empresa No es de extrantildear que deban antildeadirse los nuevos empleados a dicha lista pero por ahora la uacutenica forma de hacer esto es antildeadiendo los nuevos nombres al final de la lista y luego seleccionaacutendolos en la celda con validacioacuten

Para superar esta limitacioacuten siga estos pasos En la celda Al 1 introduzca la siguiente foacutermula y coacutepiela hacia abajo hasta la fila 20 tal y como se muestra en la figura 225 (observe la referencia relativa a A10)

=SI (0 ($D$l=raquo CONTARSI ($A$1A10$D$1) ) x $D$1)

A 1 Carlos Martiacutenez 2 Antonio Garciacutea 3 Mariacutea Solaris 4 Sergio Velasco 5 Silvia Rodriacuteguez 6 Aacutengel Blanco 7 Esther Carrasco

i 8 Javier Peacuterez 9 Ana Rehollo 10 Guillermo Ortega 11 X 12 x 13 x 14 x 15 x 16 x 17 x 18 x 19 x 20 x 21

B

Figura 225 Lista junto con la foacutermula antildeadida a las filas Al 1 A20

Ahora seleccione lnsertargtNombregtDefinir y en el cuadro de texto Nombres en el libro escriba MisNombres

En el cuadro de texto Se refiere a introduzca la siguiente foacutermula tal y como se muestra en la figura 226 Luego haga clic en Agregar y posteriormente en Aceptar

=DESREF(Hoj al$A$100CONTARSI (Hoj al$A$Altgtx) 1)

Seleccione la celda DI y luego vaya a DatosgtValidacioacuten Elija la opcioacuten Lista en el cuadro de lista desplegable y en el cuadro de texto Origen escriba ^MisNombres aseguraacutendose de que la casilla de verificacioacuten Celda con lista desplegable esteacute activada

Luego vaya a la pestantildea Mensaje de error y desactive la casilla de verificacioacuten Mostrar mensaje de error si se introducen datos no vaacutelidos Entonces haga clic en Aceptar y veraacute los resultados como se muestran en la figura 227

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 115

Nombres en el libro

~J

J

Agregar

Se refiere a

| =DESREF(Ho ja 1 $A$ 1 0 0 CONTAR SI(Ho ja 1 $A $A lt raquo) 1) ~3 Figura 226 Hacer que la lista sea dinaacutemica

A 1 |Carlos Martiacutenez

iexcl 2 Antonio Garciacutea 3 Mariacutea Solans 4 Sergio Velasco 5 Silvia Rodriacuteguez 6 Aacutengel Blanco 7 Esther Carrasco 8 Javier Peacuterez 9 Ana Rebollo 10 Guillermo Ortega 11 x 12 x 13 x

1 14

B C D | ||Columna1 bull ]

1 1

E

Figura 227 La lista con la validacioacuten antildeadida a la celda DI

Haga clic con el botoacuten derecho en la pestantildea con el nombre de la hoja y selecshycione la opcioacuten Ver coacutedigo

Entonces introduzca el siguiente coacutedigo

Priacutevate Sub Worksheet_Calculate( ) On Error Resume Next

ApplicationEnableEvents = False Range(MisNombres) = Range(MisNombres)Valueacute ApplicationEnableEvents = True

On Error GoTo 0

End Sub

Cierre esta ventana para volver a Excel y guardar los cambios Ahora seleccioshyne la celda DI escriba cualquier nombre que no exista en la lista y pulse Intro Seleccione de nuevo la celda DI y observe la lista veraacute como el nombre ha sido antildeadido automaacuteticamente como puede verse en la figura 228

Si desea antildeadir maacutes de diez nombres a la lista simplemente copie la foacutermula hacia abajo a partir de la fila 20

116 Excel Los mejores trucos

I ~A B c D I uanos Martiacutenez Isitvia Rodriacuteguez ^ iquest lAntonio Garciacutea l | ^ J

I 3 Mariacutea Solans 4 Sergio Velasco 5 Silvia Rodriacuteguez

I 6 Aacutengel Blanco I 7 Esther Carrasco

8 Javier Peacuterez 9 Ana Rebollo 10 Guillermo Ortega 1 1 X

12 x 13 x 14 x

E

Figura 228 La lista despueacutes de antildeadir una nueva entrada en la celda DI

Trucar las caracteriacutesticas de fecha y hora de Excel Las caracteriacutesticas de fecha y hora de Excel son estupendas si crea hojas de caacutelculo sencillas pero pueden causar problemas para proyectos maacutes avanzados Por suerte existen formas de evitar estos problemas

Excel de forma predeterminada utiliza el sistema de fecha 1900 Esto signifishyca que la fecha 1 de enero de 1900 tiene un valor numeacuterico de 1 la fecha 2 de enero de 1900 un valor numeacuterico de 2 y asiacute sucesivamente A estos valores se les llama valores en serie en Excel y permiten utilizar fechas en los caacutelculos

Con las horas ocurre praacutecticamente lo mismo aunque Excel las t rata como fracciones decimales siendo 1 la representacioacuten de 2400 oacute 0000 y por ejemplo 0 75 la representacioacuten de las 1800 ya que esta hora representa los tres cuartos de las 24 horas del diacutea

Para ver el valor numeacuterico de una fecha y o una hora asigne el formato Geshyneral a la celda que contenga dicho valor Por ejemplo la hora y fecha 3 de julio de 2002 150000 tiene un valor numeacuterico de 37440625 siendo el nuacutemero 625 la representacioacuten de la hora y el 3 7440 el nuacutemero de serie para la fecha

Sumar maacutes allaacute de las 24 horas

Puede sumar horas utilizando la funcioacuten SUMA (o simplemente el signo +) De esta forma la funcioacuten =SUMA(A1 A5) seriacutea el resultado total de horas en caso de que dichas celdas tuviesen valores vaacutelidos Sin embargo aquiacute nos enconshytramos un gran problema a menos que se diga lo contrario Excel no sumaraacute maacutes allaacute de las 24 horas Esto es debido a que cuando una hora excede el valor de 24 horas (un valor verdadero de 1) entonces se convierte en un nuevo diacutea y comienza de nuevo Para obligar a Excel a que no pase a un nuevo diacutea despueacutes de las 24 horas puede utilizar un formato de celda de 373055 o bien un formato personalizado de [h]mmss

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 117

Puede utilizar un formato similar para obtener el total de minutos o segunshydos de una hora en particular Para obtener el nuacutemero total de minutos de la hora 2400 por ejemplo asigne el formato [m] a la celda y obtendraacute un resultashydo de 1440 Para obtener el nuacutemero total de segundos utilice un formato persoshynalizado [s] con lo que obtendraacute 86400

Caacutelculos de fecha y hora

Si desea utilizar estos valores reales de hora en otros caacutelculos tenga siempre en mente estos nuacutemeros maacutegicos

60 60

3600 60

24 24

1440 60

86400 24

minutos o 60 segundos

segundos 6 0 minutos

horas

minutos 24 horas

horas 60 minutos 60 segundos

Sabiendo esto encontraraacute mucho maacutes sencillo manipular las horas y las feshychas Eche un vistazo a los siguientes ejemplos para ver a queacute nos referimos (suponiendo que la hora este en la celda Al ) Si tiene el nuacutemero 550 y lo que realmente quiere es 530 o 530 am utilice esto

=Al24

y aplique el formato que sea necesario Si tuvieron que ser las 1730 o las 530 am utilice esto

= ( A l 2 4 ) + 0 5

Para conseguir lo contrario es decir una hora decimal a partir de una hora real utilice esto

Al24

Si una celda contiene la fecha y hora real (por ejemplo 22 de enero de 2003 1536) y soacutelo desea obtener la fecha utilice esto

=ENTERO(Al)

Para obtener solamente la hora utilice esto

=A1-ENTERO(Al)

118 Excel Los mejores trucos

o bien

= R E S I D U 0 ( A 1 1 )

y aplique el formato que sea necesario Para averiguar la diferencia entre amshybas fechas utilice esto

A1-A2

Siendo Al la fecha posterior y A2 la fecha anterior El resultado que obtendreshymos seraacute el nuacutemero de diacuteas transcurridos entre ambas fechas Para que funcione correctamente la celda que contenga este caacutelculo debe tener formato numeacuterico ya que de lo contrario obtendremos un error Si no sabe cuaacutel de las dos fechas es la maacutes antigua puede utilizar las funciones MIN y MAX Por ejemplo para aseshygurarse de que el resultado es el correcto utilice esto

= M A X ( A 1 A 2 ) - M I N ( A l A 2 )

Igualmente cuando trabaje con horas quizaacute desee contar desde una hora inicial a una hora final por ejemplo conteniendo la celda Al el valor 850 pm y la celda A2 el valor 950 am Si calcula la resta de la hora final y la hora inicial (=A2-A1) obtendraacute ya que Excel de forma predeterminada no puede trabajar con horas negativas Para solucionar este problema puede usar uno de estos dos meacutetodos

=MAX(A1A2) -MIN ( A l A2 )

o bien

A1-A 2 + IF ( A 1 gt A 2 1 )

Tambieacuten le puede decir a Excel que antildeada cualquier nuacutemero de diacuteas meses o antildeos a una fecha en particular

=FECHA(ANtilde0(A1)+valorlMES(Al)+valor2DIacuteA(Al)+valor3)

Para antildeadir un mes a una fecha almacenada en la celda A l escriba

= FECHA(ANtilde0(A1) MES (Al ) + 1 DIacuteA ( A l ) )

Excel tambieacuten ofrece algunas funciones adicionales que forman parte del pashyquete de anaacutelisis Para acceder a ellas seleccione la opcioacuten Complementos del menuacute Herramientas Luego haga clic en la casilla de verificacioacuten Herramientas para anaacutelisis para activarla y cuando se le pregunte responda que siacute para instashylarlas A partir de entonces dispondraacute de funciones adicionales tales como DIALAB FINMES NUMDESEMANA etc

2 Trucos sobre las caracteriacutesticas incorporadas en Excel 119

Encontraraacute todas estas funciones dentro de la categoriacutea Fecha y hora del asisshytente para funciones En realidad estas funciones son faacuteciles de utilizar Lo que es difiacutecil es saber que estaacuten disponibles y coacutemo activarlas

Horas y fechas reales

Aveces las hojas de caacutelculo con datos importados (datos que se han introdushycido incorrectamente) acaba mostrando las fechas y las horas como texto y no como nuacutemeros reales Puede solventar esto faacutecilmente en Excel aumentando el ancho de las columnas un poco Para ello seleccione una columna vaya a FormatogtCeldasgtAlineacioacuten y luego cambie la alineacioacuten horizontal a General (que es el formato predeterminado para las celdas) Haga clic en Aceptar y obshyserve cuidadosamente las fechas y las horas Si no estaacuten correctamente alineashydas entonces es porque Excel no sabe que son fechas

Para arreglar esto primero copie una celda vaciacutea y luego seleccione la columshyna daacutendole formato de fecha y o hora Teniendo la columna seleccionada vaya a EdicioacutengtPegado especial seleccione las opciones Valores y Sumar Esto obliga a Excel a convertir cualquier fecha u hora en formato texto a fecha y hora real Puede que necesite cambiar el formato nuevamente Otro meacutetodo tambieacuten sencishyllo es hacer referencia a las celdas de esta forma

=Al + 0

o bien

=A11

iquestUn fallo de fechas

Excel asume de forma incorrecta que 1900 no fue un antildeo bisiesto Esto sigshynifica que el sistema interno de fechas de Excel cree que existioacute el 29 de febrero de 1900 cuando en realidad no fue asiacute Lo maacutes sorprendente es que Microsoft hizo esto de forma intencionada o al menos eso dicen Puede encontrar maacutes informashycioacuten en la direccioacuten httpsupportmicrosoftcomdefault aspxscid=kbEN-USql81370 A continuacioacuten le presentamos algunos viacutenculos interesantes con informacioacuten referente a fechas y horas

bull Coacutemo utilizar fechas y horas en Excel 2000

httpsupportmicrosoftcomdefaultaspxscid=kben-usQ2140946

bull Texto o nuacutemero convertido al formato numeacuterico no deliberado

httpsupportmicrosoftcomdefaultaspxscid=kben-usQ214233

120 Excel Los mejores trucos

bull Horas maacuteximas en Microsoft Excel

httpsupportmicrosoftcomdefault aspxscid=kben-usQ214386

bull Fechas y horas mostradas como nuacutemeros de serie cuando se visualishyzan foacutermulas

httpsupportmicrosoftcomdefault aspxscid=kben-usQ241072

bull Manipular y comprender las configuraciones del cuadro de diaacutelogo Formato de celdas

httpsupportmicrosoftcomdefaultaspxscid=kben-usa264372

bull Coacutemo utilizar fechas y horas en Microsoft Excel

httpsupportmicrosoftcomdefaultaspxscid=kben-us214094

Probablemente el t ratamiento de fechas y horas es uno de los aspectos maacutes confusos de Excel De todas formas con toda esta informacioacuten podraacute entender mejor todos los entresijos en relacioacuten a este tema

CAPIacuteTULO 3

Trucos sobre nombres Trucos 39 a 44

Probablemente la mayor ventaja de utilizar rangos con nombre es que las foacutermulas son mucho maacutes faacuteciles de leer y comprender no soacutelo para usted sino para todos aquellos que tengan que trabajar con sus hojas de caacutelculo Al utilizar rangos con nombres (una de las caracteriacutesticas maacutes faacuteciles y uacutetiles de Excel) puede seleccionar un rango de celdas y darle un hombre especiacutefico Llegados a ese punto puede hacer una referencia a ese rango utilizando el nombre en vez de su direccioacuten A pesar de que los rangos con nombre son una caracteriacutestica m u y potente podemos ir maacutes allaacute de su uso estaacutendar mediante algunos meacutetodos

Usar direcciones de datos por el nombre Aunque los nuacutemeros de celda son el fundamento de todo lo que hace Excel resulta mucho maacutes sencillo recordar nombres como por ejemplo Nuacutemero y cantidad de elementos que recordar los nuacutemeros de celdas como por ejemplo A1A100 Excel nos permite hacer esto de forma muy sencilla

Excel utiliza la misma teacutecnica para definir nombres de celdas y de rangos mediante el Cuadro de nombres que estaacute situado en la parte superior izquierda de la ventana jun to a la barra de foacutermulas Para dar nombre a una celda selecshycioacutenela escriba el nombre que desee darle en el Cuadro de nombres (veacutease figura 31) y pulse Intro Para dar nombre a un rango de celdas seleccione primero el rango escriba el nombre que desee darle en el Cuadro de nombres y luego pulse la tecla Intro

La lista desplegable que aparece a la derecha del Cuadro de nombres le permite buscar nombres de rangos y celdas que ya esteacuten almacenados Si selecciona ma-

m

124 Excel Los mejores trucos

nualmente un rango que ya tuviese un nombre apareceraacute dicho nombre en lushygar de la referencia al rango de celdas

IffM^^c^i^N^^w^MHMBPiMiMii i i lili iiiiPiiiwn

laquo^j Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana - amp X j

J J d Jraquo _J J J yen iquestgt - J - gg 2 - i i kg ktgt | j Anal - io ^ N ^ $ = = = ^ c IF _ - -^ - AT pound

MiCeldaFavorita bull pound 1000000 1 r mdash A B T ~C D | mdash =

1 [Celda muy interesantemdash -gt 1 1000000 euro1 mdash | 2

3 4 5 6 7 8 9 _J 10 11 12 13

14 |llt 4 bull w Ho ja l Ho ja2 Ho ja3 | ltraquo | j bull | f| Listo NUM 1

Figura 31 Dar el nombre MiCeldaFavorita a una celda

En las foacutermulas puede utilizar estos nombres en vez de los identificadores de celdas o rangos Si por ejemplo le dio el nombre fecha a la celda E4 podriacutea escribir la foacutermula =f echa en vez de =E4 De forma similar si creoacute el nombre cantidad para el rango de celdas A3A10 y quisiera obtener el total de los valoshyres almacenados en ellas la foacutermula podriacutea ser =SUMA ( c a n t i d a d ) en vez de = SUMA(A3A10)

Dado que las hojas de caacutelculo se van haciendo maacutes y maacutes grandes e intrincashydas resulta vital utilizar nombres de celdas y rangos para hacerlas manejables

Utilizar el mismo nombre para rangos en diferentes hojas de caacutelculo A veces resulta conveniente utilizar el mismo nombre para los datos que se encuentran en el mismo lugar pero en diferentes hojas dentro de un mismo libro Ello requiere de unos cuantos pasos adicionales para que pueda funcionar

Normalmente cuando da nombre a un rango eacuteste se asigna a nivel del libro lo que significa que un nombre se refiere a un rango especiacutefico de una hoja en particular que esteacute situada dentro de un libro Una vez asignado el nombre no

3 Trucos sobre nombres 125

puede ser utilizado otra vez para representar un rango que esteacute en otra hoja Sin embargo existe una forma de solucionar esto

Supongamos que tiene un libro que contiene tres hojas cuyos nombres son Hojal Hoja2 y Hoja3 Desea tener un rango con el nombre MiRango (podriacutea ser cualquier otro nombre) que haga referencia al rango A1A10 de la Hojal en caso de estar situados en ella al rango Al A10 de la Hoja2 en caso de estar situashydos en ella etc

Para conseguir esto active la Hojal seleccione el rango Al A10 y luego haga clic en el Cuadro de nombres como hicimos en el t ruco anterior Escriba Hojal IMiRango y luego pulse la tecla Intro Haga lo mismo para la Hoja2 y Hoja3 escribiendo Hoja2 IMiRango y Hoja3IMiRango respectivamente Ahora active cualquier hoja y haga clic en la lista desplegable del Cuadro de nombres Deberiacutea ver tan soacutelo un elemento con el nombre MiRango Seleccioacutenelo y veraacute como se selecciona directamente el rango A1A10 Ahora active cualquier otra hoja y haga lo mismo

Observaraacute como se selecciona automaacuteticamente el rango A1A10 de la hoja que tenga activa Esto es posible porque hemos introducido el nombre de la hoja seguido del s igno de admi rac ioacuten an tes del n o m b r e del r a n g o Si va a lnsertargtNombregtDefinir soacutelo veraacute un nombre aquel que se refiere a la hoja que se encuentra activa en este momento

En caso de que el nombre de la hoja incluya espacios no podraacute hacer la refeshyrencia simplemente escribiendo Hoja 1 IMiRango Tendraacute que escribir Hoja 1IMiRango es decir escribiendo comillas simples antes y despueacutes del nombre de la hoja De hecho podriacutea utilizar esas comillas simples aunque el nombre de la hoja no contuviese espacios lo cual siempre es una buena idea para usar siempre la misma nomenclatura

Tambieacuten puede utilizar un nombre de rango con referencias relativas De forshyma predeterminada los nombres de rango son absolutos pero no tiene porqueacute ser asiacute Intente lo siguiente

Seleccione la celda A l l de cualquier hoja y luego vaya a lnsertargtNombregt Definir En el cuadro de texto Nombres en el libro escriba MisNuacutemeros En el cuadro de texto Se refiere a escriba =A$1 A$10 y luego haga clic en Agregar y en Aceptar Ahora introduzca el nuacutemero 1 en la celda A l Seleccioacutenela y coloque el cursor del ratoacuten sobre el pequentildeo recuadro situado en la esquina inferior dereshycha que se utiliza para propagar Haga clic en eacutel y mientras mantiene pulsada la tecla Control arrastre el cursor hasta la celda A10

Al mantener pulsada la tecla Control mientras que se propaga una celda con un uacutenico nuacutemero Excel incrementa dicho nuacutemero de 1 en 1

Ahora introduzca un 1 en la celda Bl y propaguacuteela hasta la celda B10 pero esta vez sin mantener pulsada la tecla Control

126 Excel Los mejores trucos

Estando en la celda Al 1 introduzca la siguiente foacutermula

=SUMA(MisNuacutemeros)

En la celda Bl 1 introduzca esta foacutermula

= SUMA(Mi sNuacuteme r o s )

Deberiacutea obtener los resultados 55 y 10 respectivamente Esto es debido a que la celda A l l estaba activa cuando seleccionoacute lnsertargtNombregtDefinir y asignoacute al nombre de rango la referencia A$l A$10 que es una columna relativa y una fila absoluta

gt El signo del doacutelar ($) obliga a que cualquier rango sea absoluto

Cuando utilizamos el nombre MisNuacutemeros en una foacutermula siempre haraacute referencia a las 10 celdas que se encuentran inmediatamente por encima de la foacutermula Si escribimos la foacutermula =SUMA (MisNuacutemeros) en la celda Al 1 de cualshyquier otra hoja seguiraacute haciendo referencia a las celdas A1A10 de la hoja que estaba activa cuando creoacute el nombre del rango

Supongamos que desea simplificar la suma de las 10 celdas que hemos menshycionado anter iormente Seleccione la celda A l l de cualquier hoja Vaya a lnsertargtNombregtDefinir y escriba en el cuadro de texto de la parte superior MiSuma Luego en el cuadro de texto Se refiere a escriba lo siguiente

=SUMA(A$1A$10)

Haga clic en Agregar y luego en Aceptar Ahora introduzca el nuacutemero 1 en la celda A l seleccioacutenela de nuevo coloque el cursor del ratoacuten sobre el cuadro de propagacioacuten y mientras mantiene pulsada la tecla Control arraacutestrelo hasta la celda A10 Una vez hecho esto introduzca un 1 en la celda Bl y propaguacuteelo hasta la celda B10 pero esta vez sin mantener pulsada la tecla Control

En la celda Al 1 introduzca la siguiente foacutermula

=MiSuma

En la celda Bl 1 introduzca la foacutermula

=MiSuma

Obtendraacute los mismos resultados que la vez anterior pero esta vez sin que sea necesario utilizar la funcioacuten SUMA Mezclar las referencias absolutas que relatishyvas y juntando algunas funciones puede ser m u y uacutetil para ahorrarse gran cantishydad de trabajo

3 Trucos sobre nombres 127

QnKjQI Crear funciones personalizadas utilizando nombres M ^ V ^ w ^ l Aunque hacer referencia a datos por su nombre es muy uacutetil a veces lo seriacutea

K l f l maacutes si pudieacutesemos almacenar un valor constante o incluso una foacutermula especialmente si ha estado creando funciones personalizadas en VBA

Supongamos que tiene un impuesto del 10 que se necesita utilizar a lo larshygo de todo el libro para algunos caacutelculos En vez de tener que introducir el valor 10 (01) en cada una de las foacutermulas que aplican este impuesto podriacutea introshyducir la palabra Impuesto y que Excel supiese automaacuteticamente que debe sustishytuirlo por el valor 0 1 Veamos coacutemo puede hacerse esto

Seleccione lnsertargtNombregtDefinir En el cuadro de texto Nombres en el libro escriba Impuesto y en el cuadro de texto Se refiere a introduzca = 0 1 Luego haga clic en Aceptar

Ahora puede introducir cualquier foacutermula en una celda y en vez de antildeadir 10 como parte del caacutelculo puede sustituirlo por la palabra Impuesto Probableshymente una de las grandes ventajas de utilizar este meacutetodo es que si tiene que incrementar o de incrementar el impuesto y las foacutermulas deben reflejar dicho cambio simplemente basta con ir a lnsertargtNombregtDefinir seleccionar el nomshybre Impuesto y luego modificarlo convenientemente

Para dar un paso maacutes allaacute en este concepto puede utilizar las foacutermulas con los rangos definidos en Se refiere a en vez de utilizar direcciones de celdas o valores constantes Supongamos que desea crear un nombre que cuando se inshytroduzca en una celda devuelva automaacuteticamente la SUMA de las 10 celdas que se encuentran por encima Seleccione la celda Al 1 de cualquier hoja y luego vaya a lnsertargtNombregtDefinir En el cuadro de texto Nombres en el libro escriba Toshytal y en el cuadro de texto Se refiere a escriba lo siguiente

=SUMA(A1A10)

Luego haga clic en Agregar y en Aceptar Introduzca cualesquiera 10 nuacutemeros en cualquier columna empezando en la

fila 1 Ahora vaya a la fila 11 de la misma columna y escriba lo siguiente

=Total

El nombre Total automaacuteticamente devolveraacute la SUMA de los 10 valores que haya introducido en el rango A1A10 Si desea crear una foacutermula similar a la anterior pero que no esteacute restringida a solamente 10 celdas sino que haga refeshyrencia a todas las celdas que se encuentren por encima de la fila en cuestioacuten siga estos pasos

Seleccione la celda BU y luego vaya a lnsertargtNombregtDefinir Seleccione el nombre Total

128 Excel Los mejores trucos

Vaya al cuadro de texto Se refiere a que deberiacutea contener el tex to =SUMA (Bl B l 0 ) Esto le permite crear foacutermulas con nombre En otras palabras como no hizo referencias absolutas para columna en el nombre original Total siempre haraacute referencia a la columna en la que se utilice el nombre

Ahora haga clic en el cuadro de texto Se refiere a y cambie la foacutermula por la siguiente

=SUMA(B$1B10)

Haga clic en Agregar y luego en Aceptar

Seleccione cualquier fila de cualquier columna que no sea la fila 1 e introduzshyca = T o t a l con lo que obtendraacute automaacuteticamente la SUMA de todas las celdas que se encuentran por encima independientemente de cuantas filas haya Esto se debe a que ha vinculado la fila nuacutemero 1 utilizando una referencia absoluta dejando la referencia a la celda B10 como relativa lo que significa que siempre terminaraacute en la celda inmediatamente superior a donde se introduzca la foacutermula = T o t a l

Combinando este truco con una de las caracteriacutesticas estaacutendar (aunque poco conocida) de Excel el meacutetodo de la interseccioacuten es posible crear funciones de buacutesqueda sofisticadas Si no conoce coacutemo funciona el meacutetodo de la interseccioacuten a continuacioacuten mostramos un pequentildeo ejemplo sobre su uso

En la celda A l introduzca el encabezado Nombre en la celda Bl Pagar y en la celda Cl Tiacutetulo Introduzca Juan en la celda A2 y Antonio en la celda A3 Introduzca 10 en la celda B2 y 20 en la celda B3 Introduzca Sr en la celda C2 y Dr en la celda C3 Ahora seleccione el rango A1C3 y luego vaya a lnsertargtNombregtCrear Aseguacuterese de que estaacuten activadas las casillas de verificashycioacuten Fila superior y Columna izquierda y luego haga clic en Aceptar

Seleccione cualquier celda que esteacute fuera de ese rango e introduzca = A n t o shyn i o T iacute t u l o Deberiacutea obtener el tiacutetulo correspondiente a la persona que ha inshytroducido

El espacio entre las palabras Antonio y Tiacutetulo es importante ya que r es la forma por la que Excel entiende que se trata de un operador de ^ interseccioacuten

Basaacutendonos en este concepto podemos combinar esta caracteriacutestica con las de foacutermulas con nombre de Excel para conseguir no soacutelo que las hojas de caacutelculo sean maacutes sencillas utilizar sino tambieacuten mucho maacutes sencillas de leer y comprenshyder Supongamos que tiene una tabla configurada en una hoja de caacutelculo de forshyma m u y similar a la que se muestra en la figura 32 y que estaacute utilizando esa tabla para crear los nombres en Excel

3 Trucos sobre nombres 129

mmmmmmmmmmmmmm sj Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana l - S x

j JS y 3 J J A ^ a aacute -iquest iquestgt - laquoo - -- a pound - uuml ti M 1 Arial raquo 10 ^ [ Ntilde ] ^ S E M M -g S| 000 euro o8 1^ _iquest 3raquo A sect1

A1 bull ^ Nombre empleado B

Nombre empleado Carlos Martiacutenez Antonio Garciacutea Mariacutea Solans Sergio Velasco Silvia Rodriacuteguez Aacutengel Blanco Esther Carrasco Javier Peacuterez Ana Rebollo iexclGuillermo Ortega

Tarifa Hora Puesto 1725 Jefe de proyecto 124 Consultor Juacutenior

12 Analista seacutenior 1325 Comercial

98 Administrativo 1185 Programador seacutenior 1545 Representante 181 Jefe de proyecto

14 Coordinador 143 Consultor seacutenior

F-_T

BSCEiSSl- Crear nombres en

Iiexcl7 Ma superior]

W Columna igquierda

f Riacutea inferior

V Columna iquesterecha

j Aceptar sect Cancelar

J

J

bull M H o j a l ^ H o j a 2 H p j a 3 J JltJ 5uma=i384

lf

Figura 32 La tabla y el cuadro de diaacutelogo de Crear nombres

Una vez que cree los nombres para la tabla observaraacute que Excel coloca automaacuteticamente un siacutembolo de subrayado en los espacios situados entre dos o maacutes palabras Esto es debido a que los nombres de los rangos no pueden contener espacios Seleccione lnsertargtNombregtDefinir introduzca TarifaHoraAntonio en el cuadro de texto Nombres en el libro y =Antonio_Garciacutea Tarifa_Hora Luego haga clic en Agregar tal y como se muestra en la figura 33

Ahora en cualquier celda fuera de la tabla introduzca lo siguiente

=TarifaHoraAntonio

La tarifa por hora para Antonio se devolveraacute automaacuteticamente Quizaacute desee experimentar ahora con las intersecciones para ver coacutemo funcioshy

nan de forma oacuteptima en sus proyectos

Crear rangos que se expandan y contraigan Si constantemente necesita actualizar y antildeadir informacioacuten a los datos o si trabaja con graacuteficos y tablas dinaacutemicas desearaacute poder crear rangos dinaacutemicos con nombre que se expandan y contraigan en funcioacuten de los datos

Para entender coacutemo funcionan los rangos con nombre deberiacutea en primer lugar familiarizarse con la funcioacuten DESREF (si es que no lo ha hecho todaviacutea) una de las funciones de buacutesqueda de referencia de Excel

130 Excel Los mejores trucos

^sect] Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana

J J d Jgt _JI J JL iquest iquest - J ^ - J -i - 81

bull bull bull 2iacuteJ ^ 1 000 euro B12 - f

gtli iacute i M bull

B D Nombre empleado Tarifa iquestpound

Carlos Martiacutenez

Antonio Garciacutea

Mariacutea Solans

Sergio Velasco

Silvia Rodriacuteguez

Aacutengel Blanco

Esther Carrasco

Javier Peacuterez

Ana Rebollo

Guillermo Ortega

iSi Nombres en el libro

TarifaHoraAntonio

Guillermo_Ortega Javier_Peacuterez Mariacutea_Solans Nombre_empleado Puesto 5ergio_Velasco 5ilvia_Rodriguez Tarifa Hora

Agregar

|=Antonio_Garciacutea Tarifa_Hora

M i bull bull l H o j a l H o j a 2 H o j a 3 llaquol ir

Figura 33 Buacutesqueda de nombre creada

Comenzaremos con el rango dinaacutemico con nombre maacutes simple aquel que se expandiraacute hacia abajo una uacutenica columna pero solamente tanto como entradas contenga la columna Por ejemplo se la columna A contiene 10 filas continuas de datos el rango dinaacutemico con nombre incorporaraacute el rango Al A10 Siga estos pasos para crear dicho rango

Vaya a lnsertargtNombregtDefinir introduzca MiRango en el cuadro de texto Nombres en el libro y en el cuadro de texto Se refiere a introduzca lo siguiente

=DESREF($A$100CONTARA($A$1$A$10 0)1)

Ahora haga clic en Agregar y luego en Aceptar

Cuando defina el rango para CONTARA evite la tentacioacuten de incluir toda la columna de datos para asiacute no obligar a dicha funcioacuten a contar

^ miles de celdas innecesarias

Teniendo ahora los datos en la columna A este rango con nombre incorporashyraacute todos los datos que se encuentren en filas contiguas comenzando por la celda A l Si desea comprobar el rango dinaacutemico con nombre puede hacerlo de diferenshytes formas

Por desgracia los rangos dinaacutemicos con nombre no estaacuten accesibles a traveacutes del Cuadro de nombres estaacutendar de la parte superior izquierda de la ventana de

3 Trucos sobre nombres 131

Excel Pero siacute puede hacer clic en dicho cuadro escribir el nombre MiRango y pulsar Intro Excel seleccionaraacute automaacuteticamente el rango Por supuesto t amshybieacuten puede utilizar el cuadro de diaacutelogo Ir a yendo a Edicioacutengtlr a (ControlCo-mando-I) escribiendo MiRango en el cuadro de texto y haciendo clic en Aceptar

El rango dinaacutemico con nombre que acaba de crear en el ejemplo anterior conshytiene la funcioacuten CONTARA como paraacutemetro de la funcioacuten DESREF

Recuerde que la funcioacuten CONTARA contaraacute todas las celdas que no esteacuten vaciacuteas Tenga en cuenta que esto tambieacuten incluye las foacutermulas que dichas celdas contenga que puedan estar devolviendo un texto vaciacuteo ()

Si tiene una lista que soacutelo contiene datos numeacutericos y al final de ella desea almacenar un texto pero no quiere que dicho texto quede incluido como parte del rango dinaacutemico con nombre puede reemplazar la funcioacuten CONTARA con la funcioacuten estaacutendar de Excel CONTAR funcioacuten que soacutelo cuenta las celdas que conshytienen datos numeacutericos

El siguiente ejemplo utilizaremos el rango dinaacutemico con nombre para definir una tabla de datos que deseamos sea dinaacutemica Para ello escriba la siguiente funcioacuten en el cuadro de texto Se refiere a

=DESREF($A$100CONTARA($A$1$A$10 0)CONTARA($1$1))

Aquiacute el rango dinaacutemico con nombre se expandiraacute hacia abajo tantas entradas como datos haya que la columna A y a lo largo de tantas filas como encabezados haya en la fila 1 Si estaacute seguro de que el nuacutemero de columnas para la tabla se va a mantener estable puede reemplazar la segunda funcioacuten CONTARA por un nuacuteshymero fijo como pueda ser 10

El uacutenico problema al utilizar rangos dinaacutemicos con nombre para una tabla de datos es que presupone que la columna A estableceraacute la longitud maacutexima para la tabla En la mayoriacutea de los casos esto seraacute cierto pero a veces puede que la columna maacutes larga sea otra diferente Para evitar este problema puede utilizar la funcioacuten MAX de Excel que devuelve el nuacutemero maacutes alto en un rango de celshydas Como ejemplo configure una tabla de forma similar a la que se muestra en la figura 34

Utilice la fila 1 para almacenar un nuacutemero de las funciones CONTARA que estaacuten haciendo referencia a la columna y por tanto devolviendo el nuacutemero de entradas en cada columna Utilice la funcioacuten MAX para el argumento alto de la funcioacuten DESREF Esto asegura que el rango dinaacutemico con nombre para la tabla siempre se expandiraacute tanto como la columna maacutes larga Por supuesto puede ocultar la fila 1 ya que el usuario no necesita verla

132 Excel Los mejores trucos

Figura 34 Tabla dinaacutemica de datos y el cuadro de diaacutelogo Definir nombre

En todos estos ejemplos hemos supuesto que los datos siempre estaraacuten en filas contiguas sin celdas en blanco entre medias Aunque este es el meacutetodo coshyrrecto para configurar una lista a una tabla de datos a veces no se tiene control sobre esto En el siguiente ejemplo el listado de nuacutemeros de la columna A tamshybieacuten contiene celdas en blanco Esto significa que si intenta utilizar las funciones CONTAR o CONTARA el rango dinaacutemico con nombre no funcionaraacute correctashymente como puede verse en la figura 35

En este caso aunque el uacuteltimo nuacutemero en el rango estaacute en la fila 10 el rango dinaacutemico se estaacute expandiendo solamente hasta la fila 6 Esto es debido a que hemos utilizado la funcioacuten CONTAR para contara desde la celda Al a la celda Al 00 Sin embargo soacutelo hay 6 datos numeacutericos en la lista por lo que el rango se expande solamente 6 filas

Para evitar este problema utilizaremos la funcioacuten de Excel COINCIDIR Esta funcioacuten se utiliza para devolver la posicioacuten relativa de un elemento en una mashytriz de aquel que coincida con un valor especiacutefico en un orden especiacutefico Por ejemplo se utiliza esta funcioacuten COINCIDIR

=COINCIDIR(6$A$1$A$1000)

en el mismo conjunto de nuacutemeros que mostraacutebamos de la figura 35 la funshycioacuten COINCIDIR devolveraacute el nuacutemero 10 que representa la fila 10 de la columna

3 Trucos sobre nombres 133

A Ha devuelto 10 porque le hemos dicho a la funcioacuten que encuentre el nuacutemero 6 en el rango Al A100

Agregar |

Qiminar

Se refiere a

=DE5REF(Hoja2$A$l00CONTAR(Hoja2$A$l $A$100) 1)| 31

llt i bull bull l lVHoa l Ho ia2 HQja3Z LiacuteL JID Figura 35 Un rango de nuacutemeros y cuadro de diaacutelogo Definir nombre

Obviamente cuando utilicemos esta funcioacuten como parte de un rango dinaacutemishyco con nombre lo maacutes probable es que no conozcamos el uacuteltimo nuacutemero del rango Por tanto necesitamos decirle a la funcioacuten COINCIDIR que intente buscar un nuacutemero exageradamente alto en el rango que nunca podriacutea existir y camshybiar el uacuteltimo argumento de la funcioacuten por 1

El ejemplo anterior le dijimos a la funcioacuten COINCIDIR que encontrarse el nuacuteshymero exacto 6 ni maacutes ni menos Ahora si reemplazamos el 0 por 1 en el uacuteltimo argumento de la funcioacuten estamos indicaacutendole que busque el valor maacutes alto que sea menor o igual que el valor indicado

Para ello utilice esta foacutermula

=COINCIDIR(1E+306$A$1$A$1001)

Para crear un rango dinaacutemico con nombre que se expanda hasta la uacuteltima fila que contenga un nuacutemero (independientemente de que haya celdas entre medias) escriba esta foacutermula en el cuadro de texto Se refiere a del cuadro de diaacutelogo Definir nombre tal y como se muestra en la figura 36

=DESREF(Hoja2$A$l00COINCIDIR(lE+3 0 6 H o j a 2 $ A $ l $ A $ 1 0 0 l ) 1 )

El siguiente tipo loacutegico de rango dinaacutemico con nombre que podriacutean surgir de esto es aquel que se expanda hasta la uacuteltima entrada de texto independienteshymente de que haya celdas en blanco en la lista o en la tabla

134 Excel Los mejores trucos

uumlj

Aceptar j

O Agregar

9 10 11 12 13 14 15 16 17 18 19 20 4 4 bull H Hojal H o j a 2 H o j a 3

J

Se refiere a

j =DESREF(Hoja2 $A$ 1 0 0 COINCIDIRAacute E+306 Ho ja2$A$1 $A$ 100 1) 1 )| 5

X iexclD Figura 36 Un rango dinaacutemico que se extiende hasta la uacuteltima entrada numeacuterica

Para hacer esto reemplace la funcioacuten COINCIDIR con la siguiente

C O I N C I D I R ( $ A $ 1 $ A $ 1 0 0 - 1 )

Esto siempre devolveraacute el nuacutemero de fila de la uacuteltima entrada de texto situada en el rango $A$1$A$100

Ahora que ya sabe coacutemo hacer esto para entradas numeacutericas y de texto es loacutegico que necesite definir de alguna forma un rango dinaacutemico con nombre que sea capaz de buscar maacutes allaacute de las celdas en blanco en una lista que contenga tanto texto como nuacutemeros

Para poder hacer esto primeramente insertados celdas en blanco por encima de la lista seleccionando las filas 1 y 2 y luego seleccionando la opcioacuten lnsertargtFila En la primera fila antildeada esta funcioacuten

=MAX(COINCIDIR($A$3$A$100-1)COINCIDIR(1E+306$A$3$A$1001))

En la celda inmediatamente por debajo introduzca el nuacutemero 1 La celda por debajo de ella debe contener un encabezado de texto para la lista Hemos antildeadido el nuacutemero 1 de forma que la segunda funcioacuten COINCIDIR no devuelva N A cuando no haya nuacutemeros en el rango A3A100 Esta segunda funcioacuten siempre encontraraacute el texto porque disponemos de un encabezado

Deacutele el nombre FilaMax a la celda Al y luego seleccione lnsertargtNombregt Definir De un nombre al rango dinaacutemico como por ejemplo MiLista y en el cuadro de texto Se refiere a introduzca los siguiente tal y como se muestra en la figura 37

= DESREF(Hoj a2$A$ 300Fi1aMax1)

3 Trucos sobre nombres 135

- ^ j Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana

bullJal -1 _ fi x

A3

plusmnpound 12

pound =MAX(CQINCIDIR( $A$3$A$100-1) COINCIDIR(1 E+3QG$A$3$A$100 1))

1

Mi Listn

Daniel

Carlos

100iexcl

iexclJavier

Fernando

500

antos

iexclJorge

300

Definir nombre

Nombres en el libro 3 4 5 6 7 8 9 10 11 12 13 14 15 _ _ _ _ _ 16 17 18 19 20

llt lt bull bulliXHojal gtHoja2( Hoja3

Sentildealar

Aceptar i

Z3 Agregar

J

=DE5REF(Ho ja2 $ A $3 0 0 FilaMax 1) 3

H T

Figura 37 Lista dinaacutemica con entradas numeacutericas y de texto conteniendo celdas en blanco

La siguiente lista muestra otros tipos de rangos dinaacutemicos con nombre que puede encontrar uacutetiles Para todos estos ejemplos necesitaraacute rellenar la columna A con una mezcla de entradas de texto y numeacutericas Para ello seleccione la opshycioacuten lnsertargtNombregtDefinir introduzca en el cuadro de texto Nombres en el libro cualquier palabra (por ejemplo MiRango) La uacutenica parte que va a cambiar es la foacutermula que introduciremos en el cuadro de texto Se refiere a

Expandir tantas filas como entradas numeacutericas haya

En el cuadro de texto Se refiere a introduzca los siguiente

= D E S R E F ( $ A $ 1 0 0 C O N T A R ( $ A $ A ) 1 )

Expandir tantas filas como entradas de texto y numeacutericas haya

En el cuadro de texto Se refiere a introduzca los siguiente

=DESREF($A$100CONTARA($A$A)1)

Expandir hasta la uacuteltima entrada numeacuterica

En el cuadro de texto Se refiere a introduzca los siguiente = DESREF($A$100COINCIDIR(1E + 3 06$A$A) )

136 Excel Los mejores trucos

Si espera un nuacutemero mayor que 1E+306 (un 1 con 306 ceros) caacutembielo por un nuacutemero mayor auacuten

Expandir hasta la uacuteltima entrada de texto

En el cuadro de texto Se refiere a introduzca los siguiente

=DESREF($A$100COINCIDIR($A$A-1))

Expandir basaacutendose en el valor de otra celda

Introduzca el nuacutemero 10 en la celda Bl y luego en el cuadro de texto Se refiere a introduzca los siguiente

=DESREF($A$100$B$11)

Hora cambie el nuacutemero en la celda Bl y el rango cambiaraacute de acuerdo a ello

Expandir una fila por cada mes

En el cuadro de texto Se refiere a introduzca los siguiente

=DESREF($A$100MES(HOY())1)

Expandir una fila por cada semana

En el cuadro de texto Se refiere a introduzca los siguiente

=DESREF($A$100NUMDESEMANA(HOY())1)

Esta uacuteltima requiere que el paquete de anaacutelisis esteacute instalado Para ello debe seleccionarlo en la opcioacuten HerramientasgtComplementos

Anidar rangos dinaacutemicos para obtener una flexibilidad maacutexima Un rango dinaacutemico con nombre que reside dentro de otro rango dinaacutemico con nombre puede ser muy uacutetil cuando tengamos que trabajan con grandes listas de nombres por ejemplo

Por ejemplo es posible crear un rango con nombre llamado NombresJ que se refiere a todos los nombres de una lista ordenada que comienzan con la letra J Comenzamos con la lista de nombres de la columna A como la que se muestra en la figura 38 en donde la celda Al es un encabezado y la lista estaacute ordenada Seleccione lnsertargtNombregtDefinir En el cuadro de texto Nombres en el libro introduzca Nombres y en el cuadro de texto Se refiere a introduzca la siguiente foacutermula

=DESREF($A$200CONTARA($A$2$A$1000)1)

3 Trucos sobre nombres 137

Haga clic en Agregar Nuevamente haga clic en el cuadro de texto Nombres en el libro e introduzca NombresJ (o podriacutea ser cualquier otra letra que desee) y luego haga clic en Se refiere a e introduzca lo siguiente

=DESREF(INDIRECTO(DIRECCIOacuteN(COINCIDIR(raquoJ CONTARSI(NombresraquoJn)1)

Nombres0)+11))00

donde J es el criterio de coincidencia que deseamos en este caso es decir aquellos nombres que comienzan por J Ahora haga clic en Agregar Cuando haga clic en el cuadro de texto Se refiere a en el que se encuentra la funcioacuten todos los nombres que comienzan por la letra J tienen una marca a su alrededor tal y como se muestra en la figura 38

Nombres en el libro

NombresJ

A

Nombres

Al ex

Ana

David

Guadalupe

paime laquoJavier

8 laquoJuan

9 Caiacuteda

10 Luis

11 Mar

12 Marta

13 Sandra

14 Santos

1 5 S o n i a - mdash bull bull bull bull - - bull bull - - bull bullbullbull -

16 Tama

17

llt 4 bull H H o j a l Hoja2 Hoja3

JSi

-3 Agregar

EJMnar

J

| S=DE5REF(INDIRECTO(DIRECCION(COINCIDIRf J Nombres 0)+1 1)) 0 0 ^J

J_ Figura 38 Un rango dinaacutemico con nombre con otro rango dinaacutemico dentro de eacutel

Si lo desea puede crear un rango con nombre para cada letra del alfabeto pero quizaacute una opcioacuten mejor seriacutea que el rango con nombre cambiase en funcioacuten de la letra que escribieacutesemos en una celda de la hoja Para poder hacer esto simshyplemente introduzca cualquier letra en una celda que no esteacute utilizando y luego deacutele el nombre Letra a dicha celda Ahora seleccione DatosgtValidacioacuten y en el cuadro de lista desplegable seleccione la opcioacuten Lista En el cuadro de texto Origen introduzca ABC es decir cada una de las 26 letras del abecedario como puede verse la figura 39 Al terminar haga clic en Aceptar

Seleccione lnsertargtNombregtDefinir e introduzca Nombres en el cuadro de texto Nombres en el libro Luego introduzca la siguiente foacutermula en el cuadro de texto Se refiere a y haga clic en Agregar

= DESREF($A$ 200CONTARA($A$ 2$A$10 0 0) 1)

Haga clic de nuevo en el cuadro de texto Nombres en el libro y escriba NombresDeLetra Luego en el cuadro de texto Se refiere a introduzca la si-

138 Excel Los mejores trucos

guiente foacutermula y cuando haya terminado haga clic en Agregar y luego en Aceptar

=DESREF(INDIRECTO(DIRECCIOacuteN(COINCIDIR(LetraNombres0)+11))00 CONTARSI(NombresLetra)1)

El resultado deberiacutea ser como el de la figura 310

fflfffflfflWTWff i Configuracioacuten i J Mensaje entrante ] Mensaje de error ]

Criterio de validacioacuten

Permitir

iexclLista

Datos

1 Origen

JAjBjCjDEjFG

bull j Jv Omitir blancos

P Celda con lista desplegable

13 HIJjKLM^J

r Aplicar estos cambios a otras celdas con la misma configuracioacuten

Aceptar j Cancelar

Figura 39 Una lista de validacioacuten de letras seguidas de los caracteres comodines

^|] Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana l d J

- f l X

4) w ~

A9 pound L

Definir nombreacute

Nombres en el libro

NombresDeLetra

Letra Nombres

A

1 [Nombres

2 Al ex

3 Ana

4 David

5 Guadalupe

6 Jaime

7 Javier

8 Juan

9 la ida

10 l u i s

11 Maiacute

12 Marta

13 Sandra

14 Santos

15 Sonia

16 Tania

17 ~~

H i bull wHoial Hoja2Hoja3

Sentildealar

Aceptar

U Agregar

Eliminar

J Se refiere a

| hDESREF(INDIRECTO(DIRECCION(COINCIDIR(Letra Nombres 0)+1 1))0C iexclj

bull i r

Figura 310 Un rango dinaacutemico con nombre controlado por el contenido de otra celda

3 Trucos sobre nombres 139

No tiene que reescribir las foacutermulas desde cero para los rangos S^ dinaacutemicos con nombre En vez de ello mientras esteacute trabajando con el

cuadro de diaacutelogo Definir nombre puede hacer clic en cualquier rango dinaacutemico de nombre sobrescribir el nombre que aparece en el cuadro de texto Nombres en el libro ir al cuadro de texto Se refiere a modificarlo de forma adecuada y luego hacer clic en Agregar Esto no reemplazaraacute el rango dinaacutemico de nombres original sino que antildeadiraacute uno totalmente nuevo que tendraacute el nuevo nombre que le haya dado

Identificar rangos con nombre en una hoja de caacutelculo Excel permite a los usuarios asociar nombres representativos a rangos especiacuteficos dentro de las hojas de caacutelculo A medida que el nuacutemero de diferentes rangos con nombre crezca en la hoja de caacutelculo necesitaraacute algunas herramientas para poder identificar las aacutereas que son referenciados por dichos rangos con nombre

A continuacioacuten veamos un par de meacutetodos raacutepidos que puede utilizar para identificar las aacutereas que son referenciadas por cada rango con nombre

Meacutetodo 1

Un meacutetodo muy raacutepido para identificar rangos referenciados es seleccionando la opcioacuten lnsertargtNombregtPegar o pulsar la tecla F3 En el cuadro de diaacutelogo Pegar nombre haga clic en Aceptar como se muestra en la figura 311 y Excel mostraraacute una lista de todos los nombres en filas comenzando por la celda activa y mostrando los nombres que corresponden a cada referencia en la otra columshyna Esto le proporcionaraacute un listado de todos los nombres del libro de Excel actishyvo Aunque esto pueda ser m u y uacutetil para identificar rangos especiacuteficos todaviacutea requiere que tenga que seleccionar manualmente un rango con nombre especiacutefishyco o quizaacute utilizar el cuadro de diaacutelogo Ira Sin embargo una vez que tenga la lista de rangos con nombre puede eliminar todas las direcciones de celdas referenciadas que se corresponden con los nombres y reemplazarlas con una funcioacuten de viacutenculo m u y simple

Todo esto le permitiraacute crear una lista de todos los rangos con nombre Hacienshydo clic en cualquier elemento de dicha lista le llevaraacute automaacuteticamente al rango especificado Por ejemplo suponiendo que la lista de nombres se encuentre la columna A comenzando por la celda A l Situacuteese en la celda B l e introduzca esta foacutermula

=HIPERVINCULO([Librolxls]ampA1A1)

140 Excel Los mejores trucos

^ I I H H I H I IacuteSjiexcl ArcNvo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana ff x

bull J U Iacute J Iacute J J a ^ a amp - y -gt B ^ Z ^ I Uuml I Uuml bull- |

A r i a l - 10 - N iquestT S raquo S 3 ^ iquestsect 000 euro gsect pE L_ - ^ amp I

A1 ltr fx Diacuteas

B

JL 2 I i AJ JJ 7 V _ j

Si J2J

11-15 i Si RA N lt

[Diacuteas |=Hoja1$DJ2$D$24

Meses =Hoja1$F$6$K$9

Miembros =Hoja1$C$4$C$27

Mis totales =Hoja1$G$12$G31

__D __ E _ J F

Pegar nombre [Piacuteas Meses Miembros Misjtotales

Pegar lista I

-m

zl J Cancelar

bull w H o j a l H o iexcl t oacute H o 3 3 l iacuteJ l NUM

_G__Tiacute

gtir

Figura 311 El cuadro de diaacutelogo Pegar nombre

Copie esta foacutermula hacia abajo tantas filas como sean necesarias y reemplace Libro 1 por el nombre real del libro

aacute] Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana

J J J Iacute J J Iacute ^ Uuml j i ^ - i ^ iacute - iacute i k39

Arial - 10 - N X S ^ M ^ ^ ~sect 000 euro Ip _ ~ iquestraquo N20 ^ pound

- f l X

VZl

M

s $ (gt CD

()

MI

O Q) m

iquestMiembros

M i bull M j V H o j a l H o j a 2 Hoja3

Listo til bull i r

Figura 312 Zoom de la hoja que proporciona los nombres de rangos para su faacutecil identificacioacuten

3 Trucos sobre nombres 141

Meacutetodo 2

Este meacutetodo es m u y sencillo pero raramente conocido Todo lo que tiene que hacer es establecer el zoom de la hoja Excel a un nuacutemero inferior a 40 (es decir 39 o menos) Observaraacute como se muestran todos los nombres de rangos en la hoja para su faacutecil identificacioacuten tal y como se muestra en la figura 312

CAPIacuteTULO 4

Trucos sobre tablas dinaacutemicas Trucos 45 a 49

Las tablas dinaacutemicas son uno de los atractivos maacutes potentes de Excel a pesar de que mucha gente no sabe queacute es lo que pueden hacer Las tablas dinaacutemicas muestran y extraen gran variedad de informacioacuten a partir de una tabla de datos que se encuentra en Microsoft Excel o bien en otro tipo de base de datos compashytible Las tablas dinaacutemicas se utilizan con frecuencia para extraer informacioacuten estadiacutestica a partir de datos almacenados en serie Luego podraacute desplazarse por los diferentes campos de la tabla dinaacutemica para ver sus datos desde perspectivas diferentes

Los datos en serie para una tabla dinaacutemica deben estar organizados en vv un formato claacutesico de tabla La fila uno debe contener los encabezados

w y los datos relacionados debajo de ellos Los datos no deberiacutean contener filas o columnas en blanco Incluso aunque no tenga planeado utilizar tablas dinaacutemicas mantener los datos en este formato haraacute posible que otras personas puedan analizarlo utilizando dicha caracteriacutestica

Tablas dinaacutemicas un truco en siacute mismas Las tablas dinaacutemicas son una de las caracteriacutesticas maacutes potentes e impresionantes de Excel un truco muy ingenioso en siacute mismo y que requiere cierta experimentacioacuten para poder comprender

Utilizaremos con frecuencia las tablas dinaacutemicas cuando desarrollemos hojas de caacutelculo para nuestros clientes Una vez que un cliente vea una tabla dinaacutemica a partir de entonces siempre nos pediraacute que si le podemos crear una para ellos

144 Excel Los mejores trucos

mismos Aunque cualquiera puede crear una tabla dinaacutemica por desgracia m u shychas personas tienen miedo de hacerlo porque ven que puede ser m u y complejo De hecho cuando utilice una tabla dinaacutemica por primera vez el proceso puede parecer algo engorroso Por ello estaacute claro que es necesaria cierta persistencia Descubriraacute que esa persistencia mereceraacute la pena una vez que experimente la mejor caracteriacutestica de las tablas dinaacutemicas su capacidad de ser manipulada mediante prueba y error e inmediatamente mostrar los resultados de dicha mashynipulacioacuten Si el resultado que obtiene no es el esperado puede utilizar la funshycioacuten Deshacer de Excel e intentar otra cosa nueva Haga lo que haga nunca estaraacute cambiando la estructura de la tabla original por lo que no tendraacute que preocuparse

iquestPor queacute se les llama tablas dinaacutemicas

Las tablas dinaacutemicas le permiten organizar los datos utilizando teacutecnicas de arrastrar y colocar y luego obtener los resultados de forma inmediata Las tablas dinaacutemicas son interactivas una vez que la tabla esteacute completa podraacute ver faacutecilshymente coacutemo la informacioacuten se ve afectada cuando mueve los datos dinaacutemicamente Esto resultaraacute m u y claro una vez que pruebe las tablas dinaacutemicas

Incluso para los desabolladores experimentados de tablas dinaacutemicas un eleshymento de prueba y error siempre es necesario a la hora de producir los resultados deseados i Al final se encontraraacute a siacute mismo manejando dinaacutemicamente su tabla con frecuencia

iquestPara queacute cosas resultan buenas las tablas dinaacutemicas

Las tablas dinaacutemicas pueden producir informacioacuten de resumen para una tashybla con datos Imagine que tiene una tabla con informacioacuten que contiene nomshybres direcciones edades puestos nuacutemeros de teleacutefono y coacutedigos postales Con una tabla dinaacutemica podraacute encontrar faacutecil y raacutepidamente cosas como las que le mostramos a continuacioacuten

bull Cuaacutentas personas tienen el mismo nombre

bull Cuaacutentas personas comparten el mismo coacutedigo postal

bull Cuaacutentas personas ostentan el mismo puesto

Tambieacuten podriacutea obtener informacioacuten como esta

bull Un listado con las personas que tienen el mismo puesto

bull Un listado de aquellas direcciones con el mismo coacutedigo postal

4 Trucos sobre tablas dinaacutemicas 145

Si necesita separar segmentar y hacer informes de los datos las tablas dinaacuteshymicas se convertiraacuten en una herramienta critica para su trabajo

iquestPor queacute utilizar tablas dinaacutemicas cuando las hojas de caacutelculo ya ofrecen muchas funciones de anaacutelisis

Quizaacute la ventaja mayor de utilizar tablas dinaacutemicas es el hecho de que puede generar y extraer informacioacuten m u y uacutetil a partir de una tabla m u y grande de datos en cuestioacuten de minutos y sin tener que utilizar gran cantidad de memoria del ordenador En muchos casos podriacutea obtener los mismos resultados de una tabla utilizando las funciones incorporadas de Excel pero le llevariacutea maacutes tiempo y utilizar maacutes memoria

Otra de las ventajas de utilizar tablas dinaacutemicas es que si desea tener alguna informacioacuten nueva simplemente basta con arrastrar y colocar Ademaacutes puede optar por tener la informacioacuten actualizada cada vez que abre el libro o hace clic en Actualizar

Los graacuteficos dinaacutemicos como extensioacuten de las tablas dinaacutemicas

Microsoft ya introdujo los graacuteficos dinaacutemicos en Excel 2000 La tabla que genera a traveacutes del Asistente para tablas dinaacutemicas tambieacuten produce un graacutefico dinaacutemico (o maacutes bien una tabla dinaacutemica y un informe de graacutefico dinaacutemico) Cuando crea una tabla dinaacutemica tambieacuten puede crear un graacutefico dinaacutemico al mismo tiempo sin ninguacuten esfuerzo extraordinario Los graacuteficos dinaacutemicos le permiten crear graacuteficos interactivos que antes eran imposibles a menos que se utilizara VBA o los controles de Excel

Veremos maacutes detalle el Asistente para graacuteficos dinaacutemicos maacutes adelante en este mismo capiacutetulo

Camp Los graacuteficos dinaacutemicos no estaacuten disponibles en la versioacuten de Excel para ^^ Macintosh

Crear tablas y listas para ser utilizadas en tablas dinaacutemicas

Cuando crea una tabla dinaacutemica debe organizar el conjunto de datos que estaacute utilizando en una tabla y o en una lista Dado que las tablas dinaacutemicas basan todos sus datos en esta tabla o lista es de vital importancia que configure dichas tablas y listas de forma uniforme En este contexto una tabla no es maacutes que una lista que tiene un tiacutetulo que tiene maacutes de una columna con datos y que tiene

146 Excel Los mejores trucos

diferentes encabezados para cada una de esas columnas A menudo se hace refeshyrencia a un listado en el mismo contexto en el que crea una tabla Las mejores praacutecticas que se deberiacutean aplicar a la hora de configurar un listado le ayudaraacuten enormemente cuando necesite generar una tabla dinaacutemica para los datos

Cuando se extraen datos a traveacutes del uso de funciones de buacutesqueda o de base de datos se puede ser algo menos exigente a la hora de configurar la tabla o la lista Esto es debido a que siempre puede compensar esa carencia con la ayuda de una funcioacuten obteniendo al final los resultados deseados De todas formas siemshypre seraacute maacutes sencillo si configura las tablas o las listas de la forma maacutes clara posible Las caracteriacutesticas incorporadas de Excel presuponen mucho acerca de la configuracioacuten y la distribucioacuten de los datos Aunque ofrecen cierto grado de fleshyxibilidad m u y a menudo encontraraacute que es maacutes sencillo todo si se ajusta a la siguiente guiacutea a la hora de configurar dichas tablas o listas

bull Es necesario la utilizacioacuten de encabezados ya que las tablas dinaacutemicas los utilizaraacuten para dar nombre a los campos Dichos encabezados deberiacutean aparecer siempre en la fila inmediatamente superior a la que se encuentra los datos Ademaacutes nunca dejeacute una fila en blanco entre los datos y los encabezados Maacutes auacuten haga que los encabezados sean diferentes de algushyna manera por ejemplo ponieacutendolos en letra negrita

bull Al menos deje tres filas en blanco por encima de los encabezados Podraacute utilizarlos para foacutermulas datos criacuteticos etc En cualquier caso siempre podraacute ocultar dichas filas si asiacute lo desea

bull Si tiene maacutes de una listado tabla en la misma hoja de caacutelculo deje al meshynos una columna en blanco entre cada lista o tabla Esto ayudaraacute a Excel a reorganizarlas como entidades diferentes Sin embargo si esas listas y tashyblas estaacuten relacionadas unas con otras entonces es mejor que las combine en una uacutenica tabla maacutes grande

bull Evite tener celdas en blanco dentro de los datos En vez de dejar celdas en blanco para indicar datos repetidos en una misma columna repita el dato tantas veces como sea necesario

bull Ordene la lista o los datos preferiblemente por la columna situada maacutes a la izquierda Esto haraacute que los datos sean maacutes sencillos de leer y de intershypretar

Si sigue estas directrices de la forma maacutes estricta posible veraacute que utilizar las tablas dinaacutemicas seraacute una tarea relativamente sencilla En la figura 41 puede ver una tabla con datos que estaacute bien organizada jun to a una tabla dinaacutemica que se estaacute generando Observe que la mayoriacutea de las fechas que son iguales estaacuten repetidas en la columna Fecha Por delante de estos datos estaacute el paso en el

4 Trucos sobre tablas dinaacutemicas 147

que se configura la distribucioacuten de los datos en el asistente en el que se muesshyt ran los campos opcionales Paacutegina Fila y Columna asiacute como el campo obligatoshyrio Datos

c Cantidad Comisioacuten Venta

UZ2 Construya el informe de tabla dinaacutemica arrastrando los botones de campo de la derecha sobre el diagrama a la izquierda

I Producto I

| Fecha l

iexclCantidad j

ComisioacutenI

Ayuda Aceptar

Mieacute 3 Mioacute 2004 X] Uo 2004

julio 2004 julio 2004 julio 2004 julio 2004 julio 2004 blio 2004 julio 2004 kgosto 2004 hgosto 2004 kgosto 2004 kgosto 2004 kgosto 2004 hgosto 2004 kgosto 2004 jigosto 2004 fegosto 2004 kgosto 2004 kgosto 2004 agosto 2004 kgosto 2004 fegosto 2004

j kgosto 2004 L_J kgosto 2004 wmrxagosto 2004

1850 1325 1225 900 850

7536 4500 1268 7400 4521 1340 2632 1200 563 990

1875 6530 1400 7536 4500 1268 7400 4521 1340 2632 1200

euro Comisioacuten euro Comisioacuten euro Comisioacuten ^ Comisioacuten euro Comisioacuten euro Comisioacuten euro Comisioacuten euro Comisioacuten euro Comisioacuten euro Comisioacuten euro Comisioacuten euro Comisioacuten euro Comisioacuten euro Venta euro Comisioacuten euro Comisioacuten euro Venta euro Comisioacuten euro Comisioacuten euro Comisioacuten euro Comisioacuten euro Comisioacuten euro Comisioacuten euro Comisioacuten euro Venta euro Comisioacuten

lt lt bull bull XHojal Hoja2 Hoja3 J i L bull i n Figura 41 Tabla dinaacutemica generada a partir de una tabla de datos bien distribuida

El Asistente para tablas dinaacutemicas y graacuteficos dinaacutemicos

Como ya mencionamos anteriormente para ayudar a los usuarios a crear tablas dinaacutemicas Excel ofrece un asistente para tablas dinaacutemicas y graacuteficos dishynaacutemicos Este asistente le guiaraacute a traveacutes de los pasos para crear la tabla dinaacutemishyca utilizando un proceso consistente en cuatro pasos en los que le diraacute a Excel las siguientes cosas

bull Coacutemo estaacuten configurados los datos y si desea crear un graacutefico dinaacutemico asociado (en caso de que esteacuten disponibles en la versioacuten que esteacute utilizanshydo de Excel)

bull Doacutende estaacuten almacenados los datos por ejemplo un rango de celdas en el mismo libro una base de datos otro libro etc

bull Queacute columnas de datos van en cada campo los campos opcionales Paacutegishyna Fila y Columna asiacute como el campo obligatorio Datos

bull Doacutende colocar la tabla dinaacutemica (por ejemplo en una nueva hoja o en la ya existente)

148 Excel Los mejores trucos

Existen otros pasos que se pueden seguir para manipular la tabla dinaacutemica pero la mayoriacutea de los usuarios encuentran maacutes sencillo hacer esto despueacutes de decir a Excel doacutende colocarla

Excel 2000 y las versiones posteriores tienen una gran ventaja sobre Excel 97 le permiten elegir coacutemo configurar los datos despueacutes de que el asistente haya finalizado

Ahora que ya sabe algo maacutes sobre las tablas dinaacutemicas y sus funciones ha llegado el momento de conocer algunos trucos uacutetiles que pueden hacer que esta caracteriacutestica sea todaviacutea maacutes potente

Q M 9 Compartir tablas dinaacutemicas pero no sus datos M ^ P f f T ^ I Crearemos una imagen de la tabla dinaacutemica que no necesita de la

^ H M ^ H estructura de datos subyacente

Es posible que necesite enviar tablas dinaacutemicas a otras personas para que las visualicen pero por alguna razoacuten no desea enviar los datos subyacentes que estaacuten asociados a ella Quizaacute desee que los demaacutes soacutelo vean ciertos datos por motivos de confidencialidad por ejemplo Si este fuese el caso puede crear una copia estaacutetica de una tabla dinaacutemica y permitir que los destinatarios soacutelo vean lo que necesitan ver

Y lo mejor de todo es que el tamantildeo del archivo con la copia estaacutetica seraacute mucho menor que el del archivo original

Suponiendo que tenga una tabla dinaacutemica en un libro de Excel todo lo que necesita hacer es seleccionar la tabla dinaacutemica por completo copiarla y en una hoja en blanco ir a EdicioacutengtPegado especial y luego seleccionar la opcioacuten Valoshyres Entonces ya podraacute mover esta hoja a otro libro o quizaacute utilizarla tal cual

El uacutenico inconveniente de este meacutetodo es que Excel no pega los formatos de la tabla dinaacutemica jun to con los valores Esto puede hacer que la copia estaacutetica sea maacutes difiacutecil de leer y quizaacute sea menos impresionante Si tambieacuten desea incluir el formato puede tomar una imagen estaacutetica (en vez de una copia estaacutetica) de la tabla dinaacutemica y luego pegarla en una hoja en blanco lo que le proporcionaraacute una copia a todo color y con formato de la tabla dinaacutemica original a la que podraacute aplicar cualquier tipo de formato que desee sin tener que preocuparse de que el formato se perderaacute cuando la actualice Todo esto ocurre gracias a que la imagen no estaacute vinculada de ninguna forma con la tabla dinaacutemica original

Para crear una imagen estaacutetica aplique el formato que desee a la tabla dinaacuteshymica y luego seleccione cualquier celda que se encuentre dentro de ella Desde la

4 Trucos sobre tablas dinaacutemicas 149

barra de herramientas Tabla dinaacutemica despliegue el menuacute Tabla dinaacutemica y lueshygo vaya a la opcioacuten SeleccionargtToda la tabla Una vez hecho esto mantenga pulsada la tecla Mayuacutes y entonces vaya a EdicioacutengtCopiar imagen En el cuadro de diaacutelogo que apareceraacute elija las opciones tal y como se muestran en la figura 42 y luego haga clic en Aceptar

1 2

Ti Ti

5 6 | 7 8 9 10 11 12

113 14

PT FT iexcl17 M8~ FT H 4

A | B Nombre H Ndeg de nombres

Ana HiHlM^raquo David ^ J ^ ^ p ^ S Guadalupe ^ H H | j | iexcl g j | |

Javier p y l ^ i g ^ p i p i Juan I B i Uuml uuml i g i ^ K Laida j H ^ B I B B B LUIacuteS Pff^yy^PJ Mar ^ ^ ^ ^ ^ H Marta R S S B ^ ^ Sandra t Iacute 8 Iacute ^ ^ 8 i M I Santos B i S ^ ^ ^ ^ S Sonia i o | S S g ^ ^ K Tantildeiacutea g E H f f l B Vanesa J iB i ^ ^ ^puumly WiHiam JSiiBS

bull M Hoja i XHoja2 Hoja3

C j D I E

Apariencia

bull iComo en pantalla]

lt Como en impresora

Formato

( Imagen

C Mapa de bits

I Aceptar | Cancelar I

H

i F i G t iacute

Figura 42 Cuadro de diaacutelogo Copiar imagen

Finalmente haga clic en cualquier lugar fuera de la tabla dinaacutemica y seleccioshyne EdicioacutengtPegar Acabaraacute teniendo una imagen a todo color y con formato de la tabla dinaacutemica tal y como se muestra en la figura 43 Esto puede ser m u y uacutetil especialmente si tiene que mandar la tabla dinaacutemica por e-mail a otras personas para que puedan verla Tendraacuten la informacioacuten que necesitan incluyendo todos los formatos que sean relevantes y todo ello con un tamantildeo del archivo que seraacute menor Sin embargo no podraacuten manipular los datos De igual forma soacutelo poshydraacuten ver aquello que desee que vean

Tambieacuten puede utilizar este meacutetodo de tomar una imagen para un rango de celdas Puede seguir los pasos que hemos indicado anteriormente o puede utilishyzar la herramienta que proporciona el pequentildeo icono en forma de caacutemara situashydo en la barra de herramientas

Para utilizar este uacuteltimo meacutetodo vaya a VergtBarras de herramientasgtPersona-lizar En el cuadro de diaacutelogo haga clic en la pestantildea Comandos luego seleccione la opcioacuten Herramientas en la lista de categoriacuteas y en el cuadro de lista de la parte derecha desplaacutecese hasta que encuentre la opcioacuten Caacutemara Haga clic en ella y arraacutestrela hasta aquella barra de herramientas en la que desee mostrarla Ahora seleccione un rango de celdas haga clic en el icono de la caacutemara y luego haga clic en cualquier lugar de la hoja con lo que obtendraacute una imagen vinculada de

150 Excel Los mejores trucos

dicho rango Cualquiera que fuera el formato o los datos que tuviese el rango original queda reflejado automaacuteticamente en la imagen

A 6 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

H lt

Tabla dinaacutemica original Horahrfe Ns de nombres 1 Al ex Ana David Guadalupe Jaime Javier Juan Laida Luis Mar-Marta Sandra Santos Sonia Tan i a Vanesa William Total general

bull raquo i Hojal H

1 -

_ 3ja2 )Hoja3

c TD E F

Imagen ele la tabla dinaacutemica Nombre H Ndeg de nombres I ^ ^ ^ ^ H Al ex Ana David Guadalupe Jaime Javier Juan Laida Luis Mar Marta Sandra Santos Sonia Tania Vanesa William Total general

1o

if M

G mdash

mdash

_J plusmniexclntilde Figura 43 Tabla dinaacutemica original contrastada con su imagen

Automatizar la creacioacuten de tablas dinaacutemicas Los pasos que debe seguir para crear una tabla dinaacutemica requieren de un cierto esfuerzo y a menudo dicho esfuerzo resulta redundante Con un poco de coacutedigo VBA podraacute crear tablas dinaacutemicas de forma automaacutetica

Las tablas dinaacutemicas son una caracteriacutestica m u y potente e inteligente para ser utilizadas con datos que estaacuten almacenados en una lista una tabla Por desshygracia el esfuerzo para crear una tabla dinaacutemica es suficiente como para disuashydir a algunas personas a que experimenten con ello Aunque la configuracioacuten de algunas tablas dinaacutemicas puede ser m u y complicada la mayoriacutea de ellas pueden ser creadas de forma raacutepida y sencilla Dos de las preguntas maacutes frecuentes en Excel tienen que ver con coacutemo obtener la cuenta de todos los elementos de una lista y coacutemo crear una lista de elementos uacutenicos a partir de una lista que contieshyne muchos datos duplicados En este apartado le mostraremos coacutemo crear una tabla dinaacutemica raacutepida y faacutecilmente que resuelva estas tareas

Supongamos que tiene una larga lista de nombres en la columna A siendo la celda Al el encabezado Desea conocer cuaacutentos elementos hay en la lista asiacute como generar un listado con los elementos uacutenicos Para ello seleccione la celda Al (el encabezado) y luego vaya a DatosgtInforme de tablas y graacuteficos dinaacutemicos (en las versiones para Macintosh Datosgtlnforme de tablas dinaacutemicas) para abrir el asistente

4 Trucos sobre tablas dinaacutemicas 151

Aseguacuterese de que o bien tiene seleccionada la opcioacuten Lista o base de datos de Microsoft Excel o bien ha seleccionado una uacutenica celda dentro de los datos Esto permitiraacute a Excel detectar automaacuteticamente los datos subyacentes que se van a utilizar posteriormente Si estaacute utilizando la versioacuten de Windows seleccione la opcioacuten Tabla dinaacutemica en la parte inferior del cuadro de diaacutelogo Haga clic en el botoacuten Siguiente y el asistente deberiacutea haber tomado automaacuteticamente el rango correcto para los datos situados en la columna A (de hecho los marcaraacute en la hoja) Si es asiacute haga clic en el botoacuten Siguiente En caso contrario utilice el ratoacuten para seleccionar el rango correcto Ahora haga clic en el botoacuten Disentildeo y arrastre al aacuterea DATOS los que seraacuten soacutelo campos (deberiacutea ver el tiacutetulo que aparece en la celda Al ) Arrastre el campo nuevamente pero esta vez al aacuterea FILA Con ello la pantalla deberiacutea quedar como la que se muestra la figura 44 A continuacioacuten haga clic en Aceptar

A B

1 Nombres

2 Alex t -T 1 Ana

4 David

5 Guadalupe

6 Jaime 7 iexclJavier

8 Juan

9 Laida

10 Luis

11 Mar

14

15

16 bull

_ampo ae origen Nombres

hombre j dlfjiUAtJJMiilJfcU

1tiacute bull

19

20

21

22

H 4

Suma +

Promedio Max Miacuten Producto Contar nuacutemeros Juuml

C

I

-1 | PAGINA |

bull

D E I F

1 Nombres

ltJ

1 Aceptar ]

Cancelar

Ocultar j

Nuacutemero

FILA

G H

2ltiexcl

Construya el informe de tabla dinaacutemica arrastrando los botones de campo de la derecha sobre el diagrama a la izquierda

COLUMNA

Luenta de Nombres

DATOS

1 Nombres |-

Ayuda j | Aceptar | Cancelar j

l laquo l bull i r

Figura 44 Cuadros de diaacutelogo Campo de la tabla dinaacutemica y Asistente para tablas y graacuteficos dinaacutemicos

Llegados a este punto si lo desea puede hacer doble clic en el botoacuten de CL campo situado en el aacuterea DATOS (que tendraacute la etiqueta Cuenta de

v^^ nombres como puede verse la figura 43) y cambiar en el cuadro de lista Resumir por la opcioacuten seleccionada por cualquier otra (por ejemplo Suma Promedio etc) De forma predeterminada Excel utiliza la funcioacuten CONTAR si estaacute trabajando con texto y la funcioacuten SUMA si estaacute trabajando con nuacutemeros

Para terminar seleccione la opcioacuten Hoja de caacutelculo nueva como destino del informe de tabla dinaacutemica y haga clic en el botoacuten Finalizar Al hacer esto deberiacutea

152 Excel Los mejores trucos

ver la tabla dinaacutemica en una nueva hoja con teniendo los elementos uacutenicos de la lista jun to con el caacutelculo de cuaacutentas veces aparece cada elemento (nombre) en la lista

iquestQueacute ocurre si desea tener una macro que realizase todos estos pasos creando la tabla dinaacutemica a partir de una columna que especifique Si simplemente grashyba una macro se encontraraacute que a menudo soacutelo funciona si los datos tienen el mismo encabezado Para evitar este inconveniente puede crear una simple macro almacenada en el libro o en el libro personal de macros (lo veremos en el capiacutetulo 7) y que puede utilizar para crear una tabla dinaacutemica sobre cualquier lista de elementos Esto requeriraacute que escriba algo de coacutedigo geneacuterico en VBA e introdushycirlo en un moacutedulo estaacutendar dentro del libro de macros personal o en cualquier otro libro de trabajo

Para empezar vaya a HerramientasgtMacrogtEditor de Visual Basic (Alt Op-cioacuten-Fl 1) y luego vaya a lnsertargtMoacutedulo A continuacioacuten introduzca el siguiente coacutedigo

Sub ObtenerCuenta( ) Dim Pt As PivotTable Dim strField As String

strField = SelectionCells(11)Text Range(Selection SelectionEnd(xlDown))Ntildeame = Elementos

ActiveWorkbookPivotCachesAdd(SourceType=xlDatabase _ SourceData==Elementos)CreatePivotTable TableDestination= _ TableName=ListaElementos

Set Pt = ActiveSheetPivotTables(ListaElementos) ActiveSheetPivotTableWizard TableDestination=Cells(3 1) PtAddFields RowFields=strField PtPivotFields(strField)Orientation = xlDataField

End Sub

Para volver a la ventana principal de Excel cierre esta ventana o pulse Alt Comando-CLy grabe el libro de trabajo Antes de ejecutar este coacutedigo seleccione el encabezado de la lista y aseguacuterese de que eacutesta no contiene celdas en blanco

^ Si ordena lista se eliminaraacuten raacutepidamente las celdas en blanco

Este coacutedigo crearaacute automaacuteticamente un rango con nombre para la lista llashymado Elementos para a continuacioacuten crear una tabla dinaacutemica en una nueva hoja basaacutendose en este rango La proacutexima vez que tenga una larga lista con datos le bastaraacute con seleccionar su encabezado y ejecutar esta macro Todo el

4 Trucos sobre tablas dinaacutemicas 153

trabajo de configuracioacuten de la tabla dinaacutemica se realizaraacute en un abrir y cerrar de ojos

Q ^ Q Mover los totales finales de una tabla dinaacutemica n P^^fl U n a ^ e ^as c o s a s m a s gt r r t a n t e s de las tablas dinaacutemicas es que los totales ^ ^ ^ U ^ H finales que resumen los datos siempre terminan en la parte inferior de la

tabla lo que significa que tiene que desplazarse hasta ellos para poder verlos Moveremos estos totales a la parte superior donde es maacutes sencillo encontrarlos

Aunque las tablas dinaacutemicas son un gran meacutetodo para resumir datos y exshytraer informacioacuten uacutetil no hay una opcioacuten incorporada para hacer que el Total general aparezcan la parte superior de forma que sea localizable raacutepidamente

Antes de que pasemos a describir un meacutetodo m u y geneacuterico para mover dicho total a la parte superior explicaremos coacutemo puede atacar este problema utilizanshydo la funcioacuten IMPORTARDATOSDINAMICOS que ha sido disentildeada especiacuteficamente para extraer datos a partir de una tabla dinaacutemica

Puede utilizar esta funcioacuten de la siguiente forma

=IMPORTARDATOSDINAMICOS(Suma de la cantidad$B$5)

o asiacute

IMPORTARDATOSDINAMICOS ( C a n t i d a d $ B $ 5 )

Cada una de estas funciones extraeraacute los datos y haraacute un seguimiento del Total general a medida que eacuteste se mueva arriba abajo a izquierda o a derecha Hemos utilizado la direccioacuten $B$5 pero con tal de que utilice cualquier celda que esteacute dentro de la tabla dinaacutemica siempre obtendraacute el total

La primera funcioacuten utiliza el campo Suma de la cantidad mientras que la segunda utiliza el campo Cantidad Si la tabla dinaacutemica tiene el campo Cantishydad en el aacuterea de datos debe darle nombre a dicho campo Si por el contrario el campo estaacute siendo utilizado dos o maacutes veces en el aacuterea de datos deberaacute especifishycar el nombre que le dio o bien el nombre que aceptoacute de forma predeterminada (veacutease figura 45)

Puede hacer doble clic en estos campos para cambiarlos Este hecho puede parecer confuso si no estaacute m u y familiarizado con las tablas dinaacutemicas Por suershyte en Excel 2002 y posteriores el proceso es mucho maacutes sencillo ya que puede rellenar en una celda los argumentos y dar la sintaxis correcta utilizando el cursor del ratoacuten En cualquier celda escriba = (el signo de igual) y luego utilice el cursor del ratoacuten para hacer clic en la celda que actualmente contiene el Total general Excel rellenaraacute automaacuteticamente los argumentos

154 Excel Los mejores trucos

Aacuteltente para tmampmmmMmm i

oacute Construya el informe de tabla dinaacutemica arrastrando los botones de campo de la derecha sobre el diagrama a la izquierda

| PAGINA |

Producto

FILA

COLUMNA

Suma de Cantidad

ldeg de veces vendido

DATOS

[Producto j

| Cantidad I

[Comisioacuten iacute

I Meses |

1 A ntilde o s

Ayuda Aceptar |iexcl

Figura 45 El campo Cantidad utilizado dos veces con el nombre Suma de Cantidad en un caso y Ndeg de veces vendido en otro

Por desgracia si utiliza el asistente para funciones o escribe directashymente = IMPORTARDATOSDINAMICOS( ) y luego hace clic en la celda que contiene el Total general Excel se hace un liacuteo intentando anidar otra funcioacuten IMPORTARDATOSDINAacuteMICOS dentro de la celda

Probablemente el meacutetodo maacutes sencillo aunque menos sofisticado para exshytraer el Total general es utilizar la siguiente funcioacuten

=MAX(ColTFTab)

donde la columna que ac tua lmente contiene el Total general se l lama ColTFTab

Utilizar de forma efectiva datos de otro libro dinaacutemicamente Utilizaremos los datos que se encuentran en otro libro como origen para nuestra tabla dinaacutemica

Cuando se crea una tabla dinaacutemica en Excel disponemos de numerosas opshyciones a la hora de elegir el origen de los datos La aproximacioacuten maacutes sencilla y potente es utilizar los datos que residen dentro del mismo libro Sin embargo por alguna otra razoacuten esto no siempre es posible o factible Puede que los datos residan en otro libro en el que se introducen a diario por ejemplo y por otro lado no desea que esos usuarios puedan ver la tabla dinaacutemica

4 Trucos sobre tablas dinaacutemicas 155

Si utilizamos un rango dinaacutemico con nombre se produciraacute enormemente el tiempo para actualizar la tabla dinaacutemica Dado que no se puede hacer referencia a un rango dinaacutemico con nombre desde otro libro significa que no puede hacer que una tabla dinaacutemica haga referencia a quizaacute cientos de filas en blanco lo que causariacutea que el tamantildeo del archivo se incrementase sustancialmente De esta manera lo mejor es traspasar los datos desde otro libro y luego basar la tabla dinaacutemica en ellos en vez de tener que hacer una referencia externa

Estando en el libro que contendraacute la tabla dinaacutemica inserte una nueva hoja y llaacutemela Datos Abra el libro que contiene los datos a ser referenciados y aseguacuteshyrese de que la hoja que los contenga sea la activa A continuacioacuten en cualquiera de las celdas que sobre introduzca la siguiente foacutermula

= S I ( A 1 = M A 1 )

donde Al es el primero de todos los encabezados de la tabla con los datos Ahora seleccione la celda A l coacutertela active el libro original y peguacuteela en la

celda Al de la hoja Datos Esto le proporcionaraacute la referencia al otro libro Copie esta celda tantas columnas como encabezados haya en el origen de datos y luego seleccione la opcioacuten lnsertargtNombregtDefinir En el cuadro de texto Nombres en el libro escriba DatosDinamicos y en el cuadro de texto Se refiere a escriba lo siguiente

=DESREF($A$100CONTARA($A$A)CONTARA($1$1))

Haga clic en Agregar y luego en Aceptar A continuacioacuten inserte un coacutedigo que se ejecutaraacute cada vez que se abra el libro haciendo clic con el botoacuten derecho del ratoacuten en el icono de Excel (situado en la esquina superior izquierda la ventashyna)

Priacutevate Sub Workbook_Open( ) With Worksheets(Datos)

Range(21000)Clear

Range(11)AutoFill Range(11000)

Range(21000) = Range(21000)Valueacute End With End Sub

Este acceso directo no estaacute disponible para Macintosh Tendraacute que abrir el editor de Visual Basic pulsando Opcioacuten-Fll o bien yendo a HerramientasgtMacrogtEditor de Visual Basic Luego haga clic mientras pulsa la tecla Control en ThisBook situado en la ventana de proyectos

Para volver a la ventana principal de Excel cierre esta ventana o bien pulse Alt Comando-a

Excel Los mejores trucos

El coacutedigo anterior soacutelo incluye 1000 filas con datos Dicho nuacutemero siempre deberiacutea ser superior al nuacutemero de filas que cree que necesitaraacute En otras palabras si la tabla en el otro libro contiene 500 filas antildeada unos cientos maacutes para asiacute dejar espacio por si la tabla original crece

Evite utilizar un nuacutemero muy alto de filas (como por ejemplo 10000 a menos que tenga esa cantidad de datos) ya que esto afectaraacute a la velocidad con la que se ejecute el coacutedigo y se actualicen los datos

Guarde el libro cieacuterrelo y luego vuelva a abrirlo aseguraacutendose primero de activar las macros El coacutedigo que acabamos de antildeadir se lanzaraacute automaacuteticamente y copiaraacute las foacutermulas en la fila 1 de la hoja Datos y luego convertiraacute todas las filas excepto la primera en valores Esto no dejaraacute una copia del origen que se actualizaraacute cada vez que abra el libro

Ahora ya puede ocultar esta hoja si no desea seleccionando la opcioacuten FormatogtHojagtOcultar

A continuacioacuten para hacer que una tabla dinaacutemica se base en este rango dinaacutemico con nombre seleccione cualquier celda dentro de la tabla dinaacutemica y luego seleccione la opcioacuten del asistente situado en la barra de herramientas de tablas dinaacutemicas Haga clic en el botoacuten Anterior del asistente hasta que llegue al paso 1 Ahora seleccione la primera opcioacuten Lista o base de datos de Microsoft Excel haga clic en Siguiente y en el paso 2 escriba =DatosDinamicos (que es el nombre del rango dinaacutemico) Luego haga clic en Finalizar

No experimentaraacute el lapso de tiempo que a menudo ocurre cuando una tabla dinaacutemica hace referencia a un origen de datos externo porque ahora los datos se encuentran situados dentro del propio libro Ademaacutes de ello como puede utilizar el rango dinaacutemico con nombre la tabla dinaacutemica seraacute dinaacutemica sin tener que hacer referencia a filas en blanco mientras que el tamantildeo del archivo se mantieshyne razonablemente

CAPIacuteTULO 5

Trucos sobre graacuteficos Trucos 50 a 59

Los graacuteficos son una de las caracteriacutesticas maacutes populares de externo ya que proporcionan a las hojas de caacutelculo una potencia visual maacutes allaacute de unos caacutelculos

Aunque las capacidades graacuteficas de Excel son impresionantes muchas veces desearaacute ir maacutes allaacute de la funcionalidad baacutesica proporcionada por el asistente para graacuteficos incorporado para poder crear graacuteficos que sean maacutes activos en cuanto cambie los datos o simplemente para ir maacutes allaacute del rango de opciones que Excel ofrece Los trucos que presentaremos en este capiacutetulo le permitiraacuten hacer todo esto y mucho maacutes

Separar una porcioacuten de un graacutefico circular Aunque los graacuteficos circulares son una excelente ayuda visual a veces desearaacute separar una porcioacuten en particular del graacutefico Si la separa del resto del graacutefico le daraacute maacutes importancia

La opcioacuten predeterminada en un graacutefico circular seccionado que se separan todas las porciones y a la misma distancia Sin embargo con un par de clics de ratoacuten podremos separar una de ellas

Para comenzar configure un graacutefico circular baacutesico como el que se muestra en la figura 51

A continuacioacuten ha de hacer clic en el graacutefico circular y luego haga doble clic lentamente (dejando un pequentildeo espacio entre ambos clics) sobre la porcioacuten que desea separar Arrastre la porcioacuten seleccionada hacia fuera del centro del graacutefico y veraacute coacutemo queda separada tal y como puede verse en la figura 52

160 Excel Los mejores trucos

i A B C D i E bull F G 1 j Circular 2 A 1 3 B 1 4 C 1 5 -D 1 6 7 8 9 10 11 12 13 14

J5J 16 17 18 19

Circular

-^

1

^ m

s~ H F v^__g^

n H 4 bull bull Hojal MI

- j _ _ ^

BB

DC

D D |

ltr|

i raquoin Figura 51 Graacutefico circular simple configurado a partir de los datos de una hoja

A FJ C D 1 Eacute F G ] H iexcl J -H 1 Circular j 2 A 3 B 4 C 5 D 6 7 8 9 10 11 12 13 14 15 16 17 18 19

|M Iacute bull bull i Ho ja i | j j i raquo i n

Figura 52 Graacutefico circular simple con una porcioacuten separada

Al arrastrar una uacutenica porcioacuten dejaraacute el resto como estaban Puede repetir este proceso para el resto de las porciones si asiacute lo desea Esta teacutecnica tambieacuten funciona con los graacuteficos circulares en 3D Para hacer un graacutefico de este estilo haga clic en eacutel haga clic con el botoacuten derecho del ratoacuten y luego seleccione la opcioacuten Tipo de graacutefico y entonces seleccione el icono de graacutefico circular en 3D

Si desea separar todas las porciones al mismo tiempo simplemente haga clic en el graacutefico para seleccionarlo luego arraacutestrelo hacia fuera del centro del mismo y todas las porciones quedaraacuten separadas tal y como se muestra en la figura 53 Recuerde que cuanto maacutes separe las porciones maacutes pequentildeas quedaraacuten

5 Trucos sobre graacuteficos 161

A B C 1 Circular 2 A 1 3 B 1 4 C 1 5 D 1 6 7 8 9 10

JU 12 13 14 15 16 17 18 19

H i bull bulliXHojal

D E F G H I

Circular

Ilaquo

J z

_

bull i r Figura 53 Graacutefico circular en 3D con porciones separadas

Tambieacuten puede utilizar el proceso inverso si desea volver a jun ta r las porcioshynes de un graacutefico Para ello simplemente haga clic en una de las porciones y arraacutestrela hacia el centro del mismo para colocarlas juntas otra vez

TRUCO Crear dos conjuntos de porciones en un uacutenico graacutefico circular Muchas personas creen que un graacutefico circular estaacute limitado a solamente un conjunto de valores pero existe una forma de crearlo basaacutendose en dos columnas con valores

Resulta un poco complicado hacer que se puedan ver dos series de valores representados en ejes separados dentro de un uacutenico graacutefico pero el esfuerzo meshyrece la pena para ver el efecto resultante Para ver coacutemo funciona esto primero cree un graacutefico circular baacutesico Coloque algunos datos en el rango de celdas Bl C5 seleccione dicho rango y haga clic en el botoacuten Asistente para graacuteficos de la barra de herramientas En el paso 1 bajo el apartado Tipo de graacutefico seleccione el prishymer graacutefico circular Ahora haga las modificaciones pertinentes en el resto de pasos del asistente hasta llegar al paso 4 Al llegar ahiacute aseguacuterese de colocar el graacutefico como un objeto en la hoja actual

A continuacioacuten seleccione el graacutefico haga clic con el botoacuten derecho del ratoacuten sobre eacutel y vaya a Origen de datosgtSerie Haga clic en Agregar para antildeadir otra serie Seleccione la celda DI para el nombre y las celdas D2D5 para los valores y luego haga clic en Aceptar Obtendraacute un graacutefico como el que se muestra en la figura 54

162 Excel Los mejores trucos

A I B C 1 l 1 Graacutefico 1 Graacutefico 2 2 A 0049619 076617

D E

7

3 B 0416347 0835703 4 C 0157347 0650905 5 D 6 j

7 8 9 10 11 12 13 14 15 16 17 18 1 9

H 4 bull

0514901 0744752

Graacutefico 1

^^r^^

^

(

aW AfaV 1

v W bull ^ ^

bullI Hoja 1 ~~ trade~ | 4

F G H mdash

l A

BB

D C

D D

1 i gtir Figura 54 Un graacutefico circular configurado a partir de los datos de una hoja

Haga doble clic de nuevo en el graacutefico vaya a la pestantildea Eje y coloque la series en el segundo eje Haga clic en Aceptar El graacutefico circular todaviacutea parece ser el mismo en la superficie pero por debajo no lo es

Seleccione el graacutefico y mientras mantiene pulsado el botoacuten del ratoacuten arraacutesshytrelo fuera del centro y entonces suelte el botoacuten del ratoacuten con todo esto crearaacute un efecto de separacioacuten que era el que estaacutebamos buscando (veacutease figura 55)

A

1 I 2 A 3 B 4 C 5 D 6

7 8 9 bull 10 11 12 i

13 14 15 16 17 18 19 20

21 bull H 4 bull H ^

I B C D E F G H I i T i IGiifico 1 Graacutefico 2 I

0049619 0766177 0416347 0835703 0157347 0650905 0514901 0744752

^ ^ mdash I

^ r

[ ABBW W l^m D Graacutefico 2

D Graacutefico 11

V ^ ^ ^JLJ^

vHolal M I bull l l

Figura 55 Graacutefico circular con el eje secundario separado

Al separar el graacutefico circular no solamente estaacute separando los dos ejes (con lo que se ve el segundo graacutefico circular) sino que tambieacuten estaacute comprimiendo el

5 Trucos sobre graacuteficos 163

graacutefico circular situado en el eje secundario con lo que puede ver ya ambos graacuteshyficos

Ahora seleccione cada una de las porciones del graacutefico y arraacutestrelas de nuevo hacia el centro del mismo con lo que obtendraacute un graacutefico como el que se muesshytra en la figura 56 Recuerde que si hace dos clics lentamente se marcaraacute una porcioacuten individual del graacutefico

2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 4 4 bull HlXHojal

IGi oacutefico 1 Gi oacutetico 2 0049619 0766177

0416347 0157347 0514901

0835703 0650905 0744752

11 Graacutefico 2

B Graacutefico 1 I

id Figura 56 Graacutefico circular completo compuesto de dos graacuteficos

Si jun ta de nuevo todas las porciones de graacutefico circular tendraacute un graacutefico circular totalmente funcional en el que estaacuten dibujadas dos series de datos en ejes separados Ahora ya puede aplicar el color y el formato que desee

Crear graacuteficos que se ajusten a los datos Los graacuteficos pueden incluir y dibujar nuevos datos automaacuteticamente en el momento en el que los antildeada a la hoja de caacutelculo

Si utiliza rangos dinaacutemicos con nombre en vez de referencias a rangos el graacutefico dibujaraacute cualquier dato nuevo en el momento en el que lo antildeada a la hoja de caacutelculo Para ver coacutemo funciona esto comenzaremos con una hoja en blanco y la rellenaremos con algunos datos de forma parecida a como se muestra en la figura 57

Para crear el graacutefico y hacerlo dinaacutemico necesitaremos antildeadir dos rangos con nombre Uno de esos rangos seraacute para las etiquetas de la categoriacutea (Fechas) y otro para los puntos representados por los datos (Temperatura)

164 Excel Los mejores trucos

1 2 3 4 5 6 7 8 9 10 11 12 13 14

H 4

A B Fechas Temper 1102003 2102003 3102003 4102003 5102003 6102003 7102003 8102003 9102003

10102003 11102003

C aturas

10 12 13 13 12 14 15 13 12 11 10

bull H Hojal Hoja2 Hoja3 j lt

I D

l

E mdash

mdash

^ bull i r

Figura 57 Datos a partir de los cuales crearemos un graacutefico

Cree un rango dinaacutemico con el nombre FECHAS_TEMP para las fechas sishytuadas en la columna A Para ello vaya a lnsertargtNombregtDefinir y escriba la siguiente foacutermula

=DESREF($A$110CONTARA($A$A)-11)

Observe que hemos incluido un -1 inmediatamente despueacutes del primer argushymento de la funcioacuten CONTARA Esto asegura que el encabezado no se incluya en el rango con nombre para esa serie en particular

En este ejemplo hemos hecho referencia a toda la columna A en el S^ argumento ($A$A) de la funcioacuten CONTARA En versiones anteriores

~-V de Excel resulta una buena praacutectica restringir este rango al menor grupo de celdas posible para no antildeadir una sobrecarga innecesaria a los caacutelculos Esto es porque estaacute forzando a externo a buscar en miles de celdas innecesariamente De todas formas algunas funciones de Excel son lo suficientemente inteligentes para saber queacute celdas contienen datos aunque no todas ellas lo hacen A pesar de todo esto ya no es tan necesario en las versiones maacutes recientes de Excel ya que eacuteste ha mejorado el manejo de rangos de gran tamantildeo

A continuacioacuten para las lecturas de temperaturas de la columna B configure otro rango dinaacutemico que se llame LECTURAS_TEMP y utilizando la siguiente foacutermula

=DESREF($B$200CONTARA($B$B)-11)

Ahora ya puede crear el graacutefico utilizando los rangos dinaacutemicos con nombre que hemos creado en vez de utilizar referencias a celdas Seleccione el aacuterea de datos (el rango $A$1$B$11) y luego haga clic en el icono Asistente para graacuteficos

5 Trucos sobre graacuteficos 165

situado en la barra herramientas estaacutendar En el paso 1 seleccione el tipo de graacutefico que desee utilizar (para este ejemplo utilizaremos una columna) y haga clic en el botoacuten Siguiente En el segundo paso se le presentaraacuten dos pestantildeas Rango de datos y Serie Elija la segunda y entonces elimine la foacutermula que apashyrece en el cuadro de texto Valores introduciendo lo siguiente

=Hoj alLECTURAS_TEMP

Es muy importante que incluya el nombre de la hoja a la que hacen referencia las foacutermulas Si no lo hace no podraacute introducir el rango con nombre dentro de la foacutermula

Para terminar elimine la foacutermula que actualmente se encuentra en el cuadro de texto Roacutetulos del eje de categoriacuteas (X) e introduzca lo siguiente

=Hoj alFECHAS_TEMP

Complete los datos que se solicitan en el resto de pantallas del asistente realishyzando los cambios que sean necesarios El resultado deberiacutea parecerse al que se muestra en la figura 58

- t Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana l - 0 X

JUumlit

A1 fx Fechas

A T B Fechas Temperaturas

1102003 101

2102003 12

3102003 13

4102003 13

5102003 12

6102003 14

7102003 15

8102003 13

9102003 12|

10102003 11

11102003 101

bull M H o j a l Hoja2 Hoja3

Rango de datos Serie

u

mdash laTcmpcraturaJ

Agregar

Roacutetulos del eje de

M M B raquo bdquo j Nombre

_J Valores

Quitar |

categoriacuteas (X)

Cancelar

j=Hojal$B$l

|=HojalLECTURAS_TEMP

|=HojaliFECHAS_TEMP

lt Atraacutes 1 [SJSyregniquestegt|j

3

uuml

Uuml

Finalizar

MT

__

r Figura 58 Rangos dinaacutemicos con nombre en vez de referencias estaacuteticas a rangos

166 Excel Los mejores trucos

Una vez configurado este graacutefico cada vez que antildeada una nueva entrada ya sea en la columna A (Fechas) o en la columna B (Temperatura) se incluiraacute automaacuteticamente graacutefico

Dibujar los uacuteltimos x valores correspondientes a las lecturas

Otro tipo de rango con nombre que puede utilizar en los graacuteficos es aquel que solamente recoge las uacuteltimas 10 lecturas (o cualquier otro nuacutemero que desee) de una serie de datos Probaremos esto con los mismos datos que hemos utilizado en la primera parte del truco

Para las fechas que hay en la columna A configure un rango dinaacutemico con nombre llamado FECHAS_TEMP_1 ODIAS que hace referencia de la siguiente forshyma

= D E S R E F ( $ A $ 1 C O N T A R A ( $ A $ A ) - 1 0 0 1 0 1 )

Para las lecturas de la columna B configure otro rango dinaacutemico con nombre llamado LECTURAS_TEMP_1 ODIAS e introduzca lo siguiente

= DESREF(Hoj al$A$1CONTARA(Hoj al51$A$A) -101101)

Si desea cambiar el nuacutemero de lecturas (por ejemplo a 20) simplemente camshybie la uacuteltima parte de la foacutermula de forma que quede asiacute

= DESREF(Hoj al$A$1CONTARA(Hoj al5$A$A) - 2 0 12 01)

Al utilizar rangos dinaacutemicos con nombre en los graacuteficos dispone de una gran flexibilidad y ahorraraacute gran cantidad de tiempo al no tener que manipular los graacuteficos cada vez que antildeade nuevos datos

TRUCO Interactuar con los graacuteficos utilizando controles personalizados Para hacer que los graacuteficos sean realmente interactivos puede utilizar uno o maacutes rangos dinaacutemicos en los graacuteficos y luego utilizar una barra de desplazamiento o un cuadro de lista desplegable personalizado para mostrar las figuras que los usuarios de la hoja de caacutelculo desean ver

Como vimos en el truco anterior puede utilizar rangos dinaacutemicos con nomshybre para antildeadir flexibilidad a los graacuteficos Pero tambieacuten puede utilizar rangos dinaacutemicos con nombre para crear interfaces que controlen queacute datos deben ser dibujados por los graacuteficos Si vinculamos los rangos dinaacutemicos con nombre con controles personalizados permitiremos a los usuarios cambiar los datos de los

5 Trucos sobre graacuteficos 167

graacuteficos mediante dichos controles que se encargaraacuten de actualizar automaacuteticashymente los datos en la hoja o viceversa

Utilizar un rango dinaacutemico con nombre vinculado a una barra de desplazamiento

En este ejemplo utilizaremos una barra de desplazamiento para mostrar las figuras mensuales de un periacuteodo de 12 meses La barra de desplazamiento se utilizaraacute para modificar el nuacutemero de meses que se presentan El valor de dicha barra tambieacuten se utilizaraacute en el rango dinaacutemico que serviraacute como origen de los datos para graacutefico Para comenzar configure algunos datos de forma similar a los que se muestra en la figura 59

1 2 3

Mes

4 5 JAN 6 FEB 7 MAR 8 APR 9 MAY 10 JUN

[11 JUL 12 AUG 13 SEP 14 UumlCT 15 NOV 16 DEC 17 1 18

Producto XYZ

Ventas 2003

505 943 500 624 894 612 526 629 665 954 893 954

1 H 4 bull bull l H o j a l Hoja2 Hoja3 _ili

Figura 59 Datos de la hoja para un graacutefico dinaacutemico vinculado a una barra de desplazamiento

Cree un rango dinaacutemico con nombre seleccionando la opcioacuten lnsertargtNombregt Definir y llaacutemelo PERIODO_VENTAS En el cuadro de texto Se refiere a escriba lo siguiente

=DESREF($B$500$C$51)

Al utilizar la funcioacuten DESREF podemos usar la celda $C$5 para forzar al ranshygo referenciado en PERIODO_VENTAS a expandirse tanto arriba como abajo en funcioacuten del nuacutemero que aparezca en la celda $C$5 Es decir si por ejemplo camshybiamos el nuacutemero que hay en $C$5 por 5 estaremos obligando a que el rango incorpore las celdas B5B10

168 Excel Los mejores trucos

Si no desea que el usuario pueda ver la celda C5 puede ir maacutes allaacute y H^ ocultar el contenido de $C$5 haciendo clic con el botoacuten derecho del

^ ratoacuten sobre ella y seleccionando la opcioacuten Formato de celdas Luego seleccione la categoriacutea Personalizado e introduzca el formato Haga clic en Aceptar y el contenido de la celda C5 quedara oculto tal y como puede verse en la figura 59

Ahora cree un graacutefico (un graacutefico de liacuteneas o de columnas seriacutean los ideales) Cuando llegue al paso 2 del asistente vaya a la pestantildea Serie y cambie la foacutermushyla que aparece en el cuadro de texto Valores de forma que quede asiacute lt Nombre del libroxlsgtPERIODO_VENTAS Con esto el graacutefico seraacute dinaacutemico

Una vez haya creado graacutefico deberaacute insertar una barra de desplazamiento a traveacutes del cuadro de herramientas Formularios

La forma maacutes sencilla para hacer esto es hacer clic con el botoacuten derecho del ratoacuten en el aacuterea gris de la parte superior de la pantalla (donde estaacuten situadas las barras de herramientas pero en una parte que esteacute vaciacutea) y luego seleccionar la opcioacuten Formularios Con ello apareceraacute el cuadro de herramientas Formularios en la pantalla

Ahora haga doble clic en el icono Barra de desplazamiento Una vez insertada seleccioacutenela y mueacutevala hasta el graacutefico Luego haga clic con el botoacuten derecho sobre ella y seleccione la opcioacuten Formato de control

Cambie el valor miacutenimo a 1 y el valor maacuteximo a 12 y luego establezca el viacutenculo con celda a $C$5 El graacutefico resultante deberiacutea quedar como el que se muestra en la figura 510

L T 11 2

3

Mes 4 5 JAN

6 FEB 7 MAR 8 APR 9 MAY 10 JUN 11 JUL 12 AUG 13 SEP 14 OCT 15 NOV 16 DEC 17 18

Producto XYZ Ventas 2003

|n 4 bull n H o j a l

505 943 500 624 894 612 526 629 665 954 893 954

Hoja2

1000 -i

750 -

500 bull

250 -

0 -

iquest

JAN

A

A -y

FEB

Producto XYZ Ventas 2003

X V ^A X_

MAR APR MAY JUN JUL

_ 1 plusmnJ

UumlJJ

Figura 510 Graacutefico dinaacutemico vinculado a una barra de desplazamiento

5 Trucos sobre graacuteficos 169

Utilizar un rango dinaacutemico con nombre vinculado a un cuadro de lista desplegable

Otra variante posible es vincular el graacutefico con un cuadro de lista desplegable Comenzamos con algunos datos configurados como en la figura 59 Antildeada un rango dinaacutemico que utilizaremos como origen de los datos para graacutefico y que estaraacute vinculado a un cuadro de lista desplegable que podemos utilizar para ver los resultados de los exaacutemenes de un estudiante Utilizaremos por tanto el cuashydro desplegable para seleccionar el nombre del estudiante cuyos resultados deshyseamos ver Para ello introduzca la foacutermula =PROMEDIO (B6 B11) en la celda B12 y propaguacuteela hasta la celda F12 tal y como se muestra en la figura 511

A

1 l 2 3 4 5 6 Andreacutes 7 Carlos 8 Carolina 9 David 10 Esther 11 Frank 12 Promedio 13 14 15 16 17

4 sect 1

Ex ti ni A

C

Exam B 54 48 44 81 37 46 52

H lt bull H Hojal Hoja2Hoja3

89 72 39 93 58 69 70

D

Exam C 90 67 43 42 62 55 60

LLI

Exam D

H

74 85 68 47 67 41 64

F

Exam E 56 47 45 64 72 57 57

G

_J

plusmn

-

T bull i r

Figura 511 Graacutefico dinaacutemico vinculado a un cuadro de lista desplegable

Cree un rango dinaacutemico seleccionando la opcioacuten lnsertargtNombregtDefinir y llaacutemelo ESTUDIANTES En el cuadro de texto Se refiere a escriba lo siguiente

=DESREF($A$5$G$6115)

Cree otro rango dinaacutemico llamado NOMBRE_ESTUDIANTE y en el cuadro de texto Se refiere a escriba lo siguiente

= DESREF($A$5$G$60 1 1)

El uso de la referencia $G$6 en la foacutermula DESREF obliga a que los rangos referenciados para ESTUDIANTES y NOMBRE_ESTUDIANTE se expandan en funshycioacuten del nuacutemero introducido en la celda G6 Ahora cree un graacutefico de columnas agrupadas utilizando el rango A11F12 Cuando llegue al paso 2 del asistente vaya a la pestantildea Serie y cambie la referencia que aparece en el cuadro de texto Valores para la primera serie de forma que quede =ltNombre d e l l i b r o

170 Excel Los mejores trucos

x l s gt ESTUDIANTES En el cuadro de texto Nombre escriba =ltNombre d e l l i b r o x l s gt NOMBRE_ESTUDIANTE Llegados a este punto inserte un cuadro de lista desplegable desde el cuadro de herramien-tas Formularios Luego haga clic con el botoacuten derecho en dicho control y seleccio-ne la opcioacuten Formato de control e introduzca $A$6$A$11 para el rango de entrada y $G$6 como viacutenculo de celda Para terminar introduzca la funcioacuten CONCATENAR en una celda vaciacutea como por ejemplo la B4 de la siguiente forma

=CONCATENAR(MResultados para IacuteNDICE(A6A11G6))

Ahora si abre el cuadro de lista desplegable y selecciona un estudiante (veacutease figura 512) se mostraraacuten los resultados de sus exaacutemenes

B C D E Resultoacutelos |raquolttia Esthei Exam A Exam B Exam C Exam D

Andreacutes iexclCarlos (Carolina iexclDavid iexclEsther iexclFrank iexclPromedio

54 48 44 81 37 46 52

89 72 39 93 58 69 70

90 67 43 42 62 55 60

74 85 68 47 67 41 64

56 47 45 64

57 57

100

90

I I s f 1 1 1 p l iexcl J M M | f l f e l ^ M i f laquo ^ ^ I bull Esther I

Exam A bull Hiexcl HojalHoja2

Exam D

Figura 512 Un graacutefico dinaacutemico completo vinculado a un cuadro de lista desplegable

Tres formas raacutepidas para actualizar los graacuteficos Aunque es maravilloso crear nuevos graacuteficos actualizarlos para que reflejen los cambios producidos en la hoja puede llevar su tiempo Podemos reducir la cantidad de trabajo necesario para cambiar los datos utilizados por un graacutefico de diferentes formas

Utilizar arrastrar y colocar

Podemos antildeadir datos a una serie ya existente o crear una completamente nueva simplemente arrastrando y colocando los datos en un graacutefico Excel inten

5 Trucos sobre graacuteficos 171

tara decidir coacutemo debe t ratar los datos lo que significa que puede que antildeada la informacioacuten a una serie ya existente cuando en realidad lo que queriacuteamos era crear una nueva Sin embargo podemos hacer que Excel muestre un cuadro de diaacutelogo que nos permita elegir queacute accioacuten queremos realizar Introduzca algunos datos como los que se muestran en la figura 513

A 1 2 Enero 3 Febrero 4 Marzo 5 Abril 6 Mayo 7 8 9

| 10

B 2001

743 1

213 116

10

C 2002

7 3 2 1 3

D | 2003

3 10 4 9 4

Figura 513 Datos para un graacutefico de columnas agrupadas

Mediante el asistente para graacuteficos cree un graacutefico de columnas agrupadas soacutelo para el rango $A$1 $D$5 con lo que se obtendraacuten los resultados de la figushyra 514

25 -

jHi -J M

n

ariun Enero Febrero Marzo Abril

Figura 514 Graacutefico de columnas agrupadas creado para el rango A1D5

Seleccione el rango A6D6 haga clic con el botoacuten derecho en el borde de la seleccioacuten y sin soltarlo arraacutestrela hasta el graacutefico Suelte entonces el botoacuten y apareceraacute el cuadro de diaacutelogo Pegado especial tal y como se muestra en la figura 515 Seleccione la opcioacuten Columnas y haga clic en el botoacuten Aceptar Con esto se antildeadiraacute al graacutefico la serie de datos correspondiente a mayo tal y como se muestra en la figura 516 El cuadro de diaacutelogo Pegado especial nos ofrece la mayoriacutea de las acciones que necesitaremos para poder utilizar este truco

Utilizar la barra de foacutermulas

Tambieacuten podemos actualizar el graacutefico utilizando la barra de foacutermulas Cuando seleccionamos un graacutefico y hacemos clic en u n a serie de datos del mismo

172 Excel Los mejores trucos

observaraacute que en la barra de foacutermulas aparece la funcioacuten que Excel utiliza para la serie

Enero

Febrero

Marzo

Abril

M a j o

B

2001 C

2002 D

2003

743 1

213 116

1 0

F G

B B S Agregar celdas como

( Nueva serie

f Nuevos puntos

Valores (Y) en

lt Blas

amp iiquestolumnasj

Aceptar J

Cancelar I

25 -

20

15

10

5 -H

0 1poundL

D 2CL

uuml 2002

D 2003

P Categoriacuteas (roacutetulos de X) en ta pirnera columna

r

Enero Febrero Marzo Abril

bull bull Drag and Drop Usmg Formula Bat Dragging Bounding Atea j j _L ID Figura 515 Graacutefico de columnas agrupadas junto con el cuadro de diaacutelogo espacio

Pegado especial

Figura 516 Graacutefico de columnas agrupadas con la serie de datos correspondiente a mayo antildeadida

Dicha funcioacuten se llama SERIES y normalmente utiliza cuatro argumentos aunque el graacutefico de burbujas requiere un quinto elemento adicional (para el tamantildeo) La sintaxis de la funcioacuten SERIES es la siguiente

=SERIES( [Nombre][Valores X][Valores Y][Orden de dibujo])

Asiacute una funcioacuten SERIES vaacutelida podriacutea ser de la siguiente forma (veacutease figura 517)

= SERIES(Hoj al$B$1Hoj al$A$2$A$5Hoj al$B$2$B$51)

5 Trucos sobre graacuteficos 173

M raquo M I f H ^ iexcl j Archivo Edicioacuten Ver Insertar Formato Herramientas Graacutefico Ventana

J J A _J _ j j J J l C -j^ gU M

- ID) x |

- f f x

Sem lt 2004 bull ft =SERIES(Hoja2$B$1Hoja2$A$2$A$5Hoja2$B$2$B$51) A B C D E F G H

1 i 2 Enero T 3 IacuteFebrero 4 iMarzo 5 yAbnl 1 6

7 iexcl -Q-j

_

11 12 13 14

151 16 17 ]

18 19 20 21

23 H 4

2004 iexcl 743

1 213 116

2004

25 -i

20 -

15 -

5 -lis

fara

bull

laquo

IQ 20041 1

Enero Febrero Marzo Abril

bull n H oja 1gtH aja lHoja3 H |

J T

i gtir

Figura 517 Un graacutefico de columnas agrupadas con la barra de foacutermulas resaltada

Como puede verse en la figura anterior la primera parte de la referencia (Hojal$B$l) se refiere al nombre o al tiacutetulo del graacutefico que en este caso es 2004 La segunda parte (Hojal $A$2$A$5) se refiere a los valores X que en este caso son los meses La tercera parte (Hojal $B$2$B$5) se refiere a los valores Y que son 743 15 213 y 116 Finalmente la uacuteltima parte de la foacutermula (el 1) se refiere al orden de dibujo o al orden de la series En este caso como soacutelo hay una serie soacutelo podemos elegir el valor 1 Si hubiese maacutes de una serie la primera tenshydriacutea el nuacutemero 1 la segunda el nuacutemero 2 y asiacute sucesivamente Para realizar cambios al graacutefico simplemente modifique las referencias a celdas en la barra de foacutermulas

Ademaacutes de utilizar referencias a celdas puede introducir en los graacuteficos valoshyres expliacutecitos conocidos tambieacuten como constantes matriciales Para ello deberaacute antildeadir unas llaves por delante y por detraacutes de los valores X e Y como puede verse en la siguiente foacutermula

=SERIES(Mi b a r r a 11C D 1 2 3 4 1)

En esta foacutermula A B C y D seriacutean los valores X mientras que 1 2 3 y 4 seriacutean los valores Y correspondientes

174 Excel Los mejores trucos

Utilizando este meacutetodo puede crear o actualizar un graacutefico sin tener que alshymacenar los datos en celdas

Arrastrar el aacuterea del borde

Si los datos del graacutefico contienen referencias a celdas continuas puede extenshyder o reducir faacutecilmente el rango de datos de la serie arrastrando el borde hasta el punto deseado Haga clic en la serie que desea extender o reducir Despueacutes de hacer dos clics lentamente apareceraacuten unos pequentildeos recuadros negros alredeshydor del aacuterea de la serie (o en medio en caso de estar utilizando un graacutefico de liacuteneas) Soacutelo tiene que hacer clic en uno de esos recuadros y arrastrar el borde en la direccioacuten deseada tal y como se muestra en la figura 518

WBiexcl Microsoft EKCCI - Graficosxls

~ j j Archivo Edicioacuten Ver Insertar Formato Herramientas Graacutefico Ventana

J j J i j J J i t iquestx ^ 5uuml kg

Serie A Pun pound =SERIES(Hoja3$B$1Hoja3IacuteAIacute2$A$5Hoja3JB$2$B$51)

x

I I

a b c d

A B

^ 11

42

9J

c D B C

7 3

3 10

2 4

1 9

H I

tJr^i HWl D A

H B

D C

bull w_Hojal Ho ja2 Ho ja3 bull j r

Figura 518 Borde de una serie seleccionado

Si extiende o reduce los datos de una serie al igual que en la figura 519 el origen de datos original asiacute como las etiquetas del eje (en caso de estar configushyradas en automaacutetico) tambieacuten se modificaraacuten para reflejar los cambios que acashyba de realizar Esta teacutecnica es ideal para probar diferentes escenarios sobre todo en aquellas ocasiones en las que desee probar cuaacuteles seriacutean los diferentes resultashydos en funcioacuten de los conjuntos de datos que se utilicen

5 Trucos sobre graacuteficos 175

N raquo i M i f l t laquo B l Eacutel Archivo Edicioacuten

J J A 3 _jl

Serie A Pun bull

Ver Insertar Formato Herramientas GraacuteFico - S x

_ gt - iquest ^ -

A =5ERIES(HQja3$B$1HQJa3$A$2$A$5HQJa3$B$2$B$51)

A B

h ^

12

10

8

6

4

2

0

D H 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 13 19 20 ^1 H i bull wHojal Hoja2Hoja3

3 10 4 9

^

mdash DA HB DC

i r

Figura 519 Borde de una serie seleccionado despueacutes de ser expandido

TRUCO Crear un simple graacutefico de tipo termoacutemetro Excel no proporciona un tipo del graacutefico termoacutemetro Si desea uno tendraacute que construirlo

Es posible crear un graacutefico de tipo termoacutemetro sin mucho esfuerzo utilizanshydo el asistente para graacuteficos para crear un graacutefico de columnas agrupadas que compare valores a lo largo de las categoriacuteas y luego manipulando los diferentes elementos graacuteficos

Introduzca algunos datos de la misma forma que aparecen en la figura 520 y utilice el asistente para graacuteficos para crear un graacutefico baacutesico de columnas agrushypadas dibujando los datos en filas Para el ejemplo utilizaremos el rango B3C4

Elimine la leyenda y la cuadriacutecula (para ello simplemente seleccioacutenelas y pulshyse Supr) Deacute formato a la serie de datos Temperatura para el eje Y2 Para ello seleccione la serie haga clic con el botoacuten derecho del ratoacuten seleccione Formato de serie de datos vaya a la solapa Eje y luego seleccione la opcioacuten Eje secundario lo que haraacute que quede un graacutefico como el de la figura 521

De formato a los ejes Yl (a la izquierda) e Y2 (a la derecha) seleccionaacutendolos haciendo clic en el botoacuten derecho del ratoacuten sobre ellos seleccionando la opcioacuten

176 Excel Los mejores trucos

Formato de ejes y luego haciendo a la pestantildea Escala Establezca el valor miacutenimo a 0 y el maacuteximo a 100 la unidad mayor a 10 y la menor a 5 Con esto podraacute ver el graacutefico que se muestra en la figura 522

Caso [Temperatura

1 2 3 4 5 6 7 8 9 10 11 12 13 14 1C

H 4 bull wTermoacutemetro

100 40

D bull

120 n

100 -

80 -

60 -

40 -

20 bull

bull

E F G m

H bull

o Caso

bull Temperatura |

bull bull bull

JJLL JID Figura 520 Datos de la serie y creacioacuten de un graacutefico baacutesico de columnas agrupadas

1 2 3 4 5 b 7 8 9 10 11 12 13 14 15 16 17 18

14 4

A B

| Caso [Temperatura^

bull w Termoacutemetro

C

i oo 40J

D E F G H bull bull i

120 -j T 4 5

100 -

80 -

60 -bull

40 -

20 -

0

bull bull Bw H Hi HWHIIacuteIIIBIIacute8II

-40

-35

-30

-25

- 20 bull

- 15

- 10

- 5

I- 0 1

bull bull bull

I laquo I

mdash

i raquoir Figura 521 Dos series dibujadas en el eje Y2

Establezca el color para la serie con los casos en blanco la serie para las temshyperaturas en rojo y el aacuterea de dibujo en blanco Llegados a este punto el termoacuteshymetro deberiacutea empezar a tomar forma

Reduzca el valor de la propiedad Ancho del rango que encontraraacute en la pestantildea Opciones del cuadro de diaacutelogo que aparece al hacer clic con el botoacuten derecho del ratoacuten sobre las serie y elegir la opcioacuten Formato de serie de datos Por uacuteltimo elimine el eje X (seleccionaacutendolo y pulsando Supr) y luego cambie el tamantildeo y la

5 Trucos sobre graacuteficos 177

posicioacuten a su gusto Como se demuestra en la figura 523 retocando algunas de las caracteriacutesticas existentes en los graacuteficos de Excel puede conseguir construir un termoacutemetro totalmente funcional y con una apariencia impresionante

1 2 3 4 5 6 7 8

i 9

10 11 12 13 14 15 16 17 18 19 911

4 4

A B

CasoT iquestTemperatura^

bull M Termoacutemetro

C

loo 40

D E F G H i bull

90 -

80 -

70 -

60 -

50 -bull

40 -

30 -

20 -

10 -

_ U -

iexcliexclbullSill l liexcliexcli l l | ||

- 1111111 [iiiiiiiiiiilaailBiij -

bull

- 9 0

bull 80

-70

-60

-50

- 40

- 30

-20

- 10

bull bull

M

bull

bull

bull

I J T i _ j

1

__i uumld Figura 522 Serie con los casos en el eje Yl y serie con las temperaturas en el eje Y2

ambos con formato ideacutentico

1

2 3 4 5

6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26

|H 4

A B

Caso ^Temperatura^

bull M Termoacutemetro

C

icio 40

D E F G 1 bull bull

90 -

80 -

70 -

60 -

bull 50 -

40 -

30 -

20 -

10 -

0 -

i i iwi^^Ma -- ^ ^ H H | -

iMH^^SI -EHBB

- |sect||1| - PiPiacuteiSilil

- 90

- 80

bull 70

bull 60

- 50 bull

- 40

- 30

- 20

- 10

L M a H S plusmn 0

M

H 1 ~Z

H

1 gtir Figura 523 Graacutefico estilo termoacutemetro completada

178 Excel Los mejores trucos

Crear un graacutefico de columnas con anchos y altos variables iquestNo seriacutea estupendo poder crear un graacutefico de columnas las cuales pudiesen variar en ancho y alto Luego a medida que se dibujan los datos en dichas columnas su ancho y su alto se ajustariacutean inteligentemente y de forma simultaacutenea

Excel no proporciona esta caracteriacutestica directamente pero trucando un graacuteshyfico XY de dispersioacuten podemos crear un graacutefico de columnas de ancho variable m u y efectivo Los graacuteficos de dispersioacuten se utilizan para comparar valores por lo que proporcionan una base perfecta sobre la que comenzar a crear un graacutefico de columnas de ancho variable

La figura 524 muestra un graacutefico de columnas de ancho variable que dibuja el porcentaje compartido comparado con el coste de los siguientes gastos gas electricidad agua comida viajes y otros El eje X (el eje a lo largo de la parte inferior del graacutefico) muestra los porcentajes mientras que el eje Y (el eje que se encuentra en la parte izquierda) muestra el coste en dinero

1 2

A B C Columnas de ancho variable

3 Gas 4 Electricidad 5 Agua 6 Comida 7 Viajes 8 iexcl Otros

r 0 1

2 Iacute3

14 15 Iacute6 17 18 19 201 21 22 23 24 25 jiquestl I 4

Comp Coste (euro) 02 150 015 1125 012 90 03 225 007 525 016 120

250 -

200 -

amp 150 bull

1

u 100 -

50 -

n -c

bull M Hojal

bull

bull

02 04

L

D E X Y 0 =C3 =B3+D2 =C3 =B4+D3 =C4 =B5+D4 =C5 =B6+D5 =C6 =B7+D6 =C7 =B8+D7 =C8

bull

06 08

F Supr

=D3-D2 =D4-D3 =D5-D4 =D6-D5 =D7-D6 =D8-D7

bull

1

G I nfe r =E2 =E3 =E4 =E5 =E6 =E7 =E8

12

H Arriba =C3-E2 =C4-E3 =C5-E4 =C6-E5 =C7-E6 =C8-E7

l

bull Serie

1 J EtiqEscala X EtiqEscala Y

=f(D3-D2)2)+D2 0 =((D4-D3)2)+D3 0 =((D5-D4)2)+D4 0 =(YD6-D5)2)+D5 0 =((D7-D6)2)+D6 0 =((D8-D7)2)+D7 0

j laquo l 1

K Texto EtiqEscala

=B3 =B4 =B5 =B6 =B7 =B8

bull in Figura 524 Graacutefico XY de dispersioacuten configurado para el rango D2E8

Para crear este graacutefico introduzca algunos datos como los que se muestran en la figura 524 y utilizando el asistente para graacuteficos seleccione el rango D2E8 En el paso 1 seleccione el tipo de graacutefico XY de dispersioacuten Acepte los valores

5 Trucos sobre graacuteficos 179

predeterminados para este graacutefico que muestran solamente los puntos y haga clic en Siguiente En el paso 2 aseguacuterese de que la opcioacuten Columnas estaacute selecshycionada Haga clic en Siguiente y en el paso 3 del asistente en el cuadro de texto Valor (Y) escriba Coste ($) Haga clic en el botoacuten Siguiente y aseguacuterese de que el graacutefico seraacute generado como un objeto no en una nueva hoja Para terminar haga clic en el botoacuten Finalizar para ver el graacutefico resultante

Para ver las foacutermulas correctas en su sitio en las celdas seleccione la K^ opcioacuten HerramientasgtOpciones y luego vaya a la pestantildea Ver y actiacutevela

-V casilla de verificacioacuten Foacutermulas

Ha llegado el momento de manipular el graacutefico para crear las columnas Prishymeramente elimine la leyenda y la cuadriacutecula (basta con seleccionarlas y luego pulsar Supr) Cambie el formato del aacuterea de dibujo para que no se rellene haga clic en el color de fondo gris luego haga clic con el botoacuten derecho sobre eacutel y seleccione Formato del aacuterea de trazado Seleccione la opcioacuten Ninguna en el apartashydo Aacuterea

Seleccione el eje X y luego haga doble clic sobre eacutel para acceder al cuadro de diaacutelogo Formato de ejes Vaya a la pestantildea Escala e introduzca un miacutenimo de 0 y un maacuteximo de 1 Vaya a la pestantildea Tramas y seleccione la opcioacuten Ninguna en Marca de graduacioacuten principal y en Roacutetulos de marca de graduacioacuten seleccione Ninguno Luego haga clic en Aceptar con lo que el graacutefico se pareceraacute al que se muestra en la figura 525

El siguiente paso seraacute crear las liacuteneas para las columnas asiacute que haga doble clic sobre los puntos de los datos para abrir el cuadro de diaacutelogo Formato de serie de datos Vaya a la pestantildea Barras de error X En la seccioacuten Presentar seleccione la opcioacuten Por defecto y luego seleccione la opcioacuten Personalizada y establezca el rango G2G8 Al hacer clic en Aceptar obtendraacute los lados verticales de las coshylumnas

Ahora que ya hemos hecho el trabajo duro es el momento de retocar un poco el graacutefico y antildeadir algunas etiquetas Primeramente en el cuadro de diaacutelogo Forshymato de serie de datos vaya a la pestantildea Tramas y seleccione la opcioacuten Ninguno en el apartado Marcador Los resultados se muestran en la figura 526

Si desea utilizar etiquetas deberaacute descargar las herramientas para graacuteficos de John Walkenbach disponibles en httpj-walkcomssexcelfilescharttoolshtm Una parte de este componente estaacute disentildeado especiacuteficamente para etiquetas de datos

Le permite especificar un rango de la hoja para las etiquetas de datos que se utilizaraacuten en la serie de un graacutefico (por desgracia parece que este componente no funciona en la versioacuten de Macintosh de Excel)

180 Excel Los mejores trucos

A B C Columnas laquole ancho variable

D

Gas Electricidad Agua Comida Viajes [Otros

JoComp Coste (euro) 02 015 012 03 007 016

150 1125 90 225 525 120

0 =C3 =B3+D2 =C3 =B4+D3 =C4 =B5+D4 =C5 =B6+D5 =C6 =B7+D6 =C7 =B8+D7 =C8

F Supr

H

=D3-D2 =D4-D3 =D5-D4 =D6-D5 =D7-D6 =08-07

Infer Arriba =E2 =E3 =E4

=C3-E2 =C4-E3 =C5-E4

=E5 =C6-E5 =E6 =C7-E6 =E7 =C8-E7 =E8 iexclI

i EtiqEscala X

250

200 -I

$ 1 50 4 o

w 100

50

0

4 bull n Ho ja l

J K EtiqEacutescala Y Texto EtiqEscala

=((D3-D2)2)+D2 0 =((D4-D3)2)+D3 0 =((D5-D4)2)+D4 0 =((D6-D5)2)+D5 0 =(D7-D6)2)+D6 0 =((D8-D7V2)+D7 0

=B3 =B4 =B5 =B6 =B7

LIacuteO Figura 525 Graacutefico de dispersioacuten modificado

A Columnas lt

B C le ancho variable Comp Coste (euro)

Gas Electricidad Agua Comida Viajes Otros

02 015 012 03 007 016

150 1125 90 225 525 120

0 =B3+D2

=B4+D3 =B5+D4 = =B6+D5 B7+D6 =

=B8+D7 =C8

Supr

=03-02 =04-03 =D5-D4 =06-05 =07-06 =D8-D7

G Infer

H Arriba

=E2 =E3 =E4 =E5 =E6 =E7 =E8

=C3-E2 =C4-E3 =C5-E4 =C6-E5 =C7-E6 =C8-E7

^ bull nHojal

EtiqEscala X EtiqEscala Y Texto EtiqEscala

=((D3-D2)2)+D2 =((D4-D3)2)+D3 =((D5-D4)2)+D4 =((D6-D5)2)+D5 =((D7-D6)2)+D6 =((D8-D7)2)+D7

=B3 =B4 =B5 =B6 =B7

X Figura 526 Graacutefico de dispersioacuten manipulado para producir un graacutefico con columnas

de ancho variable

Antes de utilizar estas herramientas deberaacute antildeadir una nueva serie de datos para proporcionar las etiquetas al eje X del graacutefico Para ello seleccione el graacutefi-

5 Trucos sobre graacuteficos 181

co haga clic con el botoacuten derecho sobre eacutel y seleccione la opcioacuten Datos de origen y luego vaya a la pestantildea Serie Haga clic en Agregar para antildeadir una nueva serie En el cuadro de texto Valores X seleccione el rango 1318 y en el cuadro de texto Valores Y seleccione el rango J3J8 De formato a la nueva serie de forma que no tenga marcador para ello abra el cuadro de diaacutelogo Formato de serie de datos vaya a la pestantildea Tramas y luego en el apartado Marcador seleccione la opcioacuten Ninguno Ahora llega el momento de utilizar el componente Aseguacuterese de que tiene seleccionada la serie 2 y vaya a GraacuteficogtJWalk Chart Tools Cuando se abra el cuadro de diaacutelogo haga que el rango de la etiqueta de datos sea K3K8

Para antildeadir una nueva serie de datos para proporcionar las etiquetas de la columna seleccione el graacutefico haga clic con el botoacuten derecho sobre eacutel seleccione Datos de origen y luego vaya a Serie Haga clic en Agregar para antildeadir una nueva serie En Valores X seleccione el rango 1318 y en Valores Y seleccione el rango C3C8 De nuevo de formato a la nueva serie de forma que no tenga marshycador de la misma forma que indicamos anteriormente

Nuevamente usaremos el complemento pero esta vez seleccionaremos la serie 3 y vincularemos las etiquetas de datos a A3A8 El resultado deberiacutea ser como el que se muestra en la figura 527

1 2

A Columnas

3 Gas [ 4 Electricidad 5 Agua 6 Comida 7 Viajes | 8 |Otros | 9 10 11 12 13 14 15 16 17

18 19 20 21 22 23 24 25

|H 4

250 -

200 -

- 150 -

- 100 -

50 -

0 -

bull bull H o j a l

B C de ancho variable Cornp Coste(euroj

20 15000 euro 15 11250 euro 12 9000 euro 30 22500 euro 7 5250 euro

16 12000 euro

D E X Y

0 150 2000 150 3500 1125 4700 90 7700 225 8400 525

10000 120

F Supr

r2000 r1500 r1200 r3000 t 700 1600

Gas

Electricidad

Agua

20 15 12

G Inferior

150 150

1125 90

225 525 120Iacute

Comida

30

H Vriba

0 -375 -225

135 -1725

675

I J EtiqEscala X EtiqEscala Y

1000 0 2750 0 4100 0 6200 0 8050 0 9200 0

Viajes

Otros

7 16

M

K _ _ j

Texto EtiqEscala ~

20 15 12 30 7

16

- J

ir Figura 527 Graacutefico con columnas de ancho variable completado

Lo mejor de este tipo de graacuteficos es que las barras se expandiraacuten o contraeraacuten a lo largo de los ejes X e Y cuando los valores introducidos en las columnas Compartido y Coste cambien

182 Excel Los mejores trucos

Crear un graacutefico de tipo velociacutemetro Es posible crear un velociacutemetro realmente impresionante y funcional con su aguja movible todo ello gracias a la combinacioacuten de graacuteficos circulares y graacuteficos de anillo El truco estaacute en controlar el velociacutemetro a traveacutes de una barra de desplazamiento

El asistente para graacuteficos de Excel ofrece diferentes tipos de graacuteficos aunque no uno como el que queremos hacer Un graacutefico de tipo velociacutemetro proporciona una forma ingeniosa de representar los datos Con este truco podemos crear un velociacutemetro y una barra de desplazamiento a partir del cuadro de herramientas que serviraacute para modificar el graacutefico y cambiar los valores de la hoja simultaacuteneashymente

Lo primero que debemos hacer es introducir algunos datos al igual que se muestra en la figura 528 y luego crear un graacutefico de tipo anillo Eacutestos funcioshynan de forma similar a los graacuteficos circulares aunque permiten contener muacuteltishyples series cosa que los graacuteficos circulares no pueden

1 2 3 4 5 6 7 8 9 10 11

12 13 14 15 16 17 18 19 20

H lt

A Bandas

25 75_

bull bull l H o j

180

B Marcas

=(180100)A2 =(180100)(A3-A2) =360-

JJ_

SUMA(B2B4)

C D Etiquetas Marcas Etiquet

180 =$F$3amp50 9 0 18 10 18 20 18 30 18 40 18 50 18 60 18 70 18 80 18 90 9 100

Bajo Normal Alto

i l L

as comp

E F Aguja

200 Comp =((180100)F3)-1 |50 2 =360-SUMA(E2E4)

_ J

=

H-

MTJ Figura 528 Datos configurados para ser usados por el velociacutemetro

Aseguacuterese de mostrar las foacutermulas en la hoja Para ello vaya a Herramientasgt OpcionesgtVer y active la casilla de verificacioacuten Foacutermulas aunque esto seraacute un proceso largo

Ahora seleccione el rango B2B5 y seleccione el asistente para graacuteficos En el paso 1 en la pestantildea Tipos estaacutendar seleccione el primer tipo de graacutefico de anillo Haga clic en Siguiente y en el paso 2 aseguacuterese de que los datos se dibujaraacuten por filas Haga clic de nuevo en Siguiente y realice cualquier cambio que considere necesario en el paso 3 (aunque no lo son para este truco) Vaya al paso 4 hacien-

5 Trucos sobre graacuteficos 183

do clic en Siguiente y aseguacuterese de que el graacutefico se generaraacute como un objeto (es la opcioacuten predeterminada) Al general graacutefico como un objeto resultaraacute maacutes senshycillo trabajar con eacutel y asiacute poder configurar el velociacutemetro (veacutease figura 529)

Velociacutemetro

Figura 529 Graacutefico de anillo baacutesico

Seleccione el graacutefico de anillo y seleccione la porcioacuten maacutes grande haciendo doble clic lentamente para luego seleccionar la opcioacuten Formato de punto de datos e ir a la pestantildea Opciones Establezca el aacutengulo para esta porcioacuten en 90 grados Vaya a la pestantildea Tramas y configure el aacuterea y el borde de esta porcioacuten a Ningushyno Haga clic en Aceptar y haga doble clic lentamente para seleccionar cada uno de las porciones restantes Haga doble clic entonces para volver al cuadro de diaacuteshylogo anterior y establecer el color como sea necesario Al final el graacutefico de tipo anillo deberiacutea parecerse al que se muestra en la figura 530

V

Figura 530 Graacutefico de tipo anillo con aacutengulo de 90deg sin color ni borde en la primera porcioacuten

Ahora necesitamos antildeadir otra serie (Serie 2) de valores para formar los segshymentos para las etiquetas del semiciacuterculo Para ello seleccione el graacutefico haga clic en el botoacuten derecho sobre eacutel seleccione la opcioacuten Datos de origen y luego

184 Excel Los mejores trucos

vaya a la pestantildea Serie Haga clic en el botoacuten Agregar con el que crearaacute una nueva serie y luego en Valores seleccione el rango C2C13 Haga clic de nuevo en el botoacuten Agregar para antildeadir una tercera serie (Serie 3) con la que crearemos la aguja del velociacutemetro En Valores seleccione el rango E2E5 Al final el resulshytado deberiacutea ser como el de la figura 531

Figura 531 Graacutefico de tipo anillo con muacuteltiples series

Llegados a este punto el velociacutemetro estaacute empezando a tomar forma Si desea antildeadir etiquetas a este graacutefico necesitaraacute descargar una herramienta para poder antildeadirlas libremente Vaya a httpj-walkcomssexcelfilescharttoolshtm donde podraacute descargar Chart Tools de Jonh Walkenbach

Parte de este complemento que por desgracia soacutelo funciona con Windows estaacute disentildeado especiacuteficamente para crear etiquetas de datos Nos permite especishyficar un rango de una hoja para las etiquetas de datos que se utilizaraacuten en la serie de un graacutefico el complemento tambieacuten contiene otras caracteriacutesticas que pasamos a detallar a continuacioacuten

bull Tamantildeo del graacutefico Permite especificar un tamantildeo exacto para un graacuteshyfico y tambieacuten permite hacer que todos los graacuteficos tengan el mismo tashymantildeo

bull Exportar Le permite guardar los graacuteficos como archivos gif jpg tif o png

bull Imagen Convierte un graacutefico en una imagen (a color por escala de grises)

bull Tamantildeo del texto Congela el tamantildeo de todos los elementos de texto en un graacutefico de forma que si eacuteste cambia de tamantildeo los elementos de texto no lo haraacuten

bull Informe del graacutefico Genera un informe de resumen para todos los graacuteshyficos o bien un informe detallado para uno en particular

5 Trucos sobre graacuteficos 185

Utilice este complemento para dar formato a la serie 2 para que se muestren las etiquetas de datos utilizando el rango D2D13 Manteniendo seleccionada la serie 2 haga doble clic sobre ella para abrir el cuadro de diaacutelogo de formato Vaya a la pestantildea Tramas y seleccione Ninguno tanto para el borde como para el aacuterea Con ello el graacutefico deberiacutea parecerse al que se muestra en la figura 532

Figura 532 Graacutefico de tipo velociacutemetro mejorado junto con las etiquetas

Seleccione la serie 3 haga clic con el botoacuten derecho sobre ella y seleccione Tipo de graacutefico Cambie esta serie para que sea del tipo graacutefico circular predeterminashydo Siacute parece extrantildeo (veacutease figura 533) pero podemos asegurar que si el graacutefishyco circular se superpone con el graacutefico de anillo es que lo ha hecho todo correctamente

Figura 533 Graacutefico de tipo velociacutemetro superpuesto con el graacutefico circular

A continuacioacuten es necesario reducir el tamantildeo de graacutefico circular que acabashymos de colocar sobre el graacutefico de anillo Para ello sepaacuterelo en diferentes porcioshynes y luego vuelva a ensamblar las maacutes pequentildeas Seleccione una porcioacuten de graacutefico circular (haciendo dos clics lentamente en la porcioacuten que desea modifi-

186 Excel Los mejores trucos

car) y arrastraacutendola hacia afuera Esto haraacute que el graacutefico circular se separe y se haga maacutes pequentildeo tal y como se muestra en la figura 534

Velociacutemetro

5G Cotnp

Figura 534 Graacutefico circular separado y cambiado de tamantildeo

Ahora seleccione todo el ciacuterculo haga doble clic sobre eacutel y en el cuadro de diaacutelogo Formato de serie de datos vaya a la pestantildea Opciones Cambie el aacutengulo de la primera porcioacuten a 90 grados Seleccione una a una el resto de las porciones y haciendo clic con el botoacuten derecho del ratoacuten vuelva a este cuadro de diaacutelogo y luego vaya a la pestantildea Tramas Ahiacute seleccione Ninguno tanto para el borde como para el aacuterea de todas las porciones excepto para la tercera que deberaacute estar relleshynada con un color negro Esto produciraacute un graacutefico como el que se muestra en la figura 535

Velociacutemetro

Figura 535 Graacutefico de tipo velociacutemetro en el que solamente la tercera serie del graacutefico circular muestra un color

Si desea antildeadir una leyenda seleccione el graacutefico haga clic con el botoacuten dereshycho del ratoacuten y seleccione la opcioacuten Opciones del graacutefico Luego vaya a la pestantildea Roacutetulos de datos y seleccione la opcioacuten Clave de leyenda Esto produciraacute un velo-

5 Trucos sobre graacuteficos 187

ciacutemetro como el de la figura 536 Ahora mueva cambie el tamantildeo y modifique el graacutefico si asiacute lo desea

Velociacutemetro

D Normal

bull Alto

Figura 536 Graacutefico de tipo velociacutemetro con una leyenda

Ahora que el graacutefico de tipo velociacutemetro estaacute construido necesitamos crear una barra de desplazamiento a partir del cuadro de herramientas y hacer que este control y el graacutefico puedan comunicarse entre ellos

Para ello deberaacute mostrar el cuadro de herramientas Formularios haga clic con el botoacuten derecho ratoacuten en un aacuterea vaciacutea de la barra de herramientas (a la derecha de donde se encuentran las barras de herramientas estaacutendar y de formashyto) y seleccione en el menuacute la opcioacuten Formularios Ahora seleccione el icono Barra de desplazamiento y dibuje dicha barra en cualquier lugar de la hoja

Seleccione la barra de desplazamiento que acaba de dibujar haga clic con el botoacuten derecho sobre ella y seleccione la opcioacuten Formato de control Elija como celda vinculada la celda F3 establezca un valor maacuteximo de 100 y un valor miacutenishymo de 0 Cuando cierre este cuadro de diaacutelogo y mueva la barra de desplazashymiento sobre el graacutefico veraacute algo parecido a lo que se muestra en la figura 537

Figura 537 Graacutefico de tipo velociacutemetro ya terminado

188 Excel Los mejores trucos

Al hacer clic en las flechas o al arrastrar el selector de la barra de desplazashymiento haraacute que el velociacutemetro se modifique Pero recuerde esto tambieacuten camshybiaraacute los datos de la hoja de caacutelculo que estaacuten vinculados con el graacutefico

Vincular los elementos de texto de un graacutefico a una celda Cuando se crean y se utilizan graacuteficos repetidamente puede ser uacutetil conocer coacutemo vincular algunos de los textos de los graacuteficos como por ejemplo tiacutetulos y etiquetas directamente a una celda Esto quiere decir que si los datos subyacentes al graacutefico cambian los datos del graacutefico y sus elementos de tipo texto siempre estaraacuten en armoniacutea

Los elementos de tipo texto de un graacutefico que puede vincular a una celda son el tiacutetulo principal del graacutefico los tiacutetulos primario y secundario de los ejes X e Y asiacute como las etiquetas de datos de las series

Para ver coacutemo se hace esto vincularemos el tiacutetulo del graacutefico con una celda Para ello comenzaremos introduciendo algunos otros como los que se muestran en la figura 538 y mediante el asistente para graacuteficos crearemos un graacutefico de columnas agrupadas baacutesico Ahora haga clic en la celda Al 7 y escriba Edad de los empleados

A Fecha

1 122003 ] 2122003 3122003 4122003 5122003 6122003 iexcl 7122003 8122003

9122003 10122003 11122003 12122003 13122003 14122003

B Edad 1

2 3 4 5 6 7 8

trade9

10

TIacute 13 Iacute4 15

3S 17 bull Edad de los empleados 18

Iacute 9 mi H laquo bull bullIJXHoial

20 25 26 23 24 21 20 19 25 26 24 23 21 22

30

25

20

15 10

5

0

4

Edad

h DEdad

iquestF

_plusmnid Figura 538 Graacutefico de columnas agrupadas con su tiacutetulo creado a traveacutes del asistente

El siguiente paso seraacute crear un viacutenculo entre el tiacutetulo del graacutefico y la celda Para ello seleccione el tiacutetulo del graacutefico (Edad en este caso) luego vaya a la barra de foacutermulas escriba un = haga clic en la celda Al 7 y pulse Intro (tenga en

5 Trucos sobre graacuteficos 189

cuenta que si hace referencia a una celda que se encuentra otra hoja tendraacute que escribir primero el nombre de la hoja seguido del signo de admiracioacuten y del nomshybre de dicha celda)

Este mismo proceso funciona para las etiquetas de datos aunque necesitaraacute seleccionar una etiqueta de datos individual antes de vincularla con una celshyda Los resultados obtenidos deberiacutean parecerse a los que le mostramos en la figura 539

A Fecha

1122003 2122003 3122003 4122003 5122003 6122003 7122003 8122003 9122003

10122003 11122003 12122003 13122003 14122003

B Edad

20 25 26 23 24 21 20 19 25 26 24 23 21 22

Edad de los empleados

fEdad de los empleados I B laquo 1

30 -

25

20

15 -H D Edad

iquest y y y y y

H lt bull n H o j a l l i lL id Figura 539 Graacutefico de columnas agrupadas con el tiacutetulo vinculado a la celda Al 7

Este sencillo truco le permitiraacute conseguir que los elementos de texto del graacutefishyco y los datos del graacutefico esteacuten en armoniacutea Ademaacutes le ahorraraacute gran cantidad de tiempo a la hora de crear graacuteficos

Trucar los datos de un graacutefico de forma que no se dibujen las celdas en blanco Excel trata las celdas en blanco como si tuvieran un valor de 0 lo que puede provocar que se generen graacuteficos un tanto feos Esto provoca que la representacioacuten de valores de un graacutefico caiga de repente con lo que queda un graacutefico que no dibuja con precisioacuten la imagen que estaacute intentando mostrar Con el siguiente truco nos aseguraremos de que las celdas en blanco no sean dibujadas

Es posible impedir que se dibujen las celdas en blanco de dos formas m u y sencillas bien ocultando las filas con las columnas o bien haciendo que dichas celdas devuelvan el valor NA

Excel Los mejores trucos

Ocultar filas y columnas

Configure algunos datos de forma que queden como en la figura 540 Cree un graacutefico de liacuteneas y vea coacutemo queda si tiene valores 0 dibujados Seleccione el rango A1B12 abra el asistente para graacuteficos y configure el graacutefico de liacuteneas como un objeto para la hoja de caacutelculo actual

A 1 Enero 2 Febrero 3 Marzo 4 Abril 5 Mayo 6 Junio 7 Julio 8 Agosto 9 Septiembn 10 Octubre 11 Noviembre 12 Diciembre 13 14 15 16 17 18 19 20 21 22 i

B 300 350 325 275

0 0 0 0 0 0 0 0

|n 4 bull H Ocultar filas Devolver NA lt j bull ) f]

Figura 540 Datos y un graacutefico de liacuteneas que estaacute dibujando los valores 0

A 6 C D EacuteT F G H iexcl J 1 Enero 300 2 Febrero 350 3 Marzo 325 4 Abril 275 13 14 15 16 17 18 19 20 21 22 23 24 25

I H 4 bull H Ocultar filas Devolver NA ltiexcl j bull | f j

Figura 541 Datos con las filas 5 a 12 ocultas con el graacutefico dibujando solamente los valores de enero a abril

El graacutefico de la figura 540 estaacute dibujando los resultados de ventas por meses Esto significa que si el mes actual es abril el graacutefico estaraacute dibujando ocho meses

190

400

350

300

250

200

150

100

50

mdash eacute mdash | mdash mdash | mdash mdash | mdash mdash | mdash mdash | mdash mdash | mdash eacute mdash

iquestdeg^deggtdegaacutegtgt0 ltgtdeg w ^gtgtvy gt cr ^ iquestp

400 -i

350 bull

300 bull

250 bull

200 -

150 bull

100 bull

50 bull

0 bull

Enero

| mdash laquo mdash Ser ie l

Febrero M a r i o

^ mdash bull bull

i

Abri l

5 Trucos sobre graacuteficos 191

de celdas vaciacuteas dado que todaviacutea no disponemos de los datos desde mayo a diciembre

Para evitar este inconveniente bastariacutea con ocultar las filas 5 a 12 (mayo a diciembre) Al hacer esto Excel no dibuja los datos que haya en filas ocultas con lo que obtendremos un resultado como el de la figura 541 Para ocultar estas filas seleccioacutenelas y luego vaya a FormatogtFilagtOcultar

CAPIacuteTULO 6

Trucos sobre foacutermulas y funciones

Trucos 60 a 80

Las foacutermulas y funciones proporcionan la loacutegica que da potencia a las hojas de caacutelculo Saber manipular la loacutegica de programacioacuten siempre resulta un reto pero mantener un seguimiento de la loacutegica de programacioacuten a lo largo de muacutelt ishyples celdas hojas y libros puede ser particularmente difiacutecil especialmente cuanshydo estas hojas de caacutelculo crecen y son reutil izadas Y lo que es maacutes las caracteriacutesticas incorporadas en Excel en relacioacuten a las foacutermulas y funciones pueshyde que no siempre sean las que desea Por suerte existen numerosas formas de mantener en buen estado esas foacutermulas y funciones

Antildeadir un texto descriptivo a las foacutermulas Los rangos con nombre de Excel y los comentarios de celdas pueden ayudar a clarificar las foacutermulas pero a veces desearaacute poder antildeadir maacutes documentacioacuten dentro de los propios foacutermulas Con los trucos de este apartado podraacute antildeadir un texto descriptivo a las foacutermulas de forma raacutepida y sencilla

Incluso cuando haya escrito varias foacutermulas y funciones por usted mismo cuando tenga que volver a ellas maacutes adelante normalmente tendraacute que seguir las referencias a celdas para averiguar queacute era lo que haciacutea la funcioacuten Seriacutea una gran idea asiacute se pudiese antildeadir al final de la foacutermula alguacuten texto (que no interfishyriese con el resultado) que proporcionase maacutes informacioacuten sobre el mecanismo de la foacutermula para asiacute poder consultarlo maacutes adelante

El problema por supuesto es que en el momento en el que antildeada texto como parte de la foacutermula el resultado de la misma no seraacute numeacuterico y no podraacute ser

uuml

194 Excel Los mejores trucos

utilizado en caacutelculos posteriores Excel sin embargo proporciona una funcioacuten a menudo olvidada que puede utilizar para antildeadir texto descriptivo a las foacutermulas o a las funciones

Digamos que tiene la siguiente foacutermula en la celda Al 1

=SUMA($A$1$A$10)$B$1

Suponiendo que $A$1$A$10 contienen varios resultados numeacutericos que reshypresentan los totales para un mes en particular y que $B$1 contiene el porcenshytaje que representa un impuesto podemos antildeadir alguacuten texto descriptivo a la foacutermula utilizando la funcioacuten N de Excel

=SUMA($A$1$A$10N(Valores para abril))$B$1+N(Impuesto para abril)

Ahora puede determinar para queacute se estaacute utilizando la foacutermula simplemente seleccionando esta celda y mirando la barra de foacutermulas La funcioacuten N siempre devuelven un valor de 0 sea cual sea el texto por lo que no interfiere con el resultado total de la foacutermula

0 ^ 3 Mover foacutermulas relativas sin cambiar las referencias ) ^ V ^ ^ H En Excel una referencia de una foacutermula puede ser relativa o absoluta Sin

^ ^ ^ ^ ^ ^ | embargo algunas veces desearaacute reproducir las mismas foacutermulas en alguacuten otro lugar de la hoja o el libro o incluso en otra hoja diferente

Cuando una foacutermula necesita hacerse absoluta escriba el signo del doacutelar ($) delante de la letra de la columna y o del nuacutemero de la fila que hace referencia una celda como por ejemplo en $A$1 Una vez hecho esto no importa doacutende copie la foacutermula que la referencia se mantendraacute a la misma celda

Aveces de todas formas desearaacute configurar numerosas foacutermulas que no conshytengan referencias absolutas pero siacute relativas Normalmente hariacutea esto de forma que cuando copie la celda con la foacutermula original en otro rango las referencias a columnas y filas cambien en funcioacuten de la nueva ubicacioacuten

Por uacuteltimo otras veces desearaacute configurar las foacutermulas utilizando una mezshycla de referencias relativas y absolutas y desearaacute reproducirla en otro rango de la misma hoja en otra hoja del mismo libro o incluso en una hoja de otro libro Puede hacer todas estas cosas sin tener que cambiar ninguna referencia a rangos que haya dentro de las foacutermulas

Seleccione el rango de celdas que desea copiar Vaya a EditargtReemplazar y en el cuadro de texto Buscar escriba = (un signo de igual) En el cuadro de texto Reemplazar con escriba (el signo de la arroba) o cualquier otro siacutembolo que sepa que no esteacute siendo utilizado por ninguna de las foacutermulas A continuacioacuten haga clic en el botoacuten Reemplazar todos

6 Trucos sobre foacutermulas y funciones 195

Todas las foacutermulas apareceraacuten en la hoja con el signo en lugar del signo = Ahora simplemente puede copiar este rango pegarlo en el destino que desee seleccionar dicho rango de destino e ir a EdicioacutengtReemplazar donde esta vez reemplazaremos el signo por el signo = Con ello conseguiremos que las foacutershymulas hagan referencia a las mismas celdas que lo haciacutean las originales

Comparar dos rangos de Excel Buscar las diferencias entre dos grandes tablas con datos puede ser una tarea muy costosa Afortunadamente al menos hay dos meacutetodos con los que podemos automatizar lo que de otra manera seriacutea un proceso manual muy tedioso

Estos dos meacutetodos ya los hemos utilizado anteriormente cuando recibimos una copia actualizada de una hoja de caacutelculo y necesitaacutebamos identificar queacute celdas en la copia actualizada eran diferentes de las celdas que habiacutea en la copia original Ambos meacutetodos nos ahorraraacuten el tedioso trabajo de hacer una comproshybacioacuten manual y lo que es maacutes importante evitaraacuten la posibilidad de cometer errores Para los siguientes ejemplos hemos copiado los datos maacutes nuevos en la misma hoja en la que estaban los antiguos En la figura 61 se muestra coacutemo se presentan los datos en dos rangos Tenga en cuenta que para facilitar la lectura hemos puesto en negritas las celdas de la tabla 2 que no son iguales que las correspondientes de la tabla 1

1 A B C 1 Nombre Edad Aacuterea 2 Juan 22 1a 3 Antonio 33 la 4 Marta 55 2c 5 Cristina 48 3d 6 Mariacutea 29 3d 7 Carlos 45 4a

3 9 Nombre Edad Aacuterea 10 Juan 22 2c 11 Antonio 33 1a 12 Marta 55 2d 13 Cristina 43 3d 14 David 29 3d 15 Carlos 45 4a 16

H 4 bull raquo l _Hoia l Hoia2 jHpja3

D E F G 7

mdash-

mdash I laquol l bull i f l Figura 61 Dos rangos a ser comparados

Meacutetodo 1 Utilizar Verdadero o Falso

El primer meacutetodo implica introducir una simple foacutermula en otro rango con el mismo tamantildeo y composicioacuten La parte mejor de este meacutetodo es que puede antildea-

196 Excel Los mejores trucos

dir la foacutermula en un solo paso sin tener que copiar y pegar Para comparar los rangos que se muestran en la figura 61 seleccione el rango E1G7 comenzando por la celda El Esto aseguraraacute que dicha celda sea la activa en la seleccioacuten

Una vez seleccionado el rango haga clic en la barra de foacutermulas y escriba lo siguiente

=A1=A9

Introduzca esta foacutermula pulsando Control-Intro al mismo tiempo De esta forma estaraacute introduciendo la foacutermula con referencia relativa en cada una de las celdas de la seleccioacuten Eacuteste es un meacutetodo estaacutendar para introducir una foacutermula en una matriz de celdas y hacer que esa referencia cambie de forma apropiada seguacuten cada celda

El rango El G7 deberiacutea rellenarse con el valor Verdadero (son iguales) o Falso (no son iguales)

Si los dos conjuntos de datos residen en diferentes hojas de caacutelculo puede utilizar una tercera hoja para almacenar los valores VerdaderoFalso simpleshymente introduciendo la foacutermula en la matriz correspondiente Por ejemplo sushyponiendo que la segunda tabla estaacute en la Hoja2 y comienza en la celda A9 y la tabla original estaacute en la Hojal y comienza en la celda A l deberaacute introducir en la tercera hoja la siguiente foacutermula utilizando el meacutetodo de la matriz

=Hoja l Al=Hoja2A9

Puede que encuentre uacutetil a ajusfar el zoom cuando trabaje con gran cantidad de datos

Para eliminar una foacutermula introducida en una matriz debe seleccionar x y eliminar todo el rango No podraacute por consiguiente eliminar w solamente una parte de eacutel

Meacutetodo 2 Utilizar el formato condicional

El segundo meacutetodo es normalmente el preferido ya que es maacutes sencillo hacer los cambios necesarios una vez que se realiza la comparacioacuten Sin embargo con este meacutetodo ambos conjuntos de datos deben estar en la misma hoja lo que significa utilizar la funcioacuten de copiar y pegar simple

De nuevo supondremos que estamos comparando los dos rangos que dijimos antes Seleccione el rango Al C7 comenzando por la celda A l de forma que nos aseguremos que sea la celda activa

Eacutey

^A

6 Trucos sobre foacutermulas y funciones 197

Una vez hecho esto vaya a FormatogtFormato condicional Elija la opcioacuten Foacutershymula en el cuadro de lista desplegable y al cuadro de texto situado su derecha escriba la siguiente foacutermula

=N0(A1=A9)

Haga clic en el botoacuten Formato (veacutease figura 62) y elija el formato con el que desea remarcar aquellas celdas que sean diferentes

31

A g r e g a r raquo j Eliminar | j Aceptar | Cancelar I

Figura 62 Cuadro de diaacutelogo de formato condicional

Haga clic en Aceptar y todas las celdas que sean diferentes tendraacuten el formato que definioacute en el paso anterior

Si real iza cambios en los da tos el f o r m a t o de las celdas cambia raacute automaacuteticamente dependiendo de si la comparacioacuten con las celdas de la otra tashybla es verdadera o falsa

B| Rellenar todas las celdas en blanco en una lista H bullbullKfl A m e n u d o m u c n a gente deja celdas en blanco si el dato que deben

I ^ H Iacute I contener es el mismo que el de la celda inmediatamente superior Visualmente esto hace que las listas sean maacutes sencillas de leer pero desde el punto de vista estructural no es una buena idea Con los trucos de este apartado podraacute rellenar las celdas en blanco de una lista de forma raacutepida y sencilla

Muchas de las funciones de Excel estaacuten disentildeadas para ser utilizadas en listas Para que la mayoriacutea de estas funciones hagan su trabajo correctamente las lisshytas no deben contener ninguna celda en blanco y los encabezados de las columshynas deben estar configurados con un formato diferente al de los datos

Cuando rellenar datos en Excel resulta una buena praacutectica asegurarse de que todas las celdas que estaacuten dentro de una lista tienen alguacuten valor dentro de ellas Sin embargo muchas listas estaacuten configuradas de forma similar a como se muesshytra en la figura 63

Mientras que los precios se repiten en la columna Coste los tipos de frutas en la columna Frutas no Como ya sentildealamos al principio del capiacutetulo 1 esto puede

_j p _ _ _ Vista previa del formato que desea usar cuando a condicioacuten sea verdadera AaBbCcYyZz

198 Excel Los mejores trucos

crear muchos problemas cuando se utilicen caracteriacutesticas tales como subtotales y tablas dinaacutemicas En la mayoriacutea de los casos Excel espera que los datos relacioshynados esteacuten configurados en una lista o tabla continua en la que no haya celdas en blanco

I ^ B C D E 1 F GTJ 1 Frutas Coste 2 Manzana 125 euro 3 125 euro 4 Plaacutetano 255 euro 5 255 euro 6 255 euro 7 Naranja 155 euro 8 155 euro 9 155 euro 10 Pera 455 euro 11 12 13 14 15 16 J 17 18

|H lt bull M Hojal Hoja2 Hoja3 |_ltj l HU

Figura 63 Lista de una hoja configurada con celdas en blanco

Existen dos meacutetodos para rellenar las celdas en blanco de una lista con una foacutermula y con una macro

Meacutetodo 1 Rellenar las celdas en blanco mediante una foacutermula

Digamos que tiene una lista con entradas en la columna A similar a la del ejemplo anterior y con una lista que contiene numerosas celdas en blanco A continuacioacuten mostramos un meacutetodo faacutecil y raacutepido para rellenar esas celdas en blanco con los valores de las celdas inmediatamente superiores

Seleccione todos los datos de la columna A vaya a Edicioacutengtlr a (Control-I) y luego haga clic en Especial Seleccione el botoacuten de opcioacuten Celdas en blanco y haga clic en Aceptar Llegados este punto hemos seleccionado solamente las celshydas vaciacuteas que se encuentran dentro de la lista Pulse la tecla = (signo de igual) y luego la tecla cursor arriba Ahora mientras mantiene pulsada la tecla Control pulse la tecla Intro Puede convertir raacutepidamente las foacutermulas a valores simpleshymente seleccionando la columna A por completo Vaya a EdicioacutengtCopiar (Con-trol-C) luego vaya a EdicioacutengtPegar especial active la casilla de verificacioacuten Valores y haga clic en el botoacuten Aceptar

6 Trucos sobre foacutermulas y funciones

Meacutetodo 2 Rellenar las celdas en blanco a traveacutes de una macro

Si va a tener que rellenar celdas en blanco con frecuencia deberiacutea considerar resolver este problema utilizando una macro La siguiente macro realiza todo este trabajo

Para crearla vaya a HerramientasgtMacrogtEditor de Visual Basic (AltOpcioacuten-Fl 1) luego seleccione la opcioacuten de menuacute lnsertargtMoacutedulo e introduzca el siguiente coacutedigo

Sub RellenarBIancos( ) Dim rRangel As Range rRange2 As Range Dim IReply As Integer

If SelectionCellsCount = 1 Then MsgBox Debe seleccionar la lista e incluir las celdas en blanco_ vblnformation Aviso ~~ Exit Sub

Elself SelectionColumnsCountgtl Then MsgBox Debe seleccionar soacutelo una columna _ vblnformation Aviso Exit Sub

End If

Set rRangel = Selection

On Error Resume Next

Set rRange2 = rRangelSpecialCells(xlCellTypeBlanks) On Error GoTo 0

If rRange2 Is Nothing Then MsgBox No se encontraron celdas en blanco _

vblnformation Informacioacuten Exit Sub

End If

rRange2FormulaRICl = =R[-1]C

IReply = MsgBox(iquestConvertir a valores vbYesNo + vbQuestion Atencioacuten)

If IReply = vbYes Then rRangel = rRangelValueacute End Sub

Despueacutes de introducir este coacutedigo cierre la ventana para volver a la ventana

principal de Excel y guardar el trabajo Ahora vaya a HerramientasgtMacrogtMacros

(AltOpcioacuten-F8) seleccione la macro RellenarBIancos y haga clic en el botoacuten

Ejecutar aunque tambieacuten puede utilizar el botoacuten Opciones y asignar esta macro

a una tecla de acceso raacutepido

200 Excel Los mejores trucos

Q H Q Hacer que las foacutermulas se incrementen por filas | V ^ f l cuando las copie a lo largo de las columnas

^ M B B M La funcioacuten de Excel que incrementa automaacuteticamente las referencias a celdas funciona bastante bien en la mayoriacutea de los casos pero a veces desearaacute cambiar la forma en la que lo hace

Por ejemplo puede que desee hacer referencia a una uacutenica celda como puede ser A l y luego copiar esta referencia a lo largo de las columnas que hay a la derecha Normalmente Excel cambiaraacute la referencia de la siguiente forma = B1 = C1 =D1 etc lo cual no es el resultado que deseamos En este caso queremos que las foacutermulas se incrementen por filas en vez de por columnas es decir =A1 =A2 =A3 etc Por desgracia no hay una opcioacuten en Excel que le permita hacer esto Pero podemos conseguir realizar todo esto mediante la funcioacuten INDIRECTO y la funcioacuten DIRECCIOacuteN situada dentro del anterior

Quizaacute la mejor forma de explicar coacutemo crear la funcioacuten requerida es utilizar un ejemplo en el que los resultados sean predecibles En las celdas Al A10 introshyduzca los nuacutemeros del 1 al 10 en este orden Seleccione la celda DI e introduzca la siguiente foacutermula en ella

= INDIRECTO(DIRECCIOacuteN(COLUMNA() - 31) )

Tan pronto como introduzca esto el nuacutemero 1 deberiacutea aparecer en la celda d i Esto es debido a que la foacutermula hace referencia a la celda A l

Si copia esta foacutermula a lo largo de las columnas situadas a la derecha la celda El contendraacute el nuacutemero 2 Es decir a pesar de que estamos copiando a lo largo de las columnas la referencia de la foacutermula se estaacute incrementando por filas tal y como se muestra en la figura 64

Este meacutetodo es especialmente uacutetil cuando una hoja de caacutelculo tiene encabezados que van de arriba a abajo en una columna y desea crear una referencia dinaacutemica a esos encabezados de fila a lo largo del resto de columnas

Si sigue copiando esto hacia la derecha la celda Fl contendraacute el nuacutemero 3 la celda Gl contendraacute el nuacutemero 4 etc Eacuteste es un proceso muy faacutecil de seguir si solamente se hace referencia a una uacutenica celda Pero muchas veces necesitaraacute hacer referencia a un rango de celdas que estaacute siendo utilizado como argumento de una funcioacuten Utilizaremos la popular funcioacuten SUMA para demostrar a queacute nos referimos Suponga que recibe una larga lista de nuacutemeros y su trabajo es sumar la columna de nuacutemeros para obtener un total algo parecido a esto

=SUMA($A$1$A$2) =SUMA($A$1$A$3) y =SUMA($A$1$A$4)

6 Trucos sobre foacutermulas y funciones 201

IB Microsoft Excel -Libro bull-bull 1- WMSSU^^^^^M

41 J Aria

LU 1 2

3 4 5 6 7 8 9 10 11 12 13 14 15

16 17 18 19

illaquo 4

Listo

Archivo

J d

D1

A

Edicioacuten

J _J

1

2

3 4 5 6 7 8 9

10

Ver Insertar Formato Herramientas Datos Ventana

j Jk U -J ^ - 9 Iacuteiquest s - iquest1 M ioo iacute o N J s i i i ^ j ooo euro oE bdquodeg8 m O - gt

pound =INDIRECTO(DIRECCION(COLUMNA0-31))

B C ~~ D I

1 1

E F G

2

bull H Hojal Hoja2 X H o j a 3 j lt j |

MAYUacuteS NUM

~ _ _

mdash

^ bull i r

Figura 64 El resultado de copiar la celda DI a la celda El

El problema surge porque los resultados necesitan ser dinaacutemicos y expandirse a lo largo de las 100 columnas solamente para la fila 1 no 100 filas hacia abajo en otra columna (como suele ser lo habitual)

Naturalmente podriacutea escribir manualmente esas funciones en cada celda individual pero eso seriacutea un trabajo m u y largo En vez de eso puede utilizar el mismo principio el que hemos utilizado antes al referenciar a una uacutenica celda

Rellene el rango A l A l 0 0 con los nuacutemeros 1 al 100 en este orden Para ello introduzca un 1 en la celda A l seleccioacutenela y mientras mantiene pulsada la tecla Control haga clic en el pequentildeo recuadro de la esquina inferior derecha y arrasshytre el cursor del ratoacuten hasta la fila 100 Ahora seleccione la celda DI e introduzca la siguiente foacutermula

=SUMA(INDIRECTO(DIRECCIOacuteN(11) amp amp DIRECCIOacuteN (COLUMNA () -21) ) )

Esto le daraacute un resultado de 3 que se corresponde con la suma de las celdas A1A2 Copie esta foacutermula en la celda El y obtendraacute un resultado de 6 que se corresponde con la suma de las celdas AlA3 De igual manera al copiar la foacutershymula en la celda Fl obtendraacute un resultado de 10 que es la suma de las celdas A1A4 (veacutease figura 65)

202 Excel Los mejores trucos

B Microsoft Excel - Libro 1 ^muuml

iquestsectj Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana T f l x

J J J J J J i ^ a iquest -J ^ - ^ 9 amp pound - H Uuml JjJJ 4gt 1007o v |

Arial - 10 - N iT S ^ W M ^j ^J 000 euro t bdquodeg8 pound^ D T ^ T A T |

DI ^ ^ =SUMA(INDIRECTQ(DIRECCION(11)ampampD1RECCIQM(CQLUMNAO-21)))

2 3 4 5 6 7 8 9 10 11 12 13 14

1Fiexcl H i bull Listo

H

1 2 3 4 5 6 7 8 9

10 11 12 13 14 15

Hojal Hoja2 XHoja3

B C D I E F G H 6 10

i r

Figura 65 Resultado de copiar la celda DI en la celda Fl

La funcioacuten volaacutetil COLUMNA hace que la uacutel t ima referencia a celdas se incremente en un 1 cada vez que la copia en una nueva columna Esto es debido a que la funcioacuten COLUMNA siempre devuelve el nuacutemero de la columna (no la letra) de la celda que la contiene a menos que haga referencia a una celda difeshyrente

Otra alternativa es utilizar la funcioacuten Pegado especialgtTrasponer de Excel Antildeada la foacutermula =SUMA ($A$1 $A2) a la celda Bl (observe que hemos utilizado una referencia relativa a fila y absoluta a columna en $A2) y luego copie esta foacutermula hacia abajo hasta la celda B100 Teniendo seleccionadas las celdas B2B100 coacutepielas seleccione la celda DI (o cualquier celda que tenga 100 o maacutes columnas a la derecha) y luego vaya a EdicioacutengtPegado especialgtTrasponer Si lo desea puede eliminar las foacutermulas que hay en B2B100

Convertir fechas en fechas con formato de Excel Las fechas que se importan desde otros programas suelen causar problemas en Excel Mucha gente reescribe manualmente esas fechas pero existen meacutetodos maacutes sencillos para solucionar este problema

Como puede verse en la figura 66 las foacutermulas en la columna B convierten los datos situados en la columna A en tres resultados en la columna C todos ellos siguiendo el formato de fecha americano de mmdd aa

La figura 67 muestra el mismo meacutetodo excepto que las celdas de la columna C tienen el formato de fechas europeo (ddmmaa)

6 Trucos sobre foacutermulas y funciones 203

B Fecha antigua Foacutermula utilizada Resultado 112303 =IZQUIERDA(A2iexcl2)ampTampEXTRAE(A232)amp7ampDERECHA(A22) 112303 031123 =EXTRAE(A332)amp7ampDERECHA(A32)amp7ampIZQUIERDAfA3iexcl2) 11 23D3 231103 = EXTRAE (A4 3 2) amp ampIZQ UIE R D A(A42) amp7 ampD E R E C H A(A4 2) 11 23D3

Figura 66 Formatos de fecha convertidos en fechas vaacutelidas (formato americano)

A B C Fecha antigua Foacutermula utilizada Resultado 112303 =EXTRAEIacuteA232)amp7ampIZQUIERDAIacuteA2iexcl2)amp7ampDERECHA(A22) 2311 03 031123 =DERECHAfA3iexcl2)amp7ampEXTRAEiacuteA3iexcl32)amp7ampIZQUIERDAfA3iexcl2J 2311 flB 231103 = IZQ UIE R D A(A4 2) amp7 ampEXTR AE (A4 3 2) amp7 ampD E R E C H A(A4 2) 2311 03

Figura 67 Formatos de fecha convertidos en fechas vaacutelidas (formato europeo)

Por suerte estas interesantes foacutermulas nos quitaraacuten algo de estreacutes a la hora de trabajar con fechas importadas

Sumar o contar celdas evitando valores de error Los valores de error son advertencias muy uacutetiles pero a veces desearaacute hacer los caacutelculos sin tener en cuenta esos errores Para poder hacer esto tendremos que utilizar funciones que sean tolerantes a dichos errores

Teniendo un rango de celdas que contienen uno o maacutes valores de error la mayoriacutea de las foacutermulas que hagan referencia a ese rango tambieacuten devolveraacuten un valor de error Podemos evitar esta frustracioacuten si utilizamos la funcioacuten BDSUMA

Supongamos que tiene una larga lista de nuacutemeros de los que desea obtener la suma total Sin embargo una de las celdas por cualquier razoacuten estaacute devolvienshydo un valor de error NA

Rellene algunos datos de la misma forma que aparecen en la figura 68

Para generar el error NA introduzca la foacutermula =NA () en las celdas A2 y B2 La celda Al 2 utilizar la funcioacuten estaacutendar SUMA que suma los valores de las celdas A2A11 y dado que la celda A2 contiene el error NA la funcioacuten SUMA tambieacuten devolveraacuten dicho error Al rango DI D2 se le ha dado el nombre Criterio y se utiliza como uacuteltimo argumento para la funcioacuten BDSUMA que se encuentra en la celda B12

La sintaxis para la funcioacuten BDSUMA (y para todas las funciones de base de datos) es la siguiente

=BDSUMA(base de datoscampocriterio)

204 Excel Los mejores trucos

1 2 3 4 5 6 7 8 9 10 11 12

A Nuacutemeros

NA

B Nuacutemeros2

1 2 3 4 5 6 7 8 9

NA 1 2 3 4 5 6 7 8 9

C

Figura 68 Datos rellenados de forma que generan un error NA

El argumento base de datos identifica al rango de celdas que componen la lista o la base de datos Dentro del rango de base de datos las filas con informashycioacuten son tratadas como registros mientras que las columnas son tratadas como campos

La primera fila contiene etiquetas para todas las columnas que sirven a modo de encabezados

El argumento campo indica queacute columna es utilizada en la funcioacuten La coshylumna puede ser identificada por el nombre utilizando las etiquetas que se enshycuentran en la parte superior de la columna o bien puede ser identificada por su posicioacuten La primera columna es la 1 la cuarta es la 4 etc

El argumento criterio identifica un rango de celdas que contienen condicioshynes El rango que se utiliza para el criterio debe incluir al menos una etiqueta de columna ademaacutes de al menos una celda por debajo de ella que especifique una condicioacuten para la columna

Si los datos que desea sumar contienen diferentes tipos de errores deberaacute conshysiderar utilizar la funcioacuten BDSUMA junto con un amplio rango de criterios que se acomoden a todos los posibles errores Sin embargo lo mejor siempre es enshyfrentarse a los errores en su origen y eliminarlos siempre que sea posible en vez de evitarlos

Si de todas formas desea evitar esos errores utilizaremos la funcioacuten BDSUMA pero esta vez necesitaremos configurar un criterio que se extienda por cuatro columnas expandiendo el rango con nombre que contiene el criterio para que incluya las celdas D1G2

Para ello utilizaremos la opcioacuten lnsertargtNombregtDefinir tal y como se muesshytra en la figura 69

Excel dispone de un rico conjunto de funciones de base de datos y puede ut ishylizar cualquiera de ellas de la misma forma Por tanto considere utilizar este meacutetodo pa ra las funciones BDCONTAR BDCONTARA BDMAX BDMIN BDPRODUCTO etc

6 Trucos sobre foacutermulas y funciones 205

m Microsoft Excel - LibroZ

bullM]iexcl Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana - ff X

Times New Romaacuten 1 0 - N K S s = s ^| fsect 000 euro oo o i^ W O

B12 ^ pound ^SUMA(SI(RE5IDUQ(F1LA($A$1$A$500)2)=0iexclA$ 1A$5000))

Nuacutemerosl Nuacutemeros2

NA r NA

1

2

3

4

5

6

7

8

9

-

9 10 11

iexcl 121 NA ^ 13 14 15 16 17 18 19 20 t i

lt lt bull bull l H o j a l H o j a 2 H o j a 3 _

Esta celda ha usado | la Funcioacuten estaacutendar SUMA lo que produce un error porque A2 no tiene valor

D

Nuacutemeros2 X A estas celdas se las ha llamado Criterio

Esta celda contiene una foacutermula BDSUMA que usa el rango Criterio para ignorar cualquier error de tipo NA

bull i r

Figura 69 La funcioacuten BDSUMA utilizada para ignorar diferentes errores

Reducir el impacto de las funciones volaacutetiles a la hora de recalcular Las funciones volaacutetiles que deben ser recalculadas cada vez que el usuario realiza una accioacuten en Excel pueden consumir una gran cantidad de tiempo Aunque estas funciones son muy uacutetiles para descartarlas por completo existen algunos meacutetodos para reducir los tiempos de espera que generan

Una funcioacuten volaacutetil es simplemente una funcioacuten que debe recalcularse cada vez que se realiza una accioacuten en Excel como puede ser introducir datos cambiar el ancho de las columnas etc (una de las pocas acciones que no provocaraacuten un recaacutelculo de las funciones volaacutetiles es la de cambiar el formato de las celdas a menos que lo haga a traveacutes de la opcioacuten Pegado especialgtFormatos)

Probablemente dos de las funciones volaacutetiles maacutes conocidas son HOY y AHORA Dado que la primera devuelve la fecha actual y la segunda la fecha y la hora actual es importante que ambas tengan que recalcularse a menudo Si tiene una hoja de caacutelculo que contienen muchas funciones volaacutetiles probablemente estaraacute obligando a Excel a realizar muchos caacutelculos innecesarios de forma continua Este problema puede ser peor cuando tiene funciones volaacutetiles que estaacuten anida-

206 Excel Los mejores trucos

das dentro de funciones no volaacutetiles ya que en esos casos la foacutermula entera se convertiraacute en volaacutetil

Para entender lo que estamos hablando supongamos que tiene una hoja de caacutelculo que estaacute utilizando la funcioacuten HOY dentro de una tabla compuesta por 20 columnas y 500 filas Esto significa que tiene 10000 funciones volaacutetiles en el libro cuando en realidad una sola podriacutea realizar el mismo trabajo En vez de anidar 10000 funciones HOY dentro de cada una de las celdas de la tabla en muchos casos podraacute introducir simplemente la funcioacuten HOY en una celda que esteacute aparte darla el nombre FechaHoy (o bien utilizar el identificador de la celshyda) y luego hacer referencia a FechaHoy en todas las funciones de la tabla

(i Una forma raacutepida y sencilla para hacer esto es seleccionar toda la N tabla y luego ir a EdicioacutengtReemplazar para reemplazar el texto HOYO

x por FechaHoy en todas las foacutermulas

Ahora ya tenemos una sola funcioacuten HOY en vez de las 10000 que tendriacutea de la otra forma Para poner otro ejemplo digamos que las 500 primeras filas de la columna B estaacuten rellenadas con foacutermulas relativas como =H0Y () -Al y las prishymeras 500 filas de la columna A tienen diferentes fechas que son menores que la fecha de hoy Estamos obligando a Excel a recalcular la funcioacuten volaacutetil HOY 499 veces maacutes de lo necesario cada vez que realiza cualquier accioacuten en Excel Si coloshyca la funcioacuten HOY en cualquier celda a la que le da el nombre FechaHoy (o cualquier otro nombre similar) puede utilizar la foacutermula = FechaHoy-Al en vez de lo anterior Con esto Excel soacutelo necesitaraacute recalcular una vez la aparicioacuten de la funcioacuten HOY lo cual mejoraraacute considerablemente el rendimiento de la aplicacioacuten

^^^Q Contar solamente una aparicioacuten de cada entrada sect K j 5 J de una lista

M B Cuando tiene una larga lista de elementos puede que desea realizar la cuenta de los elementos pero sin tener incluir aquellas entradas que aparezcan en varias ocasiones Con este truco podraacute contar cada entrada uacutenica solamente una vez

Observe la lista que aparece en la siguiente figura que ha sido ordenada de forma que pueda ver las entradas repetidas faacutecilmente Un conteo normal de esta lista (utilizando la funcioacuten CONTARA) resultariacutea en que los nombres Marta Dashyvid Laida y Ana fueran contados maacutes de una vez La funcioacuten BDCONTARA ofreshyce una alternativa que resulta m u y eficiente y faacutecil de modificar La sintaxis de esta funciones la siguiente

=BDCONTARA(base de datoscampocriterio)

6 Trucos sobre foacutermulas y funciones 207

A 1 Nombres 2 David 3 Al ex 4 Ana 5 Marta 6 Ana 7 Santos 8 Laida 9 Mar 10 Luis 11 David 12 Laida 13 Aacutengel 14 Marta 15 Carolina 16 Marta 17 18

B

Figura 610 Rango con nombres ordenados

^v Los argumentos para esta funcioacuten son los mismos que para la funcioacuten w^ BDSUMA que ya vimos anteriormente

A partir de la lista anterior introduzca en la celda DI la palabra Criterio (o cualquier encabezado que no sea igual que el de una columna un campo) Debajo de eacuteste en la celda D2 introduzca la siguiente foacutermula

=CONTARSI($A$2A2A2)=1

Observe la combinacioacuten de referencias relativas (A2) y absolutas ($A$2) Esto resulta vital para que el criterio pueda funcionar

Ahora en la celda de la que desea mostrar el resultado introduzca la siguienshyte funcioacuten

=BDCONTARA($A$1$A$10 01$D$1$D$2)

Utilizaraacute el criterio para excluir los duplicados y proporcionar el resultado que necesitamos que en este caso es 10 ya que solamente hay ese nuacutemero de nombres uacutenicos

Sumar cada dos tres o cuatro filas o celdas Es probable que desee sumar cada segunda tercera cuarta etc celda de una hoja de caacutelculo Ahora es posible si utiliza el siguiente truco

Excel no dispone de una funcioacuten estaacutendar que sume cada cierto nuacutemero de celdas o filas Sin embargo podemos llevar a cabo esta tarea de diferentes for-

208 Excel Los mejores trucos

mas Todas ellas utilizan la funcioacuten FILA y la funcioacuten RESIDUO La primera la funcioacuten FILA devuelve el nuacutemero de fila de la referencia a una uacutenica celda Lo vemos

FILA(referencia)

La funcioacuten RESIDUO devuelve el resto de dividir un nuacutemero por otro

RESIDUO(nuacutemerodivisor)

Se anida la funcioacuten FILA dentro de la funcioacuten RESIDUO (en el lugar del argushymento nuacutemero) se divide por 2 (para sumar cada dos celdas) y se comprueba que el resultado es 0 (cero) Si lo es entonces la celda es sumada

Puede utilizar estas funciones de diferentes formas (consiguiendo mejores reshysultados utilizando unas en vez de otras) Por ejemplo una foacutermula matricial que sume cada dos celdas en el rango $A$1$A$100 tendriacutea esta forma

=SUMA(SI(RESIDUO(FILA($A$1$A$500)2)=0$A$1$A$5000))

Dado que esto es una foacutermula matricial debe introducirla usando Control-Mayuacutes-Intro Al hacer esto Excel introduciraacute unas llaves quedando la foacutermula de esta forma

=SUMA(SI(RESIDUO(FILA($A$1$A$50 0)2)=0$A$1$A$5000))

Debe permitir que Excel introduzca estas llaves ya que si lo hace por su cuenta haraacute que la foacutermula falle

Aunque este meacutetodo funciona no resulta un disentildeo de hoja de caacutelculo ideal ya que estamos utilizando sin necesidad una foacutermula matricial Para complicar maacutes las cosas estamos utilizando la funcioacuten volaacutetil FILA anidada dentro de ella haciendo que toda la foacutermula matricial sea volaacutetil Esto significa que la foacutermula tiene que ser recalcular constantemente mientras estaacute trabajando en el libro Por ello no resulta el mejor camino a seguir

A continuacioacuten mostramos otra foacutermula que podriacutea utilizar siendo eacutesta una mejor eleccioacuten

=SUMAPRODUCTO((RESIDUO(FILA($A$1$A$500)2)=0)($A$1$A$500))

Deberiacutea tener en cuenta de todas formas que esta foacutermula devolveraacute iexclVAshyLOR si alguna de las celdas del rango contiene texto en vez de nuacutemeros Esta foacutermula aunque no es una verdadera foacutermula matricial tambieacuten ralentizaraacute Excel si se utilizan muchas instancias de ella o si esas instancias hacen referencia a grandes rangos

S

6 Trucos sobre foacutermulas y funciones 209

Por suerte existe un meacutetodo mucho mejor que no soacutelo es maacutes eficiente sino que ademaacutes es maacutes flexible Este meacutetodo requiere del uso de la funcioacuten BDSUMA Para este ejemplo utilizamos el rango A1A500 como el rango que usaremos para sumar cada cierto nuacutemero de celdas

Introduzca el texto Criterio en la celda El y en la celda E2 introduzca la siguiente foacutermula

= R E S I D U O ( F I L A ( A 2 ) - $ C $ 2 - 1 $ C $ 2 ) = 0

Seleccione la celda C2 y luego vaya a DatosgtValidacioacuten Seleccione la opcioacuten Lista en el cuadro de lista desplegable y en el cuadro de texto Origen escriba 12345678910 Aseguacuterese de que estaacute activada la casilla de verificacioacuten Celda con lista desplegable y entonces haga clic en Aceptar En la celda Cl introduzca SUMAR cada y en cualquier otra celda a partir de la fila 1 introduzca esta forma

= B D S U M A ( $ A $ A 1 $ E $ 1 $ E $ 2 )

En la celda inmediatamente superior a la que introdujo la funcioacuten BDSUMA introduzca esto

=Sumando cada amp $C$2 amp celdas

Ahora todo lo que tiene que hacer es elegir el nuacutemero deseado en la celda C2 y la funcioacuten BDSUMA haraacute el resto

Como puede ver en la figura 611 puede utilizar una funcioacuten BDSUMA para sumar cada celda con el intervalo que haya especificado Esta funcioacuten es mucho maacutes eficiente que una foacutermula matricial o que la funcioacuten SUMAPRODUCTO Aunque su configuracioacuten puede ser algo maacutes compleja merece la pena el esfuershyzo para obtener los resultados

Encontrar la eneacutesima aparicioacuten de un valor Las funciones de buacutesqueda incorporadas en Excel pueden hacer un trabajo estupendo pero desgraciadamente Excel no dispone de una uacutenica funcioacuten que devuelva la eneacutesima aparicioacuten de un dato especificado Por suerte existen algunos meacutetodos para que Excel pueda hacer esto

Puede utilizar las funciones de buacutesqueda y de referencia de Excel sobre una tabla de datos para extraer los detalles correspondientes a un valor especiacutefico Quizaacute la maacutes popular de todas esas funciones sea BUSCARV Aunque es estupenda para encontrar un valor especiacutefico en la columna maacutes a la izquierda de una tashybla no puede utilizarla para encontrar la eneacutesima aparicioacuten de dicho valor en la columna maacutes a la izquierda

m

210 Excel Los mejores trucos

1 2 3 4 5 6 7 3 9

A Nuacutemeros

500 euro 750 euro

2345 euro 1000 euro 996 euro 600 euro

B C |

I

I Sumando cada 3 celdas 3546 euro

D E Criterio

FALSO ^-

Esta celda no puede tener el mismo encabezado que la de nuacutemeros

Figura 611 Posible resultado final con formato

Sin embargo podemos utilizar un meacutetodo m u y simple para encontrar cualshyquier aparicioacuten de un valor especiacutefico utilizando la funcioacuten BUSCARV o una de las otras funciones de buacutesqueda

Para este ejemplo supondremos que tiene una tabla con dos columnas de datos siendo la columna A la que contiene los nombres y la columna B las edashydes correspondientes a cada uno de ellos tal y como se muestra en la figura 612

1 A 1 Nombre

2 Antonio 3 Alex 4 Ana 5 Marta 6 Juan 7 Santos 8 Laida 9 Mar 10 Luis 11 David 12 Laida 13 Aacutengel 14 Sol 15 Carolina 16 Concha 17 Aitana 18 Rodrigo 19 Agustiacuten 20

B Edad

32 30 23 36 25 30 31 30 28 23 33 45 28 29 30 38 29 19

C

Figura 612 Datos configurados para ser usados por la funcioacuten BUSCARV

Puede utilizar la funcioacuten BUSCARV para extraer la edad de una persona bashysaacutendose en su nombre Por desgracia algunos nombres puede que aparezca maacutes de una vez Lo que deseamos es poder buscar el nombre de David y hacer que la funcioacuten BUSCARV no soacutelo encuentra la primera aparicioacuten sino tambieacuten todas las demaacutes que pudiera haber A continuacioacuten veremos coacutemo podemos hacer esto (recuerde que en este ejemplo los datos estaacuten en las columnas A y B)

Primeramente seleccione la columna A por completo haciendo clic en la letra A que aparece en su encabezado y luego seleccione la opcioacuten lnsertargtColumnas para insertar una nueva columna en blanco (que se convertiraacute en la nueva co-

6 Trucos sobre foacutermulas y funciones 211

lumna A) Luego haga clic en la celda A2 (no saltamos Al porque Bl es un encashybezado) e introduzca la siguiente foacutermula

=B2ampC0NTARSI($B$2B2B2)

Propague esta foacutermula hacia abajo tantas filas como datos tenga en la columshyna B (para ello haga clic en la celda A2 y luego haga doble clic sobre el pequentildeo recuadro negro de la esquina inferior derecha) Acabaraacute teniendo en la columna A nombres tales como Davidl David2 David3 etc como puede verse en la fishygura 613 Observe la referencia absoluta para $B$2 en la funcioacuten CONTARSI y el uso de una referencia relativa para todas las referencias Esto es fundamental para que la funcioacuten haga su trabajo correctamente

A 1

bull 2 Arito ni oiacute iexcl 3 Alex | 4 Davidl 1 5 Marta [ 6 David2 I 7 Santosl

8 Laida 9 Mariacuteal 10 Luisl 11 David3 12 Carlos 13 Angeliacute 14 Alex2 15 Carolina 16 Angel2 17 Aitanal 18 Marta2 19 Agustiacutenl

[ 20

B Nombre Antonio Alex David Marta David Santos Laida Mar-Luis David Laida Aacutengel Alex Carolina Aacutengel Altana Marta Agustiacuten

C Edad

32 30 23 36 25 30 31 30 28 23 33 45 28 29 30 38 29 19

D

Figura 613 Datos obtenidos con la foacutermula BUSCARV recieacuten antildeadida a la columna A

Si no se ha dado cuenta todaviacutea observe que puede utilizar la columna A para encontrar las ocurrencias de un cierto nombre

Haga clic en la celda D2 e introduzca la siguiente foacutermula

= BUSCARV(David3$A$1$ C$10 03FALSE)

La foacutermula le devolveraacute la edad de la tercera aparicioacuten del nombre David tal y como puede verse en la figura 614

Por supuesto puede ocultar la columna A ya que no es necesario verla Tambieacuten puede utilizar los nombres de la columna A como rango de origen

para una lista situada en otra celda seleccionando la opcioacuten DatosgtValidacioacuten y luego eligiendo la opcioacuten Lista Luego haga una referencia a la celda que contenshyga esta lista en la funcioacuten BUSCARV

212 Excel Los mejores trucos

i pound

M 2 Antoniol

1 3 Alex 4 David1

| 5 Marta I 6 David2

7 Santosl I 8 Laida 9 Mariacutea 1

l O L u i s I i 11 J0avid3 12 IacuteCarlos 13 Angefl Iacute4_Alex2

15 _ Cardinal 16 Angel2 17 Aitanal 18 Marta2 19 Aqustiacutenl 20

B C Nombre Edad Antonio Alex David Marta David Santos Laida Mar Luis-David Laida Aacutengel Alex Carolina Aacutengel Aitana Marta Agustiacuten

32 30 23 36 25

30 31 30 28 23 33 45 28 29 30 38 29 19

D

23

E

Figura 614 Datos obtenidos con la segunda foacutermula BUSCARV antildeadida a la columna D

TRUCO Hacer que la funcioacuten subtotal de Excel sea dinaacutemica Aunque la funcioacuten SUBTOTALES es una de las funciones de Excel maacutes recomendables a veces desearaacute poder elegir queacute operacioacuten realiza o aplica a aquellos datos que pueden expandirse y contraerse

La funcioacuten SUBTOTALES de Excel se utiliza para realizar una funcioacuten especiacuteshyfica sobre un rango de celdas que tienen configurado un Autofiltro En estos casos la funcioacuten SUBTOTALES soacutelo utilizaraacute las celdas visibles (las celdas ocultas son ignoradas) La operacioacuten que realiza esta funcioacuten depende solamente del nuacuteshymero (entre 1 y 11) que proporcione como primer argumento (nuacutem_funcioacuten) Por ejemplo

= SUBTOTALES(1AlAl0 0)

Calcula el promedio de todas las celdas visibles en el rango Al A100 despueacutes de que se haya aplicado un Autofiltro Si todas las filas son visibles esta funcioacuten simplemente obtendraacute el promedio de todas ellas al igual que lo hariacutea la funcioacuten

=PROMEDIO(Al A100)

El nuacutemero que ha de proporcionarse como primer argumento de la funcioacuten SUBTOTALES es nuacutem_funcioacuten y que se corresponde con las funciones que se muestran en la siguiente tabla

6 Trucos sobre foacutermulas y funciones 213

Tabla 61 Nuacutemeros de funcioacuten para SUBTOTALES y su correspondiente funcioacuten

Nuacutenijimcioacuten

1

2

3

4

5

6

7

8

9

10

11

Funcioacuten

PROMEDIO

CONTAR

CONTARA

MAX

MIN

PRODUCTO

DESVEST

DESVESTP

SUMA

VAR

VARP

Dado que tiene que utilizar un nuacutemero entre 1 y 11 puede tener una funcioacuten SUBTOTALES que realice cualquier funcioacuten que elija Incluso puede elegir a parshytir de una lista desplegable que se encuentre en cualquier celda Veamos coacutemo podemos hacer esto

Introduzca todos los nombres de funcioacuten en el mismo orden en el que apareshycen en la tabla 61 en un rango de celdas Para este ejemplo utilizaremos el rango D l i D l l Teniendo seleccionado dicho rango haga clic en el Cuadro de nombres situado en la parte superior izquierda de la ventana (a la izquierda de la barra de foacutermulas) y escriba el nombre Subs Luego pulse In t ro

Seleccione la columna D completamente y luego seleccione la opcioacuten For-matogtColumnagtOcultar Ahora seleccione la opcioacuten VergtBarras de herramientasgt Formularios haga clic sobre el icono Cuadro combinado y haga clic en la celda C2 Cambie el tamantildeo del cuadro de lista desplegable utilizando los pequentildeos cuadros negros que aparecen alrededor del control de forma que quepa el nomshybre maacutes largo de funcioacuten (en nuestro caso PRODUCTO)

Para hacer que el cuadro de lista desplegable se ajuste automaacuteticamente ^ al tamantildeo de la columna y la fila en la que reside mantenga pulsada

^ la tecla Alt mientras cambia el tamantildeo del control

214 Excel Los mejores trucos

Haga clic con el botoacuten derecho en el cuadro de lista desplegable y elija la opshycioacuten Formato de control y luego vaya a la pestantildea Control En el rango de entrashyda escriba Subs y en la celda vinculada escriba $C$2 Cambie tambieacuten el nuacutemero de liacuteneas a mostrar en la lista desplegable a 11 Cierre el cuadro de diaacutelogo y en la celda C3 escriba la siguiente foacutermula

=SI($C$2=Resultado de amp IacuteNDICE(Subs$C$2))

En la celda C4 introduzca la siguiente foacutermula

=SI($C$2=raquoraquoSUBTOTALES($C$2$A$4$A$10 0))

donde $A$4$A$100 es el rango sobre el que debe actuar la funcioacuten SUBTOshyTALES

Ahora todo lo que necesita hacer es seleccionar la funcioacuten SUBTOTALES en el cuadro de lista desplegable con lo que se mostraraacute el resultado correspondiente tal y como se muestra en la figura 615

1

2 3 4 7 9 10 11

A

Valoi 55421 euro 50032 euro

]

j d

B c i Elija una funcioacuten SUBTOTALES

[PROMEDIO bull |

iexclResultado de PROMEDIO I 52727 euro

E

Figura 615 Una funcioacuten SUBTOTALES ajustable

TRUCO Antildeadir extensiones de fecha Los formatos de fechas de Excel consisten en diferentes formas que pueden ser utilizadas para mostrar una fecha Sin embargo un formato que siempre se ha echado de menos en Excel (por los angloparlantes) es aquel capaz de mostrar una fecha al estilo 15th October 2003 Podemos conseguir que Excel haga esto en caso de que lo necesitemos

Este truco estaacute orientado a aquellas personas que utilicen la versioacuten Sy en ingleacutes de Excel que tengan establecida la configuracioacuten regional de

w su sistema operativo en ese mismo idioma y deseen utilizar este formato de fechas cuando creen hojas de caacutelculo que esteacuten orientadas al puacuteblico angloparlante

La posibilidad de mostrar el sufijo th despueacutes del nuacutemero 15 por ejemplo es algo que Excel no contempla en sus formatos de fecha Peor auacuten no es posible

6 Trucos sobre foacutermulas y funciones 215

configurar un formato personalizado para mostrar las fechas de esta manera Aunque muchas personas simplemente aceptan que esto no es posible mostrashyremos un meacutetodo para poder llevarlo a cabo

En una hoja en blanco comenzando por la celda A l introduzca los siguientes datos en las siguientes celdas A l = s t A2=nd A3=rd A4A20=th A21=st A22=nd A23=rd A24A30=th A31=st

Asigne el nombre Extensiones a este rango luego vaya a lnsertgtNamegtDefine y en el cuadro de texto Ntildeames in Workbook escriba HoyPersonalizado

En el cuadro de texto Refers To introduzca la siguiente foacutermula

=TEXT(TODAY()dddd dn) amp INDEX(ExtensionesDAY(TODAY())1) amp TEXT(TODAY() mmmm yyyy)

Luego haga clic en Add y en OK Ahora en cualquier celda introduzca = H o y P e r s o n a l i z a d o y la fecha actual

se mostraraacute con el formato ThursDay l oacute t h October 2003 Si prefiere utilizar celdas en la hoja para almacenar las extensiones de fecha

(es decir th st rd y nd) puede utilizar la funcioacuten CHOOSE para almacenarlas Para ello vaya a lnsertgtNamegtDefine y en el cuadro de texto Ntildeames in Workbook introduzca la palabra Dia En el cuadro de texto Refers to introduzca la sishyguiente foacutermula

=DAY(TODAY( ))

Haga clic en Add Vuelva al cuadro de texto Ntildeames in Workbook e introduzca el texto HoyPersonalizado

En el cuadro de texto Refers to introduzca la siguiente foacutermula y luego haga clic en el botoacuten Add

=TEXT(TODAY()dddd d)ampIF(Day=31stIF(Day=3 0th CHOOSE(Diastndrdthth thththththththththththththth th st nd rd th thth th thth) ) )amp TEXT(TODAY( ) mmmm yyyy)

Despueacutes de hacer clic en OK puede introducir la foacutermula =HoyPersonal izado en cualquier celda en la que desee mostrar este formato de fecha

La fecha devuelta por cualquiera de estas funciones no seraacute una fecha numeacuterica verdadera tal y como suele hacer Excel sino que simplemente seraacute una entrada de tipo texto Esto significa que no podraacute hacer referencia a esta celda en una foacutermula que esteacute esperando un dato numeacuterico

216 Excel Los mejores trucos

TRUCO Convertir nuacutemeros con signo negativo a la derecha a nuacutemeros de Excel iquestHa tenido que trabajar alguna vez con nuacutemeros negativos importados que tienen el signo negativo a la derecha SAP es uno de esos programas que hacen este tipo de cosas con los nuacutemeros (200-en vez de -200) Tener que cambiar esto a mano de forma que Excel pueda entenderlos es tedioso pero no tiene por queacute ser necesariamente asiacute

Supongamos que tiene una larga lista de nuacutemeros que acaba de importar y que algunos de ellos estaacuten en el formato que acabamos de describir Nuestro trabajo consistiraacute en convertir esos nuacutemeros en valores negativos que Excel pueshyda reconocer Para los propoacutesitos de este ejercicio utilizaremos el rango Al A100 Coloquacuteese en la celda B l e introduzca la siguiente foacutermula

=SUSTITUIR(SI(DERECHA(ESPACIOS(Al))= AlAl)-raquoraquo2)+0

-DERECHA(ESPACIOS(Al)) amp

Introduzca esta foacutermula en tantas celdas de la columna como sea necesario y luego coacutepiela Seleccione la celda Al y vaya a EdicioacutengtPegado especial y selecshycione la opcioacuten Valores para eliminar las foacutermulas y dejar solamente los valores En la figura 616 puede ver un ejemplo de la situacioacuten antes y despueacutes de llevar a cabo esta tarea (A1A7 representa el antes)

1 200-

2 3 35Eiexcl-4 5 6 301-7 8 9

A

150

200 526

258

B -200

150 -356 200 526 -301 258

C

Figura 616 Antes y despueacutes de mover el signo negativo

Para darnos una idea de coacutemo funciona la foacutermula introduzca la siguiente foacutermula en cualquier celda siempre que la celda Al contenga el valor 200-

= D E R E C H A ( E S P A C I O S ( A l ) 1 ) amp A 1

Acabaraacute teniendo -200-

La funcioacuten ESPACIOS simplemente se asegura de que no haya espacios por delante y por detraacutes del texto de una celda Dado que nuestro valor terminar con un - necesitamos quitar esa segunda aparicioacuten Aquiacute es donde entra enjuego la funcioacuten SUSTITUIR Le diremos que sustituya la segunda aparicioacuten de - por (texto vaciacuteo) El resultado de esta operacioacuten seraacute de tipo texto (ya que la funcioacuten

6 Trucos sobre foacutermulas y funciones 217

SUSTITUIR devuelve un valor de tipo texto) por lo que simplemente antildeadiremos + 0 con lo que Excel lo convertiraacute en un nuacutemero

Si va a tener que utilizar este meacutetodo con frecuencia deberiacutea considerar utilishyzar una macro que haga el trabajo por usted A continuacioacuten le presentamos dicha macro

Sub ConvertirNegativos( ) Dim rCell As Range Dim rRange As Range Dim ICount As Long Dim lLoop As Long

1 Nos aseguramos de tener seleccionados los datos y en caso contrario_ se muestra un mensaje y la macro termina If SelectionCellsCount = 1 Then MsgBox Debe seleccionar el rango a convertir vblnformation Exit Sub

End If

Establece una variable soacutelo para las celdas de tipo texto por ejemplo

200-On Error Resume Next Set rRange = SelectionSpecialCells(xlCellTypeConstants xlTextValues)

Si esta variable devuelve Nothing es que no hay nuacutemeros negativos incorrectos con lo que se muestra un mensaje y termina la macro If rRange Is Nothing Then

MsgBox No se encontraron nuacutemeros negativos incorrectos vblnformation

On Error GoTo 0 Exit Sub

End If

Cuenta el nuacutemero de celdas del tipo 200- y pasa el resultado a una variable que controlaraacute el nuacutemero de ciclos necesarios para el bucle ICount = WorksheetFunctionCountlf(Selection -) Establece una variable a la primera celda de la seleccioacuten Set rCell = SelectionCells(1 1)

Bucle que se repite tantas veces como nuacutemeros negativos incorrectos haya

For lLoop = 1 To ICount

En cada ciclo se establece una variable a la celda que contiene -

El asterisco es un siacutembolo comodiacuten Set rCell = rRangeFind(What=- After=rCell _

Lookln=xlValues LookAt=xlPart _ SearchOrder=xlByRows SearchDirection= _ xlNext MatchCase=False)

Utilizamos la funcioacuten estaacutendar Reemplazar para reemplazar el

218 Excel Los mejores trucos

signo negativo por el texto vacio es decir eliminamos dicho signo rCellReplace What=- Replacement= Multiplicamos la celda por -1 para convertirla a un nuacutemero

negativo rCell = rCell -1

Next lLoop

On Error GoTo 0 End Sub

Para escribir esta macro vaya a HerramientasgtMacrogtEditor de Visual Basic (Al t Opcioacuten-Fl l ) Ahora seleccione lnsertargtMoacutedulo y copie el coacutedigo anterior Cierre la ventana para volver a Excel y vaya a HerramiexclentasgtMacrogtMacros y seleccione la macro que acabamos de crear Haga clic en Opciones para asignar una tecla de acceso raacutepido A partir de ahora si necesita convertir esos nuacutemeros negativos importados a verdaderos nuacutemeros negativos que Excel pueda reconoshycer simplemente seleccione el rango de nuacutemeros y utilice la tecla de acceso raacutepishydo que asignoacute

Mostrar valores de hora negativos A veces desearaacute mostrar valores de hora negativos pero Excel soacutelo mostraraacute Existen numerosos meacutetodos para solucionar este problema

Si introduce la hora 120000 (mediodiacutea) en una celda y luego le asigna el formato General observaraacute que tiene un valor numeacuterico de 05 De forma simishylar introduzca la hora 240000 en cualquier celda observe la barra de foacutermulas y veraacute coacutemo Excel muestra 111900 240000

Excel trata las fechas y las horas simplemente como nuacutemeros En el caso de las fechas Excel de forma predeterminada considera que el 1 de enero de 1900 se corresponde con el valor numeacuterico 1 el dos de enero de 1900 se corresponde con el valor numeacuterico 2 y asiacute sucesivamente Las horas son consideradas como nuacutemeros decimales a excepcioacuten del mediodiacutea que tiene un valor numeacuterico de 1 Debido a esto Excel tiene un verdadero problema a la hora de t ratar horas negashytivas

A continuacioacuten mostramos tres meacutetodos para conseguir que Excel muestre valores de hora negativos

Meacutetodo 1 Cambiar el sistema de fecha predeterminado de Excel

Un meacutetodo raacutepido y sencillo para mostrar valores negativos es seleccionar HerramientasgtOpciones ir a la pestantildea Calcular y activar la casilla de verifica-

6 Trucos sobre foacutermulas y funciones 219

cioacuten Sistema de fechas 1904 (a este sistema tambieacuten se llama Fechas y horas de Macintosh)

Tenga en cuenta que al hacer esto conseguiraacute que Excel modifique las fechas de inicio (desde el 1 de enero de 1900 al 2 de enero de 1904) a partir de las cuales son calculadas todas las celdas Esta opcioacuten soacutelo afectaraacute al libro de Excel con el que esteacute trabajando

Ahora ya podraacute restar horas entre siacute y tener resultados que aparezcan como valores negativos

Pruebe esto vaya a HerramientasgtOpcionesgtCalcular y active la casilla de veshyrificacioacuten Sistema de fechas 1904 Introduzca 50000 en la celda A2 60000 en la celda A3 y en la celda A4 escriba =A2-A3 Obtendraacute un resultado de -100 pero solamente si ha activado la opcioacuten mencionada anteriormente

Si el hecho de cambiar el sistema de fechas puede causar problemas en el libro a efectos de otros caacutelculos con horas necesitar utilizar otro meacutetodo que permita cambiar la apariencia de la celda que contenga un valor negativo

Meacutetodo 2 Utilizar la funcioacuten TEXTO

El segundo meacutetodo requiere del uso de la funcioacuten TEXTO Para empezar inshytroduzca 50000 en la celda A2 60000 en la celda A3 y en la celda A4 escriba lo siguiente

= T E X T O ( M A X ( $ A $ 2 $ A $ 3 ) - M I N ( $ A $ 2 $ A $ 3 ) - H M M )

Con esta foacutermula anidada estaacute restando las celdas A2 y A3 para conseguir un valor de hora positivo Luego estaacute aplicando un formato a la celda mediante la funcioacuten TEXTO de forma que muestre una hora negativa Mediante el uso de la combinacioacuten de funciones MAX y MIN sea seguro de que siempre resta la hora mayor menos la hora menor

gt Debe saber que el resultado devuelto es de tipo texto no numeacuterico gt Esto es importante en caso de que necesitase un valor numeacuterico para

^ otra foacutermula

Meacutetodo 3 Utilizar un formato personalizado

Uacuteltimo meacutetodo para mostrar horas negativas sin tener cambiar al sistema de fechas de 1904 pero que devuelva valores numeacutericos reales es ir a FormatogtCeldas

220 Excel Los mejores trucos

seleccionar la categoriacutea Personalizado y utilizar un formato personalizado -hmm Este meacutetodo funciona solamente en caso de que siempre desee mostrar los valoshyres de hora negativos Tambieacuten requiere que siempre reste la hora que sea infeshyrior de la hora que sea superior lo que significa que todas las veces la hora seraacute realmente positiva pero se mostraraacute como negativa

Por tanto utilizando cualquiera de estos tres meacutetodos seraacute capaz de mostrar horas en negativo Simplemente recuerde que cada meacutetodo tiene sus inconveshynientes por lo que utiliacutecelos teniendo estos inconvenientes en mente

^ g g Utilizar la funcioacuten BUSCARV a lo largo de muacuteltiples WJm tabas

bull bull ^ B Aunque de por siacute la funcioacuten BUSCARV es muy uacutetil estaacute restringida a la buacutesqueda de valores en una tabla especiacutefica para devolver un resultado lo que a veces no seraacute suficiente Podemos superar esta limitacioacuten si utilizamos la funcioacuten INDIRECTO

A veces desearaacute utilizar una uacutenica foacutermula BUSCARV que busque en diferenshytes tablas con datos que esteacuten en una hoja de caacutelculo Una de las formas para poder hacer esto es anidar muchas funciones BUSCARV juntas indicaacutendoles que busquen en una tabla especiacutefica dependiendo de un nuacutemero que introduzca en otra celda Por ejemplo

=SI(Al=lBUSCARV(BlTablal2FALSO)IF(Al=2BUSCARV(BlTabla22 FALSO)))

En esta foacutermula estamos dicieacutendole a la funcioacuten BUSCARV que busque en el rango con nombre Tabla 1 en caso de que la celda Al contenga el nuacutemero 1 (SI(Al = lBUSCARV(BlTablal2FALSO)) y que busque en un rango llamado Tabla2 en caso de que la celda Al contenga el nuacutemero 2 (IF(A1= 2 BUSCARV (BlTabla22FALSO)MM))

Como puede imaginarse la foacutermula seriacutea mucho maacutes larga y enrevesada si tiene que utilizar maacutes de dos funciones SI anidadas La siguiente foacutermula por ejemplo utiliza solamente cinco funciones anidadas pero ya es complicadiacutesima

=SI(Al=lBUSCARV(BlTablal2FALSO)SI(Al=2BUSCARV(BlTabla22 FALSO)SI(Al=3BUSCARV(BlTabla33FALSO)SI(Al=4BUSCARV(BlTabla4 2FALSO)SI (Al=5BUSCARV(BlTable52FALSO))))))

Aunque esta foacutermula devuelve los resultados deseados podemos conseguir que la foacutermula sea mucho maacutes corta antildeadir maacutes de cinco condiciones y acabar teniendo una foacutermula que sea m u y sencilla de manejar Supongamos que tiene 12 tablas diferentes configuradas en una hoja de caacutelculo cada una de las cuales

6 Trucos sobre foacutermulas y funciones 221

representa un mes diferente del antildeo Cada tabla consta de dos columnas y conshytiene los nombres de cinco empleados y cinco cantidades correspondientes A cada tabla se le ha dado un nombre en funcioacuten del mes que representa (por ejemplo la tabla con los datos de enero se llama Enero etc) tal y como se muestra en la figura 617

B C D E F G H J 1

Enero Nombre Cantidad Francisco 20 Ana 21 Juan 22 Paco 23 Mariacutea 20

Mayo 1 Nombre Cantidad Alex 45 Carlos 32 Carolina 24 Torn 11 Ceacutesar 12

Septiembre iNombre Cantidad Alex 20 Carlos 23 Carolina 34 Toni 23

I Ceacutesar 18

Febrero Nombre Cantidad Francisco 23 Ana 21 Juan 14 Paco 34 Mariacutea 12

Junio Nombre Cantidad Alex 21 Carlos 45 Carolina 23 Torn 12 Ceacutesar 32

Octubre Nombre Cantidad Alex 21 Carlos 25 Carolina 18 Toni 42 Ceacutesar 34

Marzo Nombre Cantidad Francisco 25 Ana 11 Juan 21 Paco 23 Mariacutea 34

Julio Nombre Cantidad Alex 25 Carlos 23 Carolina 34 Torn 11 Ceacutesar 15

Noviembre Nombre Cantidad Alex 11 Carlos 21 Carolina 29 iexclToni 25 Ceacutesar 1_7

Abril 1 Nombre Cantidad 1 Francisco 43 Ana 34 Juan 22 Paco 13 Mariacutea 25

Agosto 1 Nombre Cantidad 1 Alex 34 Carlos 23 Carolina 11 Torn 32 Ceacutesar 35

Diciembre Nombre Cantidad I Alex 27 Carlos 16 Carolina 22 Toni 27 Ceacutesar 12

|n 4 bull H Hojal HojaZ Hoja3 Hoja4 HojaS Hoja6 Hoja HojaS j lt _ i raquoH 1

Figura 617 Doce tablas cada una representando un mes del antildeo

Seleccione la celda A l Entonces vaya a DatosgtValidacioacuten y en la pestantildea Conshyfiguracioacuten seleccione la opcioacuten Lista en el cuadro de lista desplegable El cuadro de texto Origen escriba cada uno de los meses del antildeo separaacutendolos por comas Es m u y importante que los nombres de rangos para cada tabla sean los mismos que los nombres de los meses que ha utilizado en la lista de validacioacuten Haga clic en Aceptar Ahora seleccione la celda Bl y configure para ella una lista de valishydacioacuten de la misma forma que acabamos de explicar esta vez utilizando los nomshybres de cada uno de los empleados Si los nombres de eacutestos son m u y largos para escribirlos simplemente haga una referencia al rango de celdas que los contieshynen para que sea el origen y luego haga clic en Aceptar

En la celda A2 introduzca esta foacutermula

= B U S C A R V ( $ B $ 1 I N D I R E C T O ( $ A $ 1 ) 2 F A L S O )

Seleccione el mes que desee en la lista situada en la celda Al y el nombre del empleado en la lista situada en la celda B2 y la foacutermula que se encuentra en A2 devolveraacute la cantidad correspondiente para la persona y el mes seleccionados

222 Excel Los mejores trucos

Existen algunas ventajas de utilizar esta aproximacioacuten Si no estaacute H^ familiarizado con la funcioacuten INDIRECTO la hemos utilizado para leer

v - ^ los contenidos de una celda como si fuera la direccioacuten de un rango en vez de un texto Como hemos dado nombre a 12 rangos diferentes cada uno de los cuales representando un mes del antildeo la foacutermula que utilizar la funcioacuten INDIRECTO leeraacute la palabra Enero como referencia un rango en vez de como una cadena de texto Otra ventaja de utilizar una foacutermula que incluye la funcioacuten INDIRECTO es que puede librarse de la restriccioacuten de Excel que impide tener maacutes de siete niveles de anidamiento en las funciones

Mostrar el tiempo total como diacuteas horas y minutos Cuando antildeade horas en Excel puede hacer que el resultado devuelto aparezca como el total de horas y minutos pero por desgracia no como diacuteas horas y minutos Para poder mostrar esto necesitaremos hacer alguacuten trabajo extra

Por ejemplo si el tiempo total es igual a 75 horas 45 minutos y 0 segundos el total normalmente se mostrariacutea como 754500 proporcionaacutendolos este reshysultado en una celda cuyo formato personalizado fuese [h]mmss lo que permishyte mostrar horas superiores a 24 Aunque ciertamente es un resultado correcto tambieacuten significa que tendriacuteamos que calcular manualmente cuaacutentos diacuteas hoshyras y minutos representa esta cantidad Esto puede llevar cierto tiempo y ademaacutes es susceptible de calcular sea erroacuteneamente

Supongamos que tiene una lista de horas vaacutelidas en las celdas A1A10 y que en la celda Al 1 tiene una funcioacuten SUMA normal que estaacute sumando el total de horas es decir contiene la foacutermula =SUMA ($A$1 $A$10) Si el total de esta suma excede de las 24 horas el resultado de la celda que contiene a esta funcioacuten debeshyriacutea tener el formato [h]mm Supongamos que el resultado de esta suma total es de 3062600 que por supuesto son 306 horas y 26 minutos Sin embargo con esta informacioacuten no sabemos cuaacutentos diacuteas horas y minutos representa

Para mostrar el resultado de esa forma utilizaremos la siguiente foacutermula

=ENTER0(A11) ampraquo Dias amp ENTERO(RESIDUO(AllENTERO(All))24) amp horas y amp MINUTO(All) amp raquo minutos a

Teniendo en cuenta que la celda Al 1 contiene el valor 3062600 el resultado correspondiente deberiacutea ser de 12 diacuteas 18 horas y 26 minutos Veamos coacutemo funciona esto Si no estaacute familiarizado con la forma en la que Excel almacena y utiliza las fechas y horas primero deberiacutea consultar el truco 38

Seleccione la celda con la foacutermula que calcular el resultado y haga clic en el botoacuten fx que parece justo a la izquierda de la barra de foacutermulas (en versiones anteriores de Excel y en la versioacuten para Macintosh el botoacuten contiene el signo =)

m

6 Trucos sobre foacutermulas y funciones 223

Haga clic en la primera aparicioacuten de la funcioacuten ENTERO que aparece en la barra de foacutermulas Esta funcioacuten devolveraacute el valor entero 12 a part i r del valor 1276805556 Este nuacutemero representa cuaacutentos diacuteas hay

A continuacioacuten debemos calcular cuaacutentas horas quedan despueacutes de quitar esos 12 diacuteas Haga clic en la segunda funcioacuten ENTERO que aparece en la barra de foacutermulas Aquiacute estamos utilizando la funcioacuten RESIDUO ( A l l ENTERO (All) para devolver el resto de dividir 1276805556 por 12 que es 076805556 (el nuacutemero de minutos representado como un nuacutemero decimal) Ahora debemos multiplishycarlo por 24 (lo cual nos da 18433333) para devolver un nuacutemero que represenshytaraacute la cantidad de minutos Dado que soacutelo queremos el nuacutemero entero incluimos la foacutermula RESIDUO (Al l ENTERO (Al l ) ) 24 dentro de una funcioacuten ENTERO que se encarga de quitar la parte decimal

Haga clic en la funcioacuten MINUTOS dentro de la barra de foacutermulas Esta funshycioacuten devolveraacute el valor 26 a partir del nuacutemero de serie 127680556

Dado que el valor devuelto por la funcioacuten MINUTOS nunca seraacute un valor numeacuterico seriacutea sensato mantener al menos la funcioacuten original SUMA que deshyvuelve el total de horas en una celda de forma que pueda ser referenciada y utilizada para caacutelculos posteriores en caso de que sea necesario Por supuesto la fila que contiene el total de horas puede ser ocultada

TRUCO Determinar el nuacutemero de diacuteas especificados que aparecen en cualquier mes Cuando esteacute creando aplicaciones relacionadas con calendarios en especial aplicaciones de noacutemina a veces necesitaraacute conocer cuaacutentas veces aparece un cierto diacutea de la semana en un mes en particular

A pesar de que Excel dispone de muchas funciones para fechas y horas al diacutea de hoy no existe una funcioacuten que por ejemplo nos indique cuaacutentos lunes hay en el mes de enero para el antildeo 2005 Podemos utilizar varias funciones m u y anidashydas de fecha y hora de Excel para conseguir esto pero por desgracia como ya podraacute imaginarse es m u y complicado y enrevesado

Eacuteste es uno de los casos en los que VBA puede simplificar enormemente una tarea complicada En vez de combinar complejas funciones podemos escribir una funcioacuten personalizada que haga lo mismo y que luego podamos pasarle el diacutea y la fecha que queremos calcular Podemos utilizar la siguiente funcioacuten para detershyminar cuaacutentos diacuteas hay en un mes especificado Por ejemplo

=CuantosDiasEnUnMes(11203mieacute)

la cual nos devolveriacutea 5 ya que hubo cinco mieacutercoles en el mes de diciembre de 2003

224 Excel Los mejores trucos

De forma similar la siguiente funcioacuten

=CuantosDiasEnUnMes(11203jue)

nos devolveriacutea 4 ya que solamente hubo cuatro jueves en el mes de diciembre de 2003 Para utilizar esta funcioacuten personalizada en un libro primero debe escrishybir el siguiente coacutedigo en un moacutedulo estaacutendar Para ello abra el libro en el que desea colocar esta macro y vaya a HerramientasgtMacrogtEditor de Visual Basic (Al t Opcioacuten-Fl l ) Luego seleccione lnsertargtMoacutedulo y escriba el siguiente coacutedigo

Function CuantosDiasEnUnMes(FechaCompleta As String sDia As String) As Integer Dim i As Integer Dim iDia As Integer iDiaCoincidente As Integer Dim iDiasEnMes As Integer Dim FechaCompletaNueva As Date

iDiaCoincidente = Weekday(FechaCompleta) Select Case UCase(sDia)

Case DOM iDia = 1

Case LUN iDia = 2

Case MAR iDia = 3

Case MIEacute iDia = 4

Case JUE iDia = 5

Case VIE iDia = 6

Case SAB iDia = 7

End Select iDiasEnMes = Day(DateAdd(d -1 DateSerial _

(Year(FechaCompleta) Month(FechaCompleta) + 1 1))) FechaCompletaNueva = DateSerial(Year(FechaCompleta)

Month(FechaCompleta) iDiasEnMes) For i = iDiasEnMes - 1 To 0 Step -1

If Weekday(FechaCompletaNueva - i) = iDia Then CuantosDiasEnUnMes = CuantosDiasEnUnMes + 1

End If Next i

End Function

Cierre de esta ventana para volver a Excel

Ahora simplemente ha de introducir la funcioacuten en cualquier celda como vishymos antes y Excel devolveraacute un nuacutemero que representa cuaacutentas veces aparecioacute el diacutea especificado en el mes que hayamos elegido

6 Trucos sobre foacutermulas y funciones 225

K|^^3 Construir mega foacutermulas jt ^ E T ^ H Las mega foacutermulas (foacutermulas que contienen foacutermulas y a su vez otras

^ B A ^ H foacutermulas) son lo suficientemente complicadas para que incluso los expertos en Excel salgan corriendo Con un poquito de esfuerzo y trabajando paso a paso hasta conseguir la foacutermula que deseamos podemos afrontar esas complejas mega foacutermulas sin miedo

iquestLe llena de terror el simple hecho de tener que pensar en funciones anidadas dejando aparte su construccioacuten Algunas de esas celdas con caacutelculos complicashydos y enrevesados tambieacuten nos hacen sentirnos un poco asustados a nosotros Pero con un poco de esfuerzo y trabajando paso a paso podemos crear mega foacutermulas sin tener miedo Y quizaacute soacutelo quizaacute incluso podraacute ser capaz de leer y entender estas foacutermulas maacutes adelante

El truco estaacute en construir las foacutermulas poco a poco utilizando las funciones estaacutendar de Excel Utilice una funcioacuten por celda obteniendo un resultado indivishydual que sea manejable y luego aniacutedelas juntas para obtener el resultado final que desea A continuacioacuten veamos un ejemplo de este proceso en accioacuten

Digamos que le han dado una larga lista de nombres de personas compuesta por el nombre primer apellido y segundo apellido (todos ellos en una uacutenica celda de cada fila) El trabajo consiste en escribir una foacutermula en la columna adyacente que extraiga solamente el segundo apellido de la persona

Lo que tendremos despueacutes seraacute el comienzo del segundo apellido (la tercera palabra) de la celda Por el momento lo que tendremos que buscar es la posicioacuten del segundo caraacutecter espacio dentro de la celda Excel no dispone de una funcioacuten que busque automaacuteticamente el segundo caraacutecter espacio dentro de una celda pero no proporciona la funcioacuten ENCONTRAR que permite hacer buacutesquedas lo cual es lo que necesitamos

Introduzca el nombre David Peacuterez Cardenal (o cualquier otro nombre) en la celda A l Luego en la celda Cl introduzca esta funcioacuten

=ENCONTRAR( A 1 )

La funcioacuten ENCONTRAR busca una cadena de texto (el primer paraacutemetro) dentro de otra cadena de texto (el segundo paraacutemetro) y devuelve un nuacutemero que es la posicioacuten en la que se encuentra dicha cadena dentro de la otra

Eacutesta es la sintaxis de esta funcioacuten

ENCONTRAR(texto_buscadodentro_del_textonuacutem_inicial)

Con esto encontraremos la posicioacuten inicial del primer caraacutecter espacio en la celda A l ya que dijimos que buscase la cadena (un espacio) En el caso de David Peacuterez Cardenal deberiacutea devolver el valor 6 Pero nosotros estamos buscan-

226 Excel Los mejores trucos

do el segundo espacio no el primero Lo que haremos seraacute utilizar el nuacutemero devuelto por la primera foacutermula (en Cl) y lo utilizaremos como punto de partida para otra funcioacuten ENCONTRAR que buscaraacute el segundo espacio Por tanto en la celda C2 introduzca lo siguiente

=ENCONTRAR( A 1 C 1 + 1 )

Observe que esta vez hemos pasado un tercer argumento a la funcioacuten ENshyCONTRAR que indica la posicioacuten inicial que se encuentra en la celda Cl (6 en este ejemplo) maacutes 1 Esto no serviraacute como punto de partida para que la segunda funcioacuten ENCONTRAR busque el segundo espacio Por tanto lo que esta uacuteltima funcioacuten nos devuelva seraacute la posicioacuten del segundo espacio

Teniendo esto realmente la siguiente funcioacuten que tenemos que construir es aquella que escriba todos los caracteres a partir del segundo espacio hasta el final de la cadena Para ello utilizaremos la funcioacuten EXTRAE que como su nombre indica extrae un rango de caracteres a partir de una cadena de texto En la celda C3 introduzca lo siguiente

= EXTRAE(Al C2 + 1 2 5 6)

Esta funcioacuten devuelve un nuacutemero de caracteres especificado a partir de la cashydena de texto comenzando por la posicioacuten que hayamos especificado y tomando tantos caracteres como indiquemos Aquiacute podemos ver su sintaxis

EXTRAE(textoposicioacuten_inicialnuacutem_de_caracteres)

En nuestro caso hemos pedido a la funcioacuten EXTRAE que extraiga 256 caracshyteres a partir de texto de la celda A l comenzando por el primer caraacutecter que se encuentra despueacutes del segundo espacio Hemos utilizado el nuacutemero 256 para asegurarnos de que obtenemos todos los caracteres hasta el final de la cadena independientemente de su longitud (no importa si en la cadena quedan menos caracteres de los que indiquemos la funcioacuten devolveraacute tantos como pueda)

Con todas las piezas a mano ha llegado el momento de construir la foacutermula completa una foacutermula anidada que le daba paacutenico hace unos minutos Baacutesicashymente todo lo que tenemos que hacer es reemplazar todas las referencias a celshydas (excepto Al) de las funciones con las foacutermulas que habiacutea en esas celdas Podemos hacer esto usando cortar y pegar en la barra de foacutermulas

Haga clic en la celda C2 y en la barra de foacutermulas seleccione la funcioacuten y copiacuteela por completo exceptuando el signo de = de esta forma

ENCONTRAR( A 1 C 1 + 1 )

Pulse Intro para abandonar la celda con lo que estaremos en la celda C3 Una vez seleccionada en la barra de foacutermulas sombree la referencia a la celda C2 y

6 Trucos sobre foacutermulas y funciones 227

pegue la funcioacuten ENCONTRAR (Control-V) que acabamos de copiar en el portapapeles Pulse Intro Al hacer esto la celda C3 deberiacutea quedar de la siguienshyte forma

=EXTRAE(AlENCONTRAR( AlCl+1)+12 56)

Ahora necesitamos reemplazar la referencia a la celda Cl con la funcioacuten que hay dentro de dicha celda Seleccione la celda Cl sombree toda la foacutermula excepshyto el signo de = en la barra de foacutermulas copiacuteela en el portapapeles (Control-C) y luego seleccione la celda C3 Sombree Cl en la barra de foacutermulas y pegue el contenido del portapapeles Luego pulse Intro

Ahora todo lo que hay que hacer es cortar la celda C3 y pegarla en la celda Bl luego eliminar las celdas Cl y C2 Al final deberiacuteamos tener una foacutermula como esta

= EXTRAE(AlENCONTRAR( AlENCONTRAR( Al)+1)+12 5 6)

Si sigue las directrices de este concepto observaraacute que puede construir mega foacutermulas utilizando gran variedad de funciones de Excel Lo que tiene que hacer es primeramente planificar la forma en la que puede conseguir su objetivo y luego utilizar celdas individuales para obtener los resultados parciales que neceshysita Por uacuteltimo reemplace todas las referencias a celdas con las funciones que estaacuten almacenadas en dichas celdas

R ^ ^ S Trucar mega foacutermulas que hagan referencia sect Braquo9 a o t ros libros

^ M M ^ H I Las foacutermulas de Excel se complican cuando una mega foacutermula hace referencia a otro libro No soacutelo necesita incluir las referencias a celdas sino tambieacuten los nombres de libros hojas de caacutelculo e incluso la ruta completa al libro en caso de que esteacute cerrado Existen numerosos meacutetodos para simplificar lo que podriacutea ser un proceso muy complejo

Escribir tales foacutermulas desde cero puede convertirse en pesado raacutepidamente Con este truco le mostraremos un meacutetodo raacutepido y sencillo que le permite consshytruir estas foacutermulas sin la necesidad de utilizar nombres de libros y rutas de archivos El meacutetodo es tan simple que a veces lo pasamos por alto

En primer lugar hemos de aseguraremos de que estamos utilizando los conshyvenios correctos a la hora de referencia a celdas y hojas de caacutelculo Cuando se escribe una foacutermula siempre es una buena idea no introducir nunca referencias a celdas nombres de hojas o nombres de libros porque ello podriacutea incluir tipos y sintaxis incorrectas La mayoriacutea de las personas que estaacuten en un nivel intermeshydio normalmente utilizan el cursor del ratoacuten para introducir las referencias a

228 Excel Los mejores trucos

celdas hojas y libros Realmente esto impide que se produzcan errores de sintaxis y de tipos pero si se utiliza con funciones anidadas sabraacute que la foacutermula se convertiraacute raacutepidamente en algo enorme y m u y difiacutecil de seguir

Por ejemplo eche un vistazo a la siguiente foacutermula

=ENTERO(SUMA(CMis documentosExcelFinanzasProgramas de ventas[Ventasxls]Ventas de productosC2C2924))

Se trata de una simple funcioacuten SUMA anidada dentro de una funcioacuten ENTEshyRO Como hace referencia a celdas situadas en un libro cerrado debe incluir la ruta completa jun to con las referencias a celdas el nombre de la hoja y el libro Sin embargo si tuviese que anidar alguna otra funcioacuten dentro de esta ya se convertiriacutea en algo praacutecticamente imposible de escribir

A continuacioacuten veamos un raacutepido meacutetodo para escribir mega funciones que hagan referencia a libros externos El truco consiste simplemente en escribir la funcioacuten en el libro al que haremos referencia en una celda aparte Si solamente va a hacer una referencia a una hoja en este libro es mejor utilizar una celda en esta hoja

En primer lugar al igual que hicimos en el truco para mostrar el nuacutemero de veces que apareciacutea un diacutea en un mes desarrollaremos la foacutermula en una celda aparte en el libro en el que acabaraacute la referencia Una vez tengamos el resultado deseado cortaremos la foacutermula de dicha celda activaremos el libro en el que deberiacutea aparecer el resultado seleccionaremos la celda apropiada y te daremos la foacutermula

Excel hace todo el trabajo duro al incluir los nombres de libro y cualquier nombre de hoja En caso de que necesite modificar o antildeadir algo la foacutermula simplemente abra el libro que estaacute siendo referenciado corte la foacutermula desde el libro original y peguacuteela en el libro referenciado Luego haga los cambios necesashyrios corte y pegue de nuevo la foacutermula en el lugar de donde procediacutea

Trucar una de las funciones de base de datos de Excel para que haga el trabajo de muchas funciones Las funciones de base de datos de Excel (BDSUMA BDCONTAR etc) pueden hacer el trabajo de cientos de funciones reduciendo tanto el tiempo de caacutelculo como el espacio ocupado en el libro

Cuando utilice funciones de base de datos de Excel puede especificar hasta 256 criterios diferentes Por ejemplo puede que desee sumar cantidades que hay en la columna A pero soacutelo aquellas en cuya celda correspondiente en la columna

6 Trucos sobre foacutermulas y funciones 229

B haya un nuacutemero mayor que 100 y en la de la celda C haya un nuacutemero menor que 40 Si por el contrario desea sumar las cantidades cuyos valores corresponshydientes en la columna B son menores que 50 necesita utilizar otra funcioacuten y un rango diferente como criterio Seriacutea mucho maacutes sencillo si tuvieacutesemos una uacutenica funcioacuten y pudieacutesemos cambiar faacutecil y raacutepidamente el criterio Si nunca ha utilishyzado las funciones de base de datos de Excel con anterioridad le recomendamos encarecidamente que se familiarice con ellas ya que son m u y buenas para exshytraer informacioacuten estadiacutestica a partir de una base de datos o una tabla de Excel

Para ver coacutemo funciona rellene algunos datos tal y como se muestra en la figura 618 Mantenga los encabezados de columnas de la misma forma pero puede introducir los datos que desee debajo de ellos Mientras que ahora le pone a esta tabla el nombre de TodosLosDatos incluyendo todos los encabezados a la hoja le daraacute el nombre de Datos

A 1 Nombre 2 Antonio 3 Al ex 4 David 5 Marta 6 David 7 Santos 8 Laida 9 Mar-IacuteO Luis 11 David 12 Laida 13 Anqel 14 Al ex 15 Carolina

16 Aacutengel Iacute7 18

B Fechas

1522004 1622004 1722004 1822004 1922004 2022004 2122004 2222004 2322004 2422004 2522004 2622004 2722004 2822004 2922004

C Coste total

3200 euro 3000 euro 2300 euro 3600euro 2500 euro 3000 euro 3100 euro 3000 euro 2800euro 2300euro 3300euro 4500 euro 2800 euro 2900 euro 3000euro

D E Cantidad pagada Porcentaje

2200 euro 1200 euro 1600 euro 3600euro 2100 euro 1500 euro 1800 euro 1900 euro 1200 euro 2300 euro 1200 euro 2300 euro 900 euro

1800 euro 2300 euro

pagado 69 40 70

100 84 50 58 63 43

100 36 51 32 62 77

F Coste restante

1000 euro 1800 euro 700 euro - euro

400 euro 1500 euro 1300 euro 1100 euro 1600 euro

- euro 2100 euro 2200 euro 1900 euro 1100 euro 700 euro

G

Figura 618 Datos propuestos

Inserte otra hoja y llaacutemela Resultados En la celda A2 introduzca la siguienshyte foacutermula

=Datos Al

Propague esta foacutermula hasta la celda F2 de forma que tenga una copia sincronizada de los encabezados de la tabla En la celda A3 introduzca cualquier nombre de los que exista en la tabla de la primera hoja como por ejemplo John D luego en la celda D3 introduzca la siguiente foacutermula

=BDEXTRAER(TodosLosDatosB2$A$2$A$3)

Propague esta foacutermula hasta la celda F3 y de formato a las celdas C3F3 como sea requerido

230 Excel Los mejores trucos

Para copiar raacutepidamente las celdas como eacutesta sin formato seleccione la celda haga clic con el botoacuten derecho del ratoacuten en el pequentildeo recuadro de propagacioacuten y manteniendo pulsado el botoacuten derecho del ratoacuten arrastre el cursor hasta donde sea necesario Luego seleccione la opcioacuten Rellena sin formato

Los datos correspondientes deberiacutean extraerse de la tabla cuyo nombre ha introducido en la celda A3 Eacuteste es soacutelo un ejemplo simple de coacutemo puede utilizar la funcioacuten BDEXTRAER para extraer informacioacuten relevante

Si obtiene el error NUM significa que tiene dos o maacutes nombres ideacutenticos en la columna Nombre

Llegados a este punto la mayoriacutea de las personas seguiriacutean el mismo concepshyto para todos los nombres para los que quisieran extraer informacioacuten de la tabla Sin embargo este esfuerzo no es necesario

Dado que siempre estamos haciendo referencia a la celda A3 para el nombre tendriacutea mucho maacutes sentido en la mayoriacutea de los casos si simplemente pudieacuterashymos utilizar una lista desplegable en la celda A3 que contuviese todos los nomshybres que hay en la tabla Podemos utilizar la funcioacuten estaacutendar de validacioacuten de Excel para crear dicha lista Sin embargo como la lista original de nombres estaacute ubicada en otra hoja no podemos hacer referencia para lista de la misma forma que lo hariacuteamos a una lista que estuviese en la misma hoja (es decir una referenshycia a un rango estaacutendar) Podemos resolver este problema faacutecilmente daacutendole nombre a la columna Nombre de la tabla original y luego utilizando ese nombre como origen de la lista para la validacioacuten

Dado que muchas tablas no son estaacuteticas (es decir sus datos estaacuten continuamente modificaacutendose ya sea antildeadiendo o eliminando registros) deberiacutea considerar la posibilidad de utilizar rangos dinaacutemicos con nombre para la columna Nombre

Haga clic de nuevo en la hoja Datos y teniendo seleccionada cualquier celda vaya a lnsertargtNombregtDefinir En el cuadro de texto Nombres en el libro introshyduzca Nombres y en el cuadro de texto Se refiere a introduzca la siguiente foacutermula y luego haga clic en Agregar

= D E S R E F ( $ A $ 2 0 0 C O N T A R A ( $ A $ 2 $ A $ 1 0 0 0 ) 1 )

Haga clic en la hoja Resultados seleccione la celda A3 y luego vaya a DatosgtValidacioacuten

N

6 Trucos sobre foacutermulas y funciones 231

Seleccione la opcioacuten Lista del cuadro de lista desplegable y en el cuadro de texto Origen introduzca lo siguiente

=Nombre

Aseguacuterese de que la casilla de verificacioacuten Celda con lista desplegable esteacute activada y luego haga clic en Aceptar Ahora ya puede seleccionar cualquier nombre de la lista de la celda A3 y los datos que hay a la derecha mostraraacuten la informacioacuten correspondiente de forma automaacutetica Podemos llevar esto a un nishyvel superior y utilizar la funcioacuten BDCONTAR para extraer la cantidad de persoshynas cuyo coste total es mayor que un cierto nuacutemero que especifiquemos y un porcentaje pagado menor que otro nuacutemero que tambieacuten especificaremos

Para ello primeramente necesitaraacute crear un rango dinaacutemico con nombre para la columna Coste total y para la columna Pagado En el cuadro de texto Nombres en el libro introduzca Coste_totalM y en el cuadro de texto Se refiere a introduzca la siguiente foacutermula tras lo cual debe pulsar Agregar

=DESREF($C$200CONTARA($C$2$C$1000)1)

Esta vez en el cuadro de texto Nombres en el libro introduzca PorcentajePagado y en el cuadro de texto Se refiere a introduzca la siguiente foacutermula tras lo cual debe pulsar Agregar

=DESREF($E$200CONTARA($E$2$E$1000)1)

Active la hoja Resultados seleccione la celda Al 1 y luego seleccione DatosgtValidacioacuten Seleccione la opcioacuten Lista y luego introduzca en el cuadro de texto Origen el texto M = Coste_total Haga clic en Aceptar Seleccione la celda B l l y luego vaya a DatosgtValidacioacuten Seleccione la opcioacuten Lista y luego introshyduzca en el cuadro de texto Origen el texto = Porcentaje_pagadoM Haga clic en Aceptar

En la celda A l 2 introduzca lo siguiente

= D a t o s C l

Seleccione la celda B12 e introduzca lo siguiente

= D a t o s E l

Seleccione la celda Al 3 e introduzca lo siguiente

= gt amp A l l

Seleccione la celda B13 e introduzca lo siguiente

= lt S e T E X T O ( B l l 0 )

232 Excel Los mejores trucos

En la celda Al 5 introduzca lo siguiente

=DCONTAR(TodosLosDatOS$A$12$A$12$B$13)

Seleccione cualquier cantidad de coste total desde la celda Al 1 y cualquier porcentaje pagado desde la celda B l l y la funcioacuten BDCONTAR le devolveraacute el nuacutemero de personas que coinciden con ese criterio Por ejemplo si ha seleccionashydo 65 y 100 estaraacute extrayendo la cantidad de personas que tienen un coste total mayor que 65 y un porcentaje pagado menor que el 100

Como puede ver puede utilizar esta funcioacuten BDCONTAR para extraer cualshyquier combinacioacuten de criterios para las columnas Coste total y Porcentaje pagashydo Con un poco maacutes de trabajo puede llevar esto todaviacutea a un nivel superior y hacer que los operadores de comparacioacuten utilizados en criterio sean intercambiashybles

Lo primero que tiene que hacer es crear una lista de operadores de comparashycioacuten que puedan ser utilizados en la lista de validacioacuten Vaya a una columna que no esteacute siendo utilizada en la hoja Resultados y en cualquiera de las filas de dicha columna introduzca el encabezado Operadores Debajo de eacuteste en cada una de las celdas siguientes introduzca = gt = gt lt y lt = tal y como se muestra en la figura 619

Opeiuumltloies

Figura 619 Operadores de comparacioacuten

Para dar nombre a este rango seleccione el encabezado y todos los operadores por debajo de eacutel seleccionando luego la opcioacuten Insertar mayor que NombregtCrear Aseguacuterese de que estaacute activada la opcioacuten Soacutelo fila superior y haga clic en Aceptar Excel daraacute nombre automaacuteticamente al rango basaacutendose en el encabezado (en este caso Operadores)

Seleccione la celda G7 e introduzca el encabezado Seleccione un criterios Teniendo seleccionadas las celdas G7 y H7 ceacutentrelas yendo a FormatogtCeldasgt Alineacioacuten y luego eligiendo en el cuadro de lista desplegable Horizontal la opcioacuten Centrar en la seleccioacuten Seleccione las celdas G8 y H8 vaya a DatosgtValidacioacuten y seleccione la opcioacuten Lista en el cuadro de lista desplegable En el cuadro de texto Origen introduzca = Operadores Aseguacuterese de que estaacute activada la casilla de verificacioacuten Celda con lista desplegable y luego haga clic en Aceptar

Vuelva a la hoja Datos y cree un rango dinaacutemico con nombre para la columna Fechas Vaya a lnsertargtNombregtDefinir en el cuadro de texto Nombres en el libro

6 Trucos sobre foacutermulas y funciones 233

escriba Fechas y en el cuadro de texto Se refiere a escriba la siguiente foacutermula y luego haga clic en Agregar

= DESREF($B$200CONTARA($B$2$B$10 00) 1)

Seleccione la celda G7 coacutepiela y peguacuteela en la celda G9 Cambie la palabra Criterio por Fecha Seleccione las celdas G10H10 vaya a DatosgtValidacioacuten y luego seleccione la opcioacuten Lista en el cuadro de lista desplegable En el cuadro de texto Origen introduzca = Dates

Aseguacuterese de que la opcioacuten Celda con lista desplegable esteacute activada y haga clic en Aceptar Seleccione la celda G i l e introduzca lo siguiente

=Datos$B$1

Propaguacuteela hasta la celda Hl 1 Seleccione la celda G12 introduzca la siguienshyte foacutermula (deberiacutea utilizar el formato de fecha) y coacutepiela hasta la celda H12

=G8 amp T E X T O ( G 1 0 d d m m a a )

En la celda F13 introduzca la palabra Resultado y ceacutentrelo en la seleccioacuten teniendo seleccionadas las celdas F 1 3 y G 1 3 En la celda H13 introduzca la sishyguiente foacutermula

=BDSUMAR(TodosLosDatosDatos$C$1$G$11$H$12)

El resultado final deberiacutea parecerse al que se muestra en la figura 620 que como demostracioacuten muestra todas las foacutermulas

G

Fech =G88JEXTO(G10 Resultado

Seleccione

Seleccione 190201

as ddmmaa) =

H

un criterio

un a fecha 200201

Fechas =H8ampTEXT0(H10 ddmmaa) =B D S U MAR (To d o s Lo s D at o s b at o s

I

UumliexclC$1HiexclG$11$HUumliexcl1

J

2)

Figura 620 Hoja mostrando las foacutermulas correctas y los encabezados

Oculte las filas 11 y 12 ya que no necesitamos verlas Terminaraacute teniendo una tabla lista para ser utilizada como la que se muestra en la figura 621 a la que se ha aplicado un formato en particular para facilitar su lectura

234 Excel Los mejores trucos

Seleccione un

gt= lt= criterio

Seleccione una fecha 190201

Resultado 200201

90 euro|

Figura 621 Hoja con la iacutenter faz final

Utilizando este principio puede tener faacutecilmente una o varias funciones de base de datos haciendo el trabajo que de otra manera hariacutean cientos de funcioshynes

CAPIacuteTULO 7

Trucos sobre macros Trucos 81 a 94

Las macros hacen que sea muy faacutecil automatizar tareas repetitivas en Excel pero la forma en la que son creadas y las facilidades para utilizarlas a veces son problemaacuteticas Por suerte Excel es flexible lo suficientemente como para que pueda solucionar esos problemas y crear nuevas caracteriacutesticas con un miacutenimo esfuerzo

Acelerar el coacutedigo y eliminar los parpadeos de la pantalla Cuando graba macros dentro de Excel el coacutedigo que es generado a veces produce parpadeo se la pantalla que no solamente ralentizar la macro sino que hacen que la actividad de la misma parezca muy desorganizada Por suerte podemos eliminar esos parpadeos de la pantalla a la vez que celebramos el coacutedigo

Uno de los inconvenientes de las macros grabadas en Excel es que el coacutedigo producido es a menudo m u y ineficiente Esto puede significar que las macros que deberiacutean tardar solamente unos segundos para completarse a veces requieshyren de mucho maacutes tiempo y parecen muy ineficaces Ademaacutes cuando crea macros utilizando la grabadora de macros todas las pulsaciones de teclas se graban independientemente de que tengan o no sentido Esto quiere decir que sigue coshymetiendo un error y que a continuacioacuten lo corrige las pulsaciones requeridas para completar esas acciones tambieacuten son grabadas en el coacutedigo de la macro

Si ya ha jugado algo con macros y coacutedigo en VBA probablemente habraacute oiacutedo hablar de la propiedad A p p l i c a t i o n S c r e e n U p d a t i n g Si establece esta proshypiedad a F a l s e al inicio de una macro no solamente estaraacute deteniendo los par-

uuml

238 Excel Los mejores trucos

padeos de la pantalla asociados a la macro grabada sino que tambieacuten estaraacute incrementando la velocidad de ejecucioacuten de la misma La razoacuten por la que este meacutetodo acelerar el coacutedigo es porque Excel ya no necesita volver a dibujar la panshytalla cada vez que encuentra un comando como pueda ser S e l e c t A c t iacute v a t e L a r g e S c r o l l S m a l l S c r o l l y muchos otros Para incluir la sentencia A p p l i c a t i o n S c r e e n U p d a t i n g = F a l s e al inicio de una macro existente vaya a HerramientasgtMacrogtMacros seleccione la macro en cuestioacuten haga clic en Modificar e introduzca el siguiente coacutedigo

1 una Macro Macro grabada el 1122003 por Susana

ApplicationScreenUpdating = False

bullSU COacuteDIGO

ApplicationScreenUpdating = True End Sub

Observe que hemos vuelto a establecer esta propiedad a True despueacutes de comshypletar la macro Aunque Excel siempre volveraacute a activar esta propiedad tan pronshyto como el foco vuelva a eacutel (es decir cuando la macro termine y el usuario vuelva a interactuar con la aplicacioacuten) en muchos casos es mejor asegurarse e incluir el coacutedigo al final

En algunos casos se encontraraacute con que la propiedad A p p l i c a t i o n S c r e e n U p d a t i n g ha vuelto a activarse antes de que la macro grabada se haya completado Esto puede ocurrir con macros grabadas que utilicen el comando S e l e c t con frecuencia Y en caso de que esto suceda puede que tenga que repeshytir la sentencia A p p l i c a t i o n S c r e e n U p d a t i n g = F a l s e en otras partes de la macro

^ Q Q 3 Ejecutar una macro a una determinada hora (I ^Fv^l En m u c ^ a s ocasiones seriacutea una gran idea poder ejecutar una macro a una

H H I ^ I hora predeterminada o a intervalos de tiempo especiacuteficos Por suerte Excel proporciona un meacutetodo VBA que hace que esto sea posible

El meacutetodo A p p l i c a t i o n O n T i m e puede hacer que las macros se ejecutan automaacuteticamente una vez realizadas ciertas configuraciones Supongamos que tiene una macro que desea ejecutar cada diacutea a las 1500 En primer lugar debereshymos determinar coacutemo lanzar el meacutetodo OnTime Podemos hacerlo utilizando el evento Workbook_Open en el moacutedulo privado del objeto Workbook

7 Trucos sobre macros 239

En Windows la manera maacutes raacutepida para llegar al moacutedulo privado del objeto Workbook (ThisWorkbook) es haciendo clic con el botoacuten derecho del ratoacuten en el icono de Excel situado a la izquierda del menuacute Archivo y luego seleccionar la opcioacuten Ver coacutedigo (en Macintosh debe abrir el editor de Visual Basic y luego abrir el moacutedulo para el objeto Workbook desde la ventana de proyecto) Una vez en este sitio introduzca el siguiente coacutedigo

Priacutevate Sub Workbook_Open( ) ApplicationOnTime TimeValue(150000) MiMacro

End Sub

MiMacro deberiacutea ser el nombre de la macro que desea ejecutar Deberiacutea residir en un moacutedulo estaacutendar y contener el meacutetodo OnTime de la siguiente forma

Sub MiMacro( )

ApplicationOnTime TimeValue(150000) MiMacro

SU COacuteDIGO

End Sub

Esto ejecutaraacute el procedimiento MiMacro todos los diacuteas a las 1500 tan pronshyto como se abra Excel Ahora suponga que desea ejecutar MiMacro a intervalos de 15 minutos despueacutes de abrir el libro De nuevo desearemos configurar esta programacioacuten tan pronto como se abra el libro De nuevo haga clic con el botoacuten derecho del ratoacuten sobre el icono de Excel situado a la izquierda del menuacute Archivo seleccione la opcioacuten Ver coacutedigo e introduzca el siguiente coacutedigo

Private Sub Workbook_BeforeClose(Cancel As Boolean) ApplicationOnTime dTime MiMacro False

End Sub

Private Sub Workbook_Open( ) ApplicationOnTime Now + TimeValue(001500) MiMacro

End Sub

En cualquier moacutedulo estaacutendar (accediendo a traveacutes de la opcioacuten lnsertargt Moacutedulo) introduzca el siguiente coacutedigo

Sub MiMacro( ) dTime = Now + TimeValue(0 0150 0) ApplicationOnTime dTime MiMacro

SU COacuteDIGO End Sub

Observe coacutemo pasamos el valor 15 minutos a la variable puacuteblica dTime Esto es de forma que pueda cancelar el meacutetodo OnTime cuando ocurra el evento

240 Excel Los mejores trucos

WorkbookBef o reClose estableciendo el argumento opcional Schedule a Falso De forma predeterminada el argumento S c h e d u l e estaacute establecido como True de forma que al establecerlo en False estamos indicando a Excel que cancele el meacutetoshydo OnTime que estaba establecido para que se ejecutase a una hora en particular

Si no pasoacute la hora a una variable Excel no sabraacute queacute meacutetodo OnTime desea cancelar ya que la expresioacuten Now + Time Valueacute ( 0 0 1 5 0 0 ) no es estaacutetica pero siacute lo es cuando se pasa a una variable Si no establece el argumento opcional Schedule a False el libro se abririacutea automaacuteticamente cada 15 minutos despueacutes de que lo cerrarse y ejecutase MiMacro

Q ^ Q Utilizar CodeName para hacer referencias | B 9 9 a hojas en los libros de Excel

^ ^ ^ ^ ^ B A veces necesitaraacute crear una macro que funcione incluso si los nombres de hojas a los que hace referencia cambien

Si ha grabado una macro en Excel que hace referencia a una hoja en particushylar dentro de libro debe saber que el coacutedigo seguiraacute funcionando soacutelo si los nomshybres de las hojas se mantienen iguales Por ejemplo si la hoja se llama Presupuesto el coacutedigo de la macro tiene la sentencia S h e e t s ( P r e s u p u e s t o ) S e l e c t y ahora cambia el nombre de dicha hoja la macro dejaraacute de funcionar Esto es debido a que la grabadora de macros genera el coacutedigo basaacutendose en el nombre de la pestantildea de la hoja en cuestioacuten o en el nombre que se ve cuando se trabaja en Excel Para superar esta limitacioacuten tenemos dos opciones siendo la primera de ellas la que utiliza nuacutemeros de iacutendice en vez de nombres El iacutendice de una hoja se determina por su posicioacuten dentro de libro La hoja que estaacute maacutes la izquierda siempre tendraacute el iacutendice 1 la siguiente tendraacute el iacutendice 2 y asiacute sucesivamente VBA permite especificar cualquier hoja utilizando su iacutendice en vez de su nombre aunque por desgracia el generador de coacutedigo de Excel nunca utiliza estos iacutendices

De todas formas aunque utilizar un iacutendice como por ejemplo Sheets(3)Select es una opcioacuten mejor que utilizar el nombre de la hoja resulta que la posicioacuten de la hoja podriacutea cambiar en el libro en caso de que antildeada elimine o mueva hojas

En vez de utilizar iacutendices los programadores expertos utilizan CodeName Cada hoja de un libro tiene un uacutenico CodeName que no cambia aunque la hoja se mueshyva o cambie de nombre incluso aunque se antildeadan otras hojas Puede ver el CodeName de las hojas simplemente yendo al Editor de Visual Basic (seleccione HerramientasgtMacrogtEditor de Visual Basic o pulse Alt Opcioacuten-Fll ) y luego mostrando la ventana de proyectos en caso de que sea necesario (seleccione VergtVentana Proyectos)

En la figura 71 el CodeName para la hoja cuyo nombre de pestantildea es Presushypuesto es Hoja3 El CodeName siempre es el nombre que aparece fuera de los

7 Trucos sobre macros 241

pareacutentesis cuando mira en la ventana de proyectos Puede hacer referencia a esta hoja con coacutedigo VBA en el libro utilizando la sentencia H o j a 3 S e l e c t e n vez de utilizar S h e e t s ( P r e s u p u e s t o ) S e l e c t o S h e e t s (3 ) S e l e c t

Archivo Edicioacuten Ver Insertar Formato Depuracioacuten Ejecutar Herramientas Complementos Ventana Ayuda

4$[ EuroTool (EUROTOOLXLA) lt5sect VBAProject (Librol)

Microsoft Excel Objetos EacutesectIacute Hojal (Datos antiguos) H Hoja2 (Datos nuevos)

13IZZZZI Q ThisWorkbook

iexclHoja3 Worksheet

Alfabeacutetica | por categoriacuteas j

I Hoja3 JDisplayFageBreaks False DisplayRightToLeft False EnableAutoFilter False EnableCalculation True EnableOutlining False EnablePivotTable False EnableSelection 0 - xlNoRestriction iexclNtildeame Presupuesto ScrollArea

Figura 71 Los CodeNames y los nombres de hojas en la ventana de proyectos de VBE

Si el libro ya estaacute lleno de coacutedigo VBE ya sea escrito a mano o grabado y que no utilice CodeNames para hacer referencia a las hojas puede cambiarlo al nivel del proyecto (es decir todo el coacutedigo que esteacute en todos los moacutedulos de libro) simplemente yendo a EdicioacutengtReemplazar mientras que esteacute en la ventana del editor

El uacutenico caso de que no puede utilizar el CodeName de una hoja es cuando hace referencia a una hoja que se encuentra en un libro diferente del que contiene el coacutedigo

Conectar de forma faacutecil botones a macros En lugar de asignar una macro a cada botoacuten a veces resultaraacute maacutes conveniente crear una uacutenica macro que gestione todos los botones

Normalmente los usuarios prefieren ejecutar las macros a traveacutes de una tecla de acceso raacutepido o a traveacutes de un botoacuten que pueda pulsarse faacutecilmente en vez de

242 Excel Los mejores trucos

tener que encontrarlas a traveacutes de menuacutes y cuadros de diaacutelogo La forma maacutes habitual de acceder a un botoacuten es a traveacutes del cuadro de herramientas Formulashyrios que estaacute disponible si selecciona la opcioacuten VergtBarras herramientasgtFormu-larios Estos botones en nuestra opinioacuten son la mejor eleccioacuten para ejecutar las macros especialmente aquellas que hayan sido grabadas ya que eacutestas normalshymente requieren que el usuario se encuentre en una hoja en particular cuando se ejecuten Esto es debido a que las macros grabadas siempre utilizan la hoja activa si graboacute la macro sin cambiar de hoja Esto significa que si el usuario no se enshycuentra en la hoja adecuada (es decir en una hoja que no es en la que se graboacute la macro) eacutesta puede que falle o haga cambios en una hoja incorrecta Por el conshytrario si utiliza botones en las hojas puede forzar al usuario a que vaya a la hoja adecuada y pulse el botoacuten para ejecutar la macro de forma que se ejecute en las condiciones adecuadas

iquestPor queacute utilizar un botoacuten del cuadro de herramientas Formularios en S^ vez de un botoacuten del cuadro de herramientas Cuadro de controles

w^ Porque los botones normalmente se utilizan para detectar un clic del ratoacuten y ejecutar una macro especiacutefica Soacutelo deberiacutea utilizar un botoacuten de comando del cuadro de herramientas Cuadro de controles cuando necesite atrapar eventos tales como doble clic clic con el botoacuten derecho etc Los controles del cuadro de herramientas Cuadro de controles se conocen como objetos ActiveX y utilizarlos simplemente para ejecutar una macro resulta una sobrecarga innecesaria para Excel sobre todo si utiliza nuacutemeros botones

Cuando tiene muchos botones en un libro y cada botoacuten se utiliza para ejecushytar una macro en especial puede asociar las macros a los botones haciendo clic con el botoacuten derecho del ratoacuten en su borde y elegir la opcioacuten Asignar macro Luego debe encontrar la macro adecuada en el cuadro de diaacutelogo y seleccionarla tal y como se muestra en la figura 72

Como cada botoacuten es normalmente utilizado para ejecutar una macro diferenshyte deberaacute desplazarse por la lista de macros para encontrar la que estaacute buscando Sin embargo existe una manera m u y sencilla para asignar a todos los botones una misma macro y auacuten asiacute hacer que cada uno de ellos ejecute una macro diferente Coloque el siguiente coacutedigo en cualquier moacutedulo estaacutendar Seleccione HerramientasgtMacrogtEditor de Visual Basic (Al t Opcioacuten-Fl l ) y cree un nuevo moacutedulo seleccionando la opcioacuten lnsertargtMoacutedulo y luego introduciendo el siguiente coacutedigo

Sub QueBoton( ) Run ApplicationCaller

End Sub

7 Trucos sobre macros 243

jsl- bull iquestpound) Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana

euro

1 A

1 Antildeadir fila Pegar

[ Solicitar

1 2

3

4 Horas

1 5 0 6 48

7 72

8 45

9 87

10 26

11 12

12 35 |H 4 bull bull H o j a l

Listo

Eliminar fila

Borrar C

Llamada bull

C

Imprimir

U - bull bull bull bull bull bull bull bull - bull bull bull bull bull bull bull bull bull

D E

I

Nombres

Juan Garciacutea

Mariacutea Serrano

Marta Salvador

Santos Palacios

Gonzalo Domiacutenguez

Carlos Buitrago

Susana Mulero

Lanolina Estrada Hoja2 Hoja3

Jombre de la macro

Libro2 ThisWorkbook Imprimir

Libro2 ThisWorkbook AnadirFila Libro2 ThisWorkbook Borrar bullydeg^IhJsWQr|^QQSEMlD^M

Libro2 ThisWorkbook Ir ASemana 1 y 2 Libro2 ThisWorkbook Ir ASemanaSy 4 Libro2 ThisWorkbook Llamada Libro2 ThisWorkbook PegarValores Libro2 ThisWorkbook Solicitar Libro2 ThisWorkbook Solicitar

Raeros en iexclEste libro

Descripcioacuten

1

i 4 1

bull-V

ffl-

F

3 [ J

3

Jnlxll - - S x

G

Aceptar 1

Cancelar

Nuevo j

Grabar

NUM

I-mdash

Figura 72 Botoacuten Imprimir activo teniendo

seleccionado y con el cuadro de diaacutelogo Asignar macro seleccionada tambieacuten la macro en cuestioacuten

Ahora simplemente necesita asignar a cada botoacuten el mismo nombre que tieshyne la macro que deberiacutea ejecutar Para cambiar el nombre de un botoacuten simpleshymente haga clic en eacutel y reemplace el nombre que aparece en el Cuadro de nombres (que estaacute a la izquierda de la barra de foacutermulas) con el nombre de la macro que deberiacutea ejecutar Haga esto mismo para todos los botones De esta forma si a un botoacuten le ha llamado Macrol y le ha asignado la macro QueBoton cuando haga clic sobre eacutel ejecutaraacute la macro Macrol

Crear una ventana de presentacioacuten para un libro Las ventanas de presentacioacuten proporcionan un toque de distincioacuten a una aplicacioacuten sin mencionar el hecho de que le entretienen mientras que la aplicacioacuten se carga iquestPor queacute no hacer que las hojas de caacutelculo hagan lo mismo

Es posible utilizar las caracteriacutesticas proporcionadas por VBA para crear una pantalla de presentacioacuten para cualquier libro Encontraraacute que el proceso es mushycho maacutes sencillo de lo que se habriacutea imaginado Para crear una pantalla de preshysentacioacuten que se muestre entre cinco y diez segundos en el momento en el que se abra un libro y que luego se cierre automaacuteticamente comenzaremos abriendo el

244 Excel Los mejores trucos

editor de Visual Basic seleccionando HerramientasgtMacrogtEditor de Visual Basic Luego seleccione I n se rtargt UserForm Si no aparece el cuadro de controles simshyplemente seleccione VergtCuadro de herramientas

En el cuadro de herramientas haga clic en el icono Etiqueta (para encontrarshylo simplemente pase por encima de cada icono y veraacute un pequentildeo cuadro de ayuda que le mostraraacute el nombre de cada uno) Haga clic en cualquier parte del formulario para insertar la etiqueta Luego utilice los cuadros que aparecen a su alrededor para cambiar el tamantildeo de forma que pueda escribir texto dentro del etiqueta Teniendo seleccionada la etiqueta vuelva a hacer clic en ella Con ello entraraacute en el modo de edicioacuten de texto y podraacute marcar el texto predefinido que aparece dentro de ella

Dentro de la etiqueta escriba el texto Mi pantalla de presentacioacuten Para camshybiar otras propiedades de la etiqueta (el tamantildeo de la fuente el color etc) aseshyguacuterese de tener la seleccionada y luego pulse F4 o bien seleccione la opcioacuten VergtVentana Propiedades Ahiacute puede cambiar todas aquellas propiedades que desee Ahora haga doble clic en el formulario (no en la etiqueta) y seleccione el evento I n i t i a l i z e que aparece en el cuadro de lista desplegable de la parte superior derecha de la ventana como se muestra en la figura 73

^Mmiwmmmmmmmamp^- bull ampsect Archivo Edicioacuten Ver Insertar Formato Depuracioacuten

bullbull bull XI

J - iexcl ~ g - E u r o T o o l (EUROTOOLXLA)

i - ltjg VBAProject (Libro2xls) 11 - Microsoft Excel Objetos S] Hojal (Hojal)

| Q ThisWorkbook j - v Formularios

El UserForm 1

] j UserForm 1 UserForm ~^]

Alfabeacutetica | por categoriacuteas |

fflsectamp9flflflHH UserForm 1 - 1 I iexclBackColor bull ampH8000000Famp i J BorderColor bull ampH80000012amp _J jBorderStyle 0 - fmBorderStyler Caption UserForm 1

Cycle 0 - fmCycleAllFonr DrawBuffer 32000 i

Enabled True j

Font Tahoma |

IForeColor bull ampH800000128tZJ |

JJ -J lt

1 UserForm

F

P r i v a t p Siuuml

End Sub

i l iLJ

JnJuumlJ Ejecutar Herramientas Complementos Ventana Ayuda

v i _ J v Liacuten 2 Col 1

3 Click

Click Dbiciick

Error

KevDown KeyPress KeyUp Layout MouseDown MouseMove

- S x

raquo - _ _ _ _ _ _ j

R i

JJ^I Figura 73 Cuadro de lista desplegable con los diferentes eventos para el objeto UserForm

Dentro de ese procedimiento introduzca el siguiente coacutedigo

ApplicationOnTime Now + TimeValue(000005) CerrarFormulario

7 Trucos sobre macros 245

Con lo que el coacutedigo deberiacutea quedar de la siguiente forma

Priacutevate Sub UserForm_Initialize( ) ApplicationOnTime Now + TimeValue(000005) CerrarFormulario

End Sub

A continuacioacuten vaya a InsertargtMoacutedulo e introduzca el siguiente coacutedigo exacshytamente como se muestra

Sub CerrarFormulario( ) Unload UserForml End Sub

Ahora todo lo que necesita es escribir algo de coacutedigo en el moacutedulo privado del objeto Workbook (ThisWorkbook) En el explorador de proyectos deberiacutea ver el nombre del libro Expanda las carpetas que se encuentran debajo de libro hasta que encuentre ThisWorkbook dentro de la carpeta Microsoft Excel Objetos Haga doble clic en ThisWorkbook para mostrar su moacutedulo privado En dicho moacutedulo privado introduzca el siguiente coacutedigo

Private Sub Workbook_Open( ) UserFormlShow

End Sub

Cierre la ventana para volver a Excel Guarde y cierre el libro y vuelva a abrirshylo para ver la ventana de presentacioacuten en accioacuten Puede ver un ejemplo de esto en la figura 74

Figura 74 Pantalla de presentacioacuten de ejemplo en accioacuten

246 Excel Los mejores trucos

Simplemente recuerde que la pantalla de presentacioacuten deberiacutea mostrarse tan soacutelo por un periacuteodo corto de tiempo y soacutelo deberiacutea contener texto resumido y relevante Si muestra esta pantalla durante maacutes de diez segundos puede resultar molesto para el usuario

Mostrar un mensaje de Por favor espere iquestHa tenido alguna vez una de esas macros que parece tardar una eternidad para completarse Si esto resulta un problema puede hacer que Excel muestre un mensaje de Por favor espere al usuario

Muchos usuarios esperan que el coacutedigo se ejecute y se complete praacutecticamenshyte de forma instantaacutenea Sin embargo esto no siempre ocurre asiacute Las macros grabadas en particular normalmente necesitan de mucho maacutes tiempo para comshypletarse que aquellos coacutedigos bien escritos en VBA Para complicar maacutes la cosa el lenguaje VBA de Excel es normalmente maacutes lento que la mayoriacutea de los lenguashyjes de programacioacuten

Por suerte podemos usar un poco de coacutedigo extra para crear un mensaje Por favor espere de forma que los usuarios sepan que el coacutedigo se estaacute ejecutando y que Excel no se ha bloqueado Por desgracia uno de los meacutetodos maacutes conocidos para hacer que los usuarios sean conscientes de que el coacutedigo se estaacute ejecutando es utilizando una barra de progreso de Excel

Existen dos problemas con este meacutetodo Uno la barra de progreso puede hacer que el coacutedigo sea todaviacutea maacutes lento complicando el problema Y dos el coacutedigo lento probablemente esteacute causado por un bucle y no puede utilizar la grabadora de macros para crear bucles

Nosotros preferimos utilizar coacutedigo VBA como el del siguiente ejemplo que utiliza un rectaacutengulo de la barra de herramientas Dibujo

Sub Hazlo( ) ApplicationScreenUpdating = True With HojalShapes(Rectangulol)

Visible = msoTrue = (Not HojalShapes(Rectangulol)Visible) End With

Cambiando las hojas forzamos a que Rectangulol se muestre mientras se ejecuta el coacutedigo

Hoja2Select HojalSelect

End Sub

Para utilizar este coacutedigo antildeada un rectaacutengulo desde la barra de herramientas Dibujo en cualquier hoja del libro Teniendo seleccionado el rectaacutengulo haga clic en el Cuadro de nombres y llame a esta figura Rectangulol

7 Trucos sobre macros 247

Introduzca el texto que desea mostrar mientras se estaacute ejecutando el coacutedigo cambie el formato la posicioacuten y el tamantildeo del rectaacutengulo si asiacute lo desea Escriba la macro anterior en un moacutedulo estaacutendar del libro Si es necesario cambie el texto Hojal por el CodeName de la hoja correspondiente en la que haya dibujado el rectaacutengulo (vimos coacutemo usar CodeName en un truco anterior) Luego vaya a HerramientasgtMacrogtMacros y ejecute la macro que acabamos de crear Esto haraacute que el rectaacutengulo se oculte

Al comienzo de este coacutedigo que es un coacutedigo lento coloque lo siguiente

Run Hazlo ApplicationScreenUpdating = False

El uso de la sentencia A p p l i c a t i o n S c r e e n U p d a t i n g = F a l s e hace que la pantalla no parpadee y que el coacutedigo sea maacutes raacutepido Para terminar al final del coacutedigo incluya la sentencia Run Haz lo Luego ejecute la macro lenta de forshyma habitual

H Hacer que una celda quede marcada o desmarcada al seleccionarla A veces resulta difiacutecil elegir opciones utilizando las casillas de verificacioacuten Por suerte podemos simplificar este proceso utilizando un poco de coacutedigo muy sencillo

Podemos utilizar los libros de Excel para recolectar datos para encuestas Norshymalmente hacemos esto ofreciendo los usuarios una serie de respuestas entre las que elegir y colocando casillas de verificacioacuten junto a ellas Entonces los usuarios activaraacuten las casillas que consideren oportunas El problema de usar este meacutetodo es que probablemente el libro acabaraacute teniendo cientos de casillas de verificacioacuten

En vez de ello podemos utilizar un coacutedigo VBA m u y sencillo para marcar cualquier celda dentro de un rango especificado en el momento en el que sea seleccionada En caso de que la celda vuelva a ser seleccionada el coacutedigo eliminashyraacute la marca El truco para este coacutedigo seraacute utilizar la letra a en dichas celdas utilizando la fuente Marlett Cuando llegue el momento de recolectar los resultashydos simplemente utilizaremos la funcioacuten CONTARSI para contar las apariciones de la letra a como se muestra a continuacioacuten

= C O N T A R S I ( $ A $ 1 $ A 1 0 0 a )

Los siguientes coacutedigos de ejemplo soacutelo funcionan para el rango Al A100 pero puede modificarlos faacutecilmente para que se ajusten a cualquier rango Para utilishyzar el coacutedigo active la hoja en la que deberiacutea mostrarse las marcas haga clic con el botoacuten derecho del ratoacuten sobre el nombre de la hoja (en la pestantildea de la parte

248 Excel Los mejores trucos

inferior de la ventana) y luego seleccione la opcioacuten Ver coacutedigo Escriba el primer coacutedigo (si desea que las celdas se activen con un solo clic) o el segundo coacutedigo (si desea que se activen con un doble clic)

COacuteDIGO 1 - Marcar casillas con un uacutenico clic

Private Sub Worksheet_SelectionChange(ByVal Target As Range) If TargetCellsCountgtl Then Exit Sub

If Not Intersect(Target Range(AlA100)) Is Nothing Then TargetFontNtildeame = Marlett If Target = vbNullString Then

Target = a Else

Target = vbNullString End If

End If End Sub

COacuteDIGO 2 - Marcar casillas con un doble clic

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range Cancel As Boolean)

If Not Intersect(Target Range(AlA100)) Is Nothing Then Cancel = True Evita que se entre en modo de edicioacuten

TargetFontNtildeame = Marlett If Target = vbNullString Then

Target = a Else

Target = vbNullString End If

End If End Sub

Una vez que haya colocado el coacutedigo deseado en su lugar simplemente cierre la ventana para volver a Excel y luego guarde el libro Si desea averiguar si una celda estaacute o no activada simplemente examine sus contenidos

Contar o sumar celdas que tengan un color de relleno especiacutefico Tarde o temprano necesitaraacute utilizar SUMA o CONTAR para sumar o contar celdas que tengan un cierto color de relleno y que un usuario haya cambiado manualmente ya que normalmente los usuarios ven maacutes sencillo utilizar colores que utilizar nombres de rangos

Para poder hacer esto primeramente abra el libro en el que desee contar o sumar celdas dependiendo del color de relleno Vaya a HerramientasgtMacrogtEditor

7 Trucos sobre macros 249

de Visual Basic (AltOpcioacuten-Fll) y luego seleccione lnsertargtMoacutedulo para insershytar un moacutedulo estaacutendar Dentro de este moacutedulo escriba el siguiente coacutedigo

Function FuncionColor(rColor As Range rRange As Range Optional SUM As Boolean) Dim rCell As Range Dim ICol As Long Dim vResult

ICol = rColorInteriorColorlndex

If SUM = True Then For Each rCell In rRange If rCellInteriorColorlndex = ICol Then

vResult = WorksheetFunctionSUM(rCell) + vResult End If

Next rCell Else

For Each rCell In rRange If rCellInteriorColorlndex = ICol Then

vResult = 1 + vResult End If

Next rCell End If

FuncionColor = vResult End Function

Ahora ya puede utilizar la funcioacuten personalizada FuncionColor en las foacutermushylas de la siguiente forma

=FuncionColor($C$1$A$1$A$12TRUE)

que suma los valores dentro del rango $A$1$A$12 que tengan el mismo color que la celda $C$1 En este caso la funcioacuten para una suma porque hemos utilizado TRUE como uacuteltimo argumento para la funcioacuten Si desea contar las celshydas en vez de sumarlas pero solamente aquellas cuyo color sea como el de la celda $C$1 utilice la siguiente expresioacuten

=FuncionColor($C$1$A$1$A$12FALSE)

o

=FuncionColor($C$1$A$1$A$12)

Si omitimos el uacuteltimo argumento la funcioacuten utiliza automaacuteticamente el vashylor predeterminado de FALSE (falso) Ahora ya puede sumar o contar celdas que tengan un color de relleno especiacutefico faacutecilmente tal y como se muestra en la figura 75

250 Excel Los mejores trucos

1 2 3 4

5 6 7 8

9 10 11 12 13 14 15 16 17 18

A B C D E 20 22 23 25 26 27 29 30 31 32 54 21 78 =FiincionColor($C$1$A$1$A$12VERDADERO)

3 =FuncionColor($C$1$A$1$A$12)

F

Figura 75 Utilizar la funcioacuten personalizada FuncionColor para contar dependiendo del color de relleno

Q Q Q Antildeadir el control Calendario de Microsoft Excel sect B3fM a cualquier libro

^ ^ ^ ^ ^ trade Si desea asegurarse de que los usuarios introducen fechas correctamente el control Calendario de Excel puede facilitar las cosas tanto para usted como para los usuarios de la hoja de caacutelculo Con este truco podraacute antildeadir un control Calendario a cualquier libro de Excel

A menos que una fecha sea introducida correctamente Excel no la reconoceraacute como vaacutelida Esto significa que a veces no puede realizar ciertos caacutelculos con aquellos datos que parezcan fechas pero que en realidad no lo son Tambieacuten sigshynifica que cualquier graacutefico o tabla dinaacutemica que se base en dichas fechas no seraacute vaacutelida Aunque puede ayudarnos la funcioacuten de validacioacuten de Excel (descrita en el capiacutetulo 2) estaacute lejos de ser la maacutes correcta

Con este truco podremos antildeadir un control Calendario a cualquier libro de Excel Para comenzar abra el libro en el que desee utilizar el calendario Resulta una buena idea utilizar el archivo Personalxls para esto en cuyo caso primerashymente deberiacutea mostrarlo seleccionando la opcioacuten VentanagtMostrar Si esta opcioacuten esta desactivada significa que no tiene auacuten un archivo Personalxls Puede crear uno faacutecilmente grabando una macro muy sencilla Seleccione HerramientasgtMacrogt Grabar nueva macro y luego elija a la opcioacuten Libro de macros personal en el cuadro de lista desplegable Guardar macro en Haga clic en Aceptar seleccione cualquier celda y luego detenga la grabacioacuten Con ello Excel crearaacute el archivo Personalxls automaacuteticamente

A continuacioacuten seleccione HerramientasgtIVIacrogtEditor de Visual Basic (Alt Opcioacuten-F l l ) y entonces seleccione lnsertargtUserForm Esto deberiacutea mostrar el

7 Trucos sobre macros 251

cuadro de herramientas de controles (si no es asiacute seleccione VergtCuadro de heshyrramientas) Haga clic con el botoacuten derecho del ratoacuten en el cuadro de controles y seleccione la opcioacuten Controles adicionales Desplaacutecese por la lista hasta que enshycuentre el elemento Control Calendario 100 (el nuacutemero de versioacuten puede depenshyder de el producto Excel que tenga instalado) Active la casilla de verificacioacuten para dicho control y haga clic en Aceptar Apareceraacute entonces el icono del conshytrol calendario Haga clic en eacutel y luego haga clic en el formulario que acabamos de crear

Utilice los pequentildeos recuadros del control y del formulario para cambiar sus tamantildeos de forma que queden como en la figura 76

F yen

i iaiai^a^^gw ^sect Archivo Edicioacuten Ver Insertar Formato Depuracioacuten Ejecutar Herramientas Complementos Ventana Ayuda

sectiexcl JI - d u -J - JJ J lt -i _J J [ 7 ] laquo ^

f l x

n

fc ltiacute

A abl m i iexcld n ^ - i I I El ra --i

F

JJ

Calendar 1 (alendar

Alfabeacutetica I p0r categoriacuteas iexcl

(Acerca de) Calendar 1

bull ampH8000000Famp

21 (Fuente)

bull ampH0UumlUuml00000amp Sistema (media) lun En relieve (Fuente)

bull ampHUuml0A00Uuml00amp n ftHntildennnnnmftiacute JUumlJ

may 2004 [2004^] f

lun

3

10

17

24

31

mar

4

11

18

25

mieacute

5

12

19

26

jue

6

13

20

27

vie

7

14

21

28

saacuteb

1

8

15

J-

29

dom I 2

9

16

23

30

Figura 76 Insertar un control calendario

Aseguacuterese de que el formulario esteacute seleccionado (como aparece en la figura 76) y luego vaya a la opcioacuten VergtVentana Propiedades En ella seleccione la propiedad Caption y cambie el texto que aparece por la palabra Calendario Ahora vaya a VergtCoacutedigo y en el moacutedulo privado antildeada el siguiente coacutedigo

Priacutevate Sub Calendarl_Click( ) ActiveCell = CalendarlValueacute

252 Excel Los mejores trucos

End Sub

Priacutevate Sub UserForm_Activate( ) Me Calendan Valueacute = Date

End Sub

Seleccione ahora la opcioacuten lnsertargtMoacutedulo y en el moacutedulo privado escriba el siguiente coacutedigo

Sub Mostrar( ) UserFormlShow

End Sub

Cierre esta ventana para volver a Excel Vaya a HerramientasgtMacrogtMacros y seleccione la macro Mostrar Haga clic en el botoacuten Opciones asigne una tecla de acceso raacutepido y todo estaraacute listo Simplemente pulse esa tecla y apareceraacute el cashylendario con la fecha de hoy Puede hacer clic en cualquier fecha y veraacute coacutemo se inserta en la celda activa

Proteger por contrasentildea y desproteger todas las hojas de caacutelculo raacutepidamente Por desgracia no existe la posibilidad en Excel de proteger y desproteger todas las hojas de caacutelculo de golpe Sin embargo con un simple coacutedigo podemos hacerlo

Excel proporciona un mecanismo de proteccioacuten que puede antildeadirse a las hojas de caacutelculo mediante la opcioacuten HerramientasgtProteccioacutengtProteger hoja Es posible tambieacuten indicar una contrasentildea de forma que otros usuarios no puedan acceder a la hoja a menos que conozcan dicha contrasentildea A veces sin embargo desearaacute proteger con contrasentildea y desproteger todas las hojas de un libro de forma raacutepishyda ya que protegerlas y desprotegerlas una a una resulta m u y tedioso A contishynuacioacuten veamos coacutemo podemos simplificar esta tarea

Abra el libro en el que desea aplicar el coacutedigo Tambieacuten puede seleccionar la opcioacuten VentanagtMostrar para mostrar el archivo Personalxls de forma que dicho coacutedigo esteacute disponible para todos los libros En caso de que esta opcioacuten esta desactivada significa que todaviacutea no tiene un archivo Personalxls Puede crear u n o faacutecilmente g rabando u n a macro m u y sencilla Para ello seleccione HerramientasgtMacrogtGrabar nueva macro y elegir el libro de macros personales como destino Luego haga clic en Aceptar haga clic en cualquier celda y detenga la grabacioacuten A Excel crearaacute el archivo Personalxls automaacuteticamente

A continuacioacuten seleccione HerramientasgtMacrogtEditor de Visual Basic (Alt Opc ioacuten-F l l ) y luego seleccione lnsertargtL)serForm Esto deberiacutea mostrar un for-

7 Trucos sobre macros 253

mulario y el cuadro de herramientas Si no fuese asiacute puede abrirlo a traveacutes del menuacute Ver

En el Cuadro de herramientas seleccione el cuadro de texto (cuyo icono es ab |) Luego haga clic en el formulario para antildeadir ese control en eacutel Coloacutequelo en la esquina superior izquierda del formulario y cambie el tamantildeo seguacuten sus prefeshyrencias

Teniendo seleccionado el cuadro de texto seleccione VergtVentana Propiedades (F4) En la ventana de propiedades desplaacutecese hacia abajo hasta encontrar la propiedad PasswordChar y en el cuadro de texto situado su derecha introduzca un asterisco () Vuelva al cuadro de herramientas seleccione el icono Botoacuten de comando y haga clic en el formulario colocaacutendolo en la esquina superior dereshycha del mismo

Teniendo seleccionado el botoacuten de comando vaya a la ventana de propiedades y en ella desplaacutecese hacia abajo hasta encontrar la propiedad Caption En el cuashydro de texto situado su derecha introduzca el texto Aceptar En caso de estar utilizando Excel 97 tambieacuten debe encontrar la propiedad TakeFocusOnClick y establecer su valor en F a l s e Ahora seleccione el formulario nuevamente y en la ventana de propiedades encuentre la propiedad Caption Cambie su valor por el texto Protegerdesproteger todas las hojas Al final del formulario deberiacutea pareshycerse al que se muestra en la figura 77

tnuumlmmmwMmmmmmmm njid Archivo Edicioacuten Ver Insertar Formato Depuracioacuten Ejecutar Herramientas Complementos Ventana Ayuda

-0 l

r i u r o T o o l (EUROTOOLXLA) V i

L VBAProject (Libro3) i

Microsoft E gt cel Obietos j

H j H o i a l (Hoial) j

a]Hoia (Hoia) J

B]Hoia3(Hoia3) Q ThisWotlbool iexcl

nsmanaraia UserForml UserForm

Alfabeacutetica I por categoriacuteas

j(Name)

IacuteBackColor

IBorderColor BorderStyle

RU^MiHjBH IacuteCycle

iDrawBuffer

lEnabled

iFont

iForeColor

UserForml

bull ampH8000000Famp bull ampJH80000012amp

0 - fmBorderStyler

SUffi Pr oteger despr oti

0 - fmCvcleAllForrr

32000

True

Tahoma

bull ampH80000012amp

[bull[bull

pUfflWjK

~ t bull bull bull bull bull

f

bull Iacute Iacute

uumluuml-niacute bull iHIacuteiiacute]iacuteM

Diii

j Aceptar

iraquo

_2H||

l - f i ^W-

zMsmnna

Figura 77 Formulario insertado en VBE

254 Excel Los mejores trucos

Seleccione la opcioacuten VergtCoacutedigo (F7) e introduzca el siguiente coacutedigo exactashymente igual que como aparece

Priacutevate Sub CommandButtonl_Click( ) Dim wSheet As Worksheet

For Each wSheet In Worksheets If wSheetProtectContents = True Then

wSheetUnprotect Password=TextBoxlText Else

wSheetProtect Password=TextBoxlText End If

Next wSheet Unload me

End Sub

Este coacutedigo se recorre todas las hojas que hay en el libro activo En caso de que haya alguna protegida la desprotege utilizando la contrasentildea introducida en el cuadro de texto Si la hoja ya estaba desprotegida entonces la protege utilizando la contrasentildea Ahora vaya a lnsertargtMoacutedulo introduzca el siguiente coacutedigo

Sub MostrarContrasentildea( ) UserFormlShow

End Sub

Este coacutedigo sirve para mostrar el formulario Ahora cierre esta ventana para volver a la ventana principal de Excel

Vaya a HerramientasgtMacrogtMacros (AltOpcioacuten-F8) Seleccione la macro MostrarContrasentildea y haga clic en el botoacuten Opciones para asignar una tecla de acceso raacutepido Cuando pulse dicha tecla todas las hojas desprotegidas se proteshygeraacuten y las que estuviesen protegidas quedaraacuten desprotegidas

Como esta macro no le pide que confirme la contrasentildea deberaacute estar muy seguro de lo que escriba De lo contrario puede encontrarse con que una contrasentildea mal escrita le bloquee todas las hojas de caacutelculo

Si solamente estaacute protegiendo los contenidos de usted mismo la siguiente macro realiza las mismas tareas pero utilizando una contrasentildea en blanco

Option Explicit

Sub Proteger_desproteger( ) Dim wSheet As Worksheet

For Each wSheet In Worksheets With wSheet

If ProtectContents = True Then

7 Trucos sobre macros 255

Unprotect Password= Else

Protect Password= End If

End With Next wSheet

End Sub

Aunque esto no sea demasiado seguro realmente puede resultar m u y conveshyniente

Recuperar el nombre y la ruta de un libro de Excel Tarde o temprano desearaacute devolver en una celda el nombre de un libro o incluso el nombre del archivo y la ruta del mismo Con este truco le resultaraacute sencillo recuperar dicho nombre y ruta

Las tres funciones definidas por el usuario que explicamos en este apartado colocan el nombre de un libro dentro de una celda o el nombre de archivo y la r u t a del l ibro en u n a celda Los dos p r imeros ejemplos MiNombre y MiNombreCompleto no tienen argumentos El uacuteltimo NombreHoja se utiliza en lugar de anidar la funcioacuten EXTRAER y las otras dos funciones dentro de la funcioacuten CELDA para obtener el nombre de la hoja un proceso que normalmente requeririacutea la siguiente foacutermula espantosa

=EXTRAER(CELDA(nombrearchivo$A$l)ENCONTRAR(] CELDA(nombrearchivo$A$1))+12 5 5)

Como puede ver esto requiere ciertamente escribir bastante para un resultashydo tan simple Es por ello que hemos desarrollado nuestra propia funcioacuten NombreHoja

Para utilizar esta funcioacuten definida por el usuario pulse Alt Opcioacuten-Fl l seshyleccione InsertargtMoacutedulo y copie el siguiente coacutedigo

Function MiNombre( ) As String MiNombre = ThisWorkbookNtildeame

End Function

Function MiNombreCompleto( ) As String MiNombreCompleto = ThisWorkbookFulIName

End Function

Function NombreHoja(rAnyCell) ApplicationVolatile NombreHoja = rAnyCellParentNtildeame

End Function

uuml

256 Excel Los mejores trucos

Guarde estas funciones y cierre la ventana Ahora la funcioacuten apareceraacute en la categoriacutea de funciones definidas por el usuario en el asistente para funciones

Puede utilizar estas funciones tal y como se muestra en la figura 78 No necesitan argumentos Las foacutermulas que hay en la columna A se muestran como demostracioacuten y no tienen ninguacuten efecto en el resultado

Foacutermula

=MiNombreQ

=MiNornb re Completo

=C E LD A( n o m b re a re h ivo)

=NombreHoja(A1)

B

Resultado

Presupuestosxls

CMis docurnentosExcelPresupuestos xIs

C M i s d o c u rn e nt o sE x c e l[ P re s u p u e st o s x I s ] H o j a 1

Hojal

Figura 78 Las funciones y sus resultados

En la celda A4 de la figura 78 tambieacuten hemos colocado la funcioacuten H estaacutendar CELDA que devuelve el nombre de un libro la ruta del archivo

w V y el nombre de la hoja activa En otras palabras esta funcioacuten estaacutendar devuelve informacioacuten acerca del sistema operativo actual informacioacuten sobre formatos ubicacioacuten y contenidos de un libro

Ir maacutes allaacute del liacutemite de tres criterios del formato condicional Podemos utilizar VBA para trucar el formato condicional de forma que utilice maacutes de tres criterios sobre los datos De hecho podemos utilizar el coacutedigo para aplicar virtualmente un nuacutemero ilimitado de criterios

Excel dispone de una caracteriacutestica muy interesante llamada Formato condishycional (que ya vimos en el capiacutetulo 2) Puede encontrarla a traveacutes de la opcioacuten de menuacute FormatogtFormato condicional El formato condicional le permite dar forshymato a las celdas en base a su contenido Por ejemplo puede poner en color rojo el fondo de aquellas celdas cuyos valores seraacuten superiores a 5 pero menores que 10 Aunque esto es muy uacutetil el problema estaacute en que soacutelo podemos utilizar hasshyta tres condiciones lo cual a veces puede no ser suficiente Si desea utilizar maacutes de tres condiciones podemos utilizar coacutedigo VBA de Excel que sea ejecutado automaacuteticamente cada vez que un usuario cambie un rango especiacutefico Para ver coacutemo funciona esto digamos que tiene seis condiciones separadas en el rango de celdas Al A10 en una hoja en particular Rellene algunos datos de la misma forshyma que aparecen en la figura 79 Guarde el libro luego active la hoja de caacutelculo haga clic con el botoacuten derecho del ratoacuten sobre su nombre (en la pestantildea de la parte inferior) seleccione Ver coacutedigo y luego introduzca el siguiente coacutedigo

7 Trucos sobre macros 257

Priacutevate Sub Worksheet_Change(ByVal Target As Range)

Dim icolor As Integer If Not Intersect(Target Range(AlA10)) is Nothing Then Select Case Target Case 1 To 5

icolor = 6 Case 6 To 10

icolor = 12 Case 11 To 15

icolor = 7 Case 16 To 20

icolor = 53 Case 21 To 25

icolor = 15 Case 26 To 30

icolor = 42 Case Else Cualquier cosa

End Select TargetInteriorColorlndex = icolor

End If

End Sub

Ahora cierre esta ventana para volver a la hoja de caacutelculo Los resultados deshyberiacutean parecerse a los que se muestran en la figura 710

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 13

A Nuacutemeros

3

3

13

18 23 28 3 7 12 17 23 28

B

Figura 79 Datos rellenados para el experimento del formato condicional

El color de fondo de cada celda deberiacutea haber cambiado basaacutendose en el nuacutemeshyro pasado a la variable i c o l o r que de hecho pasa este nuacutemero a T a r g e t I n t e r i o r C o l o r l n d e x El nuacutemero pasado estaacute determinado por la liacutenea de coacuteshydigo Case x To x Por ejemplo si introduce el nuacutemero 22 en cualquier celda

258 Excel Los mejores trucos

dentro del rango A1A10 el nuacutemero 15 es asignado a la variable i c o l o r que a su vez pasa ese valor a T a r g e t I n t e r i o r C o l o r l n d e x haciendo que la celda quede en gris T a r g e t siempre hace referencia a la celda que ha cambiado y por lo tanto lanzoacute la ejecucioacuten del coacutedigo

A 1 Nuacutemeros 2 3 3 4 j - 8 5

I 6 13 7

I 8 SEacuteSiPISUumlIil 9 23

10 mmm 11 3 12 7 13 12 14 17 15 23 16 28 17

| 18

B

Figura 710 Como deberiacutean aparecer los datos una vez que se haya introducido el coacutedigo

Q Q S | Ejecutar procedimientos en hojas protegidas ^KIacuteK^I

L a s m a c r o s de Excel son una gran forma de ahorrar tiempo y eliminar K f i f l errores Sin embargo tarde temprano querraacute probar a ejecutar sus macros

favoritas en hojas que han sido protegidas ya sea con o sin contrasentildea lo que provocaraacute un error de ejecucioacuten Podemos evitar este problema con el siguiente truco

Si alguna vez ha intentado ejecutar una macro de Excel en una hoja de caacutelcushylo que ha sido protegida sabe que tan pronto como se encuentra la hoja en cuesshytioacuten la macro probablemente no funciona y mostraraacute un error de ejecucioacuten

Una forma de evitar que esto suceda es utilizar cierto coacutedigo como el que se muestra a continuacioacuten para desproteger y luego volver a proteger la hoja

Sub MiMacro( )

HojalUnprotect Password=Secreta

bullSU COacuteDIGO

HojalProtect Password=Secreta

End Sub

7 Trucos sobre macros 259

Como puede ver el coacutedigo desprotege la Hojal con la contrasentildea Secreta ejecuta el coacutedigo y luego vuelve a protegerla con la misma contrasentildea Esto funshycionaraacute aunque tiene algunas desventajas Una de ellas es que el coacutedigo podriacutea tener alguacuten fallo y detenerse antes de llegar al final donde se encuentra la senshytencia S h e e t l P r o t e c t Pas sword = S e c r e t a Esto hariacutea que por supuesshyto la hoja quedase desprotegida Otro problema es que necesitaraacute un coacutedigo similar para todas las macros y todas las hojas de caacutelculo

Otro camino para evitar este problema es utilizar U s e r l n t e r f aceOnly que es un argumento opcional del meacutetodo P r o t e c t y que puede establecer en True (de forma predeterminada este argumento vale F a l s e ) Al establecer este argushymento a True Excel permitiraacute que todas las macros VBA se ejecuten en aquellas hojas que esteacuten protegidas ya sea con o sin contrasentildea Sin embargo si utiliza el meacutetodo P r o t e c t con argumento U s e r l n t e r f aceOnly establecido en True en una hoja de caacutelculo y luego graba el libro toda la hoja (no solamente la interfaz) quedaraacute completamente protegida cuando vuelva a abrir el libro Para volver a establecer el argumento U s e r l n t e r f aceOnly a True despueacutes de que el libro sea abier to debe volver a u t i l i za r el meacute todo P r o t e c t con el a r g u m e n t o U s e r l n t e r f a c e O n l y a True

Para evitar esta molestia puede utilizar el evento WorkbookOpen el cual es ejecutado tan pronto como se abra el libro Dado que eacuteste es un evento del objeto ThisWorkbook debe colocar el siguiente coacutedigo en un moacutedulo privado de ThisWorkbook Para ello en las versiones de Windows de Excel haga clic con el botoacuten derecho del ratoacuten en el icono de Excel situado en la esquina superior izshyquierda y luego seleccione la opcioacuten Ver coacutedigo En Macintosh abra el objeto Workbook desde la ventana de proyectos del Editor de Visual Basic A continuashycioacuten introduzca el siguiente coacutedigo

Priacutevate Sub Workbook_Open( ) Si tiene diferentes contrasentildeas para cada hoja

Sheets(l)Protect Password=Secreta UserlnterFaceOnly=True Sheets(2)Protect Password=Codorniz UserlnterFaceOnly=True

Repetir tantas veces como sea necesario

End Sub

Este coacutedigo resulta bueno si cada hoja en la que desea que funcionen las macros tiene una contrasentildea diferente o si no desea proteger todas las hojas Puede estashyblecer el argumento U s e r l n t e r f aceOnly a True sin tener que desproteger prishymero Si desea establecer el argumento U s e r l n t e r f aceOnly a True en todas las hojas y eacutestas tienen la misma contrasentildea puede utilizar el siguiente coacutedigo que deberaacute ser colocado en el mismo lugar en el que fue colocado el anterior

260 Excel Los mejores trucos

Priacutevate Sub Workbook_Open( ) Dim wSheet As Worksheet

For Each wSheet In Worksheets wSheetProtect Password=Secreta _

UserlnterFaceOnly=True Next wSheet

End Sub

Ahora cada vez que abra el libro el coacutedigo se ejecutaraacute y estableceraacute la proshypiedad U s e r l n t e r f aceOnly a True permitiendo a las macros operar sin que por ello queden desprotegidas las hojas de cara a los usuarios

^ ^ ^ Q Distribuir macros 11 ^ V f f f ^ l Aunque puede distribuir una macro a lo largo de un libro si solamente desea

^ K ^ ^ H distribuir su funcionalidad la solucioacuten es utilizar los complementos de Excel

Un complemento de Excel no es maacutes que un libro que ha sido guardado como un complemento yendo a la opcioacuten ArchivogtGuardar como y luego seleccionando la opcioacuten Complemento de Microsoft Excel (xla) Una vez que sea guardado y vuelto a abrir el libro quedaraacute oculto y soacutelo podraacute ser visto a traveacutes del explorashydor de proyectos en el Editor de Visual Basic No estaacute oculto de la misma forma que lo estaacute el archivo Personalxls ya que eacuteste siacute se puede ver a traveacutes de la opcioacuten VentanagtMostrar Una vez haya completado el libro que desea utilizar como un complemento debe guardar una copia de eacutel Puede guardarlo en cualshyquier ubicacioacuten que desee pero aseguacuterese de apuntarse doacutende lo colocoacute

Abra cualquier libro y en el menuacute Herramientas seleccione la opcioacuten Compleshymentos y luego haga clic en Examinar Encuentre el complemento en el lugar en el que lo haya grabado seleccioacutenelo y luego haga clic en el botoacuten Aceptar

Aseguacuterese de que el complemento aparece en la lista de complementos disposhynibles y de que la casilla de verificacioacuten esteacute activada Luego haga clic en Aceptar para instalar el complemento Puede guardar la mayoriacutea del coacutedigo en un comshyplemento de Excel sin tener que hacer demasiados cambios De todas formas existen algunas consideraciones que deberaacute tener en cuenta

bull El objeto ThisWorkbook siempre haraacute referencia al complemento no al libro del usuario En vez de ello debe utilizar el objeto Act iveWorkbook

bull No puede hacer referencia a hojas en A c t i v e W o r b o o k ut i l izando CodeNames

bull Siempre debe devolver las barras herramientas etc al lugar en el que el usuario las teniacutea originalmente No hay nada peor que un complemento que cambie todas las configuraciones del usuario sin su consentimiento

7 Trucos sobre macros 261

bull Siempre debe incluir alguacuten tipo de gestioacuten de errores (siacute la mayoriacutea de los complementos causaron errores en algunas ocasiones)

bull Tenga en cuenta que el usuario puede tener muchos sistemas de protecshycioacuten aplicados Nunca utilice coacutedigo para desproteger cualquier parte de libro del usuario Simplemente muestre un mensaje preguntando al usuario si le permite desproteger el libro

bull Haga buen uso de la hoja de que dispone en el complemento Utilizaremos las hojas para almacenar configuraciones como puedan ser barras herrashymientas

bull Si se mantiene pulsada la tecla Mayuacutes no se evitaraacute que se ejecuten los eventos del complemento (a diferencia de coacutemo ocurre con los archivos normales xls)

bull Si desea explorar o trabajar nuevamente el complemento ya sea para inshycorporar actualizaciones o para hacer modificaciones vaya al Editor de Visual Basic estando el complemento instalado y desde la ventana de proshypiedades seleccione la propiedad I sAdd in y establezca su valor a F a l s e Si desea guardar el libro como un complemento esta propiedad volveraacute a estar en True

bull Aplique alguna proteccioacuten a los moacutedulos de su complemento seleccionanshydo la opcioacuten HerramientasgtPropiedades de VBProject y yendo a la pestantildea Proteccioacuten

Una vez que haya creado el complemento necesitaraacute hacer que las macros contenidas en eacutel sean sencillas de ejecutar por el usuario Todo lo esto lo conseshyguiraacute ut i l izando los eventos W o r k b o o k _ A d d i n I n s t a l l y W o r k b o o k _ A d d i n U n l n s t a l l que se encuen t ran en el moacutedu lo pr ivado del objeto ThisWorkbook Simplemente ha de hacer doble clic en ThisWorkbook del arshychivo xla y Excel le llevaraacute directamente al moacutedulo privado en donde se enshycuentra el coacutedigo tal y como se muestra en la figura 711

A continuacioacuten tenemos un ejemplo sencillo del coacutedigo

Option Explicit Dim cControl As CommandBarButton Priacutevate Sub Workbook_AddinInstall( )

On Error Resume Next Soacutelo por si acaso 1 Elimina cualquier elemento de menuacute existente que pudiese quedar ApplicationCommandBars(Worksheet Menuacute Bar)Controls(Super

Coacutedigo)Delete

Antildeade un nuevo elemento de menuacute y establece una variable CommandBarButton a eacutel

Set cControl =ApplicationCommandBars(Worksheet Menuacute Bar) ControlsAdd

262 Excel Los mejores trucos

Trabajamos con la variable With cControl

Caption = Super Coacutedigo

Style = msoButtonCaption

OnAction = MiGranMacro estaacutendar

End With On Error GoTo 0

Macro almacenada en un moacutedulo

End Sub

Private Sub Workbook_AddinUninstall( )

On Error Resume Next En caso de que ya esteacute eliminada ApplicationCommandBars(Worksheet Menuacute Bar)Controls(Super

Coacutedigo)Delete On Error GoTo 0

End Sub

Archivo Edicioacuten Ver Insertar Formato Depuracioacuten Eiecutar Herramientas Complementos Ventana Ayuda

S j H o i a l (Henal) H] Hoia2 (HoiaJ) H] Hoiai (Hoiauuml) B] Hoia4 (Ho)a4)

9 I 1 H S Iacute Formularios

EUuml UserForml

ThisWorkbook Workbook

Alfabeacutetica | por categoriacuteas ]

(Ntildeame) ThisWorkbook

f3EBBBBfei91iiaiacuteTni False AutoUpdateFrequer 0

ChangeHistoryDura 0

ConflictResolution 1 - xlUserResolutk

Date 1904 False |DisplayDrawingObie -4104 -DisplaylnkCornment True lEnableAutoRecover True

iexclEnvelopeVisible False

xlDisplay5l

Figura 711 Explorador de proyectos con el objeto ThisWorkbook seleccionado para un complemento llamado Administrador de nuacutemerosxla

Eacuteste es todo el coacutedigo que necesita para antildeadir un uacutenico elemento de menuacute

(llamado Super Coacutedigo) al final de la barra de menuacutes de la hoja actual tan pronshy

to como el usuar io instale el componente a traveacutes de la opcioacuten de menuacute

HerramientasgtComplementos Cuando se haga clic en ese elemento de menuacute una

7 Trucos sobre macros

macro (que se encuentra dentro del moacutedulo estaacutendar del complemento) se ejecushytaraacute Recuerde que el coacutedigo anterior debe ser colocado en un moacutedulo privado del objeto ThisWorkbook del complemento

Si por ejemplo desea antildeadir el elemento de menuacute antes del elemento Formashyto puede utilizar el siguiente coacutedigo

Option Explicit

Dim cControl As CommandBarButton

Priacutevate Sub Workbook_AddinInstall( )

Dim iContlndex As Integer

On Error Resume Next Just in case Elimina cualquier elemento de menuacute que nos hayamos dejado ApplicationCommandBars(Worksheet Menuacute Bar)Controls(Super

Coacutedigo)Delete Pasa el iacutendice del menuacute Formato a una variable Utilizamos el meacutetodo FindControl para encontrar su nuacutemero de

iacutendice ID number es utilizado en caso de hacer una personalizacioacuten iContlndex = ApplicationCommandBarsFindControl(ID=30006)Index

Antildeade el nuevo elemento de menuacute y establece la variable CommandBarButton a eacutel

Usamos el nuacutemero pasado a nuestra variable entera para posicionarlo

Set cControl = ApplicationCommandBars(Worksheet Menuacute Bar) ControlsAdd(Before=iContIndex)

Trabajamos con la variable With cControl

Caption = Super Code

Style = msoButtonCaption

OnAction = MiGranMacro Macro almacenada en un moacutedulo estaacutendar End With

On Error GoTo 0 End Sub

En este caso no deberiacutea tener que cambiar el coacutedigo de W o r k b o o k _ A d d i n U n i n s t a l l ( )

En estos ejemplos todo el coacutedigo para el elemento de menuacute se encuentra en W o r k b o o k _ A d d i n I n s t a l l y Workbook_Add inUnIns t a l l Esto no resulta un problema cuando el coacutedigo soacutelo antildeade un elemento de menuacute Sin embargo si quiere antildeadir maacutes de un elemento y quizaacute elementos de submenuacute deberiacutea coloshycar el coacutedigo en un procedimiento (o dos) dentro de un moacutedulo estaacutendar Luego tendriacutea que utilizar un coacutedigo parecido al que le mostramos a continuacioacuten

Priacutevate Sub Workbook_AddinInstall( ) Run AnadirMenus

End Sub

Priacutevate Sub Workbook AddinUninstall( )

264 Excel Los mejores trucos

Run EliminarMenu End Sub

En el moacutedulo estaacutendar escriba un coacutedigo parecido al siguiente

Sub AnadirMenus( ) Dim cMenul As CommandBarControl Dim cbMainMenuBar As CommandBar Dim iHelpMenu As Integer Dim cbcCutomMenu As CommandBarControl

1(1)Elimina cualquiera que exista Debemos usarOn Error Resume next por si no existiera

On Error Resume Next

ApplicationCommandBars(Worksheet Menuacute Bar)Controls(ampNuevo

menuacute)Delete

(2)Establecemos la variable CommandBar a la barra de menuacutes de la hoja Set cbMainMenuBar =

ApplicationCommandBars(Worksheet Menuacute Bar)

1(3)Devolvemos el iacutendice del menuacute Ayuda Podemos usar esto para colocar un elemento de _

menuacute delante de eacutel iHelpMenu = _

cbMainMenuBarControls(Help)Index

1(4)Antildeadimos un control a Worksheet Menuacute Bar antes del menuacute Ayuda Establecemos una variable CommandBarControl a eacutel

Set cbcCutomMenu = _ cbMainMenuBarControlsAdd(Type=msoControlPopup _

Before=iHelpMenu)

(5)Damos un tiacutetulo al control cbcCutomMenuCaption = ampNuevo menuacute

1(6)Con el nuevo control antildeadimos un subcontrol y le damos un tiacutetulo para indicar _

queacute macro va a ejecutar (OnAction) With cbcCutomMenuControlsAdd(Type=msoControlButton)

Caption = Menuacute 1

OnAction = MiMacrol End With

1(6a)Antildeadimos otro subcontrol le damos un tiacutetulo y decimos queacute macro ejecutaraacute

With cbcCutomMenuControlsAdd(Type=msoControlButton) Caption = Menuacute 2 OnAction = MiMacro2

End With Repita el paso 6a para cada elemento de menuacute que desee antildeadir

7 Trucos sobre macros 265

Antildeadimos otro menuacute que formaraacute uno nuevo Establecemos la variable CommandBarControl a eacutel Set cbcCutomMenu = cbcCutomMenuControlsAdd(Type=msoControlPopup) Damos un tiacutetulo al control cbcCutomMenuCaption = ampSiguiente menuacute

Antildeadimos un control al submenuacute que acabamos de crear With cbcCutomMenuControlsAdd(Type=msoControlButton)

Caption = ampGraacuteficos

Faceld = 420

OnAction = MiMacro2 End With

On Error GoTo 0 End Sub

Sub EliminarMenu( ) On Error Resume Next

ApplicationCommandBars(Worksheet Menuacute Bar)Controls(ampNuevo menuacute)Delete

On Error GoTo 0 End Sub

Cuando utilicemos la propiedad OnAction es posible que encuentre probleshymas si hay una macro en el libro del usuario que tenga el mismo nombre que la macro que reside en el complemento Para asegurarnos de que no ocurre esto siempre es una buena idea utilizar un meacutetodo como el siguiente

With cbcCutomMenuControlsAdd(Type=msoControlButton) Caption = ampGraacuteficos Faceld = 420 OnAction = ThisWorkbookNtildeame amp MiMacro2

End With

Al hacer esto nos estamos asegurando de que Excel sepa queacute macro tiene que ejecutar cuando el usuario haga clic en el botoacuten Con estos coacutedigos encontraraacute que es m u y sencillo distribuir y utilizar macros con todo su potencial

CAPIacuteTULO 8

Conectando Excel con el mundo

Trucos 95 a 100

Excel ha tenido desde hace mucho tiempo conexioacuten con otros miembros de la familia Microsoft Office asiacute como con bases de datos Con el crecimiento de Internet Excel ha incorporado funciones de exportacioacuten a HTML haciendo que sea faacutecil publicar informacioacuten creada en esta aplicacioacuten Sin embargo durante los uacuteltimos antildeos Microsoft ha desarrollado algunas funciones que le permiten utilizar Excel como una interfaz para ver informacioacuten publicada en cualquier lugar asiacute como hacer que su informacioacuten pueda ser llevada fuera de Excel y ser vista en cualquier tipo de formulario que desee proporcionando solamente aqueshyllos datos que considere oportunos Al mismo tiempo numerosos programado-res han creado meacutetodos para obtener informacioacuten en Excel y para publicarla fuera de eacuteste permitiendo utilizar hojas de caacutelculo sin necesidad de tener Excel

Cargar un documento XML en Excel Si una persona le enviacutea un archivo XML que contiene datos que se pueden ajustar a tablas no es necesario que tenga que leer todo el texto y las marcas que contiene Puede cargar ese documento directamente en Excel y especificar coacutemo desea presentarlos asiacute como trabajar con ellos utilizando mapas

Extensible Markup Language (XML) se ha convertido en un formato estaacutendar de interconexioacuten durante los uacuteltimos antildeos y resulta algo habitual que las persoshynas y las empresas se enviacuteen entre siacute archivos en este formato Las estructuras sencillas del nuacutecleo de un documento XML hacen que compartir informacioacuten independientemente del software que utilicen las diferentes partes sea m u y sen-

uuml

268 Excel Los mejores trucos

cilio Sin embargo hasta hace poco resultaba difiacutecil superar el t ramo que habiacutea entre los documentos XML y la interfaz a pesar de que existiacutean herramientas geneacutericas ya disponibles Con Excel 2003 todo esto es mucho maacutes sencillo al menos para aquellos datos que puedan ajustarse a una tabla

Este truco utiliza caracteriacutesticas que solamente estaacuten disponibles en la versioacuten Excel 2003 de Windows Las versiones anteriores no soportan

^ todo esto asiacute como las versiones existentes para Macintosh

Comenzaremos con un documento XML de ejemplo como el que se muestra continuacioacuten en el que nos encontraremos un cataacutelogo de libros en ingleacutes

Ejemplo 81 Un sencillo documento XML para hacer un anaacutelisis en Excel

ltxml vers ion=10 encoding=UTF-8gt ltventasgt

ltventagt ltfechagt2 003-10-05ltfechagt ltISBNgt0596 0 053 8 5ltISBNgt ltTitulogt0ffice 2003 XML EssentialsltTitulogt ltPreciogt3495ltPreciogt ltcantidadgt2 0 0ltcantidadgt ltCliente ID=1025gtZorks Booksltclientegt ltventagt

ltventagt ltfechagt2 0 03-10-05ltfechagt ltISBNgt05 96 0 02 92 0ltISBNgt ltTitulogtXML in a Nutshell ltPreciogt3 9 95ltPrecio ltcantidadgt9 0ltcantidadgt ltCliente ID=1025gtZorks ltventagt

ltventagt ltfechagt2 003-10-05ltfechagt ltISBNgt05 96 0 02 3 78ltISBNgt ltTitulogtSAX2ltTitulo ltPreciogt2 9 95ltPrecio ltcantidadgt3 0 0ltcantidadgt ltCliente ID=1025gtZorks Booksltclientegt ltventagt

ltventagt ltfechagt2 0 03-10-05ltfechagt ltISBNgt0596 0 053 85ltISBNgt ltTituloOffice 2003 XML EssentialsltTitulo

2nd EditionltTitulo

Booksltclientegt

8 Conectando Excel con el mundo 269

ltPreciogt3495ltPreciogt ltcantidadgt10ltcantidadgt ltCliente ID=1029gtBooks of Gloryltclientegt ltventagt

ltventagt ltfechagt2003-10-05ltfechagt ltISBNgt0 596 0 02 92 0ltISBNgt ltTitulogtXML in a Nutshell 2nd EditionltTitulogt ltPreciogt3 9 95ltPrecio ltcantidadgt2 5ltcantidadgt ltCliente ID=1029gtBooks of Gloryltclientegt ltventagt

ltventagt ltfechagt2 0 03-10-07ltfechagt ltISBNgt0 5 96 0 02 3 7 8ltISBNgt ltTitulogtSAX2lt Titulo ltPreciogt2 9 95ltPrecio ltcantidadgt5ltcantidadgt ltCliente ID=M1029gtBooks of Gloryltclientegt ltventagt

ltventagt ltfechagt2 0 03-10-18ltfechagt ltISBNgt0596 0 023 78ltISBNgt ltTituloSAX2ltTitulo ltPreciogt2 9 95ltPrecio ltcantidadgt15ltcantidadgt ltCliente ID=2561gtTitulo Waveltclientegt ltventagt

ltventagt ltfechagt2 0 03-10-21ltfechagt ltISBNgt0596 002 92 0ltISBNgt ltTituloXML in a Nutshell ltPrecio39 95ltPreciogt ltcantidadgt15ltcantidadgt ltCliente ID=9021gtBooks ltventagt

ltventasgt

Puede abrir este archivo directamente desde Excel 2003 seleccionando la opshycioacuten ArchivogtAbrir Ello abriraacute el cuadro de diaacutelogo que aparece en la figura 81

Si selecciona la opcioacuten Como una lista XML Excel le advertiraacute de que va a crear su propio esquema para este documento tal y como se muestra en la figura 82 Despueacutes de hacer clic en Aceptar se le presentaraacute el mejor consejo sobre coacutemo presentar la informacioacuten del documento en una hoja de caacutelculo como puede verse en la figura 83

2nd EditionltTitulo

for Youltclientegt

270 Excel Los mejores trucos

uumlj Seleccione coacutemo desea abrir este archivo

Como libro de soacutelo lectura

r Utilizar el panel de tareas Origen XML

Ayuda Aceptar J Cancelar

Figura 81 Abrir un archivo XML en Excel 2003

BHglinfflBSWlMBB^SiSampiK

V El origen XML especificado no se refiere esquema en funcioacuten de los datos del oric

P No volver a mostrar este mensaje

a un esquema 5en XML

Aceptar J j

Excel crearaacute un

Ayuda

Figura 82 Aviso de Excel 2003 acerca de la carencia de referencias a un esquema

| fifliffPifflWBWMc^^ ~Eacute2 echivo Edicioacuten Ver Insertar Formato Herramientas

J J d bdquo j _J J _i T ^ U ~J

Arial - 10 ^ f Ntilde ] S m W M Al bull pound date

1 2

3

4

5

6

I 7 8

9

10

11

A | B C

date -rJISBN ^(Tit le - |

5102003 596005385 Office 2003 XML Essentials

5102003 596002920 XML m a Nutshell 2nd Edition

5102003 596002378 SAX2

5102003 596005385 Office 2003 XML Essentials

5102003 596002920 XML m a Nutshell 2nd Edition

7102003 596002378 SAX2

18102003 596002378 SAX2

21102003 596002920 XML in a Nutshell 2nd Edition

12

13

14

15

16

17

18

19

20

21

9 iexclH 4 bull bull H o j a l ( Hoja2 Hoja3

Listo

Datos Ventarle

s - f l ooo

D 3riceUS _^Jqi

3495

39 Q5

2995

3495

3995

2995

2995

3995

l

A z H l k 100deg euro -og deg8 iexcl s iexcl s _ - lt

E F G

antity -rjcustomer jrJlD bull

200 Zorks Books 1025

90 Zorks Books 1025

300 Zorks Books 1025

10 Books ofGlory 1029

25 Books ofGlory 1029

5 Books ofGlory 1029

15 Ti t leWave 2561

15 Books fo rYou 9021

M

gt tiacute ~

- j f -

H

1 NUM

Jnj2ltiacuteiexcl - _ ff x |

I mdash j

bull m

Figura 83 Datos XML presentados como una lista XML en Excel 2003

Observe que Excel espera que el elemento fecha sea una fecha por lo que las muestra utilizando el formato adecuado es decir que 2003-10-05 queda como 10 5 2003

Una vez que tenga cargado del documento en Excel puede tratar los datos de forma m u y similar a como lo hariacutea con cualquier hoja de caacutelculo de Excel (inser-

8 Conectando Excel con el mundo 271

tando foacutermulas creando rangos con nombre graacuteficos basados en los contenidos etc) Para ayudarle Excel proporciona cierta funcionalidad incorporada para analizar los datos Los cuadros de lista desplegables situados en los encabezados de columna le permiten elegir coacutemo ordenar los datos (de forma predeterminada el orden es el que teniacutea originalmente el documento) Tambieacuten puede activar una fila de totalizacioacuten ya sea desde la barra de herramientas Lista o haciendo clic en cualquier parte de la lista y luego seleccionando la opcioacuten DatosgtListagtFila total Una vez que aparezca en dicha fila podraacute elegir queacute tipo de total prefiere mosshytrar del menuacute desplegable que mostramos en la figura 84

CJUacute poundrchivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana

J J d iquest _ j J plusmn 1 iiquest A -J ^ Uuml

Arial T 10 T H^ - m m ^ ^ Wj euro D11 - f =SUBTOTALES(101D2D9)

1

2

3

4

5

6

7

8

9

10

11 j

A B C D 1 E ^ _

U uuml iexcld -Jgt 100 i bdquodeg8 m _- gt lt

F G

date VJ ISBNtilde T f f iacute t iacute e j rJPriceUS j r jquai i t i ly ^ c u s t o m e r _ ^ J I D ^

5102003 596005385 Office 2003 XML Essentials 3495

5102003 596002920 XML in a Nutshell 2nd Edition 3995

5102003 596002378 SAX2 2995

5102003 596005385 Office 2003 XML Essentials 3495

5102003 596002920 XML in a Nutshell 2nd Edition 3995

7102003 596002378 SAX2 2995

18102003 596002378 SAX2 2995

21102003 596002920 XML in a Nutshell 2nd Edition 3995

+ Total

M iexcl13

14 15

16

^ 18 19

3495 IT Ninguno

Cuenta Contar nuacutemeros Max Miacuten Suma Desvest Var

20 21

1 2 |H 4 bull w H q j a l H o j a 2 Hoja3 |lt Listo

200 Zorks Books 1025

90 Zorks Books 1025

300 Zorks Books 1025

10 Books ofGlory 1029

25 Books ofGlory 1029

5 Books of Glory 1029

15 TitleVVave 2561

15 Books for You 9021

660

I

J P t x t l

5 bull bull I iquestraquo T -iquest

~~~H 1-7

_ j iexcl

i bull i r i NUM iquest

Figura 84 Eleccioacuten de los totales para una lista XML en Excel 2003

Tambieacuten puede actualizar los datos recuperando la informacioacuten a partir de un documento XML que tenga la misma estructura Si dispone de otro docushymento que tenga esa misma estructura puede hacer clic con el botoacuten derecho sobre la lista seleccionar la opcioacuten XMLgtlmportar del menuacute desplegable y elegir un documento diferente Teniendo maacutes datos deberiacutea quedar todo como en la figura 85

Ademaacutes tambieacuten puede exportar datos de nuevo a un archivo XML despueacutes de modificarlos haciendo clic con el botoacuten derecho del ratoacuten sobre la lista y selecshycionando la opcioacuten XMLgtExportar en el menuacute contextual Esto hace de Excel una

272 Excel Los mejores trucos

herramienta de edicioacuten m u y uacutetil para documentos simples en XML y que tengan estructuras tabulares

U J iquest I I J m J i J j y i l K f f f l l ^ ^

bulld Archivo Edicioacuten Ver Insertar Formato Herramientas

J ~J jd _Js _J -Jf _ v iexclK h ~A Jf

Arial 10 - N iacute S S X S

C7 fx SAX2

1 2 3 4 5 6 7

j c T 9 10 11 12 13 14

A B C date j - j lSBN ^JTit le

5102003 596005385 Office 2003 XML Essent i ais 5102003 596002920 XML in a Nutshell 2nd Edition 5102003 596002378 SAX2 5102003 596005385 Office 2003 XML Essentials 5102003 596002920 XML in a Nutshell 2nd Edition 7102003 596002378IacuteSAX2

18102003 596002378 SAX2 21102003 596002920 XML in a Nutshell 2nd Edition

1112003 596002378 SAX2 1152003 596002920 XML in a Nutshell 2nd Edition

Total

15 16 17 18 19 20 21

7 iexclH 4 bull wHojalHoja2 Hoja3 Listo

Datos Ventana

9 amp l Uuml k -4 iaw

- iacute j OOUuml euro -08 deg8 poundF iexclF _ - gt -

D E F ~ 7 G P rice US bullIquantity bullJcustomer y] ID bull

3495 200 Zorks Books 1025 3995 90 Zorks Books 1025 2995 300 Zorks Books 1025 3495 10 Books ofGlory 1029 3995 25 BooksofGlory 1029

I 2995 5 Books ofGlory 1029 2995 15 TitleWave 2561 3995 15 Books for You 9021 2995 65 Amazon 1543 3995 15 Amazon 1783

3495 740

Iltl

gt T bull i

A T ^

H _

gtr NUM

Figura 85 La misma lista XML con los datos actualizados

Para datos sencillos puede confiar normalmente en los consejos de Excel en relacioacuten a los contenidos del archivo y utilizar la vista predeterminada que se recomienda A medida que los datos se compliquen especialmente si contienen fechas o textos que aparezca nuacutemeros (observe que los anteriores ejemplos falshytan los ceros iniciales del campo ISBN) puede que tenga que utilizar esquemas XML para especificar coacutemo deberaacute leer Excel los datos y coacutemo se ajustaraacuten a un mapa dado Para este documento un esquema XML podriacutea ser como el que se muestra en el siguiente ejemplo

Ejemplo 82 Un esquema para los datos de ventas de libros

ltxml version=l0 encoding=UTF-8gt ltxsschema xmlnsxs=httpwwww3org2001XMLSchema elementFormDefault=qualifiedgt

ltxselement name=ventasgt ltxscomplexTypegt

ltxssequencegt

8 Conectando Excel con el mundo 273

ltxselement maxOccurs=unbounded ref=ventagt ltxssequencegt

ltxscomplexTypegt ltxselementgt ltxselement name=ventagt

ltxscomplexTypegt ltxssequencegt

ltxselement ref=fechagt ltxselement ref=ISBNgt ltxselement ref=Tiacutetulogt ltxselement ref=Preciogt ltxselement ref=cantidadgt ltxselement ref=clientegt

ltxssequencegt ltxscomplexTypegt

ltxselementgt ltxselement name=fecha type=xsfechagt ltxselement name=ISBN type=xsstringgt ltxselement name=Titulo type=xsstringgt ltxselement name=Precio type=xsdecimalgt ltxselement name=cantidad type=xsintegergt ltxselement name=clientegt

ltxscomplexType mixed=truegt ltxsattribute name=ID use=required type=xsintegergt

ltxscomplexTypegt ltxselementgt

ltxsschemagt

Observe que el elemento fecha estaacute definido como una fecha y que el eleshymento ISBN estaacute definido como una cadena no como un nuacutemero entero Si empieza abriendo este esquema en vez del documento puede hacer que Excel cara que el documento y preserve los ceros iniciales en el campo ISBN Esta vez crearemos una lista antes de cargar el documento XML comenzando a partir de una hoja de caacutelculo blanco

Para ello debemos abrir el panel de tareas Origen XML Si no estaacute abierto auacuten aacutebralo seleccionando la opcioacuten VergtPanel de tareas o pulsando Control-Fl Lueshygo seleccione la opcioacuten Origen XML del menuacute desplegable que aparece y veraacute algo parecido a lo que se muestra en la figura 86

Para cargar el esquema haga clic en el botoacuten Asignaciones XML Esto abriraacute un cuadro de diaacutelogo como el que se muestra en la figura 87

Haga clic en el botoacuten Agregar para abrir el esquema y luego seleccione uno de la misma forma que se muestra en la figura 88

Si su esquema no restringe que los documentos tengan un uacutenico elemento posible de comienzo Excel le preguntaraacute queacute elemento desea utilizar como raiacutez como puede verse en la figura 89

Como los documentos de este ejemplo comienzan con el elemento ventas elija dicho elemento

274 Excel Los mejores trucos

02 41 J

iexclJJg fmmwmmmmm Archivo

J Arial

Al

1 F 2 3 4 5 6 7 8 9

10 11 12 13 14 15 16 17 18 19 20

r 1

JH 4

Listo

bull bull

A

A

Edicioacuten

-i _J

^

I I

Ver Insertar

J 1 tZ - 10 ^ M

B

H o j a l H o j a 2 H o j a 3

Formato

iquest Iacute T

c

A -

s

Herramientas

_5

^ ^

D

m - j

llaquol

gtatos Ventana

-I

E

Si iquest 000 euro

-gt

Z ) 0 00 00 ^ 0

F

l iacute IW

gt

id iW

bullT

ir

^MJ2ltj| - _ S x |

4Jraquo 100 - laquo r ff |

Origen XML bull x 1

-J uuml Asignaciones XML de este libro

El libro no contiene asignaciones XML ara agregar una asignacioacuten XML al ibro utilice el botoacuten Asignaciones XML

Opciones bull

Asignaciones XML

NUM

Figura 86 Panel de tareas Origen XML

2Sl Asignaciones XML de este (ibro

Nombre

J

I R

_ J

| Espacio de nombre

Agregar i Aceptar i|

1 _M Cancelar

Figura 87 El cuadro de diaacutelogo Asignaciones XML

Despueacutes de hacer clic en Aceptar Excel le avisa de posibles dificultades que pueda tener a la hora de interpretar los esquemas como se muestran el cuadro de diaacutelogo de la figura 810 Un esquema XML es una especificacioacuten enorme que admite numerosas estructuras que no encajan bien con la perspectiva de Excel sobre la informacioacuten por lo que nos encontramos con que tendremos algunas limitaciones

Conectando Excel con el mundo 275

u-mJMmuiiJ Buscar en

-V Mis documentos

recientes

Escritorio

_bdquo

Mis documentos

J MIacute PC

SHSf^^^^^^

08

^chuumlSO lxml

i i H B bull4M dinosaurios xml

^1 S Nombre de archivo

Mis sitios de red I iexcl p o de a r c h j v o

mammmim^^ ^ bull ZJ poundgt bull

zl Todos los oriacutegenes de datos XML 0 J M

4 X -J -J

Nuevo origen

jplusmnJ| Herramientas raquo

| [ Abrir |

Cancelar

Figura 88 Seleccioacuten de un esquema XML

BISE iU El esquema XML seleccionado contiene maacutes de un nodo rafe Microsoft Office Excel soacutelo puede basarse en uno de ellos para crear una asignacioacuten XML

Seleccionar raiacutez

customer date ISBN PriceUS quantity saje

Title

J

J

Figura 89 Seleccioacuten del elemento raiacutez para el esquema

SampSTampVY _xj

Los siguientes elementos de esquema y estructuras no se pueden asignar a una hoja de caacutelculo No se podraacuten ver desde el panel de tareas Origen XML

- any bull - anyAttribute 1 i - Substitution groups

N J gt - Abstract elements - Recursive structures - Mixed content

iquestDesea continuar agregando este esquema al libro

No I Ayuda 1 Figura 810 Aviso sobre el procesamiento del esquema

Excel mostraraacute que el esquema ha sido antildeadido a la hoja de caacutelculo en el cuashydro de diaacutelogo Asignaciones XML que mostramos en la figura 811

276 Excel Los mejores trucos

BB ] Asignaciones XML de este libro

| Espacio de nombre

sales_Map sales ltNo hay espacio de nombre gt

Larnbiar nombre i Agregar Eliminar Aceptar Cancelar

Figura 811 Un esquema cargado como una asignacioacuten XML

Si hace clic en Aceptar volveraacute a la pantalla principal de Excel y el panel de tareas Origen XML mostraraacute un diagrama de la estructura del esquema descrito tal y como se puede ver a la derecha de la figura 812 Ahora que ya tiene la estructura puede distribuir la lista y la manera maacutes sencilla de hacerlo (espeshycialmente con documentos pequentildeos como eacuteste) es arrastrar el icono ventas a la celda A l lo que produciraacute los mismos resultados que vemos en la siguiente figura

bullMicrosoft Ei^Si^^l

Archivo Edicioacuten Ver Insertar Formato Her r amientas Datos Ventana r _ amp X

J _bull A Arial

Al f date

1 A

date yenpound _

mdash I B JISBN mdash1 r ^JTHle

I D | E | F | ^JPricellS Jquantity _-JID Vi

bull U -i 100 ~

_bullbull_ Origen XML

Asignaciones XML de este libro

sales_Map

9 i 10 11 12 13

14 i 15 16 l7 Iacute8

20

77 H 4 bull

Listo

Para asignar elementos de repeticioacuten arrastre los elementos desde el aacuterbol a la hoja de caacutelculo en la que desea que aparezcan los encabezados de datos

Para importar los datos utilice el botoacuten Importar datos XML de la barra de herramientas Lista

bullI H o j a l Hoia2 Hoja3 llt bull i r

Figura 812 Una lista XML creada a partir de la informacioacuten de esquema situada en el panel de tareas Origen XML

8 Conectando Excel con el mundo 277

Tambieacuten puede arrastrar los elementos individualmente si desea v- cambiar el orden o desea colocar las diferentes piezas en diferentes

^ - lugares de la hoja de caacutelculo

Ahora que ya tiene un lugar para los datos es momento de representarlos Puede hacer clic en el botoacuten Importar datos XML de la barra Lista o bien hacer clic con el botoacuten derecho del ratoacuten en la lista y luego seleccionar la opcioacuten XMLgtlmportar Si elige el archivo que utilizamos anteriormente (ej 81) obtenshydraacute los resultados que se muestran en la figura 813 Observe que se han antildeadido los ceros de la parte izquierda del ISBN que ahora ya son texto como deberiacutea ser

| jiexcl fwwWi|Jwii i ipi^^

iquest] Archivo Edicioacuten Ver Insertar Formato Herramientas Datos

J -bull Aacute J _J j J t u -J Aria ^ 10 - |~Ntilde~| jT S W W m r

Al ^ f date

1

iexcll~2~ I 3 I 4

5

I 6

I 7

I 8

9

I 10 I 11

12

A | B | C |

Ventana

m 000 euro

F^Ttrade^

=inj_xj| T _ j i x

i l u 100 - ltbull -

uo o =F =F _ T laquoi

T T F date J J J I S B N zJTitle j r jP r iceUS j r j quaiitiacutety _^J1D ^

51Uuml2G03 IacuteJ596005385 Office 2003 XML Essentials 3495 200 1025

I 5102003 0596002920 XML in a Nutshell 2nd Edition

5102003 r0596002378 SAX2

5102003 t i596005385 Office 2003 XML Es sentiacute ais

5102003T1596002920 XML in a Nutshell 2nd Edition

7102003 0596002378 SAX2

18102003T)596002378 SAX2

2110200313596002920 XML in a Nutshell 2nd Edition

k

13

14

15

16

1 17 I 18

19

20

21

IH 4 bull M H o j a l Hoja2 Hoja3 lt

Listo

3995

2995

3495

3995

2995

2995

3995

90 1025

300 1025

10 1029

25 1029

5 1029

15 2561

15 9021

mdash Orinen XML bull X

Asignaciones XML de este libro

sales Map bull |

y raquo

1 bull

1 bull j bull i

- _ BHB

E3 II

Para asignar elementos de repeticioacuten arrastre los elementos desde el aacuterbol a la hoja de caacutelculo en la que desea que aparezcan los encabezados de datos

Para importar los datos utilice el botoacuten Importar datos XML de la barra de herramientas Lista

i gtiexclr Suma=39158J95 NUM

Figura 813 La lista XML representada con datos

La compatibilidad de Excel con asignaciones XML y listas significa que puede crear hojas de caacutelculo que trabajen con datos que provienen de diferentes archishyvos todo ello con mayor flexibilidad que con formatos anteriores como CSV o archivos delimitados por tabulaciones En lugar de tener que estar conectado a una base de datos para modificar los datos de forma interactiva un usuario pueshyde modificar los archivos XML mientras que esteacute volando en un avioacuten y luego proporcionar dicho archivo a su cliente cuando aterrice Quizaacute el aspecto maacutes interesante de las nuevas funciones de XML de Excel es la flexibilidad mientras

278 Excel Los mejores trucos

que los datos esteacuten en una estructura que se podraacute ajustar a una tabla Excel no pondraacute muchas limitaciones a la hora de aceptar diferentes tipos de documentos Con unos cuantos clics de ratoacuten y sin necesidad de programar puede integrar datos XML dentro de las hojas de caacutelculo

m Q | Guardar en SpreadsheetML y extraer datos C 0 ^ E T f ^ l D e s iacute e E x c e X P s e h a incluido una opcioacuten de exportacioacuten XML

K ^ b ^ l SpreadsheetML proporciona una representacioacuten en XML de sus hojas de caacutelculo incluyendo formatos e informacioacuten de foacutermulas

Aunque existen muchas formas de leer hojas de caacutelculo de Excel sin tener Excel (consulte el truco 100 para obtener maacutes informacioacuten) una de las opciones m aacute s sencillas es expor ta r a a rchivos XML que ut i l icen el vocabu la r io SpreadsheetML de Microsoft SpreadsheetML no es completo (siendo maacutes notable que no existen graacuteficos y coacutedigo VBA) pero representa los componentes baacutesicos de una hoja de caacutelculo incluyendo foacutermulas rangos con nombre y formatos

Este truco utiliza caracteriacutesticas que soacutelo estaacuten disponibles en Excel XP y Excel 2003 para Windows Las anteriores versiones no lo admiten incluyendo las vershysiones actuales de Macintosh

La mejor forma de comenzar con SpreadsheetML es guardar una hoja de caacutelshyculo como XML La hoja de caacutelculo que mostramos que la figura 814 incluye datos foacutermulas nombres de rangos y celdas y algunos formatos simples

Si graba esta hoja de caacutelculo utilizando el formato Hoja de caacutelculo XML (xml) al que puede acceder a traveacutes de ArchivogtGuardar como obtendraacute un gran docushymento XML que contiene las marcas que se muestran en el ejemplo 83

Ejemplo 83 Un documento SpreadsheetML

ltxml version=l0gt ltmso-application progid=ExcelSheetgt ltWorkbook xmlns=urnschemas-microsoft-comofficespreadsheet xmlnso=urnschemas-microsoft-comofficeoffice xmlnsx=urnschemas-microsoft-comofficeexcel xmlnsss=urnschemas-microsoft-comofficespreadsheet xmlnshtml=httpwwww3orgTRREC-html4 0gt ltDocumentProperties xmlns=urnschemas-microsoft-comofficeofficegt

ltAuthorgtSimon StLaurentltAuthorgt ltLastAuthorgtADSMltLastAuthorgt ltCreatedgt2 0 03-12-03T15483 8ZltCreatedgt ltLastSavedgt2 0 04-05-2 3T161117ZltLastSavedgt ltCompanygtAnaya multimedialtCompanygt ltVersiongtll5703ltVersiongt

ltDocumentPropertiesgt ltOfficeDocumentSettings xmlns=urnschemas-microsoft-comofficeofficegt

8 Conectando Excel con el mundo 279

IBM crosoft E

^J Archivo

J J A Arial

1

2

3

4

5

6

7

8

9

10

11

UumlU M 3

14

15

16

17

18

19

20

21

JH i

Listo

Total

Kcel - dinosaur iosKml

Edicioacuten Ver Insertar

uumlm l|f Formato

-3 i ~J - 1 V -al

10 - N K

h -

S f =SUMA(E4E11

A B

Ventas de

Nuacutemero de id Bicho

4627 Diplodocus

3912 Brontosaurus

9845 Triceratops

9625 Vulcanodon

5903 Stegosaurus

1824 Monoclonius

9728 Megalosaurus

8649 Barosaurus

bull M H o j a l Hoja2 Hoja3

ene 04

HBHHWHBI^^S^^^^^-- - bull Herramientas Datos Ventana Z

-J 93 amp z - E S 9 ^J - | ooo euro o8 sect

) ~ D Eacute~1 ~

Precio Cantidad Total

22 50euro 127 285750 euro

1750 euro 74 129500 euro

1200 euro 91 109200 euro

1900 euro 108 205200 euro

1850 euro 63 116550 euro

1650 euro 133 219450 euro

2300 euro 128 294400 euro

1700 euro 91 154700 euro

Total |1514750 euro1

jltl

i i iexclsaacute jy tw if _ -

^

100

S

H

T laquo bull $

A - f e

T~

NUM

T - s x

mdash

_ 1

bull i r

Figura 814 Una hoja de caacutelculo de prueba para SpreadsheetML

ltDownloadComponentsgt ltLocationOfComponents HRef=fileGgt

ltOfficeDocumentSettingsgt ltExcelWorkbook xmlns=urnschemas-microsoft-comofficeexcelgt

ltWindowHeightgt615 0ltWindowHeightgt ltWindowWidthgt84 7 5ltWindowWidthgt ltWindowTopXgt12 0ltWindowTopXgt ltWindowTopYgt3 0ltWindowTopYgt ltProtectStructuregtFalseltProtectStructuregt ltProtectWindowsgtFalseltProtectWindowsgt

ltExcelWorkbookgt ltStylesgt

ltStyle ssID=Default ssName=Normalgt ltAlignment ssVertical=Bottomgt ltBordersgt ltFontgt ltInteriorgt ltNumberFormatgt ltProtectiongt ltStylegt ltStyle ssID=s21gt ltNumberFormat ssFormat=mmm-yygt ltStylegt

280 Excel Los mejores trucos

ltStyle ssID=s23gt ltFont xFamily=Swiss ssBold=1gt

ltStylegt ltStyle ssID=s24gt ltNumberFormat ssFormat=000 ampquot euroampquotgt

ltStylegt ltStylesgt ltNamesgt

ltNamedRange ssName=Bichos ssRefersTo==HojalR4C2R11C2gt ltNamedRange ssName=Cantidad ssRefersTo==HojalR4C4R11C4gt ltNamedRange ssNtildeame=Fecha ssRefersTo==HojalR1C2gt ltNamedRange ssName=ID ssRefersTo==HojalR4C1RllClgt ltNamedRange ssName=Precio ssRefersTo==HojalIR4C3RllC3gt ltNamedRange ssName=Total ssRefersTo==HojalR12C5gt

ltNtildeamesgt ltWorksheet ssName=Hojalgt

ltTable ssExpandedColumnCount=5 ssExpandedRowCount=12 xFullColumns=1

xFullRows=1 ssDefaultColumnWidth=60gt ltColumn ssAutoFitWidtn=0 ssWidth=735gt ltColumn ssAutoFitWidth=0 ssWidth=9675gt ltColumn ssAutoFitWidth=0 ssWidth=48 ssSpan=lgt ltColumn ssIndex=5 ssAutoFitWidth=0 ssWidth=5625gt ltColumn ssAutoFitWidth=0 ssWidth=48 ssSpan=250gt ltRowgt ltCell ssStyleID=s23xData ssType=StringgtVentas deltDataxCellgt ltCell ssStyleID=s21gtltData ssType=DateTimegt2 004-01-

01T00 0000 000ltDataxNamedCell ssName=FechagtltCellgt

ltRowgt ltRow ssIndex=3 ssStyleID=s23gt ltCellxData ss Type= String gtNuacutemero de Id ltDataxCellgt ltCellxData ss Type= String gtBicholtDataxCellgt ltCellxData ss Type= String gtPreciolt DatagtltCellgt ltCellxData ss Type=String gtCantidadltDataxCellgt ltCellxData ss Type= String gtTotalltDataxCellgt ltRowgt ltRowgt ltCellxData ss Type=IINumberIgt4627ltDataxNamedCell ss Name=IDgtlt

Cellgt ltCellgtltData ssType=StringgtDiplodocusltDataxNamedCell

ssName=BichosgtltCellgt ltCell ss StyleID=s24xData ssType=Numbergt22 5ltDataxNamedCell

ss Name=Precio xCellgt ltCellxData ss Type= Number gt127ltDataxNamedCell

ss Name=CantidadxCellgt ltCell ssStyleID=s24 ssFormula==RC[-2]RC[-1]xData

ss Type=Number gt2 857 5ltDataxCellgt ltRowgt ltRowgt ltCellxData ss Type=Number gt3912ltDataxNamedCell ss Name=IDx

Cellgt

8 Conectando Excel con el mundo 281

ltCellgtltData ssType=StringgtBrontosaurusltDatagtltNamedCell ssName=BichosgtltCellgt

ltCell ss StyleID=s24xData ss Type=Number gt17 5ltDataxNamedCell ss Name= Precio xCellgt

ltCellxData ss Type=Number gt74ltDataxNamedCell ss Name=Cantidad xCellgt

ltCell ssStyleID=s24 ssFormula==RC[-2]RC[-1]xData ss Type= Number gt 12 95ltDataxCellgt

ltRowgt ltRowgt ltCellxData ss Type=Number gt9845ltDataxNamedCell ss Name= IDgtlt

Cellgt ltCellxData ss Type=String gtTriceratopsltDataxNamedCell

ssName=BichosgtltCellgt ltCell ss StyleID=s24xData ss Type=Number gt12ltDataxNamedCell

ssName=PreciogtltCellgt ltCellxData ss Type= Number gt91ltDataxNamedCell ss Name=Cantidad

xCellgt ltCell ssStyleID=s24 ssFormula==RC[-2] RC[-1] xData

ss Type= Number gt1092ltDataxCellgt ltRowgt ltRowgt ltCellxData ss Type=Number gt9625ltDataxNamedCell ss Name= IDgtlt

Cellgt ltCellxData ss Type= String gtVulcanodonltDataxNamedCell

ssName=BichosgtltCellgt ltCell ss StyleID=s2 4 xData ss Type= Number gt19ltDataxNamedCe 11

ssName=PreciogtltCellgt ltCellxData ss Type=Number gt108ltDataxNamedCell

ss Name=CantidadxCellgt ltCell ssStyleID=s24 ss Formula==RC [-2] RC [-1] xData

ssType= Number gt2 0 52 ltDataxCellgt ltRowgt ltRowgt ltCellxData ss Type=Number gt5903ltDataxNamedCell ss Name= IDgtlt

Cellgt ltCellxData ss Type= String gtStegosaurusltDataxNamedCell

ss Name= BichosxCellgt ltCell ss StyleID-s24xData ss Type= Number gt18 5ltDataxNamedCell

ssName=PreciogtltCellgt ltCellxData ss Type=Number gt63ltDataxNamedCell ss Name=Cantidad

gtltCellgt ltCell ssStyleID=s24 ss Formula==RC [-2] RC [-1] xData

ss Type=Numbergt1165 5ltDataxCellgt ltRowgt ltRowgt ltCellxData ss Type= Number gt1824ltDataxNamedCell ss Name= IDgtlt

Cellgt ltCellxData ss Type= String gtMonocloniusltDataxNamedCell

ssName=BichosgtltCellgt ltCell ss StyleID=s24xData ss Type=Number gt16 5ltDataxNamedCell

ss Name= PrecioxCellgt

282 Excel Los mejores trucos

ltCellxData ss Type=Number gt133ltDataxNamedCell ss Name=CantidadxCellgt

ltCell ssStyleID=s24 ss Formula==RC [-2] RC [-1] xData ss Type=Numbergt2194 5ltDataxCellgt

ltRowgt ltRowgt

ltCellxData ss Type=Number gt9728ltDataxNamedCell ss Name=IDx Cellgt

ltCellxData ss Type=String gtMegalosaurusltDataxNamedCell ss Name= BichosxCellgt

ltCell ss StyleID=s24xData ss Type=Number gt23ltDataxNamedCell ssName=PreciogtltCellgt

ltCellxData ss Type=Number gt128ltDataxNamedCell ss Name=CantidadxCellgt

ltCell ssStyleID=s24 ss Formula==RC [-2] RC [-1] xData ss Type=Numbergt2 944ltDataxCellgt

ltRowgt ltRowgt

ltCellxData ss Type=Number gt8649ltDataxNamedCell ss Name= IDgtlt Cellgt

ltCellxData ss Type= String gtBarosaurusltDataxNamedCell ssName=BichosgtltCellgt

ltCell ss StyleID=s24xData ss Type=Number gt17ltDataxNamedCell ss Name=PrecioxCellgt

ltCellxData ss Type=Number gt91ltDataxNamedCell ss Name=Cantidad gtltCellgt

ltCell ssStyleID=s24 ssFormula==RC[-2] RC[-1] xData ssType=Numbergt154 7ltDataxCellgt

ltRowgt ltRowgt ltCell ssIndex=4 ssStyleID=s23xData ssType=StringgtTotallt

DataxCellgt

ltCell ssStyleID=s24 ss Formula==SUM(R [-8] CR [-1] C) xData ssType=Numbergt151475ltDataxNamedCell

ssName=TotalxCellgt ltRowgt

ltTablegt

ltWorksheetOptions xmlns=urnschemas-microsoft-comofficeexcelgt ltPageSetupgt ltPageMargins xBottom=0984251969 xLeft=078740157499999996 XRight=078 74 015 74 99999996 XTop=0984 251969gt

ltPageSetupgt ltPrintgt ltValidPrinterInfogt ltHorizontalResolutiongt6 0 0ltHorizontalResolutiongt ltVerticalResolutiongt6 00ltVerticalResolutiongt

ltPrintgt ltSelectedgt ltPanesgt ltPanegt ltNumbergt3ltNumbergt ltActiveRowgtllltActiveRowgt

8 Conectando Excel con el mundo 283

ltActiveColgt4ltActiveColgt ltPanegt

ltPanesgt ltProtectObjectsgtFalseltProtectObjectsgt ltProtectScenariosgtFalseltProtectScenariosgt

ltWorksheetOptionsgt ltWorksheetgt ltWorksheet ssName=Hoja2gt

ltTable ssExpandedColumnCount=256 ssExpandedRowCount=1 xFullColumns=1

xFullRows=l ssDefaultColumnWidth=60gt ltColumn ssAutoFitWidth=0 ssWidth=48 ssSpan=255gt

ltTablegt ltWorksheetOptions xmlns=urnschemas-microsoft-comofficeexcelgt ltPageSetupgt ltPageMargins xBottom=0984251969 xLeft=078740157499999996 xRight=078740157499999996 xTop=0984251969gt

ltPageSetupgt ltProtectObjectsgtFalseltProtectObjectsgt ltProtectScenariosgtFalseltProtectScenariosgt

ltWorksheetOptionsgt ltWorksheetgt ltWorksheet ssName=Hoja3gt

ltTable ssExpandedColumnCount=256 ssExpandedRowCount=1 xFullColumns=l

xFullRows=l ssDefaultColumnWidth=60gt ltColumn ssAutoFitWidth=0 ssWidth=48M ssSpan=255gt

ltTablegt ltWorksheetOptions xmlns=urnschemas-microsoft-comofficeexcelgt ltPageSetupgt ltPageMargins xBottom=0984251969 xLeft=078740157499999996 xRight=078740157499999996 xTop=0984251969gt

ltPageSetupgt ltProtectObjectsgtFalseltProtectObjectsgt ltProtectScenariosgtFalseltProtectScenariosgt ltWorksheetOptionsgt

ltWorksheetgt ltWorkbookgt

La primera liacutenea importante de este documento lt m s o - a p p l i c a t i o n p r o g i d = E x c e l S h e e t gt es una destruccioacuten de procesamiento XML que inshyforma a Windows (en realidad un componente ha antildeadido de Office 2003 para Windows) de que este documento XML se trata de hecho de una hoja de caacutelculo de Excel Cuando Windows muestre el archivo observaraacute que tiene el logotipo de Excel y haciendo doble clic sobre eacutel se abriraacute Excel

El elemento raiacutez del documento Workbook aparece inmediatamente desshypueacutes de la instruccioacuten de procesamiento Sus atributos definen los nombres de espacio utilizados para las diferentes partes de SpreadsheetML Las siguientes liacuteneas componen sobre todo metadatos presentacioacuten en ventana e informacioacuten

284 Excel Los mejores trucos

de formatos y realmente no hay nada interesante que examinar hasta que lleshygue a los elementos Ntildeames y Worksheet El elemento Ntildeames identifica los rangos y celdas con nombre que hay en el documento Los dos elementos NamedRange definen el rango con nombre Cantidad (que se extiende desde la fila 4 columna 4 hasta la fila 11 columna 4) y el rango llamado Total que es justamente la celda que se encuentra en la fila 12 y columna 5

ltNamedRange ssName=Cantidad ssRefersTo==HojalR4C4RllC4gt ltNamedRange ssName=Total ss Ref ersTo= =Hoj al R12C5 gt

El meollo de la hoja de caacutelculo estaacute en el elemento Worksheet Comienza definiendo coacutemo de larga es la tabla de datos actual

ltWorksheet ssName=Hojalgt ltTable ssExpandedColumnCount=5 ssExpandedRowCount=12

xFullColumns=1 xFullRows=lgt

Esta hoja llamada Hojal estaacute compuesta por 5 columnas y 12 filas (los atributos xFullColumns y xFullRows se encuentran en otro espacio de nombres que Excel no utilizaraacute para la distribucioacuten) Luego la informacioacuten actual de la tabla se almacena dentro de los elementos Row y Cell

ltRowgt ltCell ssStyleID=s23xData ssType=StringgtVentas deltDatagtlt

Cellgt ltCell ssStyleID=s21xData ssType =DateTimegt2004-01-

01T00 00 00 000ltDataxNamedCell ssName=FechagtltCellgt

ltRowgt ltRow ssIndex=3 ssStyleID=s23gt ltCellxData ssType=StringgtNuacutemero de Id ltDataxCellgt

Esta fila la primera del hoja de caacutelculo contiene los elementos de tipo celda La primera con el formato s23 (en negrita) y con el tipo de dato String (cadena de texto) contiene el texto Ventas de La segunda celda tiene formato s21 (norshymal) y utiliza el tipo de dato DateTime (fechahora) Sus contenidos vienen dashydos en formato ISO 8601 Esta celda tambieacuten forma parte de un rango con nombre en este caso Fecha La mayoriacutea de los demaacutes elementos Row siguen patrones similares pero existen algunos elementos que merece la pena ver con maacutes atenshycioacuten El segundo elemento Row tiene un atributo extra ssIndex

ltRow s s I n d e x = 3 s s S t y l e I D = s 2 3 gt

Excel no representa filas o columnas vaciacuteas con elementos Row o Cell vashyciacuteos Simplemente antildeade un atributo ss Index a la siguiente fila o celda jun to con su contenido para indicar la ubicacioacuten en la que se encuentra Esto requiere que

8 Conectando Excel con el mundo 285

los programas que procesen este tipo de archivos presten atencioacuten a este detalle cuando formen las tablas La otra cosa importante que hay que mirar son las foacutermulas

ltCell ssStyleID=s22 ss Formula= =SUM (R [ -8] CR[-1]C) xData ss Type=Number gt15147 5ltDataxNamedCell

ssName=TotalgtltCellgt

En la figura 815 esta celda tiene el nombre Total un valor de 1514750 euro y la foacutermula =SUM (E4 E l i ) Todas las partes estaacuten aquiacute Pero deberaacute ensamshyblarlas todas a partir del estilo s22 (definido anteriormente en el documento con un formato de tipo moneda) el valor 151475 y una foacutermula que utilizar refeshyrencias relativas que digan la suma de los valores en la misma columna que esta comenzando ocho filas por encima y terminando una fila por encima

Esto parece no ser m u y divertido a la hora de procesarlo pero actualmente no es tan complicado si tiene una herramienta XML Puede utilizar C Java Perl Python VB o su lenguaje de programacioacuten XML favorito para extraer la inforshymacioacuten aunque nosotros utilizaremos XSLT para la demostracioacuten

Existen numerosos procesadores XSLT en el mercado que van desde simples herramientas de liacutenea de comandos a aplicaciones de ventanas para Windows Quizaacute desee probar Architags XRay disponible en http architagcomxray o SAXON de Michael Kay en httpsaxon sourceforgenet Microsoft ofrece numerosas herramientas XSLT incluyendo una herramienta de liacutenea de comandos que puede obtener en httpmsdnmicrosoftcomlibrary defaultaspurl=downloads listxmlgeneral asp

La hoja de estilo del ejemplo 84 puede ejecutarse contra el documento XML del ejemplo 83 lo que produciraacute un documento mucho maacutes simple como el del ejemplo 85

Ejemplo 84 Una hoja de estilo XSLT para extraer los contenidos del ejemplo 83

ltxslstylesheet version=10 xmlnsxsl=httpwwww3org1999XSLTransform xmlns=httpsimonstlcomnsdinosaurs xmlnsss=urnschemas-microsoft-comofficespreadsheet

gt

ltxsloutput method=xml omit-xml-declaration=yes indent=yes encoding=US-ASCIIgt

ltxslteacutemplate match=gt

286 Excel Los mejores trucos

ltxslapply-templates select=ssWorkbookgt ltxsltemplategt

ltxslteacutemplate match=ssWorkbookgt ltdinosauriosgt

ltxslapply-templates select=ssWorksheet[ssName = Hojal]gt ltdinosauriosgt

ltxsltemplategt

ltxslteacutemplate match=ssWorksheetgt ltfechaxxslvalueacute-of selectassTablessRowssCell[ssStyleID =

s21] gtltfechagt ltxslapply-templates select=ssTable gt

ltxsltemplategt

ltxslteacutemplate match=ssTablegt ltxslrapply-templates select=ssRow[position( ) ampgt 2] gt

lt--Observe que como Excel se salta la fila en blanco la tercera fila estaacute en la posicioacuten 2--gt ltxsltemplategt

ltxslteacutemplate match=ssRow[ssCell[4]]gt ltventagt

ltnumIDxxsl rapply-templates se lect=ss Cell [1] gtltnumIDgt ltbichoxxsl apply-templates se lec t=ssCel l [2] gtltbichogt ltprec ioxxs l apply- templates s e l e c t = ss Cel l [3] gtltpreciogt ltcantidadxxslapply-templa tes se lect=ss Cell [4] x c a n t i d a d gt lt t o t a l x x s l rapply-templates se lect=ss r Cell [5] x t o t a l gt

ltventagt ltxslr templategt

ltxslteacutemplate match=ssRowgt lttotalxxslapply-templates select=ssCell [2] gtlttotalgt ltxsltemplategt

ltxslstylesheetgt

El corazoacuten de la hoja de estilo es la plantilla que hace coincidir todas las filas

con cuatro o maacutes elementos hijos de tipo celda Extrae la informacioacuten a partir de

las celdas y la coloca en elementos XML que reflejan los datos produciendo los

resultados del ejemplo 85

Ejemplo 85 Informacioacuten extraiacuteda de SpreadsheetML a un vocabulario XML personalizado

ltdinosaurios xmlns=h t tp s imons t l comns d inosau r s xmlnsss=urnschemas-microsof t -comoff ice spreadsheetgt ltfechagt2004-01-01T0000000 0 0ltfechagt ltventagt ltNumIDgt4 62 7ltNumIDgt ltbichogtDiplodocusltbichogt

8 Conectando Excel con el mundo 287

ltpreciogt225ltpreciogt ltcantidadgt12 7ltcantidadgt lttotalgt2 8 5 75lttotalgt ltventagt ltventagt ltNumIDgt3 912ltNumIDgt ltbichogtBrontosaurusltbichogt ltpreciogt175ltpreciogt ltcantidadgt74ltcantidadgt lttotalgt1295lttotalgt ltventagt ltventagt ltNumIDgt9 84 5ltNumIDgt ltbichogtTriceratopsltbicho ltpreciogt12lt precio ltcantidadgt91ltcantidadgt lttotalgt1092lttotalgt ltventagt ltventagt ltNumIDgt962 5ltNumIDgt ltbichogtVulcanodonltbicho ltpreciogt19ltprecio ltcantidadgt108ltcantidadgt lttotalgt2 052lttotalgt ltventagt ltventagt ltNumIDgt5 9 03ltNumIDgt ltbichogtStegosaurusltbicho ltpreciogt185ltpreciogt ltcantidadgt63ltcantidadgt lttotalgt11655lttotalgt ltventagt ltventagt ltNumIDgt1824ltNumIDgt ltbichogtMonocloniusltbicho ltpreciogt16 5ltprecio ltcantidadgt13 3ltcantidadgt lttotalgt21945lttotalgt ltventagt ltventagt ltNumIDgt972 8ltNumIDgt ltbichogtMegalosaurusltbicho ltpreciogt2 3 ltprecio ltcantidadgt12 8ltcantidadgt lttotalgt2944lttotalgt ltventagt ltventagt ltNumIDgt8 64 9ltNumIDgt ltbichogtBarosaurusltbicho ltpreciogt17ltprecio ltcantidadgt91ltcantidadgt lttotalgt154 7lttotalgt

288 Excel Los mejores trucos

ltventagt lttotalgt151475lttotalgt ltdinosauriosgt

Son los mismos datos pero de una forma totalmente diferente La informashycioacuten de foacutermulas ha sido descartada en este caso pero dado que Excel proporcioshyna los valores al igual que las foacutermulas esta aplicacioacuten en particular no necesita entender dichas foacutermulas

|^Qiexcl2 Crear hojas de caacutelculo utilizando SpreadsheetML ^ K V ^ H Aunque exportar hojas de caacutelculo como XML es uacutetil Excel tambieacuten permite

K aacute f l importar informacioacuten de la misma forma permitieacutendole crear hojas de caacutelculo utilizando SpreadsheetML

Excel soporta SpreadsheetML tanto para la exportacioacuten como para la imporshytacioacuten proporcionando un camino en ambos sentidos completo para la informashycioacuten Puede abrir un documento SpreadsheetML hacer unos cuantos cambios y volver a abrirlo en Excel si asiacute lo desea (de hecho eacutesta es la uacutenica forma de modishyficar los esquemas para las asignaciones XML) De todas formas quizaacute lo maacutes importante es que puede generar documentos SpreadsheetML a partir de cualesshyquiera datos que tenga lo que proporciona un camino relativamente faacutecil y aushytomatizado para transformar informacioacuten secuencial en hojas de caacutelculo de Excel

Como demostracioacuten el coacutedigo del ejemplo 86 t ransformaraacute el documento XML del ejemplo 85 del truco anterior de nuevo en una hoja de caacutelculo de Excel utilizando XSLT La hoja de estilo del ejemplo 86 utiliza la hoja de caacutelculo origishynal como plantilla produciendo un documento XML m u y similar al del SpreadsheetML que guardamos originalmente desde Excel

El ejemplo omite algunos formatos por lo que encontraraacute algunas diferencias visibles

Este truco utiliza algunas caracteriacutesticas que soacutelo estaacuten disponibles en Excel XP y Excel 2003 para Windows Las versiones anteriores no son compatibles con esto ni siquiera las versiones conocidas para Macintosh

Ejemplo 86 XSLT para convertir el vocabulario personalizado XML de nuevo a SpreadsheetML

ltxslstylesheet version=10 xmlnsxsl=httpwwww3org1999XSLTransform xmlnsd=httpsimonstlcomnsdinosaurs

8 Conectando Excel con el mundo 289

xmlnsss=urnschemas-microsoft-comofficespreadsheet xmlns=urnschemas-microsoft-comofficespreadsheet

gt

ltxsloutput method=xml omit-xml-declaration=no indent=yes encoding=US-ASCIIgt

ltxslteacutemplate match=gt ltxslapply-templates select=ddinosaurios gt

ltxsltemplategt

ltxslteacutemplate match=ddinosauriosgt

ltxslrprocessing-instruction name=mso-applicationgtprogid=ExcelSheetltxslprocessing-instructiongt ltWorkbook xmlns=urnschemas-microsoft-comofficespreadsheet xmlnso=urnschemas-microsoft-comofficeoffice xmlnsx=urnschemas-microsoft-comofficeexcel xmlns ss=urn schemas-microsof t-com-of fice spreadsheet xmlnshtml=httpwwww3orgTRREC-html40gt ltDocumentProperties xmlns=urnschemas-microsoft-comofficeofficegt

ltAuthorgtSimon StLaurentltAuthorgt ltLastAuthorgtSimon StLaurentltLastAuthorgt ltCreatedgt2 003-12-03T15483 8ZltCreatedgt ltLastSavedgt2 0 03-12-03T15574 6ZltLastSavedgt ltCompanygtAnaya MultimedialtCompanygt ltVersiongtll5606ltVersiongt

ltDocumentPropertiesgt ltExcelWorkbook xmlns=urnschemas-microsoft-comofficeexcelgt

ltWindowHe ight gt615 0 ltWindowHe ight gt ltWindowWidthgt8475ltWindowWidthgt ltWindowTopXgt12 0ltWindowTopXgt ltWindowTopYgt3 0ltWindowTopYgt ltProtectStructuregtFalseltProtectStructuregt ltProtectWindowsgtFalseltProtectWindowsgt

ltExcelWorkbookgt ltStylesgt

ltStyle ssID=Default ssNtildeame=Normalgt ltAlignment ssVertical=Bottomgt ltBordersgt ltFontgt ltInteriorgt ltNumberFormatgt ltProtectiongt ltStylegt ltStyle ssID=s21gt ltNumberFormat ssFormat=mmm-yygt ltStylegt ltStyle ssID=s22gt ltNumberFormat ssFormat=ampquot$ampquot000gt ltStylegt

ltStylesgt

290 Excel Los mejores trucos

ltWorksheet ssName=Hojalgt ltTable ssExpandedColumnCount=5

ssExpandedRowCount=count(dventa)+4 xFullColumns=n1 xFullRows=lgt ltColumn ssAutoFitWidth=0M ssWidth=735gt ltColumn ssAutoFitWidth=0 ssWidth=9675gt ltColumn ssIndex=5 ssAutoFitWidth=0 ssWidth=5625gt ltRowgt ltCellxData ssType=StringgtVentas de ltDataxCellgt ltCell ssStyleID=s21gtltData ssType=DateTimexxslvalueacute-of

select=d fechaxDataxCellgt ltRowgt ltRow ssIndex=3gt ltCellxData ss Type=String gtNuacutemero IdltDataxCellgt ltCellxData ss Type=String gtBicholtDataxCellgt ltCellxData ss Type=String gtPrecioltDataxCellgt ltCellxData ss Type=String gtCantidadltDataxCellgt ltCellxData ss Type=String gtTotalltDataxCellgt

ltRowgt

ltxslapply-templates select=dventa gt

ltRowgt ltCell ss Index=4xData ss Type=StringgtTotal ltDataxCellgt ltCell ssStyleID=s22 ssFormula==SUM(R[-count(drventa)]CR[-

1] C) xData ssType=NumberxDataxCellgt ltRowgt

ltTablegt

ltWorksheetOptions xmlns=urnschemas-microscft-comofficeexcelgt ltPrintgt ltValidPrinterInfogt ltHorizontalResolutiongt6 0 0ltHorizontalResolutiongt ltVerticalResolutiongt6 0 0ltVerticalResolutiongt

ltPrintgt ltSelectedgt ltPanesgt ltPanegt ltNumbergt3ltNumbergt ltActiveRowgt12ltActiveRowgt ltActiveColgtlltActiveColgt

ltPanegt ltPanesgt

ltProtectObjectsgtFalseltProtectObjectsgt ltProtectScenariosgtFalseltProtectScenariosgt

ltWorksheetOptionsgt ltWorksheetgt ltWorksheet ssName=Hoja2gt

ltWorksheetOptions xmlns=urnschemas-microsoft-comofficeexcelgt ltProtectObjectsgtFalseltProtectObjectsgt ltProtectScenariosgtFalseltProtectScenariosgt

ltWorksheetOptionsgt ltWorksheetgt

8 Conectando Excel con el mundo 291

ltWorksheet ssName=Hoja3gt ltWorksheetOptions xmlns=urnschemas-microsoft-comofficeexcelgt ltProtectObjectsgtFalseltProtectObjectsgt ltProtectScenariosgtFalseltProtectScenariosgt ltWorksheetOptionsgt

ltWorksheetgt ltWorkbookgt ltxsltemplategt

ltxslteacutemplate match=dventagt ltRowgt ltCellxData ssType=Numberxxslvalue-of select=IdNumID gtlt

DataxNamedCell ss Name=IDgtltCellgt ltCellgtltData ssType=Stringxxslvalue-of select=dBicho gtlt

DataxNamedCell ss Name= Bichos xCellgt ltCell ssStyleID=s22gtltData ssType=Numberxxslvalue-of

select=dPrecio gtltDatagtltNamedCell ssName=PreciogtltCellgt

ltCellxData ss Type=Number xxsl value-of select=d Cantidad gtlt DataxNamedCell ss Name=Cantidad gtltCellgt

ltCell ssStyleID=s22 ssFormula==RC[-2]RC[-1]xData ss Type=Number xxsl value-of select=d total gtltDataxCellgt

ltRowgt ltxsltemplategt

ltxslteacutemplate match=dfecha gt ltxslteacutemplate match=dtotal gt

ltxslstylesheetgt

Merece la pena prestar atencioacuten a algunas partes de este ejemplo En primer lugar observe que el SpreadsheetML estaacute incrustado en el XSLT es decir forma parte de la hoja de estilo No hay ninguna parte de SpreadsheetML que no pueda volver a crear utilizando este meacutetodo la instruccioacuten de procesamiento que ya mencionamos anteriormente y que indica a Windows de que se trata de una hoja de caacutelculo de Excel Para ello debe utilizar lo siguiente

ltxslprocessing-instruction name=mso-applicationgtprogid=ExcelSheetltxslprocessing-instructiongt

Dado que XLST no permitiraacute utilizar el espacio de nombres predeterminado (sin prefijo) para hacer referencia al contenido que tiene un espacio de nombres todas las referencias al contenido en el documento de edicioacuten tienen ahora el prefijo d como en dventa dfecha etc

Ademaacutes dado que los rangos con nombre pueden variar dependiendo del nuacuteshymero de elementos a la venta en el original esta hoja de estilo no generaraacute el elemento Ntildeames y sus contenidos Excel volveraacute a crear los rangos con nombre a partir de los elementos NamedCell en cualquier caso De nuevo el corazoacuten de

292 Excel Los mejores trucos

esta hoja de estilo es la parte que genera los elementos Row y Cell como puede verse a continuacioacuten

ltxslteacutemplate match=dventagt ltRowgt ltCellxData ss Type= Number xxsl value-of select=ldnumID gtlt

DataxNamedCell ss Name=IDgtltCellgt

El elemento xshtemplate extraeraacute cada elemento de venta en el original y proshyduciraacute un elemento Row que contenga los elementos Cell que concuerden con sus contenidos Si abre en Excel el SpreadsheetML que produce esta hoja de estilo (muy parecido al del ejemplo 83 aunque quitando los rangos con nombre y algunos formatos) obtendraacute el resultado que se muestra en la figura 815

I S M

u J

crosoft E

Archivo

_ A Arial

1 1 I 2

I 3 4 5 6 7 8 9 10 11 12

uumlil iexcl14 15

16 17 18 19 20 21

Listo

B13 A

veritas d

^^S^^^BS Edicioacuten Ver Insertar

- j _J j ~i t a

- 10 - N

fx

B e

Nuacutemero de Id Bicho 4627 D iexclpiacuteo do cus 3912 Brontosaurus 9845 Triceratops 9625 Vulcanodon 5903 Stegosaurus 1824 Mono clon ius 9728 Megalosaurus 8649 Barosaurus

1

bull H H o j a l Hoja2 Hoja3

w iexcliexcliexclsect Formato

K

ene-

iquest -

sect

zr 114

F

deg trade |

BW^-T^-- bullbull- Herramientas Datos Ventana

J - - reg - i - m m m d - iacute ooo euro -08 i

_ _ _ __

recio Cantidad Total 2250 euro 127 285750 euro 1750 euro 74 129500 euro 1200 euro 91 109200 euro 1900 euro 108 205200 euro 1850 euro 63 116550 euro 1650 euro 133 219450 euro 2300 euro 128 294400 euro 1700 euro 91 154700 euro

Total 1514750 euro

lltl

i iexcl iexcld-iw iw

G

Iacute 100

_ gt

__

- lt -^ r

__

i NUM

- - fi X

_

_l

bull i r

Figura 815 La hoja de caacutelculo de prueba despueacutes de que sus datos hayan ido desde SpreadsheetML a otro vocabulario y de nuevo de vuelta

SpreadsheetML puede que no sea m u y bonito pero existen numerosas razoshynes por las que desearaacute utilizarlo Para empezar grabar como SpreadsheetML le proporciona un mejor acceso a la informacioacuten de asignaciones XML que ya desshycribimos en el t ruco anterior Y a largo plazo lo maacutes impor tante es que SpreadsheetML es portable por lo que puede procesarlo y generarlo en cualquier ordenador que disponga de herramientas para XML

8 Conectando Excel con el mundo 293

Importar datos directamente en Excel Utilizando los servicios Web de Amazon como origen de los datos podemos integrar faacutecilmente informacioacuten en vivo acerca de por ejemplo libros de texto en hojas de caacutelculo de Excel Este ejemplo importaraacute datos referentes a la clasificacioacuten de ventas para un libro en particular y calcularaacute la media de eacutesta

Este truco se basaraacute en la caracteriacutestica de Excel para hacer consultas Web por lo que necesitaraacute Excel 97 o una versioacuten superior La herramienta de consulshytas para Web de Excel transforma tablas sencillas en HTML en hojas de caacutelculo

Para que esto funcione necesitaraacute darse de alta en Amazon y obtener una identificacioacuten de asociado Para ello vaya a la paacutegina http wwwamazoncomassociates Luego tendraacute que ir a la paacutegina http amazoncomwebservices y hacer clic en el viacutenculo Apply for a free developers token Ambos pasos son necesarios para poder utilizar los servicios Web de Amazon

El siguiente coacutedigo utiliza numerosas caracteriacutesticas tanto de los servicios Web de Amazon como de Excel Una vez que vea coacutemo funcionan juntos podraacute crear raacutepidamente sus propias consultas

Este truco comenzaraacute utilizando una consulta estaacutendar de tipo XMLHTTP Lo que queremos es analizar la clasificacioacuten de ventas de la serie de libros de trucos de OReilly por lo que construimos una consulta estaacutendar para recuperar dichos resultados

httpxmlamazoncomoncaxml3t=insert associate tag ampdev-t=insert developer tokenampPowerSearch=publisherOReilly20and20keywords Hackamptype=heavyampmode=booksampf=xml

Esto requiere del uso del sistema de buacutesqueda avanzada de Amazon para esshypecificar una editorial (OReilly) y una palabra clave (Hack) La siguiente tarea es obtener los datos de respuesta de Amazon de una forma en la que Excel pueda trabajar con ellos Dado que las consultas Web de Excel funcionan utilizando HTML sencillo la respuesta que obtenemos deberaacute ser transformada Como ya hicimos en los dos uacuteltimos trucos las hojas de estilo XSL seraacuten el meacutetodo maacutes raacutepido para conseguir esto Coloque el siguiente coacutedigo en un archivo llamado excel_SalesRankxls Este archivo limitaraacute la respuesta de Amazon a aquellos camshypos que sean necesarios convirtiendo todo en HTML

ltxml version=10 gt ltxslstylesheet version=lO xmlnsxsl=httpwwww3org1999XSL Transformgt

uuml

294 Excel Los mejores trucos

ltxsl output method=htmlgt ltxs l t eacutempla te match=gt lthtml xmlnso=urnschemas-microsof t -comoff ice off ice xmlnsx=urnschemas-microsof t -comoff iceexcel xmlns=httpwwww3orgTRREC-html40gt ltbodygt lttable id=basicgt lttrgt

ltth bgcolor=cccccc colspan=3gtSales Dataltthgt lt t rgt lttrgt

ltth bgcolor=99 9 99 9gtASINltthgt ltth bgcolor=9 99 999gtTit leltthgt ltth bgcolor=999999gtSales Rankltthgt

lt t rgt ltxs l fo r -each se lec t=Produc t In fo De ta i l s gt lttrgt

lt t d x x s l value-of se lect=Asin gtlttdgt lt t d x x s l v a l u e - o f select=ProductName gtlttdgt lt t d x x s l v a l u e - o f select=SalesRank gtlttdgt

lt t rgt ltxslfor-eachgt lt t r x t d c o l s p a n = 3 x t d gt lt t r gt lttrgt

lttd bgcolor=ffccOO colspan=2 a l ign=r igh t gt ltbgtAverage Sales Rankltbgt

lttdgt lttd bgcolor=ffccOOgt=ROUND(AVERAGE(C3Cltxslvalue-of

select=count(ProductlnfoDetails) + 2 gt)0)lttdgt lttrgt

lttablegt ltbodygt lthtmlgt ltxsltemplategt ltxslstylesheetgt

Este archivo recibe la respuesta AWS y la convierte en una tabla sencilla HTML La seccioacuten x s l f o r - e a c h hace un bucle que recorre el nodo Details y antildeade una fila la tabla para cada resultado Una vez que transfiera este archivo a un servidor accesible deberiacutea ser capaz de ver los resultados de la transformacioacuten en un explorador de Internet simplemente especificando la URL del archivo XSL en el campo Direccioacuten Simplemente modifique la URL del uacuteltimo paso reemplazanshydo f =xml por f = h t t p e x a m p l e c o m e x c e l _ S a l e s R a n k x s l

httpxmlamazoncomoncaxml3t = insert associate tagampdev-t = insert developer tokenampPowerSearch=publisher0Reilly20and20keywords Hackamptype=heavyampmode=booksampf=httpexamplecomexcel_SalesRankxsl

Deberiacutea poder ver una tabla como la que se muestra en la figura 816 con los datos recuperados de la consulta anterior Observe que la uacuteltima celda de la tabla

8 Conectando Excel con el mundo 295

contiene una funcioacuten de Excel Puede resultar algo extrantildeo en este momento pero tiene un propoacutesito m u y importante una vez que esteacute dentro de Excel

Archivo Edicioacuten Ver

_ Atraacutes

Direccioacuten | httpxml-na

1 A M^Jtiacutegfc | 0 5 9 6 0 0 4 4 7 8

0 5 9 6 0 0 4 6 0 5

0 5 9 6 0 0 4 6 1 3

SsJ uuml s t o

avoritos

amznxsft

Herramientas Ayuda

Buacutesqueda Favoritos | J f Multimedia ^

omoncaxml3t=insert20associate20tag208(dev-t

Sales data

Google Hacks

M a c O S X H a c k s

Linux Server Hacks

- - =insert20developer20tokenj J ^Jj Ir

^aacuteSife

Average Sales Raiik= =ROUND(AVERAGE(C3C5)0)

14

278

7 6 3

mmmm

pound Mi PC

M Viacutenculos

1

raquo

J

J

Figura 816 Tabla en HTML con los datos de ventas

Para adjuntar ambas aplicaciones utilice un archivo de consultas de Excel (IQY) Este archivo contendraacute toda la informacioacuten referente a la consulta inclushyyendo la URL que a p u n t a a los da tos Cree un nuevo archivo l lamado amzn_avg_salesiqy y antildeada el siguiente coacutedigo

WEB 1 httpxmlamazoncomoncaxml3t=insert associate tagampdev-t=insert developer tokenampPowerSearch=publisherOReilly20and20keywords Hackamptype=heavyampmode=booksampf=httpexamplecomexcel_SalesRankxsl

La primera liacutenea le indica a Excel que se trata de una consulta Web El 1 de la segunda liacutenea indica a el nuacutemero de versioacuten de la consulta Web (siempre debe estar en 1) Luego aparece la URL de la consulta AWS que incluye el archivo XSL Guarde el archivo y acueacuterdese de su ubicacioacuten

Ejecutar el truco

Para ejecutarlo haga doble clic en el archivo amzn_avg_salesiqy Eso haraacute que Excel lo abra contacte con la URL y genere una hoja de caacutelculo como la de la figura 817

296 Excel Los mejores trucos

yiexcl^mmmm^^^^^^^m^M^m-- bull 41 J Aria

1 2

3 4

5 6 7 8 9 10 11 12 13 14 15

16

MU 4

Listo

Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana l

- ^ j j J j 1 d u - J O 53 bullbullgtbull E

- 10 - M T 5 m 3 3 ^ j -ff 000 euro -oo dego

H21 - pound

A B C D

Sales data $iacute t^V^

596004478 Google Hacks 14

596004605 M a c 0 S X H a c k s 278

596004613 Linux S e rver Hac k s 763

Average Sales Rank 352

bull W amzn_avg_sales | i j

l IF

LEacute 100

T bull

_

| NUM

^|nL)| 5 x

w v f

laquoiquest ~

__ __

mdash

w

gtr

Figura 817 Hoja de caacutelculo de Excel con los datos de clasificacioacuten de ventas

Ahora ya tiene algunos datos uacutetiles la clasificacioacuten media de ventas de los libros en una aplicacioacuten ideal para manipular y analizar los datos Puede actuashylizar los datos en cualquier momento haciendo clic con el botoacuten derecho del rashytoacuten en cualquier celda de la hoja de caacutelculo y eligiendo la opcioacuten Actualizar datos

El truco del truco

La parte importante de este truco es conocer coacutemo obtener los datos directashymente de AWS en Excel Una vez dentro de Excel los datos estaacuten al alcance de todas las funciones que puede ofrecernos Excel caacutelculos graacuteficos etc A contishynuacioacuten veremos algunos meacutetodos raacutepidos para extender este ejemplo

Hacer que la consulta sea dinaacutemica

En vez de limitar los datos a informacioacuten estaacutetica construida dentro de una consulta de un archivo IQY podemos antildeadir un poco de interactividad Suponshygamos que tenemos una lista de coacutedigos de libros y deseamos conocer la media de la clasificacioacuten de ventas pero no disponemos de la lista en el momento en que construimos el archivo IQY Excel ofrece la posibilidad de preguntar al usuario por cierta informacioacuten antes de realizar la consulta Web

El uacutenico cambio que necesita hacer es colocar la informacioacuten preguntada denshytro de la URL de la consulta Web en el lugar en el que desee que aparezca la

8 Conectando Excel con el mundo 297

entrada del usuario Para ello cambie la URL que se encuentra dentro del archivo amzn_avg_salesiqy a lo siguiente

http xml amazon comoncaxml3t = insert associate tagampdev-t = insert developer tokenampPowerSearch=isbn[ISBNIntroduzca una lista de ISBN separados por el signo de barra vertical (|)]amptype=heavyampmode=booksampf=httpexamplecomexcel_SalesRankxsl

Ahora se le pediraacute que introduzca una lista de ISBN al abrir el archivo como puede verse en la figura 818

3] Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana Z

Ai aacute ~J A- S

f

MM

4j[

JM raquo A T |

i pound 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 ~1

H 4 bull H amzn_avg_sales

Introducir

DBBDKEESI^ Introduzca una lista de ISBN separados por el signo de barra vertical (|)

3J f Usar este valor o referencia para futuras actualizaciones

llaquol nr

Figura 818 Cuadro de diaacutelogo para preguntar los ISBN

Si no se acuerda de ninguno puede probar con los siguientes

1565927141|0596003595|0596002246 | 0596002505

Con ello deberiacutea obtener la media de la clasificacioacuten de ventas para los ISBN que haya introducido iexclY ademaacutes seraacute diferente cada vez

Utilizar datos diferentes

Como el ejemplo anterior cambiar los datos con los que estaacute trabajando es simplemente otra manera de cambiar la URL para la consulta AWS Pero si desea

298 Excel Los mejores trucos

trabajar con un conjunto diferente de datos (como el coste de cada elemento en vez de la clasificacioacuten de ventas) necesita modificar un poco la hoja de estilo XSL

Para ver hasta queacute punto la hoja de estilo puede marcar la diferencia cree un nuevo archivo llamado excel_PriceDiffxls y antildeada el siguiente coacutedigo

ltxml version=10 gt ltxslstylesheet version=10 xmlnsxsl=httpwwww3org1999XSL Transforma ltxsloutput method=htmlgt ltxslteacutemplate match=gt lthtml xmlnso=urnschemas-microsoft-comofficeoffice xmlnsx=urnschemas-microsoft-comofficeexcel xmlns=httpwwww3orgTRREC-html40gt ltbodygt lttable id=basicgt lttrgt

ltth bgcolor=cccccc colspan=4gtDatos de ventasltthgt lttrgt lttrgt

ltth bgcolor=9 9999 9gtISBNltthgt ltth bgcolor=M9 99 9 99gtTituloltthgt ltth bgcolor=999999gtPrecio originalltthgt ltth bgcolor=999999gtPrecio de Amazonltthgt

lttrgt ltxslfor-each select=ProductlnfoDetailsgt lttrgt lttdgt

ltxslvalue-of select=Asin gt lttdgt lttdgt

ltxslvalue-of select=ProductName gt lttdgt lttdgt

ltxslvalue-of select=ListPrice gt lttdgt lttdgt

ltxslvalue-of select=OurPrice gt lttdgt lttrgt ltxslfor-eachgt lt t r x t d colspan=M3 gt lt t d x t r gt lttrgt

lttd bgcolor=ffccOO colspan=3 a l ign=r igh t gt ltbgtMedia del precio originalltbgt

lttdgt lttd bgcolor=ffccOOgt=ROUND(AVERAGE(C3Cltxslvalue-of

select=count(ProductlnfoDetails) + 2 gt)2) lttdgt

lttrgt lttrgt

8 Conectando Excel con el mundo 299

lttd bgcolor=ffccOO colspan=3 align=rightgt ltbgtMedia del precio de Amazonltbgt

lttdgt lttd bgcolor=ffccOOgt=ROUND(AVERAGE(D3Dltxslvalue-of

select=count(ProductlnfoDetails) + 2 gt)2) lttdgt

lttrgt lttablegt ltbodygt lthtmlgt ltxsltemplategt ltxslstylesheetgt

Transfiera este archivo XSL a un servidor puacuteblico y anote la URL Luego cree un nuevo archivo de consulta llamado amzn_price_diffiqy y utilice el mismo coacutedigo de ejemplos anteriores pero cambiando la variable f = por la URL de la nueva hoja de estilo Abra el archivo y deberiacutea haber una nueva hoja de caacutelculo con la lista de precios y la lista de precios de Amazon tal y como se muestra en la figura 819

bulllaquobull -aacutei j

crosoft Exce - - | J ^ i 4 i | | | | | g l l i lSIIISIl Archivo Edicioacuten Ver Insertar Formato

_ ei _iquest _J - i JL v

Arial raquo 10 -

iexcl 1

2 3 4 5 6

7 8 9

10 11 12 13 14 15 16 17 18 19 20 21

MU 4

[Listo

H35 - f

A

ISBN Tiacutetulo 596002246 Web Services

4iquest S bull

U K S

Herramientas

- -1 ~Jh T

m m

B

= iquesti

Datos de ventas

Essentials (OReilly XML) 596003595 Writing Excel Marcos with VBA 2nd Edit 596002505 Proqramminq

1565927141 Excel 2000 iexcln

bull w H o j a l

NETWeb Services a Nutshell A Power User s

Datos Ventana

53 ^ s - il i i U - | 000 euro oo ~dego i p W

~ c

Iacute J gt 100

T ^ T

~~~^

T bull

iquesti -

Precio original Preda de Amazon $2995

on $3495 $3995

Quick Reference $2995

Media del precio original Media del precio de Amazon

M NUM

$2097 $2447 $2797 $2097

$3370 $2360

1

mdash

_ bull

bull i n

Figura 819 Hoja de caacutelculo Excel con los datos sobre los precios

300 Excel Los mejores trucos

Resultados con graacuteficos

Una vez que los datos estaacuten en Excel es m u y faacutecil crear graacuteficos para hacerse una idea de queacute significan los datos de un vistazo Veamos coacutemo antildeadir un graacuteshyfico la hoja de caacutelculo

1 Basaacutendonos en el ejemplo uacuteltimo ejecute el archivo amzn_price_diffiqy Deberiacutea ver los datos que incluyen una lista de libros jun to con la lista de precios originales y de precios de Amazon

2 A continuacioacuten seleccione las celdas del tiacutetulo precio original y precio de Amazon

3 Vaya a lnsertargtGraacutefico con lo que apareceraacute el asistente para graacuteficos

4 Haga clic en Finalizar

Ahora deberiacutea haber conseguido una representacioacuten graacutefica m u y uacutetil de los graacuteficos (figura 820)

bullMicrosoft EacuteKCel - Iacute M Iacute Eacute Iacute Eacute I

Archivo Edicioacuten Ver Insertar Formato Herramientas Graacutefico Ventana

Arial

Atea del graacutefico -

- 12 gt - A - j

1 i 2 i 3 j 4 1

~5i 6 i 7 1 8~] 9 1

iacuteol Til

12]

iT] 15

111 i7] 18 1 19 i 20T

21 1

23j

U 4

Listo

bull I I lB i i i l 596002246Ueb Senices Esseiiais (0ReiHy XML) 596003595

596002505

Datos de ventas

bull bull bull bull bull bull bull bull bullam Writing Excel Marcos with VBA 2nd Edition Pro g ra m m i n g N ET Web Se rviexclc e s

1565927141 [Excel 2000 in a Nutshell A Power Users Quick Reference

Media del precio original Media del precio de Amazon

$5000 $4000 $3000 $2000 $1000

$000

D Precio original

aprecio de Amazon

Web Services Writing Excel Programming Excel 2000 in Essentials Marcos with NET Web a Nutshell A

(OReilly XML) VBA2nd Services Power Users Edition Quick

Reference

bull bull l K _ H p j a l Iacutelt1 Aacuterea del graacutefico |

p r e c i o original Precio de Amazon T $2995 $2097) $2995

$3495

$3995

$2995

$2097

$2447 $2797

$2097

$3370 $2360

plusmniexclr

Figura 820 Un graacutefico con los precios

8 Conectando Excel con el mundo 301

Acceder a servicios Web SOAP desde Excel Si sus hojas de caacutelculo necesitan acceder constantemente a datos actualizados necesitan acceder a servicios que estaacuten alojados en otros ordenadores el soporte para servicios Web de Excel le permitiraacute estar conectado

Los servicios Web basados en SOAP han sido una pieza clave de Microsoft en sus planes para la plataforma NET asiacute como kits de herramientas comunes de otros fabricantes SOAP es un protocolo que utiliza XML para trasmitir informashycioacuten entre sistemas En el caso que veremos aquiacute es utilizado para llamar a proshycedimientos y devolver valores La especificacioacuten WSDL (Web Service Definition Language) describe los servicios Web de forma que las aplicaciones puedan coshynectarse entre ellas faacutecilmente La herramienta Web Service References de Microsoft puede coger un archivo WSDL y generar coacutedigo VBA que su aplicacioacuten puede utilizar para acceder a servicios Web basados en SOAP

Este truco utiliza funciones de Excel que soacutelo estaacuten disponibles en sus versiones XP y 2003 para Windows Las versiones anteriores no son compatibles con esto ni siquiera las versiones conocidas para Macintosh

Para poder utilizar este truco es necesario descargar el Office Web Services Toolkit Dado que la ubicacioacuten cambia continuamente Microsoft lo mejor es ir a httpwwwmicrosoftes y luego utilizar la paacutegina de buacutesqueda o la paacutegina de descargas y buscar por Office Web Services Toolkit Existen diferentes versiones para Office XP y 2003 Necesita instalar este programa siguiendo las directrices que vienen con eacutel para luego poder trabajar con este truco

Una vez que lo haya instalado puede comenzar a conectar sus hojas de caacutelcushylo con servicios Web Para acceder a la herramienta Web Service References (asiacute es como se llama dentro de Excel) debe abrir Visual Basic yendo a la opcioacuten HerramientasgtMacrogtEditor de Visual Basic y luego en el menuacute Herramientas encontraraacute la opcioacuten Web Service References Si selecciona esta opcioacuten se abriraacute el cuadro de diaacutelogo que se muestra en la figura 821

Puede utilizar las funciones de buacutesqueda de la parte superior izquierda de este cuadro de diaacutelogo para encontrar servicios a traveacutes del sistema de descubrimienshyto universal de Microsoft a traveacutes del servicio Description and Integration (UDDI) o puede introducir una URL para el archivo WSDL en la parte inferior izquierda Puede encontrar un l istado de servicios puacuteblicos en la direccioacuten h t t p xmethodsnet aunque deberiacutea asegurarse de que los servicios todaviacutea funcionan antes de integrarse con ellos desde las hojas de caacutelculo Tambieacuten son muchos los servicios que requieren de una licencia e incluso del pago de la misma pero para

302 Excel Los mejores trucos

este ejemplo utilizaremos una que estaacute disponible de forma gratuita Dicho sershyvicio nos devuelve la direccioacuten IP de un nombre de dominio que proporcionemos

bullB Web S e r v i c e s T eacute e l ^

iacute Buscar servicios Web

Busque servicios Web utilizando palabras clave o un nombre de empresa

Palabras clave

Nombre de empresa

Haga dic en los servicios o meacutetodos Web para ver las descripciones Seleccione uno para agregarlo al proyecto

Resultados de la buacutesqueda

[Especifique los criterios de buacutesqueda para comenzar

Direccioacuten URL del servicio Web Descripcioacuten

Ayuda

Figura 821 La herramienta Microsoft Office Web Services en accioacuten

Comenzaremos dicieacutendole a Excel cuaacutel servicio deseamos utilizar en este caso httpTvwwcosmenuservicesdnsphp7wsdl Introduzca ese valor en el cuashydro de texto URL situado en la esquina inferior izquierda y luego haga clic en el botoacuten Buscar Apareceraacuten el resultado dns en la parte superior derecha tal y como se muestra en la figura 822 Active la casilla de verificacioacuten situada justo a su izquierda Si hace clic en el botoacuten Agregar haraacute que Excel genere coacutedigo VBA para el servicio tal y como puede verse en la figura 823

A continuacioacuten cierre VBE y rellene un hoja de caacutelculo m u y simple como la que se muestra en la figura 824

Para antildeadir un botoacuten que llame al servicio abra el cuadro de controles hashyciendo clic con el botoacuten derecho del ratoacuten sobre una barra de herramientas y eligiendo la opcioacuten Cuadro de controles Haga clic en el icono Botoacuten de comando y luego haga clic dentro de la hoja de caacutelculo en el lugar en el que desee colocar el botoacuten Haga clic con el botoacuten derecho sobre el botoacuten y elija la opcioacuten Propiedashydes en el m e n uacute contextua l que aparece En la propiedad Ntildeame escriba ObtenerDatos en Caption escriba Obtener direccioacuten IP Cierre este cuadro de diaacutelogo y la hoja de caacutelculo deberiacutea verse como en la figura 825

Conectando Excel con el mundo 303

11 KUuml r IUB Baf |-fj| i wi af f uuml^iff i^n^^ r Buscar servicios Web

r _ ~ bull

1 |

bullbull Direccioacuten URL del servicio Web

Facilite una direccioacuten URL para el archivo WSDL o ASMX para ver el servicio Web

Direccioacuten URL

| http wwwcosme nuser vicesdnsphpwsdl

Buscar

Haga clic en los servicios o meacutetodos Web para ver las descripciones Seleccione uno para agregarlo al proyecto

Resultados de la buacutesqueda 1

- 0EB dns

Descripcioacuten

Descripcioacuten no disponible I

Agregar Cancelar Ayuda I

Figura 822 Indicar al Web Services Toolkit que genere coacutedigo a partir de un servicio Web

tU Archivo Edicioacuten Ver Insertar Formato Depuracioacuten Eiecutar Herramientas Complementos Ventana Ayuda

mssmmsmsM

_ amp x

uuml s Microsoft E bull cel Obietos JM

BJ Henal (Hoial) H] Hoia2 (Hoia2) H]Hoia3(Hoia3) Q ThisWorlbool

Moacutedulos de clase

_ bull ]

|clsws_dns ClassModule

Alfabeacutetica | por categoriacuteas 1

Instancing 1 - Priacutevate

bull- (Declaraciones)

P r i va t e 3c_dri3 As So apCl i en t 3 0

Figura 823 Coacutedigo VBA generado por Web Services Toolkit para acceder al servicio dns

304 Excel Los mejores trucos

l l f M i c r o s o f t f x i i ^

^j Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana

J ^ d _Iacute _ j Jf -1 ^ Jraquo uacute -^ -iacuteaacute T T SI bull

Arial ^ 10 N S ^ W =1 i f j - f j 000 euro

A3 - pound IP

iexcl1 A | B C D E

1 1 I 2 Nombre

3 |IacuteP Iacute

4

5

6

7

8

9

10 11 12

13

I 14 15

16 17

| H 4 bull M H o j a l Hoja2 Hoia3 lt

Listo

iacute pound T

oo o

F

1 iexcld 1 0 0

iexcl= _

G

1 NUM

_ 1 X

T y

T laquok

H T

^ bull m

Figura 824 Una hoja de caacutelculo para antildeadir servicios Web

rqsoft|toacuteIacutetSIEacutettIacuteI

fj Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana

J _iquest A _j _J i _1 t bdquo h - J -i T sectpound --

ComtnandBut bull f = IN C R U STAR (Fot m s i o m m a n d B utt o n 1)

_ figt x

lg 100 - yengt ^

Nombre

IP

B

o Obtener direccioacuten IP c r _ _ _ _ ( y

bullI H o j a l Hoja2 Hoja3 Ilt1

H T

i r

Figura 825 Hoja de caacutelculo con un botoacuten para llamar a los servicios Web

8 Conectando Excel con el mundo 305

Para antildeadir la uacuteltima pieza haga clic con el botoacuten derecho del ratoacuten sobre el botoacuten y elija la opcioacuten Ver coacutedigo En la ventana que aparece introduzca esta subrutina

Priacutevate Sub ObtenerDatos_Click( ) Dim info As New clsws_dns Dim ntildeame As String Dim IP As String

ntildeame = Range(B2)Text

IP = infowsm_dns(ntildeame)

Set IPRange = Range(B3)

IPRangeValue = IP

End Sub

Este coacutedigo es m u y sencillo Hace referencia al objeto que ha creado la herrashymienta para el servicio Web y luego crea variables para el nombre y la direccioacuten IP Obtiene el nombre de la celda B2 llama a servicio Web con el nombre como argumento y luego coloca el valor devuelto en la celda B3 Una vez que haya introducido este coacutedigo y haya cerrado VBA puede dejar el modo de disentildeo aseshyguraacutendose de que el icono con aspecto de cartaboacuten y un laacutepiz (situado en la esquina superior izquierda del cuadro de controles) esteacute desactivado Ahora la hoja de caacutelculo le permitiraacute introducir un nombre de dominio en la celda B2 Haciendo clic en el botoacuten Obtener direccioacuten IP se colocaraacute la direccioacuten IP coshyrrespondiente al nombre de dominio en la celda B3 Las figuras 826 y 827 muesshytran esta hoja de caacutelculo en accioacuten utilizando diferentes nombres de dominio

La resolucioacuten de direcciones IP es uno de los servicios maacutes simples que existen pero muchas veces servicios asiacute de simples pueden resultar m u y uacutetiles en una hoja de caacutelculo (por ejemplo converso desde moneda recuperacioacuten de precios procesamiento de coacutedigos postales etc) Ni siquiera necesita aprender SOAP o WSDL para utilizar estos servicios ya que Web Services Toolkit se encarga de todo esto por usted

Sin embargo es importante resentildear algunas desventajas En primer lugar el ordenador debe estar conectado a Internet para que un servicio Web funcione Probablemente no desearaacute a crear hojas de caacutelculo que dependan fuertemente de servicios Web si sus usuarios van a estar trabajando m u y lejos de aquiacute y normalshymente van a estar desconectados (normalmente es aceptable una hoja de caacutelculo como esta que utiliza un servicio Web para rellenar campos pero que no necesishyta estar conectada constantemente) El otro tema importante con los servicios Web es que en general este campo estaacute en un estado de cambio significativo

306 Excel Los mejores trucos

i raquo Microsoft Excel - Libro bull bullw amp fSMMf ^ l f ^

iquestsect] Archivo

J j A Arial

B3

1 A 1 2 Nombre 3 lIR 4

i 5 I 6

7 8 9 10 11 12

13 I 14

I 15

I 16 i 17

Edicioacuten Ver Insertar Formato Herramientas Datos Ventana

J _j aacute A H -J pound - ^ - SI aacute- z bull iquestl M 100

- 10 bdquo N iT S 1 I I iacute j ^f j 000 euro cl o iexclF _ - bullgt

amp 20820123936

bull B | C D E F G

oreillycom 120820123936 1

1 Obtener direccioacuten IP

Un 4 bull H H o j a l Hoja2 HojaS lt j

Listo NUM

- f l X

T V IacuteJ ^ T |

1

bull i r l

Figura 826 Direccioacuten IP obtenida para oreillycom

H Microsoft EKCCI - Libroiacute iexcl8IWlt -^jj Archivo Edicioacuten Ver Insertar Formato Herramientas Datos Ventana

J - A J _j J J ^ iquest iquest -J raquo - bull - 51 x pound - )A M 100

Arial - 10 - N K S ^ S ^ ^j -f 000 euro oo 5j W _ T -

B3 - pound 1296162223

-inlxi - ntilde x

A ^ S

9 10 11 12 13 14 15 16 17 IR

H 4 bull

Listo

B

Nombre ozqridcom iexclIP FIacuteZ96162223 iexcl

bullI H o j a l Hoja2 Hoja3

Obtener direccioacuten IP

IlaquoI ir

Figura 827 Direccioacuten IP obtenida para ozgridcom

8 Conectando Excel con el mundo 307

Cuando se escribioacute este libro SOAP estaba pasando de la versioacuten 11 a la versioacuten 12 y tambieacuten estaba en desarrollo una nueva versioacuten de WSDL Y lo que es maacutes mucha gente cree que UDDI puede ser reemplazado con otras tecnoloshygiacuteas Por ahora aseguacuterese de comprobar los servicios que utilice y esteacute atento a posibles versiones nuevas del Office Web Services Toolkit

TRUCO

100 Crear hojas de caacutelculo Excel utilizando otros entornos Aunque Excel y otros programas de hojas de caacutelculo proporcionan la iexclnterfaz tradicional para crear y leer hojas de caacutelculo a veces necesitaraacute poder crear archivos xls directamente a partir de otros programas

Independientemente de que esteacute creando archivos Excel a partir de bases de datos en un servidor Apache o si simplemente desea presentarla informacioacuten almacenada en un programa Java a los usuarios de Excel existen numerosos paquetes en el mercado que le permiten crear y acceder a archivos xls sin tener que utilizar Excel Aunque esos paquetes son normalmente maacutes difiacuteciles de utilishyzar que SpreadsheetML normalmente producen archivos que pueden ser leiacutedos por cualquier Excel a partir de la versioacuten 97 (incluyendo las versiones para Macintosh) y a menudo son compatibles con maacutes funciones de Excel Algunos de los paquetes maacutes populares (y gratuitos) para trabajar con datos de Excel son

SpreadsheetWriteExcel

Es un paquete Perl para crear documentos Excel disponible en h t t p searchcpanorgdistSpreadsheet-WriteExcel

SpreadsheetParseExcel

Una herramienta que permite a los programas Perl leer archivos Excel disposhynible en http searchcpanorg-kwitknrSpreadsheet-ParseExcel-02602

Jakarta POI

Un producto de Apache Project que proporciona tanto acceso de lectura como de escritura a las hojas de caacutelculo de Excel a traveacutes de una API de Java disponible en ht tp j akarta apache orgpoiindex html

J Excel Api

Una API de Java para leer y escribir hojas de caacutelculo Excel incluyendo convershytidores Excel-CSV y Excel-XML Lo encontraraacute disponible en h t t p w w w andykhancomjexcelapi

308 Excel Los mejores trucos

Tambieacuten puede automatizar Excel de muchas formas a menudo utilizando el NET Framework de Microsoft Para ver un ejemplo de coacutemo hacer esto usando el lenguaje C v a y a a la paacuteg ina h t t p w w w e g g h e a d c a f e c o m a r t i c l e s 20021012 asp

Como ejemplo de coacutemo funciona este proceso el coacutedigo Java del ejemplo 87 generaraacute una hoja de caacutelculo utilizando la API POI (incluso aunque no sea un programador Java podraacute hacerse una idea) Puede pasar por alto la lectura de la licencia pero seraacute necesario incluirla en el coacutedigo

Ejemplo 87 Coacutedigo Java para generar una hoja de caacutelculo Excel usando POL

This code is der ived from the org apache poi hssf dev HSSF c l a s s henee the long l i c e n s e = = = = = = = = = = = = = = = = = = = = = = = =z = = = = = = m = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = The Apache Software License Versioacuten 11 Copyright (c) 2003 The Apache Software Foundation All rights reserved bull

Redistribution and use in source and binary forms with or without modification are permitted provided that the following conditions are met 1 Redistributions of source code must retain the above copyright notice this list of conditions and the following disclaimer bull

2 Redistributions in binary form must reproduce the above copyright notice this list of conditions and the following disclaimer in the documentation andor other materials provided with the distribution 3 The end-user documentation included with the redistribution if any must include the following acknowledgment This product includes software developed by the Apache Software Foundation (httpwwwapacheorg) Alternately this acknowledgment may appear in the software itself if and wherever such third-party acknowledgments normally appear 4 The ntildeames Apache and Apache Software Foundation and Apache POI must not be used to endorse or promote produets derived from this software without prior written permission For written permission please contact apacheapacheorg 5 Products derived from this software may not be called Apache Apache POI ntildeor may Apache appear in their ntildeame without prior written permission of the Apache Software Foundation THIS SOFTWARE IS PROVIDED ^AS IS AND ANY EXPRESSED OR IMPLIED WARRANTIES INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES

8 Conectando Excel con el mundo 309

OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT INDIRECT INCIDENTAL SPECIAL EXEMPLARY OR CONSEQUENTIAL DAMAGES (INCLUDING BUT NOT LIMITED TO PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES LOSS OF USE DATA OR PROFITS OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY WHETHER IN CONTRACT STRICT LIABILITY OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE

This software consists of voluntary contributions made by many individuaacuteis on behalf of the Apache Software Foundation For more information on the Apache Software Foundation please see lthttpwwwapacheorggt

import javaio

import javautilRandom

import orgapachepoipoifsfilesystemPOIFSFileSystem import orgapachepoihssfrecord import orgapachepoihssfmodel import orgapachepoihssfusermodel import orgapachepoihssfuacutetil

public class PoiDemo

public static void main (String[] args) throws Exception short rownum

crea un archivo de destino

FileOutputStream out = new FileOutputStream(zingotxls)

crea un nuevo objeto workbook Observe que el libro y el archivo son dos cosas diferentes casi hasta el final cuando el libro es escrito en el archivo

HSSFWorkbook wb = new HSSFWorkbook( )

crea una nueva hoja HSSFSheet ws = wbcreateSheet( )

crea una referencia a un objeto fila para su uso posterior HSSFRow r = nuil

crea una referencia al objeto celda HSSFCell c = nuil

crea dos estilos - formatos de celda necesita ser definido antes de poder usarse

HSSFCellStyle csl = wbcreateCellStyle( )

310 Excel Los mejores trucos

HSSFCellStyle cs2 = wbcreateCellStyle( ) HSSFDataFormat df = wbcreateDataFormat( )

crea dos objetos fuente para el formato HSSFFont fl = wbcreateFont( ) HSSFFont f2 = wbcreateFont( )

establece la fuente 1 a tamantildeo 10 y negrita f1setFontHeightlnPoints((short) 10) f1setBoldweight(HSSFFontBOLDWEIGHT_BOLD)

establece la fuente 2 a tamantildeo 10 y en color rojo f2setFontHeightlnPoints((short) 10) f2setColor( (short)HSSFFontCOLOR_RED )

para el estilo 1 de celda usar fuente 1 y establecer el formato de datos

cslsetFont(f1) cslsetDataFormat(dfgetFormat(00) )

para el estilo 2 de celda usar fuente 2 establecer borde fino y formato de texto

cs2setBorderBottom(cs2BORDER_THIN) cs2setDataFormat(HSSFDataFormatgetBuiltinFormat(text)) cs2setFont(f2)

establece el nombre de la hoja en Unicode wbsetSheetName(0 Hoja de prueba

HSSFWorkbookENCODING_UTF_16 )

crea una hoja con 10 filas (0-9) for (rownum = (short) 0 rownum lt 10 rownum++)

crea una fila r = wscreateRow(rownum)

rsetRowNum(( short ) rownum) crea seis celdas(0-5) (el + = 2 se entenderaacute luego) for (short cellnum = (short) 0 cellnum lt 6 cellnum += 2)

crea una celda numeacuterica c = rcreateCell(cellnum) rellena con nuacutemeros basaacutendose en la posicioacuten csetCellValue(rownum 10 + cellnum

+ (((double) rownum 10) + ((double) cellnum 100)))

crea una celda de texto c = rcreateCell((short) (cellnum + 1))

cada dos filas (por eso lo de +=2) if ((rownum 2) ==0)

8 Conectando Excel con el mundo 311

ajusta esta celda con el primer estilo que definimos csetCellStyle(csl) establece el valor de la celda a Prueba csetEncoding( HSSFCellENC0DING_UTF_16 ) csetCellValue( Prueba )

else

CsetCellStyle(cs2) establece el valor de la celda a 1 2 3 csetEncoding( HSSFCellENC0DING_UTF_16 ) csetCellValue( 1 2 3 )

usar algunas foacutermulas avanza una fila

rownum++ r = wscreateRow(rownum)

crear foacutermulas

for (short cellnum = (short) 0 cellnum lt 6 cellnum += 2)

produce SUMAS para las columnas apropiadas int column= 65+cellnum char columnLabel=(char)column String formula=SUM(M+columnLabel+1+columnLabel+10) c = rcreateCell(cellnum) csetCellStyle(csl) csetCellFormula(formula)

escribe el libro a la salida y cerramos el archivo

wbwrite(out) outcioacutese ( )

Para ejecutar este coacutedigo primero debe descargar la uacuteltima versioacuten del archishyvo binario POI y colocar el archivo principal jar del POI (poi-20-final-20040126jar en este caso) en la ruta de clases dependiendo de la plataforma en la que lo esteacute ejecutando Una vez que lo ejecute no necesitaraacute argumentos y crearaacute un uacutenico archivo llamado zingotxls Si abre este archivo veraacute una hoja de caacutelculo como la que se muestra en la figura 828 (figura 829 si estaacute usando un Macintosh)

La loacutegica del ejemplo 87 es difiacutecilmente un modelo ejemplar de coacutemo crear una hoja de caacutelculo pero muestra la funcionalidad baacutesica necesaria para crear nuevas hojas celdas y formulas

312 Excel Los mejores trucos

l IJM

42 J

crosoft Excel - zingotKls IacuteSommamm^m

Archivo Edicioacuten Ver Insertar Formato

J d ^ _J J JL

Arial - 10

1 2 3 4 5 6 7 bull

8 9 10 11 12

13 I 14 15 16

17

18 19 20 H 4

Listo

C13 - i

A B 0 Prueba

101 i 202 Prueba 303 1 bdquo j 404 Prueba 505 1 3 606 Prueba 7 0 7 i bull

808 Prueba 909 -

4545 d

bull H Hoja de prueba

- [ N | ^ S iexcl

=SUMA(C1C10)

C | D 202 Prueba

1212 bull J

2222 Prueba 3232 1 2 i 4242 Prueba 5252 1 -6262 Prueba 7272 1 8282 Prueba 9292 1 I

MAl

B i l l H f t H H H H I Herramientas Datos

-3 Iacute W

| ^ ^ ^ | o

E F 4 04 Prueba

1414 1 2 1 2424 Prueba 3434 1 2

4444 Prueba 5454 1 2 6464 Prueba 7474 i J 8484 Prueba 9494 i j

4949

W ^ sect r ^ -jgix]|

Ventana l - - firaquo X

ffi 4 S - i l iacutel iexcld ltiacutegt 1 0 0 V 1

ooo euro l bdquodeg8 iexcls iexcl^ - ^ ^ i ^ y

G H 1 J T

bull 1

NUM

Figura 828 Hoja de caacutelculo creada a partir de un programa Java para Windows de Excel

la versioacuten

o 1

1 4

h

8 9

10

11 1

13 14

15

16

A B 0 Test

101 202 Test 303

404 Test

IacuteJUD

606 Test

707

808 Test

309

4545

Testsheet

C

202

12

32

42

62

82

32

12

32

42

62 7 1

82

32

4747

l0V5

Test

Test

T e i t

Test

Test

E F

404 Test

1414 2424 Test 3434

4444 Test 5454

6464 Test

7474

8484 Test 3494

4949

6

Figura 829 Hoja de caacutelculo creada a partir de un programa Java para la versioacuten Macintosh de Excel

8 Conectando Excel con el mundo 313

Si utiliza esto para construir hojas de caacutelculo para sus propias aplicaciones seguramente reemplazaraacute los bucles con referencias a las estructuras de datos que esteacute presentando con lo que los archivos de destinos eran maacutes loacutegicos y probablemente variaraacuten dependiendo de los datos y desearaacute sacar ventaja de las funciones de las que se muestran en este ejemplo

Otra caracteriacutestica de POI que es importante destacar si va a generar hojas de caacutelculo que van a formar parte de un sitio web dinaacutemico Puede combinar POI con Cocoon un marco de trabajo para Java tambieacuten de Apache que utiliza doshycumentos XML y otras fuentes para generar contenidos accesibles a traveacutes de un explorador de Internet Puede ver un artiacuteculo que proporciona una demostracioacuten y todos los detalles para hacer esto en la direccioacuten h t tp wwwxml eompuba 20030122cocoon-excelhtml

Glosario

Aplicacioacuten

Es otro teacutermino para denominar a un programa Excel es una aplicacioacuten aunshyque algunas personas lo llaman aplicacioacuten de hojas de caacutelculo

Argumentos

Es la informacioacuten que una foacutermula o funcioacuten puede requerir para devolver un valor La mayoriacutea de funciones de Excel requieren de argumentos para poder ser ejecutadas Los argumentos se encierran entre pareacutentesis y estaacuten separados por comas

Asistente

Conjunto de pantallas utilizadas para asistir al usuario a lo largo de una serie de pasos

Barra de comandos

Es uno de los muchos objetos de Excel utilizados para albergar elementos de menuacute La barra de menuacutes de una hoja de caacutelculo es una barra de comandos que contiene los elementos de menuacute Archivo Edicioacuten Ver Insertar etc

Barra de herramientas Formularios

Barra de herramientas utilizada para almacenar los controles que estaacuten inshycluidos dentro de Excel (no los controles ActiveX)

316 Excel Los mejores trucos

Boolean

Es el significado matemaacutetico de expresar sentencias loacutegicas Un valor de este tipo siempre seraacute Verdadero o Falso

Bucle

Ejecucioacuten continua de una o maacutes liacuteneas de coacutedigo VBA hasta que una condicioacuten se cumpla o el bucle termine

Bug

Es un error en el coacutedigo Por desgracia algunos de estos errores pueden ser indetectables por las pruebas maacutes exhaustivas y por tanto son difiacuteciles de evitar

Cadena

Secuencia lineal de caracteres (por ejemplo la palabra Coche es una cadena de caracteres alfanumeacutericos)

Complemento

Es un libro guardado con la extensioacuten XLA Se abre como un libro oculto cuanshydo es instalado a traveacutes de la opcioacuten HerramientasgtComplementos Los compleshymentos ofrecen funcionalidad antildeadida a Excel

Constante

Es un elemento que representa un valor que no cambia

Contiguo

Es un rango de celdas en el que los liacutemites de todas las celdas estaacuten conectados sin espacios entre ellos Por ejemplo Al C20 es un rango contiguo

Controles ActiveX

Objetos totalmente programables que pueden ser utilizados para ayudar a pershysonalizar las aplicaciones En Excel se incluyen algunos tan comunes como el botoacuten de comando el botoacuten de opcioacuten etc

Cuadro de controles

Es una barra de herramientas que contiene controles ActiveX (veacutease Controles ActiveX)

Glosario 317

Cuadro de diaacutelogo Es una ventana que solicita informacioacuten al usuario como por ejemplo el cuashy

dro de diaacutelogo Abrir

Depuracioacuten

Es el proceso de eliminar todos los posibles errores en el coacutedigo

Editor de Visual Basic (VBE)

Tambieacuten conocido como entorno de Visual Basic Es un interfaz dentro de Excel que permite a los usuarios acceden a todos los elementos pertenecientes a VBA

Error de ejecucioacuten

Error que se produce dentro del coacutedigo VBA y que ocurre mientras que eacuteste se ejecuta La mayoriacutea de este tipo de errores vienen acompantildeados por un nuacutemero que sirve para ayudar en la depuracioacuten

Evento

Es una llamada desde Excel a un cierto coacutedigo para indicar que ha ocurrido algo Por ejemplo un clic de ratoacuten o cerrarabrir un libro son eventos reportados por Excel

Explorador de proyectos

Ventana dentro del Editor de Visual Basic en la que se pueden ver todos los objetos que pertenecen a un libro especiacutefico

Foacutermula

Una secuencia de valores referencias a celdas nombres funciones u operadoshyres situados dentro de una celda y que producen un nuevo valor Todas las foacutermushylas de Excel comienzan con el signo =

Formulario de usuario

Objeto de Excel que puede ser utilizado para albergar controles ActiveX Los formularios de usuario se pueden insertar y modificar solamente dentro de VBE

Funcioacuten

Un tipo de procedimiento (veacutease Procedimiento) que devuelve un valor Excel dispone de funciones incorporadas como por ejemplo la funcioacuten SUMA De todas

318 Excel Los mejores trucos

formas el usuario puede crear sus propias funciones (veacutease Funcioacuten definida por el usuario)

Funcioacuten definida por el usuario

Funcioacuten (veacutease Funcioacuten) escrita en coacutedigo VBA especiacuteficamente para devolver un valor basaacutendose en diferentes meacutetodos de caacutelculo

Hoja

Teacutermino geneacuterico utilizado para representar un hoja de caacutelculo hoja de graacutefico hoja de macro

Hoja de caacutelculo

Uno de los objetos fundamentales de Excel en el que se encuentran las celdas Todos los libros de Excel deben tener al menos una hoja de caacutelculo y al menos una de ellas debe estar visible La uacutenica limitacioacuten al nuacutemero de hojas de caacutelculo que se pueden tener abiertas es la memoria del ordenador

Hojas de caacutelculo

Aplicacioacuten de software o programa que permiten introducir texto nuacutemeros y funciones en una matriz de celdas individuales

Libro

Contenedor para una o maacutes hojas de caacutelculo Cada archivo xls representa un libro de Excel

Macro

Una accioacuten o conjunto de acciones utilizadas para automatizar tareas Excel permite grabar acciones y utilizarlas posteriormente como macros

Meacutetodo

Un procedimiento que actuacutea sobre un objeto

Moacutedulo

Una unidad auto-contenida en la que el coacutedigo VBA se escribe y se almacena

Moacutedulo privado Moacutedulo utilizado especiacuteficamente para un objeto como pueda ser un libro una

hoja o un formulario del usuario

Glosario 319

No contiguo

Rango de celdas en el que los liacutemites de alguna o todas las celdas no estaacuten conectados Por ejemplo el rango Al C20 E10F100 representa un rango no conshytiguo

Nombre

Teacutermino que puede ser aplicado a constantes rango de celdas o variables

Objeto

Componente de una aplicacioacuten (veacutease Aplicacioacuten) como una hoja de caacutelculo una celda o un graacutefico Existen maacutes de 100 objetos disponibles dentro de Excel y resultan fundamentales a la hora de programar con VBA

Operadores

Siacutembolo matemaacutetico que instruye a una foacutermula o funcioacuten para que realice una cierta tarea Por ejemplo el operador + indica la foacutermula o la funcioacuten que debe sumar

Pareacutentesis

Los pareacutentesis se utilizan para indicar agrupaciones en matemaacuteticas En Excel siempre debe haber un pareacutentesis de cierre por cada pareacutentesis de apertura

Plantilla

Esquema predefinido utilizado como base estaacutendar para luego hacer modificashyciones y crear un hoja de caacutelculo

Procedimiento

Secuencia de instrucciones ejecutadas como un conjunto y que tienen un nomshybre Por ejemplo f u n e t i o n y sub son tipos de procedimientos (veacutease Funcioacuten y Sub)

Propiedad

Atributo con nombre perteneciente a un objeto (veacutease Objeto) Por ejemplo la direccioacuten de una celda especiacutefica es una propiedad de la celda o del objeto rango

Rango

Aacuterea de una o maacutes celdas ya sean contiguas o no

320 Excel Los mejores trucos

Sub

Tipo de procedimiento que no devuelve ninguacuten valor (veacutease Procedimiento) Este tipo de procedimientos se utilizan normalmente para gestionar eventos

Variables

Elemento con nombre que almacena un valor y que puede ser cambiado duranshyte su uso

Visual Basic for Applications (VBA)

El lenguaje estaacutendar de macros utilizado en la mayoriacutea de los productos de Office La palabra Applications representa a cualquiera de las aplicaciones de Office en las que es utilizado el coacutedigo como por ejemplo Excel Este lenguaje es un derivado de Visual Basic que a su vez es un derivado del lenguaje Basic La diferencia fundamental entre estos dos lenguajes es que VBA soacutelo puede ser utilishyzado dentro de la aplicacioacuten que lo contiene normalmente una perteneciente a la familia Office

Page 5: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 6: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 7: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 8: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 9: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 10: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 11: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 12: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 13: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 14: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 15: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 16: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 17: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 18: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 19: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 20: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 21: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 22: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 23: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 24: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 25: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 26: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 27: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 28: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 29: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 30: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 31: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 32: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 33: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 34: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 35: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 36: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 37: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 38: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 39: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 40: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 41: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 42: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 43: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 44: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 45: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 46: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 47: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 48: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 49: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 50: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 51: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 52: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 53: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 54: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 55: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 56: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 57: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 58: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 59: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 60: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 61: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 62: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 63: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 64: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 65: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 66: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 67: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 68: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 69: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 70: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 71: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 72: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 73: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 74: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 75: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 76: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 77: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 78: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 79: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 80: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 81: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 82: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 83: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 84: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 85: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 86: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 87: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 88: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 89: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 90: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 91: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 92: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 93: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 94: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 95: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 96: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 97: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 98: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 99: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 100: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 101: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 102: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 103: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 104: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 105: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 106: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 107: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 108: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 109: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 110: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 111: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 112: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 113: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 114: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 115: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 116: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 117: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 118: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 119: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 120: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 121: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 122: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 123: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 124: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 125: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 126: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 127: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 128: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 129: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 130: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 131: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 132: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 133: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 134: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 135: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 136: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 137: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 138: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 139: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 140: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 141: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 142: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 143: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 144: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 145: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 146: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 147: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 148: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 149: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 150: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 151: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 152: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 153: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 154: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 155: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 156: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 157: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 158: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 159: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 160: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 161: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 162: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 163: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 164: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 165: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 166: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 167: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 168: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 169: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 170: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 171: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 172: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 173: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 174: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 175: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 176: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 177: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 178: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 179: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 180: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 181: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 182: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 183: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 184: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 185: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 186: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 187: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 188: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 189: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 190: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 191: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 192: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 193: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 194: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 195: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 196: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 197: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 198: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 199: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 200: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 201: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 202: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 203: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 204: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 205: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 206: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 207: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 208: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 209: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 210: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 211: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 212: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 213: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 214: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 215: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 216: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 217: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 218: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 219: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 220: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 221: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 222: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 223: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 224: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 225: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 226: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 227: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 228: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 229: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 230: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 231: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 232: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 233: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 234: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 235: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 236: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 237: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 238: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 239: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 240: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 241: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 242: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 243: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 244: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 245: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 246: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 247: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 248: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 249: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 250: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 251: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 252: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 253: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 254: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 255: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 256: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 257: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 258: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 259: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 260: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 261: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 262: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 263: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 264: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 265: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 266: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 267: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 268: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 269: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 270: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 271: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 272: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 273: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 274: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 275: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 276: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 277: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 278: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 279: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 280: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 281: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 282: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 283: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 284: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 285: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 286: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 287: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 288: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 289: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 290: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 291: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 292: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 293: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas
Page 294: LOS MEJORES TRUCOS · 2020. 10. 19. · 22. Activar y desactivar el formato condicional y la validación de datos con una casilla de verificación 82 2 3. Admitir múltiples listas