Hipervínculo a una celda específica en Excel.

lunes, febrero 16, 2009

En la nota sobre hipervínculos en Excel vimos como crearlos en forma dinámica. En ese ejemplo mostrábamos como hacer que al elegir un valor de una lista desplegable, el hipervínculo se dirigiera a la primer celda vacía de una columna en una hoja determinada.

También podemos hacer que el vínculo se ligue a una celda determinada de un rango. Por ejemplo, supongamos que tenemos un cuaderno con una lista de clientes en una hoja (para el caso, “clientes”). En otra hoja ponemos una lista desplegable (con validación de datos) que muestre todos los nombres de los clientes. Queremos que al elegir un cliente, la celda que contiene el hipervínculo se actualice y que al pulsarlo nos lleve a la fila de cliente.

Como en el caso anterior, usamos la función HIPERVINCULO. La fórmula es sencilla, pero aprovecharemos la ocasión para mostrar también una técnica para construir fórmulas no tan sencillas.

En la hoja “clientes” tenemos esta lista





Empezamos por crear un rango dinámico con un nombre definido





La fórmula del nombre definido es
=DESREF(Clientes!$A$2,0,0,CONTARA(Clientes!$A:$A)-1,1)

Esta fórmula nos permite que el rango definido por el nombre se vaya adaptando a medida que agregamos o quitamos clientes de la lista.

En otra hoja creamos la lista desplegable basándonos en el nombre definido




En la celda contigua queremos poner la fórmula que cree el hipervínculo al cliente según se haya elegido en la lista desplegable.

Para encontrar en fila del rango de los clientes se encuentra el elegido usamos la función COINCIDIR de esta manera

=COINCIDIR(A1,Clientes,0)+1





Usamos el nombre definido “clientes” pero agregamos 1 al resultado ya que el nombre no toma en cuenta la primer fila del rango (el encabezamiento de la columna A).

Ahora podemos crear con facilidad la dirección de la celda buscada con la función DIRECCION

=DIRECCION(B1,1,,,"clientes")




Podemos usar el resultado en la celda B4 como argumento en la función HIPERVINCULO que pondremos en la celda B1

=HIPERVINCULO("#"&B4,"Ver "&A1)



Pero esto nos obligaría a usar celdas auxiliares. Sencillamente podemos reemplazar la referencia en la función por las fórmulas que hemos usado, quedando

=HIPERVINCULO("#"&DIRECCION(COINCIDIR(A1,Clientes!A:A,0),1,,,"clientes"),"Ver "&A1)






La pregunta que se impone ahora es: ¿cómo hacemos para que al elegir el cliente en la celda A1 Excel se dirija automáticamente a la celda correspondiente sin necesidad de pulsar en B1?

Bien, este será el tema de una futura nota.


Technorati Tags:

20 comments:

Futbolbase 18 febrero, 2009 02:01  

Aunque no se si es el sitio adecuado para preguntar, me gustaria saber como crear clasificaciones para mi blog de futbol

Gracias y felicidades por este blog.

Jorge L. Dunkelman 18 febrero, 2009 20:14  

No, no es el sitio adecuado. La idea de los comentarios es opinar o responder algo sobre el contenido de la nota, es decir, comentar. Lo tuyo es una consulta, y bastante vaga debo decir. Por favor, lee esta nota.

Anónimo,  28 febrero, 2009 04:13  

Estimado Jorge,
no sabes cuánto bien me está haciendo leer tus aportes. Hace 30 días que introduje un tema en un foro y no tenía "ninguna" respuesta. Leyendo esta nota que realmente me agradó, encontré el 50 % de la solución a mi problema a través de la fórmula coincidir en la que agregas +1 para indicar la columna siguiente. Sé que no tiene nada que ver con la nota, pero no imaginas la gratitud que experimenté por haber encontrado. Si tus temas no fueran lindos. Yo no hubiera llegado hasta aquí leyendo. Me sentí obligado a escribirte este agradecimiento que sale de corazón.
Aldo Fabre, desde Lima

Anónimo,  07 septiembre, 2011 22:52  

Buena tarde amigo disculpa necesito orientación necesito crear hipervinculos que al colocar un numero en una celda se direccione a una hoja en el mismo libro tomando en cuenta que cada hoja representa a un cliente como puedo hacer eso que se ejecute solo con una numero marcado te agradezco todo lo que me puedas ayudar

Jorge L. Dunkelman 08 septiembre, 2011 07:07  

No me queda claro lo que quieres hacer. Puedes crear hipervínculos con facilidad que se liguen a una celda específica en cualquier hoja del cuaderno. Es el tema de esta nota.
Si lo que buscas es cque el vínculo se cree automáticamente al ingresar el número en la celda tendrás que programar un evento (Vba-macros).

Juan M. Alesso 10 octubre, 2011 20:06  

Estimado Jorge, queria consultarte para realizar un hipervinculo dinamico. A lo que me refiero seria teniendo 2 hojas en un mismo libro; en donde una tenga un detalle de deuda por cliente y la otra tenga un resumen de los contactos realizados a cada cliente. El punto está que como sumaremos "n" cantidad de contactos al cliente el hipervinculo se irá modificando de posicion. Espero que entiendas la problemática y puedas ayudarme. Saludos.

Jorge L. Dunkelman 11 octubre, 2011 19:45  

Hola Juán, no estoy seguro de entender la consulta. La idea es que el hipervínculo te lleve a la celda que contiene el último contacto con el cliente? Esa celda, ¿contiene una fecha?

Juan M. Alesso 11 octubre, 2011 20:20  

Ante todo, gracias por contestar. El tema seria que tanto en una hoja como en la otra el dato por el cual se conectaria seria el nro de documento (factura). La intencion es que el hipervinculo se posicione en el documento; cada fila contendrá el contacto que se realizó. Por lo que el siguiente documento iría abajo del comentario del documento anterior.

Jorge L. Dunkelman 14 octubre, 2011 17:48  

Juan, enviame un archivo con el ejemplo de lo que se quiere hacer (la dirección aparece en enlace Ayuda).

Anónimo,  06 agosto, 2012 18:58  

Gracias por toda esta informacion, pero quiero saber lo siguiente despues de utiilzar un hipervinculo como me devuelvo a donde estaba o a la celda origen.

Jorge L. Dunkelman 10 agosto, 2012 11:46  

Con "deshacer" (undo, Ctrl+Z)

Anónimo,  21 febrero, 2013 17:50  

Hola Jorge
Creo que lo que necesito es algo parecido a esto pero los datos los tengo metidos en tablas y no sé si puedo hacer rangos.
Te cuento, tengo dos hojas, una (CLIENTES) con el listado de clientes, su numero de identificación y algunos datos principales y otra (COMENTARIOS) con el mismo listado y otras columnas con diferente información.
Para que el listado de la segunda hoja sea el mismo tengo para la referencia del cliente la formula

=IF(CLIENTES!C2<>"";CLIENTES!C2;"")

y lo que quiero es que al ponerme en una referencia de la hoja COMENTARIOS me lleve a la línea correspondiente de la hoja CLIENTES. Si pongo

=IF(CLIENTES!C2<>"";HYPERLINK("#CLIENTES!C2";PENDIENTES!C2);"")

me lleva a donde quiero, pero al copiar la formula hacia las filas de abajo siempre me redirige a C2 y quiero que ese C2 vaya cambiando igual que el resto de la fórmula.
¿Me puedes ayudar?

Jorge L. Dunkelman 21 febrero, 2013 18:11  

En la fórmula =IF(CLIENTES!C2<>"";HYPERLINK("#CLIENTES!C2";PENDIENTES!C2);"")

la parte "#CLIENTES!C2" es texto y por eso no cambia la referencia.
Tendrías que usar

"#CLIENTES!"&C2

es decir, concatenar le tecto "#CLIENTES!" con la referencia a la celda C2.

Anónimo,  22 febrero, 2013 09:47  

Mil gracias por contestarme y además tan rápidamente.
He puesto lo que me comentas:

=IF(CLIENTES!C2<>"";HYPERLINK("#CLIENTES!"&C2;CLIENTES!C2);"")

pero me da un warning de refernecia circular por lo que no puede calcular la formula correctamente y me pone como valor 0. El link no funciona tampoco porque me dice que la referencia no es válida.

Jorge L. Dunkelman 22 febrero, 2013 18:12  

Bien. sin ver el cuaderno es difícil darte un diagnóstico. La referencia circular se produce si a lo largo de la cadena de cálculo la fórmula se refiere a la celda en la cual fue introducida. El ejemplo obvio sería si pones la fórmula en la celda C2.
En el momento que hay una referencia circular el vínculo no puede funcionar.

Anónimo,  22 agosto, 2013 15:41  

Como se puede calcular en una hoja (VISITA) los dias pasados entre fechas si ponemos el día de hoy , tomando el valor de la última fecha introducida en una fila de otra hoja (RECAUDACION), TENIENDO EN CUENTA QUE POR UNA TIENDA SE PUEDE PASAR 10 VECES Y OTRA SOLO 4.
UN SALUDO.

Jorge Dunkelman 22 agosto, 2013 16:16  

El comentario/consulta no está relacionado con el tema de la nota. Te sugiero que leas lo que pongo en el enlace Ayuda (en la parte superior de la plantilla).

Anónimo,  10 octubre, 2013 22:33  

Buenas noches, primero decir que es brillante la idea de usar una concatenación para que cambie la referencia. Espero que me podáis ayudar en esta línea. Tengo una tabla dinámica y querría poder introducir en ella un link que me permita ir a una celda en concreto de otra hoja de ese mismo libro. He probado con el hipervínculo como valor de la lista de datos de la que se nutre la tabla dinámica pero en esta me aparece el nombre del hipervínculo pero no se activa la celda en cuestión. Espero haberme explicado

Jorge Dunkelman 11 octubre, 2013 08:09  

No se puede modificar las celdas del rango que ocupa la tabla dinámica. Tienes que ver a la tabla como una "imagen" de la base de datos que la nutre.

Anónimo,  25 julio, 2014 00:15  

ES MUY BUENA PAGINA AUNQUE LE FALTA ALGO MAS

Publicar un comentario

Seguidores

Google+ Followers

Google+ Badge

Términos Legales

  © Blogger template On The Road by Ourblogtemplates.com 2009

Back to TOP