jueves, 17 de mayo de 2012

Curiosidades y rarezas

Para escribir un número negativo hay que poner un signo menos delante del número o encerrarlo entre paréntesis.

En A1:
-50,25    [Resultado: -50,25]

En A3:
(50,25)    [Resultado: -50,25]

Un número seguido del símbolo del euro (€) adopta el formato Moneda.

En B1:
150€    [Resultado: 150 €]

En B3:
(150€)    [Resultado: -150 €]

Si nos ponemos en B1 (o en B3) y pulsamos Ctrl + 1 para ver el formato de la celda, observaremos que Excel ha aplicado el formato Moneda con los valores negativos en rojo y precedidos del signo menos:

Se puede sustituir el signo igual (=), con el que deben comenzar todas las fórmulas, por el signo más (+). Si después del igual (=) hay un signo menos (-) se puede prescindir del signo igual (=) o sustituirlo por el signo más (+).

En C1:
=HOY()      [Devuelve la fecha actual]

En C3:
+HOY()      [Devuelve la fecha actual]

En C5:
=-(3*COS(A1))      [Resultado: -2,99964045]

En C7:
-(3*COS(A1))      [Resultado: -2,99964045]

En C9:
+-(3*COS(A1))      [Resultado: -2,99964045]

Los valores lógicos son VERDADERO y FALSO. Ambos valores equivalen numéricamente a 1 y 0 respectivamente. Para transformar los valores lógicos en sus correspondientes valores numéricos basta multiplicarlos por uno.

En D1:
=5=6      [Resultado: FALSO]

En D3:
=6=6      [Resultado: VERDADERO]

En D5:
=1*(5=6)      [Resultado: 0]

En D7:
=1*(6=6)      [Resultado: 1]

Multiplicar dos veces por menos uno es equivalente a multiplicar por uno. Esto permite usar una forma muy comprimida en los ejemplos que hemos puesto en D5 y D6 ya que 1* se puede sustituir por (-1)*(-1)* y esta expresión, a su vez, por dos signos menos (--). De esta forma, las fórmulas de las dos celdas citadas quedarán así:

En E5:
=--(5=6)      [Resultado: 0]

En E7:
=--(6=6)      [Resultado: 1]

El exceso de signos más (+) no afecta al resultado de las fórmulas, aunque su comportamiento resulte extraño.

En A1:
+++++100    [Resultado: 100]

Hemos puesto cinco signos más (+) seguidos de un número. Si nos situamos en A1 y miramos lo que pone en la barra de fórmulas veremos: =++++100. Excel ha eliminado uno de los signos más y ha antepuesto el signo igual.

Si pulsamos la tecla F2 para editar la fórmula y, sin hacer ningún cambio, pulsamos Intro, se elimina otro signo más (+). Cada vez que editemos la fórmula, se eliminará un más hasta que desaparezcan todos.

En A2:
=+++++A1    [Resultado: 100]

En este caso, no se cumple la regla anterior. La fórmula funciona correctamente pero los signos más no desaparecen al editarla con F2.

En A3:
=+++++4*A1     [Resultado: 400]

Ahora, sí. Los signos más van desapareciendo con F2. Parece que si encuentra un número después del último (+), al editar la fórmula los va eliminando; si encuentra la referencia a una celda, no los elimina.

En A4:
=+++++COS(A1)    [Resultado: 0,86231887]

En este caso tampoco se quitan los signos (+). Quizás sea porque después del último (+) hay una función y no un número. Ignoro la razón del extraño y, en apariencia, irrelevante comportamiento de Excel y los signos más.

Cada vez que se abre un fichero de Excel 2003, el nombre del usuario queda incrustado en el libro. Basta abrirlo y cerrarlo inmediatamente sin hacer nigún cambio.

Debido a esto, se puede saber quién fue la ultima persona que utilizó un libro de Excel usando el Bloc de notas de Windows o cualquier otro editor o procesador de textos (Word, por ejemplo).

El siguiente ejemplo ha sido realizado usando el archivo "home-mortgage-calculator.xls" obtenido de la página de Vertex42.

Una vez descargado el fichero (pero sin abrirlo con Excel) lo he abierto con el Bloc de notas de Windows y he obtenido algo prácticamente ilegible pero donde se puede leer claramente el nombre Vertex42.

Luego, lo he abierto con Excel y lo he vuelto a cerrar sin guardar los cambios. Parece que el fichero no debería haberse alterado... pero no es así. Utilizando de nuevo el Bloc de notas se observa que Vertex42 ha sido sustituido por mi nombre de usuario.

Delante de los números, los espacios son ignorados. Delante de las horas, los espacios provocan resultados inesperados.

En A1:
(espacio)(espacio)(espacio)47    [Resultado: 47]

Podemos operar con el dato de A1 sin ningún problema. Los espacios no son tenidos en cuenta.

Pero, ¿qué pasa si el dato representa una hora? La respuesta es distinta según sea el dato introducido y la versión de Excel que utilicemos.

Comencemos con lo que es común en todas las versiones:

En A2:
8:30    [Resultado justificado a la derecha: 8:30]

En A3:
(espacio)8:30    [Resultado justificado a la izquierda: 8:30]

En A2 la hora se ha introducido correctamente. Sin embargo, en A3 el dato se ha insertado como un texto y, en consecuencia, no se podrán realizar cálculos propios de los valores de fecha y hora. Lo comprobaremos con los siguientes ejemplos:

En B2:
=A2+"2:15"    [Resultado correcto: 10:45]

En B3:
=A2+"2:15"    [Resultado incorrecto: #¡VALOR!]

Lo que viene a continuación funciona igual en Excel 2003 y 2007.

En A4: (espacio):0    [Resultado: La celda ha quedado cubierta de almohadillas (#). Aunque ensanchemos al máximo la columna A, las almohadillas no desaparecen. Sin embargo, si nos ponemos en A4, observaremos que en la barra de fórmulas aparece el valor: -0,000694444444444444]
En A5: (espacio):1    [Resultado en la barra de fórmulas: 0:59:00]
En A6: (espacio):2    [Resultado: 1:59:00]
En A7: (espacio):3    [Resultado: 2:59:00]
En A8: (espacio):25    [Resultado: 01/01/1900  0:59:00]
En A9: (espacio):26    [Resultado: 01/01/1900  1:59:00]
En A10: (espacio):49    [Resultado: 02/01/1900  0:59:00]
En A11: (espacio):0 AM    [Resultado rarísimo: 2982616,16248843]
En A12: (espacio):0 PM    [Resultado rarísimo: 2982616,16318287]
En A13: (espacio):7 PM    [Resultado rarísimo: 2982616,45484954]

En Excel 2010 los resultados son distintos:

En A4: (espacio):0    [Resultado en la barra de fórmulas: 0:00:00]
En A5: (espacio):1    [Resultado: 1:00:00]
En A6: (espacio):2    [Resultado: 2:00:00]
En A7: (espacio):3    [Resultado: 3:00:00]
En A8: (espacio):25    [Resultado tipo texto: :25]
En A9: (espacio):26    [Resultado tipo texto: :26]
En A10: (espacio):49    [Resultado tipo texto: :49]
En A11: (espacio):0 AM    [Resultado tipo texto: :0 AM]
En A12: (espacio):0 PM    [Resultado tipo texto: :0 PM]
En A13: (espacio):7 PM    [Resultado tipo texto: :7 PM]

La suma de valores lógicos puede devolver resultados inesperados.

Comencemos poniendo unos cuantos valores lógicos en una hoja:

En A1: VERDADERO
En A2: FALSO
En A3: VERDADERO

Ahora, vamos a sumar estos valores de dos formas distintas.

En A5:
=A1+A2+A3     [Resultado: 2]

En este caso, Excel ha asignado valores numéricos a VERDADERO y FALSO. Sin embargo, al utilizar la función SUMA, se obtiene un resultado inesperado.

En A6:
=SUMA(A1:A3)    [Resultado: 0]

La función SUMA no considera los valores lógicos como números y, por tanto, el resultado es cero. La operación se ejecuta correctamente si, previamente, transformamos los valores lógicos en números nultiplicándolos por uno. 

En A7:
=SUMA(--A1:A3)     [Terminar con Ctrl + Mayús + Intro. Resultado: 2]

Hemos obtenido el resultado correcto, pero ha sido necesario crear una fórmula matricial.

Si, en vez de usar referencias, ponemos dentro de la función SUMA los valores lógicos, Excel utilizará sus equivalencias numéricas:

En A8:
=SUMA(VERDADERO;FALSO;VERDADERO;VERDADERO)     [Resultado: 3]

Las funciones Y y O actúan de forma confusa cuando se aplican a valores no lógicos.

Pongamos unos cuantos valores en la columna C para ilustrar este caso:

En C1: 5
En C2: (dejamos la celda en blanco)
En C3: Mariposa
En C4: 4:20
En C5: 16/5/2012

Ahora, apliquemos las funciones Y y O a estas celdas:

En C6:
=Y(C1;C2;C3;C4;C5)    [Resultado: VERDADERO]

En C7::
=O(C1;C2;C3;C4;C5)    [Resultado: VERDADERO]

¿Por qué estos resultados? Para comprender lo que hace Excel, nos ponemos en C6 (o en C7) y accedemos a Fórmulas + Insertar función. Obtendremos la siguiente ventana:

A las celdas en las que hay un número, una fecha o una hora, las funciones Y y O les asignan el valor VERDADERO; a las celdas vacías les asignan FALSO; a las que contienen un texto, el error #¡VALOR! En buena lógica, la función Y debería devolver FALSO, ya que se supone que para devolver VERDADERO todos los argumentos deben ser VERDADERO (lo indica claramente el propio cuadro de diálogo). Sin embargo, y por alguna razón incomprensible para mí, devuelve VERDADERO. ¡Misterio!

En algunas ordenaciones ocurre un caso curioso. Si los datos que hay que ordenar se han obtenidos de otras celdas mediante referencias que incluye el nombre de la hoja, pueden obtenerse resultados erróneos.

Rellenemos unas cuantas celdas de la "Hoja1" con los valores y fórmulas siguientes:

El resultado será:

Es evidente que la referencia Hoja1! en la columna C es innecesaria. Sin embargo, la singularidad a la que hemos hecho referencia, y que ahora vamos a descubrir, se produce por esta circunstancia.

Seleccionamos A1:C5 y accedemos a Datos + Ordenar de A a Z. Obtendremos la ordenación siguiente:

Las columnas A y B están perfectamente ordenadas, pero la C, no. Para ver qué ha ocurrido debemos comprobar cómo han quedado las fórmulas de las columnas B y C. Pulsamos Ctrl + ` para visualizar las fórmulas; o bien, accedemos a Fórmulas + Mostrar fórmulas (Alt + º).

Nota: Aunque Excel indica que la combinación de teclas rápidas para mostrar las fórmulas es Alt + º, esta combinación sólo funciona en Excel 2003 y 2007. En Excel 2010 hay que pulsar  Ctrl + ` (acento grave).

Las fórmulas han quedado así:

Albacete, que antes de la ordenación estaba en A3, ahora está en A1. En la celda C1 la fórmula hace referencia al valor de A3, donde ya no está Albacete sino Murcia; de ese modo, en C1 aparece Murcia. Jaén, que estaba en A1 antes de la ordenación, pasa a A2, pero la fórmula de C2 indica que se debe mostrar el valor de A1, que como hemos indicado anteriormente ocupa Albacete. Lo mismo ocurre en las otras celdas. ¿No es un comportamiento rarísimo? Es como si hubiéramos puesto referencias absolutas en las fórmulas de la columna C...pero no lo hemos hecho.

La conclusión es evidente: si tenemos que ordenar una lista con Datos + Ordenar de A a Z, no conviene incluir el nombre de la hoja en la referencia a las celdas.


jueves, 10 de mayo de 2012

Mostrar y ocultar un gráfico

Modificando un poco la técnica utilizada en otro artículo para mostrar imágenes, podemos mostrar u ocultar un gráfico hecho en Excel. Lo haremos poniendo dos botones de opción: uno para ocultar el gráfico y otro para mostrarlo.

Comencemos con los botones accediendo a Programador + Insertar + Botón de opción (control de formulario). Colocamos el botón en el sitio que queramos y en el menú contextual elegimos Modificar texto para poner: Mostrar gráfico. De nuevo, en el menú contextual seleccionamos Formato de control y, en el apartado Vincular con la celda de la ficha Control, ponemos: $E$2

Repetimos el proceso con el otro botón cambiando el texto por: Ocultar gráfico.

Si elegimos el primer botón, en E2 se mostrará un 1; si elegimos el segundo, se mostrará un 2.

Con el rango B2:D6 hacemos un gráfico del tipo que queramos adornándolo como nos parezca mejor.

Seleccionamos el gráfico, pulsamos Ctrl + X para cortarlo, hacemos clic en cualquier lugar de la hoja Auxiliar y pulsamos Ctrl + V para pegarlo. De este modo, habremos movido el gráfico de la hoja Negocio a la hoja Auxiliar.

En la hoja Auxiliar, seleccionamos B2:E9 y en el Cuadro de nombres escribimos: imagen (no debemos olvidarnos de pulsar Intro para terminar).

Manteniendo pulsada la tecla Alt, arrastramos el gráfico hasta que ocupe el rango B2:E9. Lógicamente, si quisiéramos un gráfico más grande tendríamos que seleccionar un rango con más celdas; por ejemplo, B2:F14.

En la hoja auxiliar hacemos clic en una celda vacía; por ejemplo en G1. Ahora, en el Cuadro de nombres escribimos: nada (terminar con Intro).

Estando en la celda G1 de la hoja Auxiliar, pulsamos Ctrl + C y hacemos clic con el botón derecho en la celda F2 de la hoja Negocio. En el menú contextual, elegimos Pegado especial + Imagen vinculada (M).

En F2 aparece la imagen de la celda G1 y en la barra de fórmulas: =Auxiliar!$G$1

Ahora, crearemos un nombre. Para ello, accedemos a Fórmulas + Asignar nombre y creamos el nombre Ver con la definición siguiente: =ELEGIR(Negocio!$E$2;imagen;nada)

Volvemos a seleccionar F2 y sustituimos la fórmula de la barra de fórmulas por: =Ver

Ocultamos los números de E2 poniendo el formato personalizado siguiente: ;;;





martes, 8 de mayo de 2012

Etiquetas de hoja permitidas

¿Se puede poner cualquier nombre a una hoja?
No. El nombre de una hoja debe cumplir las reglas siguientes:
  • No superar los 31 caracteres.
  • No contener ninguno de los siguientes caracteres: \ / ? * [ ]
  • No se admiten nombres en blanco.
  • No puede haber dos hojas con el mismo nombre.
Además, hay un nombre reservado que tampoco se puede utilizar. Si intentamos ponerle a una hoja el nombre Historial, Excel devuelve el siguiente mensaje:

Al utilizar el Control de cambios para registrar los cambios que hagan diferentes usuarios en una hoja compartida se le puede pedir a Excel que muestre las modificaciones realizadas. Excel crea una hoja, llamada Historial, con todas las variaciones que experimenta la hoja. El nombre Historial está reservado para esta hoja.

¿Podemos conseguir que en la pestaña de la hoja no se muestre ningún nombre?
Sí, se puede.
¿Cómo?
Sustituyendo el nombre por espacios en blanco (debe haber, al menos, uno).

Si usamos este truco en dos o más hojas, todas deben tener distinto número de espacios en blanco. En caso contrario, contravendría una de las reglas.

¿Cómo se reflejaría este nombre en una fórmula? Lo veremos mejor con un ejemplo.

En la celda A1 de la Hoja1:
25

En B1:
=2*Hoja1!A1     [Resultado: 50]

Hacemos doble clic en la pestaña de la Hoja1, pulsamos dos veces la barra espaciadora y terminamos con Intro.

Al ponernos en B1, en la barra de fórmulas ya no aparece la fórmula que hemos escrito; en su lugar se muestra: =2*'  '!A1. El nombre de la hoja ha sido sustituido por dos espacios delimitados por comillas simples.

lunes, 7 de mayo de 2012

Listas circulares

Llamamos lista circular a la lista móvil que funciona como las orugas de un tanque; el elemento que sale por debajo entra por encima, y viceversa. Para hacer que la lista se mueva podemos emplear una Barra de desplazamiento, un Control de número o cualquier otro método que genere valores numéricos consecutivos.

Podemos hacer que la lista muestre todos los elementos posibles (por ejemplo, los doce meses del año) o parte de ellos (por ejemplo, 12 elementos de los 117 que tiene la Tabla períodica).

Si sólo vamos a mostrar unos pocos elementos de la lista, y ésta es muy extensa, será necesario crear una tabla. Esto ocurre con la Tabla periódica, que en el ejemplo desarrollado está en la hoja Elementos.

Si la lista tiene pocos elementos (vayamos a mostrarlos todos o parte de ellos), no será necesario crear una tabla (aunque si la hubiere, facilitaría cualquier modificación).

Comencemos con la lista corta. En la ficha Programador, seleccionamos Insertar + Barra de desplazamiento (control ActiveX). Trazamos un pequeño rectángulo en cualquier sitio libre de la hoja y, en el menú contextual, elegimos Propiedades.

Salimos del modo de edición haciendo clic en Programador + Modo Diseño. Con estas propiedades, hemos creado una barra que generará valores comprendidos entre 1 y 100. Estos valores se asocian a la celda B16. Inicialmente, hemos puesto 50 en la propiedad Value, lo que significa que el desplazable de la barra se encontrará en la mitad. Podemos pulsar en los botones de la barra para comprobar cómo cambia el valor de la celda B16.

El siguiente paso consiste en ocultar el valor de la celda B16 con la propia barra de desplazamiento. Para ello, volvemos a entrar en el modo de edición pulsando Programador + Modo Diseño y, manteniendo pulsada la tecla Alt, desplazamos y modificamos el tamaño de la barra hasta que ocupe toda la celda B16. Finalmente, salimos con Programador + Modo Diseño.

Ahora, ponemos la siguiente fórmula en B3:
=INDICE({"ENE"\"FEB"\"MAR"\"ABR"\"MAY"\"JUN"\"JUL"\"AGO"\"SEP"\"OCT"\"NOV"\"DIC"};RESIDUO(FILAS($B$3:B3)+$B$16-2;12)+1)

Extendemos la fórmula hasta la fila 14 y probamos.

En el caso de una lista larga no podemos poner los elementos de la matriz en la fórmula (sería inmensa); hay que crear una tabla. La columna B de la hoja Elementos contiene los nombres de todos los elementos de la Tabla Periódica ordenados por orden alfabético.

Seleccionamos B4:B120 y, en el Cuadro de nombres, escribimos: Elementos (terminar pulsando Intro)

En la ficha Programador, seleccionamos Insertar + Control de número (control ActiveX). Trazamos un pequeño rectángulo en cualquier sitio libre de la hoja Lista_circular y, en el menú contextual, elegimos Propiedades

Manteniendo pulsada la tecla Alt, desplazamos y modificamos el tamaño del control hasta que ocupe toda la celda D16. Finalmente, salimos con Programador + Modo Diseño.

En D3:
=INDICE(Elementos;RESIDUO(FILAS($B$3:B3)+$D$16-2;117)+1)

Extendemos la fórmula hasta la fila 14.




viernes, 4 de mayo de 2012

Referencia a rangos de otros libros

En la hoja Población del libro S338-Poblacion.xlsx, tenemos una tabla con las poblaciones de todas las provincias españolas.

En la hoja Extensión del libro S338-Extension.xlsx, tenemos la tabla de provincias en la que faltan los datos de la columna Población. Estos datos los obtendremos del libro anterior.

Pueden darse varias posibilidades:
  1. Que ambos libros estén abiertos en nuestro ordenador.
  2. Que el libro del que queremos extraer los datos no esté abierto pero que se encuentre en una carpeta de nuestro propio ordenador.
  3. Que el libro del que queremos extraer los datos no esté abierto y se encuentre en una carpeta de otro ordenador de nuestra Intranet.
  4. Que conozcamos la dirección de Internet donde está guardado el libro.
Veamos la forma de obtener la información en cada caso.

Caso 1º: Los dos libros abiertos

Abrimos el primer libro y accedemos a Archivo para abrir el segundo libro. Es importante que ambos libros se abran desde la misma ventana de Excel.

En la celda E6 de la hoja Extensión escribimos:
=BUSCARV(C6;'[S338-Poblacion.xlsx]Población'!$C$6:$D$57;2;FALSO)

Extendemos la fórmula hasta la fila 57.

En E58:
=SUMA(E6:E57)     [Resultado: 46.744.116]

Guardamos ambos libros y salimos de Excel.

Cuando abramos otra vez el libro S338-Extension.xlsx, Excel nos mostrará un cuadro de diálogo indicándonos que los datos se han obtenido de una fuente externa. Puesto que esta fuente ha podido ser modificada, nos ofrece la posibilidad de actualizar los datos con los cambios habidos.

Elegimos la opción que nos interese y comprobamos que la fórmula de la celda E6 se ha modificado; el nombre del libro [S338-Poblacion.xlsx], ahora, irá precedido de la ruta donde se ha guardado. Por ejemplo, yo lo he guardado en el escritorio y la fórmula que muestra mi ordenador es la siguiente:
=BUSCARV(C6;'C:\Users\Javi\Desktop\[S338-Poblacion.xlsx]Población'!$C$6:$D$57;2;FALSO)

Caso 2º: Un libro abierto y el otro en una carpeta de nuestro ordenador

Visto el caso anterior, éste es evidente; bastará poner la fórmula modificada en E6:
=BUSCARV(C6;'C:\Users\Javi\Desktop\[S338-Poblacion.xlsx]Población'!$C$6:$D$57;2;FALSO)

Caso 3º: Un libro abierto y el otro en una carpeta de la Intranet

Este caso es similar al anterior. Sólo necesitamos conocer la ruta en el servidor:
=BUSCARV(C6;'\\Servidor\Carpeta\[S338-Poblacion.xlsx]Población'!$C$6:$D$57;2;FALSO)

Caso 4º: Un libro abierto y el otro alojado en Internet

Una vez conocida la URL del alojamiento, pondremos una fórmula siguiendo este esquema:
=BUSCARV(C6;'http://www.servidor.com/Carpeta/[S338-Poblacion.xlsx]Población'!$C$6:$D$57;2;FALSO)

Si el fichero S338-Poblacion.xlsx estuviera alojado en:

la fórmula de E6 debería ser:
=BUSCARV(C6;'http://www.fileden.com/files/2011/10/14/3209175/[S338-Poblacion.xlsx]Población'!$C$6:$D$57;2;FALSO)






miércoles, 2 de mayo de 2012

Punto de vista

En ocasiones, nuestro sentido de la vista nos hace percibir distintas realidades según cómo miremos un objeto; por ejemplo, ¿qué vemos al contemplar esta figura?


Fijemos la mirada un rato hasta que percibamos que el vértice a está más alejado que el b; estaremos viendo un pequeño cubo apoyado en el suelo y en dos paredes laterales. Por el contrario, si conseguimos que nuestra vista perciba que el vértice a se encuentra más cerca que el b, veremos un cubo flotando en el aire al que se le ha quitado un pequeño trozo en forma de dado en el vértice más cercano a nosotros.

No creo que sea muy práctico hacer un dibujo como éste utilizando los gráficos de Excel, pero es un pasatiempo como otro cualquiera y, como tal pasatiempo, vamos a construirlo empleando un gráfico de áreas.

El primer paso consistirá en crear una tabla:

Los números de esta tabla tienen que ver con las dimensiones de la figura. Así, el punto más alto del dibujo corresponderá al punto (2, 24). Por el contrario, el punto más bajo será el (2, 1). En el siguiente dibujo se muestran algunos puntos significativos. Como es lógico, las medidas del dibujo, y, por tanto, las coordenadas de esos puntos, las decidimos nosotros.



Vamos a construir el gráfico poco a poco, como si fuera un rompecabezas.

Seleccionamos B2:C7, accedemos al grupo Gráficos de la pestaña Insertar y elegimos Área + Área. Quitando el título del gráfico nos queda así:

Ya tenemos hecha la parte posterior del gráfico. Aparentemente, no tiene la forma correcta pero ya la tendrá cuando cambiemos la escala vertical y eliminemos la leyenda.

Seleccionamos D2:D5, pulsamos Ctrl + C para copiar los datos en el portapapeles, hacemos clic en el gráfico y pulsamos Ctrl + V para pegar los datos en el gráfico.

Hemos creado la pared izquierda del gráfico.

Ahora, seleccionamos E2:E6 y volvemos a incorporar los datos en el gráfico con el truco copiar (Ctrl + C) y pegar (Ctrl + V). Repitiendo estos pasos con el resto de las columnas, obtendremos la secuencia siguiente:

Eliminamos las líneas de división principales haciendo clic en una de ellas y pulsando Supr. Del mismo modo, eliminamos las leyendas.

En el eje vertical, Excel ha puesto una escala comprendida entre 0 y 30. Vamos a fijarla entre 0 y 25.

Doble clic en el eje vertical:
  • Opciones de eje → Mínima: Fija + 0 / Máxima: Fija + 25 / Marca de graduación principal: Ninguno / Marca de graduación secundaria: Ninguno / Etiquetas del eje: Ninguno
  • Color de líneaSin línea
Doble clic en el eje horizontal:
  • Opciones de eje → Marca de graduación principal: Ninguno / Marca de graduación secundaria: Ninguno / Etiquetas del eje: Ninguno
  • Color de líneaSin línea
Doble clic en el área del gráfico:
  • Relleno → Sin relleno
  • Color del bordeSin línea
Nos ayudamos con la tecla Alt para agrandar y colocar el gráfico ocupando el rango C8:J29.


Faltan dos cosas: colorear adecuadamente cada región y eliminar el borde del gráfico.

Las regiones 1, 2 y 3 las pondremos en un color claro; para ello, hacemos doble clic en la región 1 (corresponde a la serie Banda):
  • Relleno → Relleno sólido / Color: Anaranjado, Énfasis 6
Repetimos el mismo color en las zonas 2 (Pared_izqda) y 3 (Cubo_dcha). Las regiones 4 (Fondo) y 5 (Cubo_izqda) irán en color Anaranjado, Énfasis 6, Oscuro 25%. El color de las regiones 6 (Superior) y 7 (Suelo) será Anaranjado, Énfasis 6, Oscuro 50%. Finalmente, la región 8 (Recorte) tendrá color Blanco y borde, también, Blanco.

Para quitar el borde del gráfico, hacemos doble clic en el Área del gráfico:
  • Color del bordeSin línea




miércoles, 25 de abril de 2012

Sustituir las barras de un gráfico por una imagen

Los diagramas de barras (o columnas) pueden personalizarse sustituyendo las barras por imágenes adecuadas al caso. Por ejemplo, para representar la masa forestal de un conjunto de países mediante un diagrama de columnas, podemos usar la imagen de un árbol y mostrar el siguiente gráfico:

Lo primero será conseguir la imagen de un árbol (aquí hay uno).

Seleccionamos B2:C8 y accedemos a Insertar + Columna + Columna agrupada. Eliminamos la leyenda y sustituimos el título por: Superficie forestal en miles de hectáreas. Reducimos el tamaño de la fuente a 12 puntos.

Hacemos doble clic en una columna para acceder al cuadro de diálogo Formato de serie de datos. En la opción Relleno, marcamos el botón Relleno con imagen o textura, hacemos clic en Archivo y seleccionamos nuestro árbol. Eso es todo.

Nota: En Excel 2003 hacemos clic en una columna, accedemos a Insertar + Imagen + Desde archivo y seleccionamos el árbol.




lunes, 23 de abril de 2012

Búsqueda compleja en una tabla

Una editorial publica cinco revistas de otros tantos deportes: boxeo, ciclismo, fútbol, natación y tenis. Los clientes se suscriben a una o más revistas y los datos se almacenan en una tabla (B2:H10):

El objetivo del ejercicio es elegir un cliente (C12) y obtener su número de registro (G12) y la lista de revistas a las que está suscrito (C14:G14).

Como en otras ocasiones, resolveremos el problema usando celdas auxiliares (J3:N9); luego, agruparemos todas las fórmulas en una fórmula compuesta. Las celdas auxiliares ya no serán necesarias y las podremos eliminar.

Combinamos las celdas C12 y D12 dejando espacio suficiente para los nombres (Inicio + Combinar y centrar). Justificamos el texto a la izquierda.

Hacemos clic en C12, accedemos a Datos + Validación de datos y asociamos la lista de nombres (B3:B10) a la celda combinada:

Elegimos un nombre cualquiera; por ejemplo, Juan Gómez

En G12 ponemos el número de afiliado del suscriptor seleccionado:
=BUSCARV(C12;B3:C10;2;FALSO)     [Resultado: 1389]

En K3 obtendremos el número de la fila en la que está la persona elegida:
=COINCIDIR(C12;B3:B10;0)+2     [Resultado: 6]

Ahora, debemos comprobar qué celdas del rango D6:H6 contienen una "X" (son las suscripciones del afiliado). El rango D6:H6 lo formaremos con DIRECCION; así, DIRECCION(K3;4) devolverá $D$6; DIRECCION(K3;8) devolverá $H$6. Combinando ambas fórmulas de esta manera: DIRECCION(K3;4)&":"&DIRECCION(K3;8), obtendremos $D$6:$H$6. Con INDIRECTO obtenemos los valores de las celdas, y con HALLAR comprobaremos qué celdas tienen "X"; las que tengan "X" devolverán un 1; las restantes, devolverán un error.

Seleccionamos J5:N5 y escribimos:
=HALLAR("X";INDIRECTO(DIRECCION(K3;4)&":"&DIRECCION(K3;8)))     [Terminamos con Ctrl + Mayús + Intro]

En la siguiente fila numeraremos (del 1 al 5) las celdas en las que hemos encontrado una "X".

Seleccionamos J6:N6 y escribimos:
=SI(ESNUMERO(J5:N5);{1\2\3\4\5};"")     [Terminamos con Ctrl + Mayús + Intro]

Con esta fórmula matricial comprobamos si hay un número en cada celda del rango J5:N5 y, en caso de haberlo, le asignamos el valor correspondiente de la matriz {1\2\3\4\5}.

En J7:N7 obtenemos el número menor, el segundo menor, el tercero... de los números de rango J6:N6.

Seleccionamos J7:N7 y escribimos:
=K.ESIMO.MENOR(J6:N6;{1\2\3\4\5})      [Terminamos con Ctrl + Mayús + Intro]

Comparando esta lista de números con los valores del encabezado (D2:H2) obtendremos las revistas a las que se ha suscrito el cliente.

Seleccionamos J8:N8 y escribimos:
=INDICE(D2:H2;1;J7:N7)      [Terminamos con Ctrl + Mayús + Intro]

Seleccionamos J9:N9 y escribimos la primera fórmula compuesta:
=INDICE(D2:H2;1;K.ESIMO.MENOR(SI(ESNUMERO(HALLAR("X";INDIRECTO(DIRECCION(COINCIDIR(C12;B3:B10;0)+2;4)&":"&DIRECCION(COINCIDIR(C12;B3:B10;0)+2;8))));{1\2\3\4\5};"");{1\2\3\4\5}))      [Terminamos con Ctrl + Mayús + Intro]

La fórmula definitiva la pondremos en C14:G14. Utilizaremos la función SI.ERROR para eliminar los valores #¡NUM! que hay en J9:N9.

Seleccionamos C14:G14 y escribimos la segunda y definitiva fórmula compuesta:
=SI.ERROR(INDICE(D2:H2;1;K.ESIMO.MENOR(SI(ESNUMERO(HALLAR("X";INDIRECTO(DIRECCION(COINCIDIR(C12;B3:B10;0)+2;4)&":"&DIRECCION(COINCIDIR(C12;B3:B10;0)+2;8))));{1\2\3\4\5};"");{1\2\3\4\5}));"")      [Terminamos con Ctrl + Mayús + Intro]

Esta fórmula es definitiva; no se necesitan las columnas J a N. Podemos eliminarlas tranquilamente.

Nota: Como en Excel 2003 no existe la función SI.ERROR, podemos utilizar el formato condicional para poner a las celdas que contienen #¡NUM! el mismo color que el del fondo; de este modo, no se verá el código de error.

Si no queremos usar fórmulas matriciales y no nos importa conservar las celdas auxiliares, podemos resolver el ejercicio de la manera que se muestra a continuación:

En C12, G12 y K3 mantenemos las mismas fórmulas y elegimos a Martín Redondo.

En J5:
=SI(INDIRECTO(DIRECCION($K$3;COLUMNA(D1)))="X";D2;"")

Extendemos la fórmula hacia la derecha.

Martín Redondo se ha suscrito a las revistas de ciclismo, natación y tenis.

En J6:
=(J5<>"")*COLUMNA(D2)

Extendemos la fórmula hacia la derecha.

Hemos obtenido las columnas en las que están los nombres de las revistas de Martín Redondo.

En J7:
=JERARQUIA(J6;J6:N6;0)

Extendemos la fórmula hacia la derecha.

Hemos ordenado jerárquicamente la fila anterior.

En J8:
=INDICE($J$5:$N$5;0;COINCIDIR(COLUMNA(A1);$J$7:$N$7;0))

Extendemos la fórmula hacia la derecha.

Ya hemos conseguido los nombres de las revistas, aunque en orden invertido con respecto al original. Sólo nos falta eliminar el error #N/A. Lo haremos en C14:G14.

En C14:
=SI.ERROR(J8;"")

Extendemos la fórmula hacia la derecha.