Esto es bastante complejo, pero haré todo lo posible para explicarlo lo más claramente posible. Por favor, avíseme si no tiene sentido.Funciones INDIRECTAS anidadas en Excel - trabajando en una computadora pero devolviendo #REF en otra
Tengo dos libros de trabajo: una entrada y una salida. Tienen que estar separados por la forma en que funciona el sistema, es decir, un 'nominador' hace todo el ingreso en un libro de trabajo de entrada simple y el libro de trabajo de salida lo formatea para su uso. Para que esto funcione, el libro de trabajo de salida debe hacer referencia al libro de trabajo de entrada para recuperar valores.
He estado probando esto con ambos libros abiertos.
Para lograr esto, hago uso de las funciones anidadas INDIRECT
; el primero crea la ruta del archivo, invoca un rango con nombre, y el segundo le dice a Excel que interprete esa ruta del archivo y recupere el valor.
que empezar por el uso de INDIRECT
para construir una vía de archivo:
=INDIRECT("input_sheet_location")&"Wk 25 2012'!$B$11"
Esto devuelve algo como:
\\My Documents\Subfolder\[input_sheet.xlsx]Wk 25 2012'!$B$11
Y luego nido en otro con el fin de conseguir Excel para leer ese camino:
=INDIRECT("'"&INDIRECT("input_sheet_location")&"Wk 25 2012'!$B$12")
Esto devuelve con éxito el valor de la celda B12 de la entrada_s heet_location - un rango con nombre, que es un directorio de archivos. Por el bien de los argumentos, podemos decir que devuelve:
Captain America's underpants
Así que lo anterior funciona perfectamente bien. Para mi. Sin embargo, en la máquina de otro usuario, no funciona. He tratado de excavar, y resolví lo siguiente:
- La conexión entre los archivos también está presente en sus sistemas - explorando Datos> Editar enlaces muestra que tienen la misma conexión de trabajo que yo.
- La ruta de archivo producida es la misma; Construí una macro para mostrárselo al usuario, y en 3 máquinas, sale siempre igual.
- Lo más crucial (y confuso), la fórmula
INDIRECT
no anidada funciona. Es solo la fórmula anidada que solo funciona en mi computadora. En la computadora de todos los demás usuarios, devuelve un error#REF
.
¿Alguien tiene alguna idea de por qué este podría ser el caso? Estoy en una pérdida.
Gracias por leer ese spiel.
Esto es solo una posibilidad, pero no sé si será útil, pero el libro de entrada está abierto en las máquinas del otro usuario, porque tiene que ser para que la función indirecta funcione. No puede (al menos sin VBA, que yo sepa) actualizar los datos de las fórmulas vinculadas sin abrir el libro. Excel almacena el enlace cuando cierra el libro vinculado, pero como está utilizando indirectamente, no almacenará un enlace, porque, en efecto, no lo ha hecho. Si el enlace está allí, se le pedirá que lo actualice y todo estará bien. Si eso no funciona, podemos buscar otras cosas. –
relacionado: http://stackoverflow.com/questions/9259862/executeexcel4macro-to-get-value-from-closed-workbook y http://stackoverflow.com/questions/9033656/copying-from-closed-workbook-excel -vba – JMax
Gracias Scott, buen punto. La respuesta es sí, está abierto. He editado la pregunta para reflejar este detalle. – seegoon