sábado, mayo 26, 2012

Fijar vínculos entre hojas de cuadernos Excel

Al crear vínculos entre rangos de distintos cuadernos, como vimos en esta nota, puede presentarse un problema al introducir cambios en el cuaderno de origen.

Vamos a mostrarlo con un ejemplo. Supongamos dos cuadernos, Origen y Base. En la celda C2 de la hoja1 de Base creamos un vínculo a la celda C2 de la hoja1 de Origen



En la barra de las fórmulas podemos ver que el valor se refiere a la celda C2 del cuaderno Origen.

Guardamos y cerramos el cuaderno Base. Abrimos el cuaderno Origen y movemos le valor de la celda C2 a la celda D2. Guardamos el cuaderno Origen y lo cerramos.

Al volver a abrir el cuaderno Base veremos que el cambio en Origen no se refleja en la celda vinculada y por lo tanto muestra un valor erróneo



Esto se debe a que efectuamos el cambio en Origen después de haber cerrado el cuaderno Base. El vínculo en Base sigue refriéndose a la celda C2 de Origen.

Una solución a este problema es mantener ambos cuadernos abiertos hasta finalizar de realizar todos los cambios.

Una solución más segura es usar nombres. En nuestro caso creamos un nombre que se refiere al rango C2 en la hoja Origen (“DatoParaBase”)



Si movemos el valor de la celda C2 en origen y guardamos el cuaderno, al abrir Base veremos que la referencia se ajusta automáticamente (en lugar de la referencia C2 aparece el nombre que se refiere al rango)



Esta técnica funcionará también si Origen esta cerrado al abrir Base.

13 comentarios:

  1. Muy buen post. Esto confirma que, en Excel, el uso de nombres en los rangos fortalece la integridad de la información.

    ResponderBorrar
  2. Hola Jorge
    ¿Y cómo sería para un rango dinámico?, pensando en el ejemplo de la nota anterior, en que el inventario de productos va creciendo.
    saludos y gracias.

    ResponderBorrar
  3. El nombre puede referirse a un rango dinámico (por ejemplo, los que se construyen con DESREF o con INDICE). Hay varias notas en el blog sobre el tema.

    ResponderBorrar
  4. Hola, tengo un problema pero no se si es parecido a esto. Tengo una celda con un vínculo a la hojax de ese mismo cuaderno y quiero pegar esa celda en diferentes cuadernos pero que vinculen siempre a la hojax del cuaderno donde estoy pegando el vínculo y no me sale. Quiero que siempre sea =hojaxp!$C$2 , un saludo y gracias

    ResponderBorrar
  5. Alberto, no estoy seguro de entender, pero en cada cuaderno tenés que crear el vínculo a la celda y no al revés.

    ResponderBorrar
  6. Yo tengo un cuaderno Master donde he creado ya los vínculos desde la hoja1 a la hoja2 y quiero repetir la operación en otros muchos cuadernos. Pero al copiar las celdas con los vínculos al resto de cuadernos me enlaza siempre con el cuaderno Master. Siento no explicarme mejor. Quiero evitar crear los vínculos de uno en uno para 100 cuadernos.

    ResponderBorrar
  7. Ese el comportamiento de los hipervínculos. El vínculo está almacenado como texto y po eso no cambia. Pero no me queda claro que buscas al copiar. ¿Cómo sabe Excel a qué cuaderno referirse?

    ResponderBorrar
  8. Yo tengo un archivo que se llama Libro1.xlsx en donde hay una celda con esta formula <=Hoja2!A1>, si copio esa celda a otro archivo llamado Libro2.xlsx, la formula "se convierte" en <=[Libro1.xlsx]Hoja2!A1>.
    Yo al copiar la celda en el Libro2 quiero que lea la celda "A1" de la "Hoja2" del "Libro2.xlsx".....si así no queda claro lo que yo pretendo me rendiré!!!!

    ResponderBorrar
  9. Alberto, al copiar la fórmula Excel mantiene el vínculo al cuaderno original, como ya has descubierto. La técnica para copiar el vínculo, sin que Excel cree una referencia al cuaderno de origien, es la siguiente:
    1 - Seleccionas la celda con la fórmula
    2 - aprtietas F2 (entrar en modo de edición)
    3 - con el mouse seleccionas todo el texto en la barra de las fórmulas, incluido el signo igual (=) y lo copias (Ctrl+C)
    4 - En el Libro2 seleccionas la celda requerida y pegas el texto, que se convertirá en fórmula sin referencia al libro de origen

    ResponderBorrar
  10. Ya se que así lo puedo hacer, pero no es una celda la que tengo que copiar, son casi 100 y tengo que hacerlo en 80 archivos. Por eso quería hacerlo copiando la tabla completa. Gracias de todos modos.

    ResponderBorrar
  11. Hola Alberto,

    por lo general la mejor solución para las tareas repetitivas es usar una macro.

    Supongo que se tratan de archivos ya existentes y más o menos complejos. Es decir que estás modificando algo existente. De no ser así, hay otras soluciones, como crear una plantilla.

    ResponderBorrar
  12. Hola, leyendo el artículo me cogió una duda. Cómo fijas referencias a un rango de un Tabla?

    Es decir, por ejemplo: Tabla1[Monto], cuál sería su equivalente al típico A$4:A$28 (por decir algo)?

    Saludos.

    ResponderBorrar
  13. Tabla1[Monto] es el equivalente a A$4:A$28. Sin embargo habrás notado que se copias o arrastras la referencia, el rango no se mantiene.La explicación del por qué y como manejarse en esos casos es un poco larga para resumirla en un comentario, Veré de publicar algo sobre el tema.

    ResponderBorrar

Nota: sólo los miembros de este blog pueden publicar comentarios.