sábado, 26 de mayo de 2012

Obtener Nombre y Extensión del Archivo

"Necesito realizar, si es posible, una fórmula que me ponga en una celda el nombre y extensión del archivo con el que estoy trabajando".

Sí, es posible. Para la resolución de este problema vamos a utilizar tres funciones de excel, a saber: CELDA, ENCONTRAR y EXTRAE.

Lo primero que debemos hacer es darle nombre al archivo y guardarlo. En nuestro caso bautizaremos el archivo con la denominación Minombre. A continuación nos ponemos en una celda, por ejemplo en B2, y escribimos la fórmula:

=CELDA("nombrearchivo")

La función CELDA devuelve información acerca del formato, la ubicación o el contenido de una celda. La sintaxis de esta función es CELDA( tipo_de_info;referencia), tal y como muestra la ayuda de excel, y tiene los siguientes argumentos:

tipo_de_info: Es un valor de texto que especifica el tipo de información de la celda que se desea obtener. La siguiente lista muestra los posibles valores del argumento de tipo_de_info y los correspondientes resultados:

tipo_de_infoDevuelve
"DIRECCION"la referencia, en forma de texto, de la primera celda del argumento ref.
"COLUMNA"El número de columna de la celda del argumento ref.
"COLOR"Valor 1 si la celda tiene formato de color para los valores negativos; de lo contrario, devuelve 0 (cero).
"CONTENIDO"Valor de la celda superior izquierda de la referencia, no una fórmula.
"ARCHIVO"Nombre del archivo (incluida la ruta de acceso completa) que contiene la referencia, en forma de texto. Devuelve texto vacío ("") si todavía no se ha guardado la hoja de cálculo que contiene la referencia.
"FORMATO"Un valor de texto correspondiente al formato numérico de la celda. Los valores de texto para los distintos formatos se muestran en la siguiente tabla. Si la celda tiene formato de color para los números negativos, devuelve "-" al final del valor de texto. Si la celda está definida para mostrar todos los valores o los valores positivos entre paréntesis, devuelve "()" al final del valor de texto.
"PARENTESIS"Valor 1 si la celda tiene formato con paréntesis para los valores positivos o para todos los valores; de lo contrario, devuelve 0 (cero).
"PREFIJO"Un valor de texto que corresponde al "prefijo de rótulo" de la celda. Devuelve un apóstrofo (') si la celda contiene texto alineado a la izquierda, comillas (") si la celda contiene texto alineado a la derecha, un acento circunflejo (^) si el texto de la celda está centrado, una barra inversa (\) si la celda contiene texto con alineación de relleno y devolverá texto vacío ("") si la celda contiene otro valor.
"PROTEGER"Valor 0 (cero) si la celda no está bloqueada; de lo contrario, devuelve 1 si la celda está bloqueada.
"FILA"El número de fila de la celda del argumento ref.
"TIPO"Un valor de texto que corresponde al tipo de datos de la celda. Devolverá "b" (para blanco) si la celda está vacía, "r" (para rótulo) si la celda contiene una constante de texto y "v" (para valor) si la celda contiene otro valor.
"ANCHO"El ancho de columna de la celda redondeado a un entero. Cada unidad del ancho de columna es igual al ancho de un carácter en el tamaño de fuente predeterminado.

referencia: (argumento opcional) La celda sobre la que desea información. Si se omite, se devuelve la información especificada en el argumento tipo_de_info para la última celda cambiada. Si el argumento de referencia es un rango de celdas, la función CELDA devuelve la información sólo para la celda superior izquierda del rango.

Importante: Aunque la ayuda de excel nos indica que para obtener el nombre del archivo debemos utilizar el argumento "ARCHIVO" esto es incorrecto. Debemos utilizar el argumento "NOMBREARCHIVO".

Volviendo a nuestro ejemplo, tras introducir la citada fórmula en la celda B2 obtendremos la ruta y nombre del archivo en cuestión. En mi caso el resultado es:


Ahora tenemos que conseguir "limpiar" el nombre y la extensión del archivo. Para ello utilizaremos la función ENCONTRAR. Nos situamos en la celda B3 y escribimos:

=ENCONTRAR("[";B2) que es el corchete de apertura

y en la celda B4:

=ENCONTRAR("]";B2) que es el corchete de cierre

La función ENCONTRAR busca un texto o cadena de texto especificado dentro de una segunda cadena y devuelve el número de la posición inicial de la primera cadena de texto. Su sintaxis es ENCONTRAR(texto_buscado; dentro_del_texto; [núm_inicial]):

Texto_buscado Obligatorio. El texto que desea encontrar.
Dentro_del_texto Obligatorio. El texto en el que se quiere buscar.
Núm_inicial Opcional. Especifica el carácter a partir del cual comenzará la búsqueda. El primer carácter de dentro_del_texto es el carácter número 1. Si omite núm_inicial, se supone que es 1.

Con estas dos fórmulas obtenemos la posición en la que se encuentra el corchete de apertura y cierre que delimita el nombre y extensión de un archivo de excel:



De esta manera ya sólo nos queda aplicar ahora la función EXTRAE para obtener lo que queremos. Resolviéndolo todo en una única fórmula quedaría así:

=EXTRAE(B2;ENCONTRAR("[";B2)+1;ENCONTRAR("]";B2)-B3-1)


3 comentarios:

  1. EN OFFICE 2010:
    =MED(CELDA("NOMBREARCHIVO");HALLAR("[";CELDA("NOMBREARCHIVO"))+1;(LARGO(CELDA("NOMBREARCHIVO"))-HALLAR("[";CELDA("NOMBREARCHIVO"))-(LARGO(CELDA("NOMBREARCHIVO"))-HALLAR("]";CELDA("NOMBREARCHIVO"))+1)))

    ResponderEliminar
  2. En celda cualquierra

    =EXTRAE(CELDA("nombrearchivo");ENCONTRAR("[";CELDA("nombrearchivo"))+1;ENCONTRAR("]";CELDA("nombrearchivo"))-ENCONTRAR("[";CELDA("nombrearchivo");1)-1)

    ResponderEliminar
  3. Muchísimas gracias a los 3. El primero por didáctico y los otros 2 por eficaces.

    ResponderEliminar