martes, 13 de noviembre de 2012

Pegar imagen vinculada en Excel 2010.

Hoy aprenderemos una herramienta curiosa, Pegar imagen vinculada, trabajando sobre Excel 2010 (válido igualmente para Excel 2007).
La utilidad que le vamos a dar a esta herramienta nos permitirá seleccionar, a nuestra discrección, ciertos gráficos situados en diferentes hojas de nuestro libro de trabajo.
Podríamos decir que vamos a construir un sistema de gráficos a la carta.


Necesitamos poca cosa, tan sólo unos gráficos construidos en hojas diferentes, para mi ejemplo, hojas llamadas 'grafico1', 'grafico2' y 'grafico3', cada uno de ellos representa los valores de una variable (no importa qué ni donde estén colocados estos gráficos).
Muy importante, asignar un nombre definido a los rangos donde se sitúen estos gráficos:
Empleados =grafico2!$D$1:$J$18
Facturación =grafico3!$D$1:$J$18
Ventas =grafico1!$D$1:$J$18
En mi ejemplo, los tres gráficos (uno por hoja) están en el mismo rango:


El siguiente paso es sencillo, seleccionamos el rango de celdas situado justo debajo de alguno de los gráficos, por ejemplo el de la hoja 'grafico1', y copiamos (presionando Ctrl+c por ejemplo. No es necesario ningún copiado especial.). Con el rango copiado, nos vamos a la hoja 'Final' donde deseamos tener el 'gráfico intercambiable' y desplegamos el botón de Pegar > Imagen vinculada:

Pegar imagen vinculada en Excel 2010.


Atención, por que lo que acabamos de pegar es una IMAGEN!!, no es un gráfico... aunque tiene la característica de estar vinculado a lo que exista en el rango copiado.
Esta es la clave de nuestro trabajo; ya que al existir un vínculo, podremos configurarlo según nos interese.

Asi que añadimos en nuestra hoja 'Final' en la celda B1 una validación de datos con una lista de nombres; en mi caso, nombres/valores que identifican cada uno de mis tres tipos de gráfico: 'Ventas; Empleados; Facturación'. Que desde luego, no es casualidad, coinciden con los nombres definidos anteriormente:
Empleados =grafico2!$D$1:$J$18
Facturación =grafico3!$D$1:$J$18
Ventas =grafico1!$D$1:$J$18

Penúltimo paso. Generamos un último nombre definido:
Analizar =INDIRECTO(Final!$B$1)
De esta forma, podremos hacer entender a Excel qué gráfico queremos visualizar.


Último paso, nuestra imagen vinculada está asociada a un rango, podemos verlo en la Barra de fórmulas al seleccionar la imagen:

Pegar imagen vinculada en Excel 2010.


Bien, pues ahora reemplazaremos esa referencia (en mi ejemplo: =grafico1!$D$1:$J$18) por =Analizar, es decir, por el último nombre definido creado que nos relacionará la imagen con el valor desplegado en la celda validada B1.
Listo. Ya podemos desplegar cualquiera de los elementos de B1, que la imagen mostrará el gráfico correspondiente.

Pegar imagen vinculada en Excel 2010.


Lo vemos en el video:

Pegar imagen vinculada en Excel 2010.

18 comentarios:

  1. y donde has definido Analizar?????

    ResponderEliminar
  2. perdón, ya lo vi

    ResponderEliminar
  3. En primer lugar gracias por la ayuda que nos prestas a través del foro.
    Por otro lado, tengo un pequeño problema.
    Tengo un archivo .xlsm con un formulario para crear algo parecido a una factura. La factura se genera en otra hoja y me gustaría incluir para cada fila la imagen correspondiente a cada producto. He intentado seguir los pasos de esta entrada: http://excelforo.blogspot.com.es/2011/08/como-asociar-una-imagen-al-valor-de-una.html me funciona en archivos .xls, pero no en .xlsm
    He aplicado el truco de esta entrada y funciona perfectamente, pero me gustaría simplificarlo aún más, de forma que todas las imagenes hagan referencia al mismo nombre, en vez de tener que crear unos 20 nombres diferentes.

    ResponderEliminar
    Respuestas
    1. Hola!
      muchas gracias... me alegra mis explicaciones sirvan a alguien.

      Respecto a tu cuestión, lo explicado en la entrada que comentas está pensado para versiones de Excel 2007 o superiores, de toda formas, para simplificar el asunto, podrías aplicar alguna macro.
      Te dejo ellink de un post con un ejemplo de inserción de imágenes:
      http://excelforo.blogspot.com.es/2012/05/vba-una-macro-en-excel-para-insertar.html

      De toda maneras para facilitar el trabajo de asignar nombres definidos de una manera sencilla selecciona todas las imágenes de una vez (las que sean), y con el rango correcto seleccionad presiona Ctrl+Mayus+F3 e indica coger nombres de columna izquierda.

      Espero te sirva de algo.
      Slds

      Eliminar
    2. Muchísimas gracias, me ha sido de gran ayuda.

      Eliminar
  4. hola Ismael.
    Se podria hacer lo mismo que el ultimo paso nomas que en vez de mostrar una imagen se hiciera con graficos dinamicos?
    Es decir que con una lista (validación de datos de empleados,facturacion y ventas), si se elige una opcion se muestre su grafico dinamico

    ResponderEliminar
    Respuestas
    1. Hola,
      para eso no hace falta emplear una Celda validada.. bastaría emplear los Filtros de página (por ejemplo) en la Tabla dinámica de donde nazca el gráfico dinámico.

      Un saludo

      Eliminar
    2. Si cada grafico dinamico naciera de distintas tablas y al final solo mostraria una lista y dependiendo de la opcion de la lista es el grafico dinamico a mostrar.

      Saludos

      Eliminar
    3. En ese caso sólo tendrías que repetir la acción expuesta en la entrada, convirtiendo en imagen cada gráfico dinámico, tratándolo como un gráfico normal...

      Saludos

      Eliminar
  5. Saludos cordiales,

    De ante mano gracias por tus aportes, son de mucha ayuda. Te escribo porque estoy realizando una hoja de autollenado que se alimenta de una base de datos (BDD) del mismo libro. Este autollenado, a través de CONSULTAV y SI, se da por el código del producto y parte de lo que debe buscar en la BDD es la imagen del producto. En ese sentido y de ser posible, quisiera que me orientaras un poco, ya que, estoy realizando cada paso cuidadosamente y al momento de poner el =foto en el cuadro objeto, me dice: "La referencia no es válida".

    Manejo un excel 2010

    Muchas gracias por tu tiempo

    ResponderEliminar
    Respuestas
    1. Hola, muchas gracias,
      entiendo por tu pregunta que te refieres al proceso de buscar una imagen en un banco de imágenes (no al de este post),
      el problema es que ese procedimiento es sólo valido trabajando con Excel 2007, por lo que para poder realizarlo tendrías que emplear macros
      Te dejo un link que te ayudará a construirlo:
      http://excelforo.blogspot.com.es/2012/05/vba-una-macro-en-excel-para-insertar.html

      Slds

      Eliminar
  6. Ismael:

    Si en lugar de una lista desplegable en la hoja 'Final' tuviéramos un botón de opción ¿cuál sería la manera la manera de asociar la opción elegida con cada gráfico?

    Muchísimas gracias y enhorabuena por las explicaciones

    Benedicto

    ResponderEliminar
    Respuestas
    1. Hola Benedicto,
      si tuviéramos un grupo de botones de opción deberíamos asociar el resultado del botón obtenido en la celda asociada/vinculada de los botones (sería 1,2 ó 3) con alguna fórmula para conseguir el literal del nombre definido asociado al rango (Empleado, Facturación o Venta).

      Un saludo

      Eliminar
    2. Efectivamente Ismael, pero el problema -que no acierto a resolver- es qué fórmula, como tu muy bien dices, asocia el resultado (1,2 ó 3) de la celda vinculada con el gráfico (cualquiera de los 3) correspondiente. La dificultad de todo esto radica en encontrar "esa fórmula" que asocie 1, 2 ó 3 con cualquiera de los gráficos.

      Muchas gracias y disculpa por las molestias ocasionadas.

      Benedicto

      Eliminar
    3. Hola,
      usa, por ejemplo, la función ELEGIR sobre la celda asociada a los botones de opción:
      =ELEGIR(celda asociada;"Empleado";"Facturación";"Venta")
      saludos

      Eliminar
  7. Hola. He tratado de seguir tu ejemplo, hago la lista y en otra celda hago el indirecto a la celda de la lista y me sale #!VALOR!. Tengo Excel 2013. Gracias por tu ayuda.

    ResponderEliminar
    Respuestas
    1. Hola jiam1964,
      en la versión 2013 con que trabajas funciona exactamente igual...
      Asegúrate de seguir todos los pasos y no olvides generar los nombres definidos de las diferentes áreas que rodean los gráficos...
      Saludos

      Eliminar