Bueno te quiero preguntar como le puedo hacer para poder concatenar una fórmula, ya que necesito concatenar unas variables para poder sacar datos de otros archivos, pero al momento de usar la función de concatenar te poner todo el path, pero en string, no como fórmula, por lo tanto no jala los datos. Te agradecería si me puedes contestar ya que me urge un poco.
1 Respuesta
Respuesta de fejoal
2
2
fejoal, Por falta de tiempo para responder como me gusta hacerlo suspendo...
En principio la función CONCATENAR o el operador ampersand (&) hacen eso: devolver una única cadena de texto (string) a partir de varios elementos. De todos modos, a juzgar por el resto de tu pregunta, deberás anidar esa función dentro de otra que convierta ese texto en una dirección válida: INDIRECTO() Supongamos que en la celda B2 está la letra del disco y en B3 el nombre de la carpeta. En B4 tienes el nombre del archivo, en B5 el de la hoja y en B6 al celda o rango a considerar. La siguiente fórmula traerá el valor que está en esa dirección: =INDIRECTO("'"&B2&":\"&B3&"'["&B4&".xls]"&B5"&'!"&B6) De forma tal que, concatenados, dentro del paréntesis tendrás: =INDIRECTO('C:\Mis Documentos\[Archivo.xls]Hoja1'!$D$4) Efectivamente, esto toma el contenido de la celda D4 de la hoja de ese archivo. Claro, con una condición "sine qua non": Ese archivo DEBE estar ABIERTO al momento de obtener el dato. Caso contrario obtendrás #REF! En la celda. Desde luego la fórmula funciona perfectamente cuando quieres leer datos del mismo archivo en función a las variables ingresadas. Así: =INDIRECTO("A1") es equivalente a =A1... La ventaja es que el dato dentro del paréntesis puede surgir del contenido de otra celda. Espero que esto ayude a resolver tu problema. Si así fuera, agradeceré un comentario y que la finalices. (Recuerda que mantener cierto número de respuestas pendientes impide que otros usuarios puedan consultarme) Aclarando qué entendí mal o qué faltó.
Muchas gracias fernando por tu aclaración de la duda que tenia, pero quisiera saber si no hay una manera de hacer eso, ¿pero sin tener que estar abierto el archivo de donde se extraen los datos? Ya que no solamente tomo datos de un solo archivo, sino que de varios. ¿O tendría que usar un macro? De antemano gracias. Roel
Lamentablemente, como dije, esto es una condificón de la cual no es posible escapar, aún en la versión más nueva de Office. Sin embargo, si puedes leer inglés, existe una forma de hacerlo mediante programación. Tal solución se encuentra en el sitio de John Walkenbach (un auténtico gurú en MS Excel) La dirección exacta es: http://j-walk.com/ss/excel/tips/tip82.htm Espero que te sea de utilidad. Un abrazo! Fernando