Saltar al contenido

¿Cómo hago una referencia relativa a otro libro de trabajo en Excel?

Te doy la bienvenida a nuestra página web, en este sitio hallarás la solucíon a lo que andabas buscando.

Solución:

Las únicas soluciones que he visto para organizar los archivos externos en subcarpetas requieren el uso de VBA para resolver una ruta completa al archivo externo en las fórmulas. Aquí hay un enlace a un sitio con varios ejemplos que otros han usado:

http://www.teachexcel.com/excel-help/excel-how-to.php?i=415651

Alternativamente, si puede colocar todos los archivos en la misma carpeta en lugar de dividirlos en subcarpetas, Excel resolverá las referencias externas sin requerir el uso de VBA, incluso si mueve los archivos a una ubicación de red. Sus fórmulas entonces se vuelven simplemente ='[ComponentsC.xlsx]Sheet1'!A1 sin nombres de carpeta para recorrer.

Tuve un problema similar que resolví usando la siguiente secuencia:

  1. utilizar el CELL("filename") función para obtener la ruta completa a la hoja actual del archivo actual.

  2. utilizar el SEARCH() función para encontrar el inicio de la [FileName]NombreHoja string de su archivo de Excel actual y la hoja.

  3. utilizar el LEFT función para extraer el nombre completo de la ruta del directorio que contiene su archivo actual.

  4. Concatene el nombre de la ruta del directorio que se encuentra en el paso 3 con el nombre del archivo, el nombre de la hoja de cálculo y la referencia de celda a la que desea acceder.

  5. utilizar el INDIRECT() función para acceder a la CellPathName que creó en el paso #4.

Nota: estos mismos pasos también se pueden usar para acceder a celdas en archivos cuyos nombres se crean dinámicamente. En el paso #4, usa un texto string que se crea dinámicamente a partir del contenido de las celdas, la fecha u hora actual, etc. etc.

Un ejemplo de referencia de celda (con cada pieza ensamblada por separado) que incluye todos estos pasos es:

=INDIRECT("'" & LEFT(CELL("filename"),SEARCH("[MyFileName]MySheetName",CELL("filename")) - 1) & "[" & "OtherFileName" & "]" & "OtherSheetName" & "'!" & "$OtherColumn$OtherRow" & "'")

Tenga en cuenta que LibreOffice usa una sintaxis CellPatnName ligeramente diferente, como en el siguiente ejemplo:

=INDIRECT(LEFT(CELL("filename"),SEARCH("[MyFileName]MySheetName",CELL("filename")) - 1) & "OtherFileName" & "'#$" & "OtherSheetName" & "." & "$OtherColumn$OtherRow")

más fácil y más corto vía indirecta: INDIRECT("'........SupplySUSU.ods'#$Data.$A$2:$AC$200")

sin embargo, indirecto () tiene inconvenientes de rendimiento si hay muchos enlaces en el libro de trabajo

Echo de menos construcciones como: ['../Data.ods']#Sheet1.A1 en Libre Office. La intención está aquí: si creo un montón de libros de trabajo maestros y libros de trabajo de informes dependientes en un subárbol limitado de directorios en el sistema de archivos de origen, puedo comprimir todo el subárbol de directorios con el paquete completo de libros de trabajo y enviarlo a otra persona colaboradora por correo electrónico más o menos. Se guardará en alguna otra pazth absoluta en el sistema de destino, pero el enlace funciona de nuevo en la nueva ruta absoluta porque se codificó en relación con la raíz del subárbol.

Te mostramos las comentarios y valoraciones de los usuarios

Al final de todo puedes encontrar las aclaraciones de otros administradores, tú además eres capaz dejar el tuyo si lo deseas.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *