Aprenderemos hoy tres formas de recuperar el nombre del fichero a partir de una ruta completa... sin duda un clásico muy necesario en nuestros trabajos.
Partiremos de un listado de rutas, a modo de ejemplo, en nuestras celdas A2:A4:
Veamos esas formas de obtener el nombre del fichero.
Modo uno:
con la siguiente fórmula:
=EXTRAE(A2;ENCONTRAR("*";SUSTITUIR(A2;"\";"*";LARGO(A2)-LARGO(SUSTITUIR(A2;"\";""))))+1;LARGO(A2))
suponemos que, de acuerdo a la imagen anterior, en A2 se encuentra la ruta completa.
Aquí la clave es usar la función SUSTITUIR para reemplazar el último de los separadores '\' de la ruta por un asterisco (valdría cualquier otro carácter.. por ejemplo la barra vertical | ).
Localizamos la posición de ese carácter reemplazado con la función ENCONTRAR, y a partir de ahí extraemos los caracteres oportunos, que son los deseados, i.e., los que corresponden al nombre del fichero.
Modo dos:
con la siguiente fórmula:
=DERECHA(A2;LARGO(A2)+1-ENCONTRAR("|";SUSTITUIR("\"&A2;"\";"|";(LARGO(A2)-LARGO(SUSTITUIR("\"&A2;"\";""))+1))))
de manera análoga al proceso anterior, y suponiendo la ruta completa en la celda A2.
Modo tres:
Generamos con programación un función personalizada
En este caso lo importante es dividir la ruta completa en cada nivel de dicha ruta, en base a los separadores existentes, esto lo conseguimos con la función VB SPLIT, que genera una Array...
Modo cuatro (extra!!):
Seleccionamos las celdas con las rutas, en mi caso A2:A4 y accedemos a la ventana de Reemplazar.. presiona Ctr+L y en ésta, indicamos que busque:
*\
y lo reemplace por nada
Listo.. tenemos algunas alternativas para recuperar el nombre del fichero a partir de una ruta completa.
Partiremos de un listado de rutas, a modo de ejemplo, en nuestras celdas A2:A4:
Veamos esas formas de obtener el nombre del fichero.
Modo uno:
con la siguiente fórmula:
=EXTRAE(A2;ENCONTRAR("*";SUSTITUIR(A2;"\";"*";LARGO(A2)-LARGO(SUSTITUIR(A2;"\";""))))+1;LARGO(A2))
suponemos que, de acuerdo a la imagen anterior, en A2 se encuentra la ruta completa.
Aquí la clave es usar la función SUSTITUIR para reemplazar el último de los separadores '\' de la ruta por un asterisco (valdría cualquier otro carácter.. por ejemplo la barra vertical | ).
Localizamos la posición de ese carácter reemplazado con la función ENCONTRAR, y a partir de ahí extraemos los caracteres oportunos, que son los deseados, i.e., los que corresponden al nombre del fichero.
Modo dos:
con la siguiente fórmula:
=DERECHA(A2;LARGO(A2)+1-ENCONTRAR("|";SUSTITUIR("\"&A2;"\";"|";(LARGO(A2)-LARGO(SUSTITUIR("\"&A2;"\";""))+1))))
de manera análoga al proceso anterior, y suponiendo la ruta completa en la celda A2.
Modo tres:
Generamos con programación un función personalizada
Function NombreFichero(celda As Range) As String 'generamos una matriz de elementos a partir de una ruta completa 'cada elememento responde a una separación de esa cadena por el caracter \ x = Split(celda.Value, Application.PathSeparator) 'recuperamos el último de los elementos.. 'es decir, el que correspodne al nombre del fichero NombreFichero = x(UBound(x)) End Function
En este caso lo importante es dividir la ruta completa en cada nivel de dicha ruta, en base a los separadores existentes, esto lo conseguimos con la función VB SPLIT, que genera una Array...
Modo cuatro (extra!!):
Seleccionamos las celdas con las rutas, en mi caso A2:A4 y accedemos a la ventana de Reemplazar.. presiona Ctr+L y en ésta, indicamos que busque:
*\
y lo reemplace por nada
Listo.. tenemos algunas alternativas para recuperar el nombre del fichero a partir de una ruta completa.
Me ha gustado mucho el modo cuatro :)
ResponderEliminarAquí tal vez un modo cinco :)
=EXTRAE(A2;HALLAR("<";SUSTITUIR(A2;"\";"<";LARGO(A2)-LARGO(SUSTITUIR(A2;"\";""))))+1;200)
Gracias federico
Eliminaren realidad es igual al modo uno, pero se agradece la variante
Saludos
ummmm si, es cierto. :)
Eliminar