martes, 25 de septiembre de 2018

Obtener nombre del fichero desde una ruta completa

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:

Obtener nombre del fichero desde una ruta completa



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

Obtener nombre del fichero desde una ruta completa



Listo.. tenemos algunas alternativas para recuperar el nombre del fichero a partir de una ruta completa.

3 comentarios:

  1. Me ha gustado mucho el modo cuatro :)
    Aquí tal vez un modo cinco :)
    =EXTRAE(A2;HALLAR("<";SUSTITUIR(A2;"\";"<";LARGO(A2)-LARGO(SUSTITUIR(A2;"\";""))))+1;200)

    ResponderEliminar
    Respuestas
    1. Gracias federico
      en realidad es igual al modo uno, pero se agradece la variante
      Saludos

      Eliminar
    2. ummmm si, es cierto. :)

      Eliminar

Nota: solo los miembros de este blog pueden publicar comentarios.